cenídet - Centro Nacional de Investigación y Desarrollo ... Jose Alonso... · Figura 3.2...

75
)i S.E.P. S.E.I.T. D.G.1.T CENTRO NACIONAL DE INVESTIGACI~N Y DESARROLLO TECNOL~GICO cenídet AMBIENTE DE MODELADO Y DISENO DE SISTEMAS DE SOFTWARE UTILIZANDO DIAGRAMAS DE SECUENCIAS 3 CUERNAVACA, MORELOS T E S I S PARA OBTENER EL GRADO DE MAESTRO EN CIENCIAS EN CIENCIAS DE LA COMPUTACIÓN PRESENTA JOSÉ ALONSO MACíAS MONTOYA Director de Tesis DR. MÁXIMO LÓPEZ SÁNCHEZ ”““I CE i\l I DET (,,,O DE INFORMACION e-04-os1% AGOSTO 2004

Transcript of cenídet - Centro Nacional de Investigación y Desarrollo ... Jose Alonso... · Figura 3.2...

)i SEP SEIT DG1T

CENTRO NACIONAL DE INVESTIGACI~N Y DESARROLLO T E C N O L ~ G I C O

ceniacutedet AMBIENTE DE MODELADO Y DISENO DE SISTEMAS DE SOFTWARE

UTILIZANDO DIAGRAMAS DE SECUENCIAS

3 CUERNAVACA MORELOS

T E S I S PARA OBTENER EL GRADO DE MAESTRO EN CIENCIAS

EN CIENCIAS DE LA COMPUTACIOacuteN

P R E S E N T A JOSEacute ALONSO MACiacuteAS MONTOYA

Director de Tesis DR MAacuteXIMO LOacutePEZ SAacuteNCHEZ

rdquoldquoldquoI CE il I DET (O DE INFORMACION

e - 0 4 - o s 1

AGOSTO 2004

jdet Centro Nacional de lnvestigaci6n Sistema Nacional de lnstltutos Tecnoloacutegicos I y Oesanollo Tecnologico

M10 ANEXO No11

ACEPTACI~N DEL DOCUMENTO DE TESIS

Cuernavaca Mor a 25 de Agosto del 2004

Dr Gerard0 Reyes Salgado Jefe del departamento de Ciencias Computacionales Presente

Atn Dr Reneacute Santaolaya Salgado Presidente de la Academia

de Ciencias Computacionales

Nos es grato comunicarle que conforme a los lineamientos para la obtencioacuten del grado de Maestro en Ciencias de este Centro y despueacutes de haber sometido a revisioacuten acadeacutemica la tesis titulada Ambiente de modelado y disentildeo de sistemas de software utilizando diagramas de secuencias realizada por el C Joseacute Alonso Maciacuteas Montoya y dirigida por el Dr Maacuteximo Loacutepez Saacutenchez y habiendo realizado las correcciones que le fueron indicadas acordamos ACEPTAR el documento final de tesis asiacute mismo le solicitamos tenga a bien extender el correspondiente oficio de autorizacioacuten de impresioacuten

Atentamente La Comisioacuten de Revisioacuten de Tesis

Revisor

CCP Subdireccioacuten Acadeacutemica Departamento de Servicios Escolares Directores de tesis Estudiante

~ gt

1 Rosrama de k mramar da amp-ma en C i e d i del CWlDET

Wd6mlco Rwisimsnlto Y P W l m l s n l o r ampzad6mlsoMminlsuIuumlyI

4 r cenidet Centro Nacional de lnvestigaclon Sistema Nacional de Institutos Tecnologicos y Desarrollo Tecnologico

ANEXO No 12

M11 AUTORIZACI~N DE IMPRESI~N DE TESIS

Cueniavaca Mor a 27 de Agosto del 2004

C Joseacute Alonso Maciacuteas Montoya Candidato al grado de Maestro en Ciencias en Computacioacuten

i Presente

Despueacutes de haber atendido las indicaciones sugeridas por la Comisioacuten Revisora de la Academia de Ciencias de la Computacioacuten en relacioacuten a su trabajo de tesis cuyo titulo es Ambiente de modelado y disentildeo de sistemas de software utilizando diagramas de secuencias me es grato comunicarle que conforme a los lineamientos establecidos para la obtencioacuten del grado de Maestro en Ciencias en este centro se le concede la autorizacioacuten para que proceda con la impresioacuten de su tesis

i -

Atentamente

o Reyamp Salgado amento de Ciencias Computacionales

CCP Subdireccioacuten Acadeacutemica Presidente de la Academia de Ciencias Computacionales Departamento de Servicios Escolares Expediente

-

A mis padres auacuten con la distancia Siempre han estado a mi lado a toda mi familia por el apoyo en todo momento

Agradecimientos

A mis padres por que me han dado todo

A toda nii familia por el apoyo que en su momento recibi de cada uno

AI Centro Nacional de Investigacioacuten y Dcsarrollo Tccnoloacutegico por la oportunidad que me han dado

A Cosnet (Consejo del Sistema Nacional de Educacioacuten Tecnoloacutegica) por el apoyo econoacutemico otorgado durante la realizacioacuten del programa de maestriacutea

A la SEP (Secretariacutea de Educacioacuten Puacuteblica) por ser parte importante con su apoyo econoacutemico para la culminacioacuten de mis estudios

A mi director de tesis Dr Maacuteximo Loacutepez Saacutenchez por compartirme sus conocimientos y guiarme

A mis revisores Dr Reneacute Santaolaya Salgado Dr Guillermo Rodriguez Ortiz y MC Humberto Hemaacutendez Garcia Gracias por sus observaciones y consejos para mejorar este trabajo

A Miguel Ramirez por los conocimientos teacutecnicos y amistad

A Leo Sele Lupita Ceacutesar Emilio Vianey Armando y Marisela por el tiempo que vivimos

3

-3 i

Gracias y Suerte

i 4

Resu men

La investigacioacuten y el producto de la tesis estaacuten inmersos en la etapa del disentildeo de sistemas de software

El prototipo S3C (producto de la tesis) permite la obtencioacuten de diagramas de secuencias de UML tomando como base la informacioacuten de un diagrama de clases y de varios documentos modelados con diagramas de Warnier (disentildeo detallado de los meacutetodos)

S3C realiza un proceso automaacutetico para la obtencioacuten de los diagramas de secuencias La construccioacuten de los diagramas de secuencias en S3C estaacute soportada con una gramaacutetica visual relacional El propoacutesito de la gramaacutetica es validar la construccioacuten de los diagramas de secuencias de UML

En el aacutembito de los diagramas de secuencias de UML no existen aplicaciones comerciales oacute proyectos educativos que se apoyen en una gramaacutetica visual para soportar la construccioacuten de los diagramas de secuencias y tampoco existen aplicaciones que permitan a partir de los diagramas de clases y del disentildeo detallado de los meacutetodos generar automaacuteticamente los diagramas de secuencias

4 _

i d

Abstract

The research and the product of this thesis are immersed in the phase of design of software systems

Prototype S3C (product of this thesis) allows to obtain UML sequence diagrams based on the information of a class diagram and several documents modeled with wamier diagrams (detailed design of the methods)

S3C makes an automatic process in order to obtain sequence diagrams the construction of sequence diagrams in S3C is supported with a relational visual grammar The purpose of the grammar is to validate the construction of UML sequence diagrams

il

In the scope of UML sequence diagrams do not cxist commercial applications or educative projects that are based on a visual grammar to support the construction of sequence diagrams Also there arenrsquot applications that allow the automatic generation of secuence diagrams from class diagrams and the detailed design of methods

Tabla de Contenido

Tabla de Contenido

Listado de Figuras

Listado de Tablas

Notacioacuten

Introduccioacuten

Capitulo 1 Conceptos Generales

11 Antecedentes

12 Trabajos relacionados

121 Tabla comparativa

13 Definicioacuten del problema

14 Objetivo de la Tesis

141 Objetivos especiacuteficos de la tesis

15 Hipoacutetesis de investigacioacuten

16 Alcances y limitaciones del trabajo de tesis

Capitulo 2 Marco Teoacuterico

21 Modelado de sistemas de software

22 Interfaz de usuario (Mecanismos de interaccioacuten)

23 Lenguajes Visuales

24 Programacioacuten orientada a objetos

25 Lenguaje de Modelado Unificado (UML)

Capitulo 3 Desarrollo de la herramienta

31 Disentildeo de la Arquitectura

311 Requisitos (Diagrama de Casos de uso)

312Modelo Conceptual

313Diagramas de clases

Paacutegina

1 iv V

vi

1

2

3 4

6

6 7

7

8

8

9 10 11 13 16 17

21 23 23 25 25

1

32 Elementos de la arquitectura

321 Microsoft Foundation Class (MFC)

322Arquitectura Documento Vista

323Integrando Ambientes en Visual c++ 324 Interfaz de Muacuteltiples Documentos (MDI)

325Recursos Diaacutelogos Menus y Barras de Herramientas

326 Notacioacuten estaacutendar

327 Estructura de datos persistencia y recuperacioacuten

328Patrones de disentildeo utilizados

33 Diagrama de secuencias

331Ciclo de vida del software

34 Elementos atoacutemicos de la Gramaacutetica

341 Representacioacuten visual

35 Gramaacutetica desarrollada

a -

Tabla de Contenido

36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias

Capitulo 4 Pruebas y Resultados

41 Recursos teacutecnicos utilizados

42 Descripcioacuten del plan de pruebas

43 Resultados

431 Caso 1

432 Caso2

433 Caso 3

434 Caso4

44 Anaacutelisis de resultados

Conclusiones y trabajos futuros

Conclusiones

Trabajos futuros

27

27

28

29

29

31

33

34

35

36

36

37

38

39

41

43

44

44

45

45

46

47

48 49

50 51 51

i

lt

11

i Referencias

Anexo A Configuracioacuten de Microsoft Visual C+t 60

Anexo B Guiacutea raacutepida de uso del sistema S3C

Tabla de Contenido

52 59

lt 111

Listado de Figuras

3

Figura 11 - Arquitectura de la suite cenidet-UML

Figura 21 -Programacioacuten Visual

Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de Secuencias Figura 32 -Diagrama de Casos de Uso para el S3C

Figura 33 -Modelo Conceptual

Figura 34 - Diagrama de Clases -Control del Diagrama -

Figura 35 - Diagrama de Clases - Patroacuten Visitor - Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento Vista Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)

Figura 38 -Dialogo Caracteriacutesticas del Objeto

Figura 39 -Dialogo Mensaje

Figura 3 I O - Menuacute de los Diagramas de Secuencias (estaacutendar)

Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias

Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)

Figura 313 - Serializacioacuten

Figura 314 -Modelo de cascada del ciclo de vida del software

Figura 41 - Resultado del caso de prueba 1

Figura 42 -Resultado del caso de prueba 2

Figura 43 -Resultado del caso de prueba 3

Figura 44 -Resultado del caso de prueba 4

Paacutegina

3

13

22

23

25

26

26

29

30

31

32

32

32

34

35

37

45

46 47

48

iv

Tabla 11 - Tabla comparativa

Tabla 31 -Prefijos estaacutendar de identificadores

Tabla 32 -Elementos atoacutemicos del lenguaje

Tabla 41 - Resumen de los resultados de las pruebas realizadas

Listado de Tablas

Paacutegina

6 33

38 49

V

Notacioacuten

La siguiente es la notacioacuten de la que se haraacute uso

ltCObjectgt

ltGetDocunteiztgt

MiClase MiMetodo

9 Liacutenea de Coacutedigo

Mensaje

Clase de la MFC ( Microsoft Fundation Class)

Meacutetodo de una clase de la MFC

Clase desarrollada Meacutetodo de una clase desarrollada

Liacutenea o Bloque de coacutedigo

Elemento del Diagrama de Secuencia

vi

I Introduccioacuten

L~ tesis se enfoca hacia el desarrollo de sistemas de software centrados en el modelado mediante diagramas de secuencias definidos por el Lenguaje de Modelado Unificado (UML) La investigacioacuten y el producto de la tesis estaacuten inmersos en la etapa del disentildeo de sistemas de software

El producto (prototipo) de la tesis denominado S3C permite la obtencioacuten de diagramas de secuencias de UML tomando como base la informacioacuten de un diagrama de clases y de varios documentos modelados con diagramas de Wamier (disentildeo detallado de los meacutetodos)

Para la elaboracioacuten de los diagramas de clases se hace uso del ambiente existente InverSOODA [HER03] Y para el modelado de los documentos Wamier se ha tomado el ambiente InverDDVi [WEN02] Ambos ambientes visuales son productos de tesis anteriores y se han integrado en un solo prototipo denominado SCUML (Suite cenidet - UML)

(i

S3C realiza un proceso automaacutetico para la obtencioacuten de los diagramas de secuencias en este proceso solo se requiere indicar el diagrama de clases del que se basaraacute La construccioacuten de los diagramas de secuencias en S3C estaacute soportada con una gramaacutetica visual relacional El propoacutesito de la gramaacutetica es validar la construccioacuten de los diagramas de secuencias de UML

En el aacutembito de los diagramas de secuencias de UML no existen aplicaciones comerciales oacute proyectos educativos que se apoyen en una gramaacutetica visual para soportar la construccioacuten de los diagramas de secuencias y tampoco existen aplicaciones que permitan a partir de los diagramas de clases y del disentildeo detallado de los meacutetodos generar automaacuteticamente los diagramas de secuencias

3

Los temas relacionados a esta tesis son Modelado de Sistemas UML Interfaz de Usuario Programacioacuten Orientada a Objetos y Gramaacuteticas Visuales

El capiacutetulo 1 es de conceptos generales se dan a conocer los antecedentes del proyecto los trabajos relacionados hipoacutetesis alcances y limitaciones

En el capiacutetulo 2 se define el marco teoacuterico de la tesis se describen temas como Modelado de sistemas de software disentildeo de sistemas de software modelado visual lenguajes visuales programacioacuten orientada a objetos y lenguaje de modelado unificado

El capiacutetulo 3 describe el desarrollo del ambiente visual se detalla el modelo conceptual la arquitectura y sus elementos los diagramas de secuencias y la gramaacutetica visual relacional que se desarrolloacute

En el capiacutetulo 4 se muestran los casos de pruebas y los resultados obtenidos Y al final se establecen las conclusiones y se dan propuestas para algunos trabajos futuros 3

1

Capiacutetulo I

Conceptos generalis

En eacuteste capiacutetulo se dan a conocer los antecedentes del proyecto de tesis los trabajos relacionados el problema que resolveraacute la hipoacutetesis a comprobar los alcances y limitaciones

Conceptos generales

11 Antecedentes

Actualmente en el cenidet (Centro Nacional de Investigacioacuten y Desarrollo Tecnoloacutegico) se trabaja en la construccioacuten de un conjunto de ambientes visuales para dar soporte al desarrollo con diagramas que define el estaacutendar UML para elaborar sistemas de software de manera completa raacutepida y eficaz El ambiente de modelado principal se ha denominado suite cenidet-UML y su arquitectura general se muestra a continuacioacuten en la Figura 11

Arquitectura de la suite cenidet-UML

Figura 11 Arquitectura de la suite cenidet-UML

a El producto de software resultante de eacutesta tesis lleva por nombre S3C y como se indica en la figura 11 Las tesis directamente relacionadas son InverSOODA [HER03] e

InverDDVi [WEN02]

InverSOODA (Sistema Orientado a Objetos para Disentildeo y Anaacutelisis incluyendo Ingenieriacutea Inversa) es un Ambiente Visual que permite la elaboracioacuten de diagramas de clases de un sistema de software Los diagramas de clases son una vista estaacutetica y en ella se describe las relaciones que existen entre las entidades llamadas clases Cada una de las clases se divide en tres partes nombre de la clase meacutetodos y atributos Este ambiente permite generar el coacutedigo fuente en lenguaje C++ de un diagrama construido y tambieacuten aplicando la ingenieriacutea inversa es posible obtener un diagrama a partir de un coacutedigo en C++ existente

InverDDVi (Disentildeo Detallado Visual incluyendo Ingenieriacutea Inversa) es un Ambiente Visual cuyo objetivo es apoyar en la elaboracioacuten de diagramas de disentildeo detallado utilizando una notacioacuten basada en Warnier Los diagramas de Warnier sirven para describir una secuencia loacutegica de acciones y mediante su simbologiacutea se logra plasmar definiciones de meacutetodos llamadas a otros meacutetodos ciclos comparaciones lectura de informacioacuten y escritura de informacioacuten Este ambiente permite generar el coacutedigo fuente en C de un diagrama construido y tambieacuten aplicando la ingenieriacutea inversa se puede obtener un diagrama de Warnier a partir de un coacutedigo en C que ya exista

i

3

Conceptos generales

12 Trabajos relacionados

Rational Rose de Rafional

Una de las herramientas mas populares del mercado que utiliza la notacioacuten UML y tiene la capacidad de reingenieriacutea de software para integrar sistemas existentes capacidad de mezclar diferentes lenguajes dentro de un mismo modelo ademaacutes de ingenieriacutea inversa sobre los componentes COM (Component Object Model) ActiveX y Java y con soporte de las arquitecturas MicrosoWCOM y CORBAIDL (The Common Object Request Broker Architecture)

Con Rational Rose se puede trabajar en grupo con capacidades para modelar y visualizar procesos de negocios y requerimientos de sistemas Tiene soporte para generar esquemas objetos-relaciones de bases de datos para realizar anaacutelisis de datos Cuenta con el soporte para analizar sitios Web en ASP (Active Server Pages) y JSP (Java Server Pages) Ademaacutes soporta los lenguajes Java CC++ Visual CC++ [RAT02] 9

SI -

Visio de Microsoft

Visio Enterprise 2002 permite crear diferentes tipos de diagramas como son

1 Diagramas de flujo 2 Planos de oficinas 3 Diagramas de aacuterbol 4 Diagramas de organizacioacuten 5 Liacuteneas de tiempo 6 Mapas geograacuteficos y direccionales 7 Diagramas de sitios Web 8 Diagramas de red 9 Diagramas de UML

Tiene las siguientes caracteriacutesticas diagramacioacuten e importacioacuten de servicios de directorio reingenieria de bases de datos disentildeo y documentacioacuten de bases de datos diagramacioacuten de software ingenieriacutea directa e inversa de coacutedigo replicacioacuten exacta por medio de diagramas de equipos y configuraciones de red diagramacioacuten automatizada y ambiente colaborativo

Visio da un conjunto completo de herramientas de diagramacioacuten de redes para planear y documentar claramente las redes existentes Ademaacutes para crear esquemas eleacutectricos mecaacutenicos y de procesos pueden crearse diagramas complejos con facilidad y poco entrenamiento

A las aplicaciones existentes se les puede realizar la ingenieriacutea inversa para obtener el disentildeo y tambieacuten crear nuevos disentildeos Proporciona herramientas para crear diagramas de bases de datos y es posible realizar ingenieriacutea inversa de esquemas existentes en bases de datos cliente servidor como SQL Server IBM Oracle y otros [MIC02]

4

Conceptos generales

e JVision 21 de Object Insight

JVision permite en la ingenieriacutea directa la creacioacuten de clases variables y meacutetodos con lo cual genera plantillas de coacutedigo para programadores en Java Los diagramas se pueden exportar a HTML La documentacioacuten puede integrarse con JavaDoc de Sun JVision da el soporte para ingenieriacutea inversa para el lenguaje Java

Se pueden crear todos los diagramas definidos por UML en los diagramas de secuencias da la oportunidad de dibujar clases liacuteneas liacuteneas de tiempo de vida y marca de destruccioacuten de objetos ofrece ademaacutes el soporte para las acciones de llamada regresar valor enviar accioacuten crear accioacuten y eliminar accioacuten [OBJO2]

MagicDraw 6 de No Magic

Es una herramienta CASE con soporte para trabajo en grupo Esta disentildeado para analistas 6 de negocios analistas de software programadores ingenieros de calidad y

documentadores Esta aplicacioacuten provee la capacidad para crear los diagramas definidos por UML (soporta UML 14) Cuenta con el soporte de ingenieriacutea inversa y generacioacuten de coacutedigo para C++ C Java y CORBNIDL Tiene integracioacuten con NetBeans se actualiza automaacuteticamente disponible en aacuterabe portugueacutes franceacutes italiano ingles (US) alemaacuten espantildeol japoneacutes y coreano

Tiene la caracteriacutestica de soportar la adaptacioacuten de los elementos a colores que el usuario defina Los diagramas pueden exportarse a imaacutegenes JPG EMF WMF EPS y DXF En los diagramas de secuencia da oportunidad de definir roles textos notas mensajes de varios tipos al mismo objeto recursivo ademaacutes de la relacioacuten a las notas y las liacuteneas de vida Es posible guardar los diagramas como imaacutegenes de mapas de bits o vectores Mantiene ademaacutes una vista pequentildea a escala del diagrama completo [NoA402]

e

SmariDraw Professional Plus de SmariDraw

Todos los dibujos pueden agregarse en las aplicaciones de Microsoft como son Word Excel PowerPoint Contiene maacutes de 50000 (1000 en la versioacuten estaacutendar) formas predefinidas ejemplos y plantillas Los diagramas pueden ser exportados a imaacutegenes WMF BMP JPG GIF TIF y otros Incluye un convertidor de archivos de VISIO

Con esta herramienta es posible crear diagramas de flujo diagramas de bloque diagramas de flujos de datos diagramas de organizacioacuten aacuterboles de decisioacuten disentildeo de redes Gantt diagramas de flujo de procesos diagramas de administracioacuten de calidad diagramas eleacutectricos diagramas mecaacutenicos diagramas quiacutemicos liacuteneas de tiempo planes de espacio posters mapas formas y tambieacuten da soporte para UML es posible dibujar objetos actores activacioacuten de los objetos mensaje mensaje de retorno mensaje asiacutencrono mensaje con tiempo liacutenea de vida del objeto marca de destruccioacuten del objeto y ciclos (descrito con un rectaacutengulo y una condicioacuten de salida) [SMA02]

5

Conceptos generales

Producto Soporta Diagramas de UML Secuencias

Creacioacuten automaacutetica de diagramas de

El Rational Rose El Visio

Jvision

Magic D r a w

a a El Fl El a El El

I ~

I ~

I -

Ambiente de modelado de

a a SmartDraw El

Tabla I Tabla comparativa

Todas las herramientas descritas anteriormente cuentan con caracteriacutesticas sobresalientes para el disentildeo y modelado de sistemas de software pero ninguna de ellas genera automaacuteticamente los diagramas de secuencia con base en los diagramas de clases y el disentildeo detallado de los meacutetodos asiacute tambieacuten ninguna de ellas realiza un caacutelculo de los canales de comunicacioacuten abiertos entre las clases que conforman el sistema

iexcla la A UML Editor in Java

13 Definicioacuten del problema

El modelado de sistemas utilizando el estaacutendar de UML en diversos productos comerciales prototipos de laboratorio elaborados en universidades y centros de investigacioacuten atienden la perspectiva baacutesica de la abstraccioacuten general del modelo esto es documentar el modelo del sistema que se requiere sin atender puntos importantes tales como

La generacioacuten automaacutetica de los diagramas de secuencias La correccioacuten de inconsistencias en los diagramas al crearlos de forma separada

El

6

sistemas de software

secuencias utilizando diagramas de a a a

Conceptos generales

Se hace necesaria la creacioacuten de un ambiente visual que permita obtener de forma automaacutetica los diagramas de secuencias en base a los diagramas de clases y al disentildeo detallado de los meacutetodos para facilitar la documentacioacuten la generacioacuten de coacutedigo y el mantenimiento de los sistemas

La obtencioacuten de los diagramas de secuencias estaacute basada en los Diagramas de Clases definidos por UML que son construidos con la herramienta InverSOODA junto con el disentildeo detallado de los meacutetodos construidos con Diagramas de Wamier elaborados con la herramienta InverDDVi

En el estaacutendar UML para la construccioacuten de los diagramas no existe actualmente una sintaxis expliacutecita definida solo existe impliacutecitamente en el uso de los elementos del diagrama por lo que se ha descrito una gramaacutetica visual de tipo relaciona1 como soporte para la construccioacuten de los Diagramas de Secuencias

n ai 14 Objetivo de la Tesis

Construir un ambiente visual que permita al usuario obtener el diagrama de secuencias de manera automaacutetica

141 Objetivos especiacuteficos de la tesis Crear una gramaacutetica que soporte la construccioacuten del diagrama de secuencias Construir de forma automaacutetica el diagrama de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodos

15 Hipoacutetesis de investigacioacuten

Es posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodos

16 Alcances y limitaciones del trabajo de tesis

Los alcances de la tesis se especifican a continuacioacuten

Se elaboroacute la arquitectura del sistema Se definioacute la gramaacutetica de soporte Se desarrolloacute la interfaz en Visual C++ haciendo uso de las MFC Se interactuacutea con los diagramas de clases de InverSOODA Se interachiacutea con el disentildeo detallado de los meacutetodos realizados por InverDDVI Se genera el diagrama de secuencias de forma automaacutetica

7

Conceptos generales

Limitaciones de la tesis

0 No se genera coacutedigo

La investigacioacuten se limita a los diagramas de clases para la vista estaacutetica de los sistemas de software y a los diagramas de Warnier para la vista dinaacutemica de los meacutetodos El ambiente no trabaja en red

No se modifican los archivos de InverSOODA No se modifican los archivos de InverDDVI No se recuperan diagramas de secuencias a partir de coacutedigo legado

4

8

Capiacutetulo 2

Narc0 teoacuterico

En eacuteste capiacutetulo se describen los temas usados para el desarrollo de la tesis iquestQue son los modelos iquestEn que parte del proceso de Ingenieriacutea del Software se usan los modelos o el modelado Se estudia la interfaz de usuario los lenguajes visuales y las gramaacuteticas visuales Se describe el Lenguaje de Modelado Unificado (UML) ademaacutes de la programacioacuten orientada a objetos por ser este paradigma en donde se enfoca este trabajo

Marco teoacuterico

21 Modelado de sistemas de software

un modelo es una abstraccioacuten de algo con el propoacutesito de entenderlo antes de construirlo El modelo omite detalles no esenciales haciendo maacutes faacutecil su manipulacioacuten que la entidad original [BLA98] Un modelo es la simplificacioacuten de la realidad [RUM99] Los propoacutesitos de los modelos son

Probar una entidad fisica antes de construirla Establecer mejor comunicacioacuten con los clientes Visualizar el problema y el sistema desde una mejor perspectiva Reducir la complejidad [BLA98] Capturar y precisar requerimientos y conocimiento del dominio Pensar acerca del disentildeo del sistema Capturar decisiones de disentildeo en una fomia separada que cambia a partir de los requerimientos Generar productos Organizar buscar filtrar obtener examinar y editar informacioacuten acerca de un sistema Explorar muacuteltiples soluciones econoacutemicas Manejar sistemas complejos [RUM99]

El modelado es una probada y bien aceptada teacutecnica de Ingenieriacutea de Software [RUM99] El modelado es parte central de todas las actividades que conducen a la produccioacuten de buen software Se construyen modelos para comunicar la estructura deseada y revisar el comportamiento de nuestro sistema Se construyen modelos para visualizar y controlar la arquitectura del sistema Se construyen modelos para comprender mejor el sistema que estamos construyendo muchas veces descubriendo oportunidades para la simplificacioacuten y la reutilizacioacuten Se construyen modelos para controlar el riesgo [BOO99] La razoacuten fundamental por la que modelamos es porque nosotros construimos modelos que nos ayudan a entender mejor el sistema que estamos desarrollando [RUM99]

El modelado nos permite [RUM99] 1 Visualizar como es el sistema o como queremos que sea 2 Especificar la estructura del sistema 3 Plantear nuestras guiacuteas en la construccioacuten delsistema 4 Documentar las decisiones que hemos tomado

En las etapas del desarrollo del software el modelado es usado en el disentildeo el disentildeo del sistema es la primera etapa en donde se da la aproximacioacuten baacutesica de la solucioacuten al problema seleccionado ademaacutes se decide por la estructura (arquitectura del sistema) y el estilo de la solucioacuten

La arquitectura del sistema provee el contexto sobre el cual se tomaraacuten decisiones mas detalladas en las etapas subsecuentes del disentildeo [BLA98] En el disentildeo modelamos el sistema y encontramos su forma (incluida la arquitehra) para que soporte todos los 3 -

10

Marco teorico

i

4 -I

requisitos -incluyendo los requisitos no funcionales y otras restricciones- que se le suponen [JAC99] Los propoacutesitos del disentildeo son

Adquirir una comprensioacuten en profundidad de los aspectos relacionados con 10s requisitos no funcionales y restricciones relacionadas con los lenguajes de programacioacuten componentes reutilizables sistemas operativos tecnologiacuteas de distribucioacuten y concurrencia tecnologiacuteas de interfaz de usuario tecnologiacuteas de gestioacuten de transacciones etc Crear una entrada apropiada y un punto de partida para actividades de implementacioacuten subsiguientes capturando los requisitos o subsistemas individuales interfaces y clases Ser capaces de descomponer los trabajos de implementacioacuten en partes mas manejables que puedan ser llevadas a cabo por diferentes equipos de desarrollo teniendo en cuenta la posible concurrencia Capturar las interfaces entre los subsistemas Esto ayuda cuando reflexionamos sobre la arquitectura y cuando utilizamos interfaces como elementos de sincronizacioacuten entre diferentes equipos de desarrollo Ser capaces de visualizar y reflexionar sobre el disentildeo utilizando una notacioacuten comuacuten Crear una abstraccioacuten independiente de la implementacioacuten del sistema en el sentido de que la implementacioacuten es un refinamiento directo del disentildeo que rellena lo existente sin cambiar la estructura Esto permite la utilizacioacuten de tecnologiacuteas como la generacioacuten de coacutedigo y la ingenieriacutea de ida y vuelta entre el disentildeo y la implementacioacuten [JAC99]

22 Interfaz de usuario (Mecanismos de interaccioacuten)

El crecimiento de las computadoras personales vendidas en los ~ O rsquo S lanzoacute con fuerza el ldquofaacutecil de usarrdquo como una de las caracteriacutesticas mas importante de un producto de computadora

Las interfaces graacuteficas de usuario no son nuevas se pueden encontrar en las paredes de cuevas al sur de Francia en las piraacutemides de Egipto y en las paredes de muchas ciudades [iUM92] Para el usuario de un sistema interactivo la comunicacioacuten es tan importante como la computacioacuten Para los usuarios regularmente la interfaz es el sistema [HIX93]

Disentildeo de Interfaz Seguacuten Hackos [HAC98] las interfaces estaacuten en todo donde se trabaja con

o Controles en productos de hardware o Etiquetas y sentildeales en el hardware o Pequentildeas pantallas de cristal liquido en maacutequinas de cualquier tipo o Pantallas para aplicaciones de software para terminales de computadoras centrales

Marco teoacuterico

o pantallas para aplicaciones de software en computadoras Personales sistemas operativos como Windows OS2 DOS Macintosh U n b Y Otros

0 Paacuteginas de un sitio WEB 0 Sistemas de ayuda y manuales en-liacutenea 0 Tutoriales incrustados y otros tipos de soporte de funcionamiento O Esquemas de formas y otros documentos

una interfaz es el medio con el cual los usuarios interactuacutean con el producto 0

sistema para lograr SUS objetivos

Interfaz Usable

Para que una interfaz sea usable debe ser transparente y darles a los usuarios la capacidad de lograr cumplir sus metas de forma efectiva y eficiente

Los beneficios presentados en el uso de las interfaces de usuario [TH190] Disfrutar el sistema El usuario disfruta trabajar con un sistema que cuenta con una interfaz bien disentildeada y que le da la funcionalidad y acceso a los recursos de una manera clara y sencilla Proporciona nuevas habilidades Elimina al usuario concentrarse en acciones que la propia interfaz y el sistema hacen dando como resultado que el usuario solo se concentre en lo importante del trabajo Delegacioacuten de tareas La interfaz de usuario permite al usuario no conocer los detalles de la tarea esto es la computadora atiende los detalles de las tareas mientras que el usuario se concentra en asuntos de maacutes alto nivel Seguridad El usuario no necesita estar en lugarespeligrosos para hacer su trabajo

Se da la mayor posibilidad para que el usuario tenga acceso al conocimiento utilizando un sistema interactivo Haciendo las cosas a la primera Las tareas se ejecutan en un orden correcto definido lo que da como resultado un trabajo bien terminado sin necesidad de repetir evitando asiacute altos costos Computando LOS usuarios pueden calcular datos sin necesidad de conocer el proceso para obtener los resultados

Desarrollo

El disentildeo de interfaz es un negocio bastante dificil Eacuteste combina dos complicadas disciplinas psicologiacutea y ciencias de la computacioacuten Estas disciplinas tienen un fondo cultural muy diferente la psicologiacutea atiende a la gente (comprensioacuten y entendimiento) las ciencias computacionales a las maacutequinas (matemaacuteticas y precisioacuten) El disentildeo de las buenas interfaces requiere que estas dos perspectivas esteacuten unidas [THi90]

Hackos dice que las interfaces dan simplicidad y elegancia al trabajo necesario y a la vida e los usuarios Si no es obvio al usuario pero es raacutepida para aprender [HAC98] ademaacutes define caracteriacutesticas comunes de las interfaces usables

o Hacen que el flujo de trabajo sea familiar o confortable o Soportan el estilo de aprendizaje de los usuarios

12

Marco teoacuterico

Visualizacioacuten de Entrenamiento visual Para controlar Soportar interaccioncs Programar con informacioacuten visual visuales expresiones visuales

o Compatibles con los ambientes de trabajo de los usuarios o Se extienden sobre un concepto de disentildeo que es familiar al usuario o Tienen consistencia de presentacioacuten que los hace parecer maacutes confiable y faacuteciles de

aprender o Usan lenguaje y figuras familiares al usuario o faacuteciles de aprender

Datos o informacioacuten acerca de datos

23 Lenguajes Visuales

Los lenguajes visuales son un nuevo paradigma para expresar los sistemas computacionales Ellos ofrecen la posibilidad de manipular directamente los objetos Un lenguaje visual consiste de sentencias visuales Para lenguajes visuales basados en iacuteconos cada sentencia visual es un arreglo espacial de objetos O iacuteconos graacuteficos [CHA90]

Un lenguaje visual es concebido como una coleccioacuten de figuras obtenidas por un arreglo graacutefico de objetos en dos o maacutes dimensiones Los lenguajes visuales pueden ser modelados sintaacutecticamente a traveacutes de un vocabulario un conjunto de relaciones usadas para componer las figuras y un conjunto de reglas describiendo las figuras pertenecientes al lenguaje Los objetos graacuteficos de un vocabulario de un lenguaje visual se caracterizan por contar con un conjunto de atributos Los atributos de un objeto graacutefico pueden ser atributos graacuteficos atributos sintaacutecticos y atributos semaacutenticos [MAR98]

Un lenguaje de programacioacuten visual puede ser informalmente definido como un lenguaje el cual usa algunas representaciones visuales [SHV88]

Programa ylo Disentildeo de Lenguajes de programacioacuten visual ejecucioacuten software Diagramas iconos Formas

Programacioacuten Visual [SHU88]

Gramaacuteticas para la especificacioacuten de lenguajes visuales [MAR98]

a) Gramaacuteticas texfuales generalizadas Este tipo de gramaacutetica provee una adaptacioacuten apropiada de la concatenacioacuten de siacutembolos para dos dimensiones Su principal ventaja es que conservan los elementos teoacutericos de las gramaacuteticas textuales y los eficientes algoritmos de anaacutelisis de eacutestos uacuteltimos Su principal desventaja es que eacutestas gramaacuteticas no son tan poderosas y soacutelo pueden especificar clases restringidas de lenguajes visuales

13

Marco teorico

b) Meacutetodos basados en gramaacuteticas de grafos Un ejemplo de este tiPo de gramaacuteticas son las gramaacuteticas de red Las oraciones generadas con gramaacuteticas de red son grafos dirigidos con siacutembolos en los nodos Estos grafos son llamados redes Una produccioacuten de eacuteste tipo de gramaacuteticas es de la siguiente forma

a - t p E

donde a y p son redes y E es una forma de conectar a p cuando a es conectada a otra red anfitriona

La mayor desventaja es que las gramaacuteticas de red no han probado ser totalmente uacutetiles para la especificacioacuten de gramaacuteticas arbitrarias por la complejidad para rescribir grafos y al hecho de que no todo lenguaje visual estaacute compuesto exclusivamente por grafos

C) Gramaacuteticas de multiconjuntos de atributos En estas gramaacuteticas las producciones rescriben conjuntos o multiconjuntos de siacutembolos que tienen atributos con informacioacuten sobre geometriacutea o semaacutentica La reescritura se controla con restricciones sobre los atributos de los siacutembolos en el lado derecho de las producciones

Un ejemplo de eacutestas gramaacuteticas es la Gramaacutetica Coordinada que especifica notacioacuten matemaacutetica de dos dimensiones En esencia las producciones en una gramaacutetica coordinada n-coordinada libre del contexto tienen la siguiente forma

A -t a donde C F

Todos los siacutembolos de eacuteste tipo de gramaacutetica tienen n atributos geomeacutetricos A es un siacutembolo no terminal a es una cadena no vaciacutea de siacutembolos C es una restriccioacuten sobre los atributos de los siacutembolos en a y F es una expresioacuten que computa los atributos de los siacutembolos de A en teacuterminos de los atributos de los siacutembolos en a no importando el orden de los siacutembolos en a

d) Gramaacuteticas PosicionaZes Las gramaacuteticas posicionales son un formalismo para la definicioacuten e implementacioacuten de lenguajes visuales las gramaacuteticas posicionales extienden naturalmente a las gramaacuteticas libres de contexto Una gramaacutetica libre de contexto posicional PG es una six-tupla (N T S P POS PE) donde

N es un conjunto finito no vaciacuteo de siacutembolos no terminales T es un conjunto finito no vaciacuteo e siacutembolos terminales con N n T = $I S E N es el siacutembolo no terminal de inicio P es un conjunto finito de producciones POS es un conjunto finito de identificadores de relacioacuten binaria PE es un evaluador pictoacuterico

14

Marco teorico

Cada produccioacuten en P tiene la siguiente forma

A -+ X I R I X R2 X ~ I Rm1 xm A

e) Gramaacuteticas de Relacioacuten de siacutembolos Eacuteste es un formalismo sintaacutectico para describir un lenguaje visual donde cada oracioacuten dentro del lenguaje se representa como un conjunto de objetos visuales y un conjunto de relaciones entre objetos

El alfabeto de siacutembolos Vt y el conjunto de relaciones entre siacutembolos Vr una oracioacuten de relacioacuten de siacutembolos w sobre Vt y Vr es un par ( M R) donde

M es un conjunto de elementos-s (v i) con v E Vt y i es un nuacutemero natural R es un conjunto de elementos-r de la forma r (Xi Yj) con Xi Yj E M r E Vr y una relacioacuten r esta contenida entre Xi y Yj

Una gramaacutetica de relacioacuten de simbolos es el conjunto de seis elementos G = (Vn Vt Vr S P R) donde Vn es un conjunto de siacutembolos no terminales Vt es un conjunto de siacutembolos terminales Vr es un conjunto de relaciones entre siacutembolos S es el siacutembolo inicial y P es un conjunto de reglas de reescritura (producciones de elementos-s)

f) Gramaacuteticas relacionales Este tipo de gramaacutetica pertenecen a las gramaacuteticas libres de contexto

La gramaacutetica relaciona1 (RGrsquos) es una 6-tupla G (N C S R Attr P) donde

N C S R Attr P

es un conjunto finito de siacutembolos no terminales es un conjunto de siacutembolos terminales es un siacutembolo distinguido en N llamado siacutembolo inicial es un conjunto finito de siacutembolos de relacioacuten es un conjunto finito de siacutembolos de atributos es un conjunto de producciones de la forma A-gt apF donde A E N a E (nlo)+ Donde n E N cr E E

8 Es un conjunto de relaciones de la forma (r x y) donde r E R y xy son enteros que hacen referencia a un miembro de a y tambieacuten una expresioacuten de la forma (a i) donde a E Attr e i es un entero que hace referencia a un miembrode a

F Es un conjunto de declaraciones de asignacioacuten de caracteriacutesticas de la forma (a O)=x donde a E Attr y x es un entero que hace referencia a un miembro de a o a una expresioacuten de la forma (a i)

15

Marco teoacuterico

24 Programacioacuten orientada a objetos

L~~ meacutetodos orientados a objetos organizan la informacioacuten Y el procesamiento que manipula esta informacioacuten de acuerdo a los objetos delrsquomundo real que la informacioacuten describe [BRO97l

Beneficios de las teacutecnicas orientadas a objetos [BR097] Estabilidad del sistema Mantenibilidad Componentes reusables Confiabilidad Accesibilidad de los datos Participacioacuten del usuario

Seguacuten Graddy Booch la programacioacuten orientada a objetos es ldquoun meacutetodo de implementacioacuten en el que los programas se organizan como colecciones cooperativas de objetos cada uno de los cuales representan una instancia de alguna clase y cuyas clases son todas miembros de una jerarquiacutea de clases unidas mediante relaciones de herenciardquo [JOY 981

Programacioacuten orientada a objetos esencialmente significa programacioacuten usando objetos [JAC93] Los lenguajes orientados a objetos deben soportar los siguientes conceptos

Objetos Abstraccioacuten de datos Encapsulamiento Clases e Instancias Herencia entre clases Polimorfismo

Las propiedades fundamentales de la Programacioacuten Orientada a Objetos son

a Abstraccioacuten Son ideas conceptos y propiedades que se describen en forma general eliminando los detalles Es una estructura de datos y los meacutetodos que manipulan a esos datos

b Encapsulamiento Son las fronteras propias de un objeto bien definidas las cuales protegen los detalles de su representacioacuten interna

c Ocultacioacuten de la informacioacuten Es la propiedad en la que los objetos pueden hacer uso para impedir que otros objetos los usuarios o incluso los programadores conozcan coacutemo estaacute distribuida la informacioacuten

d Herencia Es la propiedad que tiene una clase para heredar atributos y comportamiento a otras clases

e Polirnorfismo Es la propiedad que permite que una entidad pueda cambiar a diferentes formas efectuaacutendose de manera dinaacutemica en tiempo de ejecucioacuten

16

Marco teoacuterico

t

Clases Es la especificacioacuten de una familia de objetos es la declaracioacuten de un tipo de objetos Tambieacuten se dice que una clase es la descripcioacuten de un conjunto de objetos con un comportamiento similar y que esta compuesta de Datos (o atributos) y Meacutetodos o (rutinas acciones operaciones)

Objeto Un objeto es una entidad en la cual se almacenan datos y los meacutetodos o funciones que controlan dichos datos Un objeto es una abstraccioacuten de alguna cosa del mundo real que contiene datos que lo describen y operaciones que solo tienen acceso a esos datos [BR097l Los elementos de los que esta conformado un objeto son

a Las relaciones permiten que el objeto se integre en la organizacioacuten b Las propiedades son los datos que caracterizan el estado de un objeto distinguiendo

asiacute a un objeto determinado de los restantes que forman parte de la misma organizacioacuten

c Los meacutetodos son las operaciones que pueden realizarse sobre la estructura del objeto es decir las acciones que cambian el estado de un objeto y que el objeto es capaz de ejecutar a traveacutes de mensajes y que tambieacuten pone a disposicioacuten de sus descendientes a traveacutes de la herencia

Mensajes Son solicitudes para que se lleve a cabo la operacioacuten indicada y se produzca un resultado

Las razones principales para introducir la tecnologiacutea de objetos son los beneficios de dicha tecnologiacutea

Aumento de la fiabilidad Aumento de la productividad del desarrollador Desarrollo maacutes raacutepido Mejor calidad maacutes alta

Incremento en escalabilidad Mejores estructuras de informacioacuten Incremento de adaptabilidad Reduccioacuten del coacutedigo fuente

Mantenimiento maacutes faacutecil y reduccioacuten de costo

Los elementos de reutilizacioacuten son las clases y objetos

25 Lenguaje de Modelado Unificado (UML)

UML (Unified Modeling Language por sus siglas en ingleacutes Lenguaje de Modelado Unificado) es un lenguaje de modelado visual de propoacutesito general que es utilizado para especificar visualizar construir y documentar las partes de un sistema de software El lenguaje estaacute basado en un pequentildeo nuacutemero de conceptos centrales que la mayoriacutea de los desarrolladores de tecnologiacutea orientada a objetos pueden aprender y aplicar faacutecilmente [RUM99]

17

Marco teoacuterico

y UML Pasado Presente y Futuro

L~~ lenguajes de modelado orientado a objetos aparecieron a mediados de 10s 70rsquos Varias teacutecnicas influenciaron estos lenguajes El nuacutemero de lenguajes de modelado incrementoacute desde menos de 10 hasta maacutes de 50 entre 1989 y 1994 Muchos modeladores teniacutean problemas para encontrar un lenguaje de modelado que satisficiera todas sus necesidades Notablemente aparecioacute Boochrsquo93 y la evolucioacuten continuoacute a OMT y Fusioacuten

OOSE (Object-Oriented Software Engineering) estaacute enfocado a la ingenieriacutea de negocios y anaacutelisis de requerimientos dando un excelente soporte orientado a casos de uso OMT-2 es especialmente expresivo para anaacutelisis y sistemas de informacioacuten de datos grandes Boochrsquo93 fue particularmente expresivo para el disentildeo y fases de construccioacuten de proyectos y popular para aplicaciones de ingenieriacutea intensiva

Grady Booch y Jim Rumbaugh iniciaron el desarrollo de UML en 1994 al unificar sus meacutetodos independientes Booch y OMT En 1995 Ivar Jacobson se unioacute a Racional eacutesta unioacuten logroacute que el meacutetodo OOSE se incorporara La unificacioacuten establecioacute que debiacutean activar el modelado de sistemas utilizando conceptos orientados a objeto asiacute como crear un lenguaje usable tanto para las maacutequinas como para los humanos

A

Muchas organizaciones se unieron al consorcio UML y dedicaron recursos al trabajo hacia el fortalecimiento de la definicioacuten de UML Esta colaboracioacuten produjo un lenguaje de modelado expresivo poderoso y generalmente aplicable En la forma actual de UML se espera que sea base de muchas herramientas incluidas las de modelado visual simulacioacuten y ambientes de desarrollo

R UML es abierto y no-propietario y aunque define un lenguaje preciso no es barrera para futuras mejoras en conceptos de modelado Se usan muchas teacutecnicas de punta pero se esperan teacutecnicas adicionales que influencien futuras versiones de UML puede ser extendido sin redefinir el nuacutecleo

c

Mientras el rehuacuteso basado en componentes se ha favorecido ampliamente cada vez mas esto no significa que las teacutecnicas basadas en componentes reemplazaraacuten las teacutecnicas orientadas a objetos Hay solo sutiles diferencias entre la semaacutentica de componentes y clases [ALC03]

Un opaco rendimiento caracterizoacute el mercado de anaacutelisis modelado y disentildeo en el 2000 en su transicioacuten de las viejas herramientas CASE (Computer Aided Software Engineering) a algo maacutes dinaacutemico y mejor adaptado para satisfacer las necesidades de los desarrolladores para el cambio raacutepido en los ambientes de negocio

El mercado de anaacutelisis modelado y disentildeo lograraacute obtener un crecimiento positivo en varios de los siguientes antildeos por varias razones El mercado seraacute manejado principalmente por la necesidad de desarrolladores a obtener aplicaciones para lanzarse al mercado raacutepidamente asiacute tambieacuten por el intereacutes creciente y uso de una nueva especie de herramienta y por el intereacutes creciente de los desarrolladores en usar UML reglas de negocios y adaptadores de componentes para construir aplicaciones [RIKUI]

z -

18

Marco teoacuterico

UML se ha hecho el estaacutendar para los desarrollos de modelado de negocios administracioacuten de requerimientos anaacutelisis y disentildeo programacioacuten y pruebas Los objetivos primarios de UML en el disentildeo [RAT97j

o Dar a los usuarios un lenguaje visual expresivo de modelado listo para usarse para que puedan desarrollar y cambiar los significados de sus modelos

o Suministrar mecanismos de extensibilidad y especializacioacuten para extender los conceptos centrales

o Ser independiente de lenguajes de programacioacuten particulares y procesos de desarrollo

o Impulsar el desarrollo de las herramientas Orientadas a Objeto en el mercado o Soportar conceptos de desarrollo de alto nivel como colaboracioacuten marcos de

componentes reutilizables patrones y componentes o Integrar las mejores praacutecticas

9 El aacutembito de UML

UML es un lenguaje para especificacioacuten construccioacuten visualizacioacuten y documentacioacuten de artefactos de un sistema de software UML es la fusioacuten de los conceptos de Booch OMT y OOSE El resultado es un simple comuacuten y ampliamente usado lenguaje de modelado para usuarios de estos y otros meacutetodos UML se enfoca en un lenguaje de modelado estaacutendar no en un proceso estaacutendar los autores de UML recomiendan un proceso de desarrollo manejado por casos de uso de arquitectura central iterativo e incremental [iiquest4T97l

Para la definicioacuten de sistemas de software en UML se definen diagramas Un diagrama es la representacioacuten graacutefica de un conjunto de elementos este se visualiza la mayoriacutea de las veces como un grafo conexo de nodos (elementos) y arcos (relaciones) Los diagramas se dibujan para visualizar un sistema desde diferentes perspectivas de forma que un diagrama es la proyeccioacuten de un sistema uumlML incluye nueve diagramas [B0099]

4 -

I Diagrama de clases 2 Diagrama de objetos 3 Diagrama de casos de uso 4 Diagrama de secuencias 5 Diagrama de colaboracioacuten 6 Diagrama de estados 7 Diagrama de actividades 8 Diagrama de componentes 9 Diagrama de despliegue

Diagramas de secuencias Un diagrama de secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten comportamiento

Un diagrama de secuencias muestra un conjunto de mensajes acomodados en una secuencia de tiempo eacuteste diagrama muestra la interaccioacuten en un esquema de dos - dimensiones [RUM99]

19

Marco teoacuterico

Y -

Un diagrama de secuencia es un diagrama de interaccioacuten que resalta la ordenacioacuten temporal de los mensajes Un diagrama de secuencia presenta un conjunto de objetos y los mensajes enviados y recibidos por ellos Los objetos suelen ser instancias (con nombre o sin nombres) de clases pero tambieacuten pueden representar instancias de otros elementos tales como colaboraciones componentes y nodos Los diagramas de secuencia se utilizan para describir la vista dinaacutemica de un sistema [B0099]

Usar los diagramas de secuencia es mostrar la secuencia que existe en un caso de uso [RUM 991

Los diagramas de secuencia tienen dos dimensiones Una dimensioacuten que representa el tiempo Otra dimensioacuten que representa los diferentes objetos que participan en la secuencia de eventos requeridos para completar el propoacutesito [MOuuml98]

El principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildea las interacciones de los objetos [DAN02]

20

Capiacutetulo 3

DesawoCCo de Ia herramienta

En este capiacutetulo se describe el desarrollo del Ambiente Visual Se describe el modelo conceptual del sistema la arquitectura asiacute como tambieacuten los elementos que componen la Arquitectura Se estudian los Diagramas de Secuencias de UML y algunos Patrones de Disentildeo de los que se hace uso para el mejor desarrollo del sistema Se describe a detalle la Gramaacutetica Visual Relaciona1 utilizada para el de Ambiente de desarrollo

I CENIOET 1FNTRO DE INFORMACION

Desarrollo de la herramienta

t i i

Actualmente existe en el cenidet un Ambiente Visual de Modelado de Clases llamado InverSOODA este Ambiente Visual tiene la capacidad de realizar la generacioacuten automaacutetica de coacutedigo de las clases en C++ a partir del modelo especificado Ademaacutes se puede realizar la Ingenieria Inversa de un coacutedigo legado para obtener el modelo de clases Aunado a este trabajo existe el Ambiente Visual denominado InverDDVi con el cual se puede realizar el Disentildeo Detallado de los Meacutetodos de las Clases con diagramas de Warnier Asiacute tambieacuten es posible obtener el modelo aplicando la Ingenieriacutea Inversa a un coacutedigo legado en C++

Ambos trabajos son retomados en este proyecto para la automatizacioacuten en la obtencioacuten de los Diagramas de Secuencias de UML La figura 31 muestra el modelo propuesto de ingenieriacutea directa

Extraer informacioacuten del diagrama de

rsquo rsquo

Diagrama de 11 clases I o

detallado de

detallado de

o meacutetodos

i ir---- Construir el

secuencias i

Modelo de Ingenieriacutea I directa automaacutetica

I

Figura 31 Modelo de Ingenieria Directa Autombtica de los Diagramas de Secuencias

Para la construccioacuten automaacutetica de un diagrama de secuencias se toma como base a un diagrama de Clases El modulo ldquoExtraer informacioacuten del diagrama de Clasesrdquo sirve para obtener el nombre y los meacutetodos descritos en cada uno de las clases que existan en el diagrama de Clases

22

Desarrollo de la herramienta

Con base en la informacioacuten que se tiene se abren los archivos correspondientes a los diagramas de Warnier El proceso que se emplea sobre cada uno los diagramas de Warnier llamado ldquoExtraer informacioacuten de los disentildeos detallados de los meacutetodosrdquo sirve para recopilar el conjunto de las llamadas de cada meacutetodo definido

En el siguiente paso (ldquoReconocer llamadas a meacutetodosrdquo) consiste en identificar si los meacutetodos que estaacuten descritos en los diagramas de Warnier tambieacuten lo estaacuten en el diagrama de Clases correspondiente

El paso ldquoConstruir los diagramas de secuencias automaacuteticamenterdquo realiza una validacioacuten de los meacutetodos definidos en los diagramas de Clases con los meacutetodos definidos en los diagramas de Warnier Este paso crea una estructura de datos con la secuencia de las llamadas y la recorre para crear los objetos y los mensajes en el diagrama de secuencias

AI terminar la creacioacuten automaacutetica del diagrama de secuencias se dispone de la r opcioacuten de guardar

31 Disentildeo de la Arquitectura

Para definir los procesos que el sistema va a realizar es necesario llevar a cabo un anaacutelisis de requisitos los cuales pueden ser expresados mediante diagramas de Casos de Uso Los Casos de Uso son una descripcioacuten textual narrativa de los procesos de un sistema

311Requisitos (Diagrama de Casos de uso)

Los casos de uso en realidad no son un artefacto de anaacutelisis orientado a objetos estos describen simplemente procesos y pueden ser igualmente efectivos en un proyecto tecnoloacutegico no orientado a objetos Son usados en un paso preliminar a la descripcioacuten de requerimientos de un sistema [LAR971 La Figura 32 muestra el diagrama de casos de uso que especifica al S3C

9

S3C (Diagramas de Secuencias)

usuario I Modelado de

I

Figura 32 Diagrama de Casos de Uso para el S3C

23

Desarrollo de la herramienta

Descripcioacuten de los Casos de Uso

Caso de Uso ldquoDiagramas de Secuenciasrdquo Se inicia cuando el actor ldquousuariordquo solicita la creacioacuten de un Diagrama de Secuencias Se establece la forma de la construccioacuten automaacutetica de los diagramas de secuencias de UML Se hace uso del Modelado de Clases y del Modelado del disentildeo detallado de los meacutetodos

Escenario de Eacutexito 1 Se obtiene la informacioacuten de las clases del modelado de clases 2 Se obtiene la informacioacuten del modelado del disentildeo detallado de los meacutetodos 3 Se realiza la construccioacuten automaacutetica de los diagramas de secuencias

1 En el modelo de clases no hay informacioacuten o estaacute incompleta 2 En el modelo del disentildeo detallado de los meacutetodos no hay informacioacuten o estaacute

incompleta

Escenario de Falla

Caso de Uso ldquoModelado de Clasesrdquo El diagrama de Clases se utiliza para obtener los nombres de clases y los nombres de los meacutetodos de cada clase

Escenario de Eacutexito 1 Se abre el modelo 2 Se procesa para obtener la informacioacuten de las clases (nombres de clases y nombres

de meacutetodos)

Escenano de Falla h 1 No se puede abrir el modelo J 2 El modelo esta vaciacuteo

Caso de Uso ldquoModelado del Disentildeo detallado 1 los meacutetodosrdquo El disentildeo detallado de los meacutetodos se realiza con diagramas de Warnier aquiacute se establecen las llamadas a funciones dentro del sistema y es aquiacute donde se identifica el dinamismo que se representaraacute en los diagramas de secuencias

Escenario de Eacutexito 1 Se abre el modelo 2 Se realiza la identificacioacuten de las llamadas existentes

Escenario de Falla 1 No se puede abrir el modelo 2 El modelo esta vaciacuteo

24

Desarrollo de la herramienta

Clase Objeto ni I Diagrama I n ____ Nombre Descripcioacuten

i

Mensaje

Tipo

En el Anaacutelisis Orientado a Objetos se crea una especificacioacuteii del dominio del problema y de los requeriinientos desde la perspectiva de una clasificacioacuten por objetos y del entendimiento de los teacuterminos usados en el dominio del problema Una descomposicioacuten del dominio del problema involucra una identificacioacuten de conceptos atributos y asociaciones que son considerados importantes dentro del dominio El resultado puede ser expresado en un Modelo Corzcepttraf el cual es ilustrado en un conjunto de diagramas que definen conceptos (objetos) [LAR97]

312Modelo Conceptual

El modelo conceptual visto en la Figura 33 no es una descripcioacuten de componentes de software representa conceptos en el domino del problema en el mundo Teal [LAR97l

313Diagramas de clases

Por cuestiones dc espacio las clases de la arquitectura del sistema estaraacuten referidas en varios diagramas que de alguna manera estaacuten relacionados entre si

Una de las partes maacutes importantes del Ambiente Visual S3C es la estructura de clases ltCCraJicogt la cual se refiere al control de los diagramas eacutesta por su naturaleza podriacutea considerarse el nuacutecleo del sistema La manipulacioacuten y control de los diagramas estaacute definido en una estructura de clases organizada con el patroacuten de disentildeo Composite que se muestra en la Figura 34

25

Desarrollo de la herramienta

CRecursividadDS CMensajeDS CObjetoDS CDiagramaDS

I Cvisitor I

CApuntadorDS CDblClickDS CAsocAdjusterDS CSelectorDS

26

Desarrollo de la herramienta

n 32 Elementos de la arquitectura

Es necesario describir los elementos que dan soporte a la arquitectura del ambiente donde se implementaraacute el sistema en este caso Microsoft Visual (MV) C++ 6 El MV C++ es un marco de aplicacioacuten poderoso basado en Windows se integran ademaacutes del lenguaje C++ (compilador y enlazador) el programa de desarrollo de programas en lenguaje C para Windows (SDK) la Microsoft Foundation Class Library AppWizzard Classwizard AppStudio y WorkBencli

La Microsoft Foundation Class Library comprende una biblioteca de clases de C++ y es considerada como el nuacutecleo del MV C++

321Microsoft Foundation Class (MFC)

La libreriacutea Microsoft Foundation Class (MFC) es una interfaz orientada a objetos que tiene las siguientes metas de disentildeo

o

Reduccioacuten significante de esfuerzo al escribir una aplicacioacuten para Windows Velocidad de ejecucioacuten comparable a las APIrsquos del lenguaje C Miacutenimo tamantildeo de coacutedigo Capacidad para llamar cualquier funcioacuten de Windows en C directamente Faacutecil conversioacuten de aplicaciones existentes en C a C++ Faacutecil uso de APIrsquos de Windows con C++ como con C Faacutecil uso de complicadas caracteriacutesticas de abstracciones poderosas como ActiveX soporte para base de datos impresioacuten barras de herramientas y barras de estado El API de Windows en C++ si usa tan efectivamente como las caracteriacutesticas mismas del lenguaje C++

La mayoriacutea de las clases de la Libreriacutea de la Microsoft Foundation Class son derivadas de una clase base ltCObjectgt que es la raiacutez de la jerarquiacutea de clases ltCObjectgt da uacutetiles capacidades a las clases que derivan de ella

La jerarquiacutea que existe en las clases derivadas de ltCObjectgt es la siguiente

Arquitectura de Aplicacioacuten Excepciones Servicios de Archivos Arreglos Listas Mapas Servicios de Internet Sockets Sincronizacioacuten Soporte para base de datos D A 0

27

Desarrollo de la herramienta

i

r

Liacutenea de Comandos Menuacute Dibujo Graacutefico Dibujo Graacutefico de Objetos Soporte de Control Soporte de Ventanas

Soporte para base de datos ODBC

o Marco de Ventanas o Barras de control o Hojas de propiedades o Cajas de Dialogo o Vistas o Controles

322Arquitectura Documento Vista

Por defecto las aplicaciones creadas con la MFC usan un modelo de aplicacioacuten que separa los datos del programa de las vistas de interaccioacuten con el usuario En eacuteste modelo un objeto documento de MFC lee y escribe datos en un almacenamiento persistente Un objeto vista administra el despliegue de datos suministrando al usuario los datos para ser seleccionados o editados La vista le comunica al documento cualquier cambio en los datos La razoacuten maacutes conveniente para seguir este modelo es cuando se necesita muacuteltiples vistas del mismo documento (como en una hoja de caacutelculo y un graacutefico)

La arquitectura documentovista hace faacutecil el soporte de muacuteltiples vistas y muacuteltiples tipos de documentos asiacute como la divisioacuten de ventanas y otras caracteriacutesticas de interfaz de usuario Pero el corazoacuten de la arquitectura son cuatro clases (Mostradas en el aacuterbol de clases de la Figura 36)

ltCDocumerrtgt (o ltCOleDocuinentgt) - Se instancia un objeto de este tipo para almacenar y controlar los datos del programa ltCViewgt (o una de sus clases derivadas ltCScrotlViewgt ltCFormViewgt ltCEditView ltCRecordViewgt ltCDaoRecordView ltCtreeViewgt ltCListViewgt b ltCrichEditViewgt) - Un objeto es usado para desplegar los datos y administrar la interaccioacuten del usuario con los datos ltCFrameWndgt (o una de sus variantes) - Establece el marco sobre el que trabajaraacuten una o mas vistas de un documento ltCDocTemolategt (o ltCSingIeDocTemplategt o ltCMultiDocTemplategt) - Coordina la existencia de uno o maacutes documentos de un tipo dado y administra la correcta creacioacuten de los documentos vistas y objetos ventanas para cada tipo

i

28

Desarrollo de la herramienta

______________ 2 Wiew

I - - __ - ------a ________________

323Integrando Ambientes en Visual C t t

Las aplicaciones de Interfaz de Documento Uacutenico (SDI) soporta muacuteltiples tipos de documentos pero este soporte es para un solo objeto documento Debido a esta restriccioacuten y aunado a la necesidad de tener varios objetos documentos a la vez se determina la utilizacioacuten del modelo Interfaz de Muacuteltiples Documentos (MDI) indicado en la Figura 37

324Interfaz de Muacuteltiples Documentos (MDI)

Una aplicacioacuten de Interfaz de Muacuteltiples Documento (MDI) permite la creacioacuten de plantillas para el manejo de los documentos eacutesta plantilla tiene la forma

rn-pDocTemplate = new CMultiDocTernplate ( I DR-SCUMLTY PE RUNTIME-CLASS (CSCUMLDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CTheView))

AddDocTernplate ( rn-pDocTemplate )

Cada plantilla describe una relacion del tipo de documento con la vista asociada La definicioacuten de la plantilla para el ambiente que controla los diagramas de secuencias es la siguiente

29

Desarrollo de la herramienta c

m-pTernplateSeqDlag = new CMultiDocTernplate ( IDR-DS-SJCTYPE RUNTIME-CLASS (CSeqDiagDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CSeqDiagView) )

AddDocTernplate( rn-pTernplateSeqDiag )

Esta plantilla hace uso de la clase CCliildFrame que por defecto el ambiente Visual C++ construye y esto es debido a que no se requieren caracteriacutesticas extras en las ventanas de las que proporciona dicha clasc En un caso en el que se requiriera un comportamiento diferente de la vista tendriacutea que crearse una nueva clase con las caracteriacutesticas deseadas

Vista Documento

Vista

I- Vista Documento I [ Tip- F Vista

L Figura 37 Modelo Interfaz de Muacuteltiples Documentos (MDI)

Para integrar otro Ambiente que utilice otro tipo de documento es necesario definir otra plantilla de la misma forma mencionada Debe tomarse en cuenta los siguientes puntos

Es necesario definir el nombre (mqTemplateNOMBRE) El IDR del tipo que se requiere que sea el documento En la primera liacutenea RUNTIME CLASS debe indicar la clase ltCDocumentgt que desea La segunda liacutenea RUNTIME-CLASS soacutelo la cambia a otra clase si requiere de otro manipulador de ventanas de lo contrario deje que ltCChildFramegt se haga cargo

-

30

Desarrollo de la herramienta

En la uacuteltima liacutenea referente a RUNTIME-CLASS se debe indicar la clase ltCViewgt que desea usar Para finalizar se usa la instruccioacuten AddDocTernplate para finalizar la definicioacuten del template (mgTemplateNOMBRE)

325 Recursos Diaacutelogos Mertuacutes y Barras de Herrattriertias

Son varios los recursos con los que se puede contar al crear un proyecto en Microsoft Visual C++ Los diaacutelogos son un recurso disponible que son utilizados para visualizar ingresar yo modificar informacioacuten que se requiera En el Ambiente Visual que se desarrolla son varios los diaacutelogos que se utilizaraacuten y eacutestos se describen a continuacioacuten

El Diaacutelogo ldquoCaracteriacutesticas del Obietordquo (Figura 38) identifica el nombre del Objeto y la descripcioacuten del mismo Este diaacutelogo se muestra cuando se presiona doble clic sobre un objeto del diagrama

I Nombre

Desciipcion

Figura 38 Dialogo Caracteriacutesticas del Objeto

El Diaacutelogo ldquoMensaierdquo (Figura 39) muestra el nombre del mensaje que puede ser modificado ademaacutes se visualizan el Identificador del Mensaje el tipo de Mensaje asiacute tambieacuten el origen y destino del mensaje

31

Desarrollo de la herramienta

Nornbie delMensaje Edit

IDentificador del Mensaje Edil Tipo de Mensaje (Edil

Edit Objeto Origen

Objeto Destino IEdit

i25El A Figura 39 Dialogo Mensaje

El menuacute es otro de los recursos del que se puede disponer para organizar el ambiente que se estaacute creando Para eacuteste caso en particular no se hizo modificaciones al menuacute estaacutendar (Figura 310) que Visual C++ presenta Los cambios significativos son el manejo del tipo de documento para los Diagramas de Secuencias

Archivo Editar Yer VenLana AyGda

Figura 310 Menuacute de los Diagramas de Secuencias (estaacutendar)

Otro importante recurso del que uno se puede valer en Visual C++ es la barra de herramienta personalizada la cuaacutel es construida en el Editor de Recursos Se ha construido una barra (Figura 311) con los elementos graacuteficos de los Diagramas de Secuencia de UML

Figura 311 Barra de Herramientas de los Diagramas de Secuencias

Es recomendable que al utilizar barras de herramienta personalizada se defina en el tamantildeo estaacutendar ya que puede experimentar problemas al momento de ejecutar la aplicacioacuten

Ademaacutes puede usar la propiedad TBBS-CHECKGROUP en una barra de herramientas para establecer que los botones puedan quedar presionados hasta que un botoacuten diferente sea presionado No olvide que la numeracioacuten inicia con cero ( O )

vuriableToolBurSetButtonStyle(OTBBSCHECKGROUP)

32

Desarrollo de la herramienta

Prefijo ID IDC IDD IDP IDR IDS

326 Notacioacuten estaacutendar

Los nombres descriptivos de los recursos se asocian a un valor uacutenico Para una mayor claridad eacutestos nombres mantienen un prefijo que describe el tipo de recurso asociado (vea la Tabla 31) [MIC99]

Tipo de Recurso Comandos de Menuacute Controles y recursos Cuadros de diaacutelogo Cadenas de solicitud para cuadros de mensaje Menuacute principal barras de herramienta tabla aceleradora y el icono Cadenas

IDR IDD IDC ID

200 - 299 3000 - 3999 34000 - 34999

Estos son los rangos de valores establecidos para el proyecto S3C Si se utiliza el coacutedigo fuente y se planea agregar otro proyecto verifisue que no se invadan estos nuacutemeros para evitar problemas

Para facilitar auacuten maacutes los trabajos futuros se ha definido una estructura de carpetas (ver Figura 312) para incluir en cada una las Clases correspondientes a cada tesis en desarrollo

33

Desarrollo de la herramienta

ill ~~ -

-I SCUML classes + U A N T L R + U App + 0 ClassDiagrams + 0 Common + a Java

t $2 SequenceDiagiams

+ WarnierDiagrams

iJ PackageDiagrams

12 StaterChartDiagrams

+

- f Classview I Resourceview 1 FileView ]

~ ~

Figura 312 Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)

327Estructura de datos persistencia y recuperacioacuten

Existe una gran cantidad de tipos de datos estructuras clases y meacutetodos de los que se puede hacer uso para una mejor y maacutes faacutecil obtencioacuten de los resultados A continuacioacuten hago comentarios en tipos de datos y meacutetodos en los que podriacutea tener problemas

CTypedPtrList

AI usar este tipo de dato o alguno relacionado que le permita utilizar el meacutetodo ltCTvrgtedPtrListGetNextgt tenga especial precaucioacuten al usarlo ya que al devolver el valor requerido la variable POSITION usada no se queda apuntando a ese valor en particular salta al inmediato siguiente de la lista

Si se realiza una creacioacuten dinaacutemica con punteros para los elementos de una CTypedPtrList Despueacutes de haberlo agregado a la lista evite el delete para borrar esta Usted deseando liberar la memoria no lo haga ya que eliminara directamente el elemento de la lista

POSITION

Es un valor usado para denotar una posicioacuten de un elemento en una coleccioacuten Pero CUIDADO no se refiere a un iacutendice es una referencia (no consecutiva) de punteros muy diferente a un iacutendice

CString

Auacuten cuando el operador de comparacioacuten == (igual a) es permitido para ser utilizado en las cadenas evite su uso ya que en ocasiones aunque cuando la e

34

Desarrollo de la herramienta

compilacioacuten no indique error alguno en la ejecucioacuten no realizaraacute lo que se necesita Recomiendo que utilice CStringCompare ()

Para eliminar el contenido de un CString utilice CStringEmpty() ya que asignar a la cadena un ldquonrdquo podriacutea causarle problemas

Serializacioacuten

Una forma en que se puede guardar informacioacuten y recuperarla de manera eficaz es mediante la serializacioacuten de objetos La serializacioacuten es un proceso que permite escribir un objeto en un archivo y tambieacuten leerlo

Para que la serializacioacuten se lleve a cabo son necesarios tres objetos un objeto de tipo ltCFilegt que represente el archivo un objeto de tipo ltCArchivegt que ofrece el entorno para la serializacioacuten y la clase del objeto a ser serializado debe ser heredada de ltCObjectgt y sobrescribir el meacutetodo ltSerializegt para que se encuentre de tal forma en que pueda ser serializado (vea la Figura 313)

Objeto a ser serializado 1

1 CArchive

[f --=I- ---7 Archivoexi

u Figura 313 Serializacioacuten

328Patrones de disentildeo utilizados

Se ha planteado la definicioacuten de una arquitectura de clases utilizando patrones de disentildeo debido a que algunos de ellos hacen maacutes faacutecil la extensioacuten de la funcionalidad y mantenimiento

35

Desarrollo de la herramienta

El patroacuten Composite es utilizado para crear de manera uniforme el diagrama sobre el que se trabaja (ver Figura 34) manteniendo una jerarquiacutea de clases uniforme las clases maacutes bajas en la jerarquiacutea definen primitivas de objetos graacuteficos

Se aplica el patroacuten de disentildeo Iterator para hacer recorridos en listas de objetos para realizar diversas operaciones Otro patroacuten de disentildeo del que se hace uso es el Visilor (ver Figura 35)

Para otras actividades que se realizan podriacutea pensarse en que se deberiacutean aplicar otros patrones pero se han evitado algunos (como el patroacuten de disentildeo Builder) para evitar incrementar la complejidad en la arquitectura ya que ai mantener el modelo de la MFC de documentovista la funcionalidad del patroacuten de disentildeo Builder es faacutecilmente reemplazado si se hiciera Uso de eacuteste se aumentariacutea la complejidad excesivamente (nos llevariacutea a perdemos en ocasiones en el paso de mensajes entre clases) dantildeando la facilidad de la arquitectura

33 Diagrama de secuencias

Un Diagrama de Secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten escenario Oacute comportamiento se usan para definir el curso loacutegico de accioacuten de un posible camino a seguir en la resolucioacuten de un problema Seguacuten John Daniels [DANO2] ldquoel principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildean las interacciones de los objetosrdquo

Los Diagramas de Secuencias se utilizan en el modelado de la implementacioacuten de sistemas de software ademaacutes son aplicables en el modelado de requisitos para establecer las comunicaciones existentes entre actores yo clases del sistema Con eacutestos diagramas se logran hacer descripciones de los escenarios y los comportamientos del sistema Con los Diagramas de Secuencias es posible definir protocolos de comunicacioacuten con paso de mensajes ya que dan esa flexibilidad que se requiere Ademaacutes los Diagramas de Secuencias contienen informacioacuten suficiente para que puedan ser transformados a los diagramas de colaboracioacuten [RUM Ol][BOO Oil

331Ciclo de vida del software

Considerando cualquier modelo de ciclo de vida del software (en la figura 314 se muestra el Modelo de cascada) el aacutembito directo de eacuteste Ambiente Visual es en el disentildeo aunque tiene sus vertientes en la codificacioacuten y mantenimiento

36

Desarrollo de la herramienta

Diseno

Codificacibn

I I I I Mantenimiento I

igura 314 Modelo de cascada del ciclo de vida del software

34 Elementos atoacutemicos de la Gramaacutetica

Definicioacuten de los elementos atoacutemicos del lenguaje y su contenido

1 Actor- Representa roles de entidad externos al sistema con el que interactuacutea directamente Los actores pueden ser humanos dispositivos u otros sistemas

2 ClaseObjeto- Determina una Clase u Objeto participante en la interaccioacuten

3 Mensaje-Es una comunicacioacuten entre objetos que contiene informacioacuten Eacuteste se representa con la finalidad a que una accioacuten sea llevada a cabo

4 Mensaje con tiempo- Tiene la misma finalidad que el mensaje la diferencia es que con eacutel se representa un atributo de tiempo

5 Mensaje asiacutencrono Es un mensaje que ocurre en el tiempo de manera independiente a otros mensajes

6 Mensaje de destruccioacuten de objeto- Es un mensaje cuya finalidad es indicar la destruccioacuten del objeto destino

7 Mensaje de creacioacuten de objeto- Es un mensaje que indica la creacioacuten de un objeto

8 Llamada al mismo objeto (Recursividad)- Es usado para modelar llamadas recursivas en el que una operacioacuten es invocada por el mismo objeto

37

Desarrollo de la herramienta

9 Destruccioacuten del objeto (AutodestrucciOacuten)- Puede o no modelarse es representada con una X al final de la liacutenea de vida del objeto

Elementos aulomaacuteticos

1 Liacutenea de Vida- Representa la vida del objeto durante la interaccioacuten

2 Activacioacuten- Muestra el periacuteodo de tiempo en el cual el objeto alguna operacioacuten

341RepresentaciOacuten visual

Representacioacuten visual de los elementos atoacutemicos del lenguaje

Actor

_- A

Mensaje

Mensaje de Creacioacuten de

Objeto

ClaseObjeto

I

Mensaje de retorno

Mensaje de Destruccioacuten de

Objeto

abla 32 Element(

Activacioacuten

Mensaje con tiempo

Autodestruccioacuten

x

atoacutemicos del lengi

taacute realizz

Texto ===I (letra)+ (letra I

numero) letra= AZ I az numero = 09

I

Recursividad ~

I

i j e

io

38

u

Comentario

iexcl

Conector de Comentario

35 Gramaacutetica desarrollada

La gramaacutetica que se propone es una gramaacutetica visual del tipo relacional Una gramaacutetica relacional pertenece a las gramaacuteticas libres de contexto es una 6-iupla G (N C S R Attr P) donde

N es un conjunto finito de siacutembolos no terminales C es un conjunto de siacutembolos terminales S es un siacutembolo distinguido en N llamado siacutembolo inicial R es un conjunto finito de siacutembolos de relacioacuten Attr es un conjunto finito de siacutembolos de atributos P es un conjunto de producciones

Entonces definiendo nuestra gramaacutetica G (N C S R Attr P)

N = Diagrama GrupoClaseObjeto

S = Diagrama

R = mensaje mensajeTiempo mensajeRetomo mensajeAsincrono mensajecrea mensajeDestruye autodestruccioacuten recursividad

R

Attr = entrada salida entradacrea

39

Desarrollo de la herramienta

Definiendo la posicioacuten de los atributos en los elementos visuales

entradacrea ObetaClase

entrada

salida

P =

Diagrama I GrupoClaseObjeto (mensaje (mensajeRetorno

(salida 1) (entrada 2) ) (salida 2) (entrada 1) )

- Diagrama 0 GrupoClaseObjeto

(mensaje (mensaje (mensajeRetomo (mensajeRetomo (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entradacrea 2) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 1) ) (salida 1) (entrada 1) )

entrada

salida

40

Desarrollo de la herramienta

s

-

GrupoClaseObjeto - 1 1 I 2 (mensaje (mensaje (mensajeRetorno (mensajeRetorno (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entradacrea 2) ) (salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 1) ) (salida I ) (entrada I ) )

1 En las gramaacuteticas relacionales una produccioacuten estaacute acompantildeada de las posibles

relaciones que puedan generarse En la primera produccioacuten Diagrama produce a un Actor seguida de un GrupoClaseObjeto el Actor inicia la interaccioacuten con un mensaje y recibe el mensaje de retorno al finalizar la interaccioacuten La segunda y tercera produccioacuten son similares debido a que un GrupoClaseObjeto contiene dos ClaseObjeto que se relacionan de la misma forma

Existe un elemento de la gramaacutetica llamado Attr (Atributo) el cual define la parte de los elementos visuales donde se establecen las relaciones Se han determinado dos atributos (entrada y salida) que para nuestro propoacutesito estaraacuten establecidos en la liacutenea de vida de cada elemento visual (Actor y ClaseObjeto)

Los Comentarios y la Activacioacuten no se consideran en la gramaacutetica Los comentarios son libres de incluirse y relacionarse con cualquier elemento y relacioacuten mencionada anteriormente y la activacioacuten existe siempre que se presente un mensaje (o podriacutea omitirse) Estas consideraciones se realizaron para hacer auacuten maacutes faacutecil la gramaacutetica ya que si se trata de realizar un sistema las restricciones de estos elementos pueden mantenerse en el lenguaje de programacioacuten en el que se desarrolle el sistema

36

Precondiciones

El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias

1 El diagrama de Clases debe existir y estar completo 2 Debe existir un archivo con un diagrama de Warnier por cada diagrama de Clases y

con el mismo nombre de archivo (excepto la extensioacuten del archivo) 3 En el uacutenico diagrama de Warnier de cada Clase se deben modelar todos los meacutetodos

de la Clase 4 No realizar declaraciones de meacutetodos

41

Desarrollo de la herramienta

5 Debe existir un meacutetodo lsquomain()rsquo en el diagrama de Clases

Restricciones

Los meacutetodos deben mantener nombres distintos en las diferentes Clases

Metodologiacutea para la obtencioacuten automaacutetica de los Diagramas de Secuencias

1 Seleccionar el diagrama de Clases

2 Se construye una lista con los nombres de las Clases y los Meacutetodos

3 Se verifica si exista el meacutetodo lsquomain()rsquo en alguna Clase Se busca la existencia de una uacutenica Clase

a La Clase que contenga lsquomain()rsquo se va al inicio de la lista de Clases

b Si no existe lsquomain()rsquo SE TERMINA EL PROCESO

4 Se verifica la existencia de los archivos que contienen el Disentildeo Detallado de los meacutetodos en Wamier para cada una de las Clases si alguno falta SE TERMINA EL PROCESO

5 Se procesa cada uno de los modelos del Disentildeo Detallado de los Meacutetodos generando una lista de secuencias de llamadas por cada uno de los meacutetodos

6 Se verifica que cada llamada corresponda a alguacuten meacutetodo existente (del diagrama de Clases) De no existir ese meacutetodo la llamada entra a una estructura que

7 Se crea una lista de secuencia

a Se inicia con lsquomain()rsquo b Se recorre cada una de las llamadas de los meacutetodos c Se considera invaacutelido el caso de que un meacutetodo intente una llamada

recursiva al meacutetodo lsquomain()rsquo

8 Se muestra un diaacutelogo de resultados en el que se indican las llamadas que no se encnotraron definidas y que pueden ser Llamada a libreriacutea oacute Llamada Erroacutenea

42

Capiacutetulo 4

Prue6as y su6taaacuteos

En eacuteste capiacutetulo se da a conocer el detalle de las pruebas y de los resultados obtenidos Se describen los casos de prueba con los que se realizoacute la evaluacioacuten del sistema asiacute tambieacuten se presentan comentarios acerca de los resultados obtenidos

Pruebas y Resultados

41 Recursos teacutecnicos utilizados

Para llevar a cabo las pruebas al sistema S3C se utilizaron los siguientes equipos de Coacutemputo

Computadora de escritorio

256MB RAM Disco Duro 80G Monitor 17rdquo SAMSUNG

AMD Athlon XP 1600+ I4Ghz

Computadora de escritorio Intel Pentium 4 - 128MB RAM Disco Duro 40G Monitor 15rdquo i -

42 Descripcioacuten del plan de pruebas

Las pruebas establecen el Uacuteltimo paso desde donde es posible evaluar la calidad y descubrir los errores Las pruebas y la validacioacuten del software se utilizan para comprobar que el sistema cumple con las expectativas del usuario

En esta seccioacuten se describen los casos de prueba que se realizaron al prototipo de S3C en conjunto a la suite cenidet-UML Para cada uno de los casos se presenta el objetivo el procedimiento que se siguioacute para la prueba y se muestran los resultados obtenidos - _

Las pruebas a realizar son los siguientes

Caso 1 Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Caso 2 Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Wamier

Caso3 Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Wamier

Caso4 Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo 5

44

Pruebas y Resultados

43 Resultados

431 Caso 1

5 Y

IZ =

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoSirdquo 4 Seleccionar el archivo ldquoVENTASrdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 41 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

s3c iuevo Proyecto SCUM1

Diagrama de clases

lvendedor I L

3

salida

venta prod

4 venia-oferta vcntaprod =

salida 6

Figura 41 Resultado del caso de prueba 1

45

Pruebas y Resultados

432 Caso 2

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Warnier (almacenwar cajawar vendedorwar) que ya cxisten (del caso de prueba I )

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoNordquo 4 Agregar las siguientes Clases con los respectivos meacutetodos y atributos

a Claseldquovendedorrdquo Meacutetodos ldquoventa mainrdquo b Claseldquoalmacenrdquo Meacutetodos ldquoentrada salidardquo c Claseldquocajardquo Meacutetodos ldquoventagrodrdquo

5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 42 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

Diagrama de daseo lisgrama dcsccucncis

MOIDOC Anivo

venta prod

salida

1 Ycrdquo1a 2

I 4 vcrdquolD~o1cn venta prod gt

salida 6 i Figura 42 Resultado del caso de prueba 2

46

Pruebas y Resultados

r

433 Caso 3

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Warnier

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 43 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

5

Error al tratar de abrir el archivo A bZwar

Aceptar i

Faltan Archivos de Disentildeos Detallados de Meacutetodos 1 1 A No se puede crear el diagrama de secuencias

Figura 43 Resultado del caso de prueba 3

47

Pruebas y Resultados

434 Caso 4

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 44 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

lsquo I

~ _ i i _ l _ Repaado ~~ ~ ~ 6~ ampA Figura 44 Resultado del caso de prueba 4

48

Pruebas y Resultados

PRUEBA DESCNPCION CASO 1 Mostrar la funcionalidad del

Sistema S3C a partir de un

44 Anaacutelisis de Resultados

RESULTADOS Se comproboacute la correcta funcionalidad del Sistema S3C a partir de un diagrama

CASO 3

CASO4

I diagrama de Clases cxistcnte I de Clases existente CASO 2 I Mostrar la funcionalidad del I Sc comproboacute la corrccta funcionalidad

Sistema S3C a partir de un del Sistema S3C a partir de un diagrama diagrama de Clases que se de Clases que se construye al momento construye al momento Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el Secuencias si falta alguno de los diagrama de Secuencia si falta alguno diagramas de Warnier Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el secuencias si hace falta el meacutetodo diagrama de Secuencias al faltar el ldquomain ()rdquo meacutetodo ldquomain()rdquo

de los diagramas de Warnier

Los resultados obtenidos de cada uno de los casos establecidos demuestran que se validoacute la funcionalidad del prototipo con los requisitos definidos en el alcance de este proyecto

a lt

49

Conclusiones y Tru6ajos Futuros

Aquiacute se dan a conocer las conclusiones y se describen los posibles trabajos futuros para la continuacioacuten de eacuteste proyecto

F

51 Conclusiones

Conclusiones y trabajos futuros

Se ha creado un Ambiente Visual que permite obtener de forma automaacutetica los Diagramas de Secuencias en base a los diagramas de Clases y al disentildeo detallado de los meacutetodos descritos con diagramas de Warnier cumpliendo con los objetivos planteados para este trabajo

La tesis aporta principalmente La generacioacuten automaacutetica de los diagramas de secuencias y la eliminacioacuten de inconsistencias al mantener una validacioacuten directa de los diagramas de clases y los diagramas de Warnier que son utilizados

Esta validacioacuten es lograda a traveacutes del uso de la gramaacutetica visual relaciona1 que se ha definido (veacutease el capiacutetulo 3) Esta gramaacutetica visual establece reglas para la correcta construccioacuten de los diagramas de secuencias

P De esta manera se establece que la hipoacutetesis ldquoEs posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodosrdquo Es verdadera

52 Trabajos Futuros

Un Diagrama de Secuencias puede convertirse en un Diagrama de Colaboracioacuten por lo tanto un trabajo futuro es la construccioacuten automaacutetica de un Diagrama de Colaboracioacuten a partir de uno de Secuencias existente

Es posible calcular la meacutetrica de acoplamiento al tener un Diagrama de Secuencias construido

La Ingenieriacutea directa de un Diagrama de Secuencias estableciendo la validacioacuten en la construccioacuten de todos los elementos visuales que UML define

La propagacioacuten de las modificaciones de un Diagrama de Secuencias a los Diagramas de Clases y los Diagramas de Warnier

La modificacioacuten del coacutedigo fuente mediante los cambios establecidos en un Diagrama de Secuencias

51

[ALC03]

[BLA98]

[B0099]

[BOOOi]

[BR097]

[CHA90]

[DAN02]

[GLA02]

[HAC98]

[HER03]

4

Alcate1 Computer Associates International inc Electronic Data Systems Corporation Hewlett-Packard Company IBM Corporation I-Logix IntelliCorp Kabira Technologies Kennedy Carter Microsoft Corporation Object Management Group Oracle Corporation Project Technology Ptech Inc Rational Software Corporation Reich Technologies Softeam Taskon A S Telelogic Unisys Corporation ldquoOMG Unified Modeling Language Specificationrdquo Version 15 Unified Modeling Language 2003

Blaha Michael Rumbaugh James Premerlani William Eddy Frederick Lorensen William ldquoObject-oriented modeling and designrdquo Prentice Hall 484 Paacuteginas ISBN 0-13-629841-9 QA-769-03S-B53-19981998

Booch Grady Rumbaugh James Jacobson Ivar ldquoEl lenguaje unificado de modeladordquo Addison Wesley 432 Paacuteginas ISBN 84-7829-028-1 1999

Booch Grady Rumbaugh James Jacobson Ivar ldquoThe Unified Modeling Language User Guiderdquo Addison Wesley 2001

Brown David ldquoAn introduction to object-oriented analysis objects in plain Englishrdquo John Whiley amp Sons Inc 700 Paginas ISBN 0-471-1 1028-0 QA-769-035-B76-1997 1997

Chang Shi-Kuo ldquoVisual Languages and visual programmingrdquo Plenum Press 340 Paacuteginas ISBN 0-306-43428-8 QA-7665-V57-1990 1990

Daniels John ldquoModeling with a sense of purposerdquo Design - IEEE Software JanuaryEebmary 2002

Glasgow Universidad Reino Unido ldquoA UML Editor in Javardquo (lthttplstudentsdcsglaacuWstudentspainjfproject-reportproject-re port-htmV4thYearReporthtrnlgt 2002)

T Hackos JoAnn C Redish Janice ldquoUser and Task Analysis for Interface Designrdquo Wiley Computer Publishing 488 Paacuteginas ISBN QA-769-U83- H33-1998 1998

Hemaacutendez Velaacutezquez M ldquoIngenieriacutea inversa de coacutedigo fuente en C++ para la obtencioacuten de su disentildeordquo Tesis AT-379 (03-0334) 2003

Conceptos generales

[HIX93]

[JAC93]

[JAC99]

[JOY98]

[LAR97]

[MAR]

[MIC99]

[MIC02]

[MOU98]

Hix Deborah Hartson H Rex ldquoDeveloping user interfacesrdquo 381 Paacuteginas ISBN 0-471-57813-4 QA-769-U83-H59-1993 1993

Jacobson Ivar Christerson Magnus Jonsson Patrik Overgaard Gunnar ldquoObject oriented software engineeringrdquo Addison Wesley ISBN 0-20 1 - 54435-0 QA-7676-D47-J63-1993 1993

Jacobson Ivar Booch Grady Rumbaugh James ldquoEl proceso unificado de desarrollo de softwarerdquo Addison Wesley 438 Paacuteginas ISBN 84-7829-036- 2 1999

Joyanes Aguilar Luis ldquoProgramacioacuten orientada a objetosrdquo McGruw Hill ISBN 84-481-0590-7 1998

Larman Craig ldquoAplying UML and Patternsrdquo Prentice Hull 507 Paacuteginas ISBN 0-13-748880-7 QA-769-035-L37-1997 1997

Marriot Kim Meyer Bemd ldquoVisual Language Theoryrdquo Springer 381 Paacuteginas P-935-V567-1998 1998

Microsoft ldquoMicrosoft Visual C++ 6 manual del programadorrdquo McGraw Hill ISBN 84-481-2127-9 QA-7673-Cl53-23718-1999 1999

Microsoft ldquoVisiordquo (lthttpwwwmicrosoftcomofficevisiogt 2002)

B Mourao Luis X ldquoUniversal Modeling Language Part 11 UML Notation - Case Sequence and Collaboration Diagramsrdquo Lan Times Magazine (~httpwwwlantimescomltpartsdiscussdiscuss6Ohtm~) 1998

No Magic ldquoMagicDrawrdquo (lthttpwwwmagicdrawcomgt 2002)

Object Insight ldquoJvisionrdquo (lthttpwwwobject-insightcomgt 2002)

Rational Software Microsoft I Hewlett-Packard Oracle Sterling Software MCI Systemhouse Unisys ICON Computing IntelliCorp i-Logix IBM ObjectTime Platinum Technology Ptech Taskon Reich Technologies Sofieam ldquoUML Summaryrdquo Version 11 Unified Modeling Language 1997

Rational ldquoRational Roserdquo (lthttpwwwrationalcomproductosrosegt 2002)

Rikki Kirzner ldquoAnalysis Modeling and Design Tools Market Forecast and Analysis 2001-2005rdquo Bulletin Published Under Services Application Design and Construction Tools Application Development and Deployment Strategies Documento Nuacutemero 24809 Junio 2001

53

Conceptos generales

[RIM92] Rimrner Steve ldquoGraphical user interface programmingrdquo 423 Paacuteginas

1992

Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language reference manualrdquo Addison Wesley 550 Paacuteginas ISBN 0-201-

ISBN 0-8306-2475-9 ISBN 0-8306-2472-4 (pbk) QA-769-083-R55G

[RUM99]

30998-X QA-7676-D47-R85-1999 1999

[RUM299] Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language user guiderdquo Addisoiz Wesley 482 Paacuteginas ISBN 0-201 -57 168-4 QA-7676-D47-B66-1999 1999

[SMA02] SmartDraw ldquoSmartDrawrdquo (lthttpwwwsmartdrawcomgt 2002)

[SHU88] 9 - Shu Nun C ldquoVisual Programmingrdquo Van Nostrand Reinhold ISBN 0-422- 28014-9 ISBN 0-422-01 164-4 QA-7665-S55 1988

[THI90] Thimbleby Harold ldquoUser Interface Designrdquo Acm press 470 Paacuteginas ISBN 0-201 -41 61 8-2 QA-769U83-T772~- 1990 1990

[WENO2] Wences Diaz MF ldquoModelo de Ingenieriacutea Inversa para la obtencioacuten de disentildeo detallado basado en LEVISSrdquo Tesis (02-0014) 2002

54

Anexo A

Conampuracioacuten de Microsoft Vkua[C++ 6 O

Este anexo indica las configuraciones que se utilizaron para la compilacioacuten de SCUML y s3c

Configuracioacuten de Microsoft Visual c++ 60

Debido a la integracioacuten de los proyectos de InverSOODA e InverDDVi con S3C se cumplioacute con los requisitos previos de ambos proyectos

El compilador usado en el proyecto fue el Microsoft Visual C++ 60

Para el cumplimiento con la funcionalidad de InverSOODA se instaloacute el ANTLR la versioacuten 271 Se descargoacute del sitio l i l l ~ ~ ~ ~ ~ ~ t l ~ l ~ - ~ t - ~ la versioacuten mencionada en un archivo comprimido (en formato zip) Se colocoacute el paquete descomprimido en el directorio ldquoDIANTLR-271 I rdquo

Recomiendo ampliamente que el directorio principal de ANTLR se copie en el directorio raiacutez de cualquier unidad de disco debido a que experimenteacute problemas de compilacioacuten cuando ANTLR no se encontraba en el directorio raiacutez

Io015

Source Browser AlttF12 I u c Ersquo V I

Visual Component Mgnager

- - ~ ~ ~ ~~

P2 Registrar control

A Contenedor de prueba de controles ActiveX

A Usor de objetos OLE y COM

Buacutesqueda de errores

A Y++ MFC Iracer

Customize options

~ - q- ~ Macro

Eecord Quick Macro Cbl+ShiR+R Pay Quick Macro Ctrl+ShiR+P

En el menuacute Tools (Herramientas) seleccione el sub-menuacute Options ltopcionesgt

56

Configuracioacuten de Microsoft Visual C++ 60

En la siguiente ventana de diaacutelogo debe agregar la direccioacuten en donde se encuentra el ANTLR

Agregar la ruta del directorio de ANTLR hasta el subdirectorio

libcpp

Editor I Tabs I Debug I Compatibility 1 Build Dneclolies I a I Chow directories for - Platfolm -

- Directories I x ) 4 jWin32 -] llnclude files

m cancd I

57

Configuracioacuten de Microsoft Visual C t+ 60

Se ha creado una libreriacutea (anrlrliblib) de ANTLR la cual ya estaacute situada en el directorio del proyecto SCUML (ISCUML) y no debe ser movida o eliminada

I

Geneial 1 Debug I CC++ Link I Category

Output file name bebugSCUMLexe

Objectljibrary modules 4 anllrliblib

li Generate debug lnfo r Ignore all defaull lbaries D ~ i n k j n ~ ~ ~ t a n ~ r ~ e n e r ~ ~ ~ mapfile

r Enable psafilrng

Proiec1 Ootionn

pq Cancel 1 Libreriacutea de ANTLR que debe existir 1 I para que se compile correctamente

58

Anexo B

~ u iacute aacute raacutepida de uso deC Sistema S3C

5 Este anexo indica de forma raacutepida la manera de utilizar S3C para crear un diagrama de secuencias de forma automaacutetica

Guiacutea Raacutepida de uso del Sistema S3C i

Para indicar la creacioacuten de un diagrama de secuencias en forma automaacutetica se debe ir a la barra del costado izquierdo y presionar ldquoNuevo Proyecto SCUMLrdquo

I s3c I ~ Nuevo Proyecto SCUML ~ _ _ - I Diagrama de clases ~ Diagrama de secuencias 1 MDI DOC Activo

-

Apareceraacute un documento llamado ldquoSCUMLV en donde el simbolo corresponde a un numero consecutivo iniciando desde 1 (uno)

$ e Despueacutes se presiona ldquoDiagrama de clasesrdquo Habraacute que para indicarle al sistema si se requiere abrir un diagrama de clases existente o realizar uno nuevo

i

iquestAbrir un documento existente

No Cardquo~ear

AI presionar ldquoSirdquo se debe indicar cual es el archivo del diagrama de Clases en el cuadro de diaacutelogo siguiente

~~ - 11dMis documentos rsquo 2 M i P C i lsquo h s sitios de red

I

AI presionar ldquoNordquo en ldquoAbrir un documento existenterdquo se nos mostraraacute un documento vacio para crear un diagrama de clases

60

Guiacutea Raacutepida de uso del Sistema S3C

Para ambas opciones se requiere que los diagramas de Wamier ya se encuentren construidos Y para continuar el proccso se selecciona el documento ldquoSCUMLVrsquo creado al inicio y despueacutes presionar el botoacuten nombrado ldquoDiagrama de secuenciasrdquo localizado en la barra de hcrraiiiicntas del costado izquierdo

Ha iniciado el proceso de construccioacuten del diagrama de secuencias Si no existen errores al terminar el proceso se le mostraraacute un cuadro de diaacutelogo llamado ldquoResultadosrdquo en donde le mostraraacute las llamadas de las que no localizoacute su definicioacuten

- - -

Cancel 1 D e las siguientes llamadas es posible que esten mal escritas o peitenezcan a la libreiia del Lenguaie Verifique ya que no se encontraron sus definiciones

A continuacioacuten se mencionan los posibles errores que finalizan el proceso de la creacioacuten automaacutetica de los diagramas de secuencias en S3C

Cuando no exista un meacutetodo lsquomainrsquo definido en el diagrama de clases

No se encontro el meacutetodo lsquomain()rsquo que inicie la secuencia I A No se puede crear el diagrama de secuencias

p==amp=q

61

Guia Raacutepida de uso del Sistema S3C

Cuando se definan niultiples metodos lsquoinainrsquo en el diagrama de clases

Multiples meacutetodos lsquomainOlsquo Imposible decidir el inicio de secuencia

Aceptar i

Si un meacutetodo definido en Wamier realiza una llamada a lsquomainrsquo se cancelara el proceso

Llamada NO VALIDA al meacutetodo principal main

(iAcp-j(

4 i

CI Y rdquoldquoldquoI i 11 1-T

IZNTRO Gt INFORMACION

62

  • Tabla de Contenido
  • Listado de Figuras
  • Listado de Tablas
  • Notacioacuten
  • Introduccioacuten
  • Capitulo 1 Conceptos Generales
    • 11 Antecedentes
    • 12 Trabajos relacionados
      • 121 Tabla comparativa
        • 13 Definicioacuten del problema
        • 14 Objetivo de la Tesis
          • Objetivos especiacuteficos de la tesis
            • 15 Hipoacutetesis de investigacioacuten
            • 16 Alcances y limitaciones del trabajo de tesis
              • Capitulo 2 Marco Teoacuterico
                • 21 Modelado de sistemas de software
                • 22 Interfaz de usuario (Mecanismos de interaccioacuten)
                • 23 Lenguajes Visuales
                • 24 Programacioacuten orientada a objetos
                • 25 Lenguaje de Modelado Unificado (UML)
                  • Desarrollo de la herramienta
                    • 31 Disentildeo de la Arquitectura
                      • 311 Requisitos (Diagrama de Casos de uso)
                        • 312Modelo Conceptual
                        • 313Diagramas de clases
                        • 32 Elementos de la arquitectura
                          • 321 Microsoft Foundation Class (MFC)
                            • 322Arquitectura Documento Vista
                            • 323Integrando Ambientes en Visual c++
                              • 324 Interfaz de Muacuteltiples Documentos (MDI)
                                • 325Recursos Diaacutelogos Menus y Barras de Herramientas
                                  • 326 Notacioacuten estaacutendar
                                  • 327 Estructura de datos persistencia y recuperacioacuten
                                    • 328Patrones de disentildeo utilizados
                                      • 33 Diagrama de secuencias
                                        • 331Ciclo de vida del software
                                          • 34 Elementos atoacutemicos de la Gramaacutetica
                                            • 341 Representacioacuten visual
                                              • 35 Gramaacutetica desarrollada
                                              • 36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias
                                                  • Capitulo 4 Pruebas y Resultados
                                                    • 41 Recursos teacutecnicos utilizados
                                                    • 42 Descripcioacuten del plan de pruebas
                                                    • 43 Resultados
                                                      • 431 Caso
                                                      • 432 Caso2
                                                      • 433 Caso
                                                          • Conclusiones y trabajos futuros
                                                            • Trabajos futuros
                                                            • Referencias
                                                            • Anexo A Configuracioacuten de Microsoft Visual C+t
                                                              • Figura 11 - Arquitectura de la suite cenidet-UML
                                                              • Figura 21 -Programacioacuten Visual
                                                              • Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de
                                                              • Figura 32 -Diagrama de Casos de Uso para el S3C
                                                              • Figura 33 -Modelo Conceptual
                                                              • Figura 34 - Diagrama de Clases -Control del Diagrama -
                                                              • Figura 35 - Diagrama de Clases - Patroacuten Visitor -
                                                              • Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento
                                                              • Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)
                                                              • Figura 38 -Dialogo Caracteriacutesticas del Objeto
                                                              • Figura 39 -Dialogo Mensaje
                                                              • Figura 3 IO - Menuacute de los Diagramas de Secuencias (estaacutendar)
                                                              • Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias
                                                              • Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)
                                                              • Figura 313 - Serializacioacuten
                                                              • Figura 314 -Modelo de cascada del ciclo de vida del software
                                                              • Figura 41 - Resultado del caso de prueba
                                                              • Figura 42 -Resultado del caso de prueba
                                                              • Figura 43 -Resultado del caso de prueba
                                                              • Figura 44 -Resultado del caso de prueba
                                                              • Tabla 11 - Tabla comparativa
                                                              • Tabla 31 -Prefijos estaacutendar de identificadores
                                                              • Tabla 32 -Elementos atoacutemicos del lenguaje
                                                              • Tabla 41 - Resumen de los resultados de las pruebas realizadas

jdet Centro Nacional de lnvestigaci6n Sistema Nacional de lnstltutos Tecnoloacutegicos I y Oesanollo Tecnologico

M10 ANEXO No11

ACEPTACI~N DEL DOCUMENTO DE TESIS

Cuernavaca Mor a 25 de Agosto del 2004

Dr Gerard0 Reyes Salgado Jefe del departamento de Ciencias Computacionales Presente

Atn Dr Reneacute Santaolaya Salgado Presidente de la Academia

de Ciencias Computacionales

Nos es grato comunicarle que conforme a los lineamientos para la obtencioacuten del grado de Maestro en Ciencias de este Centro y despueacutes de haber sometido a revisioacuten acadeacutemica la tesis titulada Ambiente de modelado y disentildeo de sistemas de software utilizando diagramas de secuencias realizada por el C Joseacute Alonso Maciacuteas Montoya y dirigida por el Dr Maacuteximo Loacutepez Saacutenchez y habiendo realizado las correcciones que le fueron indicadas acordamos ACEPTAR el documento final de tesis asiacute mismo le solicitamos tenga a bien extender el correspondiente oficio de autorizacioacuten de impresioacuten

Atentamente La Comisioacuten de Revisioacuten de Tesis

Revisor

CCP Subdireccioacuten Acadeacutemica Departamento de Servicios Escolares Directores de tesis Estudiante

~ gt

1 Rosrama de k mramar da amp-ma en C i e d i del CWlDET

Wd6mlco Rwisimsnlto Y P W l m l s n l o r ampzad6mlsoMminlsuIuumlyI

4 r cenidet Centro Nacional de lnvestigaclon Sistema Nacional de Institutos Tecnologicos y Desarrollo Tecnologico

ANEXO No 12

M11 AUTORIZACI~N DE IMPRESI~N DE TESIS

Cueniavaca Mor a 27 de Agosto del 2004

C Joseacute Alonso Maciacuteas Montoya Candidato al grado de Maestro en Ciencias en Computacioacuten

i Presente

Despueacutes de haber atendido las indicaciones sugeridas por la Comisioacuten Revisora de la Academia de Ciencias de la Computacioacuten en relacioacuten a su trabajo de tesis cuyo titulo es Ambiente de modelado y disentildeo de sistemas de software utilizando diagramas de secuencias me es grato comunicarle que conforme a los lineamientos establecidos para la obtencioacuten del grado de Maestro en Ciencias en este centro se le concede la autorizacioacuten para que proceda con la impresioacuten de su tesis

i -

Atentamente

o Reyamp Salgado amento de Ciencias Computacionales

CCP Subdireccioacuten Acadeacutemica Presidente de la Academia de Ciencias Computacionales Departamento de Servicios Escolares Expediente

-

A mis padres auacuten con la distancia Siempre han estado a mi lado a toda mi familia por el apoyo en todo momento

Agradecimientos

A mis padres por que me han dado todo

A toda nii familia por el apoyo que en su momento recibi de cada uno

AI Centro Nacional de Investigacioacuten y Dcsarrollo Tccnoloacutegico por la oportunidad que me han dado

A Cosnet (Consejo del Sistema Nacional de Educacioacuten Tecnoloacutegica) por el apoyo econoacutemico otorgado durante la realizacioacuten del programa de maestriacutea

A la SEP (Secretariacutea de Educacioacuten Puacuteblica) por ser parte importante con su apoyo econoacutemico para la culminacioacuten de mis estudios

A mi director de tesis Dr Maacuteximo Loacutepez Saacutenchez por compartirme sus conocimientos y guiarme

A mis revisores Dr Reneacute Santaolaya Salgado Dr Guillermo Rodriguez Ortiz y MC Humberto Hemaacutendez Garcia Gracias por sus observaciones y consejos para mejorar este trabajo

A Miguel Ramirez por los conocimientos teacutecnicos y amistad

A Leo Sele Lupita Ceacutesar Emilio Vianey Armando y Marisela por el tiempo que vivimos

3

-3 i

Gracias y Suerte

i 4

Resu men

La investigacioacuten y el producto de la tesis estaacuten inmersos en la etapa del disentildeo de sistemas de software

El prototipo S3C (producto de la tesis) permite la obtencioacuten de diagramas de secuencias de UML tomando como base la informacioacuten de un diagrama de clases y de varios documentos modelados con diagramas de Warnier (disentildeo detallado de los meacutetodos)

S3C realiza un proceso automaacutetico para la obtencioacuten de los diagramas de secuencias La construccioacuten de los diagramas de secuencias en S3C estaacute soportada con una gramaacutetica visual relacional El propoacutesito de la gramaacutetica es validar la construccioacuten de los diagramas de secuencias de UML

En el aacutembito de los diagramas de secuencias de UML no existen aplicaciones comerciales oacute proyectos educativos que se apoyen en una gramaacutetica visual para soportar la construccioacuten de los diagramas de secuencias y tampoco existen aplicaciones que permitan a partir de los diagramas de clases y del disentildeo detallado de los meacutetodos generar automaacuteticamente los diagramas de secuencias

4 _

i d

Abstract

The research and the product of this thesis are immersed in the phase of design of software systems

Prototype S3C (product of this thesis) allows to obtain UML sequence diagrams based on the information of a class diagram and several documents modeled with wamier diagrams (detailed design of the methods)

S3C makes an automatic process in order to obtain sequence diagrams the construction of sequence diagrams in S3C is supported with a relational visual grammar The purpose of the grammar is to validate the construction of UML sequence diagrams

il

In the scope of UML sequence diagrams do not cxist commercial applications or educative projects that are based on a visual grammar to support the construction of sequence diagrams Also there arenrsquot applications that allow the automatic generation of secuence diagrams from class diagrams and the detailed design of methods

Tabla de Contenido

Tabla de Contenido

Listado de Figuras

Listado de Tablas

Notacioacuten

Introduccioacuten

Capitulo 1 Conceptos Generales

11 Antecedentes

12 Trabajos relacionados

121 Tabla comparativa

13 Definicioacuten del problema

14 Objetivo de la Tesis

141 Objetivos especiacuteficos de la tesis

15 Hipoacutetesis de investigacioacuten

16 Alcances y limitaciones del trabajo de tesis

Capitulo 2 Marco Teoacuterico

21 Modelado de sistemas de software

22 Interfaz de usuario (Mecanismos de interaccioacuten)

23 Lenguajes Visuales

24 Programacioacuten orientada a objetos

25 Lenguaje de Modelado Unificado (UML)

Capitulo 3 Desarrollo de la herramienta

31 Disentildeo de la Arquitectura

311 Requisitos (Diagrama de Casos de uso)

312Modelo Conceptual

313Diagramas de clases

Paacutegina

1 iv V

vi

1

2

3 4

6

6 7

7

8

8

9 10 11 13 16 17

21 23 23 25 25

1

32 Elementos de la arquitectura

321 Microsoft Foundation Class (MFC)

322Arquitectura Documento Vista

323Integrando Ambientes en Visual c++ 324 Interfaz de Muacuteltiples Documentos (MDI)

325Recursos Diaacutelogos Menus y Barras de Herramientas

326 Notacioacuten estaacutendar

327 Estructura de datos persistencia y recuperacioacuten

328Patrones de disentildeo utilizados

33 Diagrama de secuencias

331Ciclo de vida del software

34 Elementos atoacutemicos de la Gramaacutetica

341 Representacioacuten visual

35 Gramaacutetica desarrollada

a -

Tabla de Contenido

36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias

Capitulo 4 Pruebas y Resultados

41 Recursos teacutecnicos utilizados

42 Descripcioacuten del plan de pruebas

43 Resultados

431 Caso 1

432 Caso2

433 Caso 3

434 Caso4

44 Anaacutelisis de resultados

Conclusiones y trabajos futuros

Conclusiones

Trabajos futuros

27

27

28

29

29

31

33

34

35

36

36

37

38

39

41

43

44

44

45

45

46

47

48 49

50 51 51

i

lt

11

i Referencias

Anexo A Configuracioacuten de Microsoft Visual C+t 60

Anexo B Guiacutea raacutepida de uso del sistema S3C

Tabla de Contenido

52 59

lt 111

Listado de Figuras

3

Figura 11 - Arquitectura de la suite cenidet-UML

Figura 21 -Programacioacuten Visual

Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de Secuencias Figura 32 -Diagrama de Casos de Uso para el S3C

Figura 33 -Modelo Conceptual

Figura 34 - Diagrama de Clases -Control del Diagrama -

Figura 35 - Diagrama de Clases - Patroacuten Visitor - Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento Vista Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)

Figura 38 -Dialogo Caracteriacutesticas del Objeto

Figura 39 -Dialogo Mensaje

Figura 3 I O - Menuacute de los Diagramas de Secuencias (estaacutendar)

Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias

Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)

Figura 313 - Serializacioacuten

Figura 314 -Modelo de cascada del ciclo de vida del software

Figura 41 - Resultado del caso de prueba 1

Figura 42 -Resultado del caso de prueba 2

Figura 43 -Resultado del caso de prueba 3

Figura 44 -Resultado del caso de prueba 4

Paacutegina

3

13

22

23

25

26

26

29

30

31

32

32

32

34

35

37

45

46 47

48

iv

Tabla 11 - Tabla comparativa

Tabla 31 -Prefijos estaacutendar de identificadores

Tabla 32 -Elementos atoacutemicos del lenguaje

Tabla 41 - Resumen de los resultados de las pruebas realizadas

Listado de Tablas

Paacutegina

6 33

38 49

V

Notacioacuten

La siguiente es la notacioacuten de la que se haraacute uso

ltCObjectgt

ltGetDocunteiztgt

MiClase MiMetodo

9 Liacutenea de Coacutedigo

Mensaje

Clase de la MFC ( Microsoft Fundation Class)

Meacutetodo de una clase de la MFC

Clase desarrollada Meacutetodo de una clase desarrollada

Liacutenea o Bloque de coacutedigo

Elemento del Diagrama de Secuencia

vi

I Introduccioacuten

L~ tesis se enfoca hacia el desarrollo de sistemas de software centrados en el modelado mediante diagramas de secuencias definidos por el Lenguaje de Modelado Unificado (UML) La investigacioacuten y el producto de la tesis estaacuten inmersos en la etapa del disentildeo de sistemas de software

El producto (prototipo) de la tesis denominado S3C permite la obtencioacuten de diagramas de secuencias de UML tomando como base la informacioacuten de un diagrama de clases y de varios documentos modelados con diagramas de Wamier (disentildeo detallado de los meacutetodos)

Para la elaboracioacuten de los diagramas de clases se hace uso del ambiente existente InverSOODA [HER03] Y para el modelado de los documentos Wamier se ha tomado el ambiente InverDDVi [WEN02] Ambos ambientes visuales son productos de tesis anteriores y se han integrado en un solo prototipo denominado SCUML (Suite cenidet - UML)

(i

S3C realiza un proceso automaacutetico para la obtencioacuten de los diagramas de secuencias en este proceso solo se requiere indicar el diagrama de clases del que se basaraacute La construccioacuten de los diagramas de secuencias en S3C estaacute soportada con una gramaacutetica visual relacional El propoacutesito de la gramaacutetica es validar la construccioacuten de los diagramas de secuencias de UML

En el aacutembito de los diagramas de secuencias de UML no existen aplicaciones comerciales oacute proyectos educativos que se apoyen en una gramaacutetica visual para soportar la construccioacuten de los diagramas de secuencias y tampoco existen aplicaciones que permitan a partir de los diagramas de clases y del disentildeo detallado de los meacutetodos generar automaacuteticamente los diagramas de secuencias

3

Los temas relacionados a esta tesis son Modelado de Sistemas UML Interfaz de Usuario Programacioacuten Orientada a Objetos y Gramaacuteticas Visuales

El capiacutetulo 1 es de conceptos generales se dan a conocer los antecedentes del proyecto los trabajos relacionados hipoacutetesis alcances y limitaciones

En el capiacutetulo 2 se define el marco teoacuterico de la tesis se describen temas como Modelado de sistemas de software disentildeo de sistemas de software modelado visual lenguajes visuales programacioacuten orientada a objetos y lenguaje de modelado unificado

El capiacutetulo 3 describe el desarrollo del ambiente visual se detalla el modelo conceptual la arquitectura y sus elementos los diagramas de secuencias y la gramaacutetica visual relacional que se desarrolloacute

En el capiacutetulo 4 se muestran los casos de pruebas y los resultados obtenidos Y al final se establecen las conclusiones y se dan propuestas para algunos trabajos futuros 3

1

Capiacutetulo I

Conceptos generalis

En eacuteste capiacutetulo se dan a conocer los antecedentes del proyecto de tesis los trabajos relacionados el problema que resolveraacute la hipoacutetesis a comprobar los alcances y limitaciones

Conceptos generales

11 Antecedentes

Actualmente en el cenidet (Centro Nacional de Investigacioacuten y Desarrollo Tecnoloacutegico) se trabaja en la construccioacuten de un conjunto de ambientes visuales para dar soporte al desarrollo con diagramas que define el estaacutendar UML para elaborar sistemas de software de manera completa raacutepida y eficaz El ambiente de modelado principal se ha denominado suite cenidet-UML y su arquitectura general se muestra a continuacioacuten en la Figura 11

Arquitectura de la suite cenidet-UML

Figura 11 Arquitectura de la suite cenidet-UML

a El producto de software resultante de eacutesta tesis lleva por nombre S3C y como se indica en la figura 11 Las tesis directamente relacionadas son InverSOODA [HER03] e

InverDDVi [WEN02]

InverSOODA (Sistema Orientado a Objetos para Disentildeo y Anaacutelisis incluyendo Ingenieriacutea Inversa) es un Ambiente Visual que permite la elaboracioacuten de diagramas de clases de un sistema de software Los diagramas de clases son una vista estaacutetica y en ella se describe las relaciones que existen entre las entidades llamadas clases Cada una de las clases se divide en tres partes nombre de la clase meacutetodos y atributos Este ambiente permite generar el coacutedigo fuente en lenguaje C++ de un diagrama construido y tambieacuten aplicando la ingenieriacutea inversa es posible obtener un diagrama a partir de un coacutedigo en C++ existente

InverDDVi (Disentildeo Detallado Visual incluyendo Ingenieriacutea Inversa) es un Ambiente Visual cuyo objetivo es apoyar en la elaboracioacuten de diagramas de disentildeo detallado utilizando una notacioacuten basada en Warnier Los diagramas de Warnier sirven para describir una secuencia loacutegica de acciones y mediante su simbologiacutea se logra plasmar definiciones de meacutetodos llamadas a otros meacutetodos ciclos comparaciones lectura de informacioacuten y escritura de informacioacuten Este ambiente permite generar el coacutedigo fuente en C de un diagrama construido y tambieacuten aplicando la ingenieriacutea inversa se puede obtener un diagrama de Warnier a partir de un coacutedigo en C que ya exista

i

3

Conceptos generales

12 Trabajos relacionados

Rational Rose de Rafional

Una de las herramientas mas populares del mercado que utiliza la notacioacuten UML y tiene la capacidad de reingenieriacutea de software para integrar sistemas existentes capacidad de mezclar diferentes lenguajes dentro de un mismo modelo ademaacutes de ingenieriacutea inversa sobre los componentes COM (Component Object Model) ActiveX y Java y con soporte de las arquitecturas MicrosoWCOM y CORBAIDL (The Common Object Request Broker Architecture)

Con Rational Rose se puede trabajar en grupo con capacidades para modelar y visualizar procesos de negocios y requerimientos de sistemas Tiene soporte para generar esquemas objetos-relaciones de bases de datos para realizar anaacutelisis de datos Cuenta con el soporte para analizar sitios Web en ASP (Active Server Pages) y JSP (Java Server Pages) Ademaacutes soporta los lenguajes Java CC++ Visual CC++ [RAT02] 9

SI -

Visio de Microsoft

Visio Enterprise 2002 permite crear diferentes tipos de diagramas como son

1 Diagramas de flujo 2 Planos de oficinas 3 Diagramas de aacuterbol 4 Diagramas de organizacioacuten 5 Liacuteneas de tiempo 6 Mapas geograacuteficos y direccionales 7 Diagramas de sitios Web 8 Diagramas de red 9 Diagramas de UML

Tiene las siguientes caracteriacutesticas diagramacioacuten e importacioacuten de servicios de directorio reingenieria de bases de datos disentildeo y documentacioacuten de bases de datos diagramacioacuten de software ingenieriacutea directa e inversa de coacutedigo replicacioacuten exacta por medio de diagramas de equipos y configuraciones de red diagramacioacuten automatizada y ambiente colaborativo

Visio da un conjunto completo de herramientas de diagramacioacuten de redes para planear y documentar claramente las redes existentes Ademaacutes para crear esquemas eleacutectricos mecaacutenicos y de procesos pueden crearse diagramas complejos con facilidad y poco entrenamiento

A las aplicaciones existentes se les puede realizar la ingenieriacutea inversa para obtener el disentildeo y tambieacuten crear nuevos disentildeos Proporciona herramientas para crear diagramas de bases de datos y es posible realizar ingenieriacutea inversa de esquemas existentes en bases de datos cliente servidor como SQL Server IBM Oracle y otros [MIC02]

4

Conceptos generales

e JVision 21 de Object Insight

JVision permite en la ingenieriacutea directa la creacioacuten de clases variables y meacutetodos con lo cual genera plantillas de coacutedigo para programadores en Java Los diagramas se pueden exportar a HTML La documentacioacuten puede integrarse con JavaDoc de Sun JVision da el soporte para ingenieriacutea inversa para el lenguaje Java

Se pueden crear todos los diagramas definidos por UML en los diagramas de secuencias da la oportunidad de dibujar clases liacuteneas liacuteneas de tiempo de vida y marca de destruccioacuten de objetos ofrece ademaacutes el soporte para las acciones de llamada regresar valor enviar accioacuten crear accioacuten y eliminar accioacuten [OBJO2]

MagicDraw 6 de No Magic

Es una herramienta CASE con soporte para trabajo en grupo Esta disentildeado para analistas 6 de negocios analistas de software programadores ingenieros de calidad y

documentadores Esta aplicacioacuten provee la capacidad para crear los diagramas definidos por UML (soporta UML 14) Cuenta con el soporte de ingenieriacutea inversa y generacioacuten de coacutedigo para C++ C Java y CORBNIDL Tiene integracioacuten con NetBeans se actualiza automaacuteticamente disponible en aacuterabe portugueacutes franceacutes italiano ingles (US) alemaacuten espantildeol japoneacutes y coreano

Tiene la caracteriacutestica de soportar la adaptacioacuten de los elementos a colores que el usuario defina Los diagramas pueden exportarse a imaacutegenes JPG EMF WMF EPS y DXF En los diagramas de secuencia da oportunidad de definir roles textos notas mensajes de varios tipos al mismo objeto recursivo ademaacutes de la relacioacuten a las notas y las liacuteneas de vida Es posible guardar los diagramas como imaacutegenes de mapas de bits o vectores Mantiene ademaacutes una vista pequentildea a escala del diagrama completo [NoA402]

e

SmariDraw Professional Plus de SmariDraw

Todos los dibujos pueden agregarse en las aplicaciones de Microsoft como son Word Excel PowerPoint Contiene maacutes de 50000 (1000 en la versioacuten estaacutendar) formas predefinidas ejemplos y plantillas Los diagramas pueden ser exportados a imaacutegenes WMF BMP JPG GIF TIF y otros Incluye un convertidor de archivos de VISIO

Con esta herramienta es posible crear diagramas de flujo diagramas de bloque diagramas de flujos de datos diagramas de organizacioacuten aacuterboles de decisioacuten disentildeo de redes Gantt diagramas de flujo de procesos diagramas de administracioacuten de calidad diagramas eleacutectricos diagramas mecaacutenicos diagramas quiacutemicos liacuteneas de tiempo planes de espacio posters mapas formas y tambieacuten da soporte para UML es posible dibujar objetos actores activacioacuten de los objetos mensaje mensaje de retorno mensaje asiacutencrono mensaje con tiempo liacutenea de vida del objeto marca de destruccioacuten del objeto y ciclos (descrito con un rectaacutengulo y una condicioacuten de salida) [SMA02]

5

Conceptos generales

Producto Soporta Diagramas de UML Secuencias

Creacioacuten automaacutetica de diagramas de

El Rational Rose El Visio

Jvision

Magic D r a w

a a El Fl El a El El

I ~

I ~

I -

Ambiente de modelado de

a a SmartDraw El

Tabla I Tabla comparativa

Todas las herramientas descritas anteriormente cuentan con caracteriacutesticas sobresalientes para el disentildeo y modelado de sistemas de software pero ninguna de ellas genera automaacuteticamente los diagramas de secuencia con base en los diagramas de clases y el disentildeo detallado de los meacutetodos asiacute tambieacuten ninguna de ellas realiza un caacutelculo de los canales de comunicacioacuten abiertos entre las clases que conforman el sistema

iexcla la A UML Editor in Java

13 Definicioacuten del problema

El modelado de sistemas utilizando el estaacutendar de UML en diversos productos comerciales prototipos de laboratorio elaborados en universidades y centros de investigacioacuten atienden la perspectiva baacutesica de la abstraccioacuten general del modelo esto es documentar el modelo del sistema que se requiere sin atender puntos importantes tales como

La generacioacuten automaacutetica de los diagramas de secuencias La correccioacuten de inconsistencias en los diagramas al crearlos de forma separada

El

6

sistemas de software

secuencias utilizando diagramas de a a a

Conceptos generales

Se hace necesaria la creacioacuten de un ambiente visual que permita obtener de forma automaacutetica los diagramas de secuencias en base a los diagramas de clases y al disentildeo detallado de los meacutetodos para facilitar la documentacioacuten la generacioacuten de coacutedigo y el mantenimiento de los sistemas

La obtencioacuten de los diagramas de secuencias estaacute basada en los Diagramas de Clases definidos por UML que son construidos con la herramienta InverSOODA junto con el disentildeo detallado de los meacutetodos construidos con Diagramas de Wamier elaborados con la herramienta InverDDVi

En el estaacutendar UML para la construccioacuten de los diagramas no existe actualmente una sintaxis expliacutecita definida solo existe impliacutecitamente en el uso de los elementos del diagrama por lo que se ha descrito una gramaacutetica visual de tipo relaciona1 como soporte para la construccioacuten de los Diagramas de Secuencias

n ai 14 Objetivo de la Tesis

Construir un ambiente visual que permita al usuario obtener el diagrama de secuencias de manera automaacutetica

141 Objetivos especiacuteficos de la tesis Crear una gramaacutetica que soporte la construccioacuten del diagrama de secuencias Construir de forma automaacutetica el diagrama de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodos

15 Hipoacutetesis de investigacioacuten

Es posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodos

16 Alcances y limitaciones del trabajo de tesis

Los alcances de la tesis se especifican a continuacioacuten

Se elaboroacute la arquitectura del sistema Se definioacute la gramaacutetica de soporte Se desarrolloacute la interfaz en Visual C++ haciendo uso de las MFC Se interactuacutea con los diagramas de clases de InverSOODA Se interachiacutea con el disentildeo detallado de los meacutetodos realizados por InverDDVI Se genera el diagrama de secuencias de forma automaacutetica

7

Conceptos generales

Limitaciones de la tesis

0 No se genera coacutedigo

La investigacioacuten se limita a los diagramas de clases para la vista estaacutetica de los sistemas de software y a los diagramas de Warnier para la vista dinaacutemica de los meacutetodos El ambiente no trabaja en red

No se modifican los archivos de InverSOODA No se modifican los archivos de InverDDVI No se recuperan diagramas de secuencias a partir de coacutedigo legado

4

8

Capiacutetulo 2

Narc0 teoacuterico

En eacuteste capiacutetulo se describen los temas usados para el desarrollo de la tesis iquestQue son los modelos iquestEn que parte del proceso de Ingenieriacutea del Software se usan los modelos o el modelado Se estudia la interfaz de usuario los lenguajes visuales y las gramaacuteticas visuales Se describe el Lenguaje de Modelado Unificado (UML) ademaacutes de la programacioacuten orientada a objetos por ser este paradigma en donde se enfoca este trabajo

Marco teoacuterico

21 Modelado de sistemas de software

un modelo es una abstraccioacuten de algo con el propoacutesito de entenderlo antes de construirlo El modelo omite detalles no esenciales haciendo maacutes faacutecil su manipulacioacuten que la entidad original [BLA98] Un modelo es la simplificacioacuten de la realidad [RUM99] Los propoacutesitos de los modelos son

Probar una entidad fisica antes de construirla Establecer mejor comunicacioacuten con los clientes Visualizar el problema y el sistema desde una mejor perspectiva Reducir la complejidad [BLA98] Capturar y precisar requerimientos y conocimiento del dominio Pensar acerca del disentildeo del sistema Capturar decisiones de disentildeo en una fomia separada que cambia a partir de los requerimientos Generar productos Organizar buscar filtrar obtener examinar y editar informacioacuten acerca de un sistema Explorar muacuteltiples soluciones econoacutemicas Manejar sistemas complejos [RUM99]

El modelado es una probada y bien aceptada teacutecnica de Ingenieriacutea de Software [RUM99] El modelado es parte central de todas las actividades que conducen a la produccioacuten de buen software Se construyen modelos para comunicar la estructura deseada y revisar el comportamiento de nuestro sistema Se construyen modelos para visualizar y controlar la arquitectura del sistema Se construyen modelos para comprender mejor el sistema que estamos construyendo muchas veces descubriendo oportunidades para la simplificacioacuten y la reutilizacioacuten Se construyen modelos para controlar el riesgo [BOO99] La razoacuten fundamental por la que modelamos es porque nosotros construimos modelos que nos ayudan a entender mejor el sistema que estamos desarrollando [RUM99]

El modelado nos permite [RUM99] 1 Visualizar como es el sistema o como queremos que sea 2 Especificar la estructura del sistema 3 Plantear nuestras guiacuteas en la construccioacuten delsistema 4 Documentar las decisiones que hemos tomado

En las etapas del desarrollo del software el modelado es usado en el disentildeo el disentildeo del sistema es la primera etapa en donde se da la aproximacioacuten baacutesica de la solucioacuten al problema seleccionado ademaacutes se decide por la estructura (arquitectura del sistema) y el estilo de la solucioacuten

La arquitectura del sistema provee el contexto sobre el cual se tomaraacuten decisiones mas detalladas en las etapas subsecuentes del disentildeo [BLA98] En el disentildeo modelamos el sistema y encontramos su forma (incluida la arquitehra) para que soporte todos los 3 -

10

Marco teorico

i

4 -I

requisitos -incluyendo los requisitos no funcionales y otras restricciones- que se le suponen [JAC99] Los propoacutesitos del disentildeo son

Adquirir una comprensioacuten en profundidad de los aspectos relacionados con 10s requisitos no funcionales y restricciones relacionadas con los lenguajes de programacioacuten componentes reutilizables sistemas operativos tecnologiacuteas de distribucioacuten y concurrencia tecnologiacuteas de interfaz de usuario tecnologiacuteas de gestioacuten de transacciones etc Crear una entrada apropiada y un punto de partida para actividades de implementacioacuten subsiguientes capturando los requisitos o subsistemas individuales interfaces y clases Ser capaces de descomponer los trabajos de implementacioacuten en partes mas manejables que puedan ser llevadas a cabo por diferentes equipos de desarrollo teniendo en cuenta la posible concurrencia Capturar las interfaces entre los subsistemas Esto ayuda cuando reflexionamos sobre la arquitectura y cuando utilizamos interfaces como elementos de sincronizacioacuten entre diferentes equipos de desarrollo Ser capaces de visualizar y reflexionar sobre el disentildeo utilizando una notacioacuten comuacuten Crear una abstraccioacuten independiente de la implementacioacuten del sistema en el sentido de que la implementacioacuten es un refinamiento directo del disentildeo que rellena lo existente sin cambiar la estructura Esto permite la utilizacioacuten de tecnologiacuteas como la generacioacuten de coacutedigo y la ingenieriacutea de ida y vuelta entre el disentildeo y la implementacioacuten [JAC99]

22 Interfaz de usuario (Mecanismos de interaccioacuten)

El crecimiento de las computadoras personales vendidas en los ~ O rsquo S lanzoacute con fuerza el ldquofaacutecil de usarrdquo como una de las caracteriacutesticas mas importante de un producto de computadora

Las interfaces graacuteficas de usuario no son nuevas se pueden encontrar en las paredes de cuevas al sur de Francia en las piraacutemides de Egipto y en las paredes de muchas ciudades [iUM92] Para el usuario de un sistema interactivo la comunicacioacuten es tan importante como la computacioacuten Para los usuarios regularmente la interfaz es el sistema [HIX93]

Disentildeo de Interfaz Seguacuten Hackos [HAC98] las interfaces estaacuten en todo donde se trabaja con

o Controles en productos de hardware o Etiquetas y sentildeales en el hardware o Pequentildeas pantallas de cristal liquido en maacutequinas de cualquier tipo o Pantallas para aplicaciones de software para terminales de computadoras centrales

Marco teoacuterico

o pantallas para aplicaciones de software en computadoras Personales sistemas operativos como Windows OS2 DOS Macintosh U n b Y Otros

0 Paacuteginas de un sitio WEB 0 Sistemas de ayuda y manuales en-liacutenea 0 Tutoriales incrustados y otros tipos de soporte de funcionamiento O Esquemas de formas y otros documentos

una interfaz es el medio con el cual los usuarios interactuacutean con el producto 0

sistema para lograr SUS objetivos

Interfaz Usable

Para que una interfaz sea usable debe ser transparente y darles a los usuarios la capacidad de lograr cumplir sus metas de forma efectiva y eficiente

Los beneficios presentados en el uso de las interfaces de usuario [TH190] Disfrutar el sistema El usuario disfruta trabajar con un sistema que cuenta con una interfaz bien disentildeada y que le da la funcionalidad y acceso a los recursos de una manera clara y sencilla Proporciona nuevas habilidades Elimina al usuario concentrarse en acciones que la propia interfaz y el sistema hacen dando como resultado que el usuario solo se concentre en lo importante del trabajo Delegacioacuten de tareas La interfaz de usuario permite al usuario no conocer los detalles de la tarea esto es la computadora atiende los detalles de las tareas mientras que el usuario se concentra en asuntos de maacutes alto nivel Seguridad El usuario no necesita estar en lugarespeligrosos para hacer su trabajo

Se da la mayor posibilidad para que el usuario tenga acceso al conocimiento utilizando un sistema interactivo Haciendo las cosas a la primera Las tareas se ejecutan en un orden correcto definido lo que da como resultado un trabajo bien terminado sin necesidad de repetir evitando asiacute altos costos Computando LOS usuarios pueden calcular datos sin necesidad de conocer el proceso para obtener los resultados

Desarrollo

El disentildeo de interfaz es un negocio bastante dificil Eacuteste combina dos complicadas disciplinas psicologiacutea y ciencias de la computacioacuten Estas disciplinas tienen un fondo cultural muy diferente la psicologiacutea atiende a la gente (comprensioacuten y entendimiento) las ciencias computacionales a las maacutequinas (matemaacuteticas y precisioacuten) El disentildeo de las buenas interfaces requiere que estas dos perspectivas esteacuten unidas [THi90]

Hackos dice que las interfaces dan simplicidad y elegancia al trabajo necesario y a la vida e los usuarios Si no es obvio al usuario pero es raacutepida para aprender [HAC98] ademaacutes define caracteriacutesticas comunes de las interfaces usables

o Hacen que el flujo de trabajo sea familiar o confortable o Soportan el estilo de aprendizaje de los usuarios

12

Marco teoacuterico

Visualizacioacuten de Entrenamiento visual Para controlar Soportar interaccioncs Programar con informacioacuten visual visuales expresiones visuales

o Compatibles con los ambientes de trabajo de los usuarios o Se extienden sobre un concepto de disentildeo que es familiar al usuario o Tienen consistencia de presentacioacuten que los hace parecer maacutes confiable y faacuteciles de

aprender o Usan lenguaje y figuras familiares al usuario o faacuteciles de aprender

Datos o informacioacuten acerca de datos

23 Lenguajes Visuales

Los lenguajes visuales son un nuevo paradigma para expresar los sistemas computacionales Ellos ofrecen la posibilidad de manipular directamente los objetos Un lenguaje visual consiste de sentencias visuales Para lenguajes visuales basados en iacuteconos cada sentencia visual es un arreglo espacial de objetos O iacuteconos graacuteficos [CHA90]

Un lenguaje visual es concebido como una coleccioacuten de figuras obtenidas por un arreglo graacutefico de objetos en dos o maacutes dimensiones Los lenguajes visuales pueden ser modelados sintaacutecticamente a traveacutes de un vocabulario un conjunto de relaciones usadas para componer las figuras y un conjunto de reglas describiendo las figuras pertenecientes al lenguaje Los objetos graacuteficos de un vocabulario de un lenguaje visual se caracterizan por contar con un conjunto de atributos Los atributos de un objeto graacutefico pueden ser atributos graacuteficos atributos sintaacutecticos y atributos semaacutenticos [MAR98]

Un lenguaje de programacioacuten visual puede ser informalmente definido como un lenguaje el cual usa algunas representaciones visuales [SHV88]

Programa ylo Disentildeo de Lenguajes de programacioacuten visual ejecucioacuten software Diagramas iconos Formas

Programacioacuten Visual [SHU88]

Gramaacuteticas para la especificacioacuten de lenguajes visuales [MAR98]

a) Gramaacuteticas texfuales generalizadas Este tipo de gramaacutetica provee una adaptacioacuten apropiada de la concatenacioacuten de siacutembolos para dos dimensiones Su principal ventaja es que conservan los elementos teoacutericos de las gramaacuteticas textuales y los eficientes algoritmos de anaacutelisis de eacutestos uacuteltimos Su principal desventaja es que eacutestas gramaacuteticas no son tan poderosas y soacutelo pueden especificar clases restringidas de lenguajes visuales

13

Marco teorico

b) Meacutetodos basados en gramaacuteticas de grafos Un ejemplo de este tiPo de gramaacuteticas son las gramaacuteticas de red Las oraciones generadas con gramaacuteticas de red son grafos dirigidos con siacutembolos en los nodos Estos grafos son llamados redes Una produccioacuten de eacuteste tipo de gramaacuteticas es de la siguiente forma

a - t p E

donde a y p son redes y E es una forma de conectar a p cuando a es conectada a otra red anfitriona

La mayor desventaja es que las gramaacuteticas de red no han probado ser totalmente uacutetiles para la especificacioacuten de gramaacuteticas arbitrarias por la complejidad para rescribir grafos y al hecho de que no todo lenguaje visual estaacute compuesto exclusivamente por grafos

C) Gramaacuteticas de multiconjuntos de atributos En estas gramaacuteticas las producciones rescriben conjuntos o multiconjuntos de siacutembolos que tienen atributos con informacioacuten sobre geometriacutea o semaacutentica La reescritura se controla con restricciones sobre los atributos de los siacutembolos en el lado derecho de las producciones

Un ejemplo de eacutestas gramaacuteticas es la Gramaacutetica Coordinada que especifica notacioacuten matemaacutetica de dos dimensiones En esencia las producciones en una gramaacutetica coordinada n-coordinada libre del contexto tienen la siguiente forma

A -t a donde C F

Todos los siacutembolos de eacuteste tipo de gramaacutetica tienen n atributos geomeacutetricos A es un siacutembolo no terminal a es una cadena no vaciacutea de siacutembolos C es una restriccioacuten sobre los atributos de los siacutembolos en a y F es una expresioacuten que computa los atributos de los siacutembolos de A en teacuterminos de los atributos de los siacutembolos en a no importando el orden de los siacutembolos en a

d) Gramaacuteticas PosicionaZes Las gramaacuteticas posicionales son un formalismo para la definicioacuten e implementacioacuten de lenguajes visuales las gramaacuteticas posicionales extienden naturalmente a las gramaacuteticas libres de contexto Una gramaacutetica libre de contexto posicional PG es una six-tupla (N T S P POS PE) donde

N es un conjunto finito no vaciacuteo de siacutembolos no terminales T es un conjunto finito no vaciacuteo e siacutembolos terminales con N n T = $I S E N es el siacutembolo no terminal de inicio P es un conjunto finito de producciones POS es un conjunto finito de identificadores de relacioacuten binaria PE es un evaluador pictoacuterico

14

Marco teorico

Cada produccioacuten en P tiene la siguiente forma

A -+ X I R I X R2 X ~ I Rm1 xm A

e) Gramaacuteticas de Relacioacuten de siacutembolos Eacuteste es un formalismo sintaacutectico para describir un lenguaje visual donde cada oracioacuten dentro del lenguaje se representa como un conjunto de objetos visuales y un conjunto de relaciones entre objetos

El alfabeto de siacutembolos Vt y el conjunto de relaciones entre siacutembolos Vr una oracioacuten de relacioacuten de siacutembolos w sobre Vt y Vr es un par ( M R) donde

M es un conjunto de elementos-s (v i) con v E Vt y i es un nuacutemero natural R es un conjunto de elementos-r de la forma r (Xi Yj) con Xi Yj E M r E Vr y una relacioacuten r esta contenida entre Xi y Yj

Una gramaacutetica de relacioacuten de simbolos es el conjunto de seis elementos G = (Vn Vt Vr S P R) donde Vn es un conjunto de siacutembolos no terminales Vt es un conjunto de siacutembolos terminales Vr es un conjunto de relaciones entre siacutembolos S es el siacutembolo inicial y P es un conjunto de reglas de reescritura (producciones de elementos-s)

f) Gramaacuteticas relacionales Este tipo de gramaacutetica pertenecen a las gramaacuteticas libres de contexto

La gramaacutetica relaciona1 (RGrsquos) es una 6-tupla G (N C S R Attr P) donde

N C S R Attr P

es un conjunto finito de siacutembolos no terminales es un conjunto de siacutembolos terminales es un siacutembolo distinguido en N llamado siacutembolo inicial es un conjunto finito de siacutembolos de relacioacuten es un conjunto finito de siacutembolos de atributos es un conjunto de producciones de la forma A-gt apF donde A E N a E (nlo)+ Donde n E N cr E E

8 Es un conjunto de relaciones de la forma (r x y) donde r E R y xy son enteros que hacen referencia a un miembro de a y tambieacuten una expresioacuten de la forma (a i) donde a E Attr e i es un entero que hace referencia a un miembrode a

F Es un conjunto de declaraciones de asignacioacuten de caracteriacutesticas de la forma (a O)=x donde a E Attr y x es un entero que hace referencia a un miembro de a o a una expresioacuten de la forma (a i)

15

Marco teoacuterico

24 Programacioacuten orientada a objetos

L~~ meacutetodos orientados a objetos organizan la informacioacuten Y el procesamiento que manipula esta informacioacuten de acuerdo a los objetos delrsquomundo real que la informacioacuten describe [BRO97l

Beneficios de las teacutecnicas orientadas a objetos [BR097] Estabilidad del sistema Mantenibilidad Componentes reusables Confiabilidad Accesibilidad de los datos Participacioacuten del usuario

Seguacuten Graddy Booch la programacioacuten orientada a objetos es ldquoun meacutetodo de implementacioacuten en el que los programas se organizan como colecciones cooperativas de objetos cada uno de los cuales representan una instancia de alguna clase y cuyas clases son todas miembros de una jerarquiacutea de clases unidas mediante relaciones de herenciardquo [JOY 981

Programacioacuten orientada a objetos esencialmente significa programacioacuten usando objetos [JAC93] Los lenguajes orientados a objetos deben soportar los siguientes conceptos

Objetos Abstraccioacuten de datos Encapsulamiento Clases e Instancias Herencia entre clases Polimorfismo

Las propiedades fundamentales de la Programacioacuten Orientada a Objetos son

a Abstraccioacuten Son ideas conceptos y propiedades que se describen en forma general eliminando los detalles Es una estructura de datos y los meacutetodos que manipulan a esos datos

b Encapsulamiento Son las fronteras propias de un objeto bien definidas las cuales protegen los detalles de su representacioacuten interna

c Ocultacioacuten de la informacioacuten Es la propiedad en la que los objetos pueden hacer uso para impedir que otros objetos los usuarios o incluso los programadores conozcan coacutemo estaacute distribuida la informacioacuten

d Herencia Es la propiedad que tiene una clase para heredar atributos y comportamiento a otras clases

e Polirnorfismo Es la propiedad que permite que una entidad pueda cambiar a diferentes formas efectuaacutendose de manera dinaacutemica en tiempo de ejecucioacuten

16

Marco teoacuterico

t

Clases Es la especificacioacuten de una familia de objetos es la declaracioacuten de un tipo de objetos Tambieacuten se dice que una clase es la descripcioacuten de un conjunto de objetos con un comportamiento similar y que esta compuesta de Datos (o atributos) y Meacutetodos o (rutinas acciones operaciones)

Objeto Un objeto es una entidad en la cual se almacenan datos y los meacutetodos o funciones que controlan dichos datos Un objeto es una abstraccioacuten de alguna cosa del mundo real que contiene datos que lo describen y operaciones que solo tienen acceso a esos datos [BR097l Los elementos de los que esta conformado un objeto son

a Las relaciones permiten que el objeto se integre en la organizacioacuten b Las propiedades son los datos que caracterizan el estado de un objeto distinguiendo

asiacute a un objeto determinado de los restantes que forman parte de la misma organizacioacuten

c Los meacutetodos son las operaciones que pueden realizarse sobre la estructura del objeto es decir las acciones que cambian el estado de un objeto y que el objeto es capaz de ejecutar a traveacutes de mensajes y que tambieacuten pone a disposicioacuten de sus descendientes a traveacutes de la herencia

Mensajes Son solicitudes para que se lleve a cabo la operacioacuten indicada y se produzca un resultado

Las razones principales para introducir la tecnologiacutea de objetos son los beneficios de dicha tecnologiacutea

Aumento de la fiabilidad Aumento de la productividad del desarrollador Desarrollo maacutes raacutepido Mejor calidad maacutes alta

Incremento en escalabilidad Mejores estructuras de informacioacuten Incremento de adaptabilidad Reduccioacuten del coacutedigo fuente

Mantenimiento maacutes faacutecil y reduccioacuten de costo

Los elementos de reutilizacioacuten son las clases y objetos

25 Lenguaje de Modelado Unificado (UML)

UML (Unified Modeling Language por sus siglas en ingleacutes Lenguaje de Modelado Unificado) es un lenguaje de modelado visual de propoacutesito general que es utilizado para especificar visualizar construir y documentar las partes de un sistema de software El lenguaje estaacute basado en un pequentildeo nuacutemero de conceptos centrales que la mayoriacutea de los desarrolladores de tecnologiacutea orientada a objetos pueden aprender y aplicar faacutecilmente [RUM99]

17

Marco teoacuterico

y UML Pasado Presente y Futuro

L~~ lenguajes de modelado orientado a objetos aparecieron a mediados de 10s 70rsquos Varias teacutecnicas influenciaron estos lenguajes El nuacutemero de lenguajes de modelado incrementoacute desde menos de 10 hasta maacutes de 50 entre 1989 y 1994 Muchos modeladores teniacutean problemas para encontrar un lenguaje de modelado que satisficiera todas sus necesidades Notablemente aparecioacute Boochrsquo93 y la evolucioacuten continuoacute a OMT y Fusioacuten

OOSE (Object-Oriented Software Engineering) estaacute enfocado a la ingenieriacutea de negocios y anaacutelisis de requerimientos dando un excelente soporte orientado a casos de uso OMT-2 es especialmente expresivo para anaacutelisis y sistemas de informacioacuten de datos grandes Boochrsquo93 fue particularmente expresivo para el disentildeo y fases de construccioacuten de proyectos y popular para aplicaciones de ingenieriacutea intensiva

Grady Booch y Jim Rumbaugh iniciaron el desarrollo de UML en 1994 al unificar sus meacutetodos independientes Booch y OMT En 1995 Ivar Jacobson se unioacute a Racional eacutesta unioacuten logroacute que el meacutetodo OOSE se incorporara La unificacioacuten establecioacute que debiacutean activar el modelado de sistemas utilizando conceptos orientados a objeto asiacute como crear un lenguaje usable tanto para las maacutequinas como para los humanos

A

Muchas organizaciones se unieron al consorcio UML y dedicaron recursos al trabajo hacia el fortalecimiento de la definicioacuten de UML Esta colaboracioacuten produjo un lenguaje de modelado expresivo poderoso y generalmente aplicable En la forma actual de UML se espera que sea base de muchas herramientas incluidas las de modelado visual simulacioacuten y ambientes de desarrollo

R UML es abierto y no-propietario y aunque define un lenguaje preciso no es barrera para futuras mejoras en conceptos de modelado Se usan muchas teacutecnicas de punta pero se esperan teacutecnicas adicionales que influencien futuras versiones de UML puede ser extendido sin redefinir el nuacutecleo

c

Mientras el rehuacuteso basado en componentes se ha favorecido ampliamente cada vez mas esto no significa que las teacutecnicas basadas en componentes reemplazaraacuten las teacutecnicas orientadas a objetos Hay solo sutiles diferencias entre la semaacutentica de componentes y clases [ALC03]

Un opaco rendimiento caracterizoacute el mercado de anaacutelisis modelado y disentildeo en el 2000 en su transicioacuten de las viejas herramientas CASE (Computer Aided Software Engineering) a algo maacutes dinaacutemico y mejor adaptado para satisfacer las necesidades de los desarrolladores para el cambio raacutepido en los ambientes de negocio

El mercado de anaacutelisis modelado y disentildeo lograraacute obtener un crecimiento positivo en varios de los siguientes antildeos por varias razones El mercado seraacute manejado principalmente por la necesidad de desarrolladores a obtener aplicaciones para lanzarse al mercado raacutepidamente asiacute tambieacuten por el intereacutes creciente y uso de una nueva especie de herramienta y por el intereacutes creciente de los desarrolladores en usar UML reglas de negocios y adaptadores de componentes para construir aplicaciones [RIKUI]

z -

18

Marco teoacuterico

UML se ha hecho el estaacutendar para los desarrollos de modelado de negocios administracioacuten de requerimientos anaacutelisis y disentildeo programacioacuten y pruebas Los objetivos primarios de UML en el disentildeo [RAT97j

o Dar a los usuarios un lenguaje visual expresivo de modelado listo para usarse para que puedan desarrollar y cambiar los significados de sus modelos

o Suministrar mecanismos de extensibilidad y especializacioacuten para extender los conceptos centrales

o Ser independiente de lenguajes de programacioacuten particulares y procesos de desarrollo

o Impulsar el desarrollo de las herramientas Orientadas a Objeto en el mercado o Soportar conceptos de desarrollo de alto nivel como colaboracioacuten marcos de

componentes reutilizables patrones y componentes o Integrar las mejores praacutecticas

9 El aacutembito de UML

UML es un lenguaje para especificacioacuten construccioacuten visualizacioacuten y documentacioacuten de artefactos de un sistema de software UML es la fusioacuten de los conceptos de Booch OMT y OOSE El resultado es un simple comuacuten y ampliamente usado lenguaje de modelado para usuarios de estos y otros meacutetodos UML se enfoca en un lenguaje de modelado estaacutendar no en un proceso estaacutendar los autores de UML recomiendan un proceso de desarrollo manejado por casos de uso de arquitectura central iterativo e incremental [iiquest4T97l

Para la definicioacuten de sistemas de software en UML se definen diagramas Un diagrama es la representacioacuten graacutefica de un conjunto de elementos este se visualiza la mayoriacutea de las veces como un grafo conexo de nodos (elementos) y arcos (relaciones) Los diagramas se dibujan para visualizar un sistema desde diferentes perspectivas de forma que un diagrama es la proyeccioacuten de un sistema uumlML incluye nueve diagramas [B0099]

4 -

I Diagrama de clases 2 Diagrama de objetos 3 Diagrama de casos de uso 4 Diagrama de secuencias 5 Diagrama de colaboracioacuten 6 Diagrama de estados 7 Diagrama de actividades 8 Diagrama de componentes 9 Diagrama de despliegue

Diagramas de secuencias Un diagrama de secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten comportamiento

Un diagrama de secuencias muestra un conjunto de mensajes acomodados en una secuencia de tiempo eacuteste diagrama muestra la interaccioacuten en un esquema de dos - dimensiones [RUM99]

19

Marco teoacuterico

Y -

Un diagrama de secuencia es un diagrama de interaccioacuten que resalta la ordenacioacuten temporal de los mensajes Un diagrama de secuencia presenta un conjunto de objetos y los mensajes enviados y recibidos por ellos Los objetos suelen ser instancias (con nombre o sin nombres) de clases pero tambieacuten pueden representar instancias de otros elementos tales como colaboraciones componentes y nodos Los diagramas de secuencia se utilizan para describir la vista dinaacutemica de un sistema [B0099]

Usar los diagramas de secuencia es mostrar la secuencia que existe en un caso de uso [RUM 991

Los diagramas de secuencia tienen dos dimensiones Una dimensioacuten que representa el tiempo Otra dimensioacuten que representa los diferentes objetos que participan en la secuencia de eventos requeridos para completar el propoacutesito [MOuuml98]

El principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildea las interacciones de los objetos [DAN02]

20

Capiacutetulo 3

DesawoCCo de Ia herramienta

En este capiacutetulo se describe el desarrollo del Ambiente Visual Se describe el modelo conceptual del sistema la arquitectura asiacute como tambieacuten los elementos que componen la Arquitectura Se estudian los Diagramas de Secuencias de UML y algunos Patrones de Disentildeo de los que se hace uso para el mejor desarrollo del sistema Se describe a detalle la Gramaacutetica Visual Relaciona1 utilizada para el de Ambiente de desarrollo

I CENIOET 1FNTRO DE INFORMACION

Desarrollo de la herramienta

t i i

Actualmente existe en el cenidet un Ambiente Visual de Modelado de Clases llamado InverSOODA este Ambiente Visual tiene la capacidad de realizar la generacioacuten automaacutetica de coacutedigo de las clases en C++ a partir del modelo especificado Ademaacutes se puede realizar la Ingenieria Inversa de un coacutedigo legado para obtener el modelo de clases Aunado a este trabajo existe el Ambiente Visual denominado InverDDVi con el cual se puede realizar el Disentildeo Detallado de los Meacutetodos de las Clases con diagramas de Warnier Asiacute tambieacuten es posible obtener el modelo aplicando la Ingenieriacutea Inversa a un coacutedigo legado en C++

Ambos trabajos son retomados en este proyecto para la automatizacioacuten en la obtencioacuten de los Diagramas de Secuencias de UML La figura 31 muestra el modelo propuesto de ingenieriacutea directa

Extraer informacioacuten del diagrama de

rsquo rsquo

Diagrama de 11 clases I o

detallado de

detallado de

o meacutetodos

i ir---- Construir el

secuencias i

Modelo de Ingenieriacutea I directa automaacutetica

I

Figura 31 Modelo de Ingenieria Directa Autombtica de los Diagramas de Secuencias

Para la construccioacuten automaacutetica de un diagrama de secuencias se toma como base a un diagrama de Clases El modulo ldquoExtraer informacioacuten del diagrama de Clasesrdquo sirve para obtener el nombre y los meacutetodos descritos en cada uno de las clases que existan en el diagrama de Clases

22

Desarrollo de la herramienta

Con base en la informacioacuten que se tiene se abren los archivos correspondientes a los diagramas de Warnier El proceso que se emplea sobre cada uno los diagramas de Warnier llamado ldquoExtraer informacioacuten de los disentildeos detallados de los meacutetodosrdquo sirve para recopilar el conjunto de las llamadas de cada meacutetodo definido

En el siguiente paso (ldquoReconocer llamadas a meacutetodosrdquo) consiste en identificar si los meacutetodos que estaacuten descritos en los diagramas de Warnier tambieacuten lo estaacuten en el diagrama de Clases correspondiente

El paso ldquoConstruir los diagramas de secuencias automaacuteticamenterdquo realiza una validacioacuten de los meacutetodos definidos en los diagramas de Clases con los meacutetodos definidos en los diagramas de Warnier Este paso crea una estructura de datos con la secuencia de las llamadas y la recorre para crear los objetos y los mensajes en el diagrama de secuencias

AI terminar la creacioacuten automaacutetica del diagrama de secuencias se dispone de la r opcioacuten de guardar

31 Disentildeo de la Arquitectura

Para definir los procesos que el sistema va a realizar es necesario llevar a cabo un anaacutelisis de requisitos los cuales pueden ser expresados mediante diagramas de Casos de Uso Los Casos de Uso son una descripcioacuten textual narrativa de los procesos de un sistema

311Requisitos (Diagrama de Casos de uso)

Los casos de uso en realidad no son un artefacto de anaacutelisis orientado a objetos estos describen simplemente procesos y pueden ser igualmente efectivos en un proyecto tecnoloacutegico no orientado a objetos Son usados en un paso preliminar a la descripcioacuten de requerimientos de un sistema [LAR971 La Figura 32 muestra el diagrama de casos de uso que especifica al S3C

9

S3C (Diagramas de Secuencias)

usuario I Modelado de

I

Figura 32 Diagrama de Casos de Uso para el S3C

23

Desarrollo de la herramienta

Descripcioacuten de los Casos de Uso

Caso de Uso ldquoDiagramas de Secuenciasrdquo Se inicia cuando el actor ldquousuariordquo solicita la creacioacuten de un Diagrama de Secuencias Se establece la forma de la construccioacuten automaacutetica de los diagramas de secuencias de UML Se hace uso del Modelado de Clases y del Modelado del disentildeo detallado de los meacutetodos

Escenario de Eacutexito 1 Se obtiene la informacioacuten de las clases del modelado de clases 2 Se obtiene la informacioacuten del modelado del disentildeo detallado de los meacutetodos 3 Se realiza la construccioacuten automaacutetica de los diagramas de secuencias

1 En el modelo de clases no hay informacioacuten o estaacute incompleta 2 En el modelo del disentildeo detallado de los meacutetodos no hay informacioacuten o estaacute

incompleta

Escenario de Falla

Caso de Uso ldquoModelado de Clasesrdquo El diagrama de Clases se utiliza para obtener los nombres de clases y los nombres de los meacutetodos de cada clase

Escenario de Eacutexito 1 Se abre el modelo 2 Se procesa para obtener la informacioacuten de las clases (nombres de clases y nombres

de meacutetodos)

Escenano de Falla h 1 No se puede abrir el modelo J 2 El modelo esta vaciacuteo

Caso de Uso ldquoModelado del Disentildeo detallado 1 los meacutetodosrdquo El disentildeo detallado de los meacutetodos se realiza con diagramas de Warnier aquiacute se establecen las llamadas a funciones dentro del sistema y es aquiacute donde se identifica el dinamismo que se representaraacute en los diagramas de secuencias

Escenario de Eacutexito 1 Se abre el modelo 2 Se realiza la identificacioacuten de las llamadas existentes

Escenario de Falla 1 No se puede abrir el modelo 2 El modelo esta vaciacuteo

24

Desarrollo de la herramienta

Clase Objeto ni I Diagrama I n ____ Nombre Descripcioacuten

i

Mensaje

Tipo

En el Anaacutelisis Orientado a Objetos se crea una especificacioacuteii del dominio del problema y de los requeriinientos desde la perspectiva de una clasificacioacuten por objetos y del entendimiento de los teacuterminos usados en el dominio del problema Una descomposicioacuten del dominio del problema involucra una identificacioacuten de conceptos atributos y asociaciones que son considerados importantes dentro del dominio El resultado puede ser expresado en un Modelo Corzcepttraf el cual es ilustrado en un conjunto de diagramas que definen conceptos (objetos) [LAR97]

312Modelo Conceptual

El modelo conceptual visto en la Figura 33 no es una descripcioacuten de componentes de software representa conceptos en el domino del problema en el mundo Teal [LAR97l

313Diagramas de clases

Por cuestiones dc espacio las clases de la arquitectura del sistema estaraacuten referidas en varios diagramas que de alguna manera estaacuten relacionados entre si

Una de las partes maacutes importantes del Ambiente Visual S3C es la estructura de clases ltCCraJicogt la cual se refiere al control de los diagramas eacutesta por su naturaleza podriacutea considerarse el nuacutecleo del sistema La manipulacioacuten y control de los diagramas estaacute definido en una estructura de clases organizada con el patroacuten de disentildeo Composite que se muestra en la Figura 34

25

Desarrollo de la herramienta

CRecursividadDS CMensajeDS CObjetoDS CDiagramaDS

I Cvisitor I

CApuntadorDS CDblClickDS CAsocAdjusterDS CSelectorDS

26

Desarrollo de la herramienta

n 32 Elementos de la arquitectura

Es necesario describir los elementos que dan soporte a la arquitectura del ambiente donde se implementaraacute el sistema en este caso Microsoft Visual (MV) C++ 6 El MV C++ es un marco de aplicacioacuten poderoso basado en Windows se integran ademaacutes del lenguaje C++ (compilador y enlazador) el programa de desarrollo de programas en lenguaje C para Windows (SDK) la Microsoft Foundation Class Library AppWizzard Classwizard AppStudio y WorkBencli

La Microsoft Foundation Class Library comprende una biblioteca de clases de C++ y es considerada como el nuacutecleo del MV C++

321Microsoft Foundation Class (MFC)

La libreriacutea Microsoft Foundation Class (MFC) es una interfaz orientada a objetos que tiene las siguientes metas de disentildeo

o

Reduccioacuten significante de esfuerzo al escribir una aplicacioacuten para Windows Velocidad de ejecucioacuten comparable a las APIrsquos del lenguaje C Miacutenimo tamantildeo de coacutedigo Capacidad para llamar cualquier funcioacuten de Windows en C directamente Faacutecil conversioacuten de aplicaciones existentes en C a C++ Faacutecil uso de APIrsquos de Windows con C++ como con C Faacutecil uso de complicadas caracteriacutesticas de abstracciones poderosas como ActiveX soporte para base de datos impresioacuten barras de herramientas y barras de estado El API de Windows en C++ si usa tan efectivamente como las caracteriacutesticas mismas del lenguaje C++

La mayoriacutea de las clases de la Libreriacutea de la Microsoft Foundation Class son derivadas de una clase base ltCObjectgt que es la raiacutez de la jerarquiacutea de clases ltCObjectgt da uacutetiles capacidades a las clases que derivan de ella

La jerarquiacutea que existe en las clases derivadas de ltCObjectgt es la siguiente

Arquitectura de Aplicacioacuten Excepciones Servicios de Archivos Arreglos Listas Mapas Servicios de Internet Sockets Sincronizacioacuten Soporte para base de datos D A 0

27

Desarrollo de la herramienta

i

r

Liacutenea de Comandos Menuacute Dibujo Graacutefico Dibujo Graacutefico de Objetos Soporte de Control Soporte de Ventanas

Soporte para base de datos ODBC

o Marco de Ventanas o Barras de control o Hojas de propiedades o Cajas de Dialogo o Vistas o Controles

322Arquitectura Documento Vista

Por defecto las aplicaciones creadas con la MFC usan un modelo de aplicacioacuten que separa los datos del programa de las vistas de interaccioacuten con el usuario En eacuteste modelo un objeto documento de MFC lee y escribe datos en un almacenamiento persistente Un objeto vista administra el despliegue de datos suministrando al usuario los datos para ser seleccionados o editados La vista le comunica al documento cualquier cambio en los datos La razoacuten maacutes conveniente para seguir este modelo es cuando se necesita muacuteltiples vistas del mismo documento (como en una hoja de caacutelculo y un graacutefico)

La arquitectura documentovista hace faacutecil el soporte de muacuteltiples vistas y muacuteltiples tipos de documentos asiacute como la divisioacuten de ventanas y otras caracteriacutesticas de interfaz de usuario Pero el corazoacuten de la arquitectura son cuatro clases (Mostradas en el aacuterbol de clases de la Figura 36)

ltCDocumerrtgt (o ltCOleDocuinentgt) - Se instancia un objeto de este tipo para almacenar y controlar los datos del programa ltCViewgt (o una de sus clases derivadas ltCScrotlViewgt ltCFormViewgt ltCEditView ltCRecordViewgt ltCDaoRecordView ltCtreeViewgt ltCListViewgt b ltCrichEditViewgt) - Un objeto es usado para desplegar los datos y administrar la interaccioacuten del usuario con los datos ltCFrameWndgt (o una de sus variantes) - Establece el marco sobre el que trabajaraacuten una o mas vistas de un documento ltCDocTemolategt (o ltCSingIeDocTemplategt o ltCMultiDocTemplategt) - Coordina la existencia de uno o maacutes documentos de un tipo dado y administra la correcta creacioacuten de los documentos vistas y objetos ventanas para cada tipo

i

28

Desarrollo de la herramienta

______________ 2 Wiew

I - - __ - ------a ________________

323Integrando Ambientes en Visual C t t

Las aplicaciones de Interfaz de Documento Uacutenico (SDI) soporta muacuteltiples tipos de documentos pero este soporte es para un solo objeto documento Debido a esta restriccioacuten y aunado a la necesidad de tener varios objetos documentos a la vez se determina la utilizacioacuten del modelo Interfaz de Muacuteltiples Documentos (MDI) indicado en la Figura 37

324Interfaz de Muacuteltiples Documentos (MDI)

Una aplicacioacuten de Interfaz de Muacuteltiples Documento (MDI) permite la creacioacuten de plantillas para el manejo de los documentos eacutesta plantilla tiene la forma

rn-pDocTemplate = new CMultiDocTernplate ( I DR-SCUMLTY PE RUNTIME-CLASS (CSCUMLDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CTheView))

AddDocTernplate ( rn-pDocTemplate )

Cada plantilla describe una relacion del tipo de documento con la vista asociada La definicioacuten de la plantilla para el ambiente que controla los diagramas de secuencias es la siguiente

29

Desarrollo de la herramienta c

m-pTernplateSeqDlag = new CMultiDocTernplate ( IDR-DS-SJCTYPE RUNTIME-CLASS (CSeqDiagDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CSeqDiagView) )

AddDocTernplate( rn-pTernplateSeqDiag )

Esta plantilla hace uso de la clase CCliildFrame que por defecto el ambiente Visual C++ construye y esto es debido a que no se requieren caracteriacutesticas extras en las ventanas de las que proporciona dicha clasc En un caso en el que se requiriera un comportamiento diferente de la vista tendriacutea que crearse una nueva clase con las caracteriacutesticas deseadas

Vista Documento

Vista

I- Vista Documento I [ Tip- F Vista

L Figura 37 Modelo Interfaz de Muacuteltiples Documentos (MDI)

Para integrar otro Ambiente que utilice otro tipo de documento es necesario definir otra plantilla de la misma forma mencionada Debe tomarse en cuenta los siguientes puntos

Es necesario definir el nombre (mqTemplateNOMBRE) El IDR del tipo que se requiere que sea el documento En la primera liacutenea RUNTIME CLASS debe indicar la clase ltCDocumentgt que desea La segunda liacutenea RUNTIME-CLASS soacutelo la cambia a otra clase si requiere de otro manipulador de ventanas de lo contrario deje que ltCChildFramegt se haga cargo

-

30

Desarrollo de la herramienta

En la uacuteltima liacutenea referente a RUNTIME-CLASS se debe indicar la clase ltCViewgt que desea usar Para finalizar se usa la instruccioacuten AddDocTernplate para finalizar la definicioacuten del template (mgTemplateNOMBRE)

325 Recursos Diaacutelogos Mertuacutes y Barras de Herrattriertias

Son varios los recursos con los que se puede contar al crear un proyecto en Microsoft Visual C++ Los diaacutelogos son un recurso disponible que son utilizados para visualizar ingresar yo modificar informacioacuten que se requiera En el Ambiente Visual que se desarrolla son varios los diaacutelogos que se utilizaraacuten y eacutestos se describen a continuacioacuten

El Diaacutelogo ldquoCaracteriacutesticas del Obietordquo (Figura 38) identifica el nombre del Objeto y la descripcioacuten del mismo Este diaacutelogo se muestra cuando se presiona doble clic sobre un objeto del diagrama

I Nombre

Desciipcion

Figura 38 Dialogo Caracteriacutesticas del Objeto

El Diaacutelogo ldquoMensaierdquo (Figura 39) muestra el nombre del mensaje que puede ser modificado ademaacutes se visualizan el Identificador del Mensaje el tipo de Mensaje asiacute tambieacuten el origen y destino del mensaje

31

Desarrollo de la herramienta

Nornbie delMensaje Edit

IDentificador del Mensaje Edil Tipo de Mensaje (Edil

Edit Objeto Origen

Objeto Destino IEdit

i25El A Figura 39 Dialogo Mensaje

El menuacute es otro de los recursos del que se puede disponer para organizar el ambiente que se estaacute creando Para eacuteste caso en particular no se hizo modificaciones al menuacute estaacutendar (Figura 310) que Visual C++ presenta Los cambios significativos son el manejo del tipo de documento para los Diagramas de Secuencias

Archivo Editar Yer VenLana AyGda

Figura 310 Menuacute de los Diagramas de Secuencias (estaacutendar)

Otro importante recurso del que uno se puede valer en Visual C++ es la barra de herramienta personalizada la cuaacutel es construida en el Editor de Recursos Se ha construido una barra (Figura 311) con los elementos graacuteficos de los Diagramas de Secuencia de UML

Figura 311 Barra de Herramientas de los Diagramas de Secuencias

Es recomendable que al utilizar barras de herramienta personalizada se defina en el tamantildeo estaacutendar ya que puede experimentar problemas al momento de ejecutar la aplicacioacuten

Ademaacutes puede usar la propiedad TBBS-CHECKGROUP en una barra de herramientas para establecer que los botones puedan quedar presionados hasta que un botoacuten diferente sea presionado No olvide que la numeracioacuten inicia con cero ( O )

vuriableToolBurSetButtonStyle(OTBBSCHECKGROUP)

32

Desarrollo de la herramienta

Prefijo ID IDC IDD IDP IDR IDS

326 Notacioacuten estaacutendar

Los nombres descriptivos de los recursos se asocian a un valor uacutenico Para una mayor claridad eacutestos nombres mantienen un prefijo que describe el tipo de recurso asociado (vea la Tabla 31) [MIC99]

Tipo de Recurso Comandos de Menuacute Controles y recursos Cuadros de diaacutelogo Cadenas de solicitud para cuadros de mensaje Menuacute principal barras de herramienta tabla aceleradora y el icono Cadenas

IDR IDD IDC ID

200 - 299 3000 - 3999 34000 - 34999

Estos son los rangos de valores establecidos para el proyecto S3C Si se utiliza el coacutedigo fuente y se planea agregar otro proyecto verifisue que no se invadan estos nuacutemeros para evitar problemas

Para facilitar auacuten maacutes los trabajos futuros se ha definido una estructura de carpetas (ver Figura 312) para incluir en cada una las Clases correspondientes a cada tesis en desarrollo

33

Desarrollo de la herramienta

ill ~~ -

-I SCUML classes + U A N T L R + U App + 0 ClassDiagrams + 0 Common + a Java

t $2 SequenceDiagiams

+ WarnierDiagrams

iJ PackageDiagrams

12 StaterChartDiagrams

+

- f Classview I Resourceview 1 FileView ]

~ ~

Figura 312 Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)

327Estructura de datos persistencia y recuperacioacuten

Existe una gran cantidad de tipos de datos estructuras clases y meacutetodos de los que se puede hacer uso para una mejor y maacutes faacutecil obtencioacuten de los resultados A continuacioacuten hago comentarios en tipos de datos y meacutetodos en los que podriacutea tener problemas

CTypedPtrList

AI usar este tipo de dato o alguno relacionado que le permita utilizar el meacutetodo ltCTvrgtedPtrListGetNextgt tenga especial precaucioacuten al usarlo ya que al devolver el valor requerido la variable POSITION usada no se queda apuntando a ese valor en particular salta al inmediato siguiente de la lista

Si se realiza una creacioacuten dinaacutemica con punteros para los elementos de una CTypedPtrList Despueacutes de haberlo agregado a la lista evite el delete para borrar esta Usted deseando liberar la memoria no lo haga ya que eliminara directamente el elemento de la lista

POSITION

Es un valor usado para denotar una posicioacuten de un elemento en una coleccioacuten Pero CUIDADO no se refiere a un iacutendice es una referencia (no consecutiva) de punteros muy diferente a un iacutendice

CString

Auacuten cuando el operador de comparacioacuten == (igual a) es permitido para ser utilizado en las cadenas evite su uso ya que en ocasiones aunque cuando la e

34

Desarrollo de la herramienta

compilacioacuten no indique error alguno en la ejecucioacuten no realizaraacute lo que se necesita Recomiendo que utilice CStringCompare ()

Para eliminar el contenido de un CString utilice CStringEmpty() ya que asignar a la cadena un ldquonrdquo podriacutea causarle problemas

Serializacioacuten

Una forma en que se puede guardar informacioacuten y recuperarla de manera eficaz es mediante la serializacioacuten de objetos La serializacioacuten es un proceso que permite escribir un objeto en un archivo y tambieacuten leerlo

Para que la serializacioacuten se lleve a cabo son necesarios tres objetos un objeto de tipo ltCFilegt que represente el archivo un objeto de tipo ltCArchivegt que ofrece el entorno para la serializacioacuten y la clase del objeto a ser serializado debe ser heredada de ltCObjectgt y sobrescribir el meacutetodo ltSerializegt para que se encuentre de tal forma en que pueda ser serializado (vea la Figura 313)

Objeto a ser serializado 1

1 CArchive

[f --=I- ---7 Archivoexi

u Figura 313 Serializacioacuten

328Patrones de disentildeo utilizados

Se ha planteado la definicioacuten de una arquitectura de clases utilizando patrones de disentildeo debido a que algunos de ellos hacen maacutes faacutecil la extensioacuten de la funcionalidad y mantenimiento

35

Desarrollo de la herramienta

El patroacuten Composite es utilizado para crear de manera uniforme el diagrama sobre el que se trabaja (ver Figura 34) manteniendo una jerarquiacutea de clases uniforme las clases maacutes bajas en la jerarquiacutea definen primitivas de objetos graacuteficos

Se aplica el patroacuten de disentildeo Iterator para hacer recorridos en listas de objetos para realizar diversas operaciones Otro patroacuten de disentildeo del que se hace uso es el Visilor (ver Figura 35)

Para otras actividades que se realizan podriacutea pensarse en que se deberiacutean aplicar otros patrones pero se han evitado algunos (como el patroacuten de disentildeo Builder) para evitar incrementar la complejidad en la arquitectura ya que ai mantener el modelo de la MFC de documentovista la funcionalidad del patroacuten de disentildeo Builder es faacutecilmente reemplazado si se hiciera Uso de eacuteste se aumentariacutea la complejidad excesivamente (nos llevariacutea a perdemos en ocasiones en el paso de mensajes entre clases) dantildeando la facilidad de la arquitectura

33 Diagrama de secuencias

Un Diagrama de Secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten escenario Oacute comportamiento se usan para definir el curso loacutegico de accioacuten de un posible camino a seguir en la resolucioacuten de un problema Seguacuten John Daniels [DANO2] ldquoel principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildean las interacciones de los objetosrdquo

Los Diagramas de Secuencias se utilizan en el modelado de la implementacioacuten de sistemas de software ademaacutes son aplicables en el modelado de requisitos para establecer las comunicaciones existentes entre actores yo clases del sistema Con eacutestos diagramas se logran hacer descripciones de los escenarios y los comportamientos del sistema Con los Diagramas de Secuencias es posible definir protocolos de comunicacioacuten con paso de mensajes ya que dan esa flexibilidad que se requiere Ademaacutes los Diagramas de Secuencias contienen informacioacuten suficiente para que puedan ser transformados a los diagramas de colaboracioacuten [RUM Ol][BOO Oil

331Ciclo de vida del software

Considerando cualquier modelo de ciclo de vida del software (en la figura 314 se muestra el Modelo de cascada) el aacutembito directo de eacuteste Ambiente Visual es en el disentildeo aunque tiene sus vertientes en la codificacioacuten y mantenimiento

36

Desarrollo de la herramienta

Diseno

Codificacibn

I I I I Mantenimiento I

igura 314 Modelo de cascada del ciclo de vida del software

34 Elementos atoacutemicos de la Gramaacutetica

Definicioacuten de los elementos atoacutemicos del lenguaje y su contenido

1 Actor- Representa roles de entidad externos al sistema con el que interactuacutea directamente Los actores pueden ser humanos dispositivos u otros sistemas

2 ClaseObjeto- Determina una Clase u Objeto participante en la interaccioacuten

3 Mensaje-Es una comunicacioacuten entre objetos que contiene informacioacuten Eacuteste se representa con la finalidad a que una accioacuten sea llevada a cabo

4 Mensaje con tiempo- Tiene la misma finalidad que el mensaje la diferencia es que con eacutel se representa un atributo de tiempo

5 Mensaje asiacutencrono Es un mensaje que ocurre en el tiempo de manera independiente a otros mensajes

6 Mensaje de destruccioacuten de objeto- Es un mensaje cuya finalidad es indicar la destruccioacuten del objeto destino

7 Mensaje de creacioacuten de objeto- Es un mensaje que indica la creacioacuten de un objeto

8 Llamada al mismo objeto (Recursividad)- Es usado para modelar llamadas recursivas en el que una operacioacuten es invocada por el mismo objeto

37

Desarrollo de la herramienta

9 Destruccioacuten del objeto (AutodestrucciOacuten)- Puede o no modelarse es representada con una X al final de la liacutenea de vida del objeto

Elementos aulomaacuteticos

1 Liacutenea de Vida- Representa la vida del objeto durante la interaccioacuten

2 Activacioacuten- Muestra el periacuteodo de tiempo en el cual el objeto alguna operacioacuten

341RepresentaciOacuten visual

Representacioacuten visual de los elementos atoacutemicos del lenguaje

Actor

_- A

Mensaje

Mensaje de Creacioacuten de

Objeto

ClaseObjeto

I

Mensaje de retorno

Mensaje de Destruccioacuten de

Objeto

abla 32 Element(

Activacioacuten

Mensaje con tiempo

Autodestruccioacuten

x

atoacutemicos del lengi

taacute realizz

Texto ===I (letra)+ (letra I

numero) letra= AZ I az numero = 09

I

Recursividad ~

I

i j e

io

38

u

Comentario

iexcl

Conector de Comentario

35 Gramaacutetica desarrollada

La gramaacutetica que se propone es una gramaacutetica visual del tipo relacional Una gramaacutetica relacional pertenece a las gramaacuteticas libres de contexto es una 6-iupla G (N C S R Attr P) donde

N es un conjunto finito de siacutembolos no terminales C es un conjunto de siacutembolos terminales S es un siacutembolo distinguido en N llamado siacutembolo inicial R es un conjunto finito de siacutembolos de relacioacuten Attr es un conjunto finito de siacutembolos de atributos P es un conjunto de producciones

Entonces definiendo nuestra gramaacutetica G (N C S R Attr P)

N = Diagrama GrupoClaseObjeto

S = Diagrama

R = mensaje mensajeTiempo mensajeRetomo mensajeAsincrono mensajecrea mensajeDestruye autodestruccioacuten recursividad

R

Attr = entrada salida entradacrea

39

Desarrollo de la herramienta

Definiendo la posicioacuten de los atributos en los elementos visuales

entradacrea ObetaClase

entrada

salida

P =

Diagrama I GrupoClaseObjeto (mensaje (mensajeRetorno

(salida 1) (entrada 2) ) (salida 2) (entrada 1) )

- Diagrama 0 GrupoClaseObjeto

(mensaje (mensaje (mensajeRetomo (mensajeRetomo (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entradacrea 2) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 1) ) (salida 1) (entrada 1) )

entrada

salida

40

Desarrollo de la herramienta

s

-

GrupoClaseObjeto - 1 1 I 2 (mensaje (mensaje (mensajeRetorno (mensajeRetorno (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entradacrea 2) ) (salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 1) ) (salida I ) (entrada I ) )

1 En las gramaacuteticas relacionales una produccioacuten estaacute acompantildeada de las posibles

relaciones que puedan generarse En la primera produccioacuten Diagrama produce a un Actor seguida de un GrupoClaseObjeto el Actor inicia la interaccioacuten con un mensaje y recibe el mensaje de retorno al finalizar la interaccioacuten La segunda y tercera produccioacuten son similares debido a que un GrupoClaseObjeto contiene dos ClaseObjeto que se relacionan de la misma forma

Existe un elemento de la gramaacutetica llamado Attr (Atributo) el cual define la parte de los elementos visuales donde se establecen las relaciones Se han determinado dos atributos (entrada y salida) que para nuestro propoacutesito estaraacuten establecidos en la liacutenea de vida de cada elemento visual (Actor y ClaseObjeto)

Los Comentarios y la Activacioacuten no se consideran en la gramaacutetica Los comentarios son libres de incluirse y relacionarse con cualquier elemento y relacioacuten mencionada anteriormente y la activacioacuten existe siempre que se presente un mensaje (o podriacutea omitirse) Estas consideraciones se realizaron para hacer auacuten maacutes faacutecil la gramaacutetica ya que si se trata de realizar un sistema las restricciones de estos elementos pueden mantenerse en el lenguaje de programacioacuten en el que se desarrolle el sistema

36

Precondiciones

El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias

1 El diagrama de Clases debe existir y estar completo 2 Debe existir un archivo con un diagrama de Warnier por cada diagrama de Clases y

con el mismo nombre de archivo (excepto la extensioacuten del archivo) 3 En el uacutenico diagrama de Warnier de cada Clase se deben modelar todos los meacutetodos

de la Clase 4 No realizar declaraciones de meacutetodos

41

Desarrollo de la herramienta

5 Debe existir un meacutetodo lsquomain()rsquo en el diagrama de Clases

Restricciones

Los meacutetodos deben mantener nombres distintos en las diferentes Clases

Metodologiacutea para la obtencioacuten automaacutetica de los Diagramas de Secuencias

1 Seleccionar el diagrama de Clases

2 Se construye una lista con los nombres de las Clases y los Meacutetodos

3 Se verifica si exista el meacutetodo lsquomain()rsquo en alguna Clase Se busca la existencia de una uacutenica Clase

a La Clase que contenga lsquomain()rsquo se va al inicio de la lista de Clases

b Si no existe lsquomain()rsquo SE TERMINA EL PROCESO

4 Se verifica la existencia de los archivos que contienen el Disentildeo Detallado de los meacutetodos en Wamier para cada una de las Clases si alguno falta SE TERMINA EL PROCESO

5 Se procesa cada uno de los modelos del Disentildeo Detallado de los Meacutetodos generando una lista de secuencias de llamadas por cada uno de los meacutetodos

6 Se verifica que cada llamada corresponda a alguacuten meacutetodo existente (del diagrama de Clases) De no existir ese meacutetodo la llamada entra a una estructura que

7 Se crea una lista de secuencia

a Se inicia con lsquomain()rsquo b Se recorre cada una de las llamadas de los meacutetodos c Se considera invaacutelido el caso de que un meacutetodo intente una llamada

recursiva al meacutetodo lsquomain()rsquo

8 Se muestra un diaacutelogo de resultados en el que se indican las llamadas que no se encnotraron definidas y que pueden ser Llamada a libreriacutea oacute Llamada Erroacutenea

42

Capiacutetulo 4

Prue6as y su6taaacuteos

En eacuteste capiacutetulo se da a conocer el detalle de las pruebas y de los resultados obtenidos Se describen los casos de prueba con los que se realizoacute la evaluacioacuten del sistema asiacute tambieacuten se presentan comentarios acerca de los resultados obtenidos

Pruebas y Resultados

41 Recursos teacutecnicos utilizados

Para llevar a cabo las pruebas al sistema S3C se utilizaron los siguientes equipos de Coacutemputo

Computadora de escritorio

256MB RAM Disco Duro 80G Monitor 17rdquo SAMSUNG

AMD Athlon XP 1600+ I4Ghz

Computadora de escritorio Intel Pentium 4 - 128MB RAM Disco Duro 40G Monitor 15rdquo i -

42 Descripcioacuten del plan de pruebas

Las pruebas establecen el Uacuteltimo paso desde donde es posible evaluar la calidad y descubrir los errores Las pruebas y la validacioacuten del software se utilizan para comprobar que el sistema cumple con las expectativas del usuario

En esta seccioacuten se describen los casos de prueba que se realizaron al prototipo de S3C en conjunto a la suite cenidet-UML Para cada uno de los casos se presenta el objetivo el procedimiento que se siguioacute para la prueba y se muestran los resultados obtenidos - _

Las pruebas a realizar son los siguientes

Caso 1 Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Caso 2 Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Wamier

Caso3 Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Wamier

Caso4 Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo 5

44

Pruebas y Resultados

43 Resultados

431 Caso 1

5 Y

IZ =

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoSirdquo 4 Seleccionar el archivo ldquoVENTASrdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 41 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

s3c iuevo Proyecto SCUM1

Diagrama de clases

lvendedor I L

3

salida

venta prod

4 venia-oferta vcntaprod =

salida 6

Figura 41 Resultado del caso de prueba 1

45

Pruebas y Resultados

432 Caso 2

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Warnier (almacenwar cajawar vendedorwar) que ya cxisten (del caso de prueba I )

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoNordquo 4 Agregar las siguientes Clases con los respectivos meacutetodos y atributos

a Claseldquovendedorrdquo Meacutetodos ldquoventa mainrdquo b Claseldquoalmacenrdquo Meacutetodos ldquoentrada salidardquo c Claseldquocajardquo Meacutetodos ldquoventagrodrdquo

5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 42 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

Diagrama de daseo lisgrama dcsccucncis

MOIDOC Anivo

venta prod

salida

1 Ycrdquo1a 2

I 4 vcrdquolD~o1cn venta prod gt

salida 6 i Figura 42 Resultado del caso de prueba 2

46

Pruebas y Resultados

r

433 Caso 3

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Warnier

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 43 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

5

Error al tratar de abrir el archivo A bZwar

Aceptar i

Faltan Archivos de Disentildeos Detallados de Meacutetodos 1 1 A No se puede crear el diagrama de secuencias

Figura 43 Resultado del caso de prueba 3

47

Pruebas y Resultados

434 Caso 4

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 44 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

lsquo I

~ _ i i _ l _ Repaado ~~ ~ ~ 6~ ampA Figura 44 Resultado del caso de prueba 4

48

Pruebas y Resultados

PRUEBA DESCNPCION CASO 1 Mostrar la funcionalidad del

Sistema S3C a partir de un

44 Anaacutelisis de Resultados

RESULTADOS Se comproboacute la correcta funcionalidad del Sistema S3C a partir de un diagrama

CASO 3

CASO4

I diagrama de Clases cxistcnte I de Clases existente CASO 2 I Mostrar la funcionalidad del I Sc comproboacute la corrccta funcionalidad

Sistema S3C a partir de un del Sistema S3C a partir de un diagrama diagrama de Clases que se de Clases que se construye al momento construye al momento Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el Secuencias si falta alguno de los diagrama de Secuencia si falta alguno diagramas de Warnier Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el secuencias si hace falta el meacutetodo diagrama de Secuencias al faltar el ldquomain ()rdquo meacutetodo ldquomain()rdquo

de los diagramas de Warnier

Los resultados obtenidos de cada uno de los casos establecidos demuestran que se validoacute la funcionalidad del prototipo con los requisitos definidos en el alcance de este proyecto

a lt

49

Conclusiones y Tru6ajos Futuros

Aquiacute se dan a conocer las conclusiones y se describen los posibles trabajos futuros para la continuacioacuten de eacuteste proyecto

F

51 Conclusiones

Conclusiones y trabajos futuros

Se ha creado un Ambiente Visual que permite obtener de forma automaacutetica los Diagramas de Secuencias en base a los diagramas de Clases y al disentildeo detallado de los meacutetodos descritos con diagramas de Warnier cumpliendo con los objetivos planteados para este trabajo

La tesis aporta principalmente La generacioacuten automaacutetica de los diagramas de secuencias y la eliminacioacuten de inconsistencias al mantener una validacioacuten directa de los diagramas de clases y los diagramas de Warnier que son utilizados

Esta validacioacuten es lograda a traveacutes del uso de la gramaacutetica visual relaciona1 que se ha definido (veacutease el capiacutetulo 3) Esta gramaacutetica visual establece reglas para la correcta construccioacuten de los diagramas de secuencias

P De esta manera se establece que la hipoacutetesis ldquoEs posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodosrdquo Es verdadera

52 Trabajos Futuros

Un Diagrama de Secuencias puede convertirse en un Diagrama de Colaboracioacuten por lo tanto un trabajo futuro es la construccioacuten automaacutetica de un Diagrama de Colaboracioacuten a partir de uno de Secuencias existente

Es posible calcular la meacutetrica de acoplamiento al tener un Diagrama de Secuencias construido

La Ingenieriacutea directa de un Diagrama de Secuencias estableciendo la validacioacuten en la construccioacuten de todos los elementos visuales que UML define

La propagacioacuten de las modificaciones de un Diagrama de Secuencias a los Diagramas de Clases y los Diagramas de Warnier

La modificacioacuten del coacutedigo fuente mediante los cambios establecidos en un Diagrama de Secuencias

51

[ALC03]

[BLA98]

[B0099]

[BOOOi]

[BR097]

[CHA90]

[DAN02]

[GLA02]

[HAC98]

[HER03]

4

Alcate1 Computer Associates International inc Electronic Data Systems Corporation Hewlett-Packard Company IBM Corporation I-Logix IntelliCorp Kabira Technologies Kennedy Carter Microsoft Corporation Object Management Group Oracle Corporation Project Technology Ptech Inc Rational Software Corporation Reich Technologies Softeam Taskon A S Telelogic Unisys Corporation ldquoOMG Unified Modeling Language Specificationrdquo Version 15 Unified Modeling Language 2003

Blaha Michael Rumbaugh James Premerlani William Eddy Frederick Lorensen William ldquoObject-oriented modeling and designrdquo Prentice Hall 484 Paacuteginas ISBN 0-13-629841-9 QA-769-03S-B53-19981998

Booch Grady Rumbaugh James Jacobson Ivar ldquoEl lenguaje unificado de modeladordquo Addison Wesley 432 Paacuteginas ISBN 84-7829-028-1 1999

Booch Grady Rumbaugh James Jacobson Ivar ldquoThe Unified Modeling Language User Guiderdquo Addison Wesley 2001

Brown David ldquoAn introduction to object-oriented analysis objects in plain Englishrdquo John Whiley amp Sons Inc 700 Paginas ISBN 0-471-1 1028-0 QA-769-035-B76-1997 1997

Chang Shi-Kuo ldquoVisual Languages and visual programmingrdquo Plenum Press 340 Paacuteginas ISBN 0-306-43428-8 QA-7665-V57-1990 1990

Daniels John ldquoModeling with a sense of purposerdquo Design - IEEE Software JanuaryEebmary 2002

Glasgow Universidad Reino Unido ldquoA UML Editor in Javardquo (lthttplstudentsdcsglaacuWstudentspainjfproject-reportproject-re port-htmV4thYearReporthtrnlgt 2002)

T Hackos JoAnn C Redish Janice ldquoUser and Task Analysis for Interface Designrdquo Wiley Computer Publishing 488 Paacuteginas ISBN QA-769-U83- H33-1998 1998

Hemaacutendez Velaacutezquez M ldquoIngenieriacutea inversa de coacutedigo fuente en C++ para la obtencioacuten de su disentildeordquo Tesis AT-379 (03-0334) 2003

Conceptos generales

[HIX93]

[JAC93]

[JAC99]

[JOY98]

[LAR97]

[MAR]

[MIC99]

[MIC02]

[MOU98]

Hix Deborah Hartson H Rex ldquoDeveloping user interfacesrdquo 381 Paacuteginas ISBN 0-471-57813-4 QA-769-U83-H59-1993 1993

Jacobson Ivar Christerson Magnus Jonsson Patrik Overgaard Gunnar ldquoObject oriented software engineeringrdquo Addison Wesley ISBN 0-20 1 - 54435-0 QA-7676-D47-J63-1993 1993

Jacobson Ivar Booch Grady Rumbaugh James ldquoEl proceso unificado de desarrollo de softwarerdquo Addison Wesley 438 Paacuteginas ISBN 84-7829-036- 2 1999

Joyanes Aguilar Luis ldquoProgramacioacuten orientada a objetosrdquo McGruw Hill ISBN 84-481-0590-7 1998

Larman Craig ldquoAplying UML and Patternsrdquo Prentice Hull 507 Paacuteginas ISBN 0-13-748880-7 QA-769-035-L37-1997 1997

Marriot Kim Meyer Bemd ldquoVisual Language Theoryrdquo Springer 381 Paacuteginas P-935-V567-1998 1998

Microsoft ldquoMicrosoft Visual C++ 6 manual del programadorrdquo McGraw Hill ISBN 84-481-2127-9 QA-7673-Cl53-23718-1999 1999

Microsoft ldquoVisiordquo (lthttpwwwmicrosoftcomofficevisiogt 2002)

B Mourao Luis X ldquoUniversal Modeling Language Part 11 UML Notation - Case Sequence and Collaboration Diagramsrdquo Lan Times Magazine (~httpwwwlantimescomltpartsdiscussdiscuss6Ohtm~) 1998

No Magic ldquoMagicDrawrdquo (lthttpwwwmagicdrawcomgt 2002)

Object Insight ldquoJvisionrdquo (lthttpwwwobject-insightcomgt 2002)

Rational Software Microsoft I Hewlett-Packard Oracle Sterling Software MCI Systemhouse Unisys ICON Computing IntelliCorp i-Logix IBM ObjectTime Platinum Technology Ptech Taskon Reich Technologies Sofieam ldquoUML Summaryrdquo Version 11 Unified Modeling Language 1997

Rational ldquoRational Roserdquo (lthttpwwwrationalcomproductosrosegt 2002)

Rikki Kirzner ldquoAnalysis Modeling and Design Tools Market Forecast and Analysis 2001-2005rdquo Bulletin Published Under Services Application Design and Construction Tools Application Development and Deployment Strategies Documento Nuacutemero 24809 Junio 2001

53

Conceptos generales

[RIM92] Rimrner Steve ldquoGraphical user interface programmingrdquo 423 Paacuteginas

1992

Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language reference manualrdquo Addison Wesley 550 Paacuteginas ISBN 0-201-

ISBN 0-8306-2475-9 ISBN 0-8306-2472-4 (pbk) QA-769-083-R55G

[RUM99]

30998-X QA-7676-D47-R85-1999 1999

[RUM299] Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language user guiderdquo Addisoiz Wesley 482 Paacuteginas ISBN 0-201 -57 168-4 QA-7676-D47-B66-1999 1999

[SMA02] SmartDraw ldquoSmartDrawrdquo (lthttpwwwsmartdrawcomgt 2002)

[SHU88] 9 - Shu Nun C ldquoVisual Programmingrdquo Van Nostrand Reinhold ISBN 0-422- 28014-9 ISBN 0-422-01 164-4 QA-7665-S55 1988

[THI90] Thimbleby Harold ldquoUser Interface Designrdquo Acm press 470 Paacuteginas ISBN 0-201 -41 61 8-2 QA-769U83-T772~- 1990 1990

[WENO2] Wences Diaz MF ldquoModelo de Ingenieriacutea Inversa para la obtencioacuten de disentildeo detallado basado en LEVISSrdquo Tesis (02-0014) 2002

54

Anexo A

Conampuracioacuten de Microsoft Vkua[C++ 6 O

Este anexo indica las configuraciones que se utilizaron para la compilacioacuten de SCUML y s3c

Configuracioacuten de Microsoft Visual c++ 60

Debido a la integracioacuten de los proyectos de InverSOODA e InverDDVi con S3C se cumplioacute con los requisitos previos de ambos proyectos

El compilador usado en el proyecto fue el Microsoft Visual C++ 60

Para el cumplimiento con la funcionalidad de InverSOODA se instaloacute el ANTLR la versioacuten 271 Se descargoacute del sitio l i l l ~ ~ ~ ~ ~ ~ t l ~ l ~ - ~ t - ~ la versioacuten mencionada en un archivo comprimido (en formato zip) Se colocoacute el paquete descomprimido en el directorio ldquoDIANTLR-271 I rdquo

Recomiendo ampliamente que el directorio principal de ANTLR se copie en el directorio raiacutez de cualquier unidad de disco debido a que experimenteacute problemas de compilacioacuten cuando ANTLR no se encontraba en el directorio raiacutez

Io015

Source Browser AlttF12 I u c Ersquo V I

Visual Component Mgnager

- - ~ ~ ~ ~~

P2 Registrar control

A Contenedor de prueba de controles ActiveX

A Usor de objetos OLE y COM

Buacutesqueda de errores

A Y++ MFC Iracer

Customize options

~ - q- ~ Macro

Eecord Quick Macro Cbl+ShiR+R Pay Quick Macro Ctrl+ShiR+P

En el menuacute Tools (Herramientas) seleccione el sub-menuacute Options ltopcionesgt

56

Configuracioacuten de Microsoft Visual C++ 60

En la siguiente ventana de diaacutelogo debe agregar la direccioacuten en donde se encuentra el ANTLR

Agregar la ruta del directorio de ANTLR hasta el subdirectorio

libcpp

Editor I Tabs I Debug I Compatibility 1 Build Dneclolies I a I Chow directories for - Platfolm -

- Directories I x ) 4 jWin32 -] llnclude files

m cancd I

57

Configuracioacuten de Microsoft Visual C t+ 60

Se ha creado una libreriacutea (anrlrliblib) de ANTLR la cual ya estaacute situada en el directorio del proyecto SCUML (ISCUML) y no debe ser movida o eliminada

I

Geneial 1 Debug I CC++ Link I Category

Output file name bebugSCUMLexe

Objectljibrary modules 4 anllrliblib

li Generate debug lnfo r Ignore all defaull lbaries D ~ i n k j n ~ ~ ~ t a n ~ r ~ e n e r ~ ~ ~ mapfile

r Enable psafilrng

Proiec1 Ootionn

pq Cancel 1 Libreriacutea de ANTLR que debe existir 1 I para que se compile correctamente

58

Anexo B

~ u iacute aacute raacutepida de uso deC Sistema S3C

5 Este anexo indica de forma raacutepida la manera de utilizar S3C para crear un diagrama de secuencias de forma automaacutetica

Guiacutea Raacutepida de uso del Sistema S3C i

Para indicar la creacioacuten de un diagrama de secuencias en forma automaacutetica se debe ir a la barra del costado izquierdo y presionar ldquoNuevo Proyecto SCUMLrdquo

I s3c I ~ Nuevo Proyecto SCUML ~ _ _ - I Diagrama de clases ~ Diagrama de secuencias 1 MDI DOC Activo

-

Apareceraacute un documento llamado ldquoSCUMLV en donde el simbolo corresponde a un numero consecutivo iniciando desde 1 (uno)

$ e Despueacutes se presiona ldquoDiagrama de clasesrdquo Habraacute que para indicarle al sistema si se requiere abrir un diagrama de clases existente o realizar uno nuevo

i

iquestAbrir un documento existente

No Cardquo~ear

AI presionar ldquoSirdquo se debe indicar cual es el archivo del diagrama de Clases en el cuadro de diaacutelogo siguiente

~~ - 11dMis documentos rsquo 2 M i P C i lsquo h s sitios de red

I

AI presionar ldquoNordquo en ldquoAbrir un documento existenterdquo se nos mostraraacute un documento vacio para crear un diagrama de clases

60

Guiacutea Raacutepida de uso del Sistema S3C

Para ambas opciones se requiere que los diagramas de Wamier ya se encuentren construidos Y para continuar el proccso se selecciona el documento ldquoSCUMLVrsquo creado al inicio y despueacutes presionar el botoacuten nombrado ldquoDiagrama de secuenciasrdquo localizado en la barra de hcrraiiiicntas del costado izquierdo

Ha iniciado el proceso de construccioacuten del diagrama de secuencias Si no existen errores al terminar el proceso se le mostraraacute un cuadro de diaacutelogo llamado ldquoResultadosrdquo en donde le mostraraacute las llamadas de las que no localizoacute su definicioacuten

- - -

Cancel 1 D e las siguientes llamadas es posible que esten mal escritas o peitenezcan a la libreiia del Lenguaie Verifique ya que no se encontraron sus definiciones

A continuacioacuten se mencionan los posibles errores que finalizan el proceso de la creacioacuten automaacutetica de los diagramas de secuencias en S3C

Cuando no exista un meacutetodo lsquomainrsquo definido en el diagrama de clases

No se encontro el meacutetodo lsquomain()rsquo que inicie la secuencia I A No se puede crear el diagrama de secuencias

p==amp=q

61

Guia Raacutepida de uso del Sistema S3C

Cuando se definan niultiples metodos lsquoinainrsquo en el diagrama de clases

Multiples meacutetodos lsquomainOlsquo Imposible decidir el inicio de secuencia

Aceptar i

Si un meacutetodo definido en Wamier realiza una llamada a lsquomainrsquo se cancelara el proceso

Llamada NO VALIDA al meacutetodo principal main

(iAcp-j(

4 i

CI Y rdquoldquoldquoI i 11 1-T

IZNTRO Gt INFORMACION

62

  • Tabla de Contenido
  • Listado de Figuras
  • Listado de Tablas
  • Notacioacuten
  • Introduccioacuten
  • Capitulo 1 Conceptos Generales
    • 11 Antecedentes
    • 12 Trabajos relacionados
      • 121 Tabla comparativa
        • 13 Definicioacuten del problema
        • 14 Objetivo de la Tesis
          • Objetivos especiacuteficos de la tesis
            • 15 Hipoacutetesis de investigacioacuten
            • 16 Alcances y limitaciones del trabajo de tesis
              • Capitulo 2 Marco Teoacuterico
                • 21 Modelado de sistemas de software
                • 22 Interfaz de usuario (Mecanismos de interaccioacuten)
                • 23 Lenguajes Visuales
                • 24 Programacioacuten orientada a objetos
                • 25 Lenguaje de Modelado Unificado (UML)
                  • Desarrollo de la herramienta
                    • 31 Disentildeo de la Arquitectura
                      • 311 Requisitos (Diagrama de Casos de uso)
                        • 312Modelo Conceptual
                        • 313Diagramas de clases
                        • 32 Elementos de la arquitectura
                          • 321 Microsoft Foundation Class (MFC)
                            • 322Arquitectura Documento Vista
                            • 323Integrando Ambientes en Visual c++
                              • 324 Interfaz de Muacuteltiples Documentos (MDI)
                                • 325Recursos Diaacutelogos Menus y Barras de Herramientas
                                  • 326 Notacioacuten estaacutendar
                                  • 327 Estructura de datos persistencia y recuperacioacuten
                                    • 328Patrones de disentildeo utilizados
                                      • 33 Diagrama de secuencias
                                        • 331Ciclo de vida del software
                                          • 34 Elementos atoacutemicos de la Gramaacutetica
                                            • 341 Representacioacuten visual
                                              • 35 Gramaacutetica desarrollada
                                              • 36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias
                                                  • Capitulo 4 Pruebas y Resultados
                                                    • 41 Recursos teacutecnicos utilizados
                                                    • 42 Descripcioacuten del plan de pruebas
                                                    • 43 Resultados
                                                      • 431 Caso
                                                      • 432 Caso2
                                                      • 433 Caso
                                                          • Conclusiones y trabajos futuros
                                                            • Trabajos futuros
                                                            • Referencias
                                                            • Anexo A Configuracioacuten de Microsoft Visual C+t
                                                              • Figura 11 - Arquitectura de la suite cenidet-UML
                                                              • Figura 21 -Programacioacuten Visual
                                                              • Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de
                                                              • Figura 32 -Diagrama de Casos de Uso para el S3C
                                                              • Figura 33 -Modelo Conceptual
                                                              • Figura 34 - Diagrama de Clases -Control del Diagrama -
                                                              • Figura 35 - Diagrama de Clases - Patroacuten Visitor -
                                                              • Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento
                                                              • Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)
                                                              • Figura 38 -Dialogo Caracteriacutesticas del Objeto
                                                              • Figura 39 -Dialogo Mensaje
                                                              • Figura 3 IO - Menuacute de los Diagramas de Secuencias (estaacutendar)
                                                              • Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias
                                                              • Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)
                                                              • Figura 313 - Serializacioacuten
                                                              • Figura 314 -Modelo de cascada del ciclo de vida del software
                                                              • Figura 41 - Resultado del caso de prueba
                                                              • Figura 42 -Resultado del caso de prueba
                                                              • Figura 43 -Resultado del caso de prueba
                                                              • Figura 44 -Resultado del caso de prueba
                                                              • Tabla 11 - Tabla comparativa
                                                              • Tabla 31 -Prefijos estaacutendar de identificadores
                                                              • Tabla 32 -Elementos atoacutemicos del lenguaje
                                                              • Tabla 41 - Resumen de los resultados de las pruebas realizadas

4 r cenidet Centro Nacional de lnvestigaclon Sistema Nacional de Institutos Tecnologicos y Desarrollo Tecnologico

ANEXO No 12

M11 AUTORIZACI~N DE IMPRESI~N DE TESIS

Cueniavaca Mor a 27 de Agosto del 2004

C Joseacute Alonso Maciacuteas Montoya Candidato al grado de Maestro en Ciencias en Computacioacuten

i Presente

Despueacutes de haber atendido las indicaciones sugeridas por la Comisioacuten Revisora de la Academia de Ciencias de la Computacioacuten en relacioacuten a su trabajo de tesis cuyo titulo es Ambiente de modelado y disentildeo de sistemas de software utilizando diagramas de secuencias me es grato comunicarle que conforme a los lineamientos establecidos para la obtencioacuten del grado de Maestro en Ciencias en este centro se le concede la autorizacioacuten para que proceda con la impresioacuten de su tesis

i -

Atentamente

o Reyamp Salgado amento de Ciencias Computacionales

CCP Subdireccioacuten Acadeacutemica Presidente de la Academia de Ciencias Computacionales Departamento de Servicios Escolares Expediente

-

A mis padres auacuten con la distancia Siempre han estado a mi lado a toda mi familia por el apoyo en todo momento

Agradecimientos

A mis padres por que me han dado todo

A toda nii familia por el apoyo que en su momento recibi de cada uno

AI Centro Nacional de Investigacioacuten y Dcsarrollo Tccnoloacutegico por la oportunidad que me han dado

A Cosnet (Consejo del Sistema Nacional de Educacioacuten Tecnoloacutegica) por el apoyo econoacutemico otorgado durante la realizacioacuten del programa de maestriacutea

A la SEP (Secretariacutea de Educacioacuten Puacuteblica) por ser parte importante con su apoyo econoacutemico para la culminacioacuten de mis estudios

A mi director de tesis Dr Maacuteximo Loacutepez Saacutenchez por compartirme sus conocimientos y guiarme

A mis revisores Dr Reneacute Santaolaya Salgado Dr Guillermo Rodriguez Ortiz y MC Humberto Hemaacutendez Garcia Gracias por sus observaciones y consejos para mejorar este trabajo

A Miguel Ramirez por los conocimientos teacutecnicos y amistad

A Leo Sele Lupita Ceacutesar Emilio Vianey Armando y Marisela por el tiempo que vivimos

3

-3 i

Gracias y Suerte

i 4

Resu men

La investigacioacuten y el producto de la tesis estaacuten inmersos en la etapa del disentildeo de sistemas de software

El prototipo S3C (producto de la tesis) permite la obtencioacuten de diagramas de secuencias de UML tomando como base la informacioacuten de un diagrama de clases y de varios documentos modelados con diagramas de Warnier (disentildeo detallado de los meacutetodos)

S3C realiza un proceso automaacutetico para la obtencioacuten de los diagramas de secuencias La construccioacuten de los diagramas de secuencias en S3C estaacute soportada con una gramaacutetica visual relacional El propoacutesito de la gramaacutetica es validar la construccioacuten de los diagramas de secuencias de UML

En el aacutembito de los diagramas de secuencias de UML no existen aplicaciones comerciales oacute proyectos educativos que se apoyen en una gramaacutetica visual para soportar la construccioacuten de los diagramas de secuencias y tampoco existen aplicaciones que permitan a partir de los diagramas de clases y del disentildeo detallado de los meacutetodos generar automaacuteticamente los diagramas de secuencias

4 _

i d

Abstract

The research and the product of this thesis are immersed in the phase of design of software systems

Prototype S3C (product of this thesis) allows to obtain UML sequence diagrams based on the information of a class diagram and several documents modeled with wamier diagrams (detailed design of the methods)

S3C makes an automatic process in order to obtain sequence diagrams the construction of sequence diagrams in S3C is supported with a relational visual grammar The purpose of the grammar is to validate the construction of UML sequence diagrams

il

In the scope of UML sequence diagrams do not cxist commercial applications or educative projects that are based on a visual grammar to support the construction of sequence diagrams Also there arenrsquot applications that allow the automatic generation of secuence diagrams from class diagrams and the detailed design of methods

Tabla de Contenido

Tabla de Contenido

Listado de Figuras

Listado de Tablas

Notacioacuten

Introduccioacuten

Capitulo 1 Conceptos Generales

11 Antecedentes

12 Trabajos relacionados

121 Tabla comparativa

13 Definicioacuten del problema

14 Objetivo de la Tesis

141 Objetivos especiacuteficos de la tesis

15 Hipoacutetesis de investigacioacuten

16 Alcances y limitaciones del trabajo de tesis

Capitulo 2 Marco Teoacuterico

21 Modelado de sistemas de software

22 Interfaz de usuario (Mecanismos de interaccioacuten)

23 Lenguajes Visuales

24 Programacioacuten orientada a objetos

25 Lenguaje de Modelado Unificado (UML)

Capitulo 3 Desarrollo de la herramienta

31 Disentildeo de la Arquitectura

311 Requisitos (Diagrama de Casos de uso)

312Modelo Conceptual

313Diagramas de clases

Paacutegina

1 iv V

vi

1

2

3 4

6

6 7

7

8

8

9 10 11 13 16 17

21 23 23 25 25

1

32 Elementos de la arquitectura

321 Microsoft Foundation Class (MFC)

322Arquitectura Documento Vista

323Integrando Ambientes en Visual c++ 324 Interfaz de Muacuteltiples Documentos (MDI)

325Recursos Diaacutelogos Menus y Barras de Herramientas

326 Notacioacuten estaacutendar

327 Estructura de datos persistencia y recuperacioacuten

328Patrones de disentildeo utilizados

33 Diagrama de secuencias

331Ciclo de vida del software

34 Elementos atoacutemicos de la Gramaacutetica

341 Representacioacuten visual

35 Gramaacutetica desarrollada

a -

Tabla de Contenido

36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias

Capitulo 4 Pruebas y Resultados

41 Recursos teacutecnicos utilizados

42 Descripcioacuten del plan de pruebas

43 Resultados

431 Caso 1

432 Caso2

433 Caso 3

434 Caso4

44 Anaacutelisis de resultados

Conclusiones y trabajos futuros

Conclusiones

Trabajos futuros

27

27

28

29

29

31

33

34

35

36

36

37

38

39

41

43

44

44

45

45

46

47

48 49

50 51 51

i

lt

11

i Referencias

Anexo A Configuracioacuten de Microsoft Visual C+t 60

Anexo B Guiacutea raacutepida de uso del sistema S3C

Tabla de Contenido

52 59

lt 111

Listado de Figuras

3

Figura 11 - Arquitectura de la suite cenidet-UML

Figura 21 -Programacioacuten Visual

Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de Secuencias Figura 32 -Diagrama de Casos de Uso para el S3C

Figura 33 -Modelo Conceptual

Figura 34 - Diagrama de Clases -Control del Diagrama -

Figura 35 - Diagrama de Clases - Patroacuten Visitor - Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento Vista Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)

Figura 38 -Dialogo Caracteriacutesticas del Objeto

Figura 39 -Dialogo Mensaje

Figura 3 I O - Menuacute de los Diagramas de Secuencias (estaacutendar)

Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias

Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)

Figura 313 - Serializacioacuten

Figura 314 -Modelo de cascada del ciclo de vida del software

Figura 41 - Resultado del caso de prueba 1

Figura 42 -Resultado del caso de prueba 2

Figura 43 -Resultado del caso de prueba 3

Figura 44 -Resultado del caso de prueba 4

Paacutegina

3

13

22

23

25

26

26

29

30

31

32

32

32

34

35

37

45

46 47

48

iv

Tabla 11 - Tabla comparativa

Tabla 31 -Prefijos estaacutendar de identificadores

Tabla 32 -Elementos atoacutemicos del lenguaje

Tabla 41 - Resumen de los resultados de las pruebas realizadas

Listado de Tablas

Paacutegina

6 33

38 49

V

Notacioacuten

La siguiente es la notacioacuten de la que se haraacute uso

ltCObjectgt

ltGetDocunteiztgt

MiClase MiMetodo

9 Liacutenea de Coacutedigo

Mensaje

Clase de la MFC ( Microsoft Fundation Class)

Meacutetodo de una clase de la MFC

Clase desarrollada Meacutetodo de una clase desarrollada

Liacutenea o Bloque de coacutedigo

Elemento del Diagrama de Secuencia

vi

I Introduccioacuten

L~ tesis se enfoca hacia el desarrollo de sistemas de software centrados en el modelado mediante diagramas de secuencias definidos por el Lenguaje de Modelado Unificado (UML) La investigacioacuten y el producto de la tesis estaacuten inmersos en la etapa del disentildeo de sistemas de software

El producto (prototipo) de la tesis denominado S3C permite la obtencioacuten de diagramas de secuencias de UML tomando como base la informacioacuten de un diagrama de clases y de varios documentos modelados con diagramas de Wamier (disentildeo detallado de los meacutetodos)

Para la elaboracioacuten de los diagramas de clases se hace uso del ambiente existente InverSOODA [HER03] Y para el modelado de los documentos Wamier se ha tomado el ambiente InverDDVi [WEN02] Ambos ambientes visuales son productos de tesis anteriores y se han integrado en un solo prototipo denominado SCUML (Suite cenidet - UML)

(i

S3C realiza un proceso automaacutetico para la obtencioacuten de los diagramas de secuencias en este proceso solo se requiere indicar el diagrama de clases del que se basaraacute La construccioacuten de los diagramas de secuencias en S3C estaacute soportada con una gramaacutetica visual relacional El propoacutesito de la gramaacutetica es validar la construccioacuten de los diagramas de secuencias de UML

En el aacutembito de los diagramas de secuencias de UML no existen aplicaciones comerciales oacute proyectos educativos que se apoyen en una gramaacutetica visual para soportar la construccioacuten de los diagramas de secuencias y tampoco existen aplicaciones que permitan a partir de los diagramas de clases y del disentildeo detallado de los meacutetodos generar automaacuteticamente los diagramas de secuencias

3

Los temas relacionados a esta tesis son Modelado de Sistemas UML Interfaz de Usuario Programacioacuten Orientada a Objetos y Gramaacuteticas Visuales

El capiacutetulo 1 es de conceptos generales se dan a conocer los antecedentes del proyecto los trabajos relacionados hipoacutetesis alcances y limitaciones

En el capiacutetulo 2 se define el marco teoacuterico de la tesis se describen temas como Modelado de sistemas de software disentildeo de sistemas de software modelado visual lenguajes visuales programacioacuten orientada a objetos y lenguaje de modelado unificado

El capiacutetulo 3 describe el desarrollo del ambiente visual se detalla el modelo conceptual la arquitectura y sus elementos los diagramas de secuencias y la gramaacutetica visual relacional que se desarrolloacute

En el capiacutetulo 4 se muestran los casos de pruebas y los resultados obtenidos Y al final se establecen las conclusiones y se dan propuestas para algunos trabajos futuros 3

1

Capiacutetulo I

Conceptos generalis

En eacuteste capiacutetulo se dan a conocer los antecedentes del proyecto de tesis los trabajos relacionados el problema que resolveraacute la hipoacutetesis a comprobar los alcances y limitaciones

Conceptos generales

11 Antecedentes

Actualmente en el cenidet (Centro Nacional de Investigacioacuten y Desarrollo Tecnoloacutegico) se trabaja en la construccioacuten de un conjunto de ambientes visuales para dar soporte al desarrollo con diagramas que define el estaacutendar UML para elaborar sistemas de software de manera completa raacutepida y eficaz El ambiente de modelado principal se ha denominado suite cenidet-UML y su arquitectura general se muestra a continuacioacuten en la Figura 11

Arquitectura de la suite cenidet-UML

Figura 11 Arquitectura de la suite cenidet-UML

a El producto de software resultante de eacutesta tesis lleva por nombre S3C y como se indica en la figura 11 Las tesis directamente relacionadas son InverSOODA [HER03] e

InverDDVi [WEN02]

InverSOODA (Sistema Orientado a Objetos para Disentildeo y Anaacutelisis incluyendo Ingenieriacutea Inversa) es un Ambiente Visual que permite la elaboracioacuten de diagramas de clases de un sistema de software Los diagramas de clases son una vista estaacutetica y en ella se describe las relaciones que existen entre las entidades llamadas clases Cada una de las clases se divide en tres partes nombre de la clase meacutetodos y atributos Este ambiente permite generar el coacutedigo fuente en lenguaje C++ de un diagrama construido y tambieacuten aplicando la ingenieriacutea inversa es posible obtener un diagrama a partir de un coacutedigo en C++ existente

InverDDVi (Disentildeo Detallado Visual incluyendo Ingenieriacutea Inversa) es un Ambiente Visual cuyo objetivo es apoyar en la elaboracioacuten de diagramas de disentildeo detallado utilizando una notacioacuten basada en Warnier Los diagramas de Warnier sirven para describir una secuencia loacutegica de acciones y mediante su simbologiacutea se logra plasmar definiciones de meacutetodos llamadas a otros meacutetodos ciclos comparaciones lectura de informacioacuten y escritura de informacioacuten Este ambiente permite generar el coacutedigo fuente en C de un diagrama construido y tambieacuten aplicando la ingenieriacutea inversa se puede obtener un diagrama de Warnier a partir de un coacutedigo en C que ya exista

i

3

Conceptos generales

12 Trabajos relacionados

Rational Rose de Rafional

Una de las herramientas mas populares del mercado que utiliza la notacioacuten UML y tiene la capacidad de reingenieriacutea de software para integrar sistemas existentes capacidad de mezclar diferentes lenguajes dentro de un mismo modelo ademaacutes de ingenieriacutea inversa sobre los componentes COM (Component Object Model) ActiveX y Java y con soporte de las arquitecturas MicrosoWCOM y CORBAIDL (The Common Object Request Broker Architecture)

Con Rational Rose se puede trabajar en grupo con capacidades para modelar y visualizar procesos de negocios y requerimientos de sistemas Tiene soporte para generar esquemas objetos-relaciones de bases de datos para realizar anaacutelisis de datos Cuenta con el soporte para analizar sitios Web en ASP (Active Server Pages) y JSP (Java Server Pages) Ademaacutes soporta los lenguajes Java CC++ Visual CC++ [RAT02] 9

SI -

Visio de Microsoft

Visio Enterprise 2002 permite crear diferentes tipos de diagramas como son

1 Diagramas de flujo 2 Planos de oficinas 3 Diagramas de aacuterbol 4 Diagramas de organizacioacuten 5 Liacuteneas de tiempo 6 Mapas geograacuteficos y direccionales 7 Diagramas de sitios Web 8 Diagramas de red 9 Diagramas de UML

Tiene las siguientes caracteriacutesticas diagramacioacuten e importacioacuten de servicios de directorio reingenieria de bases de datos disentildeo y documentacioacuten de bases de datos diagramacioacuten de software ingenieriacutea directa e inversa de coacutedigo replicacioacuten exacta por medio de diagramas de equipos y configuraciones de red diagramacioacuten automatizada y ambiente colaborativo

Visio da un conjunto completo de herramientas de diagramacioacuten de redes para planear y documentar claramente las redes existentes Ademaacutes para crear esquemas eleacutectricos mecaacutenicos y de procesos pueden crearse diagramas complejos con facilidad y poco entrenamiento

A las aplicaciones existentes se les puede realizar la ingenieriacutea inversa para obtener el disentildeo y tambieacuten crear nuevos disentildeos Proporciona herramientas para crear diagramas de bases de datos y es posible realizar ingenieriacutea inversa de esquemas existentes en bases de datos cliente servidor como SQL Server IBM Oracle y otros [MIC02]

4

Conceptos generales

e JVision 21 de Object Insight

JVision permite en la ingenieriacutea directa la creacioacuten de clases variables y meacutetodos con lo cual genera plantillas de coacutedigo para programadores en Java Los diagramas se pueden exportar a HTML La documentacioacuten puede integrarse con JavaDoc de Sun JVision da el soporte para ingenieriacutea inversa para el lenguaje Java

Se pueden crear todos los diagramas definidos por UML en los diagramas de secuencias da la oportunidad de dibujar clases liacuteneas liacuteneas de tiempo de vida y marca de destruccioacuten de objetos ofrece ademaacutes el soporte para las acciones de llamada regresar valor enviar accioacuten crear accioacuten y eliminar accioacuten [OBJO2]

MagicDraw 6 de No Magic

Es una herramienta CASE con soporte para trabajo en grupo Esta disentildeado para analistas 6 de negocios analistas de software programadores ingenieros de calidad y

documentadores Esta aplicacioacuten provee la capacidad para crear los diagramas definidos por UML (soporta UML 14) Cuenta con el soporte de ingenieriacutea inversa y generacioacuten de coacutedigo para C++ C Java y CORBNIDL Tiene integracioacuten con NetBeans se actualiza automaacuteticamente disponible en aacuterabe portugueacutes franceacutes italiano ingles (US) alemaacuten espantildeol japoneacutes y coreano

Tiene la caracteriacutestica de soportar la adaptacioacuten de los elementos a colores que el usuario defina Los diagramas pueden exportarse a imaacutegenes JPG EMF WMF EPS y DXF En los diagramas de secuencia da oportunidad de definir roles textos notas mensajes de varios tipos al mismo objeto recursivo ademaacutes de la relacioacuten a las notas y las liacuteneas de vida Es posible guardar los diagramas como imaacutegenes de mapas de bits o vectores Mantiene ademaacutes una vista pequentildea a escala del diagrama completo [NoA402]

e

SmariDraw Professional Plus de SmariDraw

Todos los dibujos pueden agregarse en las aplicaciones de Microsoft como son Word Excel PowerPoint Contiene maacutes de 50000 (1000 en la versioacuten estaacutendar) formas predefinidas ejemplos y plantillas Los diagramas pueden ser exportados a imaacutegenes WMF BMP JPG GIF TIF y otros Incluye un convertidor de archivos de VISIO

Con esta herramienta es posible crear diagramas de flujo diagramas de bloque diagramas de flujos de datos diagramas de organizacioacuten aacuterboles de decisioacuten disentildeo de redes Gantt diagramas de flujo de procesos diagramas de administracioacuten de calidad diagramas eleacutectricos diagramas mecaacutenicos diagramas quiacutemicos liacuteneas de tiempo planes de espacio posters mapas formas y tambieacuten da soporte para UML es posible dibujar objetos actores activacioacuten de los objetos mensaje mensaje de retorno mensaje asiacutencrono mensaje con tiempo liacutenea de vida del objeto marca de destruccioacuten del objeto y ciclos (descrito con un rectaacutengulo y una condicioacuten de salida) [SMA02]

5

Conceptos generales

Producto Soporta Diagramas de UML Secuencias

Creacioacuten automaacutetica de diagramas de

El Rational Rose El Visio

Jvision

Magic D r a w

a a El Fl El a El El

I ~

I ~

I -

Ambiente de modelado de

a a SmartDraw El

Tabla I Tabla comparativa

Todas las herramientas descritas anteriormente cuentan con caracteriacutesticas sobresalientes para el disentildeo y modelado de sistemas de software pero ninguna de ellas genera automaacuteticamente los diagramas de secuencia con base en los diagramas de clases y el disentildeo detallado de los meacutetodos asiacute tambieacuten ninguna de ellas realiza un caacutelculo de los canales de comunicacioacuten abiertos entre las clases que conforman el sistema

iexcla la A UML Editor in Java

13 Definicioacuten del problema

El modelado de sistemas utilizando el estaacutendar de UML en diversos productos comerciales prototipos de laboratorio elaborados en universidades y centros de investigacioacuten atienden la perspectiva baacutesica de la abstraccioacuten general del modelo esto es documentar el modelo del sistema que se requiere sin atender puntos importantes tales como

La generacioacuten automaacutetica de los diagramas de secuencias La correccioacuten de inconsistencias en los diagramas al crearlos de forma separada

El

6

sistemas de software

secuencias utilizando diagramas de a a a

Conceptos generales

Se hace necesaria la creacioacuten de un ambiente visual que permita obtener de forma automaacutetica los diagramas de secuencias en base a los diagramas de clases y al disentildeo detallado de los meacutetodos para facilitar la documentacioacuten la generacioacuten de coacutedigo y el mantenimiento de los sistemas

La obtencioacuten de los diagramas de secuencias estaacute basada en los Diagramas de Clases definidos por UML que son construidos con la herramienta InverSOODA junto con el disentildeo detallado de los meacutetodos construidos con Diagramas de Wamier elaborados con la herramienta InverDDVi

En el estaacutendar UML para la construccioacuten de los diagramas no existe actualmente una sintaxis expliacutecita definida solo existe impliacutecitamente en el uso de los elementos del diagrama por lo que se ha descrito una gramaacutetica visual de tipo relaciona1 como soporte para la construccioacuten de los Diagramas de Secuencias

n ai 14 Objetivo de la Tesis

Construir un ambiente visual que permita al usuario obtener el diagrama de secuencias de manera automaacutetica

141 Objetivos especiacuteficos de la tesis Crear una gramaacutetica que soporte la construccioacuten del diagrama de secuencias Construir de forma automaacutetica el diagrama de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodos

15 Hipoacutetesis de investigacioacuten

Es posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodos

16 Alcances y limitaciones del trabajo de tesis

Los alcances de la tesis se especifican a continuacioacuten

Se elaboroacute la arquitectura del sistema Se definioacute la gramaacutetica de soporte Se desarrolloacute la interfaz en Visual C++ haciendo uso de las MFC Se interactuacutea con los diagramas de clases de InverSOODA Se interachiacutea con el disentildeo detallado de los meacutetodos realizados por InverDDVI Se genera el diagrama de secuencias de forma automaacutetica

7

Conceptos generales

Limitaciones de la tesis

0 No se genera coacutedigo

La investigacioacuten se limita a los diagramas de clases para la vista estaacutetica de los sistemas de software y a los diagramas de Warnier para la vista dinaacutemica de los meacutetodos El ambiente no trabaja en red

No se modifican los archivos de InverSOODA No se modifican los archivos de InverDDVI No se recuperan diagramas de secuencias a partir de coacutedigo legado

4

8

Capiacutetulo 2

Narc0 teoacuterico

En eacuteste capiacutetulo se describen los temas usados para el desarrollo de la tesis iquestQue son los modelos iquestEn que parte del proceso de Ingenieriacutea del Software se usan los modelos o el modelado Se estudia la interfaz de usuario los lenguajes visuales y las gramaacuteticas visuales Se describe el Lenguaje de Modelado Unificado (UML) ademaacutes de la programacioacuten orientada a objetos por ser este paradigma en donde se enfoca este trabajo

Marco teoacuterico

21 Modelado de sistemas de software

un modelo es una abstraccioacuten de algo con el propoacutesito de entenderlo antes de construirlo El modelo omite detalles no esenciales haciendo maacutes faacutecil su manipulacioacuten que la entidad original [BLA98] Un modelo es la simplificacioacuten de la realidad [RUM99] Los propoacutesitos de los modelos son

Probar una entidad fisica antes de construirla Establecer mejor comunicacioacuten con los clientes Visualizar el problema y el sistema desde una mejor perspectiva Reducir la complejidad [BLA98] Capturar y precisar requerimientos y conocimiento del dominio Pensar acerca del disentildeo del sistema Capturar decisiones de disentildeo en una fomia separada que cambia a partir de los requerimientos Generar productos Organizar buscar filtrar obtener examinar y editar informacioacuten acerca de un sistema Explorar muacuteltiples soluciones econoacutemicas Manejar sistemas complejos [RUM99]

El modelado es una probada y bien aceptada teacutecnica de Ingenieriacutea de Software [RUM99] El modelado es parte central de todas las actividades que conducen a la produccioacuten de buen software Se construyen modelos para comunicar la estructura deseada y revisar el comportamiento de nuestro sistema Se construyen modelos para visualizar y controlar la arquitectura del sistema Se construyen modelos para comprender mejor el sistema que estamos construyendo muchas veces descubriendo oportunidades para la simplificacioacuten y la reutilizacioacuten Se construyen modelos para controlar el riesgo [BOO99] La razoacuten fundamental por la que modelamos es porque nosotros construimos modelos que nos ayudan a entender mejor el sistema que estamos desarrollando [RUM99]

El modelado nos permite [RUM99] 1 Visualizar como es el sistema o como queremos que sea 2 Especificar la estructura del sistema 3 Plantear nuestras guiacuteas en la construccioacuten delsistema 4 Documentar las decisiones que hemos tomado

En las etapas del desarrollo del software el modelado es usado en el disentildeo el disentildeo del sistema es la primera etapa en donde se da la aproximacioacuten baacutesica de la solucioacuten al problema seleccionado ademaacutes se decide por la estructura (arquitectura del sistema) y el estilo de la solucioacuten

La arquitectura del sistema provee el contexto sobre el cual se tomaraacuten decisiones mas detalladas en las etapas subsecuentes del disentildeo [BLA98] En el disentildeo modelamos el sistema y encontramos su forma (incluida la arquitehra) para que soporte todos los 3 -

10

Marco teorico

i

4 -I

requisitos -incluyendo los requisitos no funcionales y otras restricciones- que se le suponen [JAC99] Los propoacutesitos del disentildeo son

Adquirir una comprensioacuten en profundidad de los aspectos relacionados con 10s requisitos no funcionales y restricciones relacionadas con los lenguajes de programacioacuten componentes reutilizables sistemas operativos tecnologiacuteas de distribucioacuten y concurrencia tecnologiacuteas de interfaz de usuario tecnologiacuteas de gestioacuten de transacciones etc Crear una entrada apropiada y un punto de partida para actividades de implementacioacuten subsiguientes capturando los requisitos o subsistemas individuales interfaces y clases Ser capaces de descomponer los trabajos de implementacioacuten en partes mas manejables que puedan ser llevadas a cabo por diferentes equipos de desarrollo teniendo en cuenta la posible concurrencia Capturar las interfaces entre los subsistemas Esto ayuda cuando reflexionamos sobre la arquitectura y cuando utilizamos interfaces como elementos de sincronizacioacuten entre diferentes equipos de desarrollo Ser capaces de visualizar y reflexionar sobre el disentildeo utilizando una notacioacuten comuacuten Crear una abstraccioacuten independiente de la implementacioacuten del sistema en el sentido de que la implementacioacuten es un refinamiento directo del disentildeo que rellena lo existente sin cambiar la estructura Esto permite la utilizacioacuten de tecnologiacuteas como la generacioacuten de coacutedigo y la ingenieriacutea de ida y vuelta entre el disentildeo y la implementacioacuten [JAC99]

22 Interfaz de usuario (Mecanismos de interaccioacuten)

El crecimiento de las computadoras personales vendidas en los ~ O rsquo S lanzoacute con fuerza el ldquofaacutecil de usarrdquo como una de las caracteriacutesticas mas importante de un producto de computadora

Las interfaces graacuteficas de usuario no son nuevas se pueden encontrar en las paredes de cuevas al sur de Francia en las piraacutemides de Egipto y en las paredes de muchas ciudades [iUM92] Para el usuario de un sistema interactivo la comunicacioacuten es tan importante como la computacioacuten Para los usuarios regularmente la interfaz es el sistema [HIX93]

Disentildeo de Interfaz Seguacuten Hackos [HAC98] las interfaces estaacuten en todo donde se trabaja con

o Controles en productos de hardware o Etiquetas y sentildeales en el hardware o Pequentildeas pantallas de cristal liquido en maacutequinas de cualquier tipo o Pantallas para aplicaciones de software para terminales de computadoras centrales

Marco teoacuterico

o pantallas para aplicaciones de software en computadoras Personales sistemas operativos como Windows OS2 DOS Macintosh U n b Y Otros

0 Paacuteginas de un sitio WEB 0 Sistemas de ayuda y manuales en-liacutenea 0 Tutoriales incrustados y otros tipos de soporte de funcionamiento O Esquemas de formas y otros documentos

una interfaz es el medio con el cual los usuarios interactuacutean con el producto 0

sistema para lograr SUS objetivos

Interfaz Usable

Para que una interfaz sea usable debe ser transparente y darles a los usuarios la capacidad de lograr cumplir sus metas de forma efectiva y eficiente

Los beneficios presentados en el uso de las interfaces de usuario [TH190] Disfrutar el sistema El usuario disfruta trabajar con un sistema que cuenta con una interfaz bien disentildeada y que le da la funcionalidad y acceso a los recursos de una manera clara y sencilla Proporciona nuevas habilidades Elimina al usuario concentrarse en acciones que la propia interfaz y el sistema hacen dando como resultado que el usuario solo se concentre en lo importante del trabajo Delegacioacuten de tareas La interfaz de usuario permite al usuario no conocer los detalles de la tarea esto es la computadora atiende los detalles de las tareas mientras que el usuario se concentra en asuntos de maacutes alto nivel Seguridad El usuario no necesita estar en lugarespeligrosos para hacer su trabajo

Se da la mayor posibilidad para que el usuario tenga acceso al conocimiento utilizando un sistema interactivo Haciendo las cosas a la primera Las tareas se ejecutan en un orden correcto definido lo que da como resultado un trabajo bien terminado sin necesidad de repetir evitando asiacute altos costos Computando LOS usuarios pueden calcular datos sin necesidad de conocer el proceso para obtener los resultados

Desarrollo

El disentildeo de interfaz es un negocio bastante dificil Eacuteste combina dos complicadas disciplinas psicologiacutea y ciencias de la computacioacuten Estas disciplinas tienen un fondo cultural muy diferente la psicologiacutea atiende a la gente (comprensioacuten y entendimiento) las ciencias computacionales a las maacutequinas (matemaacuteticas y precisioacuten) El disentildeo de las buenas interfaces requiere que estas dos perspectivas esteacuten unidas [THi90]

Hackos dice que las interfaces dan simplicidad y elegancia al trabajo necesario y a la vida e los usuarios Si no es obvio al usuario pero es raacutepida para aprender [HAC98] ademaacutes define caracteriacutesticas comunes de las interfaces usables

o Hacen que el flujo de trabajo sea familiar o confortable o Soportan el estilo de aprendizaje de los usuarios

12

Marco teoacuterico

Visualizacioacuten de Entrenamiento visual Para controlar Soportar interaccioncs Programar con informacioacuten visual visuales expresiones visuales

o Compatibles con los ambientes de trabajo de los usuarios o Se extienden sobre un concepto de disentildeo que es familiar al usuario o Tienen consistencia de presentacioacuten que los hace parecer maacutes confiable y faacuteciles de

aprender o Usan lenguaje y figuras familiares al usuario o faacuteciles de aprender

Datos o informacioacuten acerca de datos

23 Lenguajes Visuales

Los lenguajes visuales son un nuevo paradigma para expresar los sistemas computacionales Ellos ofrecen la posibilidad de manipular directamente los objetos Un lenguaje visual consiste de sentencias visuales Para lenguajes visuales basados en iacuteconos cada sentencia visual es un arreglo espacial de objetos O iacuteconos graacuteficos [CHA90]

Un lenguaje visual es concebido como una coleccioacuten de figuras obtenidas por un arreglo graacutefico de objetos en dos o maacutes dimensiones Los lenguajes visuales pueden ser modelados sintaacutecticamente a traveacutes de un vocabulario un conjunto de relaciones usadas para componer las figuras y un conjunto de reglas describiendo las figuras pertenecientes al lenguaje Los objetos graacuteficos de un vocabulario de un lenguaje visual se caracterizan por contar con un conjunto de atributos Los atributos de un objeto graacutefico pueden ser atributos graacuteficos atributos sintaacutecticos y atributos semaacutenticos [MAR98]

Un lenguaje de programacioacuten visual puede ser informalmente definido como un lenguaje el cual usa algunas representaciones visuales [SHV88]

Programa ylo Disentildeo de Lenguajes de programacioacuten visual ejecucioacuten software Diagramas iconos Formas

Programacioacuten Visual [SHU88]

Gramaacuteticas para la especificacioacuten de lenguajes visuales [MAR98]

a) Gramaacuteticas texfuales generalizadas Este tipo de gramaacutetica provee una adaptacioacuten apropiada de la concatenacioacuten de siacutembolos para dos dimensiones Su principal ventaja es que conservan los elementos teoacutericos de las gramaacuteticas textuales y los eficientes algoritmos de anaacutelisis de eacutestos uacuteltimos Su principal desventaja es que eacutestas gramaacuteticas no son tan poderosas y soacutelo pueden especificar clases restringidas de lenguajes visuales

13

Marco teorico

b) Meacutetodos basados en gramaacuteticas de grafos Un ejemplo de este tiPo de gramaacuteticas son las gramaacuteticas de red Las oraciones generadas con gramaacuteticas de red son grafos dirigidos con siacutembolos en los nodos Estos grafos son llamados redes Una produccioacuten de eacuteste tipo de gramaacuteticas es de la siguiente forma

a - t p E

donde a y p son redes y E es una forma de conectar a p cuando a es conectada a otra red anfitriona

La mayor desventaja es que las gramaacuteticas de red no han probado ser totalmente uacutetiles para la especificacioacuten de gramaacuteticas arbitrarias por la complejidad para rescribir grafos y al hecho de que no todo lenguaje visual estaacute compuesto exclusivamente por grafos

C) Gramaacuteticas de multiconjuntos de atributos En estas gramaacuteticas las producciones rescriben conjuntos o multiconjuntos de siacutembolos que tienen atributos con informacioacuten sobre geometriacutea o semaacutentica La reescritura se controla con restricciones sobre los atributos de los siacutembolos en el lado derecho de las producciones

Un ejemplo de eacutestas gramaacuteticas es la Gramaacutetica Coordinada que especifica notacioacuten matemaacutetica de dos dimensiones En esencia las producciones en una gramaacutetica coordinada n-coordinada libre del contexto tienen la siguiente forma

A -t a donde C F

Todos los siacutembolos de eacuteste tipo de gramaacutetica tienen n atributos geomeacutetricos A es un siacutembolo no terminal a es una cadena no vaciacutea de siacutembolos C es una restriccioacuten sobre los atributos de los siacutembolos en a y F es una expresioacuten que computa los atributos de los siacutembolos de A en teacuterminos de los atributos de los siacutembolos en a no importando el orden de los siacutembolos en a

d) Gramaacuteticas PosicionaZes Las gramaacuteticas posicionales son un formalismo para la definicioacuten e implementacioacuten de lenguajes visuales las gramaacuteticas posicionales extienden naturalmente a las gramaacuteticas libres de contexto Una gramaacutetica libre de contexto posicional PG es una six-tupla (N T S P POS PE) donde

N es un conjunto finito no vaciacuteo de siacutembolos no terminales T es un conjunto finito no vaciacuteo e siacutembolos terminales con N n T = $I S E N es el siacutembolo no terminal de inicio P es un conjunto finito de producciones POS es un conjunto finito de identificadores de relacioacuten binaria PE es un evaluador pictoacuterico

14

Marco teorico

Cada produccioacuten en P tiene la siguiente forma

A -+ X I R I X R2 X ~ I Rm1 xm A

e) Gramaacuteticas de Relacioacuten de siacutembolos Eacuteste es un formalismo sintaacutectico para describir un lenguaje visual donde cada oracioacuten dentro del lenguaje se representa como un conjunto de objetos visuales y un conjunto de relaciones entre objetos

El alfabeto de siacutembolos Vt y el conjunto de relaciones entre siacutembolos Vr una oracioacuten de relacioacuten de siacutembolos w sobre Vt y Vr es un par ( M R) donde

M es un conjunto de elementos-s (v i) con v E Vt y i es un nuacutemero natural R es un conjunto de elementos-r de la forma r (Xi Yj) con Xi Yj E M r E Vr y una relacioacuten r esta contenida entre Xi y Yj

Una gramaacutetica de relacioacuten de simbolos es el conjunto de seis elementos G = (Vn Vt Vr S P R) donde Vn es un conjunto de siacutembolos no terminales Vt es un conjunto de siacutembolos terminales Vr es un conjunto de relaciones entre siacutembolos S es el siacutembolo inicial y P es un conjunto de reglas de reescritura (producciones de elementos-s)

f) Gramaacuteticas relacionales Este tipo de gramaacutetica pertenecen a las gramaacuteticas libres de contexto

La gramaacutetica relaciona1 (RGrsquos) es una 6-tupla G (N C S R Attr P) donde

N C S R Attr P

es un conjunto finito de siacutembolos no terminales es un conjunto de siacutembolos terminales es un siacutembolo distinguido en N llamado siacutembolo inicial es un conjunto finito de siacutembolos de relacioacuten es un conjunto finito de siacutembolos de atributos es un conjunto de producciones de la forma A-gt apF donde A E N a E (nlo)+ Donde n E N cr E E

8 Es un conjunto de relaciones de la forma (r x y) donde r E R y xy son enteros que hacen referencia a un miembro de a y tambieacuten una expresioacuten de la forma (a i) donde a E Attr e i es un entero que hace referencia a un miembrode a

F Es un conjunto de declaraciones de asignacioacuten de caracteriacutesticas de la forma (a O)=x donde a E Attr y x es un entero que hace referencia a un miembro de a o a una expresioacuten de la forma (a i)

15

Marco teoacuterico

24 Programacioacuten orientada a objetos

L~~ meacutetodos orientados a objetos organizan la informacioacuten Y el procesamiento que manipula esta informacioacuten de acuerdo a los objetos delrsquomundo real que la informacioacuten describe [BRO97l

Beneficios de las teacutecnicas orientadas a objetos [BR097] Estabilidad del sistema Mantenibilidad Componentes reusables Confiabilidad Accesibilidad de los datos Participacioacuten del usuario

Seguacuten Graddy Booch la programacioacuten orientada a objetos es ldquoun meacutetodo de implementacioacuten en el que los programas se organizan como colecciones cooperativas de objetos cada uno de los cuales representan una instancia de alguna clase y cuyas clases son todas miembros de una jerarquiacutea de clases unidas mediante relaciones de herenciardquo [JOY 981

Programacioacuten orientada a objetos esencialmente significa programacioacuten usando objetos [JAC93] Los lenguajes orientados a objetos deben soportar los siguientes conceptos

Objetos Abstraccioacuten de datos Encapsulamiento Clases e Instancias Herencia entre clases Polimorfismo

Las propiedades fundamentales de la Programacioacuten Orientada a Objetos son

a Abstraccioacuten Son ideas conceptos y propiedades que se describen en forma general eliminando los detalles Es una estructura de datos y los meacutetodos que manipulan a esos datos

b Encapsulamiento Son las fronteras propias de un objeto bien definidas las cuales protegen los detalles de su representacioacuten interna

c Ocultacioacuten de la informacioacuten Es la propiedad en la que los objetos pueden hacer uso para impedir que otros objetos los usuarios o incluso los programadores conozcan coacutemo estaacute distribuida la informacioacuten

d Herencia Es la propiedad que tiene una clase para heredar atributos y comportamiento a otras clases

e Polirnorfismo Es la propiedad que permite que una entidad pueda cambiar a diferentes formas efectuaacutendose de manera dinaacutemica en tiempo de ejecucioacuten

16

Marco teoacuterico

t

Clases Es la especificacioacuten de una familia de objetos es la declaracioacuten de un tipo de objetos Tambieacuten se dice que una clase es la descripcioacuten de un conjunto de objetos con un comportamiento similar y que esta compuesta de Datos (o atributos) y Meacutetodos o (rutinas acciones operaciones)

Objeto Un objeto es una entidad en la cual se almacenan datos y los meacutetodos o funciones que controlan dichos datos Un objeto es una abstraccioacuten de alguna cosa del mundo real que contiene datos que lo describen y operaciones que solo tienen acceso a esos datos [BR097l Los elementos de los que esta conformado un objeto son

a Las relaciones permiten que el objeto se integre en la organizacioacuten b Las propiedades son los datos que caracterizan el estado de un objeto distinguiendo

asiacute a un objeto determinado de los restantes que forman parte de la misma organizacioacuten

c Los meacutetodos son las operaciones que pueden realizarse sobre la estructura del objeto es decir las acciones que cambian el estado de un objeto y que el objeto es capaz de ejecutar a traveacutes de mensajes y que tambieacuten pone a disposicioacuten de sus descendientes a traveacutes de la herencia

Mensajes Son solicitudes para que se lleve a cabo la operacioacuten indicada y se produzca un resultado

Las razones principales para introducir la tecnologiacutea de objetos son los beneficios de dicha tecnologiacutea

Aumento de la fiabilidad Aumento de la productividad del desarrollador Desarrollo maacutes raacutepido Mejor calidad maacutes alta

Incremento en escalabilidad Mejores estructuras de informacioacuten Incremento de adaptabilidad Reduccioacuten del coacutedigo fuente

Mantenimiento maacutes faacutecil y reduccioacuten de costo

Los elementos de reutilizacioacuten son las clases y objetos

25 Lenguaje de Modelado Unificado (UML)

UML (Unified Modeling Language por sus siglas en ingleacutes Lenguaje de Modelado Unificado) es un lenguaje de modelado visual de propoacutesito general que es utilizado para especificar visualizar construir y documentar las partes de un sistema de software El lenguaje estaacute basado en un pequentildeo nuacutemero de conceptos centrales que la mayoriacutea de los desarrolladores de tecnologiacutea orientada a objetos pueden aprender y aplicar faacutecilmente [RUM99]

17

Marco teoacuterico

y UML Pasado Presente y Futuro

L~~ lenguajes de modelado orientado a objetos aparecieron a mediados de 10s 70rsquos Varias teacutecnicas influenciaron estos lenguajes El nuacutemero de lenguajes de modelado incrementoacute desde menos de 10 hasta maacutes de 50 entre 1989 y 1994 Muchos modeladores teniacutean problemas para encontrar un lenguaje de modelado que satisficiera todas sus necesidades Notablemente aparecioacute Boochrsquo93 y la evolucioacuten continuoacute a OMT y Fusioacuten

OOSE (Object-Oriented Software Engineering) estaacute enfocado a la ingenieriacutea de negocios y anaacutelisis de requerimientos dando un excelente soporte orientado a casos de uso OMT-2 es especialmente expresivo para anaacutelisis y sistemas de informacioacuten de datos grandes Boochrsquo93 fue particularmente expresivo para el disentildeo y fases de construccioacuten de proyectos y popular para aplicaciones de ingenieriacutea intensiva

Grady Booch y Jim Rumbaugh iniciaron el desarrollo de UML en 1994 al unificar sus meacutetodos independientes Booch y OMT En 1995 Ivar Jacobson se unioacute a Racional eacutesta unioacuten logroacute que el meacutetodo OOSE se incorporara La unificacioacuten establecioacute que debiacutean activar el modelado de sistemas utilizando conceptos orientados a objeto asiacute como crear un lenguaje usable tanto para las maacutequinas como para los humanos

A

Muchas organizaciones se unieron al consorcio UML y dedicaron recursos al trabajo hacia el fortalecimiento de la definicioacuten de UML Esta colaboracioacuten produjo un lenguaje de modelado expresivo poderoso y generalmente aplicable En la forma actual de UML se espera que sea base de muchas herramientas incluidas las de modelado visual simulacioacuten y ambientes de desarrollo

R UML es abierto y no-propietario y aunque define un lenguaje preciso no es barrera para futuras mejoras en conceptos de modelado Se usan muchas teacutecnicas de punta pero se esperan teacutecnicas adicionales que influencien futuras versiones de UML puede ser extendido sin redefinir el nuacutecleo

c

Mientras el rehuacuteso basado en componentes se ha favorecido ampliamente cada vez mas esto no significa que las teacutecnicas basadas en componentes reemplazaraacuten las teacutecnicas orientadas a objetos Hay solo sutiles diferencias entre la semaacutentica de componentes y clases [ALC03]

Un opaco rendimiento caracterizoacute el mercado de anaacutelisis modelado y disentildeo en el 2000 en su transicioacuten de las viejas herramientas CASE (Computer Aided Software Engineering) a algo maacutes dinaacutemico y mejor adaptado para satisfacer las necesidades de los desarrolladores para el cambio raacutepido en los ambientes de negocio

El mercado de anaacutelisis modelado y disentildeo lograraacute obtener un crecimiento positivo en varios de los siguientes antildeos por varias razones El mercado seraacute manejado principalmente por la necesidad de desarrolladores a obtener aplicaciones para lanzarse al mercado raacutepidamente asiacute tambieacuten por el intereacutes creciente y uso de una nueva especie de herramienta y por el intereacutes creciente de los desarrolladores en usar UML reglas de negocios y adaptadores de componentes para construir aplicaciones [RIKUI]

z -

18

Marco teoacuterico

UML se ha hecho el estaacutendar para los desarrollos de modelado de negocios administracioacuten de requerimientos anaacutelisis y disentildeo programacioacuten y pruebas Los objetivos primarios de UML en el disentildeo [RAT97j

o Dar a los usuarios un lenguaje visual expresivo de modelado listo para usarse para que puedan desarrollar y cambiar los significados de sus modelos

o Suministrar mecanismos de extensibilidad y especializacioacuten para extender los conceptos centrales

o Ser independiente de lenguajes de programacioacuten particulares y procesos de desarrollo

o Impulsar el desarrollo de las herramientas Orientadas a Objeto en el mercado o Soportar conceptos de desarrollo de alto nivel como colaboracioacuten marcos de

componentes reutilizables patrones y componentes o Integrar las mejores praacutecticas

9 El aacutembito de UML

UML es un lenguaje para especificacioacuten construccioacuten visualizacioacuten y documentacioacuten de artefactos de un sistema de software UML es la fusioacuten de los conceptos de Booch OMT y OOSE El resultado es un simple comuacuten y ampliamente usado lenguaje de modelado para usuarios de estos y otros meacutetodos UML se enfoca en un lenguaje de modelado estaacutendar no en un proceso estaacutendar los autores de UML recomiendan un proceso de desarrollo manejado por casos de uso de arquitectura central iterativo e incremental [iiquest4T97l

Para la definicioacuten de sistemas de software en UML se definen diagramas Un diagrama es la representacioacuten graacutefica de un conjunto de elementos este se visualiza la mayoriacutea de las veces como un grafo conexo de nodos (elementos) y arcos (relaciones) Los diagramas se dibujan para visualizar un sistema desde diferentes perspectivas de forma que un diagrama es la proyeccioacuten de un sistema uumlML incluye nueve diagramas [B0099]

4 -

I Diagrama de clases 2 Diagrama de objetos 3 Diagrama de casos de uso 4 Diagrama de secuencias 5 Diagrama de colaboracioacuten 6 Diagrama de estados 7 Diagrama de actividades 8 Diagrama de componentes 9 Diagrama de despliegue

Diagramas de secuencias Un diagrama de secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten comportamiento

Un diagrama de secuencias muestra un conjunto de mensajes acomodados en una secuencia de tiempo eacuteste diagrama muestra la interaccioacuten en un esquema de dos - dimensiones [RUM99]

19

Marco teoacuterico

Y -

Un diagrama de secuencia es un diagrama de interaccioacuten que resalta la ordenacioacuten temporal de los mensajes Un diagrama de secuencia presenta un conjunto de objetos y los mensajes enviados y recibidos por ellos Los objetos suelen ser instancias (con nombre o sin nombres) de clases pero tambieacuten pueden representar instancias de otros elementos tales como colaboraciones componentes y nodos Los diagramas de secuencia se utilizan para describir la vista dinaacutemica de un sistema [B0099]

Usar los diagramas de secuencia es mostrar la secuencia que existe en un caso de uso [RUM 991

Los diagramas de secuencia tienen dos dimensiones Una dimensioacuten que representa el tiempo Otra dimensioacuten que representa los diferentes objetos que participan en la secuencia de eventos requeridos para completar el propoacutesito [MOuuml98]

El principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildea las interacciones de los objetos [DAN02]

20

Capiacutetulo 3

DesawoCCo de Ia herramienta

En este capiacutetulo se describe el desarrollo del Ambiente Visual Se describe el modelo conceptual del sistema la arquitectura asiacute como tambieacuten los elementos que componen la Arquitectura Se estudian los Diagramas de Secuencias de UML y algunos Patrones de Disentildeo de los que se hace uso para el mejor desarrollo del sistema Se describe a detalle la Gramaacutetica Visual Relaciona1 utilizada para el de Ambiente de desarrollo

I CENIOET 1FNTRO DE INFORMACION

Desarrollo de la herramienta

t i i

Actualmente existe en el cenidet un Ambiente Visual de Modelado de Clases llamado InverSOODA este Ambiente Visual tiene la capacidad de realizar la generacioacuten automaacutetica de coacutedigo de las clases en C++ a partir del modelo especificado Ademaacutes se puede realizar la Ingenieria Inversa de un coacutedigo legado para obtener el modelo de clases Aunado a este trabajo existe el Ambiente Visual denominado InverDDVi con el cual se puede realizar el Disentildeo Detallado de los Meacutetodos de las Clases con diagramas de Warnier Asiacute tambieacuten es posible obtener el modelo aplicando la Ingenieriacutea Inversa a un coacutedigo legado en C++

Ambos trabajos son retomados en este proyecto para la automatizacioacuten en la obtencioacuten de los Diagramas de Secuencias de UML La figura 31 muestra el modelo propuesto de ingenieriacutea directa

Extraer informacioacuten del diagrama de

rsquo rsquo

Diagrama de 11 clases I o

detallado de

detallado de

o meacutetodos

i ir---- Construir el

secuencias i

Modelo de Ingenieriacutea I directa automaacutetica

I

Figura 31 Modelo de Ingenieria Directa Autombtica de los Diagramas de Secuencias

Para la construccioacuten automaacutetica de un diagrama de secuencias se toma como base a un diagrama de Clases El modulo ldquoExtraer informacioacuten del diagrama de Clasesrdquo sirve para obtener el nombre y los meacutetodos descritos en cada uno de las clases que existan en el diagrama de Clases

22

Desarrollo de la herramienta

Con base en la informacioacuten que se tiene se abren los archivos correspondientes a los diagramas de Warnier El proceso que se emplea sobre cada uno los diagramas de Warnier llamado ldquoExtraer informacioacuten de los disentildeos detallados de los meacutetodosrdquo sirve para recopilar el conjunto de las llamadas de cada meacutetodo definido

En el siguiente paso (ldquoReconocer llamadas a meacutetodosrdquo) consiste en identificar si los meacutetodos que estaacuten descritos en los diagramas de Warnier tambieacuten lo estaacuten en el diagrama de Clases correspondiente

El paso ldquoConstruir los diagramas de secuencias automaacuteticamenterdquo realiza una validacioacuten de los meacutetodos definidos en los diagramas de Clases con los meacutetodos definidos en los diagramas de Warnier Este paso crea una estructura de datos con la secuencia de las llamadas y la recorre para crear los objetos y los mensajes en el diagrama de secuencias

AI terminar la creacioacuten automaacutetica del diagrama de secuencias se dispone de la r opcioacuten de guardar

31 Disentildeo de la Arquitectura

Para definir los procesos que el sistema va a realizar es necesario llevar a cabo un anaacutelisis de requisitos los cuales pueden ser expresados mediante diagramas de Casos de Uso Los Casos de Uso son una descripcioacuten textual narrativa de los procesos de un sistema

311Requisitos (Diagrama de Casos de uso)

Los casos de uso en realidad no son un artefacto de anaacutelisis orientado a objetos estos describen simplemente procesos y pueden ser igualmente efectivos en un proyecto tecnoloacutegico no orientado a objetos Son usados en un paso preliminar a la descripcioacuten de requerimientos de un sistema [LAR971 La Figura 32 muestra el diagrama de casos de uso que especifica al S3C

9

S3C (Diagramas de Secuencias)

usuario I Modelado de

I

Figura 32 Diagrama de Casos de Uso para el S3C

23

Desarrollo de la herramienta

Descripcioacuten de los Casos de Uso

Caso de Uso ldquoDiagramas de Secuenciasrdquo Se inicia cuando el actor ldquousuariordquo solicita la creacioacuten de un Diagrama de Secuencias Se establece la forma de la construccioacuten automaacutetica de los diagramas de secuencias de UML Se hace uso del Modelado de Clases y del Modelado del disentildeo detallado de los meacutetodos

Escenario de Eacutexito 1 Se obtiene la informacioacuten de las clases del modelado de clases 2 Se obtiene la informacioacuten del modelado del disentildeo detallado de los meacutetodos 3 Se realiza la construccioacuten automaacutetica de los diagramas de secuencias

1 En el modelo de clases no hay informacioacuten o estaacute incompleta 2 En el modelo del disentildeo detallado de los meacutetodos no hay informacioacuten o estaacute

incompleta

Escenario de Falla

Caso de Uso ldquoModelado de Clasesrdquo El diagrama de Clases se utiliza para obtener los nombres de clases y los nombres de los meacutetodos de cada clase

Escenario de Eacutexito 1 Se abre el modelo 2 Se procesa para obtener la informacioacuten de las clases (nombres de clases y nombres

de meacutetodos)

Escenano de Falla h 1 No se puede abrir el modelo J 2 El modelo esta vaciacuteo

Caso de Uso ldquoModelado del Disentildeo detallado 1 los meacutetodosrdquo El disentildeo detallado de los meacutetodos se realiza con diagramas de Warnier aquiacute se establecen las llamadas a funciones dentro del sistema y es aquiacute donde se identifica el dinamismo que se representaraacute en los diagramas de secuencias

Escenario de Eacutexito 1 Se abre el modelo 2 Se realiza la identificacioacuten de las llamadas existentes

Escenario de Falla 1 No se puede abrir el modelo 2 El modelo esta vaciacuteo

24

Desarrollo de la herramienta

Clase Objeto ni I Diagrama I n ____ Nombre Descripcioacuten

i

Mensaje

Tipo

En el Anaacutelisis Orientado a Objetos se crea una especificacioacuteii del dominio del problema y de los requeriinientos desde la perspectiva de una clasificacioacuten por objetos y del entendimiento de los teacuterminos usados en el dominio del problema Una descomposicioacuten del dominio del problema involucra una identificacioacuten de conceptos atributos y asociaciones que son considerados importantes dentro del dominio El resultado puede ser expresado en un Modelo Corzcepttraf el cual es ilustrado en un conjunto de diagramas que definen conceptos (objetos) [LAR97]

312Modelo Conceptual

El modelo conceptual visto en la Figura 33 no es una descripcioacuten de componentes de software representa conceptos en el domino del problema en el mundo Teal [LAR97l

313Diagramas de clases

Por cuestiones dc espacio las clases de la arquitectura del sistema estaraacuten referidas en varios diagramas que de alguna manera estaacuten relacionados entre si

Una de las partes maacutes importantes del Ambiente Visual S3C es la estructura de clases ltCCraJicogt la cual se refiere al control de los diagramas eacutesta por su naturaleza podriacutea considerarse el nuacutecleo del sistema La manipulacioacuten y control de los diagramas estaacute definido en una estructura de clases organizada con el patroacuten de disentildeo Composite que se muestra en la Figura 34

25

Desarrollo de la herramienta

CRecursividadDS CMensajeDS CObjetoDS CDiagramaDS

I Cvisitor I

CApuntadorDS CDblClickDS CAsocAdjusterDS CSelectorDS

26

Desarrollo de la herramienta

n 32 Elementos de la arquitectura

Es necesario describir los elementos que dan soporte a la arquitectura del ambiente donde se implementaraacute el sistema en este caso Microsoft Visual (MV) C++ 6 El MV C++ es un marco de aplicacioacuten poderoso basado en Windows se integran ademaacutes del lenguaje C++ (compilador y enlazador) el programa de desarrollo de programas en lenguaje C para Windows (SDK) la Microsoft Foundation Class Library AppWizzard Classwizard AppStudio y WorkBencli

La Microsoft Foundation Class Library comprende una biblioteca de clases de C++ y es considerada como el nuacutecleo del MV C++

321Microsoft Foundation Class (MFC)

La libreriacutea Microsoft Foundation Class (MFC) es una interfaz orientada a objetos que tiene las siguientes metas de disentildeo

o

Reduccioacuten significante de esfuerzo al escribir una aplicacioacuten para Windows Velocidad de ejecucioacuten comparable a las APIrsquos del lenguaje C Miacutenimo tamantildeo de coacutedigo Capacidad para llamar cualquier funcioacuten de Windows en C directamente Faacutecil conversioacuten de aplicaciones existentes en C a C++ Faacutecil uso de APIrsquos de Windows con C++ como con C Faacutecil uso de complicadas caracteriacutesticas de abstracciones poderosas como ActiveX soporte para base de datos impresioacuten barras de herramientas y barras de estado El API de Windows en C++ si usa tan efectivamente como las caracteriacutesticas mismas del lenguaje C++

La mayoriacutea de las clases de la Libreriacutea de la Microsoft Foundation Class son derivadas de una clase base ltCObjectgt que es la raiacutez de la jerarquiacutea de clases ltCObjectgt da uacutetiles capacidades a las clases que derivan de ella

La jerarquiacutea que existe en las clases derivadas de ltCObjectgt es la siguiente

Arquitectura de Aplicacioacuten Excepciones Servicios de Archivos Arreglos Listas Mapas Servicios de Internet Sockets Sincronizacioacuten Soporte para base de datos D A 0

27

Desarrollo de la herramienta

i

r

Liacutenea de Comandos Menuacute Dibujo Graacutefico Dibujo Graacutefico de Objetos Soporte de Control Soporte de Ventanas

Soporte para base de datos ODBC

o Marco de Ventanas o Barras de control o Hojas de propiedades o Cajas de Dialogo o Vistas o Controles

322Arquitectura Documento Vista

Por defecto las aplicaciones creadas con la MFC usan un modelo de aplicacioacuten que separa los datos del programa de las vistas de interaccioacuten con el usuario En eacuteste modelo un objeto documento de MFC lee y escribe datos en un almacenamiento persistente Un objeto vista administra el despliegue de datos suministrando al usuario los datos para ser seleccionados o editados La vista le comunica al documento cualquier cambio en los datos La razoacuten maacutes conveniente para seguir este modelo es cuando se necesita muacuteltiples vistas del mismo documento (como en una hoja de caacutelculo y un graacutefico)

La arquitectura documentovista hace faacutecil el soporte de muacuteltiples vistas y muacuteltiples tipos de documentos asiacute como la divisioacuten de ventanas y otras caracteriacutesticas de interfaz de usuario Pero el corazoacuten de la arquitectura son cuatro clases (Mostradas en el aacuterbol de clases de la Figura 36)

ltCDocumerrtgt (o ltCOleDocuinentgt) - Se instancia un objeto de este tipo para almacenar y controlar los datos del programa ltCViewgt (o una de sus clases derivadas ltCScrotlViewgt ltCFormViewgt ltCEditView ltCRecordViewgt ltCDaoRecordView ltCtreeViewgt ltCListViewgt b ltCrichEditViewgt) - Un objeto es usado para desplegar los datos y administrar la interaccioacuten del usuario con los datos ltCFrameWndgt (o una de sus variantes) - Establece el marco sobre el que trabajaraacuten una o mas vistas de un documento ltCDocTemolategt (o ltCSingIeDocTemplategt o ltCMultiDocTemplategt) - Coordina la existencia de uno o maacutes documentos de un tipo dado y administra la correcta creacioacuten de los documentos vistas y objetos ventanas para cada tipo

i

28

Desarrollo de la herramienta

______________ 2 Wiew

I - - __ - ------a ________________

323Integrando Ambientes en Visual C t t

Las aplicaciones de Interfaz de Documento Uacutenico (SDI) soporta muacuteltiples tipos de documentos pero este soporte es para un solo objeto documento Debido a esta restriccioacuten y aunado a la necesidad de tener varios objetos documentos a la vez se determina la utilizacioacuten del modelo Interfaz de Muacuteltiples Documentos (MDI) indicado en la Figura 37

324Interfaz de Muacuteltiples Documentos (MDI)

Una aplicacioacuten de Interfaz de Muacuteltiples Documento (MDI) permite la creacioacuten de plantillas para el manejo de los documentos eacutesta plantilla tiene la forma

rn-pDocTemplate = new CMultiDocTernplate ( I DR-SCUMLTY PE RUNTIME-CLASS (CSCUMLDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CTheView))

AddDocTernplate ( rn-pDocTemplate )

Cada plantilla describe una relacion del tipo de documento con la vista asociada La definicioacuten de la plantilla para el ambiente que controla los diagramas de secuencias es la siguiente

29

Desarrollo de la herramienta c

m-pTernplateSeqDlag = new CMultiDocTernplate ( IDR-DS-SJCTYPE RUNTIME-CLASS (CSeqDiagDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CSeqDiagView) )

AddDocTernplate( rn-pTernplateSeqDiag )

Esta plantilla hace uso de la clase CCliildFrame que por defecto el ambiente Visual C++ construye y esto es debido a que no se requieren caracteriacutesticas extras en las ventanas de las que proporciona dicha clasc En un caso en el que se requiriera un comportamiento diferente de la vista tendriacutea que crearse una nueva clase con las caracteriacutesticas deseadas

Vista Documento

Vista

I- Vista Documento I [ Tip- F Vista

L Figura 37 Modelo Interfaz de Muacuteltiples Documentos (MDI)

Para integrar otro Ambiente que utilice otro tipo de documento es necesario definir otra plantilla de la misma forma mencionada Debe tomarse en cuenta los siguientes puntos

Es necesario definir el nombre (mqTemplateNOMBRE) El IDR del tipo que se requiere que sea el documento En la primera liacutenea RUNTIME CLASS debe indicar la clase ltCDocumentgt que desea La segunda liacutenea RUNTIME-CLASS soacutelo la cambia a otra clase si requiere de otro manipulador de ventanas de lo contrario deje que ltCChildFramegt se haga cargo

-

30

Desarrollo de la herramienta

En la uacuteltima liacutenea referente a RUNTIME-CLASS se debe indicar la clase ltCViewgt que desea usar Para finalizar se usa la instruccioacuten AddDocTernplate para finalizar la definicioacuten del template (mgTemplateNOMBRE)

325 Recursos Diaacutelogos Mertuacutes y Barras de Herrattriertias

Son varios los recursos con los que se puede contar al crear un proyecto en Microsoft Visual C++ Los diaacutelogos son un recurso disponible que son utilizados para visualizar ingresar yo modificar informacioacuten que se requiera En el Ambiente Visual que se desarrolla son varios los diaacutelogos que se utilizaraacuten y eacutestos se describen a continuacioacuten

El Diaacutelogo ldquoCaracteriacutesticas del Obietordquo (Figura 38) identifica el nombre del Objeto y la descripcioacuten del mismo Este diaacutelogo se muestra cuando se presiona doble clic sobre un objeto del diagrama

I Nombre

Desciipcion

Figura 38 Dialogo Caracteriacutesticas del Objeto

El Diaacutelogo ldquoMensaierdquo (Figura 39) muestra el nombre del mensaje que puede ser modificado ademaacutes se visualizan el Identificador del Mensaje el tipo de Mensaje asiacute tambieacuten el origen y destino del mensaje

31

Desarrollo de la herramienta

Nornbie delMensaje Edit

IDentificador del Mensaje Edil Tipo de Mensaje (Edil

Edit Objeto Origen

Objeto Destino IEdit

i25El A Figura 39 Dialogo Mensaje

El menuacute es otro de los recursos del que se puede disponer para organizar el ambiente que se estaacute creando Para eacuteste caso en particular no se hizo modificaciones al menuacute estaacutendar (Figura 310) que Visual C++ presenta Los cambios significativos son el manejo del tipo de documento para los Diagramas de Secuencias

Archivo Editar Yer VenLana AyGda

Figura 310 Menuacute de los Diagramas de Secuencias (estaacutendar)

Otro importante recurso del que uno se puede valer en Visual C++ es la barra de herramienta personalizada la cuaacutel es construida en el Editor de Recursos Se ha construido una barra (Figura 311) con los elementos graacuteficos de los Diagramas de Secuencia de UML

Figura 311 Barra de Herramientas de los Diagramas de Secuencias

Es recomendable que al utilizar barras de herramienta personalizada se defina en el tamantildeo estaacutendar ya que puede experimentar problemas al momento de ejecutar la aplicacioacuten

Ademaacutes puede usar la propiedad TBBS-CHECKGROUP en una barra de herramientas para establecer que los botones puedan quedar presionados hasta que un botoacuten diferente sea presionado No olvide que la numeracioacuten inicia con cero ( O )

vuriableToolBurSetButtonStyle(OTBBSCHECKGROUP)

32

Desarrollo de la herramienta

Prefijo ID IDC IDD IDP IDR IDS

326 Notacioacuten estaacutendar

Los nombres descriptivos de los recursos se asocian a un valor uacutenico Para una mayor claridad eacutestos nombres mantienen un prefijo que describe el tipo de recurso asociado (vea la Tabla 31) [MIC99]

Tipo de Recurso Comandos de Menuacute Controles y recursos Cuadros de diaacutelogo Cadenas de solicitud para cuadros de mensaje Menuacute principal barras de herramienta tabla aceleradora y el icono Cadenas

IDR IDD IDC ID

200 - 299 3000 - 3999 34000 - 34999

Estos son los rangos de valores establecidos para el proyecto S3C Si se utiliza el coacutedigo fuente y se planea agregar otro proyecto verifisue que no se invadan estos nuacutemeros para evitar problemas

Para facilitar auacuten maacutes los trabajos futuros se ha definido una estructura de carpetas (ver Figura 312) para incluir en cada una las Clases correspondientes a cada tesis en desarrollo

33

Desarrollo de la herramienta

ill ~~ -

-I SCUML classes + U A N T L R + U App + 0 ClassDiagrams + 0 Common + a Java

t $2 SequenceDiagiams

+ WarnierDiagrams

iJ PackageDiagrams

12 StaterChartDiagrams

+

- f Classview I Resourceview 1 FileView ]

~ ~

Figura 312 Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)

327Estructura de datos persistencia y recuperacioacuten

Existe una gran cantidad de tipos de datos estructuras clases y meacutetodos de los que se puede hacer uso para una mejor y maacutes faacutecil obtencioacuten de los resultados A continuacioacuten hago comentarios en tipos de datos y meacutetodos en los que podriacutea tener problemas

CTypedPtrList

AI usar este tipo de dato o alguno relacionado que le permita utilizar el meacutetodo ltCTvrgtedPtrListGetNextgt tenga especial precaucioacuten al usarlo ya que al devolver el valor requerido la variable POSITION usada no se queda apuntando a ese valor en particular salta al inmediato siguiente de la lista

Si se realiza una creacioacuten dinaacutemica con punteros para los elementos de una CTypedPtrList Despueacutes de haberlo agregado a la lista evite el delete para borrar esta Usted deseando liberar la memoria no lo haga ya que eliminara directamente el elemento de la lista

POSITION

Es un valor usado para denotar una posicioacuten de un elemento en una coleccioacuten Pero CUIDADO no se refiere a un iacutendice es una referencia (no consecutiva) de punteros muy diferente a un iacutendice

CString

Auacuten cuando el operador de comparacioacuten == (igual a) es permitido para ser utilizado en las cadenas evite su uso ya que en ocasiones aunque cuando la e

34

Desarrollo de la herramienta

compilacioacuten no indique error alguno en la ejecucioacuten no realizaraacute lo que se necesita Recomiendo que utilice CStringCompare ()

Para eliminar el contenido de un CString utilice CStringEmpty() ya que asignar a la cadena un ldquonrdquo podriacutea causarle problemas

Serializacioacuten

Una forma en que se puede guardar informacioacuten y recuperarla de manera eficaz es mediante la serializacioacuten de objetos La serializacioacuten es un proceso que permite escribir un objeto en un archivo y tambieacuten leerlo

Para que la serializacioacuten se lleve a cabo son necesarios tres objetos un objeto de tipo ltCFilegt que represente el archivo un objeto de tipo ltCArchivegt que ofrece el entorno para la serializacioacuten y la clase del objeto a ser serializado debe ser heredada de ltCObjectgt y sobrescribir el meacutetodo ltSerializegt para que se encuentre de tal forma en que pueda ser serializado (vea la Figura 313)

Objeto a ser serializado 1

1 CArchive

[f --=I- ---7 Archivoexi

u Figura 313 Serializacioacuten

328Patrones de disentildeo utilizados

Se ha planteado la definicioacuten de una arquitectura de clases utilizando patrones de disentildeo debido a que algunos de ellos hacen maacutes faacutecil la extensioacuten de la funcionalidad y mantenimiento

35

Desarrollo de la herramienta

El patroacuten Composite es utilizado para crear de manera uniforme el diagrama sobre el que se trabaja (ver Figura 34) manteniendo una jerarquiacutea de clases uniforme las clases maacutes bajas en la jerarquiacutea definen primitivas de objetos graacuteficos

Se aplica el patroacuten de disentildeo Iterator para hacer recorridos en listas de objetos para realizar diversas operaciones Otro patroacuten de disentildeo del que se hace uso es el Visilor (ver Figura 35)

Para otras actividades que se realizan podriacutea pensarse en que se deberiacutean aplicar otros patrones pero se han evitado algunos (como el patroacuten de disentildeo Builder) para evitar incrementar la complejidad en la arquitectura ya que ai mantener el modelo de la MFC de documentovista la funcionalidad del patroacuten de disentildeo Builder es faacutecilmente reemplazado si se hiciera Uso de eacuteste se aumentariacutea la complejidad excesivamente (nos llevariacutea a perdemos en ocasiones en el paso de mensajes entre clases) dantildeando la facilidad de la arquitectura

33 Diagrama de secuencias

Un Diagrama de Secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten escenario Oacute comportamiento se usan para definir el curso loacutegico de accioacuten de un posible camino a seguir en la resolucioacuten de un problema Seguacuten John Daniels [DANO2] ldquoel principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildean las interacciones de los objetosrdquo

Los Diagramas de Secuencias se utilizan en el modelado de la implementacioacuten de sistemas de software ademaacutes son aplicables en el modelado de requisitos para establecer las comunicaciones existentes entre actores yo clases del sistema Con eacutestos diagramas se logran hacer descripciones de los escenarios y los comportamientos del sistema Con los Diagramas de Secuencias es posible definir protocolos de comunicacioacuten con paso de mensajes ya que dan esa flexibilidad que se requiere Ademaacutes los Diagramas de Secuencias contienen informacioacuten suficiente para que puedan ser transformados a los diagramas de colaboracioacuten [RUM Ol][BOO Oil

331Ciclo de vida del software

Considerando cualquier modelo de ciclo de vida del software (en la figura 314 se muestra el Modelo de cascada) el aacutembito directo de eacuteste Ambiente Visual es en el disentildeo aunque tiene sus vertientes en la codificacioacuten y mantenimiento

36

Desarrollo de la herramienta

Diseno

Codificacibn

I I I I Mantenimiento I

igura 314 Modelo de cascada del ciclo de vida del software

34 Elementos atoacutemicos de la Gramaacutetica

Definicioacuten de los elementos atoacutemicos del lenguaje y su contenido

1 Actor- Representa roles de entidad externos al sistema con el que interactuacutea directamente Los actores pueden ser humanos dispositivos u otros sistemas

2 ClaseObjeto- Determina una Clase u Objeto participante en la interaccioacuten

3 Mensaje-Es una comunicacioacuten entre objetos que contiene informacioacuten Eacuteste se representa con la finalidad a que una accioacuten sea llevada a cabo

4 Mensaje con tiempo- Tiene la misma finalidad que el mensaje la diferencia es que con eacutel se representa un atributo de tiempo

5 Mensaje asiacutencrono Es un mensaje que ocurre en el tiempo de manera independiente a otros mensajes

6 Mensaje de destruccioacuten de objeto- Es un mensaje cuya finalidad es indicar la destruccioacuten del objeto destino

7 Mensaje de creacioacuten de objeto- Es un mensaje que indica la creacioacuten de un objeto

8 Llamada al mismo objeto (Recursividad)- Es usado para modelar llamadas recursivas en el que una operacioacuten es invocada por el mismo objeto

37

Desarrollo de la herramienta

9 Destruccioacuten del objeto (AutodestrucciOacuten)- Puede o no modelarse es representada con una X al final de la liacutenea de vida del objeto

Elementos aulomaacuteticos

1 Liacutenea de Vida- Representa la vida del objeto durante la interaccioacuten

2 Activacioacuten- Muestra el periacuteodo de tiempo en el cual el objeto alguna operacioacuten

341RepresentaciOacuten visual

Representacioacuten visual de los elementos atoacutemicos del lenguaje

Actor

_- A

Mensaje

Mensaje de Creacioacuten de

Objeto

ClaseObjeto

I

Mensaje de retorno

Mensaje de Destruccioacuten de

Objeto

abla 32 Element(

Activacioacuten

Mensaje con tiempo

Autodestruccioacuten

x

atoacutemicos del lengi

taacute realizz

Texto ===I (letra)+ (letra I

numero) letra= AZ I az numero = 09

I

Recursividad ~

I

i j e

io

38

u

Comentario

iexcl

Conector de Comentario

35 Gramaacutetica desarrollada

La gramaacutetica que se propone es una gramaacutetica visual del tipo relacional Una gramaacutetica relacional pertenece a las gramaacuteticas libres de contexto es una 6-iupla G (N C S R Attr P) donde

N es un conjunto finito de siacutembolos no terminales C es un conjunto de siacutembolos terminales S es un siacutembolo distinguido en N llamado siacutembolo inicial R es un conjunto finito de siacutembolos de relacioacuten Attr es un conjunto finito de siacutembolos de atributos P es un conjunto de producciones

Entonces definiendo nuestra gramaacutetica G (N C S R Attr P)

N = Diagrama GrupoClaseObjeto

S = Diagrama

R = mensaje mensajeTiempo mensajeRetomo mensajeAsincrono mensajecrea mensajeDestruye autodestruccioacuten recursividad

R

Attr = entrada salida entradacrea

39

Desarrollo de la herramienta

Definiendo la posicioacuten de los atributos en los elementos visuales

entradacrea ObetaClase

entrada

salida

P =

Diagrama I GrupoClaseObjeto (mensaje (mensajeRetorno

(salida 1) (entrada 2) ) (salida 2) (entrada 1) )

- Diagrama 0 GrupoClaseObjeto

(mensaje (mensaje (mensajeRetomo (mensajeRetomo (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entradacrea 2) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 1) ) (salida 1) (entrada 1) )

entrada

salida

40

Desarrollo de la herramienta

s

-

GrupoClaseObjeto - 1 1 I 2 (mensaje (mensaje (mensajeRetorno (mensajeRetorno (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entradacrea 2) ) (salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 1) ) (salida I ) (entrada I ) )

1 En las gramaacuteticas relacionales una produccioacuten estaacute acompantildeada de las posibles

relaciones que puedan generarse En la primera produccioacuten Diagrama produce a un Actor seguida de un GrupoClaseObjeto el Actor inicia la interaccioacuten con un mensaje y recibe el mensaje de retorno al finalizar la interaccioacuten La segunda y tercera produccioacuten son similares debido a que un GrupoClaseObjeto contiene dos ClaseObjeto que se relacionan de la misma forma

Existe un elemento de la gramaacutetica llamado Attr (Atributo) el cual define la parte de los elementos visuales donde se establecen las relaciones Se han determinado dos atributos (entrada y salida) que para nuestro propoacutesito estaraacuten establecidos en la liacutenea de vida de cada elemento visual (Actor y ClaseObjeto)

Los Comentarios y la Activacioacuten no se consideran en la gramaacutetica Los comentarios son libres de incluirse y relacionarse con cualquier elemento y relacioacuten mencionada anteriormente y la activacioacuten existe siempre que se presente un mensaje (o podriacutea omitirse) Estas consideraciones se realizaron para hacer auacuten maacutes faacutecil la gramaacutetica ya que si se trata de realizar un sistema las restricciones de estos elementos pueden mantenerse en el lenguaje de programacioacuten en el que se desarrolle el sistema

36

Precondiciones

El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias

1 El diagrama de Clases debe existir y estar completo 2 Debe existir un archivo con un diagrama de Warnier por cada diagrama de Clases y

con el mismo nombre de archivo (excepto la extensioacuten del archivo) 3 En el uacutenico diagrama de Warnier de cada Clase se deben modelar todos los meacutetodos

de la Clase 4 No realizar declaraciones de meacutetodos

41

Desarrollo de la herramienta

5 Debe existir un meacutetodo lsquomain()rsquo en el diagrama de Clases

Restricciones

Los meacutetodos deben mantener nombres distintos en las diferentes Clases

Metodologiacutea para la obtencioacuten automaacutetica de los Diagramas de Secuencias

1 Seleccionar el diagrama de Clases

2 Se construye una lista con los nombres de las Clases y los Meacutetodos

3 Se verifica si exista el meacutetodo lsquomain()rsquo en alguna Clase Se busca la existencia de una uacutenica Clase

a La Clase que contenga lsquomain()rsquo se va al inicio de la lista de Clases

b Si no existe lsquomain()rsquo SE TERMINA EL PROCESO

4 Se verifica la existencia de los archivos que contienen el Disentildeo Detallado de los meacutetodos en Wamier para cada una de las Clases si alguno falta SE TERMINA EL PROCESO

5 Se procesa cada uno de los modelos del Disentildeo Detallado de los Meacutetodos generando una lista de secuencias de llamadas por cada uno de los meacutetodos

6 Se verifica que cada llamada corresponda a alguacuten meacutetodo existente (del diagrama de Clases) De no existir ese meacutetodo la llamada entra a una estructura que

7 Se crea una lista de secuencia

a Se inicia con lsquomain()rsquo b Se recorre cada una de las llamadas de los meacutetodos c Se considera invaacutelido el caso de que un meacutetodo intente una llamada

recursiva al meacutetodo lsquomain()rsquo

8 Se muestra un diaacutelogo de resultados en el que se indican las llamadas que no se encnotraron definidas y que pueden ser Llamada a libreriacutea oacute Llamada Erroacutenea

42

Capiacutetulo 4

Prue6as y su6taaacuteos

En eacuteste capiacutetulo se da a conocer el detalle de las pruebas y de los resultados obtenidos Se describen los casos de prueba con los que se realizoacute la evaluacioacuten del sistema asiacute tambieacuten se presentan comentarios acerca de los resultados obtenidos

Pruebas y Resultados

41 Recursos teacutecnicos utilizados

Para llevar a cabo las pruebas al sistema S3C se utilizaron los siguientes equipos de Coacutemputo

Computadora de escritorio

256MB RAM Disco Duro 80G Monitor 17rdquo SAMSUNG

AMD Athlon XP 1600+ I4Ghz

Computadora de escritorio Intel Pentium 4 - 128MB RAM Disco Duro 40G Monitor 15rdquo i -

42 Descripcioacuten del plan de pruebas

Las pruebas establecen el Uacuteltimo paso desde donde es posible evaluar la calidad y descubrir los errores Las pruebas y la validacioacuten del software se utilizan para comprobar que el sistema cumple con las expectativas del usuario

En esta seccioacuten se describen los casos de prueba que se realizaron al prototipo de S3C en conjunto a la suite cenidet-UML Para cada uno de los casos se presenta el objetivo el procedimiento que se siguioacute para la prueba y se muestran los resultados obtenidos - _

Las pruebas a realizar son los siguientes

Caso 1 Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Caso 2 Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Wamier

Caso3 Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Wamier

Caso4 Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo 5

44

Pruebas y Resultados

43 Resultados

431 Caso 1

5 Y

IZ =

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoSirdquo 4 Seleccionar el archivo ldquoVENTASrdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 41 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

s3c iuevo Proyecto SCUM1

Diagrama de clases

lvendedor I L

3

salida

venta prod

4 venia-oferta vcntaprod =

salida 6

Figura 41 Resultado del caso de prueba 1

45

Pruebas y Resultados

432 Caso 2

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Warnier (almacenwar cajawar vendedorwar) que ya cxisten (del caso de prueba I )

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoNordquo 4 Agregar las siguientes Clases con los respectivos meacutetodos y atributos

a Claseldquovendedorrdquo Meacutetodos ldquoventa mainrdquo b Claseldquoalmacenrdquo Meacutetodos ldquoentrada salidardquo c Claseldquocajardquo Meacutetodos ldquoventagrodrdquo

5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 42 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

Diagrama de daseo lisgrama dcsccucncis

MOIDOC Anivo

venta prod

salida

1 Ycrdquo1a 2

I 4 vcrdquolD~o1cn venta prod gt

salida 6 i Figura 42 Resultado del caso de prueba 2

46

Pruebas y Resultados

r

433 Caso 3

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Warnier

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 43 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

5

Error al tratar de abrir el archivo A bZwar

Aceptar i

Faltan Archivos de Disentildeos Detallados de Meacutetodos 1 1 A No se puede crear el diagrama de secuencias

Figura 43 Resultado del caso de prueba 3

47

Pruebas y Resultados

434 Caso 4

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 44 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

lsquo I

~ _ i i _ l _ Repaado ~~ ~ ~ 6~ ampA Figura 44 Resultado del caso de prueba 4

48

Pruebas y Resultados

PRUEBA DESCNPCION CASO 1 Mostrar la funcionalidad del

Sistema S3C a partir de un

44 Anaacutelisis de Resultados

RESULTADOS Se comproboacute la correcta funcionalidad del Sistema S3C a partir de un diagrama

CASO 3

CASO4

I diagrama de Clases cxistcnte I de Clases existente CASO 2 I Mostrar la funcionalidad del I Sc comproboacute la corrccta funcionalidad

Sistema S3C a partir de un del Sistema S3C a partir de un diagrama diagrama de Clases que se de Clases que se construye al momento construye al momento Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el Secuencias si falta alguno de los diagrama de Secuencia si falta alguno diagramas de Warnier Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el secuencias si hace falta el meacutetodo diagrama de Secuencias al faltar el ldquomain ()rdquo meacutetodo ldquomain()rdquo

de los diagramas de Warnier

Los resultados obtenidos de cada uno de los casos establecidos demuestran que se validoacute la funcionalidad del prototipo con los requisitos definidos en el alcance de este proyecto

a lt

49

Conclusiones y Tru6ajos Futuros

Aquiacute se dan a conocer las conclusiones y se describen los posibles trabajos futuros para la continuacioacuten de eacuteste proyecto

F

51 Conclusiones

Conclusiones y trabajos futuros

Se ha creado un Ambiente Visual que permite obtener de forma automaacutetica los Diagramas de Secuencias en base a los diagramas de Clases y al disentildeo detallado de los meacutetodos descritos con diagramas de Warnier cumpliendo con los objetivos planteados para este trabajo

La tesis aporta principalmente La generacioacuten automaacutetica de los diagramas de secuencias y la eliminacioacuten de inconsistencias al mantener una validacioacuten directa de los diagramas de clases y los diagramas de Warnier que son utilizados

Esta validacioacuten es lograda a traveacutes del uso de la gramaacutetica visual relaciona1 que se ha definido (veacutease el capiacutetulo 3) Esta gramaacutetica visual establece reglas para la correcta construccioacuten de los diagramas de secuencias

P De esta manera se establece que la hipoacutetesis ldquoEs posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodosrdquo Es verdadera

52 Trabajos Futuros

Un Diagrama de Secuencias puede convertirse en un Diagrama de Colaboracioacuten por lo tanto un trabajo futuro es la construccioacuten automaacutetica de un Diagrama de Colaboracioacuten a partir de uno de Secuencias existente

Es posible calcular la meacutetrica de acoplamiento al tener un Diagrama de Secuencias construido

La Ingenieriacutea directa de un Diagrama de Secuencias estableciendo la validacioacuten en la construccioacuten de todos los elementos visuales que UML define

La propagacioacuten de las modificaciones de un Diagrama de Secuencias a los Diagramas de Clases y los Diagramas de Warnier

La modificacioacuten del coacutedigo fuente mediante los cambios establecidos en un Diagrama de Secuencias

51

[ALC03]

[BLA98]

[B0099]

[BOOOi]

[BR097]

[CHA90]

[DAN02]

[GLA02]

[HAC98]

[HER03]

4

Alcate1 Computer Associates International inc Electronic Data Systems Corporation Hewlett-Packard Company IBM Corporation I-Logix IntelliCorp Kabira Technologies Kennedy Carter Microsoft Corporation Object Management Group Oracle Corporation Project Technology Ptech Inc Rational Software Corporation Reich Technologies Softeam Taskon A S Telelogic Unisys Corporation ldquoOMG Unified Modeling Language Specificationrdquo Version 15 Unified Modeling Language 2003

Blaha Michael Rumbaugh James Premerlani William Eddy Frederick Lorensen William ldquoObject-oriented modeling and designrdquo Prentice Hall 484 Paacuteginas ISBN 0-13-629841-9 QA-769-03S-B53-19981998

Booch Grady Rumbaugh James Jacobson Ivar ldquoEl lenguaje unificado de modeladordquo Addison Wesley 432 Paacuteginas ISBN 84-7829-028-1 1999

Booch Grady Rumbaugh James Jacobson Ivar ldquoThe Unified Modeling Language User Guiderdquo Addison Wesley 2001

Brown David ldquoAn introduction to object-oriented analysis objects in plain Englishrdquo John Whiley amp Sons Inc 700 Paginas ISBN 0-471-1 1028-0 QA-769-035-B76-1997 1997

Chang Shi-Kuo ldquoVisual Languages and visual programmingrdquo Plenum Press 340 Paacuteginas ISBN 0-306-43428-8 QA-7665-V57-1990 1990

Daniels John ldquoModeling with a sense of purposerdquo Design - IEEE Software JanuaryEebmary 2002

Glasgow Universidad Reino Unido ldquoA UML Editor in Javardquo (lthttplstudentsdcsglaacuWstudentspainjfproject-reportproject-re port-htmV4thYearReporthtrnlgt 2002)

T Hackos JoAnn C Redish Janice ldquoUser and Task Analysis for Interface Designrdquo Wiley Computer Publishing 488 Paacuteginas ISBN QA-769-U83- H33-1998 1998

Hemaacutendez Velaacutezquez M ldquoIngenieriacutea inversa de coacutedigo fuente en C++ para la obtencioacuten de su disentildeordquo Tesis AT-379 (03-0334) 2003

Conceptos generales

[HIX93]

[JAC93]

[JAC99]

[JOY98]

[LAR97]

[MAR]

[MIC99]

[MIC02]

[MOU98]

Hix Deborah Hartson H Rex ldquoDeveloping user interfacesrdquo 381 Paacuteginas ISBN 0-471-57813-4 QA-769-U83-H59-1993 1993

Jacobson Ivar Christerson Magnus Jonsson Patrik Overgaard Gunnar ldquoObject oriented software engineeringrdquo Addison Wesley ISBN 0-20 1 - 54435-0 QA-7676-D47-J63-1993 1993

Jacobson Ivar Booch Grady Rumbaugh James ldquoEl proceso unificado de desarrollo de softwarerdquo Addison Wesley 438 Paacuteginas ISBN 84-7829-036- 2 1999

Joyanes Aguilar Luis ldquoProgramacioacuten orientada a objetosrdquo McGruw Hill ISBN 84-481-0590-7 1998

Larman Craig ldquoAplying UML and Patternsrdquo Prentice Hull 507 Paacuteginas ISBN 0-13-748880-7 QA-769-035-L37-1997 1997

Marriot Kim Meyer Bemd ldquoVisual Language Theoryrdquo Springer 381 Paacuteginas P-935-V567-1998 1998

Microsoft ldquoMicrosoft Visual C++ 6 manual del programadorrdquo McGraw Hill ISBN 84-481-2127-9 QA-7673-Cl53-23718-1999 1999

Microsoft ldquoVisiordquo (lthttpwwwmicrosoftcomofficevisiogt 2002)

B Mourao Luis X ldquoUniversal Modeling Language Part 11 UML Notation - Case Sequence and Collaboration Diagramsrdquo Lan Times Magazine (~httpwwwlantimescomltpartsdiscussdiscuss6Ohtm~) 1998

No Magic ldquoMagicDrawrdquo (lthttpwwwmagicdrawcomgt 2002)

Object Insight ldquoJvisionrdquo (lthttpwwwobject-insightcomgt 2002)

Rational Software Microsoft I Hewlett-Packard Oracle Sterling Software MCI Systemhouse Unisys ICON Computing IntelliCorp i-Logix IBM ObjectTime Platinum Technology Ptech Taskon Reich Technologies Sofieam ldquoUML Summaryrdquo Version 11 Unified Modeling Language 1997

Rational ldquoRational Roserdquo (lthttpwwwrationalcomproductosrosegt 2002)

Rikki Kirzner ldquoAnalysis Modeling and Design Tools Market Forecast and Analysis 2001-2005rdquo Bulletin Published Under Services Application Design and Construction Tools Application Development and Deployment Strategies Documento Nuacutemero 24809 Junio 2001

53

Conceptos generales

[RIM92] Rimrner Steve ldquoGraphical user interface programmingrdquo 423 Paacuteginas

1992

Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language reference manualrdquo Addison Wesley 550 Paacuteginas ISBN 0-201-

ISBN 0-8306-2475-9 ISBN 0-8306-2472-4 (pbk) QA-769-083-R55G

[RUM99]

30998-X QA-7676-D47-R85-1999 1999

[RUM299] Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language user guiderdquo Addisoiz Wesley 482 Paacuteginas ISBN 0-201 -57 168-4 QA-7676-D47-B66-1999 1999

[SMA02] SmartDraw ldquoSmartDrawrdquo (lthttpwwwsmartdrawcomgt 2002)

[SHU88] 9 - Shu Nun C ldquoVisual Programmingrdquo Van Nostrand Reinhold ISBN 0-422- 28014-9 ISBN 0-422-01 164-4 QA-7665-S55 1988

[THI90] Thimbleby Harold ldquoUser Interface Designrdquo Acm press 470 Paacuteginas ISBN 0-201 -41 61 8-2 QA-769U83-T772~- 1990 1990

[WENO2] Wences Diaz MF ldquoModelo de Ingenieriacutea Inversa para la obtencioacuten de disentildeo detallado basado en LEVISSrdquo Tesis (02-0014) 2002

54

Anexo A

Conampuracioacuten de Microsoft Vkua[C++ 6 O

Este anexo indica las configuraciones que se utilizaron para la compilacioacuten de SCUML y s3c

Configuracioacuten de Microsoft Visual c++ 60

Debido a la integracioacuten de los proyectos de InverSOODA e InverDDVi con S3C se cumplioacute con los requisitos previos de ambos proyectos

El compilador usado en el proyecto fue el Microsoft Visual C++ 60

Para el cumplimiento con la funcionalidad de InverSOODA se instaloacute el ANTLR la versioacuten 271 Se descargoacute del sitio l i l l ~ ~ ~ ~ ~ ~ t l ~ l ~ - ~ t - ~ la versioacuten mencionada en un archivo comprimido (en formato zip) Se colocoacute el paquete descomprimido en el directorio ldquoDIANTLR-271 I rdquo

Recomiendo ampliamente que el directorio principal de ANTLR se copie en el directorio raiacutez de cualquier unidad de disco debido a que experimenteacute problemas de compilacioacuten cuando ANTLR no se encontraba en el directorio raiacutez

Io015

Source Browser AlttF12 I u c Ersquo V I

Visual Component Mgnager

- - ~ ~ ~ ~~

P2 Registrar control

A Contenedor de prueba de controles ActiveX

A Usor de objetos OLE y COM

Buacutesqueda de errores

A Y++ MFC Iracer

Customize options

~ - q- ~ Macro

Eecord Quick Macro Cbl+ShiR+R Pay Quick Macro Ctrl+ShiR+P

En el menuacute Tools (Herramientas) seleccione el sub-menuacute Options ltopcionesgt

56

Configuracioacuten de Microsoft Visual C++ 60

En la siguiente ventana de diaacutelogo debe agregar la direccioacuten en donde se encuentra el ANTLR

Agregar la ruta del directorio de ANTLR hasta el subdirectorio

libcpp

Editor I Tabs I Debug I Compatibility 1 Build Dneclolies I a I Chow directories for - Platfolm -

- Directories I x ) 4 jWin32 -] llnclude files

m cancd I

57

Configuracioacuten de Microsoft Visual C t+ 60

Se ha creado una libreriacutea (anrlrliblib) de ANTLR la cual ya estaacute situada en el directorio del proyecto SCUML (ISCUML) y no debe ser movida o eliminada

I

Geneial 1 Debug I CC++ Link I Category

Output file name bebugSCUMLexe

Objectljibrary modules 4 anllrliblib

li Generate debug lnfo r Ignore all defaull lbaries D ~ i n k j n ~ ~ ~ t a n ~ r ~ e n e r ~ ~ ~ mapfile

r Enable psafilrng

Proiec1 Ootionn

pq Cancel 1 Libreriacutea de ANTLR que debe existir 1 I para que se compile correctamente

58

Anexo B

~ u iacute aacute raacutepida de uso deC Sistema S3C

5 Este anexo indica de forma raacutepida la manera de utilizar S3C para crear un diagrama de secuencias de forma automaacutetica

Guiacutea Raacutepida de uso del Sistema S3C i

Para indicar la creacioacuten de un diagrama de secuencias en forma automaacutetica se debe ir a la barra del costado izquierdo y presionar ldquoNuevo Proyecto SCUMLrdquo

I s3c I ~ Nuevo Proyecto SCUML ~ _ _ - I Diagrama de clases ~ Diagrama de secuencias 1 MDI DOC Activo

-

Apareceraacute un documento llamado ldquoSCUMLV en donde el simbolo corresponde a un numero consecutivo iniciando desde 1 (uno)

$ e Despueacutes se presiona ldquoDiagrama de clasesrdquo Habraacute que para indicarle al sistema si se requiere abrir un diagrama de clases existente o realizar uno nuevo

i

iquestAbrir un documento existente

No Cardquo~ear

AI presionar ldquoSirdquo se debe indicar cual es el archivo del diagrama de Clases en el cuadro de diaacutelogo siguiente

~~ - 11dMis documentos rsquo 2 M i P C i lsquo h s sitios de red

I

AI presionar ldquoNordquo en ldquoAbrir un documento existenterdquo se nos mostraraacute un documento vacio para crear un diagrama de clases

60

Guiacutea Raacutepida de uso del Sistema S3C

Para ambas opciones se requiere que los diagramas de Wamier ya se encuentren construidos Y para continuar el proccso se selecciona el documento ldquoSCUMLVrsquo creado al inicio y despueacutes presionar el botoacuten nombrado ldquoDiagrama de secuenciasrdquo localizado en la barra de hcrraiiiicntas del costado izquierdo

Ha iniciado el proceso de construccioacuten del diagrama de secuencias Si no existen errores al terminar el proceso se le mostraraacute un cuadro de diaacutelogo llamado ldquoResultadosrdquo en donde le mostraraacute las llamadas de las que no localizoacute su definicioacuten

- - -

Cancel 1 D e las siguientes llamadas es posible que esten mal escritas o peitenezcan a la libreiia del Lenguaie Verifique ya que no se encontraron sus definiciones

A continuacioacuten se mencionan los posibles errores que finalizan el proceso de la creacioacuten automaacutetica de los diagramas de secuencias en S3C

Cuando no exista un meacutetodo lsquomainrsquo definido en el diagrama de clases

No se encontro el meacutetodo lsquomain()rsquo que inicie la secuencia I A No se puede crear el diagrama de secuencias

p==amp=q

61

Guia Raacutepida de uso del Sistema S3C

Cuando se definan niultiples metodos lsquoinainrsquo en el diagrama de clases

Multiples meacutetodos lsquomainOlsquo Imposible decidir el inicio de secuencia

Aceptar i

Si un meacutetodo definido en Wamier realiza una llamada a lsquomainrsquo se cancelara el proceso

Llamada NO VALIDA al meacutetodo principal main

(iAcp-j(

4 i

CI Y rdquoldquoldquoI i 11 1-T

IZNTRO Gt INFORMACION

62

  • Tabla de Contenido
  • Listado de Figuras
  • Listado de Tablas
  • Notacioacuten
  • Introduccioacuten
  • Capitulo 1 Conceptos Generales
    • 11 Antecedentes
    • 12 Trabajos relacionados
      • 121 Tabla comparativa
        • 13 Definicioacuten del problema
        • 14 Objetivo de la Tesis
          • Objetivos especiacuteficos de la tesis
            • 15 Hipoacutetesis de investigacioacuten
            • 16 Alcances y limitaciones del trabajo de tesis
              • Capitulo 2 Marco Teoacuterico
                • 21 Modelado de sistemas de software
                • 22 Interfaz de usuario (Mecanismos de interaccioacuten)
                • 23 Lenguajes Visuales
                • 24 Programacioacuten orientada a objetos
                • 25 Lenguaje de Modelado Unificado (UML)
                  • Desarrollo de la herramienta
                    • 31 Disentildeo de la Arquitectura
                      • 311 Requisitos (Diagrama de Casos de uso)
                        • 312Modelo Conceptual
                        • 313Diagramas de clases
                        • 32 Elementos de la arquitectura
                          • 321 Microsoft Foundation Class (MFC)
                            • 322Arquitectura Documento Vista
                            • 323Integrando Ambientes en Visual c++
                              • 324 Interfaz de Muacuteltiples Documentos (MDI)
                                • 325Recursos Diaacutelogos Menus y Barras de Herramientas
                                  • 326 Notacioacuten estaacutendar
                                  • 327 Estructura de datos persistencia y recuperacioacuten
                                    • 328Patrones de disentildeo utilizados
                                      • 33 Diagrama de secuencias
                                        • 331Ciclo de vida del software
                                          • 34 Elementos atoacutemicos de la Gramaacutetica
                                            • 341 Representacioacuten visual
                                              • 35 Gramaacutetica desarrollada
                                              • 36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias
                                                  • Capitulo 4 Pruebas y Resultados
                                                    • 41 Recursos teacutecnicos utilizados
                                                    • 42 Descripcioacuten del plan de pruebas
                                                    • 43 Resultados
                                                      • 431 Caso
                                                      • 432 Caso2
                                                      • 433 Caso
                                                          • Conclusiones y trabajos futuros
                                                            • Trabajos futuros
                                                            • Referencias
                                                            • Anexo A Configuracioacuten de Microsoft Visual C+t
                                                              • Figura 11 - Arquitectura de la suite cenidet-UML
                                                              • Figura 21 -Programacioacuten Visual
                                                              • Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de
                                                              • Figura 32 -Diagrama de Casos de Uso para el S3C
                                                              • Figura 33 -Modelo Conceptual
                                                              • Figura 34 - Diagrama de Clases -Control del Diagrama -
                                                              • Figura 35 - Diagrama de Clases - Patroacuten Visitor -
                                                              • Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento
                                                              • Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)
                                                              • Figura 38 -Dialogo Caracteriacutesticas del Objeto
                                                              • Figura 39 -Dialogo Mensaje
                                                              • Figura 3 IO - Menuacute de los Diagramas de Secuencias (estaacutendar)
                                                              • Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias
                                                              • Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)
                                                              • Figura 313 - Serializacioacuten
                                                              • Figura 314 -Modelo de cascada del ciclo de vida del software
                                                              • Figura 41 - Resultado del caso de prueba
                                                              • Figura 42 -Resultado del caso de prueba
                                                              • Figura 43 -Resultado del caso de prueba
                                                              • Figura 44 -Resultado del caso de prueba
                                                              • Tabla 11 - Tabla comparativa
                                                              • Tabla 31 -Prefijos estaacutendar de identificadores
                                                              • Tabla 32 -Elementos atoacutemicos del lenguaje
                                                              • Tabla 41 - Resumen de los resultados de las pruebas realizadas

-

A mis padres auacuten con la distancia Siempre han estado a mi lado a toda mi familia por el apoyo en todo momento

Agradecimientos

A mis padres por que me han dado todo

A toda nii familia por el apoyo que en su momento recibi de cada uno

AI Centro Nacional de Investigacioacuten y Dcsarrollo Tccnoloacutegico por la oportunidad que me han dado

A Cosnet (Consejo del Sistema Nacional de Educacioacuten Tecnoloacutegica) por el apoyo econoacutemico otorgado durante la realizacioacuten del programa de maestriacutea

A la SEP (Secretariacutea de Educacioacuten Puacuteblica) por ser parte importante con su apoyo econoacutemico para la culminacioacuten de mis estudios

A mi director de tesis Dr Maacuteximo Loacutepez Saacutenchez por compartirme sus conocimientos y guiarme

A mis revisores Dr Reneacute Santaolaya Salgado Dr Guillermo Rodriguez Ortiz y MC Humberto Hemaacutendez Garcia Gracias por sus observaciones y consejos para mejorar este trabajo

A Miguel Ramirez por los conocimientos teacutecnicos y amistad

A Leo Sele Lupita Ceacutesar Emilio Vianey Armando y Marisela por el tiempo que vivimos

3

-3 i

Gracias y Suerte

i 4

Resu men

La investigacioacuten y el producto de la tesis estaacuten inmersos en la etapa del disentildeo de sistemas de software

El prototipo S3C (producto de la tesis) permite la obtencioacuten de diagramas de secuencias de UML tomando como base la informacioacuten de un diagrama de clases y de varios documentos modelados con diagramas de Warnier (disentildeo detallado de los meacutetodos)

S3C realiza un proceso automaacutetico para la obtencioacuten de los diagramas de secuencias La construccioacuten de los diagramas de secuencias en S3C estaacute soportada con una gramaacutetica visual relacional El propoacutesito de la gramaacutetica es validar la construccioacuten de los diagramas de secuencias de UML

En el aacutembito de los diagramas de secuencias de UML no existen aplicaciones comerciales oacute proyectos educativos que se apoyen en una gramaacutetica visual para soportar la construccioacuten de los diagramas de secuencias y tampoco existen aplicaciones que permitan a partir de los diagramas de clases y del disentildeo detallado de los meacutetodos generar automaacuteticamente los diagramas de secuencias

4 _

i d

Abstract

The research and the product of this thesis are immersed in the phase of design of software systems

Prototype S3C (product of this thesis) allows to obtain UML sequence diagrams based on the information of a class diagram and several documents modeled with wamier diagrams (detailed design of the methods)

S3C makes an automatic process in order to obtain sequence diagrams the construction of sequence diagrams in S3C is supported with a relational visual grammar The purpose of the grammar is to validate the construction of UML sequence diagrams

il

In the scope of UML sequence diagrams do not cxist commercial applications or educative projects that are based on a visual grammar to support the construction of sequence diagrams Also there arenrsquot applications that allow the automatic generation of secuence diagrams from class diagrams and the detailed design of methods

Tabla de Contenido

Tabla de Contenido

Listado de Figuras

Listado de Tablas

Notacioacuten

Introduccioacuten

Capitulo 1 Conceptos Generales

11 Antecedentes

12 Trabajos relacionados

121 Tabla comparativa

13 Definicioacuten del problema

14 Objetivo de la Tesis

141 Objetivos especiacuteficos de la tesis

15 Hipoacutetesis de investigacioacuten

16 Alcances y limitaciones del trabajo de tesis

Capitulo 2 Marco Teoacuterico

21 Modelado de sistemas de software

22 Interfaz de usuario (Mecanismos de interaccioacuten)

23 Lenguajes Visuales

24 Programacioacuten orientada a objetos

25 Lenguaje de Modelado Unificado (UML)

Capitulo 3 Desarrollo de la herramienta

31 Disentildeo de la Arquitectura

311 Requisitos (Diagrama de Casos de uso)

312Modelo Conceptual

313Diagramas de clases

Paacutegina

1 iv V

vi

1

2

3 4

6

6 7

7

8

8

9 10 11 13 16 17

21 23 23 25 25

1

32 Elementos de la arquitectura

321 Microsoft Foundation Class (MFC)

322Arquitectura Documento Vista

323Integrando Ambientes en Visual c++ 324 Interfaz de Muacuteltiples Documentos (MDI)

325Recursos Diaacutelogos Menus y Barras de Herramientas

326 Notacioacuten estaacutendar

327 Estructura de datos persistencia y recuperacioacuten

328Patrones de disentildeo utilizados

33 Diagrama de secuencias

331Ciclo de vida del software

34 Elementos atoacutemicos de la Gramaacutetica

341 Representacioacuten visual

35 Gramaacutetica desarrollada

a -

Tabla de Contenido

36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias

Capitulo 4 Pruebas y Resultados

41 Recursos teacutecnicos utilizados

42 Descripcioacuten del plan de pruebas

43 Resultados

431 Caso 1

432 Caso2

433 Caso 3

434 Caso4

44 Anaacutelisis de resultados

Conclusiones y trabajos futuros

Conclusiones

Trabajos futuros

27

27

28

29

29

31

33

34

35

36

36

37

38

39

41

43

44

44

45

45

46

47

48 49

50 51 51

i

lt

11

i Referencias

Anexo A Configuracioacuten de Microsoft Visual C+t 60

Anexo B Guiacutea raacutepida de uso del sistema S3C

Tabla de Contenido

52 59

lt 111

Listado de Figuras

3

Figura 11 - Arquitectura de la suite cenidet-UML

Figura 21 -Programacioacuten Visual

Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de Secuencias Figura 32 -Diagrama de Casos de Uso para el S3C

Figura 33 -Modelo Conceptual

Figura 34 - Diagrama de Clases -Control del Diagrama -

Figura 35 - Diagrama de Clases - Patroacuten Visitor - Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento Vista Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)

Figura 38 -Dialogo Caracteriacutesticas del Objeto

Figura 39 -Dialogo Mensaje

Figura 3 I O - Menuacute de los Diagramas de Secuencias (estaacutendar)

Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias

Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)

Figura 313 - Serializacioacuten

Figura 314 -Modelo de cascada del ciclo de vida del software

Figura 41 - Resultado del caso de prueba 1

Figura 42 -Resultado del caso de prueba 2

Figura 43 -Resultado del caso de prueba 3

Figura 44 -Resultado del caso de prueba 4

Paacutegina

3

13

22

23

25

26

26

29

30

31

32

32

32

34

35

37

45

46 47

48

iv

Tabla 11 - Tabla comparativa

Tabla 31 -Prefijos estaacutendar de identificadores

Tabla 32 -Elementos atoacutemicos del lenguaje

Tabla 41 - Resumen de los resultados de las pruebas realizadas

Listado de Tablas

Paacutegina

6 33

38 49

V

Notacioacuten

La siguiente es la notacioacuten de la que se haraacute uso

ltCObjectgt

ltGetDocunteiztgt

MiClase MiMetodo

9 Liacutenea de Coacutedigo

Mensaje

Clase de la MFC ( Microsoft Fundation Class)

Meacutetodo de una clase de la MFC

Clase desarrollada Meacutetodo de una clase desarrollada

Liacutenea o Bloque de coacutedigo

Elemento del Diagrama de Secuencia

vi

I Introduccioacuten

L~ tesis se enfoca hacia el desarrollo de sistemas de software centrados en el modelado mediante diagramas de secuencias definidos por el Lenguaje de Modelado Unificado (UML) La investigacioacuten y el producto de la tesis estaacuten inmersos en la etapa del disentildeo de sistemas de software

El producto (prototipo) de la tesis denominado S3C permite la obtencioacuten de diagramas de secuencias de UML tomando como base la informacioacuten de un diagrama de clases y de varios documentos modelados con diagramas de Wamier (disentildeo detallado de los meacutetodos)

Para la elaboracioacuten de los diagramas de clases se hace uso del ambiente existente InverSOODA [HER03] Y para el modelado de los documentos Wamier se ha tomado el ambiente InverDDVi [WEN02] Ambos ambientes visuales son productos de tesis anteriores y se han integrado en un solo prototipo denominado SCUML (Suite cenidet - UML)

(i

S3C realiza un proceso automaacutetico para la obtencioacuten de los diagramas de secuencias en este proceso solo se requiere indicar el diagrama de clases del que se basaraacute La construccioacuten de los diagramas de secuencias en S3C estaacute soportada con una gramaacutetica visual relacional El propoacutesito de la gramaacutetica es validar la construccioacuten de los diagramas de secuencias de UML

En el aacutembito de los diagramas de secuencias de UML no existen aplicaciones comerciales oacute proyectos educativos que se apoyen en una gramaacutetica visual para soportar la construccioacuten de los diagramas de secuencias y tampoco existen aplicaciones que permitan a partir de los diagramas de clases y del disentildeo detallado de los meacutetodos generar automaacuteticamente los diagramas de secuencias

3

Los temas relacionados a esta tesis son Modelado de Sistemas UML Interfaz de Usuario Programacioacuten Orientada a Objetos y Gramaacuteticas Visuales

El capiacutetulo 1 es de conceptos generales se dan a conocer los antecedentes del proyecto los trabajos relacionados hipoacutetesis alcances y limitaciones

En el capiacutetulo 2 se define el marco teoacuterico de la tesis se describen temas como Modelado de sistemas de software disentildeo de sistemas de software modelado visual lenguajes visuales programacioacuten orientada a objetos y lenguaje de modelado unificado

El capiacutetulo 3 describe el desarrollo del ambiente visual se detalla el modelo conceptual la arquitectura y sus elementos los diagramas de secuencias y la gramaacutetica visual relacional que se desarrolloacute

En el capiacutetulo 4 se muestran los casos de pruebas y los resultados obtenidos Y al final se establecen las conclusiones y se dan propuestas para algunos trabajos futuros 3

1

Capiacutetulo I

Conceptos generalis

En eacuteste capiacutetulo se dan a conocer los antecedentes del proyecto de tesis los trabajos relacionados el problema que resolveraacute la hipoacutetesis a comprobar los alcances y limitaciones

Conceptos generales

11 Antecedentes

Actualmente en el cenidet (Centro Nacional de Investigacioacuten y Desarrollo Tecnoloacutegico) se trabaja en la construccioacuten de un conjunto de ambientes visuales para dar soporte al desarrollo con diagramas que define el estaacutendar UML para elaborar sistemas de software de manera completa raacutepida y eficaz El ambiente de modelado principal se ha denominado suite cenidet-UML y su arquitectura general se muestra a continuacioacuten en la Figura 11

Arquitectura de la suite cenidet-UML

Figura 11 Arquitectura de la suite cenidet-UML

a El producto de software resultante de eacutesta tesis lleva por nombre S3C y como se indica en la figura 11 Las tesis directamente relacionadas son InverSOODA [HER03] e

InverDDVi [WEN02]

InverSOODA (Sistema Orientado a Objetos para Disentildeo y Anaacutelisis incluyendo Ingenieriacutea Inversa) es un Ambiente Visual que permite la elaboracioacuten de diagramas de clases de un sistema de software Los diagramas de clases son una vista estaacutetica y en ella se describe las relaciones que existen entre las entidades llamadas clases Cada una de las clases se divide en tres partes nombre de la clase meacutetodos y atributos Este ambiente permite generar el coacutedigo fuente en lenguaje C++ de un diagrama construido y tambieacuten aplicando la ingenieriacutea inversa es posible obtener un diagrama a partir de un coacutedigo en C++ existente

InverDDVi (Disentildeo Detallado Visual incluyendo Ingenieriacutea Inversa) es un Ambiente Visual cuyo objetivo es apoyar en la elaboracioacuten de diagramas de disentildeo detallado utilizando una notacioacuten basada en Warnier Los diagramas de Warnier sirven para describir una secuencia loacutegica de acciones y mediante su simbologiacutea se logra plasmar definiciones de meacutetodos llamadas a otros meacutetodos ciclos comparaciones lectura de informacioacuten y escritura de informacioacuten Este ambiente permite generar el coacutedigo fuente en C de un diagrama construido y tambieacuten aplicando la ingenieriacutea inversa se puede obtener un diagrama de Warnier a partir de un coacutedigo en C que ya exista

i

3

Conceptos generales

12 Trabajos relacionados

Rational Rose de Rafional

Una de las herramientas mas populares del mercado que utiliza la notacioacuten UML y tiene la capacidad de reingenieriacutea de software para integrar sistemas existentes capacidad de mezclar diferentes lenguajes dentro de un mismo modelo ademaacutes de ingenieriacutea inversa sobre los componentes COM (Component Object Model) ActiveX y Java y con soporte de las arquitecturas MicrosoWCOM y CORBAIDL (The Common Object Request Broker Architecture)

Con Rational Rose se puede trabajar en grupo con capacidades para modelar y visualizar procesos de negocios y requerimientos de sistemas Tiene soporte para generar esquemas objetos-relaciones de bases de datos para realizar anaacutelisis de datos Cuenta con el soporte para analizar sitios Web en ASP (Active Server Pages) y JSP (Java Server Pages) Ademaacutes soporta los lenguajes Java CC++ Visual CC++ [RAT02] 9

SI -

Visio de Microsoft

Visio Enterprise 2002 permite crear diferentes tipos de diagramas como son

1 Diagramas de flujo 2 Planos de oficinas 3 Diagramas de aacuterbol 4 Diagramas de organizacioacuten 5 Liacuteneas de tiempo 6 Mapas geograacuteficos y direccionales 7 Diagramas de sitios Web 8 Diagramas de red 9 Diagramas de UML

Tiene las siguientes caracteriacutesticas diagramacioacuten e importacioacuten de servicios de directorio reingenieria de bases de datos disentildeo y documentacioacuten de bases de datos diagramacioacuten de software ingenieriacutea directa e inversa de coacutedigo replicacioacuten exacta por medio de diagramas de equipos y configuraciones de red diagramacioacuten automatizada y ambiente colaborativo

Visio da un conjunto completo de herramientas de diagramacioacuten de redes para planear y documentar claramente las redes existentes Ademaacutes para crear esquemas eleacutectricos mecaacutenicos y de procesos pueden crearse diagramas complejos con facilidad y poco entrenamiento

A las aplicaciones existentes se les puede realizar la ingenieriacutea inversa para obtener el disentildeo y tambieacuten crear nuevos disentildeos Proporciona herramientas para crear diagramas de bases de datos y es posible realizar ingenieriacutea inversa de esquemas existentes en bases de datos cliente servidor como SQL Server IBM Oracle y otros [MIC02]

4

Conceptos generales

e JVision 21 de Object Insight

JVision permite en la ingenieriacutea directa la creacioacuten de clases variables y meacutetodos con lo cual genera plantillas de coacutedigo para programadores en Java Los diagramas se pueden exportar a HTML La documentacioacuten puede integrarse con JavaDoc de Sun JVision da el soporte para ingenieriacutea inversa para el lenguaje Java

Se pueden crear todos los diagramas definidos por UML en los diagramas de secuencias da la oportunidad de dibujar clases liacuteneas liacuteneas de tiempo de vida y marca de destruccioacuten de objetos ofrece ademaacutes el soporte para las acciones de llamada regresar valor enviar accioacuten crear accioacuten y eliminar accioacuten [OBJO2]

MagicDraw 6 de No Magic

Es una herramienta CASE con soporte para trabajo en grupo Esta disentildeado para analistas 6 de negocios analistas de software programadores ingenieros de calidad y

documentadores Esta aplicacioacuten provee la capacidad para crear los diagramas definidos por UML (soporta UML 14) Cuenta con el soporte de ingenieriacutea inversa y generacioacuten de coacutedigo para C++ C Java y CORBNIDL Tiene integracioacuten con NetBeans se actualiza automaacuteticamente disponible en aacuterabe portugueacutes franceacutes italiano ingles (US) alemaacuten espantildeol japoneacutes y coreano

Tiene la caracteriacutestica de soportar la adaptacioacuten de los elementos a colores que el usuario defina Los diagramas pueden exportarse a imaacutegenes JPG EMF WMF EPS y DXF En los diagramas de secuencia da oportunidad de definir roles textos notas mensajes de varios tipos al mismo objeto recursivo ademaacutes de la relacioacuten a las notas y las liacuteneas de vida Es posible guardar los diagramas como imaacutegenes de mapas de bits o vectores Mantiene ademaacutes una vista pequentildea a escala del diagrama completo [NoA402]

e

SmariDraw Professional Plus de SmariDraw

Todos los dibujos pueden agregarse en las aplicaciones de Microsoft como son Word Excel PowerPoint Contiene maacutes de 50000 (1000 en la versioacuten estaacutendar) formas predefinidas ejemplos y plantillas Los diagramas pueden ser exportados a imaacutegenes WMF BMP JPG GIF TIF y otros Incluye un convertidor de archivos de VISIO

Con esta herramienta es posible crear diagramas de flujo diagramas de bloque diagramas de flujos de datos diagramas de organizacioacuten aacuterboles de decisioacuten disentildeo de redes Gantt diagramas de flujo de procesos diagramas de administracioacuten de calidad diagramas eleacutectricos diagramas mecaacutenicos diagramas quiacutemicos liacuteneas de tiempo planes de espacio posters mapas formas y tambieacuten da soporte para UML es posible dibujar objetos actores activacioacuten de los objetos mensaje mensaje de retorno mensaje asiacutencrono mensaje con tiempo liacutenea de vida del objeto marca de destruccioacuten del objeto y ciclos (descrito con un rectaacutengulo y una condicioacuten de salida) [SMA02]

5

Conceptos generales

Producto Soporta Diagramas de UML Secuencias

Creacioacuten automaacutetica de diagramas de

El Rational Rose El Visio

Jvision

Magic D r a w

a a El Fl El a El El

I ~

I ~

I -

Ambiente de modelado de

a a SmartDraw El

Tabla I Tabla comparativa

Todas las herramientas descritas anteriormente cuentan con caracteriacutesticas sobresalientes para el disentildeo y modelado de sistemas de software pero ninguna de ellas genera automaacuteticamente los diagramas de secuencia con base en los diagramas de clases y el disentildeo detallado de los meacutetodos asiacute tambieacuten ninguna de ellas realiza un caacutelculo de los canales de comunicacioacuten abiertos entre las clases que conforman el sistema

iexcla la A UML Editor in Java

13 Definicioacuten del problema

El modelado de sistemas utilizando el estaacutendar de UML en diversos productos comerciales prototipos de laboratorio elaborados en universidades y centros de investigacioacuten atienden la perspectiva baacutesica de la abstraccioacuten general del modelo esto es documentar el modelo del sistema que se requiere sin atender puntos importantes tales como

La generacioacuten automaacutetica de los diagramas de secuencias La correccioacuten de inconsistencias en los diagramas al crearlos de forma separada

El

6

sistemas de software

secuencias utilizando diagramas de a a a

Conceptos generales

Se hace necesaria la creacioacuten de un ambiente visual que permita obtener de forma automaacutetica los diagramas de secuencias en base a los diagramas de clases y al disentildeo detallado de los meacutetodos para facilitar la documentacioacuten la generacioacuten de coacutedigo y el mantenimiento de los sistemas

La obtencioacuten de los diagramas de secuencias estaacute basada en los Diagramas de Clases definidos por UML que son construidos con la herramienta InverSOODA junto con el disentildeo detallado de los meacutetodos construidos con Diagramas de Wamier elaborados con la herramienta InverDDVi

En el estaacutendar UML para la construccioacuten de los diagramas no existe actualmente una sintaxis expliacutecita definida solo existe impliacutecitamente en el uso de los elementos del diagrama por lo que se ha descrito una gramaacutetica visual de tipo relaciona1 como soporte para la construccioacuten de los Diagramas de Secuencias

n ai 14 Objetivo de la Tesis

Construir un ambiente visual que permita al usuario obtener el diagrama de secuencias de manera automaacutetica

141 Objetivos especiacuteficos de la tesis Crear una gramaacutetica que soporte la construccioacuten del diagrama de secuencias Construir de forma automaacutetica el diagrama de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodos

15 Hipoacutetesis de investigacioacuten

Es posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodos

16 Alcances y limitaciones del trabajo de tesis

Los alcances de la tesis se especifican a continuacioacuten

Se elaboroacute la arquitectura del sistema Se definioacute la gramaacutetica de soporte Se desarrolloacute la interfaz en Visual C++ haciendo uso de las MFC Se interactuacutea con los diagramas de clases de InverSOODA Se interachiacutea con el disentildeo detallado de los meacutetodos realizados por InverDDVI Se genera el diagrama de secuencias de forma automaacutetica

7

Conceptos generales

Limitaciones de la tesis

0 No se genera coacutedigo

La investigacioacuten se limita a los diagramas de clases para la vista estaacutetica de los sistemas de software y a los diagramas de Warnier para la vista dinaacutemica de los meacutetodos El ambiente no trabaja en red

No se modifican los archivos de InverSOODA No se modifican los archivos de InverDDVI No se recuperan diagramas de secuencias a partir de coacutedigo legado

4

8

Capiacutetulo 2

Narc0 teoacuterico

En eacuteste capiacutetulo se describen los temas usados para el desarrollo de la tesis iquestQue son los modelos iquestEn que parte del proceso de Ingenieriacutea del Software se usan los modelos o el modelado Se estudia la interfaz de usuario los lenguajes visuales y las gramaacuteticas visuales Se describe el Lenguaje de Modelado Unificado (UML) ademaacutes de la programacioacuten orientada a objetos por ser este paradigma en donde se enfoca este trabajo

Marco teoacuterico

21 Modelado de sistemas de software

un modelo es una abstraccioacuten de algo con el propoacutesito de entenderlo antes de construirlo El modelo omite detalles no esenciales haciendo maacutes faacutecil su manipulacioacuten que la entidad original [BLA98] Un modelo es la simplificacioacuten de la realidad [RUM99] Los propoacutesitos de los modelos son

Probar una entidad fisica antes de construirla Establecer mejor comunicacioacuten con los clientes Visualizar el problema y el sistema desde una mejor perspectiva Reducir la complejidad [BLA98] Capturar y precisar requerimientos y conocimiento del dominio Pensar acerca del disentildeo del sistema Capturar decisiones de disentildeo en una fomia separada que cambia a partir de los requerimientos Generar productos Organizar buscar filtrar obtener examinar y editar informacioacuten acerca de un sistema Explorar muacuteltiples soluciones econoacutemicas Manejar sistemas complejos [RUM99]

El modelado es una probada y bien aceptada teacutecnica de Ingenieriacutea de Software [RUM99] El modelado es parte central de todas las actividades que conducen a la produccioacuten de buen software Se construyen modelos para comunicar la estructura deseada y revisar el comportamiento de nuestro sistema Se construyen modelos para visualizar y controlar la arquitectura del sistema Se construyen modelos para comprender mejor el sistema que estamos construyendo muchas veces descubriendo oportunidades para la simplificacioacuten y la reutilizacioacuten Se construyen modelos para controlar el riesgo [BOO99] La razoacuten fundamental por la que modelamos es porque nosotros construimos modelos que nos ayudan a entender mejor el sistema que estamos desarrollando [RUM99]

El modelado nos permite [RUM99] 1 Visualizar como es el sistema o como queremos que sea 2 Especificar la estructura del sistema 3 Plantear nuestras guiacuteas en la construccioacuten delsistema 4 Documentar las decisiones que hemos tomado

En las etapas del desarrollo del software el modelado es usado en el disentildeo el disentildeo del sistema es la primera etapa en donde se da la aproximacioacuten baacutesica de la solucioacuten al problema seleccionado ademaacutes se decide por la estructura (arquitectura del sistema) y el estilo de la solucioacuten

La arquitectura del sistema provee el contexto sobre el cual se tomaraacuten decisiones mas detalladas en las etapas subsecuentes del disentildeo [BLA98] En el disentildeo modelamos el sistema y encontramos su forma (incluida la arquitehra) para que soporte todos los 3 -

10

Marco teorico

i

4 -I

requisitos -incluyendo los requisitos no funcionales y otras restricciones- que se le suponen [JAC99] Los propoacutesitos del disentildeo son

Adquirir una comprensioacuten en profundidad de los aspectos relacionados con 10s requisitos no funcionales y restricciones relacionadas con los lenguajes de programacioacuten componentes reutilizables sistemas operativos tecnologiacuteas de distribucioacuten y concurrencia tecnologiacuteas de interfaz de usuario tecnologiacuteas de gestioacuten de transacciones etc Crear una entrada apropiada y un punto de partida para actividades de implementacioacuten subsiguientes capturando los requisitos o subsistemas individuales interfaces y clases Ser capaces de descomponer los trabajos de implementacioacuten en partes mas manejables que puedan ser llevadas a cabo por diferentes equipos de desarrollo teniendo en cuenta la posible concurrencia Capturar las interfaces entre los subsistemas Esto ayuda cuando reflexionamos sobre la arquitectura y cuando utilizamos interfaces como elementos de sincronizacioacuten entre diferentes equipos de desarrollo Ser capaces de visualizar y reflexionar sobre el disentildeo utilizando una notacioacuten comuacuten Crear una abstraccioacuten independiente de la implementacioacuten del sistema en el sentido de que la implementacioacuten es un refinamiento directo del disentildeo que rellena lo existente sin cambiar la estructura Esto permite la utilizacioacuten de tecnologiacuteas como la generacioacuten de coacutedigo y la ingenieriacutea de ida y vuelta entre el disentildeo y la implementacioacuten [JAC99]

22 Interfaz de usuario (Mecanismos de interaccioacuten)

El crecimiento de las computadoras personales vendidas en los ~ O rsquo S lanzoacute con fuerza el ldquofaacutecil de usarrdquo como una de las caracteriacutesticas mas importante de un producto de computadora

Las interfaces graacuteficas de usuario no son nuevas se pueden encontrar en las paredes de cuevas al sur de Francia en las piraacutemides de Egipto y en las paredes de muchas ciudades [iUM92] Para el usuario de un sistema interactivo la comunicacioacuten es tan importante como la computacioacuten Para los usuarios regularmente la interfaz es el sistema [HIX93]

Disentildeo de Interfaz Seguacuten Hackos [HAC98] las interfaces estaacuten en todo donde se trabaja con

o Controles en productos de hardware o Etiquetas y sentildeales en el hardware o Pequentildeas pantallas de cristal liquido en maacutequinas de cualquier tipo o Pantallas para aplicaciones de software para terminales de computadoras centrales

Marco teoacuterico

o pantallas para aplicaciones de software en computadoras Personales sistemas operativos como Windows OS2 DOS Macintosh U n b Y Otros

0 Paacuteginas de un sitio WEB 0 Sistemas de ayuda y manuales en-liacutenea 0 Tutoriales incrustados y otros tipos de soporte de funcionamiento O Esquemas de formas y otros documentos

una interfaz es el medio con el cual los usuarios interactuacutean con el producto 0

sistema para lograr SUS objetivos

Interfaz Usable

Para que una interfaz sea usable debe ser transparente y darles a los usuarios la capacidad de lograr cumplir sus metas de forma efectiva y eficiente

Los beneficios presentados en el uso de las interfaces de usuario [TH190] Disfrutar el sistema El usuario disfruta trabajar con un sistema que cuenta con una interfaz bien disentildeada y que le da la funcionalidad y acceso a los recursos de una manera clara y sencilla Proporciona nuevas habilidades Elimina al usuario concentrarse en acciones que la propia interfaz y el sistema hacen dando como resultado que el usuario solo se concentre en lo importante del trabajo Delegacioacuten de tareas La interfaz de usuario permite al usuario no conocer los detalles de la tarea esto es la computadora atiende los detalles de las tareas mientras que el usuario se concentra en asuntos de maacutes alto nivel Seguridad El usuario no necesita estar en lugarespeligrosos para hacer su trabajo

Se da la mayor posibilidad para que el usuario tenga acceso al conocimiento utilizando un sistema interactivo Haciendo las cosas a la primera Las tareas se ejecutan en un orden correcto definido lo que da como resultado un trabajo bien terminado sin necesidad de repetir evitando asiacute altos costos Computando LOS usuarios pueden calcular datos sin necesidad de conocer el proceso para obtener los resultados

Desarrollo

El disentildeo de interfaz es un negocio bastante dificil Eacuteste combina dos complicadas disciplinas psicologiacutea y ciencias de la computacioacuten Estas disciplinas tienen un fondo cultural muy diferente la psicologiacutea atiende a la gente (comprensioacuten y entendimiento) las ciencias computacionales a las maacutequinas (matemaacuteticas y precisioacuten) El disentildeo de las buenas interfaces requiere que estas dos perspectivas esteacuten unidas [THi90]

Hackos dice que las interfaces dan simplicidad y elegancia al trabajo necesario y a la vida e los usuarios Si no es obvio al usuario pero es raacutepida para aprender [HAC98] ademaacutes define caracteriacutesticas comunes de las interfaces usables

o Hacen que el flujo de trabajo sea familiar o confortable o Soportan el estilo de aprendizaje de los usuarios

12

Marco teoacuterico

Visualizacioacuten de Entrenamiento visual Para controlar Soportar interaccioncs Programar con informacioacuten visual visuales expresiones visuales

o Compatibles con los ambientes de trabajo de los usuarios o Se extienden sobre un concepto de disentildeo que es familiar al usuario o Tienen consistencia de presentacioacuten que los hace parecer maacutes confiable y faacuteciles de

aprender o Usan lenguaje y figuras familiares al usuario o faacuteciles de aprender

Datos o informacioacuten acerca de datos

23 Lenguajes Visuales

Los lenguajes visuales son un nuevo paradigma para expresar los sistemas computacionales Ellos ofrecen la posibilidad de manipular directamente los objetos Un lenguaje visual consiste de sentencias visuales Para lenguajes visuales basados en iacuteconos cada sentencia visual es un arreglo espacial de objetos O iacuteconos graacuteficos [CHA90]

Un lenguaje visual es concebido como una coleccioacuten de figuras obtenidas por un arreglo graacutefico de objetos en dos o maacutes dimensiones Los lenguajes visuales pueden ser modelados sintaacutecticamente a traveacutes de un vocabulario un conjunto de relaciones usadas para componer las figuras y un conjunto de reglas describiendo las figuras pertenecientes al lenguaje Los objetos graacuteficos de un vocabulario de un lenguaje visual se caracterizan por contar con un conjunto de atributos Los atributos de un objeto graacutefico pueden ser atributos graacuteficos atributos sintaacutecticos y atributos semaacutenticos [MAR98]

Un lenguaje de programacioacuten visual puede ser informalmente definido como un lenguaje el cual usa algunas representaciones visuales [SHV88]

Programa ylo Disentildeo de Lenguajes de programacioacuten visual ejecucioacuten software Diagramas iconos Formas

Programacioacuten Visual [SHU88]

Gramaacuteticas para la especificacioacuten de lenguajes visuales [MAR98]

a) Gramaacuteticas texfuales generalizadas Este tipo de gramaacutetica provee una adaptacioacuten apropiada de la concatenacioacuten de siacutembolos para dos dimensiones Su principal ventaja es que conservan los elementos teoacutericos de las gramaacuteticas textuales y los eficientes algoritmos de anaacutelisis de eacutestos uacuteltimos Su principal desventaja es que eacutestas gramaacuteticas no son tan poderosas y soacutelo pueden especificar clases restringidas de lenguajes visuales

13

Marco teorico

b) Meacutetodos basados en gramaacuteticas de grafos Un ejemplo de este tiPo de gramaacuteticas son las gramaacuteticas de red Las oraciones generadas con gramaacuteticas de red son grafos dirigidos con siacutembolos en los nodos Estos grafos son llamados redes Una produccioacuten de eacuteste tipo de gramaacuteticas es de la siguiente forma

a - t p E

donde a y p son redes y E es una forma de conectar a p cuando a es conectada a otra red anfitriona

La mayor desventaja es que las gramaacuteticas de red no han probado ser totalmente uacutetiles para la especificacioacuten de gramaacuteticas arbitrarias por la complejidad para rescribir grafos y al hecho de que no todo lenguaje visual estaacute compuesto exclusivamente por grafos

C) Gramaacuteticas de multiconjuntos de atributos En estas gramaacuteticas las producciones rescriben conjuntos o multiconjuntos de siacutembolos que tienen atributos con informacioacuten sobre geometriacutea o semaacutentica La reescritura se controla con restricciones sobre los atributos de los siacutembolos en el lado derecho de las producciones

Un ejemplo de eacutestas gramaacuteticas es la Gramaacutetica Coordinada que especifica notacioacuten matemaacutetica de dos dimensiones En esencia las producciones en una gramaacutetica coordinada n-coordinada libre del contexto tienen la siguiente forma

A -t a donde C F

Todos los siacutembolos de eacuteste tipo de gramaacutetica tienen n atributos geomeacutetricos A es un siacutembolo no terminal a es una cadena no vaciacutea de siacutembolos C es una restriccioacuten sobre los atributos de los siacutembolos en a y F es una expresioacuten que computa los atributos de los siacutembolos de A en teacuterminos de los atributos de los siacutembolos en a no importando el orden de los siacutembolos en a

d) Gramaacuteticas PosicionaZes Las gramaacuteticas posicionales son un formalismo para la definicioacuten e implementacioacuten de lenguajes visuales las gramaacuteticas posicionales extienden naturalmente a las gramaacuteticas libres de contexto Una gramaacutetica libre de contexto posicional PG es una six-tupla (N T S P POS PE) donde

N es un conjunto finito no vaciacuteo de siacutembolos no terminales T es un conjunto finito no vaciacuteo e siacutembolos terminales con N n T = $I S E N es el siacutembolo no terminal de inicio P es un conjunto finito de producciones POS es un conjunto finito de identificadores de relacioacuten binaria PE es un evaluador pictoacuterico

14

Marco teorico

Cada produccioacuten en P tiene la siguiente forma

A -+ X I R I X R2 X ~ I Rm1 xm A

e) Gramaacuteticas de Relacioacuten de siacutembolos Eacuteste es un formalismo sintaacutectico para describir un lenguaje visual donde cada oracioacuten dentro del lenguaje se representa como un conjunto de objetos visuales y un conjunto de relaciones entre objetos

El alfabeto de siacutembolos Vt y el conjunto de relaciones entre siacutembolos Vr una oracioacuten de relacioacuten de siacutembolos w sobre Vt y Vr es un par ( M R) donde

M es un conjunto de elementos-s (v i) con v E Vt y i es un nuacutemero natural R es un conjunto de elementos-r de la forma r (Xi Yj) con Xi Yj E M r E Vr y una relacioacuten r esta contenida entre Xi y Yj

Una gramaacutetica de relacioacuten de simbolos es el conjunto de seis elementos G = (Vn Vt Vr S P R) donde Vn es un conjunto de siacutembolos no terminales Vt es un conjunto de siacutembolos terminales Vr es un conjunto de relaciones entre siacutembolos S es el siacutembolo inicial y P es un conjunto de reglas de reescritura (producciones de elementos-s)

f) Gramaacuteticas relacionales Este tipo de gramaacutetica pertenecen a las gramaacuteticas libres de contexto

La gramaacutetica relaciona1 (RGrsquos) es una 6-tupla G (N C S R Attr P) donde

N C S R Attr P

es un conjunto finito de siacutembolos no terminales es un conjunto de siacutembolos terminales es un siacutembolo distinguido en N llamado siacutembolo inicial es un conjunto finito de siacutembolos de relacioacuten es un conjunto finito de siacutembolos de atributos es un conjunto de producciones de la forma A-gt apF donde A E N a E (nlo)+ Donde n E N cr E E

8 Es un conjunto de relaciones de la forma (r x y) donde r E R y xy son enteros que hacen referencia a un miembro de a y tambieacuten una expresioacuten de la forma (a i) donde a E Attr e i es un entero que hace referencia a un miembrode a

F Es un conjunto de declaraciones de asignacioacuten de caracteriacutesticas de la forma (a O)=x donde a E Attr y x es un entero que hace referencia a un miembro de a o a una expresioacuten de la forma (a i)

15

Marco teoacuterico

24 Programacioacuten orientada a objetos

L~~ meacutetodos orientados a objetos organizan la informacioacuten Y el procesamiento que manipula esta informacioacuten de acuerdo a los objetos delrsquomundo real que la informacioacuten describe [BRO97l

Beneficios de las teacutecnicas orientadas a objetos [BR097] Estabilidad del sistema Mantenibilidad Componentes reusables Confiabilidad Accesibilidad de los datos Participacioacuten del usuario

Seguacuten Graddy Booch la programacioacuten orientada a objetos es ldquoun meacutetodo de implementacioacuten en el que los programas se organizan como colecciones cooperativas de objetos cada uno de los cuales representan una instancia de alguna clase y cuyas clases son todas miembros de una jerarquiacutea de clases unidas mediante relaciones de herenciardquo [JOY 981

Programacioacuten orientada a objetos esencialmente significa programacioacuten usando objetos [JAC93] Los lenguajes orientados a objetos deben soportar los siguientes conceptos

Objetos Abstraccioacuten de datos Encapsulamiento Clases e Instancias Herencia entre clases Polimorfismo

Las propiedades fundamentales de la Programacioacuten Orientada a Objetos son

a Abstraccioacuten Son ideas conceptos y propiedades que se describen en forma general eliminando los detalles Es una estructura de datos y los meacutetodos que manipulan a esos datos

b Encapsulamiento Son las fronteras propias de un objeto bien definidas las cuales protegen los detalles de su representacioacuten interna

c Ocultacioacuten de la informacioacuten Es la propiedad en la que los objetos pueden hacer uso para impedir que otros objetos los usuarios o incluso los programadores conozcan coacutemo estaacute distribuida la informacioacuten

d Herencia Es la propiedad que tiene una clase para heredar atributos y comportamiento a otras clases

e Polirnorfismo Es la propiedad que permite que una entidad pueda cambiar a diferentes formas efectuaacutendose de manera dinaacutemica en tiempo de ejecucioacuten

16

Marco teoacuterico

t

Clases Es la especificacioacuten de una familia de objetos es la declaracioacuten de un tipo de objetos Tambieacuten se dice que una clase es la descripcioacuten de un conjunto de objetos con un comportamiento similar y que esta compuesta de Datos (o atributos) y Meacutetodos o (rutinas acciones operaciones)

Objeto Un objeto es una entidad en la cual se almacenan datos y los meacutetodos o funciones que controlan dichos datos Un objeto es una abstraccioacuten de alguna cosa del mundo real que contiene datos que lo describen y operaciones que solo tienen acceso a esos datos [BR097l Los elementos de los que esta conformado un objeto son

a Las relaciones permiten que el objeto se integre en la organizacioacuten b Las propiedades son los datos que caracterizan el estado de un objeto distinguiendo

asiacute a un objeto determinado de los restantes que forman parte de la misma organizacioacuten

c Los meacutetodos son las operaciones que pueden realizarse sobre la estructura del objeto es decir las acciones que cambian el estado de un objeto y que el objeto es capaz de ejecutar a traveacutes de mensajes y que tambieacuten pone a disposicioacuten de sus descendientes a traveacutes de la herencia

Mensajes Son solicitudes para que se lleve a cabo la operacioacuten indicada y se produzca un resultado

Las razones principales para introducir la tecnologiacutea de objetos son los beneficios de dicha tecnologiacutea

Aumento de la fiabilidad Aumento de la productividad del desarrollador Desarrollo maacutes raacutepido Mejor calidad maacutes alta

Incremento en escalabilidad Mejores estructuras de informacioacuten Incremento de adaptabilidad Reduccioacuten del coacutedigo fuente

Mantenimiento maacutes faacutecil y reduccioacuten de costo

Los elementos de reutilizacioacuten son las clases y objetos

25 Lenguaje de Modelado Unificado (UML)

UML (Unified Modeling Language por sus siglas en ingleacutes Lenguaje de Modelado Unificado) es un lenguaje de modelado visual de propoacutesito general que es utilizado para especificar visualizar construir y documentar las partes de un sistema de software El lenguaje estaacute basado en un pequentildeo nuacutemero de conceptos centrales que la mayoriacutea de los desarrolladores de tecnologiacutea orientada a objetos pueden aprender y aplicar faacutecilmente [RUM99]

17

Marco teoacuterico

y UML Pasado Presente y Futuro

L~~ lenguajes de modelado orientado a objetos aparecieron a mediados de 10s 70rsquos Varias teacutecnicas influenciaron estos lenguajes El nuacutemero de lenguajes de modelado incrementoacute desde menos de 10 hasta maacutes de 50 entre 1989 y 1994 Muchos modeladores teniacutean problemas para encontrar un lenguaje de modelado que satisficiera todas sus necesidades Notablemente aparecioacute Boochrsquo93 y la evolucioacuten continuoacute a OMT y Fusioacuten

OOSE (Object-Oriented Software Engineering) estaacute enfocado a la ingenieriacutea de negocios y anaacutelisis de requerimientos dando un excelente soporte orientado a casos de uso OMT-2 es especialmente expresivo para anaacutelisis y sistemas de informacioacuten de datos grandes Boochrsquo93 fue particularmente expresivo para el disentildeo y fases de construccioacuten de proyectos y popular para aplicaciones de ingenieriacutea intensiva

Grady Booch y Jim Rumbaugh iniciaron el desarrollo de UML en 1994 al unificar sus meacutetodos independientes Booch y OMT En 1995 Ivar Jacobson se unioacute a Racional eacutesta unioacuten logroacute que el meacutetodo OOSE se incorporara La unificacioacuten establecioacute que debiacutean activar el modelado de sistemas utilizando conceptos orientados a objeto asiacute como crear un lenguaje usable tanto para las maacutequinas como para los humanos

A

Muchas organizaciones se unieron al consorcio UML y dedicaron recursos al trabajo hacia el fortalecimiento de la definicioacuten de UML Esta colaboracioacuten produjo un lenguaje de modelado expresivo poderoso y generalmente aplicable En la forma actual de UML se espera que sea base de muchas herramientas incluidas las de modelado visual simulacioacuten y ambientes de desarrollo

R UML es abierto y no-propietario y aunque define un lenguaje preciso no es barrera para futuras mejoras en conceptos de modelado Se usan muchas teacutecnicas de punta pero se esperan teacutecnicas adicionales que influencien futuras versiones de UML puede ser extendido sin redefinir el nuacutecleo

c

Mientras el rehuacuteso basado en componentes se ha favorecido ampliamente cada vez mas esto no significa que las teacutecnicas basadas en componentes reemplazaraacuten las teacutecnicas orientadas a objetos Hay solo sutiles diferencias entre la semaacutentica de componentes y clases [ALC03]

Un opaco rendimiento caracterizoacute el mercado de anaacutelisis modelado y disentildeo en el 2000 en su transicioacuten de las viejas herramientas CASE (Computer Aided Software Engineering) a algo maacutes dinaacutemico y mejor adaptado para satisfacer las necesidades de los desarrolladores para el cambio raacutepido en los ambientes de negocio

El mercado de anaacutelisis modelado y disentildeo lograraacute obtener un crecimiento positivo en varios de los siguientes antildeos por varias razones El mercado seraacute manejado principalmente por la necesidad de desarrolladores a obtener aplicaciones para lanzarse al mercado raacutepidamente asiacute tambieacuten por el intereacutes creciente y uso de una nueva especie de herramienta y por el intereacutes creciente de los desarrolladores en usar UML reglas de negocios y adaptadores de componentes para construir aplicaciones [RIKUI]

z -

18

Marco teoacuterico

UML se ha hecho el estaacutendar para los desarrollos de modelado de negocios administracioacuten de requerimientos anaacutelisis y disentildeo programacioacuten y pruebas Los objetivos primarios de UML en el disentildeo [RAT97j

o Dar a los usuarios un lenguaje visual expresivo de modelado listo para usarse para que puedan desarrollar y cambiar los significados de sus modelos

o Suministrar mecanismos de extensibilidad y especializacioacuten para extender los conceptos centrales

o Ser independiente de lenguajes de programacioacuten particulares y procesos de desarrollo

o Impulsar el desarrollo de las herramientas Orientadas a Objeto en el mercado o Soportar conceptos de desarrollo de alto nivel como colaboracioacuten marcos de

componentes reutilizables patrones y componentes o Integrar las mejores praacutecticas

9 El aacutembito de UML

UML es un lenguaje para especificacioacuten construccioacuten visualizacioacuten y documentacioacuten de artefactos de un sistema de software UML es la fusioacuten de los conceptos de Booch OMT y OOSE El resultado es un simple comuacuten y ampliamente usado lenguaje de modelado para usuarios de estos y otros meacutetodos UML se enfoca en un lenguaje de modelado estaacutendar no en un proceso estaacutendar los autores de UML recomiendan un proceso de desarrollo manejado por casos de uso de arquitectura central iterativo e incremental [iiquest4T97l

Para la definicioacuten de sistemas de software en UML se definen diagramas Un diagrama es la representacioacuten graacutefica de un conjunto de elementos este se visualiza la mayoriacutea de las veces como un grafo conexo de nodos (elementos) y arcos (relaciones) Los diagramas se dibujan para visualizar un sistema desde diferentes perspectivas de forma que un diagrama es la proyeccioacuten de un sistema uumlML incluye nueve diagramas [B0099]

4 -

I Diagrama de clases 2 Diagrama de objetos 3 Diagrama de casos de uso 4 Diagrama de secuencias 5 Diagrama de colaboracioacuten 6 Diagrama de estados 7 Diagrama de actividades 8 Diagrama de componentes 9 Diagrama de despliegue

Diagramas de secuencias Un diagrama de secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten comportamiento

Un diagrama de secuencias muestra un conjunto de mensajes acomodados en una secuencia de tiempo eacuteste diagrama muestra la interaccioacuten en un esquema de dos - dimensiones [RUM99]

19

Marco teoacuterico

Y -

Un diagrama de secuencia es un diagrama de interaccioacuten que resalta la ordenacioacuten temporal de los mensajes Un diagrama de secuencia presenta un conjunto de objetos y los mensajes enviados y recibidos por ellos Los objetos suelen ser instancias (con nombre o sin nombres) de clases pero tambieacuten pueden representar instancias de otros elementos tales como colaboraciones componentes y nodos Los diagramas de secuencia se utilizan para describir la vista dinaacutemica de un sistema [B0099]

Usar los diagramas de secuencia es mostrar la secuencia que existe en un caso de uso [RUM 991

Los diagramas de secuencia tienen dos dimensiones Una dimensioacuten que representa el tiempo Otra dimensioacuten que representa los diferentes objetos que participan en la secuencia de eventos requeridos para completar el propoacutesito [MOuuml98]

El principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildea las interacciones de los objetos [DAN02]

20

Capiacutetulo 3

DesawoCCo de Ia herramienta

En este capiacutetulo se describe el desarrollo del Ambiente Visual Se describe el modelo conceptual del sistema la arquitectura asiacute como tambieacuten los elementos que componen la Arquitectura Se estudian los Diagramas de Secuencias de UML y algunos Patrones de Disentildeo de los que se hace uso para el mejor desarrollo del sistema Se describe a detalle la Gramaacutetica Visual Relaciona1 utilizada para el de Ambiente de desarrollo

I CENIOET 1FNTRO DE INFORMACION

Desarrollo de la herramienta

t i i

Actualmente existe en el cenidet un Ambiente Visual de Modelado de Clases llamado InverSOODA este Ambiente Visual tiene la capacidad de realizar la generacioacuten automaacutetica de coacutedigo de las clases en C++ a partir del modelo especificado Ademaacutes se puede realizar la Ingenieria Inversa de un coacutedigo legado para obtener el modelo de clases Aunado a este trabajo existe el Ambiente Visual denominado InverDDVi con el cual se puede realizar el Disentildeo Detallado de los Meacutetodos de las Clases con diagramas de Warnier Asiacute tambieacuten es posible obtener el modelo aplicando la Ingenieriacutea Inversa a un coacutedigo legado en C++

Ambos trabajos son retomados en este proyecto para la automatizacioacuten en la obtencioacuten de los Diagramas de Secuencias de UML La figura 31 muestra el modelo propuesto de ingenieriacutea directa

Extraer informacioacuten del diagrama de

rsquo rsquo

Diagrama de 11 clases I o

detallado de

detallado de

o meacutetodos

i ir---- Construir el

secuencias i

Modelo de Ingenieriacutea I directa automaacutetica

I

Figura 31 Modelo de Ingenieria Directa Autombtica de los Diagramas de Secuencias

Para la construccioacuten automaacutetica de un diagrama de secuencias se toma como base a un diagrama de Clases El modulo ldquoExtraer informacioacuten del diagrama de Clasesrdquo sirve para obtener el nombre y los meacutetodos descritos en cada uno de las clases que existan en el diagrama de Clases

22

Desarrollo de la herramienta

Con base en la informacioacuten que se tiene se abren los archivos correspondientes a los diagramas de Warnier El proceso que se emplea sobre cada uno los diagramas de Warnier llamado ldquoExtraer informacioacuten de los disentildeos detallados de los meacutetodosrdquo sirve para recopilar el conjunto de las llamadas de cada meacutetodo definido

En el siguiente paso (ldquoReconocer llamadas a meacutetodosrdquo) consiste en identificar si los meacutetodos que estaacuten descritos en los diagramas de Warnier tambieacuten lo estaacuten en el diagrama de Clases correspondiente

El paso ldquoConstruir los diagramas de secuencias automaacuteticamenterdquo realiza una validacioacuten de los meacutetodos definidos en los diagramas de Clases con los meacutetodos definidos en los diagramas de Warnier Este paso crea una estructura de datos con la secuencia de las llamadas y la recorre para crear los objetos y los mensajes en el diagrama de secuencias

AI terminar la creacioacuten automaacutetica del diagrama de secuencias se dispone de la r opcioacuten de guardar

31 Disentildeo de la Arquitectura

Para definir los procesos que el sistema va a realizar es necesario llevar a cabo un anaacutelisis de requisitos los cuales pueden ser expresados mediante diagramas de Casos de Uso Los Casos de Uso son una descripcioacuten textual narrativa de los procesos de un sistema

311Requisitos (Diagrama de Casos de uso)

Los casos de uso en realidad no son un artefacto de anaacutelisis orientado a objetos estos describen simplemente procesos y pueden ser igualmente efectivos en un proyecto tecnoloacutegico no orientado a objetos Son usados en un paso preliminar a la descripcioacuten de requerimientos de un sistema [LAR971 La Figura 32 muestra el diagrama de casos de uso que especifica al S3C

9

S3C (Diagramas de Secuencias)

usuario I Modelado de

I

Figura 32 Diagrama de Casos de Uso para el S3C

23

Desarrollo de la herramienta

Descripcioacuten de los Casos de Uso

Caso de Uso ldquoDiagramas de Secuenciasrdquo Se inicia cuando el actor ldquousuariordquo solicita la creacioacuten de un Diagrama de Secuencias Se establece la forma de la construccioacuten automaacutetica de los diagramas de secuencias de UML Se hace uso del Modelado de Clases y del Modelado del disentildeo detallado de los meacutetodos

Escenario de Eacutexito 1 Se obtiene la informacioacuten de las clases del modelado de clases 2 Se obtiene la informacioacuten del modelado del disentildeo detallado de los meacutetodos 3 Se realiza la construccioacuten automaacutetica de los diagramas de secuencias

1 En el modelo de clases no hay informacioacuten o estaacute incompleta 2 En el modelo del disentildeo detallado de los meacutetodos no hay informacioacuten o estaacute

incompleta

Escenario de Falla

Caso de Uso ldquoModelado de Clasesrdquo El diagrama de Clases se utiliza para obtener los nombres de clases y los nombres de los meacutetodos de cada clase

Escenario de Eacutexito 1 Se abre el modelo 2 Se procesa para obtener la informacioacuten de las clases (nombres de clases y nombres

de meacutetodos)

Escenano de Falla h 1 No se puede abrir el modelo J 2 El modelo esta vaciacuteo

Caso de Uso ldquoModelado del Disentildeo detallado 1 los meacutetodosrdquo El disentildeo detallado de los meacutetodos se realiza con diagramas de Warnier aquiacute se establecen las llamadas a funciones dentro del sistema y es aquiacute donde se identifica el dinamismo que se representaraacute en los diagramas de secuencias

Escenario de Eacutexito 1 Se abre el modelo 2 Se realiza la identificacioacuten de las llamadas existentes

Escenario de Falla 1 No se puede abrir el modelo 2 El modelo esta vaciacuteo

24

Desarrollo de la herramienta

Clase Objeto ni I Diagrama I n ____ Nombre Descripcioacuten

i

Mensaje

Tipo

En el Anaacutelisis Orientado a Objetos se crea una especificacioacuteii del dominio del problema y de los requeriinientos desde la perspectiva de una clasificacioacuten por objetos y del entendimiento de los teacuterminos usados en el dominio del problema Una descomposicioacuten del dominio del problema involucra una identificacioacuten de conceptos atributos y asociaciones que son considerados importantes dentro del dominio El resultado puede ser expresado en un Modelo Corzcepttraf el cual es ilustrado en un conjunto de diagramas que definen conceptos (objetos) [LAR97]

312Modelo Conceptual

El modelo conceptual visto en la Figura 33 no es una descripcioacuten de componentes de software representa conceptos en el domino del problema en el mundo Teal [LAR97l

313Diagramas de clases

Por cuestiones dc espacio las clases de la arquitectura del sistema estaraacuten referidas en varios diagramas que de alguna manera estaacuten relacionados entre si

Una de las partes maacutes importantes del Ambiente Visual S3C es la estructura de clases ltCCraJicogt la cual se refiere al control de los diagramas eacutesta por su naturaleza podriacutea considerarse el nuacutecleo del sistema La manipulacioacuten y control de los diagramas estaacute definido en una estructura de clases organizada con el patroacuten de disentildeo Composite que se muestra en la Figura 34

25

Desarrollo de la herramienta

CRecursividadDS CMensajeDS CObjetoDS CDiagramaDS

I Cvisitor I

CApuntadorDS CDblClickDS CAsocAdjusterDS CSelectorDS

26

Desarrollo de la herramienta

n 32 Elementos de la arquitectura

Es necesario describir los elementos que dan soporte a la arquitectura del ambiente donde se implementaraacute el sistema en este caso Microsoft Visual (MV) C++ 6 El MV C++ es un marco de aplicacioacuten poderoso basado en Windows se integran ademaacutes del lenguaje C++ (compilador y enlazador) el programa de desarrollo de programas en lenguaje C para Windows (SDK) la Microsoft Foundation Class Library AppWizzard Classwizard AppStudio y WorkBencli

La Microsoft Foundation Class Library comprende una biblioteca de clases de C++ y es considerada como el nuacutecleo del MV C++

321Microsoft Foundation Class (MFC)

La libreriacutea Microsoft Foundation Class (MFC) es una interfaz orientada a objetos que tiene las siguientes metas de disentildeo

o

Reduccioacuten significante de esfuerzo al escribir una aplicacioacuten para Windows Velocidad de ejecucioacuten comparable a las APIrsquos del lenguaje C Miacutenimo tamantildeo de coacutedigo Capacidad para llamar cualquier funcioacuten de Windows en C directamente Faacutecil conversioacuten de aplicaciones existentes en C a C++ Faacutecil uso de APIrsquos de Windows con C++ como con C Faacutecil uso de complicadas caracteriacutesticas de abstracciones poderosas como ActiveX soporte para base de datos impresioacuten barras de herramientas y barras de estado El API de Windows en C++ si usa tan efectivamente como las caracteriacutesticas mismas del lenguaje C++

La mayoriacutea de las clases de la Libreriacutea de la Microsoft Foundation Class son derivadas de una clase base ltCObjectgt que es la raiacutez de la jerarquiacutea de clases ltCObjectgt da uacutetiles capacidades a las clases que derivan de ella

La jerarquiacutea que existe en las clases derivadas de ltCObjectgt es la siguiente

Arquitectura de Aplicacioacuten Excepciones Servicios de Archivos Arreglos Listas Mapas Servicios de Internet Sockets Sincronizacioacuten Soporte para base de datos D A 0

27

Desarrollo de la herramienta

i

r

Liacutenea de Comandos Menuacute Dibujo Graacutefico Dibujo Graacutefico de Objetos Soporte de Control Soporte de Ventanas

Soporte para base de datos ODBC

o Marco de Ventanas o Barras de control o Hojas de propiedades o Cajas de Dialogo o Vistas o Controles

322Arquitectura Documento Vista

Por defecto las aplicaciones creadas con la MFC usan un modelo de aplicacioacuten que separa los datos del programa de las vistas de interaccioacuten con el usuario En eacuteste modelo un objeto documento de MFC lee y escribe datos en un almacenamiento persistente Un objeto vista administra el despliegue de datos suministrando al usuario los datos para ser seleccionados o editados La vista le comunica al documento cualquier cambio en los datos La razoacuten maacutes conveniente para seguir este modelo es cuando se necesita muacuteltiples vistas del mismo documento (como en una hoja de caacutelculo y un graacutefico)

La arquitectura documentovista hace faacutecil el soporte de muacuteltiples vistas y muacuteltiples tipos de documentos asiacute como la divisioacuten de ventanas y otras caracteriacutesticas de interfaz de usuario Pero el corazoacuten de la arquitectura son cuatro clases (Mostradas en el aacuterbol de clases de la Figura 36)

ltCDocumerrtgt (o ltCOleDocuinentgt) - Se instancia un objeto de este tipo para almacenar y controlar los datos del programa ltCViewgt (o una de sus clases derivadas ltCScrotlViewgt ltCFormViewgt ltCEditView ltCRecordViewgt ltCDaoRecordView ltCtreeViewgt ltCListViewgt b ltCrichEditViewgt) - Un objeto es usado para desplegar los datos y administrar la interaccioacuten del usuario con los datos ltCFrameWndgt (o una de sus variantes) - Establece el marco sobre el que trabajaraacuten una o mas vistas de un documento ltCDocTemolategt (o ltCSingIeDocTemplategt o ltCMultiDocTemplategt) - Coordina la existencia de uno o maacutes documentos de un tipo dado y administra la correcta creacioacuten de los documentos vistas y objetos ventanas para cada tipo

i

28

Desarrollo de la herramienta

______________ 2 Wiew

I - - __ - ------a ________________

323Integrando Ambientes en Visual C t t

Las aplicaciones de Interfaz de Documento Uacutenico (SDI) soporta muacuteltiples tipos de documentos pero este soporte es para un solo objeto documento Debido a esta restriccioacuten y aunado a la necesidad de tener varios objetos documentos a la vez se determina la utilizacioacuten del modelo Interfaz de Muacuteltiples Documentos (MDI) indicado en la Figura 37

324Interfaz de Muacuteltiples Documentos (MDI)

Una aplicacioacuten de Interfaz de Muacuteltiples Documento (MDI) permite la creacioacuten de plantillas para el manejo de los documentos eacutesta plantilla tiene la forma

rn-pDocTemplate = new CMultiDocTernplate ( I DR-SCUMLTY PE RUNTIME-CLASS (CSCUMLDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CTheView))

AddDocTernplate ( rn-pDocTemplate )

Cada plantilla describe una relacion del tipo de documento con la vista asociada La definicioacuten de la plantilla para el ambiente que controla los diagramas de secuencias es la siguiente

29

Desarrollo de la herramienta c

m-pTernplateSeqDlag = new CMultiDocTernplate ( IDR-DS-SJCTYPE RUNTIME-CLASS (CSeqDiagDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CSeqDiagView) )

AddDocTernplate( rn-pTernplateSeqDiag )

Esta plantilla hace uso de la clase CCliildFrame que por defecto el ambiente Visual C++ construye y esto es debido a que no se requieren caracteriacutesticas extras en las ventanas de las que proporciona dicha clasc En un caso en el que se requiriera un comportamiento diferente de la vista tendriacutea que crearse una nueva clase con las caracteriacutesticas deseadas

Vista Documento

Vista

I- Vista Documento I [ Tip- F Vista

L Figura 37 Modelo Interfaz de Muacuteltiples Documentos (MDI)

Para integrar otro Ambiente que utilice otro tipo de documento es necesario definir otra plantilla de la misma forma mencionada Debe tomarse en cuenta los siguientes puntos

Es necesario definir el nombre (mqTemplateNOMBRE) El IDR del tipo que se requiere que sea el documento En la primera liacutenea RUNTIME CLASS debe indicar la clase ltCDocumentgt que desea La segunda liacutenea RUNTIME-CLASS soacutelo la cambia a otra clase si requiere de otro manipulador de ventanas de lo contrario deje que ltCChildFramegt se haga cargo

-

30

Desarrollo de la herramienta

En la uacuteltima liacutenea referente a RUNTIME-CLASS se debe indicar la clase ltCViewgt que desea usar Para finalizar se usa la instruccioacuten AddDocTernplate para finalizar la definicioacuten del template (mgTemplateNOMBRE)

325 Recursos Diaacutelogos Mertuacutes y Barras de Herrattriertias

Son varios los recursos con los que se puede contar al crear un proyecto en Microsoft Visual C++ Los diaacutelogos son un recurso disponible que son utilizados para visualizar ingresar yo modificar informacioacuten que se requiera En el Ambiente Visual que se desarrolla son varios los diaacutelogos que se utilizaraacuten y eacutestos se describen a continuacioacuten

El Diaacutelogo ldquoCaracteriacutesticas del Obietordquo (Figura 38) identifica el nombre del Objeto y la descripcioacuten del mismo Este diaacutelogo se muestra cuando se presiona doble clic sobre un objeto del diagrama

I Nombre

Desciipcion

Figura 38 Dialogo Caracteriacutesticas del Objeto

El Diaacutelogo ldquoMensaierdquo (Figura 39) muestra el nombre del mensaje que puede ser modificado ademaacutes se visualizan el Identificador del Mensaje el tipo de Mensaje asiacute tambieacuten el origen y destino del mensaje

31

Desarrollo de la herramienta

Nornbie delMensaje Edit

IDentificador del Mensaje Edil Tipo de Mensaje (Edil

Edit Objeto Origen

Objeto Destino IEdit

i25El A Figura 39 Dialogo Mensaje

El menuacute es otro de los recursos del que se puede disponer para organizar el ambiente que se estaacute creando Para eacuteste caso en particular no se hizo modificaciones al menuacute estaacutendar (Figura 310) que Visual C++ presenta Los cambios significativos son el manejo del tipo de documento para los Diagramas de Secuencias

Archivo Editar Yer VenLana AyGda

Figura 310 Menuacute de los Diagramas de Secuencias (estaacutendar)

Otro importante recurso del que uno se puede valer en Visual C++ es la barra de herramienta personalizada la cuaacutel es construida en el Editor de Recursos Se ha construido una barra (Figura 311) con los elementos graacuteficos de los Diagramas de Secuencia de UML

Figura 311 Barra de Herramientas de los Diagramas de Secuencias

Es recomendable que al utilizar barras de herramienta personalizada se defina en el tamantildeo estaacutendar ya que puede experimentar problemas al momento de ejecutar la aplicacioacuten

Ademaacutes puede usar la propiedad TBBS-CHECKGROUP en una barra de herramientas para establecer que los botones puedan quedar presionados hasta que un botoacuten diferente sea presionado No olvide que la numeracioacuten inicia con cero ( O )

vuriableToolBurSetButtonStyle(OTBBSCHECKGROUP)

32

Desarrollo de la herramienta

Prefijo ID IDC IDD IDP IDR IDS

326 Notacioacuten estaacutendar

Los nombres descriptivos de los recursos se asocian a un valor uacutenico Para una mayor claridad eacutestos nombres mantienen un prefijo que describe el tipo de recurso asociado (vea la Tabla 31) [MIC99]

Tipo de Recurso Comandos de Menuacute Controles y recursos Cuadros de diaacutelogo Cadenas de solicitud para cuadros de mensaje Menuacute principal barras de herramienta tabla aceleradora y el icono Cadenas

IDR IDD IDC ID

200 - 299 3000 - 3999 34000 - 34999

Estos son los rangos de valores establecidos para el proyecto S3C Si se utiliza el coacutedigo fuente y se planea agregar otro proyecto verifisue que no se invadan estos nuacutemeros para evitar problemas

Para facilitar auacuten maacutes los trabajos futuros se ha definido una estructura de carpetas (ver Figura 312) para incluir en cada una las Clases correspondientes a cada tesis en desarrollo

33

Desarrollo de la herramienta

ill ~~ -

-I SCUML classes + U A N T L R + U App + 0 ClassDiagrams + 0 Common + a Java

t $2 SequenceDiagiams

+ WarnierDiagrams

iJ PackageDiagrams

12 StaterChartDiagrams

+

- f Classview I Resourceview 1 FileView ]

~ ~

Figura 312 Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)

327Estructura de datos persistencia y recuperacioacuten

Existe una gran cantidad de tipos de datos estructuras clases y meacutetodos de los que se puede hacer uso para una mejor y maacutes faacutecil obtencioacuten de los resultados A continuacioacuten hago comentarios en tipos de datos y meacutetodos en los que podriacutea tener problemas

CTypedPtrList

AI usar este tipo de dato o alguno relacionado que le permita utilizar el meacutetodo ltCTvrgtedPtrListGetNextgt tenga especial precaucioacuten al usarlo ya que al devolver el valor requerido la variable POSITION usada no se queda apuntando a ese valor en particular salta al inmediato siguiente de la lista

Si se realiza una creacioacuten dinaacutemica con punteros para los elementos de una CTypedPtrList Despueacutes de haberlo agregado a la lista evite el delete para borrar esta Usted deseando liberar la memoria no lo haga ya que eliminara directamente el elemento de la lista

POSITION

Es un valor usado para denotar una posicioacuten de un elemento en una coleccioacuten Pero CUIDADO no se refiere a un iacutendice es una referencia (no consecutiva) de punteros muy diferente a un iacutendice

CString

Auacuten cuando el operador de comparacioacuten == (igual a) es permitido para ser utilizado en las cadenas evite su uso ya que en ocasiones aunque cuando la e

34

Desarrollo de la herramienta

compilacioacuten no indique error alguno en la ejecucioacuten no realizaraacute lo que se necesita Recomiendo que utilice CStringCompare ()

Para eliminar el contenido de un CString utilice CStringEmpty() ya que asignar a la cadena un ldquonrdquo podriacutea causarle problemas

Serializacioacuten

Una forma en que se puede guardar informacioacuten y recuperarla de manera eficaz es mediante la serializacioacuten de objetos La serializacioacuten es un proceso que permite escribir un objeto en un archivo y tambieacuten leerlo

Para que la serializacioacuten se lleve a cabo son necesarios tres objetos un objeto de tipo ltCFilegt que represente el archivo un objeto de tipo ltCArchivegt que ofrece el entorno para la serializacioacuten y la clase del objeto a ser serializado debe ser heredada de ltCObjectgt y sobrescribir el meacutetodo ltSerializegt para que se encuentre de tal forma en que pueda ser serializado (vea la Figura 313)

Objeto a ser serializado 1

1 CArchive

[f --=I- ---7 Archivoexi

u Figura 313 Serializacioacuten

328Patrones de disentildeo utilizados

Se ha planteado la definicioacuten de una arquitectura de clases utilizando patrones de disentildeo debido a que algunos de ellos hacen maacutes faacutecil la extensioacuten de la funcionalidad y mantenimiento

35

Desarrollo de la herramienta

El patroacuten Composite es utilizado para crear de manera uniforme el diagrama sobre el que se trabaja (ver Figura 34) manteniendo una jerarquiacutea de clases uniforme las clases maacutes bajas en la jerarquiacutea definen primitivas de objetos graacuteficos

Se aplica el patroacuten de disentildeo Iterator para hacer recorridos en listas de objetos para realizar diversas operaciones Otro patroacuten de disentildeo del que se hace uso es el Visilor (ver Figura 35)

Para otras actividades que se realizan podriacutea pensarse en que se deberiacutean aplicar otros patrones pero se han evitado algunos (como el patroacuten de disentildeo Builder) para evitar incrementar la complejidad en la arquitectura ya que ai mantener el modelo de la MFC de documentovista la funcionalidad del patroacuten de disentildeo Builder es faacutecilmente reemplazado si se hiciera Uso de eacuteste se aumentariacutea la complejidad excesivamente (nos llevariacutea a perdemos en ocasiones en el paso de mensajes entre clases) dantildeando la facilidad de la arquitectura

33 Diagrama de secuencias

Un Diagrama de Secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten escenario Oacute comportamiento se usan para definir el curso loacutegico de accioacuten de un posible camino a seguir en la resolucioacuten de un problema Seguacuten John Daniels [DANO2] ldquoel principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildean las interacciones de los objetosrdquo

Los Diagramas de Secuencias se utilizan en el modelado de la implementacioacuten de sistemas de software ademaacutes son aplicables en el modelado de requisitos para establecer las comunicaciones existentes entre actores yo clases del sistema Con eacutestos diagramas se logran hacer descripciones de los escenarios y los comportamientos del sistema Con los Diagramas de Secuencias es posible definir protocolos de comunicacioacuten con paso de mensajes ya que dan esa flexibilidad que se requiere Ademaacutes los Diagramas de Secuencias contienen informacioacuten suficiente para que puedan ser transformados a los diagramas de colaboracioacuten [RUM Ol][BOO Oil

331Ciclo de vida del software

Considerando cualquier modelo de ciclo de vida del software (en la figura 314 se muestra el Modelo de cascada) el aacutembito directo de eacuteste Ambiente Visual es en el disentildeo aunque tiene sus vertientes en la codificacioacuten y mantenimiento

36

Desarrollo de la herramienta

Diseno

Codificacibn

I I I I Mantenimiento I

igura 314 Modelo de cascada del ciclo de vida del software

34 Elementos atoacutemicos de la Gramaacutetica

Definicioacuten de los elementos atoacutemicos del lenguaje y su contenido

1 Actor- Representa roles de entidad externos al sistema con el que interactuacutea directamente Los actores pueden ser humanos dispositivos u otros sistemas

2 ClaseObjeto- Determina una Clase u Objeto participante en la interaccioacuten

3 Mensaje-Es una comunicacioacuten entre objetos que contiene informacioacuten Eacuteste se representa con la finalidad a que una accioacuten sea llevada a cabo

4 Mensaje con tiempo- Tiene la misma finalidad que el mensaje la diferencia es que con eacutel se representa un atributo de tiempo

5 Mensaje asiacutencrono Es un mensaje que ocurre en el tiempo de manera independiente a otros mensajes

6 Mensaje de destruccioacuten de objeto- Es un mensaje cuya finalidad es indicar la destruccioacuten del objeto destino

7 Mensaje de creacioacuten de objeto- Es un mensaje que indica la creacioacuten de un objeto

8 Llamada al mismo objeto (Recursividad)- Es usado para modelar llamadas recursivas en el que una operacioacuten es invocada por el mismo objeto

37

Desarrollo de la herramienta

9 Destruccioacuten del objeto (AutodestrucciOacuten)- Puede o no modelarse es representada con una X al final de la liacutenea de vida del objeto

Elementos aulomaacuteticos

1 Liacutenea de Vida- Representa la vida del objeto durante la interaccioacuten

2 Activacioacuten- Muestra el periacuteodo de tiempo en el cual el objeto alguna operacioacuten

341RepresentaciOacuten visual

Representacioacuten visual de los elementos atoacutemicos del lenguaje

Actor

_- A

Mensaje

Mensaje de Creacioacuten de

Objeto

ClaseObjeto

I

Mensaje de retorno

Mensaje de Destruccioacuten de

Objeto

abla 32 Element(

Activacioacuten

Mensaje con tiempo

Autodestruccioacuten

x

atoacutemicos del lengi

taacute realizz

Texto ===I (letra)+ (letra I

numero) letra= AZ I az numero = 09

I

Recursividad ~

I

i j e

io

38

u

Comentario

iexcl

Conector de Comentario

35 Gramaacutetica desarrollada

La gramaacutetica que se propone es una gramaacutetica visual del tipo relacional Una gramaacutetica relacional pertenece a las gramaacuteticas libres de contexto es una 6-iupla G (N C S R Attr P) donde

N es un conjunto finito de siacutembolos no terminales C es un conjunto de siacutembolos terminales S es un siacutembolo distinguido en N llamado siacutembolo inicial R es un conjunto finito de siacutembolos de relacioacuten Attr es un conjunto finito de siacutembolos de atributos P es un conjunto de producciones

Entonces definiendo nuestra gramaacutetica G (N C S R Attr P)

N = Diagrama GrupoClaseObjeto

S = Diagrama

R = mensaje mensajeTiempo mensajeRetomo mensajeAsincrono mensajecrea mensajeDestruye autodestruccioacuten recursividad

R

Attr = entrada salida entradacrea

39

Desarrollo de la herramienta

Definiendo la posicioacuten de los atributos en los elementos visuales

entradacrea ObetaClase

entrada

salida

P =

Diagrama I GrupoClaseObjeto (mensaje (mensajeRetorno

(salida 1) (entrada 2) ) (salida 2) (entrada 1) )

- Diagrama 0 GrupoClaseObjeto

(mensaje (mensaje (mensajeRetomo (mensajeRetomo (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entradacrea 2) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 1) ) (salida 1) (entrada 1) )

entrada

salida

40

Desarrollo de la herramienta

s

-

GrupoClaseObjeto - 1 1 I 2 (mensaje (mensaje (mensajeRetorno (mensajeRetorno (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entradacrea 2) ) (salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 1) ) (salida I ) (entrada I ) )

1 En las gramaacuteticas relacionales una produccioacuten estaacute acompantildeada de las posibles

relaciones que puedan generarse En la primera produccioacuten Diagrama produce a un Actor seguida de un GrupoClaseObjeto el Actor inicia la interaccioacuten con un mensaje y recibe el mensaje de retorno al finalizar la interaccioacuten La segunda y tercera produccioacuten son similares debido a que un GrupoClaseObjeto contiene dos ClaseObjeto que se relacionan de la misma forma

Existe un elemento de la gramaacutetica llamado Attr (Atributo) el cual define la parte de los elementos visuales donde se establecen las relaciones Se han determinado dos atributos (entrada y salida) que para nuestro propoacutesito estaraacuten establecidos en la liacutenea de vida de cada elemento visual (Actor y ClaseObjeto)

Los Comentarios y la Activacioacuten no se consideran en la gramaacutetica Los comentarios son libres de incluirse y relacionarse con cualquier elemento y relacioacuten mencionada anteriormente y la activacioacuten existe siempre que se presente un mensaje (o podriacutea omitirse) Estas consideraciones se realizaron para hacer auacuten maacutes faacutecil la gramaacutetica ya que si se trata de realizar un sistema las restricciones de estos elementos pueden mantenerse en el lenguaje de programacioacuten en el que se desarrolle el sistema

36

Precondiciones

El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias

1 El diagrama de Clases debe existir y estar completo 2 Debe existir un archivo con un diagrama de Warnier por cada diagrama de Clases y

con el mismo nombre de archivo (excepto la extensioacuten del archivo) 3 En el uacutenico diagrama de Warnier de cada Clase se deben modelar todos los meacutetodos

de la Clase 4 No realizar declaraciones de meacutetodos

41

Desarrollo de la herramienta

5 Debe existir un meacutetodo lsquomain()rsquo en el diagrama de Clases

Restricciones

Los meacutetodos deben mantener nombres distintos en las diferentes Clases

Metodologiacutea para la obtencioacuten automaacutetica de los Diagramas de Secuencias

1 Seleccionar el diagrama de Clases

2 Se construye una lista con los nombres de las Clases y los Meacutetodos

3 Se verifica si exista el meacutetodo lsquomain()rsquo en alguna Clase Se busca la existencia de una uacutenica Clase

a La Clase que contenga lsquomain()rsquo se va al inicio de la lista de Clases

b Si no existe lsquomain()rsquo SE TERMINA EL PROCESO

4 Se verifica la existencia de los archivos que contienen el Disentildeo Detallado de los meacutetodos en Wamier para cada una de las Clases si alguno falta SE TERMINA EL PROCESO

5 Se procesa cada uno de los modelos del Disentildeo Detallado de los Meacutetodos generando una lista de secuencias de llamadas por cada uno de los meacutetodos

6 Se verifica que cada llamada corresponda a alguacuten meacutetodo existente (del diagrama de Clases) De no existir ese meacutetodo la llamada entra a una estructura que

7 Se crea una lista de secuencia

a Se inicia con lsquomain()rsquo b Se recorre cada una de las llamadas de los meacutetodos c Se considera invaacutelido el caso de que un meacutetodo intente una llamada

recursiva al meacutetodo lsquomain()rsquo

8 Se muestra un diaacutelogo de resultados en el que se indican las llamadas que no se encnotraron definidas y que pueden ser Llamada a libreriacutea oacute Llamada Erroacutenea

42

Capiacutetulo 4

Prue6as y su6taaacuteos

En eacuteste capiacutetulo se da a conocer el detalle de las pruebas y de los resultados obtenidos Se describen los casos de prueba con los que se realizoacute la evaluacioacuten del sistema asiacute tambieacuten se presentan comentarios acerca de los resultados obtenidos

Pruebas y Resultados

41 Recursos teacutecnicos utilizados

Para llevar a cabo las pruebas al sistema S3C se utilizaron los siguientes equipos de Coacutemputo

Computadora de escritorio

256MB RAM Disco Duro 80G Monitor 17rdquo SAMSUNG

AMD Athlon XP 1600+ I4Ghz

Computadora de escritorio Intel Pentium 4 - 128MB RAM Disco Duro 40G Monitor 15rdquo i -

42 Descripcioacuten del plan de pruebas

Las pruebas establecen el Uacuteltimo paso desde donde es posible evaluar la calidad y descubrir los errores Las pruebas y la validacioacuten del software se utilizan para comprobar que el sistema cumple con las expectativas del usuario

En esta seccioacuten se describen los casos de prueba que se realizaron al prototipo de S3C en conjunto a la suite cenidet-UML Para cada uno de los casos se presenta el objetivo el procedimiento que se siguioacute para la prueba y se muestran los resultados obtenidos - _

Las pruebas a realizar son los siguientes

Caso 1 Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Caso 2 Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Wamier

Caso3 Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Wamier

Caso4 Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo 5

44

Pruebas y Resultados

43 Resultados

431 Caso 1

5 Y

IZ =

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoSirdquo 4 Seleccionar el archivo ldquoVENTASrdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 41 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

s3c iuevo Proyecto SCUM1

Diagrama de clases

lvendedor I L

3

salida

venta prod

4 venia-oferta vcntaprod =

salida 6

Figura 41 Resultado del caso de prueba 1

45

Pruebas y Resultados

432 Caso 2

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Warnier (almacenwar cajawar vendedorwar) que ya cxisten (del caso de prueba I )

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoNordquo 4 Agregar las siguientes Clases con los respectivos meacutetodos y atributos

a Claseldquovendedorrdquo Meacutetodos ldquoventa mainrdquo b Claseldquoalmacenrdquo Meacutetodos ldquoentrada salidardquo c Claseldquocajardquo Meacutetodos ldquoventagrodrdquo

5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 42 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

Diagrama de daseo lisgrama dcsccucncis

MOIDOC Anivo

venta prod

salida

1 Ycrdquo1a 2

I 4 vcrdquolD~o1cn venta prod gt

salida 6 i Figura 42 Resultado del caso de prueba 2

46

Pruebas y Resultados

r

433 Caso 3

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Warnier

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 43 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

5

Error al tratar de abrir el archivo A bZwar

Aceptar i

Faltan Archivos de Disentildeos Detallados de Meacutetodos 1 1 A No se puede crear el diagrama de secuencias

Figura 43 Resultado del caso de prueba 3

47

Pruebas y Resultados

434 Caso 4

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 44 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

lsquo I

~ _ i i _ l _ Repaado ~~ ~ ~ 6~ ampA Figura 44 Resultado del caso de prueba 4

48

Pruebas y Resultados

PRUEBA DESCNPCION CASO 1 Mostrar la funcionalidad del

Sistema S3C a partir de un

44 Anaacutelisis de Resultados

RESULTADOS Se comproboacute la correcta funcionalidad del Sistema S3C a partir de un diagrama

CASO 3

CASO4

I diagrama de Clases cxistcnte I de Clases existente CASO 2 I Mostrar la funcionalidad del I Sc comproboacute la corrccta funcionalidad

Sistema S3C a partir de un del Sistema S3C a partir de un diagrama diagrama de Clases que se de Clases que se construye al momento construye al momento Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el Secuencias si falta alguno de los diagrama de Secuencia si falta alguno diagramas de Warnier Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el secuencias si hace falta el meacutetodo diagrama de Secuencias al faltar el ldquomain ()rdquo meacutetodo ldquomain()rdquo

de los diagramas de Warnier

Los resultados obtenidos de cada uno de los casos establecidos demuestran que se validoacute la funcionalidad del prototipo con los requisitos definidos en el alcance de este proyecto

a lt

49

Conclusiones y Tru6ajos Futuros

Aquiacute se dan a conocer las conclusiones y se describen los posibles trabajos futuros para la continuacioacuten de eacuteste proyecto

F

51 Conclusiones

Conclusiones y trabajos futuros

Se ha creado un Ambiente Visual que permite obtener de forma automaacutetica los Diagramas de Secuencias en base a los diagramas de Clases y al disentildeo detallado de los meacutetodos descritos con diagramas de Warnier cumpliendo con los objetivos planteados para este trabajo

La tesis aporta principalmente La generacioacuten automaacutetica de los diagramas de secuencias y la eliminacioacuten de inconsistencias al mantener una validacioacuten directa de los diagramas de clases y los diagramas de Warnier que son utilizados

Esta validacioacuten es lograda a traveacutes del uso de la gramaacutetica visual relaciona1 que se ha definido (veacutease el capiacutetulo 3) Esta gramaacutetica visual establece reglas para la correcta construccioacuten de los diagramas de secuencias

P De esta manera se establece que la hipoacutetesis ldquoEs posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodosrdquo Es verdadera

52 Trabajos Futuros

Un Diagrama de Secuencias puede convertirse en un Diagrama de Colaboracioacuten por lo tanto un trabajo futuro es la construccioacuten automaacutetica de un Diagrama de Colaboracioacuten a partir de uno de Secuencias existente

Es posible calcular la meacutetrica de acoplamiento al tener un Diagrama de Secuencias construido

La Ingenieriacutea directa de un Diagrama de Secuencias estableciendo la validacioacuten en la construccioacuten de todos los elementos visuales que UML define

La propagacioacuten de las modificaciones de un Diagrama de Secuencias a los Diagramas de Clases y los Diagramas de Warnier

La modificacioacuten del coacutedigo fuente mediante los cambios establecidos en un Diagrama de Secuencias

51

[ALC03]

[BLA98]

[B0099]

[BOOOi]

[BR097]

[CHA90]

[DAN02]

[GLA02]

[HAC98]

[HER03]

4

Alcate1 Computer Associates International inc Electronic Data Systems Corporation Hewlett-Packard Company IBM Corporation I-Logix IntelliCorp Kabira Technologies Kennedy Carter Microsoft Corporation Object Management Group Oracle Corporation Project Technology Ptech Inc Rational Software Corporation Reich Technologies Softeam Taskon A S Telelogic Unisys Corporation ldquoOMG Unified Modeling Language Specificationrdquo Version 15 Unified Modeling Language 2003

Blaha Michael Rumbaugh James Premerlani William Eddy Frederick Lorensen William ldquoObject-oriented modeling and designrdquo Prentice Hall 484 Paacuteginas ISBN 0-13-629841-9 QA-769-03S-B53-19981998

Booch Grady Rumbaugh James Jacobson Ivar ldquoEl lenguaje unificado de modeladordquo Addison Wesley 432 Paacuteginas ISBN 84-7829-028-1 1999

Booch Grady Rumbaugh James Jacobson Ivar ldquoThe Unified Modeling Language User Guiderdquo Addison Wesley 2001

Brown David ldquoAn introduction to object-oriented analysis objects in plain Englishrdquo John Whiley amp Sons Inc 700 Paginas ISBN 0-471-1 1028-0 QA-769-035-B76-1997 1997

Chang Shi-Kuo ldquoVisual Languages and visual programmingrdquo Plenum Press 340 Paacuteginas ISBN 0-306-43428-8 QA-7665-V57-1990 1990

Daniels John ldquoModeling with a sense of purposerdquo Design - IEEE Software JanuaryEebmary 2002

Glasgow Universidad Reino Unido ldquoA UML Editor in Javardquo (lthttplstudentsdcsglaacuWstudentspainjfproject-reportproject-re port-htmV4thYearReporthtrnlgt 2002)

T Hackos JoAnn C Redish Janice ldquoUser and Task Analysis for Interface Designrdquo Wiley Computer Publishing 488 Paacuteginas ISBN QA-769-U83- H33-1998 1998

Hemaacutendez Velaacutezquez M ldquoIngenieriacutea inversa de coacutedigo fuente en C++ para la obtencioacuten de su disentildeordquo Tesis AT-379 (03-0334) 2003

Conceptos generales

[HIX93]

[JAC93]

[JAC99]

[JOY98]

[LAR97]

[MAR]

[MIC99]

[MIC02]

[MOU98]

Hix Deborah Hartson H Rex ldquoDeveloping user interfacesrdquo 381 Paacuteginas ISBN 0-471-57813-4 QA-769-U83-H59-1993 1993

Jacobson Ivar Christerson Magnus Jonsson Patrik Overgaard Gunnar ldquoObject oriented software engineeringrdquo Addison Wesley ISBN 0-20 1 - 54435-0 QA-7676-D47-J63-1993 1993

Jacobson Ivar Booch Grady Rumbaugh James ldquoEl proceso unificado de desarrollo de softwarerdquo Addison Wesley 438 Paacuteginas ISBN 84-7829-036- 2 1999

Joyanes Aguilar Luis ldquoProgramacioacuten orientada a objetosrdquo McGruw Hill ISBN 84-481-0590-7 1998

Larman Craig ldquoAplying UML and Patternsrdquo Prentice Hull 507 Paacuteginas ISBN 0-13-748880-7 QA-769-035-L37-1997 1997

Marriot Kim Meyer Bemd ldquoVisual Language Theoryrdquo Springer 381 Paacuteginas P-935-V567-1998 1998

Microsoft ldquoMicrosoft Visual C++ 6 manual del programadorrdquo McGraw Hill ISBN 84-481-2127-9 QA-7673-Cl53-23718-1999 1999

Microsoft ldquoVisiordquo (lthttpwwwmicrosoftcomofficevisiogt 2002)

B Mourao Luis X ldquoUniversal Modeling Language Part 11 UML Notation - Case Sequence and Collaboration Diagramsrdquo Lan Times Magazine (~httpwwwlantimescomltpartsdiscussdiscuss6Ohtm~) 1998

No Magic ldquoMagicDrawrdquo (lthttpwwwmagicdrawcomgt 2002)

Object Insight ldquoJvisionrdquo (lthttpwwwobject-insightcomgt 2002)

Rational Software Microsoft I Hewlett-Packard Oracle Sterling Software MCI Systemhouse Unisys ICON Computing IntelliCorp i-Logix IBM ObjectTime Platinum Technology Ptech Taskon Reich Technologies Sofieam ldquoUML Summaryrdquo Version 11 Unified Modeling Language 1997

Rational ldquoRational Roserdquo (lthttpwwwrationalcomproductosrosegt 2002)

Rikki Kirzner ldquoAnalysis Modeling and Design Tools Market Forecast and Analysis 2001-2005rdquo Bulletin Published Under Services Application Design and Construction Tools Application Development and Deployment Strategies Documento Nuacutemero 24809 Junio 2001

53

Conceptos generales

[RIM92] Rimrner Steve ldquoGraphical user interface programmingrdquo 423 Paacuteginas

1992

Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language reference manualrdquo Addison Wesley 550 Paacuteginas ISBN 0-201-

ISBN 0-8306-2475-9 ISBN 0-8306-2472-4 (pbk) QA-769-083-R55G

[RUM99]

30998-X QA-7676-D47-R85-1999 1999

[RUM299] Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language user guiderdquo Addisoiz Wesley 482 Paacuteginas ISBN 0-201 -57 168-4 QA-7676-D47-B66-1999 1999

[SMA02] SmartDraw ldquoSmartDrawrdquo (lthttpwwwsmartdrawcomgt 2002)

[SHU88] 9 - Shu Nun C ldquoVisual Programmingrdquo Van Nostrand Reinhold ISBN 0-422- 28014-9 ISBN 0-422-01 164-4 QA-7665-S55 1988

[THI90] Thimbleby Harold ldquoUser Interface Designrdquo Acm press 470 Paacuteginas ISBN 0-201 -41 61 8-2 QA-769U83-T772~- 1990 1990

[WENO2] Wences Diaz MF ldquoModelo de Ingenieriacutea Inversa para la obtencioacuten de disentildeo detallado basado en LEVISSrdquo Tesis (02-0014) 2002

54

Anexo A

Conampuracioacuten de Microsoft Vkua[C++ 6 O

Este anexo indica las configuraciones que se utilizaron para la compilacioacuten de SCUML y s3c

Configuracioacuten de Microsoft Visual c++ 60

Debido a la integracioacuten de los proyectos de InverSOODA e InverDDVi con S3C se cumplioacute con los requisitos previos de ambos proyectos

El compilador usado en el proyecto fue el Microsoft Visual C++ 60

Para el cumplimiento con la funcionalidad de InverSOODA se instaloacute el ANTLR la versioacuten 271 Se descargoacute del sitio l i l l ~ ~ ~ ~ ~ ~ t l ~ l ~ - ~ t - ~ la versioacuten mencionada en un archivo comprimido (en formato zip) Se colocoacute el paquete descomprimido en el directorio ldquoDIANTLR-271 I rdquo

Recomiendo ampliamente que el directorio principal de ANTLR se copie en el directorio raiacutez de cualquier unidad de disco debido a que experimenteacute problemas de compilacioacuten cuando ANTLR no se encontraba en el directorio raiacutez

Io015

Source Browser AlttF12 I u c Ersquo V I

Visual Component Mgnager

- - ~ ~ ~ ~~

P2 Registrar control

A Contenedor de prueba de controles ActiveX

A Usor de objetos OLE y COM

Buacutesqueda de errores

A Y++ MFC Iracer

Customize options

~ - q- ~ Macro

Eecord Quick Macro Cbl+ShiR+R Pay Quick Macro Ctrl+ShiR+P

En el menuacute Tools (Herramientas) seleccione el sub-menuacute Options ltopcionesgt

56

Configuracioacuten de Microsoft Visual C++ 60

En la siguiente ventana de diaacutelogo debe agregar la direccioacuten en donde se encuentra el ANTLR

Agregar la ruta del directorio de ANTLR hasta el subdirectorio

libcpp

Editor I Tabs I Debug I Compatibility 1 Build Dneclolies I a I Chow directories for - Platfolm -

- Directories I x ) 4 jWin32 -] llnclude files

m cancd I

57

Configuracioacuten de Microsoft Visual C t+ 60

Se ha creado una libreriacutea (anrlrliblib) de ANTLR la cual ya estaacute situada en el directorio del proyecto SCUML (ISCUML) y no debe ser movida o eliminada

I

Geneial 1 Debug I CC++ Link I Category

Output file name bebugSCUMLexe

Objectljibrary modules 4 anllrliblib

li Generate debug lnfo r Ignore all defaull lbaries D ~ i n k j n ~ ~ ~ t a n ~ r ~ e n e r ~ ~ ~ mapfile

r Enable psafilrng

Proiec1 Ootionn

pq Cancel 1 Libreriacutea de ANTLR que debe existir 1 I para que se compile correctamente

58

Anexo B

~ u iacute aacute raacutepida de uso deC Sistema S3C

5 Este anexo indica de forma raacutepida la manera de utilizar S3C para crear un diagrama de secuencias de forma automaacutetica

Guiacutea Raacutepida de uso del Sistema S3C i

Para indicar la creacioacuten de un diagrama de secuencias en forma automaacutetica se debe ir a la barra del costado izquierdo y presionar ldquoNuevo Proyecto SCUMLrdquo

I s3c I ~ Nuevo Proyecto SCUML ~ _ _ - I Diagrama de clases ~ Diagrama de secuencias 1 MDI DOC Activo

-

Apareceraacute un documento llamado ldquoSCUMLV en donde el simbolo corresponde a un numero consecutivo iniciando desde 1 (uno)

$ e Despueacutes se presiona ldquoDiagrama de clasesrdquo Habraacute que para indicarle al sistema si se requiere abrir un diagrama de clases existente o realizar uno nuevo

i

iquestAbrir un documento existente

No Cardquo~ear

AI presionar ldquoSirdquo se debe indicar cual es el archivo del diagrama de Clases en el cuadro de diaacutelogo siguiente

~~ - 11dMis documentos rsquo 2 M i P C i lsquo h s sitios de red

I

AI presionar ldquoNordquo en ldquoAbrir un documento existenterdquo se nos mostraraacute un documento vacio para crear un diagrama de clases

60

Guiacutea Raacutepida de uso del Sistema S3C

Para ambas opciones se requiere que los diagramas de Wamier ya se encuentren construidos Y para continuar el proccso se selecciona el documento ldquoSCUMLVrsquo creado al inicio y despueacutes presionar el botoacuten nombrado ldquoDiagrama de secuenciasrdquo localizado en la barra de hcrraiiiicntas del costado izquierdo

Ha iniciado el proceso de construccioacuten del diagrama de secuencias Si no existen errores al terminar el proceso se le mostraraacute un cuadro de diaacutelogo llamado ldquoResultadosrdquo en donde le mostraraacute las llamadas de las que no localizoacute su definicioacuten

- - -

Cancel 1 D e las siguientes llamadas es posible que esten mal escritas o peitenezcan a la libreiia del Lenguaie Verifique ya que no se encontraron sus definiciones

A continuacioacuten se mencionan los posibles errores que finalizan el proceso de la creacioacuten automaacutetica de los diagramas de secuencias en S3C

Cuando no exista un meacutetodo lsquomainrsquo definido en el diagrama de clases

No se encontro el meacutetodo lsquomain()rsquo que inicie la secuencia I A No se puede crear el diagrama de secuencias

p==amp=q

61

Guia Raacutepida de uso del Sistema S3C

Cuando se definan niultiples metodos lsquoinainrsquo en el diagrama de clases

Multiples meacutetodos lsquomainOlsquo Imposible decidir el inicio de secuencia

Aceptar i

Si un meacutetodo definido en Wamier realiza una llamada a lsquomainrsquo se cancelara el proceso

Llamada NO VALIDA al meacutetodo principal main

(iAcp-j(

4 i

CI Y rdquoldquoldquoI i 11 1-T

IZNTRO Gt INFORMACION

62

  • Tabla de Contenido
  • Listado de Figuras
  • Listado de Tablas
  • Notacioacuten
  • Introduccioacuten
  • Capitulo 1 Conceptos Generales
    • 11 Antecedentes
    • 12 Trabajos relacionados
      • 121 Tabla comparativa
        • 13 Definicioacuten del problema
        • 14 Objetivo de la Tesis
          • Objetivos especiacuteficos de la tesis
            • 15 Hipoacutetesis de investigacioacuten
            • 16 Alcances y limitaciones del trabajo de tesis
              • Capitulo 2 Marco Teoacuterico
                • 21 Modelado de sistemas de software
                • 22 Interfaz de usuario (Mecanismos de interaccioacuten)
                • 23 Lenguajes Visuales
                • 24 Programacioacuten orientada a objetos
                • 25 Lenguaje de Modelado Unificado (UML)
                  • Desarrollo de la herramienta
                    • 31 Disentildeo de la Arquitectura
                      • 311 Requisitos (Diagrama de Casos de uso)
                        • 312Modelo Conceptual
                        • 313Diagramas de clases
                        • 32 Elementos de la arquitectura
                          • 321 Microsoft Foundation Class (MFC)
                            • 322Arquitectura Documento Vista
                            • 323Integrando Ambientes en Visual c++
                              • 324 Interfaz de Muacuteltiples Documentos (MDI)
                                • 325Recursos Diaacutelogos Menus y Barras de Herramientas
                                  • 326 Notacioacuten estaacutendar
                                  • 327 Estructura de datos persistencia y recuperacioacuten
                                    • 328Patrones de disentildeo utilizados
                                      • 33 Diagrama de secuencias
                                        • 331Ciclo de vida del software
                                          • 34 Elementos atoacutemicos de la Gramaacutetica
                                            • 341 Representacioacuten visual
                                              • 35 Gramaacutetica desarrollada
                                              • 36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias
                                                  • Capitulo 4 Pruebas y Resultados
                                                    • 41 Recursos teacutecnicos utilizados
                                                    • 42 Descripcioacuten del plan de pruebas
                                                    • 43 Resultados
                                                      • 431 Caso
                                                      • 432 Caso2
                                                      • 433 Caso
                                                          • Conclusiones y trabajos futuros
                                                            • Trabajos futuros
                                                            • Referencias
                                                            • Anexo A Configuracioacuten de Microsoft Visual C+t
                                                              • Figura 11 - Arquitectura de la suite cenidet-UML
                                                              • Figura 21 -Programacioacuten Visual
                                                              • Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de
                                                              • Figura 32 -Diagrama de Casos de Uso para el S3C
                                                              • Figura 33 -Modelo Conceptual
                                                              • Figura 34 - Diagrama de Clases -Control del Diagrama -
                                                              • Figura 35 - Diagrama de Clases - Patroacuten Visitor -
                                                              • Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento
                                                              • Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)
                                                              • Figura 38 -Dialogo Caracteriacutesticas del Objeto
                                                              • Figura 39 -Dialogo Mensaje
                                                              • Figura 3 IO - Menuacute de los Diagramas de Secuencias (estaacutendar)
                                                              • Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias
                                                              • Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)
                                                              • Figura 313 - Serializacioacuten
                                                              • Figura 314 -Modelo de cascada del ciclo de vida del software
                                                              • Figura 41 - Resultado del caso de prueba
                                                              • Figura 42 -Resultado del caso de prueba
                                                              • Figura 43 -Resultado del caso de prueba
                                                              • Figura 44 -Resultado del caso de prueba
                                                              • Tabla 11 - Tabla comparativa
                                                              • Tabla 31 -Prefijos estaacutendar de identificadores
                                                              • Tabla 32 -Elementos atoacutemicos del lenguaje
                                                              • Tabla 41 - Resumen de los resultados de las pruebas realizadas

Agradecimientos

A mis padres por que me han dado todo

A toda nii familia por el apoyo que en su momento recibi de cada uno

AI Centro Nacional de Investigacioacuten y Dcsarrollo Tccnoloacutegico por la oportunidad que me han dado

A Cosnet (Consejo del Sistema Nacional de Educacioacuten Tecnoloacutegica) por el apoyo econoacutemico otorgado durante la realizacioacuten del programa de maestriacutea

A la SEP (Secretariacutea de Educacioacuten Puacuteblica) por ser parte importante con su apoyo econoacutemico para la culminacioacuten de mis estudios

A mi director de tesis Dr Maacuteximo Loacutepez Saacutenchez por compartirme sus conocimientos y guiarme

A mis revisores Dr Reneacute Santaolaya Salgado Dr Guillermo Rodriguez Ortiz y MC Humberto Hemaacutendez Garcia Gracias por sus observaciones y consejos para mejorar este trabajo

A Miguel Ramirez por los conocimientos teacutecnicos y amistad

A Leo Sele Lupita Ceacutesar Emilio Vianey Armando y Marisela por el tiempo que vivimos

3

-3 i

Gracias y Suerte

i 4

Resu men

La investigacioacuten y el producto de la tesis estaacuten inmersos en la etapa del disentildeo de sistemas de software

El prototipo S3C (producto de la tesis) permite la obtencioacuten de diagramas de secuencias de UML tomando como base la informacioacuten de un diagrama de clases y de varios documentos modelados con diagramas de Warnier (disentildeo detallado de los meacutetodos)

S3C realiza un proceso automaacutetico para la obtencioacuten de los diagramas de secuencias La construccioacuten de los diagramas de secuencias en S3C estaacute soportada con una gramaacutetica visual relacional El propoacutesito de la gramaacutetica es validar la construccioacuten de los diagramas de secuencias de UML

En el aacutembito de los diagramas de secuencias de UML no existen aplicaciones comerciales oacute proyectos educativos que se apoyen en una gramaacutetica visual para soportar la construccioacuten de los diagramas de secuencias y tampoco existen aplicaciones que permitan a partir de los diagramas de clases y del disentildeo detallado de los meacutetodos generar automaacuteticamente los diagramas de secuencias

4 _

i d

Abstract

The research and the product of this thesis are immersed in the phase of design of software systems

Prototype S3C (product of this thesis) allows to obtain UML sequence diagrams based on the information of a class diagram and several documents modeled with wamier diagrams (detailed design of the methods)

S3C makes an automatic process in order to obtain sequence diagrams the construction of sequence diagrams in S3C is supported with a relational visual grammar The purpose of the grammar is to validate the construction of UML sequence diagrams

il

In the scope of UML sequence diagrams do not cxist commercial applications or educative projects that are based on a visual grammar to support the construction of sequence diagrams Also there arenrsquot applications that allow the automatic generation of secuence diagrams from class diagrams and the detailed design of methods

Tabla de Contenido

Tabla de Contenido

Listado de Figuras

Listado de Tablas

Notacioacuten

Introduccioacuten

Capitulo 1 Conceptos Generales

11 Antecedentes

12 Trabajos relacionados

121 Tabla comparativa

13 Definicioacuten del problema

14 Objetivo de la Tesis

141 Objetivos especiacuteficos de la tesis

15 Hipoacutetesis de investigacioacuten

16 Alcances y limitaciones del trabajo de tesis

Capitulo 2 Marco Teoacuterico

21 Modelado de sistemas de software

22 Interfaz de usuario (Mecanismos de interaccioacuten)

23 Lenguajes Visuales

24 Programacioacuten orientada a objetos

25 Lenguaje de Modelado Unificado (UML)

Capitulo 3 Desarrollo de la herramienta

31 Disentildeo de la Arquitectura

311 Requisitos (Diagrama de Casos de uso)

312Modelo Conceptual

313Diagramas de clases

Paacutegina

1 iv V

vi

1

2

3 4

6

6 7

7

8

8

9 10 11 13 16 17

21 23 23 25 25

1

32 Elementos de la arquitectura

321 Microsoft Foundation Class (MFC)

322Arquitectura Documento Vista

323Integrando Ambientes en Visual c++ 324 Interfaz de Muacuteltiples Documentos (MDI)

325Recursos Diaacutelogos Menus y Barras de Herramientas

326 Notacioacuten estaacutendar

327 Estructura de datos persistencia y recuperacioacuten

328Patrones de disentildeo utilizados

33 Diagrama de secuencias

331Ciclo de vida del software

34 Elementos atoacutemicos de la Gramaacutetica

341 Representacioacuten visual

35 Gramaacutetica desarrollada

a -

Tabla de Contenido

36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias

Capitulo 4 Pruebas y Resultados

41 Recursos teacutecnicos utilizados

42 Descripcioacuten del plan de pruebas

43 Resultados

431 Caso 1

432 Caso2

433 Caso 3

434 Caso4

44 Anaacutelisis de resultados

Conclusiones y trabajos futuros

Conclusiones

Trabajos futuros

27

27

28

29

29

31

33

34

35

36

36

37

38

39

41

43

44

44

45

45

46

47

48 49

50 51 51

i

lt

11

i Referencias

Anexo A Configuracioacuten de Microsoft Visual C+t 60

Anexo B Guiacutea raacutepida de uso del sistema S3C

Tabla de Contenido

52 59

lt 111

Listado de Figuras

3

Figura 11 - Arquitectura de la suite cenidet-UML

Figura 21 -Programacioacuten Visual

Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de Secuencias Figura 32 -Diagrama de Casos de Uso para el S3C

Figura 33 -Modelo Conceptual

Figura 34 - Diagrama de Clases -Control del Diagrama -

Figura 35 - Diagrama de Clases - Patroacuten Visitor - Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento Vista Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)

Figura 38 -Dialogo Caracteriacutesticas del Objeto

Figura 39 -Dialogo Mensaje

Figura 3 I O - Menuacute de los Diagramas de Secuencias (estaacutendar)

Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias

Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)

Figura 313 - Serializacioacuten

Figura 314 -Modelo de cascada del ciclo de vida del software

Figura 41 - Resultado del caso de prueba 1

Figura 42 -Resultado del caso de prueba 2

Figura 43 -Resultado del caso de prueba 3

Figura 44 -Resultado del caso de prueba 4

Paacutegina

3

13

22

23

25

26

26

29

30

31

32

32

32

34

35

37

45

46 47

48

iv

Tabla 11 - Tabla comparativa

Tabla 31 -Prefijos estaacutendar de identificadores

Tabla 32 -Elementos atoacutemicos del lenguaje

Tabla 41 - Resumen de los resultados de las pruebas realizadas

Listado de Tablas

Paacutegina

6 33

38 49

V

Notacioacuten

La siguiente es la notacioacuten de la que se haraacute uso

ltCObjectgt

ltGetDocunteiztgt

MiClase MiMetodo

9 Liacutenea de Coacutedigo

Mensaje

Clase de la MFC ( Microsoft Fundation Class)

Meacutetodo de una clase de la MFC

Clase desarrollada Meacutetodo de una clase desarrollada

Liacutenea o Bloque de coacutedigo

Elemento del Diagrama de Secuencia

vi

I Introduccioacuten

L~ tesis se enfoca hacia el desarrollo de sistemas de software centrados en el modelado mediante diagramas de secuencias definidos por el Lenguaje de Modelado Unificado (UML) La investigacioacuten y el producto de la tesis estaacuten inmersos en la etapa del disentildeo de sistemas de software

El producto (prototipo) de la tesis denominado S3C permite la obtencioacuten de diagramas de secuencias de UML tomando como base la informacioacuten de un diagrama de clases y de varios documentos modelados con diagramas de Wamier (disentildeo detallado de los meacutetodos)

Para la elaboracioacuten de los diagramas de clases se hace uso del ambiente existente InverSOODA [HER03] Y para el modelado de los documentos Wamier se ha tomado el ambiente InverDDVi [WEN02] Ambos ambientes visuales son productos de tesis anteriores y se han integrado en un solo prototipo denominado SCUML (Suite cenidet - UML)

(i

S3C realiza un proceso automaacutetico para la obtencioacuten de los diagramas de secuencias en este proceso solo se requiere indicar el diagrama de clases del que se basaraacute La construccioacuten de los diagramas de secuencias en S3C estaacute soportada con una gramaacutetica visual relacional El propoacutesito de la gramaacutetica es validar la construccioacuten de los diagramas de secuencias de UML

En el aacutembito de los diagramas de secuencias de UML no existen aplicaciones comerciales oacute proyectos educativos que se apoyen en una gramaacutetica visual para soportar la construccioacuten de los diagramas de secuencias y tampoco existen aplicaciones que permitan a partir de los diagramas de clases y del disentildeo detallado de los meacutetodos generar automaacuteticamente los diagramas de secuencias

3

Los temas relacionados a esta tesis son Modelado de Sistemas UML Interfaz de Usuario Programacioacuten Orientada a Objetos y Gramaacuteticas Visuales

El capiacutetulo 1 es de conceptos generales se dan a conocer los antecedentes del proyecto los trabajos relacionados hipoacutetesis alcances y limitaciones

En el capiacutetulo 2 se define el marco teoacuterico de la tesis se describen temas como Modelado de sistemas de software disentildeo de sistemas de software modelado visual lenguajes visuales programacioacuten orientada a objetos y lenguaje de modelado unificado

El capiacutetulo 3 describe el desarrollo del ambiente visual se detalla el modelo conceptual la arquitectura y sus elementos los diagramas de secuencias y la gramaacutetica visual relacional que se desarrolloacute

En el capiacutetulo 4 se muestran los casos de pruebas y los resultados obtenidos Y al final se establecen las conclusiones y se dan propuestas para algunos trabajos futuros 3

1

Capiacutetulo I

Conceptos generalis

En eacuteste capiacutetulo se dan a conocer los antecedentes del proyecto de tesis los trabajos relacionados el problema que resolveraacute la hipoacutetesis a comprobar los alcances y limitaciones

Conceptos generales

11 Antecedentes

Actualmente en el cenidet (Centro Nacional de Investigacioacuten y Desarrollo Tecnoloacutegico) se trabaja en la construccioacuten de un conjunto de ambientes visuales para dar soporte al desarrollo con diagramas que define el estaacutendar UML para elaborar sistemas de software de manera completa raacutepida y eficaz El ambiente de modelado principal se ha denominado suite cenidet-UML y su arquitectura general se muestra a continuacioacuten en la Figura 11

Arquitectura de la suite cenidet-UML

Figura 11 Arquitectura de la suite cenidet-UML

a El producto de software resultante de eacutesta tesis lleva por nombre S3C y como se indica en la figura 11 Las tesis directamente relacionadas son InverSOODA [HER03] e

InverDDVi [WEN02]

InverSOODA (Sistema Orientado a Objetos para Disentildeo y Anaacutelisis incluyendo Ingenieriacutea Inversa) es un Ambiente Visual que permite la elaboracioacuten de diagramas de clases de un sistema de software Los diagramas de clases son una vista estaacutetica y en ella se describe las relaciones que existen entre las entidades llamadas clases Cada una de las clases se divide en tres partes nombre de la clase meacutetodos y atributos Este ambiente permite generar el coacutedigo fuente en lenguaje C++ de un diagrama construido y tambieacuten aplicando la ingenieriacutea inversa es posible obtener un diagrama a partir de un coacutedigo en C++ existente

InverDDVi (Disentildeo Detallado Visual incluyendo Ingenieriacutea Inversa) es un Ambiente Visual cuyo objetivo es apoyar en la elaboracioacuten de diagramas de disentildeo detallado utilizando una notacioacuten basada en Warnier Los diagramas de Warnier sirven para describir una secuencia loacutegica de acciones y mediante su simbologiacutea se logra plasmar definiciones de meacutetodos llamadas a otros meacutetodos ciclos comparaciones lectura de informacioacuten y escritura de informacioacuten Este ambiente permite generar el coacutedigo fuente en C de un diagrama construido y tambieacuten aplicando la ingenieriacutea inversa se puede obtener un diagrama de Warnier a partir de un coacutedigo en C que ya exista

i

3

Conceptos generales

12 Trabajos relacionados

Rational Rose de Rafional

Una de las herramientas mas populares del mercado que utiliza la notacioacuten UML y tiene la capacidad de reingenieriacutea de software para integrar sistemas existentes capacidad de mezclar diferentes lenguajes dentro de un mismo modelo ademaacutes de ingenieriacutea inversa sobre los componentes COM (Component Object Model) ActiveX y Java y con soporte de las arquitecturas MicrosoWCOM y CORBAIDL (The Common Object Request Broker Architecture)

Con Rational Rose se puede trabajar en grupo con capacidades para modelar y visualizar procesos de negocios y requerimientos de sistemas Tiene soporte para generar esquemas objetos-relaciones de bases de datos para realizar anaacutelisis de datos Cuenta con el soporte para analizar sitios Web en ASP (Active Server Pages) y JSP (Java Server Pages) Ademaacutes soporta los lenguajes Java CC++ Visual CC++ [RAT02] 9

SI -

Visio de Microsoft

Visio Enterprise 2002 permite crear diferentes tipos de diagramas como son

1 Diagramas de flujo 2 Planos de oficinas 3 Diagramas de aacuterbol 4 Diagramas de organizacioacuten 5 Liacuteneas de tiempo 6 Mapas geograacuteficos y direccionales 7 Diagramas de sitios Web 8 Diagramas de red 9 Diagramas de UML

Tiene las siguientes caracteriacutesticas diagramacioacuten e importacioacuten de servicios de directorio reingenieria de bases de datos disentildeo y documentacioacuten de bases de datos diagramacioacuten de software ingenieriacutea directa e inversa de coacutedigo replicacioacuten exacta por medio de diagramas de equipos y configuraciones de red diagramacioacuten automatizada y ambiente colaborativo

Visio da un conjunto completo de herramientas de diagramacioacuten de redes para planear y documentar claramente las redes existentes Ademaacutes para crear esquemas eleacutectricos mecaacutenicos y de procesos pueden crearse diagramas complejos con facilidad y poco entrenamiento

A las aplicaciones existentes se les puede realizar la ingenieriacutea inversa para obtener el disentildeo y tambieacuten crear nuevos disentildeos Proporciona herramientas para crear diagramas de bases de datos y es posible realizar ingenieriacutea inversa de esquemas existentes en bases de datos cliente servidor como SQL Server IBM Oracle y otros [MIC02]

4

Conceptos generales

e JVision 21 de Object Insight

JVision permite en la ingenieriacutea directa la creacioacuten de clases variables y meacutetodos con lo cual genera plantillas de coacutedigo para programadores en Java Los diagramas se pueden exportar a HTML La documentacioacuten puede integrarse con JavaDoc de Sun JVision da el soporte para ingenieriacutea inversa para el lenguaje Java

Se pueden crear todos los diagramas definidos por UML en los diagramas de secuencias da la oportunidad de dibujar clases liacuteneas liacuteneas de tiempo de vida y marca de destruccioacuten de objetos ofrece ademaacutes el soporte para las acciones de llamada regresar valor enviar accioacuten crear accioacuten y eliminar accioacuten [OBJO2]

MagicDraw 6 de No Magic

Es una herramienta CASE con soporte para trabajo en grupo Esta disentildeado para analistas 6 de negocios analistas de software programadores ingenieros de calidad y

documentadores Esta aplicacioacuten provee la capacidad para crear los diagramas definidos por UML (soporta UML 14) Cuenta con el soporte de ingenieriacutea inversa y generacioacuten de coacutedigo para C++ C Java y CORBNIDL Tiene integracioacuten con NetBeans se actualiza automaacuteticamente disponible en aacuterabe portugueacutes franceacutes italiano ingles (US) alemaacuten espantildeol japoneacutes y coreano

Tiene la caracteriacutestica de soportar la adaptacioacuten de los elementos a colores que el usuario defina Los diagramas pueden exportarse a imaacutegenes JPG EMF WMF EPS y DXF En los diagramas de secuencia da oportunidad de definir roles textos notas mensajes de varios tipos al mismo objeto recursivo ademaacutes de la relacioacuten a las notas y las liacuteneas de vida Es posible guardar los diagramas como imaacutegenes de mapas de bits o vectores Mantiene ademaacutes una vista pequentildea a escala del diagrama completo [NoA402]

e

SmariDraw Professional Plus de SmariDraw

Todos los dibujos pueden agregarse en las aplicaciones de Microsoft como son Word Excel PowerPoint Contiene maacutes de 50000 (1000 en la versioacuten estaacutendar) formas predefinidas ejemplos y plantillas Los diagramas pueden ser exportados a imaacutegenes WMF BMP JPG GIF TIF y otros Incluye un convertidor de archivos de VISIO

Con esta herramienta es posible crear diagramas de flujo diagramas de bloque diagramas de flujos de datos diagramas de organizacioacuten aacuterboles de decisioacuten disentildeo de redes Gantt diagramas de flujo de procesos diagramas de administracioacuten de calidad diagramas eleacutectricos diagramas mecaacutenicos diagramas quiacutemicos liacuteneas de tiempo planes de espacio posters mapas formas y tambieacuten da soporte para UML es posible dibujar objetos actores activacioacuten de los objetos mensaje mensaje de retorno mensaje asiacutencrono mensaje con tiempo liacutenea de vida del objeto marca de destruccioacuten del objeto y ciclos (descrito con un rectaacutengulo y una condicioacuten de salida) [SMA02]

5

Conceptos generales

Producto Soporta Diagramas de UML Secuencias

Creacioacuten automaacutetica de diagramas de

El Rational Rose El Visio

Jvision

Magic D r a w

a a El Fl El a El El

I ~

I ~

I -

Ambiente de modelado de

a a SmartDraw El

Tabla I Tabla comparativa

Todas las herramientas descritas anteriormente cuentan con caracteriacutesticas sobresalientes para el disentildeo y modelado de sistemas de software pero ninguna de ellas genera automaacuteticamente los diagramas de secuencia con base en los diagramas de clases y el disentildeo detallado de los meacutetodos asiacute tambieacuten ninguna de ellas realiza un caacutelculo de los canales de comunicacioacuten abiertos entre las clases que conforman el sistema

iexcla la A UML Editor in Java

13 Definicioacuten del problema

El modelado de sistemas utilizando el estaacutendar de UML en diversos productos comerciales prototipos de laboratorio elaborados en universidades y centros de investigacioacuten atienden la perspectiva baacutesica de la abstraccioacuten general del modelo esto es documentar el modelo del sistema que se requiere sin atender puntos importantes tales como

La generacioacuten automaacutetica de los diagramas de secuencias La correccioacuten de inconsistencias en los diagramas al crearlos de forma separada

El

6

sistemas de software

secuencias utilizando diagramas de a a a

Conceptos generales

Se hace necesaria la creacioacuten de un ambiente visual que permita obtener de forma automaacutetica los diagramas de secuencias en base a los diagramas de clases y al disentildeo detallado de los meacutetodos para facilitar la documentacioacuten la generacioacuten de coacutedigo y el mantenimiento de los sistemas

La obtencioacuten de los diagramas de secuencias estaacute basada en los Diagramas de Clases definidos por UML que son construidos con la herramienta InverSOODA junto con el disentildeo detallado de los meacutetodos construidos con Diagramas de Wamier elaborados con la herramienta InverDDVi

En el estaacutendar UML para la construccioacuten de los diagramas no existe actualmente una sintaxis expliacutecita definida solo existe impliacutecitamente en el uso de los elementos del diagrama por lo que se ha descrito una gramaacutetica visual de tipo relaciona1 como soporte para la construccioacuten de los Diagramas de Secuencias

n ai 14 Objetivo de la Tesis

Construir un ambiente visual que permita al usuario obtener el diagrama de secuencias de manera automaacutetica

141 Objetivos especiacuteficos de la tesis Crear una gramaacutetica que soporte la construccioacuten del diagrama de secuencias Construir de forma automaacutetica el diagrama de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodos

15 Hipoacutetesis de investigacioacuten

Es posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodos

16 Alcances y limitaciones del trabajo de tesis

Los alcances de la tesis se especifican a continuacioacuten

Se elaboroacute la arquitectura del sistema Se definioacute la gramaacutetica de soporte Se desarrolloacute la interfaz en Visual C++ haciendo uso de las MFC Se interactuacutea con los diagramas de clases de InverSOODA Se interachiacutea con el disentildeo detallado de los meacutetodos realizados por InverDDVI Se genera el diagrama de secuencias de forma automaacutetica

7

Conceptos generales

Limitaciones de la tesis

0 No se genera coacutedigo

La investigacioacuten se limita a los diagramas de clases para la vista estaacutetica de los sistemas de software y a los diagramas de Warnier para la vista dinaacutemica de los meacutetodos El ambiente no trabaja en red

No se modifican los archivos de InverSOODA No se modifican los archivos de InverDDVI No se recuperan diagramas de secuencias a partir de coacutedigo legado

4

8

Capiacutetulo 2

Narc0 teoacuterico

En eacuteste capiacutetulo se describen los temas usados para el desarrollo de la tesis iquestQue son los modelos iquestEn que parte del proceso de Ingenieriacutea del Software se usan los modelos o el modelado Se estudia la interfaz de usuario los lenguajes visuales y las gramaacuteticas visuales Se describe el Lenguaje de Modelado Unificado (UML) ademaacutes de la programacioacuten orientada a objetos por ser este paradigma en donde se enfoca este trabajo

Marco teoacuterico

21 Modelado de sistemas de software

un modelo es una abstraccioacuten de algo con el propoacutesito de entenderlo antes de construirlo El modelo omite detalles no esenciales haciendo maacutes faacutecil su manipulacioacuten que la entidad original [BLA98] Un modelo es la simplificacioacuten de la realidad [RUM99] Los propoacutesitos de los modelos son

Probar una entidad fisica antes de construirla Establecer mejor comunicacioacuten con los clientes Visualizar el problema y el sistema desde una mejor perspectiva Reducir la complejidad [BLA98] Capturar y precisar requerimientos y conocimiento del dominio Pensar acerca del disentildeo del sistema Capturar decisiones de disentildeo en una fomia separada que cambia a partir de los requerimientos Generar productos Organizar buscar filtrar obtener examinar y editar informacioacuten acerca de un sistema Explorar muacuteltiples soluciones econoacutemicas Manejar sistemas complejos [RUM99]

El modelado es una probada y bien aceptada teacutecnica de Ingenieriacutea de Software [RUM99] El modelado es parte central de todas las actividades que conducen a la produccioacuten de buen software Se construyen modelos para comunicar la estructura deseada y revisar el comportamiento de nuestro sistema Se construyen modelos para visualizar y controlar la arquitectura del sistema Se construyen modelos para comprender mejor el sistema que estamos construyendo muchas veces descubriendo oportunidades para la simplificacioacuten y la reutilizacioacuten Se construyen modelos para controlar el riesgo [BOO99] La razoacuten fundamental por la que modelamos es porque nosotros construimos modelos que nos ayudan a entender mejor el sistema que estamos desarrollando [RUM99]

El modelado nos permite [RUM99] 1 Visualizar como es el sistema o como queremos que sea 2 Especificar la estructura del sistema 3 Plantear nuestras guiacuteas en la construccioacuten delsistema 4 Documentar las decisiones que hemos tomado

En las etapas del desarrollo del software el modelado es usado en el disentildeo el disentildeo del sistema es la primera etapa en donde se da la aproximacioacuten baacutesica de la solucioacuten al problema seleccionado ademaacutes se decide por la estructura (arquitectura del sistema) y el estilo de la solucioacuten

La arquitectura del sistema provee el contexto sobre el cual se tomaraacuten decisiones mas detalladas en las etapas subsecuentes del disentildeo [BLA98] En el disentildeo modelamos el sistema y encontramos su forma (incluida la arquitehra) para que soporte todos los 3 -

10

Marco teorico

i

4 -I

requisitos -incluyendo los requisitos no funcionales y otras restricciones- que se le suponen [JAC99] Los propoacutesitos del disentildeo son

Adquirir una comprensioacuten en profundidad de los aspectos relacionados con 10s requisitos no funcionales y restricciones relacionadas con los lenguajes de programacioacuten componentes reutilizables sistemas operativos tecnologiacuteas de distribucioacuten y concurrencia tecnologiacuteas de interfaz de usuario tecnologiacuteas de gestioacuten de transacciones etc Crear una entrada apropiada y un punto de partida para actividades de implementacioacuten subsiguientes capturando los requisitos o subsistemas individuales interfaces y clases Ser capaces de descomponer los trabajos de implementacioacuten en partes mas manejables que puedan ser llevadas a cabo por diferentes equipos de desarrollo teniendo en cuenta la posible concurrencia Capturar las interfaces entre los subsistemas Esto ayuda cuando reflexionamos sobre la arquitectura y cuando utilizamos interfaces como elementos de sincronizacioacuten entre diferentes equipos de desarrollo Ser capaces de visualizar y reflexionar sobre el disentildeo utilizando una notacioacuten comuacuten Crear una abstraccioacuten independiente de la implementacioacuten del sistema en el sentido de que la implementacioacuten es un refinamiento directo del disentildeo que rellena lo existente sin cambiar la estructura Esto permite la utilizacioacuten de tecnologiacuteas como la generacioacuten de coacutedigo y la ingenieriacutea de ida y vuelta entre el disentildeo y la implementacioacuten [JAC99]

22 Interfaz de usuario (Mecanismos de interaccioacuten)

El crecimiento de las computadoras personales vendidas en los ~ O rsquo S lanzoacute con fuerza el ldquofaacutecil de usarrdquo como una de las caracteriacutesticas mas importante de un producto de computadora

Las interfaces graacuteficas de usuario no son nuevas se pueden encontrar en las paredes de cuevas al sur de Francia en las piraacutemides de Egipto y en las paredes de muchas ciudades [iUM92] Para el usuario de un sistema interactivo la comunicacioacuten es tan importante como la computacioacuten Para los usuarios regularmente la interfaz es el sistema [HIX93]

Disentildeo de Interfaz Seguacuten Hackos [HAC98] las interfaces estaacuten en todo donde se trabaja con

o Controles en productos de hardware o Etiquetas y sentildeales en el hardware o Pequentildeas pantallas de cristal liquido en maacutequinas de cualquier tipo o Pantallas para aplicaciones de software para terminales de computadoras centrales

Marco teoacuterico

o pantallas para aplicaciones de software en computadoras Personales sistemas operativos como Windows OS2 DOS Macintosh U n b Y Otros

0 Paacuteginas de un sitio WEB 0 Sistemas de ayuda y manuales en-liacutenea 0 Tutoriales incrustados y otros tipos de soporte de funcionamiento O Esquemas de formas y otros documentos

una interfaz es el medio con el cual los usuarios interactuacutean con el producto 0

sistema para lograr SUS objetivos

Interfaz Usable

Para que una interfaz sea usable debe ser transparente y darles a los usuarios la capacidad de lograr cumplir sus metas de forma efectiva y eficiente

Los beneficios presentados en el uso de las interfaces de usuario [TH190] Disfrutar el sistema El usuario disfruta trabajar con un sistema que cuenta con una interfaz bien disentildeada y que le da la funcionalidad y acceso a los recursos de una manera clara y sencilla Proporciona nuevas habilidades Elimina al usuario concentrarse en acciones que la propia interfaz y el sistema hacen dando como resultado que el usuario solo se concentre en lo importante del trabajo Delegacioacuten de tareas La interfaz de usuario permite al usuario no conocer los detalles de la tarea esto es la computadora atiende los detalles de las tareas mientras que el usuario se concentra en asuntos de maacutes alto nivel Seguridad El usuario no necesita estar en lugarespeligrosos para hacer su trabajo

Se da la mayor posibilidad para que el usuario tenga acceso al conocimiento utilizando un sistema interactivo Haciendo las cosas a la primera Las tareas se ejecutan en un orden correcto definido lo que da como resultado un trabajo bien terminado sin necesidad de repetir evitando asiacute altos costos Computando LOS usuarios pueden calcular datos sin necesidad de conocer el proceso para obtener los resultados

Desarrollo

El disentildeo de interfaz es un negocio bastante dificil Eacuteste combina dos complicadas disciplinas psicologiacutea y ciencias de la computacioacuten Estas disciplinas tienen un fondo cultural muy diferente la psicologiacutea atiende a la gente (comprensioacuten y entendimiento) las ciencias computacionales a las maacutequinas (matemaacuteticas y precisioacuten) El disentildeo de las buenas interfaces requiere que estas dos perspectivas esteacuten unidas [THi90]

Hackos dice que las interfaces dan simplicidad y elegancia al trabajo necesario y a la vida e los usuarios Si no es obvio al usuario pero es raacutepida para aprender [HAC98] ademaacutes define caracteriacutesticas comunes de las interfaces usables

o Hacen que el flujo de trabajo sea familiar o confortable o Soportan el estilo de aprendizaje de los usuarios

12

Marco teoacuterico

Visualizacioacuten de Entrenamiento visual Para controlar Soportar interaccioncs Programar con informacioacuten visual visuales expresiones visuales

o Compatibles con los ambientes de trabajo de los usuarios o Se extienden sobre un concepto de disentildeo que es familiar al usuario o Tienen consistencia de presentacioacuten que los hace parecer maacutes confiable y faacuteciles de

aprender o Usan lenguaje y figuras familiares al usuario o faacuteciles de aprender

Datos o informacioacuten acerca de datos

23 Lenguajes Visuales

Los lenguajes visuales son un nuevo paradigma para expresar los sistemas computacionales Ellos ofrecen la posibilidad de manipular directamente los objetos Un lenguaje visual consiste de sentencias visuales Para lenguajes visuales basados en iacuteconos cada sentencia visual es un arreglo espacial de objetos O iacuteconos graacuteficos [CHA90]

Un lenguaje visual es concebido como una coleccioacuten de figuras obtenidas por un arreglo graacutefico de objetos en dos o maacutes dimensiones Los lenguajes visuales pueden ser modelados sintaacutecticamente a traveacutes de un vocabulario un conjunto de relaciones usadas para componer las figuras y un conjunto de reglas describiendo las figuras pertenecientes al lenguaje Los objetos graacuteficos de un vocabulario de un lenguaje visual se caracterizan por contar con un conjunto de atributos Los atributos de un objeto graacutefico pueden ser atributos graacuteficos atributos sintaacutecticos y atributos semaacutenticos [MAR98]

Un lenguaje de programacioacuten visual puede ser informalmente definido como un lenguaje el cual usa algunas representaciones visuales [SHV88]

Programa ylo Disentildeo de Lenguajes de programacioacuten visual ejecucioacuten software Diagramas iconos Formas

Programacioacuten Visual [SHU88]

Gramaacuteticas para la especificacioacuten de lenguajes visuales [MAR98]

a) Gramaacuteticas texfuales generalizadas Este tipo de gramaacutetica provee una adaptacioacuten apropiada de la concatenacioacuten de siacutembolos para dos dimensiones Su principal ventaja es que conservan los elementos teoacutericos de las gramaacuteticas textuales y los eficientes algoritmos de anaacutelisis de eacutestos uacuteltimos Su principal desventaja es que eacutestas gramaacuteticas no son tan poderosas y soacutelo pueden especificar clases restringidas de lenguajes visuales

13

Marco teorico

b) Meacutetodos basados en gramaacuteticas de grafos Un ejemplo de este tiPo de gramaacuteticas son las gramaacuteticas de red Las oraciones generadas con gramaacuteticas de red son grafos dirigidos con siacutembolos en los nodos Estos grafos son llamados redes Una produccioacuten de eacuteste tipo de gramaacuteticas es de la siguiente forma

a - t p E

donde a y p son redes y E es una forma de conectar a p cuando a es conectada a otra red anfitriona

La mayor desventaja es que las gramaacuteticas de red no han probado ser totalmente uacutetiles para la especificacioacuten de gramaacuteticas arbitrarias por la complejidad para rescribir grafos y al hecho de que no todo lenguaje visual estaacute compuesto exclusivamente por grafos

C) Gramaacuteticas de multiconjuntos de atributos En estas gramaacuteticas las producciones rescriben conjuntos o multiconjuntos de siacutembolos que tienen atributos con informacioacuten sobre geometriacutea o semaacutentica La reescritura se controla con restricciones sobre los atributos de los siacutembolos en el lado derecho de las producciones

Un ejemplo de eacutestas gramaacuteticas es la Gramaacutetica Coordinada que especifica notacioacuten matemaacutetica de dos dimensiones En esencia las producciones en una gramaacutetica coordinada n-coordinada libre del contexto tienen la siguiente forma

A -t a donde C F

Todos los siacutembolos de eacuteste tipo de gramaacutetica tienen n atributos geomeacutetricos A es un siacutembolo no terminal a es una cadena no vaciacutea de siacutembolos C es una restriccioacuten sobre los atributos de los siacutembolos en a y F es una expresioacuten que computa los atributos de los siacutembolos de A en teacuterminos de los atributos de los siacutembolos en a no importando el orden de los siacutembolos en a

d) Gramaacuteticas PosicionaZes Las gramaacuteticas posicionales son un formalismo para la definicioacuten e implementacioacuten de lenguajes visuales las gramaacuteticas posicionales extienden naturalmente a las gramaacuteticas libres de contexto Una gramaacutetica libre de contexto posicional PG es una six-tupla (N T S P POS PE) donde

N es un conjunto finito no vaciacuteo de siacutembolos no terminales T es un conjunto finito no vaciacuteo e siacutembolos terminales con N n T = $I S E N es el siacutembolo no terminal de inicio P es un conjunto finito de producciones POS es un conjunto finito de identificadores de relacioacuten binaria PE es un evaluador pictoacuterico

14

Marco teorico

Cada produccioacuten en P tiene la siguiente forma

A -+ X I R I X R2 X ~ I Rm1 xm A

e) Gramaacuteticas de Relacioacuten de siacutembolos Eacuteste es un formalismo sintaacutectico para describir un lenguaje visual donde cada oracioacuten dentro del lenguaje se representa como un conjunto de objetos visuales y un conjunto de relaciones entre objetos

El alfabeto de siacutembolos Vt y el conjunto de relaciones entre siacutembolos Vr una oracioacuten de relacioacuten de siacutembolos w sobre Vt y Vr es un par ( M R) donde

M es un conjunto de elementos-s (v i) con v E Vt y i es un nuacutemero natural R es un conjunto de elementos-r de la forma r (Xi Yj) con Xi Yj E M r E Vr y una relacioacuten r esta contenida entre Xi y Yj

Una gramaacutetica de relacioacuten de simbolos es el conjunto de seis elementos G = (Vn Vt Vr S P R) donde Vn es un conjunto de siacutembolos no terminales Vt es un conjunto de siacutembolos terminales Vr es un conjunto de relaciones entre siacutembolos S es el siacutembolo inicial y P es un conjunto de reglas de reescritura (producciones de elementos-s)

f) Gramaacuteticas relacionales Este tipo de gramaacutetica pertenecen a las gramaacuteticas libres de contexto

La gramaacutetica relaciona1 (RGrsquos) es una 6-tupla G (N C S R Attr P) donde

N C S R Attr P

es un conjunto finito de siacutembolos no terminales es un conjunto de siacutembolos terminales es un siacutembolo distinguido en N llamado siacutembolo inicial es un conjunto finito de siacutembolos de relacioacuten es un conjunto finito de siacutembolos de atributos es un conjunto de producciones de la forma A-gt apF donde A E N a E (nlo)+ Donde n E N cr E E

8 Es un conjunto de relaciones de la forma (r x y) donde r E R y xy son enteros que hacen referencia a un miembro de a y tambieacuten una expresioacuten de la forma (a i) donde a E Attr e i es un entero que hace referencia a un miembrode a

F Es un conjunto de declaraciones de asignacioacuten de caracteriacutesticas de la forma (a O)=x donde a E Attr y x es un entero que hace referencia a un miembro de a o a una expresioacuten de la forma (a i)

15

Marco teoacuterico

24 Programacioacuten orientada a objetos

L~~ meacutetodos orientados a objetos organizan la informacioacuten Y el procesamiento que manipula esta informacioacuten de acuerdo a los objetos delrsquomundo real que la informacioacuten describe [BRO97l

Beneficios de las teacutecnicas orientadas a objetos [BR097] Estabilidad del sistema Mantenibilidad Componentes reusables Confiabilidad Accesibilidad de los datos Participacioacuten del usuario

Seguacuten Graddy Booch la programacioacuten orientada a objetos es ldquoun meacutetodo de implementacioacuten en el que los programas se organizan como colecciones cooperativas de objetos cada uno de los cuales representan una instancia de alguna clase y cuyas clases son todas miembros de una jerarquiacutea de clases unidas mediante relaciones de herenciardquo [JOY 981

Programacioacuten orientada a objetos esencialmente significa programacioacuten usando objetos [JAC93] Los lenguajes orientados a objetos deben soportar los siguientes conceptos

Objetos Abstraccioacuten de datos Encapsulamiento Clases e Instancias Herencia entre clases Polimorfismo

Las propiedades fundamentales de la Programacioacuten Orientada a Objetos son

a Abstraccioacuten Son ideas conceptos y propiedades que se describen en forma general eliminando los detalles Es una estructura de datos y los meacutetodos que manipulan a esos datos

b Encapsulamiento Son las fronteras propias de un objeto bien definidas las cuales protegen los detalles de su representacioacuten interna

c Ocultacioacuten de la informacioacuten Es la propiedad en la que los objetos pueden hacer uso para impedir que otros objetos los usuarios o incluso los programadores conozcan coacutemo estaacute distribuida la informacioacuten

d Herencia Es la propiedad que tiene una clase para heredar atributos y comportamiento a otras clases

e Polirnorfismo Es la propiedad que permite que una entidad pueda cambiar a diferentes formas efectuaacutendose de manera dinaacutemica en tiempo de ejecucioacuten

16

Marco teoacuterico

t

Clases Es la especificacioacuten de una familia de objetos es la declaracioacuten de un tipo de objetos Tambieacuten se dice que una clase es la descripcioacuten de un conjunto de objetos con un comportamiento similar y que esta compuesta de Datos (o atributos) y Meacutetodos o (rutinas acciones operaciones)

Objeto Un objeto es una entidad en la cual se almacenan datos y los meacutetodos o funciones que controlan dichos datos Un objeto es una abstraccioacuten de alguna cosa del mundo real que contiene datos que lo describen y operaciones que solo tienen acceso a esos datos [BR097l Los elementos de los que esta conformado un objeto son

a Las relaciones permiten que el objeto se integre en la organizacioacuten b Las propiedades son los datos que caracterizan el estado de un objeto distinguiendo

asiacute a un objeto determinado de los restantes que forman parte de la misma organizacioacuten

c Los meacutetodos son las operaciones que pueden realizarse sobre la estructura del objeto es decir las acciones que cambian el estado de un objeto y que el objeto es capaz de ejecutar a traveacutes de mensajes y que tambieacuten pone a disposicioacuten de sus descendientes a traveacutes de la herencia

Mensajes Son solicitudes para que se lleve a cabo la operacioacuten indicada y se produzca un resultado

Las razones principales para introducir la tecnologiacutea de objetos son los beneficios de dicha tecnologiacutea

Aumento de la fiabilidad Aumento de la productividad del desarrollador Desarrollo maacutes raacutepido Mejor calidad maacutes alta

Incremento en escalabilidad Mejores estructuras de informacioacuten Incremento de adaptabilidad Reduccioacuten del coacutedigo fuente

Mantenimiento maacutes faacutecil y reduccioacuten de costo

Los elementos de reutilizacioacuten son las clases y objetos

25 Lenguaje de Modelado Unificado (UML)

UML (Unified Modeling Language por sus siglas en ingleacutes Lenguaje de Modelado Unificado) es un lenguaje de modelado visual de propoacutesito general que es utilizado para especificar visualizar construir y documentar las partes de un sistema de software El lenguaje estaacute basado en un pequentildeo nuacutemero de conceptos centrales que la mayoriacutea de los desarrolladores de tecnologiacutea orientada a objetos pueden aprender y aplicar faacutecilmente [RUM99]

17

Marco teoacuterico

y UML Pasado Presente y Futuro

L~~ lenguajes de modelado orientado a objetos aparecieron a mediados de 10s 70rsquos Varias teacutecnicas influenciaron estos lenguajes El nuacutemero de lenguajes de modelado incrementoacute desde menos de 10 hasta maacutes de 50 entre 1989 y 1994 Muchos modeladores teniacutean problemas para encontrar un lenguaje de modelado que satisficiera todas sus necesidades Notablemente aparecioacute Boochrsquo93 y la evolucioacuten continuoacute a OMT y Fusioacuten

OOSE (Object-Oriented Software Engineering) estaacute enfocado a la ingenieriacutea de negocios y anaacutelisis de requerimientos dando un excelente soporte orientado a casos de uso OMT-2 es especialmente expresivo para anaacutelisis y sistemas de informacioacuten de datos grandes Boochrsquo93 fue particularmente expresivo para el disentildeo y fases de construccioacuten de proyectos y popular para aplicaciones de ingenieriacutea intensiva

Grady Booch y Jim Rumbaugh iniciaron el desarrollo de UML en 1994 al unificar sus meacutetodos independientes Booch y OMT En 1995 Ivar Jacobson se unioacute a Racional eacutesta unioacuten logroacute que el meacutetodo OOSE se incorporara La unificacioacuten establecioacute que debiacutean activar el modelado de sistemas utilizando conceptos orientados a objeto asiacute como crear un lenguaje usable tanto para las maacutequinas como para los humanos

A

Muchas organizaciones se unieron al consorcio UML y dedicaron recursos al trabajo hacia el fortalecimiento de la definicioacuten de UML Esta colaboracioacuten produjo un lenguaje de modelado expresivo poderoso y generalmente aplicable En la forma actual de UML se espera que sea base de muchas herramientas incluidas las de modelado visual simulacioacuten y ambientes de desarrollo

R UML es abierto y no-propietario y aunque define un lenguaje preciso no es barrera para futuras mejoras en conceptos de modelado Se usan muchas teacutecnicas de punta pero se esperan teacutecnicas adicionales que influencien futuras versiones de UML puede ser extendido sin redefinir el nuacutecleo

c

Mientras el rehuacuteso basado en componentes se ha favorecido ampliamente cada vez mas esto no significa que las teacutecnicas basadas en componentes reemplazaraacuten las teacutecnicas orientadas a objetos Hay solo sutiles diferencias entre la semaacutentica de componentes y clases [ALC03]

Un opaco rendimiento caracterizoacute el mercado de anaacutelisis modelado y disentildeo en el 2000 en su transicioacuten de las viejas herramientas CASE (Computer Aided Software Engineering) a algo maacutes dinaacutemico y mejor adaptado para satisfacer las necesidades de los desarrolladores para el cambio raacutepido en los ambientes de negocio

El mercado de anaacutelisis modelado y disentildeo lograraacute obtener un crecimiento positivo en varios de los siguientes antildeos por varias razones El mercado seraacute manejado principalmente por la necesidad de desarrolladores a obtener aplicaciones para lanzarse al mercado raacutepidamente asiacute tambieacuten por el intereacutes creciente y uso de una nueva especie de herramienta y por el intereacutes creciente de los desarrolladores en usar UML reglas de negocios y adaptadores de componentes para construir aplicaciones [RIKUI]

z -

18

Marco teoacuterico

UML se ha hecho el estaacutendar para los desarrollos de modelado de negocios administracioacuten de requerimientos anaacutelisis y disentildeo programacioacuten y pruebas Los objetivos primarios de UML en el disentildeo [RAT97j

o Dar a los usuarios un lenguaje visual expresivo de modelado listo para usarse para que puedan desarrollar y cambiar los significados de sus modelos

o Suministrar mecanismos de extensibilidad y especializacioacuten para extender los conceptos centrales

o Ser independiente de lenguajes de programacioacuten particulares y procesos de desarrollo

o Impulsar el desarrollo de las herramientas Orientadas a Objeto en el mercado o Soportar conceptos de desarrollo de alto nivel como colaboracioacuten marcos de

componentes reutilizables patrones y componentes o Integrar las mejores praacutecticas

9 El aacutembito de UML

UML es un lenguaje para especificacioacuten construccioacuten visualizacioacuten y documentacioacuten de artefactos de un sistema de software UML es la fusioacuten de los conceptos de Booch OMT y OOSE El resultado es un simple comuacuten y ampliamente usado lenguaje de modelado para usuarios de estos y otros meacutetodos UML se enfoca en un lenguaje de modelado estaacutendar no en un proceso estaacutendar los autores de UML recomiendan un proceso de desarrollo manejado por casos de uso de arquitectura central iterativo e incremental [iiquest4T97l

Para la definicioacuten de sistemas de software en UML se definen diagramas Un diagrama es la representacioacuten graacutefica de un conjunto de elementos este se visualiza la mayoriacutea de las veces como un grafo conexo de nodos (elementos) y arcos (relaciones) Los diagramas se dibujan para visualizar un sistema desde diferentes perspectivas de forma que un diagrama es la proyeccioacuten de un sistema uumlML incluye nueve diagramas [B0099]

4 -

I Diagrama de clases 2 Diagrama de objetos 3 Diagrama de casos de uso 4 Diagrama de secuencias 5 Diagrama de colaboracioacuten 6 Diagrama de estados 7 Diagrama de actividades 8 Diagrama de componentes 9 Diagrama de despliegue

Diagramas de secuencias Un diagrama de secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten comportamiento

Un diagrama de secuencias muestra un conjunto de mensajes acomodados en una secuencia de tiempo eacuteste diagrama muestra la interaccioacuten en un esquema de dos - dimensiones [RUM99]

19

Marco teoacuterico

Y -

Un diagrama de secuencia es un diagrama de interaccioacuten que resalta la ordenacioacuten temporal de los mensajes Un diagrama de secuencia presenta un conjunto de objetos y los mensajes enviados y recibidos por ellos Los objetos suelen ser instancias (con nombre o sin nombres) de clases pero tambieacuten pueden representar instancias de otros elementos tales como colaboraciones componentes y nodos Los diagramas de secuencia se utilizan para describir la vista dinaacutemica de un sistema [B0099]

Usar los diagramas de secuencia es mostrar la secuencia que existe en un caso de uso [RUM 991

Los diagramas de secuencia tienen dos dimensiones Una dimensioacuten que representa el tiempo Otra dimensioacuten que representa los diferentes objetos que participan en la secuencia de eventos requeridos para completar el propoacutesito [MOuuml98]

El principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildea las interacciones de los objetos [DAN02]

20

Capiacutetulo 3

DesawoCCo de Ia herramienta

En este capiacutetulo se describe el desarrollo del Ambiente Visual Se describe el modelo conceptual del sistema la arquitectura asiacute como tambieacuten los elementos que componen la Arquitectura Se estudian los Diagramas de Secuencias de UML y algunos Patrones de Disentildeo de los que se hace uso para el mejor desarrollo del sistema Se describe a detalle la Gramaacutetica Visual Relaciona1 utilizada para el de Ambiente de desarrollo

I CENIOET 1FNTRO DE INFORMACION

Desarrollo de la herramienta

t i i

Actualmente existe en el cenidet un Ambiente Visual de Modelado de Clases llamado InverSOODA este Ambiente Visual tiene la capacidad de realizar la generacioacuten automaacutetica de coacutedigo de las clases en C++ a partir del modelo especificado Ademaacutes se puede realizar la Ingenieria Inversa de un coacutedigo legado para obtener el modelo de clases Aunado a este trabajo existe el Ambiente Visual denominado InverDDVi con el cual se puede realizar el Disentildeo Detallado de los Meacutetodos de las Clases con diagramas de Warnier Asiacute tambieacuten es posible obtener el modelo aplicando la Ingenieriacutea Inversa a un coacutedigo legado en C++

Ambos trabajos son retomados en este proyecto para la automatizacioacuten en la obtencioacuten de los Diagramas de Secuencias de UML La figura 31 muestra el modelo propuesto de ingenieriacutea directa

Extraer informacioacuten del diagrama de

rsquo rsquo

Diagrama de 11 clases I o

detallado de

detallado de

o meacutetodos

i ir---- Construir el

secuencias i

Modelo de Ingenieriacutea I directa automaacutetica

I

Figura 31 Modelo de Ingenieria Directa Autombtica de los Diagramas de Secuencias

Para la construccioacuten automaacutetica de un diagrama de secuencias se toma como base a un diagrama de Clases El modulo ldquoExtraer informacioacuten del diagrama de Clasesrdquo sirve para obtener el nombre y los meacutetodos descritos en cada uno de las clases que existan en el diagrama de Clases

22

Desarrollo de la herramienta

Con base en la informacioacuten que se tiene se abren los archivos correspondientes a los diagramas de Warnier El proceso que se emplea sobre cada uno los diagramas de Warnier llamado ldquoExtraer informacioacuten de los disentildeos detallados de los meacutetodosrdquo sirve para recopilar el conjunto de las llamadas de cada meacutetodo definido

En el siguiente paso (ldquoReconocer llamadas a meacutetodosrdquo) consiste en identificar si los meacutetodos que estaacuten descritos en los diagramas de Warnier tambieacuten lo estaacuten en el diagrama de Clases correspondiente

El paso ldquoConstruir los diagramas de secuencias automaacuteticamenterdquo realiza una validacioacuten de los meacutetodos definidos en los diagramas de Clases con los meacutetodos definidos en los diagramas de Warnier Este paso crea una estructura de datos con la secuencia de las llamadas y la recorre para crear los objetos y los mensajes en el diagrama de secuencias

AI terminar la creacioacuten automaacutetica del diagrama de secuencias se dispone de la r opcioacuten de guardar

31 Disentildeo de la Arquitectura

Para definir los procesos que el sistema va a realizar es necesario llevar a cabo un anaacutelisis de requisitos los cuales pueden ser expresados mediante diagramas de Casos de Uso Los Casos de Uso son una descripcioacuten textual narrativa de los procesos de un sistema

311Requisitos (Diagrama de Casos de uso)

Los casos de uso en realidad no son un artefacto de anaacutelisis orientado a objetos estos describen simplemente procesos y pueden ser igualmente efectivos en un proyecto tecnoloacutegico no orientado a objetos Son usados en un paso preliminar a la descripcioacuten de requerimientos de un sistema [LAR971 La Figura 32 muestra el diagrama de casos de uso que especifica al S3C

9

S3C (Diagramas de Secuencias)

usuario I Modelado de

I

Figura 32 Diagrama de Casos de Uso para el S3C

23

Desarrollo de la herramienta

Descripcioacuten de los Casos de Uso

Caso de Uso ldquoDiagramas de Secuenciasrdquo Se inicia cuando el actor ldquousuariordquo solicita la creacioacuten de un Diagrama de Secuencias Se establece la forma de la construccioacuten automaacutetica de los diagramas de secuencias de UML Se hace uso del Modelado de Clases y del Modelado del disentildeo detallado de los meacutetodos

Escenario de Eacutexito 1 Se obtiene la informacioacuten de las clases del modelado de clases 2 Se obtiene la informacioacuten del modelado del disentildeo detallado de los meacutetodos 3 Se realiza la construccioacuten automaacutetica de los diagramas de secuencias

1 En el modelo de clases no hay informacioacuten o estaacute incompleta 2 En el modelo del disentildeo detallado de los meacutetodos no hay informacioacuten o estaacute

incompleta

Escenario de Falla

Caso de Uso ldquoModelado de Clasesrdquo El diagrama de Clases se utiliza para obtener los nombres de clases y los nombres de los meacutetodos de cada clase

Escenario de Eacutexito 1 Se abre el modelo 2 Se procesa para obtener la informacioacuten de las clases (nombres de clases y nombres

de meacutetodos)

Escenano de Falla h 1 No se puede abrir el modelo J 2 El modelo esta vaciacuteo

Caso de Uso ldquoModelado del Disentildeo detallado 1 los meacutetodosrdquo El disentildeo detallado de los meacutetodos se realiza con diagramas de Warnier aquiacute se establecen las llamadas a funciones dentro del sistema y es aquiacute donde se identifica el dinamismo que se representaraacute en los diagramas de secuencias

Escenario de Eacutexito 1 Se abre el modelo 2 Se realiza la identificacioacuten de las llamadas existentes

Escenario de Falla 1 No se puede abrir el modelo 2 El modelo esta vaciacuteo

24

Desarrollo de la herramienta

Clase Objeto ni I Diagrama I n ____ Nombre Descripcioacuten

i

Mensaje

Tipo

En el Anaacutelisis Orientado a Objetos se crea una especificacioacuteii del dominio del problema y de los requeriinientos desde la perspectiva de una clasificacioacuten por objetos y del entendimiento de los teacuterminos usados en el dominio del problema Una descomposicioacuten del dominio del problema involucra una identificacioacuten de conceptos atributos y asociaciones que son considerados importantes dentro del dominio El resultado puede ser expresado en un Modelo Corzcepttraf el cual es ilustrado en un conjunto de diagramas que definen conceptos (objetos) [LAR97]

312Modelo Conceptual

El modelo conceptual visto en la Figura 33 no es una descripcioacuten de componentes de software representa conceptos en el domino del problema en el mundo Teal [LAR97l

313Diagramas de clases

Por cuestiones dc espacio las clases de la arquitectura del sistema estaraacuten referidas en varios diagramas que de alguna manera estaacuten relacionados entre si

Una de las partes maacutes importantes del Ambiente Visual S3C es la estructura de clases ltCCraJicogt la cual se refiere al control de los diagramas eacutesta por su naturaleza podriacutea considerarse el nuacutecleo del sistema La manipulacioacuten y control de los diagramas estaacute definido en una estructura de clases organizada con el patroacuten de disentildeo Composite que se muestra en la Figura 34

25

Desarrollo de la herramienta

CRecursividadDS CMensajeDS CObjetoDS CDiagramaDS

I Cvisitor I

CApuntadorDS CDblClickDS CAsocAdjusterDS CSelectorDS

26

Desarrollo de la herramienta

n 32 Elementos de la arquitectura

Es necesario describir los elementos que dan soporte a la arquitectura del ambiente donde se implementaraacute el sistema en este caso Microsoft Visual (MV) C++ 6 El MV C++ es un marco de aplicacioacuten poderoso basado en Windows se integran ademaacutes del lenguaje C++ (compilador y enlazador) el programa de desarrollo de programas en lenguaje C para Windows (SDK) la Microsoft Foundation Class Library AppWizzard Classwizard AppStudio y WorkBencli

La Microsoft Foundation Class Library comprende una biblioteca de clases de C++ y es considerada como el nuacutecleo del MV C++

321Microsoft Foundation Class (MFC)

La libreriacutea Microsoft Foundation Class (MFC) es una interfaz orientada a objetos que tiene las siguientes metas de disentildeo

o

Reduccioacuten significante de esfuerzo al escribir una aplicacioacuten para Windows Velocidad de ejecucioacuten comparable a las APIrsquos del lenguaje C Miacutenimo tamantildeo de coacutedigo Capacidad para llamar cualquier funcioacuten de Windows en C directamente Faacutecil conversioacuten de aplicaciones existentes en C a C++ Faacutecil uso de APIrsquos de Windows con C++ como con C Faacutecil uso de complicadas caracteriacutesticas de abstracciones poderosas como ActiveX soporte para base de datos impresioacuten barras de herramientas y barras de estado El API de Windows en C++ si usa tan efectivamente como las caracteriacutesticas mismas del lenguaje C++

La mayoriacutea de las clases de la Libreriacutea de la Microsoft Foundation Class son derivadas de una clase base ltCObjectgt que es la raiacutez de la jerarquiacutea de clases ltCObjectgt da uacutetiles capacidades a las clases que derivan de ella

La jerarquiacutea que existe en las clases derivadas de ltCObjectgt es la siguiente

Arquitectura de Aplicacioacuten Excepciones Servicios de Archivos Arreglos Listas Mapas Servicios de Internet Sockets Sincronizacioacuten Soporte para base de datos D A 0

27

Desarrollo de la herramienta

i

r

Liacutenea de Comandos Menuacute Dibujo Graacutefico Dibujo Graacutefico de Objetos Soporte de Control Soporte de Ventanas

Soporte para base de datos ODBC

o Marco de Ventanas o Barras de control o Hojas de propiedades o Cajas de Dialogo o Vistas o Controles

322Arquitectura Documento Vista

Por defecto las aplicaciones creadas con la MFC usan un modelo de aplicacioacuten que separa los datos del programa de las vistas de interaccioacuten con el usuario En eacuteste modelo un objeto documento de MFC lee y escribe datos en un almacenamiento persistente Un objeto vista administra el despliegue de datos suministrando al usuario los datos para ser seleccionados o editados La vista le comunica al documento cualquier cambio en los datos La razoacuten maacutes conveniente para seguir este modelo es cuando se necesita muacuteltiples vistas del mismo documento (como en una hoja de caacutelculo y un graacutefico)

La arquitectura documentovista hace faacutecil el soporte de muacuteltiples vistas y muacuteltiples tipos de documentos asiacute como la divisioacuten de ventanas y otras caracteriacutesticas de interfaz de usuario Pero el corazoacuten de la arquitectura son cuatro clases (Mostradas en el aacuterbol de clases de la Figura 36)

ltCDocumerrtgt (o ltCOleDocuinentgt) - Se instancia un objeto de este tipo para almacenar y controlar los datos del programa ltCViewgt (o una de sus clases derivadas ltCScrotlViewgt ltCFormViewgt ltCEditView ltCRecordViewgt ltCDaoRecordView ltCtreeViewgt ltCListViewgt b ltCrichEditViewgt) - Un objeto es usado para desplegar los datos y administrar la interaccioacuten del usuario con los datos ltCFrameWndgt (o una de sus variantes) - Establece el marco sobre el que trabajaraacuten una o mas vistas de un documento ltCDocTemolategt (o ltCSingIeDocTemplategt o ltCMultiDocTemplategt) - Coordina la existencia de uno o maacutes documentos de un tipo dado y administra la correcta creacioacuten de los documentos vistas y objetos ventanas para cada tipo

i

28

Desarrollo de la herramienta

______________ 2 Wiew

I - - __ - ------a ________________

323Integrando Ambientes en Visual C t t

Las aplicaciones de Interfaz de Documento Uacutenico (SDI) soporta muacuteltiples tipos de documentos pero este soporte es para un solo objeto documento Debido a esta restriccioacuten y aunado a la necesidad de tener varios objetos documentos a la vez se determina la utilizacioacuten del modelo Interfaz de Muacuteltiples Documentos (MDI) indicado en la Figura 37

324Interfaz de Muacuteltiples Documentos (MDI)

Una aplicacioacuten de Interfaz de Muacuteltiples Documento (MDI) permite la creacioacuten de plantillas para el manejo de los documentos eacutesta plantilla tiene la forma

rn-pDocTemplate = new CMultiDocTernplate ( I DR-SCUMLTY PE RUNTIME-CLASS (CSCUMLDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CTheView))

AddDocTernplate ( rn-pDocTemplate )

Cada plantilla describe una relacion del tipo de documento con la vista asociada La definicioacuten de la plantilla para el ambiente que controla los diagramas de secuencias es la siguiente

29

Desarrollo de la herramienta c

m-pTernplateSeqDlag = new CMultiDocTernplate ( IDR-DS-SJCTYPE RUNTIME-CLASS (CSeqDiagDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CSeqDiagView) )

AddDocTernplate( rn-pTernplateSeqDiag )

Esta plantilla hace uso de la clase CCliildFrame que por defecto el ambiente Visual C++ construye y esto es debido a que no se requieren caracteriacutesticas extras en las ventanas de las que proporciona dicha clasc En un caso en el que se requiriera un comportamiento diferente de la vista tendriacutea que crearse una nueva clase con las caracteriacutesticas deseadas

Vista Documento

Vista

I- Vista Documento I [ Tip- F Vista

L Figura 37 Modelo Interfaz de Muacuteltiples Documentos (MDI)

Para integrar otro Ambiente que utilice otro tipo de documento es necesario definir otra plantilla de la misma forma mencionada Debe tomarse en cuenta los siguientes puntos

Es necesario definir el nombre (mqTemplateNOMBRE) El IDR del tipo que se requiere que sea el documento En la primera liacutenea RUNTIME CLASS debe indicar la clase ltCDocumentgt que desea La segunda liacutenea RUNTIME-CLASS soacutelo la cambia a otra clase si requiere de otro manipulador de ventanas de lo contrario deje que ltCChildFramegt se haga cargo

-

30

Desarrollo de la herramienta

En la uacuteltima liacutenea referente a RUNTIME-CLASS se debe indicar la clase ltCViewgt que desea usar Para finalizar se usa la instruccioacuten AddDocTernplate para finalizar la definicioacuten del template (mgTemplateNOMBRE)

325 Recursos Diaacutelogos Mertuacutes y Barras de Herrattriertias

Son varios los recursos con los que se puede contar al crear un proyecto en Microsoft Visual C++ Los diaacutelogos son un recurso disponible que son utilizados para visualizar ingresar yo modificar informacioacuten que se requiera En el Ambiente Visual que se desarrolla son varios los diaacutelogos que se utilizaraacuten y eacutestos se describen a continuacioacuten

El Diaacutelogo ldquoCaracteriacutesticas del Obietordquo (Figura 38) identifica el nombre del Objeto y la descripcioacuten del mismo Este diaacutelogo se muestra cuando se presiona doble clic sobre un objeto del diagrama

I Nombre

Desciipcion

Figura 38 Dialogo Caracteriacutesticas del Objeto

El Diaacutelogo ldquoMensaierdquo (Figura 39) muestra el nombre del mensaje que puede ser modificado ademaacutes se visualizan el Identificador del Mensaje el tipo de Mensaje asiacute tambieacuten el origen y destino del mensaje

31

Desarrollo de la herramienta

Nornbie delMensaje Edit

IDentificador del Mensaje Edil Tipo de Mensaje (Edil

Edit Objeto Origen

Objeto Destino IEdit

i25El A Figura 39 Dialogo Mensaje

El menuacute es otro de los recursos del que se puede disponer para organizar el ambiente que se estaacute creando Para eacuteste caso en particular no se hizo modificaciones al menuacute estaacutendar (Figura 310) que Visual C++ presenta Los cambios significativos son el manejo del tipo de documento para los Diagramas de Secuencias

Archivo Editar Yer VenLana AyGda

Figura 310 Menuacute de los Diagramas de Secuencias (estaacutendar)

Otro importante recurso del que uno se puede valer en Visual C++ es la barra de herramienta personalizada la cuaacutel es construida en el Editor de Recursos Se ha construido una barra (Figura 311) con los elementos graacuteficos de los Diagramas de Secuencia de UML

Figura 311 Barra de Herramientas de los Diagramas de Secuencias

Es recomendable que al utilizar barras de herramienta personalizada se defina en el tamantildeo estaacutendar ya que puede experimentar problemas al momento de ejecutar la aplicacioacuten

Ademaacutes puede usar la propiedad TBBS-CHECKGROUP en una barra de herramientas para establecer que los botones puedan quedar presionados hasta que un botoacuten diferente sea presionado No olvide que la numeracioacuten inicia con cero ( O )

vuriableToolBurSetButtonStyle(OTBBSCHECKGROUP)

32

Desarrollo de la herramienta

Prefijo ID IDC IDD IDP IDR IDS

326 Notacioacuten estaacutendar

Los nombres descriptivos de los recursos se asocian a un valor uacutenico Para una mayor claridad eacutestos nombres mantienen un prefijo que describe el tipo de recurso asociado (vea la Tabla 31) [MIC99]

Tipo de Recurso Comandos de Menuacute Controles y recursos Cuadros de diaacutelogo Cadenas de solicitud para cuadros de mensaje Menuacute principal barras de herramienta tabla aceleradora y el icono Cadenas

IDR IDD IDC ID

200 - 299 3000 - 3999 34000 - 34999

Estos son los rangos de valores establecidos para el proyecto S3C Si se utiliza el coacutedigo fuente y se planea agregar otro proyecto verifisue que no se invadan estos nuacutemeros para evitar problemas

Para facilitar auacuten maacutes los trabajos futuros se ha definido una estructura de carpetas (ver Figura 312) para incluir en cada una las Clases correspondientes a cada tesis en desarrollo

33

Desarrollo de la herramienta

ill ~~ -

-I SCUML classes + U A N T L R + U App + 0 ClassDiagrams + 0 Common + a Java

t $2 SequenceDiagiams

+ WarnierDiagrams

iJ PackageDiagrams

12 StaterChartDiagrams

+

- f Classview I Resourceview 1 FileView ]

~ ~

Figura 312 Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)

327Estructura de datos persistencia y recuperacioacuten

Existe una gran cantidad de tipos de datos estructuras clases y meacutetodos de los que se puede hacer uso para una mejor y maacutes faacutecil obtencioacuten de los resultados A continuacioacuten hago comentarios en tipos de datos y meacutetodos en los que podriacutea tener problemas

CTypedPtrList

AI usar este tipo de dato o alguno relacionado que le permita utilizar el meacutetodo ltCTvrgtedPtrListGetNextgt tenga especial precaucioacuten al usarlo ya que al devolver el valor requerido la variable POSITION usada no se queda apuntando a ese valor en particular salta al inmediato siguiente de la lista

Si se realiza una creacioacuten dinaacutemica con punteros para los elementos de una CTypedPtrList Despueacutes de haberlo agregado a la lista evite el delete para borrar esta Usted deseando liberar la memoria no lo haga ya que eliminara directamente el elemento de la lista

POSITION

Es un valor usado para denotar una posicioacuten de un elemento en una coleccioacuten Pero CUIDADO no se refiere a un iacutendice es una referencia (no consecutiva) de punteros muy diferente a un iacutendice

CString

Auacuten cuando el operador de comparacioacuten == (igual a) es permitido para ser utilizado en las cadenas evite su uso ya que en ocasiones aunque cuando la e

34

Desarrollo de la herramienta

compilacioacuten no indique error alguno en la ejecucioacuten no realizaraacute lo que se necesita Recomiendo que utilice CStringCompare ()

Para eliminar el contenido de un CString utilice CStringEmpty() ya que asignar a la cadena un ldquonrdquo podriacutea causarle problemas

Serializacioacuten

Una forma en que se puede guardar informacioacuten y recuperarla de manera eficaz es mediante la serializacioacuten de objetos La serializacioacuten es un proceso que permite escribir un objeto en un archivo y tambieacuten leerlo

Para que la serializacioacuten se lleve a cabo son necesarios tres objetos un objeto de tipo ltCFilegt que represente el archivo un objeto de tipo ltCArchivegt que ofrece el entorno para la serializacioacuten y la clase del objeto a ser serializado debe ser heredada de ltCObjectgt y sobrescribir el meacutetodo ltSerializegt para que se encuentre de tal forma en que pueda ser serializado (vea la Figura 313)

Objeto a ser serializado 1

1 CArchive

[f --=I- ---7 Archivoexi

u Figura 313 Serializacioacuten

328Patrones de disentildeo utilizados

Se ha planteado la definicioacuten de una arquitectura de clases utilizando patrones de disentildeo debido a que algunos de ellos hacen maacutes faacutecil la extensioacuten de la funcionalidad y mantenimiento

35

Desarrollo de la herramienta

El patroacuten Composite es utilizado para crear de manera uniforme el diagrama sobre el que se trabaja (ver Figura 34) manteniendo una jerarquiacutea de clases uniforme las clases maacutes bajas en la jerarquiacutea definen primitivas de objetos graacuteficos

Se aplica el patroacuten de disentildeo Iterator para hacer recorridos en listas de objetos para realizar diversas operaciones Otro patroacuten de disentildeo del que se hace uso es el Visilor (ver Figura 35)

Para otras actividades que se realizan podriacutea pensarse en que se deberiacutean aplicar otros patrones pero se han evitado algunos (como el patroacuten de disentildeo Builder) para evitar incrementar la complejidad en la arquitectura ya que ai mantener el modelo de la MFC de documentovista la funcionalidad del patroacuten de disentildeo Builder es faacutecilmente reemplazado si se hiciera Uso de eacuteste se aumentariacutea la complejidad excesivamente (nos llevariacutea a perdemos en ocasiones en el paso de mensajes entre clases) dantildeando la facilidad de la arquitectura

33 Diagrama de secuencias

Un Diagrama de Secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten escenario Oacute comportamiento se usan para definir el curso loacutegico de accioacuten de un posible camino a seguir en la resolucioacuten de un problema Seguacuten John Daniels [DANO2] ldquoel principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildean las interacciones de los objetosrdquo

Los Diagramas de Secuencias se utilizan en el modelado de la implementacioacuten de sistemas de software ademaacutes son aplicables en el modelado de requisitos para establecer las comunicaciones existentes entre actores yo clases del sistema Con eacutestos diagramas se logran hacer descripciones de los escenarios y los comportamientos del sistema Con los Diagramas de Secuencias es posible definir protocolos de comunicacioacuten con paso de mensajes ya que dan esa flexibilidad que se requiere Ademaacutes los Diagramas de Secuencias contienen informacioacuten suficiente para que puedan ser transformados a los diagramas de colaboracioacuten [RUM Ol][BOO Oil

331Ciclo de vida del software

Considerando cualquier modelo de ciclo de vida del software (en la figura 314 se muestra el Modelo de cascada) el aacutembito directo de eacuteste Ambiente Visual es en el disentildeo aunque tiene sus vertientes en la codificacioacuten y mantenimiento

36

Desarrollo de la herramienta

Diseno

Codificacibn

I I I I Mantenimiento I

igura 314 Modelo de cascada del ciclo de vida del software

34 Elementos atoacutemicos de la Gramaacutetica

Definicioacuten de los elementos atoacutemicos del lenguaje y su contenido

1 Actor- Representa roles de entidad externos al sistema con el que interactuacutea directamente Los actores pueden ser humanos dispositivos u otros sistemas

2 ClaseObjeto- Determina una Clase u Objeto participante en la interaccioacuten

3 Mensaje-Es una comunicacioacuten entre objetos que contiene informacioacuten Eacuteste se representa con la finalidad a que una accioacuten sea llevada a cabo

4 Mensaje con tiempo- Tiene la misma finalidad que el mensaje la diferencia es que con eacutel se representa un atributo de tiempo

5 Mensaje asiacutencrono Es un mensaje que ocurre en el tiempo de manera independiente a otros mensajes

6 Mensaje de destruccioacuten de objeto- Es un mensaje cuya finalidad es indicar la destruccioacuten del objeto destino

7 Mensaje de creacioacuten de objeto- Es un mensaje que indica la creacioacuten de un objeto

8 Llamada al mismo objeto (Recursividad)- Es usado para modelar llamadas recursivas en el que una operacioacuten es invocada por el mismo objeto

37

Desarrollo de la herramienta

9 Destruccioacuten del objeto (AutodestrucciOacuten)- Puede o no modelarse es representada con una X al final de la liacutenea de vida del objeto

Elementos aulomaacuteticos

1 Liacutenea de Vida- Representa la vida del objeto durante la interaccioacuten

2 Activacioacuten- Muestra el periacuteodo de tiempo en el cual el objeto alguna operacioacuten

341RepresentaciOacuten visual

Representacioacuten visual de los elementos atoacutemicos del lenguaje

Actor

_- A

Mensaje

Mensaje de Creacioacuten de

Objeto

ClaseObjeto

I

Mensaje de retorno

Mensaje de Destruccioacuten de

Objeto

abla 32 Element(

Activacioacuten

Mensaje con tiempo

Autodestruccioacuten

x

atoacutemicos del lengi

taacute realizz

Texto ===I (letra)+ (letra I

numero) letra= AZ I az numero = 09

I

Recursividad ~

I

i j e

io

38

u

Comentario

iexcl

Conector de Comentario

35 Gramaacutetica desarrollada

La gramaacutetica que se propone es una gramaacutetica visual del tipo relacional Una gramaacutetica relacional pertenece a las gramaacuteticas libres de contexto es una 6-iupla G (N C S R Attr P) donde

N es un conjunto finito de siacutembolos no terminales C es un conjunto de siacutembolos terminales S es un siacutembolo distinguido en N llamado siacutembolo inicial R es un conjunto finito de siacutembolos de relacioacuten Attr es un conjunto finito de siacutembolos de atributos P es un conjunto de producciones

Entonces definiendo nuestra gramaacutetica G (N C S R Attr P)

N = Diagrama GrupoClaseObjeto

S = Diagrama

R = mensaje mensajeTiempo mensajeRetomo mensajeAsincrono mensajecrea mensajeDestruye autodestruccioacuten recursividad

R

Attr = entrada salida entradacrea

39

Desarrollo de la herramienta

Definiendo la posicioacuten de los atributos en los elementos visuales

entradacrea ObetaClase

entrada

salida

P =

Diagrama I GrupoClaseObjeto (mensaje (mensajeRetorno

(salida 1) (entrada 2) ) (salida 2) (entrada 1) )

- Diagrama 0 GrupoClaseObjeto

(mensaje (mensaje (mensajeRetomo (mensajeRetomo (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entradacrea 2) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 1) ) (salida 1) (entrada 1) )

entrada

salida

40

Desarrollo de la herramienta

s

-

GrupoClaseObjeto - 1 1 I 2 (mensaje (mensaje (mensajeRetorno (mensajeRetorno (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entradacrea 2) ) (salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 1) ) (salida I ) (entrada I ) )

1 En las gramaacuteticas relacionales una produccioacuten estaacute acompantildeada de las posibles

relaciones que puedan generarse En la primera produccioacuten Diagrama produce a un Actor seguida de un GrupoClaseObjeto el Actor inicia la interaccioacuten con un mensaje y recibe el mensaje de retorno al finalizar la interaccioacuten La segunda y tercera produccioacuten son similares debido a que un GrupoClaseObjeto contiene dos ClaseObjeto que se relacionan de la misma forma

Existe un elemento de la gramaacutetica llamado Attr (Atributo) el cual define la parte de los elementos visuales donde se establecen las relaciones Se han determinado dos atributos (entrada y salida) que para nuestro propoacutesito estaraacuten establecidos en la liacutenea de vida de cada elemento visual (Actor y ClaseObjeto)

Los Comentarios y la Activacioacuten no se consideran en la gramaacutetica Los comentarios son libres de incluirse y relacionarse con cualquier elemento y relacioacuten mencionada anteriormente y la activacioacuten existe siempre que se presente un mensaje (o podriacutea omitirse) Estas consideraciones se realizaron para hacer auacuten maacutes faacutecil la gramaacutetica ya que si se trata de realizar un sistema las restricciones de estos elementos pueden mantenerse en el lenguaje de programacioacuten en el que se desarrolle el sistema

36

Precondiciones

El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias

1 El diagrama de Clases debe existir y estar completo 2 Debe existir un archivo con un diagrama de Warnier por cada diagrama de Clases y

con el mismo nombre de archivo (excepto la extensioacuten del archivo) 3 En el uacutenico diagrama de Warnier de cada Clase se deben modelar todos los meacutetodos

de la Clase 4 No realizar declaraciones de meacutetodos

41

Desarrollo de la herramienta

5 Debe existir un meacutetodo lsquomain()rsquo en el diagrama de Clases

Restricciones

Los meacutetodos deben mantener nombres distintos en las diferentes Clases

Metodologiacutea para la obtencioacuten automaacutetica de los Diagramas de Secuencias

1 Seleccionar el diagrama de Clases

2 Se construye una lista con los nombres de las Clases y los Meacutetodos

3 Se verifica si exista el meacutetodo lsquomain()rsquo en alguna Clase Se busca la existencia de una uacutenica Clase

a La Clase que contenga lsquomain()rsquo se va al inicio de la lista de Clases

b Si no existe lsquomain()rsquo SE TERMINA EL PROCESO

4 Se verifica la existencia de los archivos que contienen el Disentildeo Detallado de los meacutetodos en Wamier para cada una de las Clases si alguno falta SE TERMINA EL PROCESO

5 Se procesa cada uno de los modelos del Disentildeo Detallado de los Meacutetodos generando una lista de secuencias de llamadas por cada uno de los meacutetodos

6 Se verifica que cada llamada corresponda a alguacuten meacutetodo existente (del diagrama de Clases) De no existir ese meacutetodo la llamada entra a una estructura que

7 Se crea una lista de secuencia

a Se inicia con lsquomain()rsquo b Se recorre cada una de las llamadas de los meacutetodos c Se considera invaacutelido el caso de que un meacutetodo intente una llamada

recursiva al meacutetodo lsquomain()rsquo

8 Se muestra un diaacutelogo de resultados en el que se indican las llamadas que no se encnotraron definidas y que pueden ser Llamada a libreriacutea oacute Llamada Erroacutenea

42

Capiacutetulo 4

Prue6as y su6taaacuteos

En eacuteste capiacutetulo se da a conocer el detalle de las pruebas y de los resultados obtenidos Se describen los casos de prueba con los que se realizoacute la evaluacioacuten del sistema asiacute tambieacuten se presentan comentarios acerca de los resultados obtenidos

Pruebas y Resultados

41 Recursos teacutecnicos utilizados

Para llevar a cabo las pruebas al sistema S3C se utilizaron los siguientes equipos de Coacutemputo

Computadora de escritorio

256MB RAM Disco Duro 80G Monitor 17rdquo SAMSUNG

AMD Athlon XP 1600+ I4Ghz

Computadora de escritorio Intel Pentium 4 - 128MB RAM Disco Duro 40G Monitor 15rdquo i -

42 Descripcioacuten del plan de pruebas

Las pruebas establecen el Uacuteltimo paso desde donde es posible evaluar la calidad y descubrir los errores Las pruebas y la validacioacuten del software se utilizan para comprobar que el sistema cumple con las expectativas del usuario

En esta seccioacuten se describen los casos de prueba que se realizaron al prototipo de S3C en conjunto a la suite cenidet-UML Para cada uno de los casos se presenta el objetivo el procedimiento que se siguioacute para la prueba y se muestran los resultados obtenidos - _

Las pruebas a realizar son los siguientes

Caso 1 Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Caso 2 Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Wamier

Caso3 Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Wamier

Caso4 Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo 5

44

Pruebas y Resultados

43 Resultados

431 Caso 1

5 Y

IZ =

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoSirdquo 4 Seleccionar el archivo ldquoVENTASrdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 41 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

s3c iuevo Proyecto SCUM1

Diagrama de clases

lvendedor I L

3

salida

venta prod

4 venia-oferta vcntaprod =

salida 6

Figura 41 Resultado del caso de prueba 1

45

Pruebas y Resultados

432 Caso 2

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Warnier (almacenwar cajawar vendedorwar) que ya cxisten (del caso de prueba I )

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoNordquo 4 Agregar las siguientes Clases con los respectivos meacutetodos y atributos

a Claseldquovendedorrdquo Meacutetodos ldquoventa mainrdquo b Claseldquoalmacenrdquo Meacutetodos ldquoentrada salidardquo c Claseldquocajardquo Meacutetodos ldquoventagrodrdquo

5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 42 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

Diagrama de daseo lisgrama dcsccucncis

MOIDOC Anivo

venta prod

salida

1 Ycrdquo1a 2

I 4 vcrdquolD~o1cn venta prod gt

salida 6 i Figura 42 Resultado del caso de prueba 2

46

Pruebas y Resultados

r

433 Caso 3

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Warnier

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 43 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

5

Error al tratar de abrir el archivo A bZwar

Aceptar i

Faltan Archivos de Disentildeos Detallados de Meacutetodos 1 1 A No se puede crear el diagrama de secuencias

Figura 43 Resultado del caso de prueba 3

47

Pruebas y Resultados

434 Caso 4

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 44 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

lsquo I

~ _ i i _ l _ Repaado ~~ ~ ~ 6~ ampA Figura 44 Resultado del caso de prueba 4

48

Pruebas y Resultados

PRUEBA DESCNPCION CASO 1 Mostrar la funcionalidad del

Sistema S3C a partir de un

44 Anaacutelisis de Resultados

RESULTADOS Se comproboacute la correcta funcionalidad del Sistema S3C a partir de un diagrama

CASO 3

CASO4

I diagrama de Clases cxistcnte I de Clases existente CASO 2 I Mostrar la funcionalidad del I Sc comproboacute la corrccta funcionalidad

Sistema S3C a partir de un del Sistema S3C a partir de un diagrama diagrama de Clases que se de Clases que se construye al momento construye al momento Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el Secuencias si falta alguno de los diagrama de Secuencia si falta alguno diagramas de Warnier Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el secuencias si hace falta el meacutetodo diagrama de Secuencias al faltar el ldquomain ()rdquo meacutetodo ldquomain()rdquo

de los diagramas de Warnier

Los resultados obtenidos de cada uno de los casos establecidos demuestran que se validoacute la funcionalidad del prototipo con los requisitos definidos en el alcance de este proyecto

a lt

49

Conclusiones y Tru6ajos Futuros

Aquiacute se dan a conocer las conclusiones y se describen los posibles trabajos futuros para la continuacioacuten de eacuteste proyecto

F

51 Conclusiones

Conclusiones y trabajos futuros

Se ha creado un Ambiente Visual que permite obtener de forma automaacutetica los Diagramas de Secuencias en base a los diagramas de Clases y al disentildeo detallado de los meacutetodos descritos con diagramas de Warnier cumpliendo con los objetivos planteados para este trabajo

La tesis aporta principalmente La generacioacuten automaacutetica de los diagramas de secuencias y la eliminacioacuten de inconsistencias al mantener una validacioacuten directa de los diagramas de clases y los diagramas de Warnier que son utilizados

Esta validacioacuten es lograda a traveacutes del uso de la gramaacutetica visual relaciona1 que se ha definido (veacutease el capiacutetulo 3) Esta gramaacutetica visual establece reglas para la correcta construccioacuten de los diagramas de secuencias

P De esta manera se establece que la hipoacutetesis ldquoEs posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodosrdquo Es verdadera

52 Trabajos Futuros

Un Diagrama de Secuencias puede convertirse en un Diagrama de Colaboracioacuten por lo tanto un trabajo futuro es la construccioacuten automaacutetica de un Diagrama de Colaboracioacuten a partir de uno de Secuencias existente

Es posible calcular la meacutetrica de acoplamiento al tener un Diagrama de Secuencias construido

La Ingenieriacutea directa de un Diagrama de Secuencias estableciendo la validacioacuten en la construccioacuten de todos los elementos visuales que UML define

La propagacioacuten de las modificaciones de un Diagrama de Secuencias a los Diagramas de Clases y los Diagramas de Warnier

La modificacioacuten del coacutedigo fuente mediante los cambios establecidos en un Diagrama de Secuencias

51

[ALC03]

[BLA98]

[B0099]

[BOOOi]

[BR097]

[CHA90]

[DAN02]

[GLA02]

[HAC98]

[HER03]

4

Alcate1 Computer Associates International inc Electronic Data Systems Corporation Hewlett-Packard Company IBM Corporation I-Logix IntelliCorp Kabira Technologies Kennedy Carter Microsoft Corporation Object Management Group Oracle Corporation Project Technology Ptech Inc Rational Software Corporation Reich Technologies Softeam Taskon A S Telelogic Unisys Corporation ldquoOMG Unified Modeling Language Specificationrdquo Version 15 Unified Modeling Language 2003

Blaha Michael Rumbaugh James Premerlani William Eddy Frederick Lorensen William ldquoObject-oriented modeling and designrdquo Prentice Hall 484 Paacuteginas ISBN 0-13-629841-9 QA-769-03S-B53-19981998

Booch Grady Rumbaugh James Jacobson Ivar ldquoEl lenguaje unificado de modeladordquo Addison Wesley 432 Paacuteginas ISBN 84-7829-028-1 1999

Booch Grady Rumbaugh James Jacobson Ivar ldquoThe Unified Modeling Language User Guiderdquo Addison Wesley 2001

Brown David ldquoAn introduction to object-oriented analysis objects in plain Englishrdquo John Whiley amp Sons Inc 700 Paginas ISBN 0-471-1 1028-0 QA-769-035-B76-1997 1997

Chang Shi-Kuo ldquoVisual Languages and visual programmingrdquo Plenum Press 340 Paacuteginas ISBN 0-306-43428-8 QA-7665-V57-1990 1990

Daniels John ldquoModeling with a sense of purposerdquo Design - IEEE Software JanuaryEebmary 2002

Glasgow Universidad Reino Unido ldquoA UML Editor in Javardquo (lthttplstudentsdcsglaacuWstudentspainjfproject-reportproject-re port-htmV4thYearReporthtrnlgt 2002)

T Hackos JoAnn C Redish Janice ldquoUser and Task Analysis for Interface Designrdquo Wiley Computer Publishing 488 Paacuteginas ISBN QA-769-U83- H33-1998 1998

Hemaacutendez Velaacutezquez M ldquoIngenieriacutea inversa de coacutedigo fuente en C++ para la obtencioacuten de su disentildeordquo Tesis AT-379 (03-0334) 2003

Conceptos generales

[HIX93]

[JAC93]

[JAC99]

[JOY98]

[LAR97]

[MAR]

[MIC99]

[MIC02]

[MOU98]

Hix Deborah Hartson H Rex ldquoDeveloping user interfacesrdquo 381 Paacuteginas ISBN 0-471-57813-4 QA-769-U83-H59-1993 1993

Jacobson Ivar Christerson Magnus Jonsson Patrik Overgaard Gunnar ldquoObject oriented software engineeringrdquo Addison Wesley ISBN 0-20 1 - 54435-0 QA-7676-D47-J63-1993 1993

Jacobson Ivar Booch Grady Rumbaugh James ldquoEl proceso unificado de desarrollo de softwarerdquo Addison Wesley 438 Paacuteginas ISBN 84-7829-036- 2 1999

Joyanes Aguilar Luis ldquoProgramacioacuten orientada a objetosrdquo McGruw Hill ISBN 84-481-0590-7 1998

Larman Craig ldquoAplying UML and Patternsrdquo Prentice Hull 507 Paacuteginas ISBN 0-13-748880-7 QA-769-035-L37-1997 1997

Marriot Kim Meyer Bemd ldquoVisual Language Theoryrdquo Springer 381 Paacuteginas P-935-V567-1998 1998

Microsoft ldquoMicrosoft Visual C++ 6 manual del programadorrdquo McGraw Hill ISBN 84-481-2127-9 QA-7673-Cl53-23718-1999 1999

Microsoft ldquoVisiordquo (lthttpwwwmicrosoftcomofficevisiogt 2002)

B Mourao Luis X ldquoUniversal Modeling Language Part 11 UML Notation - Case Sequence and Collaboration Diagramsrdquo Lan Times Magazine (~httpwwwlantimescomltpartsdiscussdiscuss6Ohtm~) 1998

No Magic ldquoMagicDrawrdquo (lthttpwwwmagicdrawcomgt 2002)

Object Insight ldquoJvisionrdquo (lthttpwwwobject-insightcomgt 2002)

Rational Software Microsoft I Hewlett-Packard Oracle Sterling Software MCI Systemhouse Unisys ICON Computing IntelliCorp i-Logix IBM ObjectTime Platinum Technology Ptech Taskon Reich Technologies Sofieam ldquoUML Summaryrdquo Version 11 Unified Modeling Language 1997

Rational ldquoRational Roserdquo (lthttpwwwrationalcomproductosrosegt 2002)

Rikki Kirzner ldquoAnalysis Modeling and Design Tools Market Forecast and Analysis 2001-2005rdquo Bulletin Published Under Services Application Design and Construction Tools Application Development and Deployment Strategies Documento Nuacutemero 24809 Junio 2001

53

Conceptos generales

[RIM92] Rimrner Steve ldquoGraphical user interface programmingrdquo 423 Paacuteginas

1992

Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language reference manualrdquo Addison Wesley 550 Paacuteginas ISBN 0-201-

ISBN 0-8306-2475-9 ISBN 0-8306-2472-4 (pbk) QA-769-083-R55G

[RUM99]

30998-X QA-7676-D47-R85-1999 1999

[RUM299] Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language user guiderdquo Addisoiz Wesley 482 Paacuteginas ISBN 0-201 -57 168-4 QA-7676-D47-B66-1999 1999

[SMA02] SmartDraw ldquoSmartDrawrdquo (lthttpwwwsmartdrawcomgt 2002)

[SHU88] 9 - Shu Nun C ldquoVisual Programmingrdquo Van Nostrand Reinhold ISBN 0-422- 28014-9 ISBN 0-422-01 164-4 QA-7665-S55 1988

[THI90] Thimbleby Harold ldquoUser Interface Designrdquo Acm press 470 Paacuteginas ISBN 0-201 -41 61 8-2 QA-769U83-T772~- 1990 1990

[WENO2] Wences Diaz MF ldquoModelo de Ingenieriacutea Inversa para la obtencioacuten de disentildeo detallado basado en LEVISSrdquo Tesis (02-0014) 2002

54

Anexo A

Conampuracioacuten de Microsoft Vkua[C++ 6 O

Este anexo indica las configuraciones que se utilizaron para la compilacioacuten de SCUML y s3c

Configuracioacuten de Microsoft Visual c++ 60

Debido a la integracioacuten de los proyectos de InverSOODA e InverDDVi con S3C se cumplioacute con los requisitos previos de ambos proyectos

El compilador usado en el proyecto fue el Microsoft Visual C++ 60

Para el cumplimiento con la funcionalidad de InverSOODA se instaloacute el ANTLR la versioacuten 271 Se descargoacute del sitio l i l l ~ ~ ~ ~ ~ ~ t l ~ l ~ - ~ t - ~ la versioacuten mencionada en un archivo comprimido (en formato zip) Se colocoacute el paquete descomprimido en el directorio ldquoDIANTLR-271 I rdquo

Recomiendo ampliamente que el directorio principal de ANTLR se copie en el directorio raiacutez de cualquier unidad de disco debido a que experimenteacute problemas de compilacioacuten cuando ANTLR no se encontraba en el directorio raiacutez

Io015

Source Browser AlttF12 I u c Ersquo V I

Visual Component Mgnager

- - ~ ~ ~ ~~

P2 Registrar control

A Contenedor de prueba de controles ActiveX

A Usor de objetos OLE y COM

Buacutesqueda de errores

A Y++ MFC Iracer

Customize options

~ - q- ~ Macro

Eecord Quick Macro Cbl+ShiR+R Pay Quick Macro Ctrl+ShiR+P

En el menuacute Tools (Herramientas) seleccione el sub-menuacute Options ltopcionesgt

56

Configuracioacuten de Microsoft Visual C++ 60

En la siguiente ventana de diaacutelogo debe agregar la direccioacuten en donde se encuentra el ANTLR

Agregar la ruta del directorio de ANTLR hasta el subdirectorio

libcpp

Editor I Tabs I Debug I Compatibility 1 Build Dneclolies I a I Chow directories for - Platfolm -

- Directories I x ) 4 jWin32 -] llnclude files

m cancd I

57

Configuracioacuten de Microsoft Visual C t+ 60

Se ha creado una libreriacutea (anrlrliblib) de ANTLR la cual ya estaacute situada en el directorio del proyecto SCUML (ISCUML) y no debe ser movida o eliminada

I

Geneial 1 Debug I CC++ Link I Category

Output file name bebugSCUMLexe

Objectljibrary modules 4 anllrliblib

li Generate debug lnfo r Ignore all defaull lbaries D ~ i n k j n ~ ~ ~ t a n ~ r ~ e n e r ~ ~ ~ mapfile

r Enable psafilrng

Proiec1 Ootionn

pq Cancel 1 Libreriacutea de ANTLR que debe existir 1 I para que se compile correctamente

58

Anexo B

~ u iacute aacute raacutepida de uso deC Sistema S3C

5 Este anexo indica de forma raacutepida la manera de utilizar S3C para crear un diagrama de secuencias de forma automaacutetica

Guiacutea Raacutepida de uso del Sistema S3C i

Para indicar la creacioacuten de un diagrama de secuencias en forma automaacutetica se debe ir a la barra del costado izquierdo y presionar ldquoNuevo Proyecto SCUMLrdquo

I s3c I ~ Nuevo Proyecto SCUML ~ _ _ - I Diagrama de clases ~ Diagrama de secuencias 1 MDI DOC Activo

-

Apareceraacute un documento llamado ldquoSCUMLV en donde el simbolo corresponde a un numero consecutivo iniciando desde 1 (uno)

$ e Despueacutes se presiona ldquoDiagrama de clasesrdquo Habraacute que para indicarle al sistema si se requiere abrir un diagrama de clases existente o realizar uno nuevo

i

iquestAbrir un documento existente

No Cardquo~ear

AI presionar ldquoSirdquo se debe indicar cual es el archivo del diagrama de Clases en el cuadro de diaacutelogo siguiente

~~ - 11dMis documentos rsquo 2 M i P C i lsquo h s sitios de red

I

AI presionar ldquoNordquo en ldquoAbrir un documento existenterdquo se nos mostraraacute un documento vacio para crear un diagrama de clases

60

Guiacutea Raacutepida de uso del Sistema S3C

Para ambas opciones se requiere que los diagramas de Wamier ya se encuentren construidos Y para continuar el proccso se selecciona el documento ldquoSCUMLVrsquo creado al inicio y despueacutes presionar el botoacuten nombrado ldquoDiagrama de secuenciasrdquo localizado en la barra de hcrraiiiicntas del costado izquierdo

Ha iniciado el proceso de construccioacuten del diagrama de secuencias Si no existen errores al terminar el proceso se le mostraraacute un cuadro de diaacutelogo llamado ldquoResultadosrdquo en donde le mostraraacute las llamadas de las que no localizoacute su definicioacuten

- - -

Cancel 1 D e las siguientes llamadas es posible que esten mal escritas o peitenezcan a la libreiia del Lenguaie Verifique ya que no se encontraron sus definiciones

A continuacioacuten se mencionan los posibles errores que finalizan el proceso de la creacioacuten automaacutetica de los diagramas de secuencias en S3C

Cuando no exista un meacutetodo lsquomainrsquo definido en el diagrama de clases

No se encontro el meacutetodo lsquomain()rsquo que inicie la secuencia I A No se puede crear el diagrama de secuencias

p==amp=q

61

Guia Raacutepida de uso del Sistema S3C

Cuando se definan niultiples metodos lsquoinainrsquo en el diagrama de clases

Multiples meacutetodos lsquomainOlsquo Imposible decidir el inicio de secuencia

Aceptar i

Si un meacutetodo definido en Wamier realiza una llamada a lsquomainrsquo se cancelara el proceso

Llamada NO VALIDA al meacutetodo principal main

(iAcp-j(

4 i

CI Y rdquoldquoldquoI i 11 1-T

IZNTRO Gt INFORMACION

62

  • Tabla de Contenido
  • Listado de Figuras
  • Listado de Tablas
  • Notacioacuten
  • Introduccioacuten
  • Capitulo 1 Conceptos Generales
    • 11 Antecedentes
    • 12 Trabajos relacionados
      • 121 Tabla comparativa
        • 13 Definicioacuten del problema
        • 14 Objetivo de la Tesis
          • Objetivos especiacuteficos de la tesis
            • 15 Hipoacutetesis de investigacioacuten
            • 16 Alcances y limitaciones del trabajo de tesis
              • Capitulo 2 Marco Teoacuterico
                • 21 Modelado de sistemas de software
                • 22 Interfaz de usuario (Mecanismos de interaccioacuten)
                • 23 Lenguajes Visuales
                • 24 Programacioacuten orientada a objetos
                • 25 Lenguaje de Modelado Unificado (UML)
                  • Desarrollo de la herramienta
                    • 31 Disentildeo de la Arquitectura
                      • 311 Requisitos (Diagrama de Casos de uso)
                        • 312Modelo Conceptual
                        • 313Diagramas de clases
                        • 32 Elementos de la arquitectura
                          • 321 Microsoft Foundation Class (MFC)
                            • 322Arquitectura Documento Vista
                            • 323Integrando Ambientes en Visual c++
                              • 324 Interfaz de Muacuteltiples Documentos (MDI)
                                • 325Recursos Diaacutelogos Menus y Barras de Herramientas
                                  • 326 Notacioacuten estaacutendar
                                  • 327 Estructura de datos persistencia y recuperacioacuten
                                    • 328Patrones de disentildeo utilizados
                                      • 33 Diagrama de secuencias
                                        • 331Ciclo de vida del software
                                          • 34 Elementos atoacutemicos de la Gramaacutetica
                                            • 341 Representacioacuten visual
                                              • 35 Gramaacutetica desarrollada
                                              • 36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias
                                                  • Capitulo 4 Pruebas y Resultados
                                                    • 41 Recursos teacutecnicos utilizados
                                                    • 42 Descripcioacuten del plan de pruebas
                                                    • 43 Resultados
                                                      • 431 Caso
                                                      • 432 Caso2
                                                      • 433 Caso
                                                          • Conclusiones y trabajos futuros
                                                            • Trabajos futuros
                                                            • Referencias
                                                            • Anexo A Configuracioacuten de Microsoft Visual C+t
                                                              • Figura 11 - Arquitectura de la suite cenidet-UML
                                                              • Figura 21 -Programacioacuten Visual
                                                              • Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de
                                                              • Figura 32 -Diagrama de Casos de Uso para el S3C
                                                              • Figura 33 -Modelo Conceptual
                                                              • Figura 34 - Diagrama de Clases -Control del Diagrama -
                                                              • Figura 35 - Diagrama de Clases - Patroacuten Visitor -
                                                              • Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento
                                                              • Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)
                                                              • Figura 38 -Dialogo Caracteriacutesticas del Objeto
                                                              • Figura 39 -Dialogo Mensaje
                                                              • Figura 3 IO - Menuacute de los Diagramas de Secuencias (estaacutendar)
                                                              • Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias
                                                              • Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)
                                                              • Figura 313 - Serializacioacuten
                                                              • Figura 314 -Modelo de cascada del ciclo de vida del software
                                                              • Figura 41 - Resultado del caso de prueba
                                                              • Figura 42 -Resultado del caso de prueba
                                                              • Figura 43 -Resultado del caso de prueba
                                                              • Figura 44 -Resultado del caso de prueba
                                                              • Tabla 11 - Tabla comparativa
                                                              • Tabla 31 -Prefijos estaacutendar de identificadores
                                                              • Tabla 32 -Elementos atoacutemicos del lenguaje
                                                              • Tabla 41 - Resumen de los resultados de las pruebas realizadas

i 4

Resu men

La investigacioacuten y el producto de la tesis estaacuten inmersos en la etapa del disentildeo de sistemas de software

El prototipo S3C (producto de la tesis) permite la obtencioacuten de diagramas de secuencias de UML tomando como base la informacioacuten de un diagrama de clases y de varios documentos modelados con diagramas de Warnier (disentildeo detallado de los meacutetodos)

S3C realiza un proceso automaacutetico para la obtencioacuten de los diagramas de secuencias La construccioacuten de los diagramas de secuencias en S3C estaacute soportada con una gramaacutetica visual relacional El propoacutesito de la gramaacutetica es validar la construccioacuten de los diagramas de secuencias de UML

En el aacutembito de los diagramas de secuencias de UML no existen aplicaciones comerciales oacute proyectos educativos que se apoyen en una gramaacutetica visual para soportar la construccioacuten de los diagramas de secuencias y tampoco existen aplicaciones que permitan a partir de los diagramas de clases y del disentildeo detallado de los meacutetodos generar automaacuteticamente los diagramas de secuencias

4 _

i d

Abstract

The research and the product of this thesis are immersed in the phase of design of software systems

Prototype S3C (product of this thesis) allows to obtain UML sequence diagrams based on the information of a class diagram and several documents modeled with wamier diagrams (detailed design of the methods)

S3C makes an automatic process in order to obtain sequence diagrams the construction of sequence diagrams in S3C is supported with a relational visual grammar The purpose of the grammar is to validate the construction of UML sequence diagrams

il

In the scope of UML sequence diagrams do not cxist commercial applications or educative projects that are based on a visual grammar to support the construction of sequence diagrams Also there arenrsquot applications that allow the automatic generation of secuence diagrams from class diagrams and the detailed design of methods

Tabla de Contenido

Tabla de Contenido

Listado de Figuras

Listado de Tablas

Notacioacuten

Introduccioacuten

Capitulo 1 Conceptos Generales

11 Antecedentes

12 Trabajos relacionados

121 Tabla comparativa

13 Definicioacuten del problema

14 Objetivo de la Tesis

141 Objetivos especiacuteficos de la tesis

15 Hipoacutetesis de investigacioacuten

16 Alcances y limitaciones del trabajo de tesis

Capitulo 2 Marco Teoacuterico

21 Modelado de sistemas de software

22 Interfaz de usuario (Mecanismos de interaccioacuten)

23 Lenguajes Visuales

24 Programacioacuten orientada a objetos

25 Lenguaje de Modelado Unificado (UML)

Capitulo 3 Desarrollo de la herramienta

31 Disentildeo de la Arquitectura

311 Requisitos (Diagrama de Casos de uso)

312Modelo Conceptual

313Diagramas de clases

Paacutegina

1 iv V

vi

1

2

3 4

6

6 7

7

8

8

9 10 11 13 16 17

21 23 23 25 25

1

32 Elementos de la arquitectura

321 Microsoft Foundation Class (MFC)

322Arquitectura Documento Vista

323Integrando Ambientes en Visual c++ 324 Interfaz de Muacuteltiples Documentos (MDI)

325Recursos Diaacutelogos Menus y Barras de Herramientas

326 Notacioacuten estaacutendar

327 Estructura de datos persistencia y recuperacioacuten

328Patrones de disentildeo utilizados

33 Diagrama de secuencias

331Ciclo de vida del software

34 Elementos atoacutemicos de la Gramaacutetica

341 Representacioacuten visual

35 Gramaacutetica desarrollada

a -

Tabla de Contenido

36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias

Capitulo 4 Pruebas y Resultados

41 Recursos teacutecnicos utilizados

42 Descripcioacuten del plan de pruebas

43 Resultados

431 Caso 1

432 Caso2

433 Caso 3

434 Caso4

44 Anaacutelisis de resultados

Conclusiones y trabajos futuros

Conclusiones

Trabajos futuros

27

27

28

29

29

31

33

34

35

36

36

37

38

39

41

43

44

44

45

45

46

47

48 49

50 51 51

i

lt

11

i Referencias

Anexo A Configuracioacuten de Microsoft Visual C+t 60

Anexo B Guiacutea raacutepida de uso del sistema S3C

Tabla de Contenido

52 59

lt 111

Listado de Figuras

3

Figura 11 - Arquitectura de la suite cenidet-UML

Figura 21 -Programacioacuten Visual

Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de Secuencias Figura 32 -Diagrama de Casos de Uso para el S3C

Figura 33 -Modelo Conceptual

Figura 34 - Diagrama de Clases -Control del Diagrama -

Figura 35 - Diagrama de Clases - Patroacuten Visitor - Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento Vista Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)

Figura 38 -Dialogo Caracteriacutesticas del Objeto

Figura 39 -Dialogo Mensaje

Figura 3 I O - Menuacute de los Diagramas de Secuencias (estaacutendar)

Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias

Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)

Figura 313 - Serializacioacuten

Figura 314 -Modelo de cascada del ciclo de vida del software

Figura 41 - Resultado del caso de prueba 1

Figura 42 -Resultado del caso de prueba 2

Figura 43 -Resultado del caso de prueba 3

Figura 44 -Resultado del caso de prueba 4

Paacutegina

3

13

22

23

25

26

26

29

30

31

32

32

32

34

35

37

45

46 47

48

iv

Tabla 11 - Tabla comparativa

Tabla 31 -Prefijos estaacutendar de identificadores

Tabla 32 -Elementos atoacutemicos del lenguaje

Tabla 41 - Resumen de los resultados de las pruebas realizadas

Listado de Tablas

Paacutegina

6 33

38 49

V

Notacioacuten

La siguiente es la notacioacuten de la que se haraacute uso

ltCObjectgt

ltGetDocunteiztgt

MiClase MiMetodo

9 Liacutenea de Coacutedigo

Mensaje

Clase de la MFC ( Microsoft Fundation Class)

Meacutetodo de una clase de la MFC

Clase desarrollada Meacutetodo de una clase desarrollada

Liacutenea o Bloque de coacutedigo

Elemento del Diagrama de Secuencia

vi

I Introduccioacuten

L~ tesis se enfoca hacia el desarrollo de sistemas de software centrados en el modelado mediante diagramas de secuencias definidos por el Lenguaje de Modelado Unificado (UML) La investigacioacuten y el producto de la tesis estaacuten inmersos en la etapa del disentildeo de sistemas de software

El producto (prototipo) de la tesis denominado S3C permite la obtencioacuten de diagramas de secuencias de UML tomando como base la informacioacuten de un diagrama de clases y de varios documentos modelados con diagramas de Wamier (disentildeo detallado de los meacutetodos)

Para la elaboracioacuten de los diagramas de clases se hace uso del ambiente existente InverSOODA [HER03] Y para el modelado de los documentos Wamier se ha tomado el ambiente InverDDVi [WEN02] Ambos ambientes visuales son productos de tesis anteriores y se han integrado en un solo prototipo denominado SCUML (Suite cenidet - UML)

(i

S3C realiza un proceso automaacutetico para la obtencioacuten de los diagramas de secuencias en este proceso solo se requiere indicar el diagrama de clases del que se basaraacute La construccioacuten de los diagramas de secuencias en S3C estaacute soportada con una gramaacutetica visual relacional El propoacutesito de la gramaacutetica es validar la construccioacuten de los diagramas de secuencias de UML

En el aacutembito de los diagramas de secuencias de UML no existen aplicaciones comerciales oacute proyectos educativos que se apoyen en una gramaacutetica visual para soportar la construccioacuten de los diagramas de secuencias y tampoco existen aplicaciones que permitan a partir de los diagramas de clases y del disentildeo detallado de los meacutetodos generar automaacuteticamente los diagramas de secuencias

3

Los temas relacionados a esta tesis son Modelado de Sistemas UML Interfaz de Usuario Programacioacuten Orientada a Objetos y Gramaacuteticas Visuales

El capiacutetulo 1 es de conceptos generales se dan a conocer los antecedentes del proyecto los trabajos relacionados hipoacutetesis alcances y limitaciones

En el capiacutetulo 2 se define el marco teoacuterico de la tesis se describen temas como Modelado de sistemas de software disentildeo de sistemas de software modelado visual lenguajes visuales programacioacuten orientada a objetos y lenguaje de modelado unificado

El capiacutetulo 3 describe el desarrollo del ambiente visual se detalla el modelo conceptual la arquitectura y sus elementos los diagramas de secuencias y la gramaacutetica visual relacional que se desarrolloacute

En el capiacutetulo 4 se muestran los casos de pruebas y los resultados obtenidos Y al final se establecen las conclusiones y se dan propuestas para algunos trabajos futuros 3

1

Capiacutetulo I

Conceptos generalis

En eacuteste capiacutetulo se dan a conocer los antecedentes del proyecto de tesis los trabajos relacionados el problema que resolveraacute la hipoacutetesis a comprobar los alcances y limitaciones

Conceptos generales

11 Antecedentes

Actualmente en el cenidet (Centro Nacional de Investigacioacuten y Desarrollo Tecnoloacutegico) se trabaja en la construccioacuten de un conjunto de ambientes visuales para dar soporte al desarrollo con diagramas que define el estaacutendar UML para elaborar sistemas de software de manera completa raacutepida y eficaz El ambiente de modelado principal se ha denominado suite cenidet-UML y su arquitectura general se muestra a continuacioacuten en la Figura 11

Arquitectura de la suite cenidet-UML

Figura 11 Arquitectura de la suite cenidet-UML

a El producto de software resultante de eacutesta tesis lleva por nombre S3C y como se indica en la figura 11 Las tesis directamente relacionadas son InverSOODA [HER03] e

InverDDVi [WEN02]

InverSOODA (Sistema Orientado a Objetos para Disentildeo y Anaacutelisis incluyendo Ingenieriacutea Inversa) es un Ambiente Visual que permite la elaboracioacuten de diagramas de clases de un sistema de software Los diagramas de clases son una vista estaacutetica y en ella se describe las relaciones que existen entre las entidades llamadas clases Cada una de las clases se divide en tres partes nombre de la clase meacutetodos y atributos Este ambiente permite generar el coacutedigo fuente en lenguaje C++ de un diagrama construido y tambieacuten aplicando la ingenieriacutea inversa es posible obtener un diagrama a partir de un coacutedigo en C++ existente

InverDDVi (Disentildeo Detallado Visual incluyendo Ingenieriacutea Inversa) es un Ambiente Visual cuyo objetivo es apoyar en la elaboracioacuten de diagramas de disentildeo detallado utilizando una notacioacuten basada en Warnier Los diagramas de Warnier sirven para describir una secuencia loacutegica de acciones y mediante su simbologiacutea se logra plasmar definiciones de meacutetodos llamadas a otros meacutetodos ciclos comparaciones lectura de informacioacuten y escritura de informacioacuten Este ambiente permite generar el coacutedigo fuente en C de un diagrama construido y tambieacuten aplicando la ingenieriacutea inversa se puede obtener un diagrama de Warnier a partir de un coacutedigo en C que ya exista

i

3

Conceptos generales

12 Trabajos relacionados

Rational Rose de Rafional

Una de las herramientas mas populares del mercado que utiliza la notacioacuten UML y tiene la capacidad de reingenieriacutea de software para integrar sistemas existentes capacidad de mezclar diferentes lenguajes dentro de un mismo modelo ademaacutes de ingenieriacutea inversa sobre los componentes COM (Component Object Model) ActiveX y Java y con soporte de las arquitecturas MicrosoWCOM y CORBAIDL (The Common Object Request Broker Architecture)

Con Rational Rose se puede trabajar en grupo con capacidades para modelar y visualizar procesos de negocios y requerimientos de sistemas Tiene soporte para generar esquemas objetos-relaciones de bases de datos para realizar anaacutelisis de datos Cuenta con el soporte para analizar sitios Web en ASP (Active Server Pages) y JSP (Java Server Pages) Ademaacutes soporta los lenguajes Java CC++ Visual CC++ [RAT02] 9

SI -

Visio de Microsoft

Visio Enterprise 2002 permite crear diferentes tipos de diagramas como son

1 Diagramas de flujo 2 Planos de oficinas 3 Diagramas de aacuterbol 4 Diagramas de organizacioacuten 5 Liacuteneas de tiempo 6 Mapas geograacuteficos y direccionales 7 Diagramas de sitios Web 8 Diagramas de red 9 Diagramas de UML

Tiene las siguientes caracteriacutesticas diagramacioacuten e importacioacuten de servicios de directorio reingenieria de bases de datos disentildeo y documentacioacuten de bases de datos diagramacioacuten de software ingenieriacutea directa e inversa de coacutedigo replicacioacuten exacta por medio de diagramas de equipos y configuraciones de red diagramacioacuten automatizada y ambiente colaborativo

Visio da un conjunto completo de herramientas de diagramacioacuten de redes para planear y documentar claramente las redes existentes Ademaacutes para crear esquemas eleacutectricos mecaacutenicos y de procesos pueden crearse diagramas complejos con facilidad y poco entrenamiento

A las aplicaciones existentes se les puede realizar la ingenieriacutea inversa para obtener el disentildeo y tambieacuten crear nuevos disentildeos Proporciona herramientas para crear diagramas de bases de datos y es posible realizar ingenieriacutea inversa de esquemas existentes en bases de datos cliente servidor como SQL Server IBM Oracle y otros [MIC02]

4

Conceptos generales

e JVision 21 de Object Insight

JVision permite en la ingenieriacutea directa la creacioacuten de clases variables y meacutetodos con lo cual genera plantillas de coacutedigo para programadores en Java Los diagramas se pueden exportar a HTML La documentacioacuten puede integrarse con JavaDoc de Sun JVision da el soporte para ingenieriacutea inversa para el lenguaje Java

Se pueden crear todos los diagramas definidos por UML en los diagramas de secuencias da la oportunidad de dibujar clases liacuteneas liacuteneas de tiempo de vida y marca de destruccioacuten de objetos ofrece ademaacutes el soporte para las acciones de llamada regresar valor enviar accioacuten crear accioacuten y eliminar accioacuten [OBJO2]

MagicDraw 6 de No Magic

Es una herramienta CASE con soporte para trabajo en grupo Esta disentildeado para analistas 6 de negocios analistas de software programadores ingenieros de calidad y

documentadores Esta aplicacioacuten provee la capacidad para crear los diagramas definidos por UML (soporta UML 14) Cuenta con el soporte de ingenieriacutea inversa y generacioacuten de coacutedigo para C++ C Java y CORBNIDL Tiene integracioacuten con NetBeans se actualiza automaacuteticamente disponible en aacuterabe portugueacutes franceacutes italiano ingles (US) alemaacuten espantildeol japoneacutes y coreano

Tiene la caracteriacutestica de soportar la adaptacioacuten de los elementos a colores que el usuario defina Los diagramas pueden exportarse a imaacutegenes JPG EMF WMF EPS y DXF En los diagramas de secuencia da oportunidad de definir roles textos notas mensajes de varios tipos al mismo objeto recursivo ademaacutes de la relacioacuten a las notas y las liacuteneas de vida Es posible guardar los diagramas como imaacutegenes de mapas de bits o vectores Mantiene ademaacutes una vista pequentildea a escala del diagrama completo [NoA402]

e

SmariDraw Professional Plus de SmariDraw

Todos los dibujos pueden agregarse en las aplicaciones de Microsoft como son Word Excel PowerPoint Contiene maacutes de 50000 (1000 en la versioacuten estaacutendar) formas predefinidas ejemplos y plantillas Los diagramas pueden ser exportados a imaacutegenes WMF BMP JPG GIF TIF y otros Incluye un convertidor de archivos de VISIO

Con esta herramienta es posible crear diagramas de flujo diagramas de bloque diagramas de flujos de datos diagramas de organizacioacuten aacuterboles de decisioacuten disentildeo de redes Gantt diagramas de flujo de procesos diagramas de administracioacuten de calidad diagramas eleacutectricos diagramas mecaacutenicos diagramas quiacutemicos liacuteneas de tiempo planes de espacio posters mapas formas y tambieacuten da soporte para UML es posible dibujar objetos actores activacioacuten de los objetos mensaje mensaje de retorno mensaje asiacutencrono mensaje con tiempo liacutenea de vida del objeto marca de destruccioacuten del objeto y ciclos (descrito con un rectaacutengulo y una condicioacuten de salida) [SMA02]

5

Conceptos generales

Producto Soporta Diagramas de UML Secuencias

Creacioacuten automaacutetica de diagramas de

El Rational Rose El Visio

Jvision

Magic D r a w

a a El Fl El a El El

I ~

I ~

I -

Ambiente de modelado de

a a SmartDraw El

Tabla I Tabla comparativa

Todas las herramientas descritas anteriormente cuentan con caracteriacutesticas sobresalientes para el disentildeo y modelado de sistemas de software pero ninguna de ellas genera automaacuteticamente los diagramas de secuencia con base en los diagramas de clases y el disentildeo detallado de los meacutetodos asiacute tambieacuten ninguna de ellas realiza un caacutelculo de los canales de comunicacioacuten abiertos entre las clases que conforman el sistema

iexcla la A UML Editor in Java

13 Definicioacuten del problema

El modelado de sistemas utilizando el estaacutendar de UML en diversos productos comerciales prototipos de laboratorio elaborados en universidades y centros de investigacioacuten atienden la perspectiva baacutesica de la abstraccioacuten general del modelo esto es documentar el modelo del sistema que se requiere sin atender puntos importantes tales como

La generacioacuten automaacutetica de los diagramas de secuencias La correccioacuten de inconsistencias en los diagramas al crearlos de forma separada

El

6

sistemas de software

secuencias utilizando diagramas de a a a

Conceptos generales

Se hace necesaria la creacioacuten de un ambiente visual que permita obtener de forma automaacutetica los diagramas de secuencias en base a los diagramas de clases y al disentildeo detallado de los meacutetodos para facilitar la documentacioacuten la generacioacuten de coacutedigo y el mantenimiento de los sistemas

La obtencioacuten de los diagramas de secuencias estaacute basada en los Diagramas de Clases definidos por UML que son construidos con la herramienta InverSOODA junto con el disentildeo detallado de los meacutetodos construidos con Diagramas de Wamier elaborados con la herramienta InverDDVi

En el estaacutendar UML para la construccioacuten de los diagramas no existe actualmente una sintaxis expliacutecita definida solo existe impliacutecitamente en el uso de los elementos del diagrama por lo que se ha descrito una gramaacutetica visual de tipo relaciona1 como soporte para la construccioacuten de los Diagramas de Secuencias

n ai 14 Objetivo de la Tesis

Construir un ambiente visual que permita al usuario obtener el diagrama de secuencias de manera automaacutetica

141 Objetivos especiacuteficos de la tesis Crear una gramaacutetica que soporte la construccioacuten del diagrama de secuencias Construir de forma automaacutetica el diagrama de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodos

15 Hipoacutetesis de investigacioacuten

Es posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodos

16 Alcances y limitaciones del trabajo de tesis

Los alcances de la tesis se especifican a continuacioacuten

Se elaboroacute la arquitectura del sistema Se definioacute la gramaacutetica de soporte Se desarrolloacute la interfaz en Visual C++ haciendo uso de las MFC Se interactuacutea con los diagramas de clases de InverSOODA Se interachiacutea con el disentildeo detallado de los meacutetodos realizados por InverDDVI Se genera el diagrama de secuencias de forma automaacutetica

7

Conceptos generales

Limitaciones de la tesis

0 No se genera coacutedigo

La investigacioacuten se limita a los diagramas de clases para la vista estaacutetica de los sistemas de software y a los diagramas de Warnier para la vista dinaacutemica de los meacutetodos El ambiente no trabaja en red

No se modifican los archivos de InverSOODA No se modifican los archivos de InverDDVI No se recuperan diagramas de secuencias a partir de coacutedigo legado

4

8

Capiacutetulo 2

Narc0 teoacuterico

En eacuteste capiacutetulo se describen los temas usados para el desarrollo de la tesis iquestQue son los modelos iquestEn que parte del proceso de Ingenieriacutea del Software se usan los modelos o el modelado Se estudia la interfaz de usuario los lenguajes visuales y las gramaacuteticas visuales Se describe el Lenguaje de Modelado Unificado (UML) ademaacutes de la programacioacuten orientada a objetos por ser este paradigma en donde se enfoca este trabajo

Marco teoacuterico

21 Modelado de sistemas de software

un modelo es una abstraccioacuten de algo con el propoacutesito de entenderlo antes de construirlo El modelo omite detalles no esenciales haciendo maacutes faacutecil su manipulacioacuten que la entidad original [BLA98] Un modelo es la simplificacioacuten de la realidad [RUM99] Los propoacutesitos de los modelos son

Probar una entidad fisica antes de construirla Establecer mejor comunicacioacuten con los clientes Visualizar el problema y el sistema desde una mejor perspectiva Reducir la complejidad [BLA98] Capturar y precisar requerimientos y conocimiento del dominio Pensar acerca del disentildeo del sistema Capturar decisiones de disentildeo en una fomia separada que cambia a partir de los requerimientos Generar productos Organizar buscar filtrar obtener examinar y editar informacioacuten acerca de un sistema Explorar muacuteltiples soluciones econoacutemicas Manejar sistemas complejos [RUM99]

El modelado es una probada y bien aceptada teacutecnica de Ingenieriacutea de Software [RUM99] El modelado es parte central de todas las actividades que conducen a la produccioacuten de buen software Se construyen modelos para comunicar la estructura deseada y revisar el comportamiento de nuestro sistema Se construyen modelos para visualizar y controlar la arquitectura del sistema Se construyen modelos para comprender mejor el sistema que estamos construyendo muchas veces descubriendo oportunidades para la simplificacioacuten y la reutilizacioacuten Se construyen modelos para controlar el riesgo [BOO99] La razoacuten fundamental por la que modelamos es porque nosotros construimos modelos que nos ayudan a entender mejor el sistema que estamos desarrollando [RUM99]

El modelado nos permite [RUM99] 1 Visualizar como es el sistema o como queremos que sea 2 Especificar la estructura del sistema 3 Plantear nuestras guiacuteas en la construccioacuten delsistema 4 Documentar las decisiones que hemos tomado

En las etapas del desarrollo del software el modelado es usado en el disentildeo el disentildeo del sistema es la primera etapa en donde se da la aproximacioacuten baacutesica de la solucioacuten al problema seleccionado ademaacutes se decide por la estructura (arquitectura del sistema) y el estilo de la solucioacuten

La arquitectura del sistema provee el contexto sobre el cual se tomaraacuten decisiones mas detalladas en las etapas subsecuentes del disentildeo [BLA98] En el disentildeo modelamos el sistema y encontramos su forma (incluida la arquitehra) para que soporte todos los 3 -

10

Marco teorico

i

4 -I

requisitos -incluyendo los requisitos no funcionales y otras restricciones- que se le suponen [JAC99] Los propoacutesitos del disentildeo son

Adquirir una comprensioacuten en profundidad de los aspectos relacionados con 10s requisitos no funcionales y restricciones relacionadas con los lenguajes de programacioacuten componentes reutilizables sistemas operativos tecnologiacuteas de distribucioacuten y concurrencia tecnologiacuteas de interfaz de usuario tecnologiacuteas de gestioacuten de transacciones etc Crear una entrada apropiada y un punto de partida para actividades de implementacioacuten subsiguientes capturando los requisitos o subsistemas individuales interfaces y clases Ser capaces de descomponer los trabajos de implementacioacuten en partes mas manejables que puedan ser llevadas a cabo por diferentes equipos de desarrollo teniendo en cuenta la posible concurrencia Capturar las interfaces entre los subsistemas Esto ayuda cuando reflexionamos sobre la arquitectura y cuando utilizamos interfaces como elementos de sincronizacioacuten entre diferentes equipos de desarrollo Ser capaces de visualizar y reflexionar sobre el disentildeo utilizando una notacioacuten comuacuten Crear una abstraccioacuten independiente de la implementacioacuten del sistema en el sentido de que la implementacioacuten es un refinamiento directo del disentildeo que rellena lo existente sin cambiar la estructura Esto permite la utilizacioacuten de tecnologiacuteas como la generacioacuten de coacutedigo y la ingenieriacutea de ida y vuelta entre el disentildeo y la implementacioacuten [JAC99]

22 Interfaz de usuario (Mecanismos de interaccioacuten)

El crecimiento de las computadoras personales vendidas en los ~ O rsquo S lanzoacute con fuerza el ldquofaacutecil de usarrdquo como una de las caracteriacutesticas mas importante de un producto de computadora

Las interfaces graacuteficas de usuario no son nuevas se pueden encontrar en las paredes de cuevas al sur de Francia en las piraacutemides de Egipto y en las paredes de muchas ciudades [iUM92] Para el usuario de un sistema interactivo la comunicacioacuten es tan importante como la computacioacuten Para los usuarios regularmente la interfaz es el sistema [HIX93]

Disentildeo de Interfaz Seguacuten Hackos [HAC98] las interfaces estaacuten en todo donde se trabaja con

o Controles en productos de hardware o Etiquetas y sentildeales en el hardware o Pequentildeas pantallas de cristal liquido en maacutequinas de cualquier tipo o Pantallas para aplicaciones de software para terminales de computadoras centrales

Marco teoacuterico

o pantallas para aplicaciones de software en computadoras Personales sistemas operativos como Windows OS2 DOS Macintosh U n b Y Otros

0 Paacuteginas de un sitio WEB 0 Sistemas de ayuda y manuales en-liacutenea 0 Tutoriales incrustados y otros tipos de soporte de funcionamiento O Esquemas de formas y otros documentos

una interfaz es el medio con el cual los usuarios interactuacutean con el producto 0

sistema para lograr SUS objetivos

Interfaz Usable

Para que una interfaz sea usable debe ser transparente y darles a los usuarios la capacidad de lograr cumplir sus metas de forma efectiva y eficiente

Los beneficios presentados en el uso de las interfaces de usuario [TH190] Disfrutar el sistema El usuario disfruta trabajar con un sistema que cuenta con una interfaz bien disentildeada y que le da la funcionalidad y acceso a los recursos de una manera clara y sencilla Proporciona nuevas habilidades Elimina al usuario concentrarse en acciones que la propia interfaz y el sistema hacen dando como resultado que el usuario solo se concentre en lo importante del trabajo Delegacioacuten de tareas La interfaz de usuario permite al usuario no conocer los detalles de la tarea esto es la computadora atiende los detalles de las tareas mientras que el usuario se concentra en asuntos de maacutes alto nivel Seguridad El usuario no necesita estar en lugarespeligrosos para hacer su trabajo

Se da la mayor posibilidad para que el usuario tenga acceso al conocimiento utilizando un sistema interactivo Haciendo las cosas a la primera Las tareas se ejecutan en un orden correcto definido lo que da como resultado un trabajo bien terminado sin necesidad de repetir evitando asiacute altos costos Computando LOS usuarios pueden calcular datos sin necesidad de conocer el proceso para obtener los resultados

Desarrollo

El disentildeo de interfaz es un negocio bastante dificil Eacuteste combina dos complicadas disciplinas psicologiacutea y ciencias de la computacioacuten Estas disciplinas tienen un fondo cultural muy diferente la psicologiacutea atiende a la gente (comprensioacuten y entendimiento) las ciencias computacionales a las maacutequinas (matemaacuteticas y precisioacuten) El disentildeo de las buenas interfaces requiere que estas dos perspectivas esteacuten unidas [THi90]

Hackos dice que las interfaces dan simplicidad y elegancia al trabajo necesario y a la vida e los usuarios Si no es obvio al usuario pero es raacutepida para aprender [HAC98] ademaacutes define caracteriacutesticas comunes de las interfaces usables

o Hacen que el flujo de trabajo sea familiar o confortable o Soportan el estilo de aprendizaje de los usuarios

12

Marco teoacuterico

Visualizacioacuten de Entrenamiento visual Para controlar Soportar interaccioncs Programar con informacioacuten visual visuales expresiones visuales

o Compatibles con los ambientes de trabajo de los usuarios o Se extienden sobre un concepto de disentildeo que es familiar al usuario o Tienen consistencia de presentacioacuten que los hace parecer maacutes confiable y faacuteciles de

aprender o Usan lenguaje y figuras familiares al usuario o faacuteciles de aprender

Datos o informacioacuten acerca de datos

23 Lenguajes Visuales

Los lenguajes visuales son un nuevo paradigma para expresar los sistemas computacionales Ellos ofrecen la posibilidad de manipular directamente los objetos Un lenguaje visual consiste de sentencias visuales Para lenguajes visuales basados en iacuteconos cada sentencia visual es un arreglo espacial de objetos O iacuteconos graacuteficos [CHA90]

Un lenguaje visual es concebido como una coleccioacuten de figuras obtenidas por un arreglo graacutefico de objetos en dos o maacutes dimensiones Los lenguajes visuales pueden ser modelados sintaacutecticamente a traveacutes de un vocabulario un conjunto de relaciones usadas para componer las figuras y un conjunto de reglas describiendo las figuras pertenecientes al lenguaje Los objetos graacuteficos de un vocabulario de un lenguaje visual se caracterizan por contar con un conjunto de atributos Los atributos de un objeto graacutefico pueden ser atributos graacuteficos atributos sintaacutecticos y atributos semaacutenticos [MAR98]

Un lenguaje de programacioacuten visual puede ser informalmente definido como un lenguaje el cual usa algunas representaciones visuales [SHV88]

Programa ylo Disentildeo de Lenguajes de programacioacuten visual ejecucioacuten software Diagramas iconos Formas

Programacioacuten Visual [SHU88]

Gramaacuteticas para la especificacioacuten de lenguajes visuales [MAR98]

a) Gramaacuteticas texfuales generalizadas Este tipo de gramaacutetica provee una adaptacioacuten apropiada de la concatenacioacuten de siacutembolos para dos dimensiones Su principal ventaja es que conservan los elementos teoacutericos de las gramaacuteticas textuales y los eficientes algoritmos de anaacutelisis de eacutestos uacuteltimos Su principal desventaja es que eacutestas gramaacuteticas no son tan poderosas y soacutelo pueden especificar clases restringidas de lenguajes visuales

13

Marco teorico

b) Meacutetodos basados en gramaacuteticas de grafos Un ejemplo de este tiPo de gramaacuteticas son las gramaacuteticas de red Las oraciones generadas con gramaacuteticas de red son grafos dirigidos con siacutembolos en los nodos Estos grafos son llamados redes Una produccioacuten de eacuteste tipo de gramaacuteticas es de la siguiente forma

a - t p E

donde a y p son redes y E es una forma de conectar a p cuando a es conectada a otra red anfitriona

La mayor desventaja es que las gramaacuteticas de red no han probado ser totalmente uacutetiles para la especificacioacuten de gramaacuteticas arbitrarias por la complejidad para rescribir grafos y al hecho de que no todo lenguaje visual estaacute compuesto exclusivamente por grafos

C) Gramaacuteticas de multiconjuntos de atributos En estas gramaacuteticas las producciones rescriben conjuntos o multiconjuntos de siacutembolos que tienen atributos con informacioacuten sobre geometriacutea o semaacutentica La reescritura se controla con restricciones sobre los atributos de los siacutembolos en el lado derecho de las producciones

Un ejemplo de eacutestas gramaacuteticas es la Gramaacutetica Coordinada que especifica notacioacuten matemaacutetica de dos dimensiones En esencia las producciones en una gramaacutetica coordinada n-coordinada libre del contexto tienen la siguiente forma

A -t a donde C F

Todos los siacutembolos de eacuteste tipo de gramaacutetica tienen n atributos geomeacutetricos A es un siacutembolo no terminal a es una cadena no vaciacutea de siacutembolos C es una restriccioacuten sobre los atributos de los siacutembolos en a y F es una expresioacuten que computa los atributos de los siacutembolos de A en teacuterminos de los atributos de los siacutembolos en a no importando el orden de los siacutembolos en a

d) Gramaacuteticas PosicionaZes Las gramaacuteticas posicionales son un formalismo para la definicioacuten e implementacioacuten de lenguajes visuales las gramaacuteticas posicionales extienden naturalmente a las gramaacuteticas libres de contexto Una gramaacutetica libre de contexto posicional PG es una six-tupla (N T S P POS PE) donde

N es un conjunto finito no vaciacuteo de siacutembolos no terminales T es un conjunto finito no vaciacuteo e siacutembolos terminales con N n T = $I S E N es el siacutembolo no terminal de inicio P es un conjunto finito de producciones POS es un conjunto finito de identificadores de relacioacuten binaria PE es un evaluador pictoacuterico

14

Marco teorico

Cada produccioacuten en P tiene la siguiente forma

A -+ X I R I X R2 X ~ I Rm1 xm A

e) Gramaacuteticas de Relacioacuten de siacutembolos Eacuteste es un formalismo sintaacutectico para describir un lenguaje visual donde cada oracioacuten dentro del lenguaje se representa como un conjunto de objetos visuales y un conjunto de relaciones entre objetos

El alfabeto de siacutembolos Vt y el conjunto de relaciones entre siacutembolos Vr una oracioacuten de relacioacuten de siacutembolos w sobre Vt y Vr es un par ( M R) donde

M es un conjunto de elementos-s (v i) con v E Vt y i es un nuacutemero natural R es un conjunto de elementos-r de la forma r (Xi Yj) con Xi Yj E M r E Vr y una relacioacuten r esta contenida entre Xi y Yj

Una gramaacutetica de relacioacuten de simbolos es el conjunto de seis elementos G = (Vn Vt Vr S P R) donde Vn es un conjunto de siacutembolos no terminales Vt es un conjunto de siacutembolos terminales Vr es un conjunto de relaciones entre siacutembolos S es el siacutembolo inicial y P es un conjunto de reglas de reescritura (producciones de elementos-s)

f) Gramaacuteticas relacionales Este tipo de gramaacutetica pertenecen a las gramaacuteticas libres de contexto

La gramaacutetica relaciona1 (RGrsquos) es una 6-tupla G (N C S R Attr P) donde

N C S R Attr P

es un conjunto finito de siacutembolos no terminales es un conjunto de siacutembolos terminales es un siacutembolo distinguido en N llamado siacutembolo inicial es un conjunto finito de siacutembolos de relacioacuten es un conjunto finito de siacutembolos de atributos es un conjunto de producciones de la forma A-gt apF donde A E N a E (nlo)+ Donde n E N cr E E

8 Es un conjunto de relaciones de la forma (r x y) donde r E R y xy son enteros que hacen referencia a un miembro de a y tambieacuten una expresioacuten de la forma (a i) donde a E Attr e i es un entero que hace referencia a un miembrode a

F Es un conjunto de declaraciones de asignacioacuten de caracteriacutesticas de la forma (a O)=x donde a E Attr y x es un entero que hace referencia a un miembro de a o a una expresioacuten de la forma (a i)

15

Marco teoacuterico

24 Programacioacuten orientada a objetos

L~~ meacutetodos orientados a objetos organizan la informacioacuten Y el procesamiento que manipula esta informacioacuten de acuerdo a los objetos delrsquomundo real que la informacioacuten describe [BRO97l

Beneficios de las teacutecnicas orientadas a objetos [BR097] Estabilidad del sistema Mantenibilidad Componentes reusables Confiabilidad Accesibilidad de los datos Participacioacuten del usuario

Seguacuten Graddy Booch la programacioacuten orientada a objetos es ldquoun meacutetodo de implementacioacuten en el que los programas se organizan como colecciones cooperativas de objetos cada uno de los cuales representan una instancia de alguna clase y cuyas clases son todas miembros de una jerarquiacutea de clases unidas mediante relaciones de herenciardquo [JOY 981

Programacioacuten orientada a objetos esencialmente significa programacioacuten usando objetos [JAC93] Los lenguajes orientados a objetos deben soportar los siguientes conceptos

Objetos Abstraccioacuten de datos Encapsulamiento Clases e Instancias Herencia entre clases Polimorfismo

Las propiedades fundamentales de la Programacioacuten Orientada a Objetos son

a Abstraccioacuten Son ideas conceptos y propiedades que se describen en forma general eliminando los detalles Es una estructura de datos y los meacutetodos que manipulan a esos datos

b Encapsulamiento Son las fronteras propias de un objeto bien definidas las cuales protegen los detalles de su representacioacuten interna

c Ocultacioacuten de la informacioacuten Es la propiedad en la que los objetos pueden hacer uso para impedir que otros objetos los usuarios o incluso los programadores conozcan coacutemo estaacute distribuida la informacioacuten

d Herencia Es la propiedad que tiene una clase para heredar atributos y comportamiento a otras clases

e Polirnorfismo Es la propiedad que permite que una entidad pueda cambiar a diferentes formas efectuaacutendose de manera dinaacutemica en tiempo de ejecucioacuten

16

Marco teoacuterico

t

Clases Es la especificacioacuten de una familia de objetos es la declaracioacuten de un tipo de objetos Tambieacuten se dice que una clase es la descripcioacuten de un conjunto de objetos con un comportamiento similar y que esta compuesta de Datos (o atributos) y Meacutetodos o (rutinas acciones operaciones)

Objeto Un objeto es una entidad en la cual se almacenan datos y los meacutetodos o funciones que controlan dichos datos Un objeto es una abstraccioacuten de alguna cosa del mundo real que contiene datos que lo describen y operaciones que solo tienen acceso a esos datos [BR097l Los elementos de los que esta conformado un objeto son

a Las relaciones permiten que el objeto se integre en la organizacioacuten b Las propiedades son los datos que caracterizan el estado de un objeto distinguiendo

asiacute a un objeto determinado de los restantes que forman parte de la misma organizacioacuten

c Los meacutetodos son las operaciones que pueden realizarse sobre la estructura del objeto es decir las acciones que cambian el estado de un objeto y que el objeto es capaz de ejecutar a traveacutes de mensajes y que tambieacuten pone a disposicioacuten de sus descendientes a traveacutes de la herencia

Mensajes Son solicitudes para que se lleve a cabo la operacioacuten indicada y se produzca un resultado

Las razones principales para introducir la tecnologiacutea de objetos son los beneficios de dicha tecnologiacutea

Aumento de la fiabilidad Aumento de la productividad del desarrollador Desarrollo maacutes raacutepido Mejor calidad maacutes alta

Incremento en escalabilidad Mejores estructuras de informacioacuten Incremento de adaptabilidad Reduccioacuten del coacutedigo fuente

Mantenimiento maacutes faacutecil y reduccioacuten de costo

Los elementos de reutilizacioacuten son las clases y objetos

25 Lenguaje de Modelado Unificado (UML)

UML (Unified Modeling Language por sus siglas en ingleacutes Lenguaje de Modelado Unificado) es un lenguaje de modelado visual de propoacutesito general que es utilizado para especificar visualizar construir y documentar las partes de un sistema de software El lenguaje estaacute basado en un pequentildeo nuacutemero de conceptos centrales que la mayoriacutea de los desarrolladores de tecnologiacutea orientada a objetos pueden aprender y aplicar faacutecilmente [RUM99]

17

Marco teoacuterico

y UML Pasado Presente y Futuro

L~~ lenguajes de modelado orientado a objetos aparecieron a mediados de 10s 70rsquos Varias teacutecnicas influenciaron estos lenguajes El nuacutemero de lenguajes de modelado incrementoacute desde menos de 10 hasta maacutes de 50 entre 1989 y 1994 Muchos modeladores teniacutean problemas para encontrar un lenguaje de modelado que satisficiera todas sus necesidades Notablemente aparecioacute Boochrsquo93 y la evolucioacuten continuoacute a OMT y Fusioacuten

OOSE (Object-Oriented Software Engineering) estaacute enfocado a la ingenieriacutea de negocios y anaacutelisis de requerimientos dando un excelente soporte orientado a casos de uso OMT-2 es especialmente expresivo para anaacutelisis y sistemas de informacioacuten de datos grandes Boochrsquo93 fue particularmente expresivo para el disentildeo y fases de construccioacuten de proyectos y popular para aplicaciones de ingenieriacutea intensiva

Grady Booch y Jim Rumbaugh iniciaron el desarrollo de UML en 1994 al unificar sus meacutetodos independientes Booch y OMT En 1995 Ivar Jacobson se unioacute a Racional eacutesta unioacuten logroacute que el meacutetodo OOSE se incorporara La unificacioacuten establecioacute que debiacutean activar el modelado de sistemas utilizando conceptos orientados a objeto asiacute como crear un lenguaje usable tanto para las maacutequinas como para los humanos

A

Muchas organizaciones se unieron al consorcio UML y dedicaron recursos al trabajo hacia el fortalecimiento de la definicioacuten de UML Esta colaboracioacuten produjo un lenguaje de modelado expresivo poderoso y generalmente aplicable En la forma actual de UML se espera que sea base de muchas herramientas incluidas las de modelado visual simulacioacuten y ambientes de desarrollo

R UML es abierto y no-propietario y aunque define un lenguaje preciso no es barrera para futuras mejoras en conceptos de modelado Se usan muchas teacutecnicas de punta pero se esperan teacutecnicas adicionales que influencien futuras versiones de UML puede ser extendido sin redefinir el nuacutecleo

c

Mientras el rehuacuteso basado en componentes se ha favorecido ampliamente cada vez mas esto no significa que las teacutecnicas basadas en componentes reemplazaraacuten las teacutecnicas orientadas a objetos Hay solo sutiles diferencias entre la semaacutentica de componentes y clases [ALC03]

Un opaco rendimiento caracterizoacute el mercado de anaacutelisis modelado y disentildeo en el 2000 en su transicioacuten de las viejas herramientas CASE (Computer Aided Software Engineering) a algo maacutes dinaacutemico y mejor adaptado para satisfacer las necesidades de los desarrolladores para el cambio raacutepido en los ambientes de negocio

El mercado de anaacutelisis modelado y disentildeo lograraacute obtener un crecimiento positivo en varios de los siguientes antildeos por varias razones El mercado seraacute manejado principalmente por la necesidad de desarrolladores a obtener aplicaciones para lanzarse al mercado raacutepidamente asiacute tambieacuten por el intereacutes creciente y uso de una nueva especie de herramienta y por el intereacutes creciente de los desarrolladores en usar UML reglas de negocios y adaptadores de componentes para construir aplicaciones [RIKUI]

z -

18

Marco teoacuterico

UML se ha hecho el estaacutendar para los desarrollos de modelado de negocios administracioacuten de requerimientos anaacutelisis y disentildeo programacioacuten y pruebas Los objetivos primarios de UML en el disentildeo [RAT97j

o Dar a los usuarios un lenguaje visual expresivo de modelado listo para usarse para que puedan desarrollar y cambiar los significados de sus modelos

o Suministrar mecanismos de extensibilidad y especializacioacuten para extender los conceptos centrales

o Ser independiente de lenguajes de programacioacuten particulares y procesos de desarrollo

o Impulsar el desarrollo de las herramientas Orientadas a Objeto en el mercado o Soportar conceptos de desarrollo de alto nivel como colaboracioacuten marcos de

componentes reutilizables patrones y componentes o Integrar las mejores praacutecticas

9 El aacutembito de UML

UML es un lenguaje para especificacioacuten construccioacuten visualizacioacuten y documentacioacuten de artefactos de un sistema de software UML es la fusioacuten de los conceptos de Booch OMT y OOSE El resultado es un simple comuacuten y ampliamente usado lenguaje de modelado para usuarios de estos y otros meacutetodos UML se enfoca en un lenguaje de modelado estaacutendar no en un proceso estaacutendar los autores de UML recomiendan un proceso de desarrollo manejado por casos de uso de arquitectura central iterativo e incremental [iiquest4T97l

Para la definicioacuten de sistemas de software en UML se definen diagramas Un diagrama es la representacioacuten graacutefica de un conjunto de elementos este se visualiza la mayoriacutea de las veces como un grafo conexo de nodos (elementos) y arcos (relaciones) Los diagramas se dibujan para visualizar un sistema desde diferentes perspectivas de forma que un diagrama es la proyeccioacuten de un sistema uumlML incluye nueve diagramas [B0099]

4 -

I Diagrama de clases 2 Diagrama de objetos 3 Diagrama de casos de uso 4 Diagrama de secuencias 5 Diagrama de colaboracioacuten 6 Diagrama de estados 7 Diagrama de actividades 8 Diagrama de componentes 9 Diagrama de despliegue

Diagramas de secuencias Un diagrama de secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten comportamiento

Un diagrama de secuencias muestra un conjunto de mensajes acomodados en una secuencia de tiempo eacuteste diagrama muestra la interaccioacuten en un esquema de dos - dimensiones [RUM99]

19

Marco teoacuterico

Y -

Un diagrama de secuencia es un diagrama de interaccioacuten que resalta la ordenacioacuten temporal de los mensajes Un diagrama de secuencia presenta un conjunto de objetos y los mensajes enviados y recibidos por ellos Los objetos suelen ser instancias (con nombre o sin nombres) de clases pero tambieacuten pueden representar instancias de otros elementos tales como colaboraciones componentes y nodos Los diagramas de secuencia se utilizan para describir la vista dinaacutemica de un sistema [B0099]

Usar los diagramas de secuencia es mostrar la secuencia que existe en un caso de uso [RUM 991

Los diagramas de secuencia tienen dos dimensiones Una dimensioacuten que representa el tiempo Otra dimensioacuten que representa los diferentes objetos que participan en la secuencia de eventos requeridos para completar el propoacutesito [MOuuml98]

El principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildea las interacciones de los objetos [DAN02]

20

Capiacutetulo 3

DesawoCCo de Ia herramienta

En este capiacutetulo se describe el desarrollo del Ambiente Visual Se describe el modelo conceptual del sistema la arquitectura asiacute como tambieacuten los elementos que componen la Arquitectura Se estudian los Diagramas de Secuencias de UML y algunos Patrones de Disentildeo de los que se hace uso para el mejor desarrollo del sistema Se describe a detalle la Gramaacutetica Visual Relaciona1 utilizada para el de Ambiente de desarrollo

I CENIOET 1FNTRO DE INFORMACION

Desarrollo de la herramienta

t i i

Actualmente existe en el cenidet un Ambiente Visual de Modelado de Clases llamado InverSOODA este Ambiente Visual tiene la capacidad de realizar la generacioacuten automaacutetica de coacutedigo de las clases en C++ a partir del modelo especificado Ademaacutes se puede realizar la Ingenieria Inversa de un coacutedigo legado para obtener el modelo de clases Aunado a este trabajo existe el Ambiente Visual denominado InverDDVi con el cual se puede realizar el Disentildeo Detallado de los Meacutetodos de las Clases con diagramas de Warnier Asiacute tambieacuten es posible obtener el modelo aplicando la Ingenieriacutea Inversa a un coacutedigo legado en C++

Ambos trabajos son retomados en este proyecto para la automatizacioacuten en la obtencioacuten de los Diagramas de Secuencias de UML La figura 31 muestra el modelo propuesto de ingenieriacutea directa

Extraer informacioacuten del diagrama de

rsquo rsquo

Diagrama de 11 clases I o

detallado de

detallado de

o meacutetodos

i ir---- Construir el

secuencias i

Modelo de Ingenieriacutea I directa automaacutetica

I

Figura 31 Modelo de Ingenieria Directa Autombtica de los Diagramas de Secuencias

Para la construccioacuten automaacutetica de un diagrama de secuencias se toma como base a un diagrama de Clases El modulo ldquoExtraer informacioacuten del diagrama de Clasesrdquo sirve para obtener el nombre y los meacutetodos descritos en cada uno de las clases que existan en el diagrama de Clases

22

Desarrollo de la herramienta

Con base en la informacioacuten que se tiene se abren los archivos correspondientes a los diagramas de Warnier El proceso que se emplea sobre cada uno los diagramas de Warnier llamado ldquoExtraer informacioacuten de los disentildeos detallados de los meacutetodosrdquo sirve para recopilar el conjunto de las llamadas de cada meacutetodo definido

En el siguiente paso (ldquoReconocer llamadas a meacutetodosrdquo) consiste en identificar si los meacutetodos que estaacuten descritos en los diagramas de Warnier tambieacuten lo estaacuten en el diagrama de Clases correspondiente

El paso ldquoConstruir los diagramas de secuencias automaacuteticamenterdquo realiza una validacioacuten de los meacutetodos definidos en los diagramas de Clases con los meacutetodos definidos en los diagramas de Warnier Este paso crea una estructura de datos con la secuencia de las llamadas y la recorre para crear los objetos y los mensajes en el diagrama de secuencias

AI terminar la creacioacuten automaacutetica del diagrama de secuencias se dispone de la r opcioacuten de guardar

31 Disentildeo de la Arquitectura

Para definir los procesos que el sistema va a realizar es necesario llevar a cabo un anaacutelisis de requisitos los cuales pueden ser expresados mediante diagramas de Casos de Uso Los Casos de Uso son una descripcioacuten textual narrativa de los procesos de un sistema

311Requisitos (Diagrama de Casos de uso)

Los casos de uso en realidad no son un artefacto de anaacutelisis orientado a objetos estos describen simplemente procesos y pueden ser igualmente efectivos en un proyecto tecnoloacutegico no orientado a objetos Son usados en un paso preliminar a la descripcioacuten de requerimientos de un sistema [LAR971 La Figura 32 muestra el diagrama de casos de uso que especifica al S3C

9

S3C (Diagramas de Secuencias)

usuario I Modelado de

I

Figura 32 Diagrama de Casos de Uso para el S3C

23

Desarrollo de la herramienta

Descripcioacuten de los Casos de Uso

Caso de Uso ldquoDiagramas de Secuenciasrdquo Se inicia cuando el actor ldquousuariordquo solicita la creacioacuten de un Diagrama de Secuencias Se establece la forma de la construccioacuten automaacutetica de los diagramas de secuencias de UML Se hace uso del Modelado de Clases y del Modelado del disentildeo detallado de los meacutetodos

Escenario de Eacutexito 1 Se obtiene la informacioacuten de las clases del modelado de clases 2 Se obtiene la informacioacuten del modelado del disentildeo detallado de los meacutetodos 3 Se realiza la construccioacuten automaacutetica de los diagramas de secuencias

1 En el modelo de clases no hay informacioacuten o estaacute incompleta 2 En el modelo del disentildeo detallado de los meacutetodos no hay informacioacuten o estaacute

incompleta

Escenario de Falla

Caso de Uso ldquoModelado de Clasesrdquo El diagrama de Clases se utiliza para obtener los nombres de clases y los nombres de los meacutetodos de cada clase

Escenario de Eacutexito 1 Se abre el modelo 2 Se procesa para obtener la informacioacuten de las clases (nombres de clases y nombres

de meacutetodos)

Escenano de Falla h 1 No se puede abrir el modelo J 2 El modelo esta vaciacuteo

Caso de Uso ldquoModelado del Disentildeo detallado 1 los meacutetodosrdquo El disentildeo detallado de los meacutetodos se realiza con diagramas de Warnier aquiacute se establecen las llamadas a funciones dentro del sistema y es aquiacute donde se identifica el dinamismo que se representaraacute en los diagramas de secuencias

Escenario de Eacutexito 1 Se abre el modelo 2 Se realiza la identificacioacuten de las llamadas existentes

Escenario de Falla 1 No se puede abrir el modelo 2 El modelo esta vaciacuteo

24

Desarrollo de la herramienta

Clase Objeto ni I Diagrama I n ____ Nombre Descripcioacuten

i

Mensaje

Tipo

En el Anaacutelisis Orientado a Objetos se crea una especificacioacuteii del dominio del problema y de los requeriinientos desde la perspectiva de una clasificacioacuten por objetos y del entendimiento de los teacuterminos usados en el dominio del problema Una descomposicioacuten del dominio del problema involucra una identificacioacuten de conceptos atributos y asociaciones que son considerados importantes dentro del dominio El resultado puede ser expresado en un Modelo Corzcepttraf el cual es ilustrado en un conjunto de diagramas que definen conceptos (objetos) [LAR97]

312Modelo Conceptual

El modelo conceptual visto en la Figura 33 no es una descripcioacuten de componentes de software representa conceptos en el domino del problema en el mundo Teal [LAR97l

313Diagramas de clases

Por cuestiones dc espacio las clases de la arquitectura del sistema estaraacuten referidas en varios diagramas que de alguna manera estaacuten relacionados entre si

Una de las partes maacutes importantes del Ambiente Visual S3C es la estructura de clases ltCCraJicogt la cual se refiere al control de los diagramas eacutesta por su naturaleza podriacutea considerarse el nuacutecleo del sistema La manipulacioacuten y control de los diagramas estaacute definido en una estructura de clases organizada con el patroacuten de disentildeo Composite que se muestra en la Figura 34

25

Desarrollo de la herramienta

CRecursividadDS CMensajeDS CObjetoDS CDiagramaDS

I Cvisitor I

CApuntadorDS CDblClickDS CAsocAdjusterDS CSelectorDS

26

Desarrollo de la herramienta

n 32 Elementos de la arquitectura

Es necesario describir los elementos que dan soporte a la arquitectura del ambiente donde se implementaraacute el sistema en este caso Microsoft Visual (MV) C++ 6 El MV C++ es un marco de aplicacioacuten poderoso basado en Windows se integran ademaacutes del lenguaje C++ (compilador y enlazador) el programa de desarrollo de programas en lenguaje C para Windows (SDK) la Microsoft Foundation Class Library AppWizzard Classwizard AppStudio y WorkBencli

La Microsoft Foundation Class Library comprende una biblioteca de clases de C++ y es considerada como el nuacutecleo del MV C++

321Microsoft Foundation Class (MFC)

La libreriacutea Microsoft Foundation Class (MFC) es una interfaz orientada a objetos que tiene las siguientes metas de disentildeo

o

Reduccioacuten significante de esfuerzo al escribir una aplicacioacuten para Windows Velocidad de ejecucioacuten comparable a las APIrsquos del lenguaje C Miacutenimo tamantildeo de coacutedigo Capacidad para llamar cualquier funcioacuten de Windows en C directamente Faacutecil conversioacuten de aplicaciones existentes en C a C++ Faacutecil uso de APIrsquos de Windows con C++ como con C Faacutecil uso de complicadas caracteriacutesticas de abstracciones poderosas como ActiveX soporte para base de datos impresioacuten barras de herramientas y barras de estado El API de Windows en C++ si usa tan efectivamente como las caracteriacutesticas mismas del lenguaje C++

La mayoriacutea de las clases de la Libreriacutea de la Microsoft Foundation Class son derivadas de una clase base ltCObjectgt que es la raiacutez de la jerarquiacutea de clases ltCObjectgt da uacutetiles capacidades a las clases que derivan de ella

La jerarquiacutea que existe en las clases derivadas de ltCObjectgt es la siguiente

Arquitectura de Aplicacioacuten Excepciones Servicios de Archivos Arreglos Listas Mapas Servicios de Internet Sockets Sincronizacioacuten Soporte para base de datos D A 0

27

Desarrollo de la herramienta

i

r

Liacutenea de Comandos Menuacute Dibujo Graacutefico Dibujo Graacutefico de Objetos Soporte de Control Soporte de Ventanas

Soporte para base de datos ODBC

o Marco de Ventanas o Barras de control o Hojas de propiedades o Cajas de Dialogo o Vistas o Controles

322Arquitectura Documento Vista

Por defecto las aplicaciones creadas con la MFC usan un modelo de aplicacioacuten que separa los datos del programa de las vistas de interaccioacuten con el usuario En eacuteste modelo un objeto documento de MFC lee y escribe datos en un almacenamiento persistente Un objeto vista administra el despliegue de datos suministrando al usuario los datos para ser seleccionados o editados La vista le comunica al documento cualquier cambio en los datos La razoacuten maacutes conveniente para seguir este modelo es cuando se necesita muacuteltiples vistas del mismo documento (como en una hoja de caacutelculo y un graacutefico)

La arquitectura documentovista hace faacutecil el soporte de muacuteltiples vistas y muacuteltiples tipos de documentos asiacute como la divisioacuten de ventanas y otras caracteriacutesticas de interfaz de usuario Pero el corazoacuten de la arquitectura son cuatro clases (Mostradas en el aacuterbol de clases de la Figura 36)

ltCDocumerrtgt (o ltCOleDocuinentgt) - Se instancia un objeto de este tipo para almacenar y controlar los datos del programa ltCViewgt (o una de sus clases derivadas ltCScrotlViewgt ltCFormViewgt ltCEditView ltCRecordViewgt ltCDaoRecordView ltCtreeViewgt ltCListViewgt b ltCrichEditViewgt) - Un objeto es usado para desplegar los datos y administrar la interaccioacuten del usuario con los datos ltCFrameWndgt (o una de sus variantes) - Establece el marco sobre el que trabajaraacuten una o mas vistas de un documento ltCDocTemolategt (o ltCSingIeDocTemplategt o ltCMultiDocTemplategt) - Coordina la existencia de uno o maacutes documentos de un tipo dado y administra la correcta creacioacuten de los documentos vistas y objetos ventanas para cada tipo

i

28

Desarrollo de la herramienta

______________ 2 Wiew

I - - __ - ------a ________________

323Integrando Ambientes en Visual C t t

Las aplicaciones de Interfaz de Documento Uacutenico (SDI) soporta muacuteltiples tipos de documentos pero este soporte es para un solo objeto documento Debido a esta restriccioacuten y aunado a la necesidad de tener varios objetos documentos a la vez se determina la utilizacioacuten del modelo Interfaz de Muacuteltiples Documentos (MDI) indicado en la Figura 37

324Interfaz de Muacuteltiples Documentos (MDI)

Una aplicacioacuten de Interfaz de Muacuteltiples Documento (MDI) permite la creacioacuten de plantillas para el manejo de los documentos eacutesta plantilla tiene la forma

rn-pDocTemplate = new CMultiDocTernplate ( I DR-SCUMLTY PE RUNTIME-CLASS (CSCUMLDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CTheView))

AddDocTernplate ( rn-pDocTemplate )

Cada plantilla describe una relacion del tipo de documento con la vista asociada La definicioacuten de la plantilla para el ambiente que controla los diagramas de secuencias es la siguiente

29

Desarrollo de la herramienta c

m-pTernplateSeqDlag = new CMultiDocTernplate ( IDR-DS-SJCTYPE RUNTIME-CLASS (CSeqDiagDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CSeqDiagView) )

AddDocTernplate( rn-pTernplateSeqDiag )

Esta plantilla hace uso de la clase CCliildFrame que por defecto el ambiente Visual C++ construye y esto es debido a que no se requieren caracteriacutesticas extras en las ventanas de las que proporciona dicha clasc En un caso en el que se requiriera un comportamiento diferente de la vista tendriacutea que crearse una nueva clase con las caracteriacutesticas deseadas

Vista Documento

Vista

I- Vista Documento I [ Tip- F Vista

L Figura 37 Modelo Interfaz de Muacuteltiples Documentos (MDI)

Para integrar otro Ambiente que utilice otro tipo de documento es necesario definir otra plantilla de la misma forma mencionada Debe tomarse en cuenta los siguientes puntos

Es necesario definir el nombre (mqTemplateNOMBRE) El IDR del tipo que se requiere que sea el documento En la primera liacutenea RUNTIME CLASS debe indicar la clase ltCDocumentgt que desea La segunda liacutenea RUNTIME-CLASS soacutelo la cambia a otra clase si requiere de otro manipulador de ventanas de lo contrario deje que ltCChildFramegt se haga cargo

-

30

Desarrollo de la herramienta

En la uacuteltima liacutenea referente a RUNTIME-CLASS se debe indicar la clase ltCViewgt que desea usar Para finalizar se usa la instruccioacuten AddDocTernplate para finalizar la definicioacuten del template (mgTemplateNOMBRE)

325 Recursos Diaacutelogos Mertuacutes y Barras de Herrattriertias

Son varios los recursos con los que se puede contar al crear un proyecto en Microsoft Visual C++ Los diaacutelogos son un recurso disponible que son utilizados para visualizar ingresar yo modificar informacioacuten que se requiera En el Ambiente Visual que se desarrolla son varios los diaacutelogos que se utilizaraacuten y eacutestos se describen a continuacioacuten

El Diaacutelogo ldquoCaracteriacutesticas del Obietordquo (Figura 38) identifica el nombre del Objeto y la descripcioacuten del mismo Este diaacutelogo se muestra cuando se presiona doble clic sobre un objeto del diagrama

I Nombre

Desciipcion

Figura 38 Dialogo Caracteriacutesticas del Objeto

El Diaacutelogo ldquoMensaierdquo (Figura 39) muestra el nombre del mensaje que puede ser modificado ademaacutes se visualizan el Identificador del Mensaje el tipo de Mensaje asiacute tambieacuten el origen y destino del mensaje

31

Desarrollo de la herramienta

Nornbie delMensaje Edit

IDentificador del Mensaje Edil Tipo de Mensaje (Edil

Edit Objeto Origen

Objeto Destino IEdit

i25El A Figura 39 Dialogo Mensaje

El menuacute es otro de los recursos del que se puede disponer para organizar el ambiente que se estaacute creando Para eacuteste caso en particular no se hizo modificaciones al menuacute estaacutendar (Figura 310) que Visual C++ presenta Los cambios significativos son el manejo del tipo de documento para los Diagramas de Secuencias

Archivo Editar Yer VenLana AyGda

Figura 310 Menuacute de los Diagramas de Secuencias (estaacutendar)

Otro importante recurso del que uno se puede valer en Visual C++ es la barra de herramienta personalizada la cuaacutel es construida en el Editor de Recursos Se ha construido una barra (Figura 311) con los elementos graacuteficos de los Diagramas de Secuencia de UML

Figura 311 Barra de Herramientas de los Diagramas de Secuencias

Es recomendable que al utilizar barras de herramienta personalizada se defina en el tamantildeo estaacutendar ya que puede experimentar problemas al momento de ejecutar la aplicacioacuten

Ademaacutes puede usar la propiedad TBBS-CHECKGROUP en una barra de herramientas para establecer que los botones puedan quedar presionados hasta que un botoacuten diferente sea presionado No olvide que la numeracioacuten inicia con cero ( O )

vuriableToolBurSetButtonStyle(OTBBSCHECKGROUP)

32

Desarrollo de la herramienta

Prefijo ID IDC IDD IDP IDR IDS

326 Notacioacuten estaacutendar

Los nombres descriptivos de los recursos se asocian a un valor uacutenico Para una mayor claridad eacutestos nombres mantienen un prefijo que describe el tipo de recurso asociado (vea la Tabla 31) [MIC99]

Tipo de Recurso Comandos de Menuacute Controles y recursos Cuadros de diaacutelogo Cadenas de solicitud para cuadros de mensaje Menuacute principal barras de herramienta tabla aceleradora y el icono Cadenas

IDR IDD IDC ID

200 - 299 3000 - 3999 34000 - 34999

Estos son los rangos de valores establecidos para el proyecto S3C Si se utiliza el coacutedigo fuente y se planea agregar otro proyecto verifisue que no se invadan estos nuacutemeros para evitar problemas

Para facilitar auacuten maacutes los trabajos futuros se ha definido una estructura de carpetas (ver Figura 312) para incluir en cada una las Clases correspondientes a cada tesis en desarrollo

33

Desarrollo de la herramienta

ill ~~ -

-I SCUML classes + U A N T L R + U App + 0 ClassDiagrams + 0 Common + a Java

t $2 SequenceDiagiams

+ WarnierDiagrams

iJ PackageDiagrams

12 StaterChartDiagrams

+

- f Classview I Resourceview 1 FileView ]

~ ~

Figura 312 Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)

327Estructura de datos persistencia y recuperacioacuten

Existe una gran cantidad de tipos de datos estructuras clases y meacutetodos de los que se puede hacer uso para una mejor y maacutes faacutecil obtencioacuten de los resultados A continuacioacuten hago comentarios en tipos de datos y meacutetodos en los que podriacutea tener problemas

CTypedPtrList

AI usar este tipo de dato o alguno relacionado que le permita utilizar el meacutetodo ltCTvrgtedPtrListGetNextgt tenga especial precaucioacuten al usarlo ya que al devolver el valor requerido la variable POSITION usada no se queda apuntando a ese valor en particular salta al inmediato siguiente de la lista

Si se realiza una creacioacuten dinaacutemica con punteros para los elementos de una CTypedPtrList Despueacutes de haberlo agregado a la lista evite el delete para borrar esta Usted deseando liberar la memoria no lo haga ya que eliminara directamente el elemento de la lista

POSITION

Es un valor usado para denotar una posicioacuten de un elemento en una coleccioacuten Pero CUIDADO no se refiere a un iacutendice es una referencia (no consecutiva) de punteros muy diferente a un iacutendice

CString

Auacuten cuando el operador de comparacioacuten == (igual a) es permitido para ser utilizado en las cadenas evite su uso ya que en ocasiones aunque cuando la e

34

Desarrollo de la herramienta

compilacioacuten no indique error alguno en la ejecucioacuten no realizaraacute lo que se necesita Recomiendo que utilice CStringCompare ()

Para eliminar el contenido de un CString utilice CStringEmpty() ya que asignar a la cadena un ldquonrdquo podriacutea causarle problemas

Serializacioacuten

Una forma en que se puede guardar informacioacuten y recuperarla de manera eficaz es mediante la serializacioacuten de objetos La serializacioacuten es un proceso que permite escribir un objeto en un archivo y tambieacuten leerlo

Para que la serializacioacuten se lleve a cabo son necesarios tres objetos un objeto de tipo ltCFilegt que represente el archivo un objeto de tipo ltCArchivegt que ofrece el entorno para la serializacioacuten y la clase del objeto a ser serializado debe ser heredada de ltCObjectgt y sobrescribir el meacutetodo ltSerializegt para que se encuentre de tal forma en que pueda ser serializado (vea la Figura 313)

Objeto a ser serializado 1

1 CArchive

[f --=I- ---7 Archivoexi

u Figura 313 Serializacioacuten

328Patrones de disentildeo utilizados

Se ha planteado la definicioacuten de una arquitectura de clases utilizando patrones de disentildeo debido a que algunos de ellos hacen maacutes faacutecil la extensioacuten de la funcionalidad y mantenimiento

35

Desarrollo de la herramienta

El patroacuten Composite es utilizado para crear de manera uniforme el diagrama sobre el que se trabaja (ver Figura 34) manteniendo una jerarquiacutea de clases uniforme las clases maacutes bajas en la jerarquiacutea definen primitivas de objetos graacuteficos

Se aplica el patroacuten de disentildeo Iterator para hacer recorridos en listas de objetos para realizar diversas operaciones Otro patroacuten de disentildeo del que se hace uso es el Visilor (ver Figura 35)

Para otras actividades que se realizan podriacutea pensarse en que se deberiacutean aplicar otros patrones pero se han evitado algunos (como el patroacuten de disentildeo Builder) para evitar incrementar la complejidad en la arquitectura ya que ai mantener el modelo de la MFC de documentovista la funcionalidad del patroacuten de disentildeo Builder es faacutecilmente reemplazado si se hiciera Uso de eacuteste se aumentariacutea la complejidad excesivamente (nos llevariacutea a perdemos en ocasiones en el paso de mensajes entre clases) dantildeando la facilidad de la arquitectura

33 Diagrama de secuencias

Un Diagrama de Secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten escenario Oacute comportamiento se usan para definir el curso loacutegico de accioacuten de un posible camino a seguir en la resolucioacuten de un problema Seguacuten John Daniels [DANO2] ldquoel principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildean las interacciones de los objetosrdquo

Los Diagramas de Secuencias se utilizan en el modelado de la implementacioacuten de sistemas de software ademaacutes son aplicables en el modelado de requisitos para establecer las comunicaciones existentes entre actores yo clases del sistema Con eacutestos diagramas se logran hacer descripciones de los escenarios y los comportamientos del sistema Con los Diagramas de Secuencias es posible definir protocolos de comunicacioacuten con paso de mensajes ya que dan esa flexibilidad que se requiere Ademaacutes los Diagramas de Secuencias contienen informacioacuten suficiente para que puedan ser transformados a los diagramas de colaboracioacuten [RUM Ol][BOO Oil

331Ciclo de vida del software

Considerando cualquier modelo de ciclo de vida del software (en la figura 314 se muestra el Modelo de cascada) el aacutembito directo de eacuteste Ambiente Visual es en el disentildeo aunque tiene sus vertientes en la codificacioacuten y mantenimiento

36

Desarrollo de la herramienta

Diseno

Codificacibn

I I I I Mantenimiento I

igura 314 Modelo de cascada del ciclo de vida del software

34 Elementos atoacutemicos de la Gramaacutetica

Definicioacuten de los elementos atoacutemicos del lenguaje y su contenido

1 Actor- Representa roles de entidad externos al sistema con el que interactuacutea directamente Los actores pueden ser humanos dispositivos u otros sistemas

2 ClaseObjeto- Determina una Clase u Objeto participante en la interaccioacuten

3 Mensaje-Es una comunicacioacuten entre objetos que contiene informacioacuten Eacuteste se representa con la finalidad a que una accioacuten sea llevada a cabo

4 Mensaje con tiempo- Tiene la misma finalidad que el mensaje la diferencia es que con eacutel se representa un atributo de tiempo

5 Mensaje asiacutencrono Es un mensaje que ocurre en el tiempo de manera independiente a otros mensajes

6 Mensaje de destruccioacuten de objeto- Es un mensaje cuya finalidad es indicar la destruccioacuten del objeto destino

7 Mensaje de creacioacuten de objeto- Es un mensaje que indica la creacioacuten de un objeto

8 Llamada al mismo objeto (Recursividad)- Es usado para modelar llamadas recursivas en el que una operacioacuten es invocada por el mismo objeto

37

Desarrollo de la herramienta

9 Destruccioacuten del objeto (AutodestrucciOacuten)- Puede o no modelarse es representada con una X al final de la liacutenea de vida del objeto

Elementos aulomaacuteticos

1 Liacutenea de Vida- Representa la vida del objeto durante la interaccioacuten

2 Activacioacuten- Muestra el periacuteodo de tiempo en el cual el objeto alguna operacioacuten

341RepresentaciOacuten visual

Representacioacuten visual de los elementos atoacutemicos del lenguaje

Actor

_- A

Mensaje

Mensaje de Creacioacuten de

Objeto

ClaseObjeto

I

Mensaje de retorno

Mensaje de Destruccioacuten de

Objeto

abla 32 Element(

Activacioacuten

Mensaje con tiempo

Autodestruccioacuten

x

atoacutemicos del lengi

taacute realizz

Texto ===I (letra)+ (letra I

numero) letra= AZ I az numero = 09

I

Recursividad ~

I

i j e

io

38

u

Comentario

iexcl

Conector de Comentario

35 Gramaacutetica desarrollada

La gramaacutetica que se propone es una gramaacutetica visual del tipo relacional Una gramaacutetica relacional pertenece a las gramaacuteticas libres de contexto es una 6-iupla G (N C S R Attr P) donde

N es un conjunto finito de siacutembolos no terminales C es un conjunto de siacutembolos terminales S es un siacutembolo distinguido en N llamado siacutembolo inicial R es un conjunto finito de siacutembolos de relacioacuten Attr es un conjunto finito de siacutembolos de atributos P es un conjunto de producciones

Entonces definiendo nuestra gramaacutetica G (N C S R Attr P)

N = Diagrama GrupoClaseObjeto

S = Diagrama

R = mensaje mensajeTiempo mensajeRetomo mensajeAsincrono mensajecrea mensajeDestruye autodestruccioacuten recursividad

R

Attr = entrada salida entradacrea

39

Desarrollo de la herramienta

Definiendo la posicioacuten de los atributos en los elementos visuales

entradacrea ObetaClase

entrada

salida

P =

Diagrama I GrupoClaseObjeto (mensaje (mensajeRetorno

(salida 1) (entrada 2) ) (salida 2) (entrada 1) )

- Diagrama 0 GrupoClaseObjeto

(mensaje (mensaje (mensajeRetomo (mensajeRetomo (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entradacrea 2) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 1) ) (salida 1) (entrada 1) )

entrada

salida

40

Desarrollo de la herramienta

s

-

GrupoClaseObjeto - 1 1 I 2 (mensaje (mensaje (mensajeRetorno (mensajeRetorno (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entradacrea 2) ) (salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 1) ) (salida I ) (entrada I ) )

1 En las gramaacuteticas relacionales una produccioacuten estaacute acompantildeada de las posibles

relaciones que puedan generarse En la primera produccioacuten Diagrama produce a un Actor seguida de un GrupoClaseObjeto el Actor inicia la interaccioacuten con un mensaje y recibe el mensaje de retorno al finalizar la interaccioacuten La segunda y tercera produccioacuten son similares debido a que un GrupoClaseObjeto contiene dos ClaseObjeto que se relacionan de la misma forma

Existe un elemento de la gramaacutetica llamado Attr (Atributo) el cual define la parte de los elementos visuales donde se establecen las relaciones Se han determinado dos atributos (entrada y salida) que para nuestro propoacutesito estaraacuten establecidos en la liacutenea de vida de cada elemento visual (Actor y ClaseObjeto)

Los Comentarios y la Activacioacuten no se consideran en la gramaacutetica Los comentarios son libres de incluirse y relacionarse con cualquier elemento y relacioacuten mencionada anteriormente y la activacioacuten existe siempre que se presente un mensaje (o podriacutea omitirse) Estas consideraciones se realizaron para hacer auacuten maacutes faacutecil la gramaacutetica ya que si se trata de realizar un sistema las restricciones de estos elementos pueden mantenerse en el lenguaje de programacioacuten en el que se desarrolle el sistema

36

Precondiciones

El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias

1 El diagrama de Clases debe existir y estar completo 2 Debe existir un archivo con un diagrama de Warnier por cada diagrama de Clases y

con el mismo nombre de archivo (excepto la extensioacuten del archivo) 3 En el uacutenico diagrama de Warnier de cada Clase se deben modelar todos los meacutetodos

de la Clase 4 No realizar declaraciones de meacutetodos

41

Desarrollo de la herramienta

5 Debe existir un meacutetodo lsquomain()rsquo en el diagrama de Clases

Restricciones

Los meacutetodos deben mantener nombres distintos en las diferentes Clases

Metodologiacutea para la obtencioacuten automaacutetica de los Diagramas de Secuencias

1 Seleccionar el diagrama de Clases

2 Se construye una lista con los nombres de las Clases y los Meacutetodos

3 Se verifica si exista el meacutetodo lsquomain()rsquo en alguna Clase Se busca la existencia de una uacutenica Clase

a La Clase que contenga lsquomain()rsquo se va al inicio de la lista de Clases

b Si no existe lsquomain()rsquo SE TERMINA EL PROCESO

4 Se verifica la existencia de los archivos que contienen el Disentildeo Detallado de los meacutetodos en Wamier para cada una de las Clases si alguno falta SE TERMINA EL PROCESO

5 Se procesa cada uno de los modelos del Disentildeo Detallado de los Meacutetodos generando una lista de secuencias de llamadas por cada uno de los meacutetodos

6 Se verifica que cada llamada corresponda a alguacuten meacutetodo existente (del diagrama de Clases) De no existir ese meacutetodo la llamada entra a una estructura que

7 Se crea una lista de secuencia

a Se inicia con lsquomain()rsquo b Se recorre cada una de las llamadas de los meacutetodos c Se considera invaacutelido el caso de que un meacutetodo intente una llamada

recursiva al meacutetodo lsquomain()rsquo

8 Se muestra un diaacutelogo de resultados en el que se indican las llamadas que no se encnotraron definidas y que pueden ser Llamada a libreriacutea oacute Llamada Erroacutenea

42

Capiacutetulo 4

Prue6as y su6taaacuteos

En eacuteste capiacutetulo se da a conocer el detalle de las pruebas y de los resultados obtenidos Se describen los casos de prueba con los que se realizoacute la evaluacioacuten del sistema asiacute tambieacuten se presentan comentarios acerca de los resultados obtenidos

Pruebas y Resultados

41 Recursos teacutecnicos utilizados

Para llevar a cabo las pruebas al sistema S3C se utilizaron los siguientes equipos de Coacutemputo

Computadora de escritorio

256MB RAM Disco Duro 80G Monitor 17rdquo SAMSUNG

AMD Athlon XP 1600+ I4Ghz

Computadora de escritorio Intel Pentium 4 - 128MB RAM Disco Duro 40G Monitor 15rdquo i -

42 Descripcioacuten del plan de pruebas

Las pruebas establecen el Uacuteltimo paso desde donde es posible evaluar la calidad y descubrir los errores Las pruebas y la validacioacuten del software se utilizan para comprobar que el sistema cumple con las expectativas del usuario

En esta seccioacuten se describen los casos de prueba que se realizaron al prototipo de S3C en conjunto a la suite cenidet-UML Para cada uno de los casos se presenta el objetivo el procedimiento que se siguioacute para la prueba y se muestran los resultados obtenidos - _

Las pruebas a realizar son los siguientes

Caso 1 Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Caso 2 Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Wamier

Caso3 Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Wamier

Caso4 Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo 5

44

Pruebas y Resultados

43 Resultados

431 Caso 1

5 Y

IZ =

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoSirdquo 4 Seleccionar el archivo ldquoVENTASrdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 41 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

s3c iuevo Proyecto SCUM1

Diagrama de clases

lvendedor I L

3

salida

venta prod

4 venia-oferta vcntaprod =

salida 6

Figura 41 Resultado del caso de prueba 1

45

Pruebas y Resultados

432 Caso 2

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Warnier (almacenwar cajawar vendedorwar) que ya cxisten (del caso de prueba I )

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoNordquo 4 Agregar las siguientes Clases con los respectivos meacutetodos y atributos

a Claseldquovendedorrdquo Meacutetodos ldquoventa mainrdquo b Claseldquoalmacenrdquo Meacutetodos ldquoentrada salidardquo c Claseldquocajardquo Meacutetodos ldquoventagrodrdquo

5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 42 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

Diagrama de daseo lisgrama dcsccucncis

MOIDOC Anivo

venta prod

salida

1 Ycrdquo1a 2

I 4 vcrdquolD~o1cn venta prod gt

salida 6 i Figura 42 Resultado del caso de prueba 2

46

Pruebas y Resultados

r

433 Caso 3

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Warnier

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 43 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

5

Error al tratar de abrir el archivo A bZwar

Aceptar i

Faltan Archivos de Disentildeos Detallados de Meacutetodos 1 1 A No se puede crear el diagrama de secuencias

Figura 43 Resultado del caso de prueba 3

47

Pruebas y Resultados

434 Caso 4

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 44 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

lsquo I

~ _ i i _ l _ Repaado ~~ ~ ~ 6~ ampA Figura 44 Resultado del caso de prueba 4

48

Pruebas y Resultados

PRUEBA DESCNPCION CASO 1 Mostrar la funcionalidad del

Sistema S3C a partir de un

44 Anaacutelisis de Resultados

RESULTADOS Se comproboacute la correcta funcionalidad del Sistema S3C a partir de un diagrama

CASO 3

CASO4

I diagrama de Clases cxistcnte I de Clases existente CASO 2 I Mostrar la funcionalidad del I Sc comproboacute la corrccta funcionalidad

Sistema S3C a partir de un del Sistema S3C a partir de un diagrama diagrama de Clases que se de Clases que se construye al momento construye al momento Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el Secuencias si falta alguno de los diagrama de Secuencia si falta alguno diagramas de Warnier Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el secuencias si hace falta el meacutetodo diagrama de Secuencias al faltar el ldquomain ()rdquo meacutetodo ldquomain()rdquo

de los diagramas de Warnier

Los resultados obtenidos de cada uno de los casos establecidos demuestran que se validoacute la funcionalidad del prototipo con los requisitos definidos en el alcance de este proyecto

a lt

49

Conclusiones y Tru6ajos Futuros

Aquiacute se dan a conocer las conclusiones y se describen los posibles trabajos futuros para la continuacioacuten de eacuteste proyecto

F

51 Conclusiones

Conclusiones y trabajos futuros

Se ha creado un Ambiente Visual que permite obtener de forma automaacutetica los Diagramas de Secuencias en base a los diagramas de Clases y al disentildeo detallado de los meacutetodos descritos con diagramas de Warnier cumpliendo con los objetivos planteados para este trabajo

La tesis aporta principalmente La generacioacuten automaacutetica de los diagramas de secuencias y la eliminacioacuten de inconsistencias al mantener una validacioacuten directa de los diagramas de clases y los diagramas de Warnier que son utilizados

Esta validacioacuten es lograda a traveacutes del uso de la gramaacutetica visual relaciona1 que se ha definido (veacutease el capiacutetulo 3) Esta gramaacutetica visual establece reglas para la correcta construccioacuten de los diagramas de secuencias

P De esta manera se establece que la hipoacutetesis ldquoEs posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodosrdquo Es verdadera

52 Trabajos Futuros

Un Diagrama de Secuencias puede convertirse en un Diagrama de Colaboracioacuten por lo tanto un trabajo futuro es la construccioacuten automaacutetica de un Diagrama de Colaboracioacuten a partir de uno de Secuencias existente

Es posible calcular la meacutetrica de acoplamiento al tener un Diagrama de Secuencias construido

La Ingenieriacutea directa de un Diagrama de Secuencias estableciendo la validacioacuten en la construccioacuten de todos los elementos visuales que UML define

La propagacioacuten de las modificaciones de un Diagrama de Secuencias a los Diagramas de Clases y los Diagramas de Warnier

La modificacioacuten del coacutedigo fuente mediante los cambios establecidos en un Diagrama de Secuencias

51

[ALC03]

[BLA98]

[B0099]

[BOOOi]

[BR097]

[CHA90]

[DAN02]

[GLA02]

[HAC98]

[HER03]

4

Alcate1 Computer Associates International inc Electronic Data Systems Corporation Hewlett-Packard Company IBM Corporation I-Logix IntelliCorp Kabira Technologies Kennedy Carter Microsoft Corporation Object Management Group Oracle Corporation Project Technology Ptech Inc Rational Software Corporation Reich Technologies Softeam Taskon A S Telelogic Unisys Corporation ldquoOMG Unified Modeling Language Specificationrdquo Version 15 Unified Modeling Language 2003

Blaha Michael Rumbaugh James Premerlani William Eddy Frederick Lorensen William ldquoObject-oriented modeling and designrdquo Prentice Hall 484 Paacuteginas ISBN 0-13-629841-9 QA-769-03S-B53-19981998

Booch Grady Rumbaugh James Jacobson Ivar ldquoEl lenguaje unificado de modeladordquo Addison Wesley 432 Paacuteginas ISBN 84-7829-028-1 1999

Booch Grady Rumbaugh James Jacobson Ivar ldquoThe Unified Modeling Language User Guiderdquo Addison Wesley 2001

Brown David ldquoAn introduction to object-oriented analysis objects in plain Englishrdquo John Whiley amp Sons Inc 700 Paginas ISBN 0-471-1 1028-0 QA-769-035-B76-1997 1997

Chang Shi-Kuo ldquoVisual Languages and visual programmingrdquo Plenum Press 340 Paacuteginas ISBN 0-306-43428-8 QA-7665-V57-1990 1990

Daniels John ldquoModeling with a sense of purposerdquo Design - IEEE Software JanuaryEebmary 2002

Glasgow Universidad Reino Unido ldquoA UML Editor in Javardquo (lthttplstudentsdcsglaacuWstudentspainjfproject-reportproject-re port-htmV4thYearReporthtrnlgt 2002)

T Hackos JoAnn C Redish Janice ldquoUser and Task Analysis for Interface Designrdquo Wiley Computer Publishing 488 Paacuteginas ISBN QA-769-U83- H33-1998 1998

Hemaacutendez Velaacutezquez M ldquoIngenieriacutea inversa de coacutedigo fuente en C++ para la obtencioacuten de su disentildeordquo Tesis AT-379 (03-0334) 2003

Conceptos generales

[HIX93]

[JAC93]

[JAC99]

[JOY98]

[LAR97]

[MAR]

[MIC99]

[MIC02]

[MOU98]

Hix Deborah Hartson H Rex ldquoDeveloping user interfacesrdquo 381 Paacuteginas ISBN 0-471-57813-4 QA-769-U83-H59-1993 1993

Jacobson Ivar Christerson Magnus Jonsson Patrik Overgaard Gunnar ldquoObject oriented software engineeringrdquo Addison Wesley ISBN 0-20 1 - 54435-0 QA-7676-D47-J63-1993 1993

Jacobson Ivar Booch Grady Rumbaugh James ldquoEl proceso unificado de desarrollo de softwarerdquo Addison Wesley 438 Paacuteginas ISBN 84-7829-036- 2 1999

Joyanes Aguilar Luis ldquoProgramacioacuten orientada a objetosrdquo McGruw Hill ISBN 84-481-0590-7 1998

Larman Craig ldquoAplying UML and Patternsrdquo Prentice Hull 507 Paacuteginas ISBN 0-13-748880-7 QA-769-035-L37-1997 1997

Marriot Kim Meyer Bemd ldquoVisual Language Theoryrdquo Springer 381 Paacuteginas P-935-V567-1998 1998

Microsoft ldquoMicrosoft Visual C++ 6 manual del programadorrdquo McGraw Hill ISBN 84-481-2127-9 QA-7673-Cl53-23718-1999 1999

Microsoft ldquoVisiordquo (lthttpwwwmicrosoftcomofficevisiogt 2002)

B Mourao Luis X ldquoUniversal Modeling Language Part 11 UML Notation - Case Sequence and Collaboration Diagramsrdquo Lan Times Magazine (~httpwwwlantimescomltpartsdiscussdiscuss6Ohtm~) 1998

No Magic ldquoMagicDrawrdquo (lthttpwwwmagicdrawcomgt 2002)

Object Insight ldquoJvisionrdquo (lthttpwwwobject-insightcomgt 2002)

Rational Software Microsoft I Hewlett-Packard Oracle Sterling Software MCI Systemhouse Unisys ICON Computing IntelliCorp i-Logix IBM ObjectTime Platinum Technology Ptech Taskon Reich Technologies Sofieam ldquoUML Summaryrdquo Version 11 Unified Modeling Language 1997

Rational ldquoRational Roserdquo (lthttpwwwrationalcomproductosrosegt 2002)

Rikki Kirzner ldquoAnalysis Modeling and Design Tools Market Forecast and Analysis 2001-2005rdquo Bulletin Published Under Services Application Design and Construction Tools Application Development and Deployment Strategies Documento Nuacutemero 24809 Junio 2001

53

Conceptos generales

[RIM92] Rimrner Steve ldquoGraphical user interface programmingrdquo 423 Paacuteginas

1992

Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language reference manualrdquo Addison Wesley 550 Paacuteginas ISBN 0-201-

ISBN 0-8306-2475-9 ISBN 0-8306-2472-4 (pbk) QA-769-083-R55G

[RUM99]

30998-X QA-7676-D47-R85-1999 1999

[RUM299] Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language user guiderdquo Addisoiz Wesley 482 Paacuteginas ISBN 0-201 -57 168-4 QA-7676-D47-B66-1999 1999

[SMA02] SmartDraw ldquoSmartDrawrdquo (lthttpwwwsmartdrawcomgt 2002)

[SHU88] 9 - Shu Nun C ldquoVisual Programmingrdquo Van Nostrand Reinhold ISBN 0-422- 28014-9 ISBN 0-422-01 164-4 QA-7665-S55 1988

[THI90] Thimbleby Harold ldquoUser Interface Designrdquo Acm press 470 Paacuteginas ISBN 0-201 -41 61 8-2 QA-769U83-T772~- 1990 1990

[WENO2] Wences Diaz MF ldquoModelo de Ingenieriacutea Inversa para la obtencioacuten de disentildeo detallado basado en LEVISSrdquo Tesis (02-0014) 2002

54

Anexo A

Conampuracioacuten de Microsoft Vkua[C++ 6 O

Este anexo indica las configuraciones que se utilizaron para la compilacioacuten de SCUML y s3c

Configuracioacuten de Microsoft Visual c++ 60

Debido a la integracioacuten de los proyectos de InverSOODA e InverDDVi con S3C se cumplioacute con los requisitos previos de ambos proyectos

El compilador usado en el proyecto fue el Microsoft Visual C++ 60

Para el cumplimiento con la funcionalidad de InverSOODA se instaloacute el ANTLR la versioacuten 271 Se descargoacute del sitio l i l l ~ ~ ~ ~ ~ ~ t l ~ l ~ - ~ t - ~ la versioacuten mencionada en un archivo comprimido (en formato zip) Se colocoacute el paquete descomprimido en el directorio ldquoDIANTLR-271 I rdquo

Recomiendo ampliamente que el directorio principal de ANTLR se copie en el directorio raiacutez de cualquier unidad de disco debido a que experimenteacute problemas de compilacioacuten cuando ANTLR no se encontraba en el directorio raiacutez

Io015

Source Browser AlttF12 I u c Ersquo V I

Visual Component Mgnager

- - ~ ~ ~ ~~

P2 Registrar control

A Contenedor de prueba de controles ActiveX

A Usor de objetos OLE y COM

Buacutesqueda de errores

A Y++ MFC Iracer

Customize options

~ - q- ~ Macro

Eecord Quick Macro Cbl+ShiR+R Pay Quick Macro Ctrl+ShiR+P

En el menuacute Tools (Herramientas) seleccione el sub-menuacute Options ltopcionesgt

56

Configuracioacuten de Microsoft Visual C++ 60

En la siguiente ventana de diaacutelogo debe agregar la direccioacuten en donde se encuentra el ANTLR

Agregar la ruta del directorio de ANTLR hasta el subdirectorio

libcpp

Editor I Tabs I Debug I Compatibility 1 Build Dneclolies I a I Chow directories for - Platfolm -

- Directories I x ) 4 jWin32 -] llnclude files

m cancd I

57

Configuracioacuten de Microsoft Visual C t+ 60

Se ha creado una libreriacutea (anrlrliblib) de ANTLR la cual ya estaacute situada en el directorio del proyecto SCUML (ISCUML) y no debe ser movida o eliminada

I

Geneial 1 Debug I CC++ Link I Category

Output file name bebugSCUMLexe

Objectljibrary modules 4 anllrliblib

li Generate debug lnfo r Ignore all defaull lbaries D ~ i n k j n ~ ~ ~ t a n ~ r ~ e n e r ~ ~ ~ mapfile

r Enable psafilrng

Proiec1 Ootionn

pq Cancel 1 Libreriacutea de ANTLR que debe existir 1 I para que se compile correctamente

58

Anexo B

~ u iacute aacute raacutepida de uso deC Sistema S3C

5 Este anexo indica de forma raacutepida la manera de utilizar S3C para crear un diagrama de secuencias de forma automaacutetica

Guiacutea Raacutepida de uso del Sistema S3C i

Para indicar la creacioacuten de un diagrama de secuencias en forma automaacutetica se debe ir a la barra del costado izquierdo y presionar ldquoNuevo Proyecto SCUMLrdquo

I s3c I ~ Nuevo Proyecto SCUML ~ _ _ - I Diagrama de clases ~ Diagrama de secuencias 1 MDI DOC Activo

-

Apareceraacute un documento llamado ldquoSCUMLV en donde el simbolo corresponde a un numero consecutivo iniciando desde 1 (uno)

$ e Despueacutes se presiona ldquoDiagrama de clasesrdquo Habraacute que para indicarle al sistema si se requiere abrir un diagrama de clases existente o realizar uno nuevo

i

iquestAbrir un documento existente

No Cardquo~ear

AI presionar ldquoSirdquo se debe indicar cual es el archivo del diagrama de Clases en el cuadro de diaacutelogo siguiente

~~ - 11dMis documentos rsquo 2 M i P C i lsquo h s sitios de red

I

AI presionar ldquoNordquo en ldquoAbrir un documento existenterdquo se nos mostraraacute un documento vacio para crear un diagrama de clases

60

Guiacutea Raacutepida de uso del Sistema S3C

Para ambas opciones se requiere que los diagramas de Wamier ya se encuentren construidos Y para continuar el proccso se selecciona el documento ldquoSCUMLVrsquo creado al inicio y despueacutes presionar el botoacuten nombrado ldquoDiagrama de secuenciasrdquo localizado en la barra de hcrraiiiicntas del costado izquierdo

Ha iniciado el proceso de construccioacuten del diagrama de secuencias Si no existen errores al terminar el proceso se le mostraraacute un cuadro de diaacutelogo llamado ldquoResultadosrdquo en donde le mostraraacute las llamadas de las que no localizoacute su definicioacuten

- - -

Cancel 1 D e las siguientes llamadas es posible que esten mal escritas o peitenezcan a la libreiia del Lenguaie Verifique ya que no se encontraron sus definiciones

A continuacioacuten se mencionan los posibles errores que finalizan el proceso de la creacioacuten automaacutetica de los diagramas de secuencias en S3C

Cuando no exista un meacutetodo lsquomainrsquo definido en el diagrama de clases

No se encontro el meacutetodo lsquomain()rsquo que inicie la secuencia I A No se puede crear el diagrama de secuencias

p==amp=q

61

Guia Raacutepida de uso del Sistema S3C

Cuando se definan niultiples metodos lsquoinainrsquo en el diagrama de clases

Multiples meacutetodos lsquomainOlsquo Imposible decidir el inicio de secuencia

Aceptar i

Si un meacutetodo definido en Wamier realiza una llamada a lsquomainrsquo se cancelara el proceso

Llamada NO VALIDA al meacutetodo principal main

(iAcp-j(

4 i

CI Y rdquoldquoldquoI i 11 1-T

IZNTRO Gt INFORMACION

62

  • Tabla de Contenido
  • Listado de Figuras
  • Listado de Tablas
  • Notacioacuten
  • Introduccioacuten
  • Capitulo 1 Conceptos Generales
    • 11 Antecedentes
    • 12 Trabajos relacionados
      • 121 Tabla comparativa
        • 13 Definicioacuten del problema
        • 14 Objetivo de la Tesis
          • Objetivos especiacuteficos de la tesis
            • 15 Hipoacutetesis de investigacioacuten
            • 16 Alcances y limitaciones del trabajo de tesis
              • Capitulo 2 Marco Teoacuterico
                • 21 Modelado de sistemas de software
                • 22 Interfaz de usuario (Mecanismos de interaccioacuten)
                • 23 Lenguajes Visuales
                • 24 Programacioacuten orientada a objetos
                • 25 Lenguaje de Modelado Unificado (UML)
                  • Desarrollo de la herramienta
                    • 31 Disentildeo de la Arquitectura
                      • 311 Requisitos (Diagrama de Casos de uso)
                        • 312Modelo Conceptual
                        • 313Diagramas de clases
                        • 32 Elementos de la arquitectura
                          • 321 Microsoft Foundation Class (MFC)
                            • 322Arquitectura Documento Vista
                            • 323Integrando Ambientes en Visual c++
                              • 324 Interfaz de Muacuteltiples Documentos (MDI)
                                • 325Recursos Diaacutelogos Menus y Barras de Herramientas
                                  • 326 Notacioacuten estaacutendar
                                  • 327 Estructura de datos persistencia y recuperacioacuten
                                    • 328Patrones de disentildeo utilizados
                                      • 33 Diagrama de secuencias
                                        • 331Ciclo de vida del software
                                          • 34 Elementos atoacutemicos de la Gramaacutetica
                                            • 341 Representacioacuten visual
                                              • 35 Gramaacutetica desarrollada
                                              • 36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias
                                                  • Capitulo 4 Pruebas y Resultados
                                                    • 41 Recursos teacutecnicos utilizados
                                                    • 42 Descripcioacuten del plan de pruebas
                                                    • 43 Resultados
                                                      • 431 Caso
                                                      • 432 Caso2
                                                      • 433 Caso
                                                          • Conclusiones y trabajos futuros
                                                            • Trabajos futuros
                                                            • Referencias
                                                            • Anexo A Configuracioacuten de Microsoft Visual C+t
                                                              • Figura 11 - Arquitectura de la suite cenidet-UML
                                                              • Figura 21 -Programacioacuten Visual
                                                              • Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de
                                                              • Figura 32 -Diagrama de Casos de Uso para el S3C
                                                              • Figura 33 -Modelo Conceptual
                                                              • Figura 34 - Diagrama de Clases -Control del Diagrama -
                                                              • Figura 35 - Diagrama de Clases - Patroacuten Visitor -
                                                              • Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento
                                                              • Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)
                                                              • Figura 38 -Dialogo Caracteriacutesticas del Objeto
                                                              • Figura 39 -Dialogo Mensaje
                                                              • Figura 3 IO - Menuacute de los Diagramas de Secuencias (estaacutendar)
                                                              • Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias
                                                              • Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)
                                                              • Figura 313 - Serializacioacuten
                                                              • Figura 314 -Modelo de cascada del ciclo de vida del software
                                                              • Figura 41 - Resultado del caso de prueba
                                                              • Figura 42 -Resultado del caso de prueba
                                                              • Figura 43 -Resultado del caso de prueba
                                                              • Figura 44 -Resultado del caso de prueba
                                                              • Tabla 11 - Tabla comparativa
                                                              • Tabla 31 -Prefijos estaacutendar de identificadores
                                                              • Tabla 32 -Elementos atoacutemicos del lenguaje
                                                              • Tabla 41 - Resumen de los resultados de las pruebas realizadas

i d

Abstract

The research and the product of this thesis are immersed in the phase of design of software systems

Prototype S3C (product of this thesis) allows to obtain UML sequence diagrams based on the information of a class diagram and several documents modeled with wamier diagrams (detailed design of the methods)

S3C makes an automatic process in order to obtain sequence diagrams the construction of sequence diagrams in S3C is supported with a relational visual grammar The purpose of the grammar is to validate the construction of UML sequence diagrams

il

In the scope of UML sequence diagrams do not cxist commercial applications or educative projects that are based on a visual grammar to support the construction of sequence diagrams Also there arenrsquot applications that allow the automatic generation of secuence diagrams from class diagrams and the detailed design of methods

Tabla de Contenido

Tabla de Contenido

Listado de Figuras

Listado de Tablas

Notacioacuten

Introduccioacuten

Capitulo 1 Conceptos Generales

11 Antecedentes

12 Trabajos relacionados

121 Tabla comparativa

13 Definicioacuten del problema

14 Objetivo de la Tesis

141 Objetivos especiacuteficos de la tesis

15 Hipoacutetesis de investigacioacuten

16 Alcances y limitaciones del trabajo de tesis

Capitulo 2 Marco Teoacuterico

21 Modelado de sistemas de software

22 Interfaz de usuario (Mecanismos de interaccioacuten)

23 Lenguajes Visuales

24 Programacioacuten orientada a objetos

25 Lenguaje de Modelado Unificado (UML)

Capitulo 3 Desarrollo de la herramienta

31 Disentildeo de la Arquitectura

311 Requisitos (Diagrama de Casos de uso)

312Modelo Conceptual

313Diagramas de clases

Paacutegina

1 iv V

vi

1

2

3 4

6

6 7

7

8

8

9 10 11 13 16 17

21 23 23 25 25

1

32 Elementos de la arquitectura

321 Microsoft Foundation Class (MFC)

322Arquitectura Documento Vista

323Integrando Ambientes en Visual c++ 324 Interfaz de Muacuteltiples Documentos (MDI)

325Recursos Diaacutelogos Menus y Barras de Herramientas

326 Notacioacuten estaacutendar

327 Estructura de datos persistencia y recuperacioacuten

328Patrones de disentildeo utilizados

33 Diagrama de secuencias

331Ciclo de vida del software

34 Elementos atoacutemicos de la Gramaacutetica

341 Representacioacuten visual

35 Gramaacutetica desarrollada

a -

Tabla de Contenido

36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias

Capitulo 4 Pruebas y Resultados

41 Recursos teacutecnicos utilizados

42 Descripcioacuten del plan de pruebas

43 Resultados

431 Caso 1

432 Caso2

433 Caso 3

434 Caso4

44 Anaacutelisis de resultados

Conclusiones y trabajos futuros

Conclusiones

Trabajos futuros

27

27

28

29

29

31

33

34

35

36

36

37

38

39

41

43

44

44

45

45

46

47

48 49

50 51 51

i

lt

11

i Referencias

Anexo A Configuracioacuten de Microsoft Visual C+t 60

Anexo B Guiacutea raacutepida de uso del sistema S3C

Tabla de Contenido

52 59

lt 111

Listado de Figuras

3

Figura 11 - Arquitectura de la suite cenidet-UML

Figura 21 -Programacioacuten Visual

Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de Secuencias Figura 32 -Diagrama de Casos de Uso para el S3C

Figura 33 -Modelo Conceptual

Figura 34 - Diagrama de Clases -Control del Diagrama -

Figura 35 - Diagrama de Clases - Patroacuten Visitor - Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento Vista Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)

Figura 38 -Dialogo Caracteriacutesticas del Objeto

Figura 39 -Dialogo Mensaje

Figura 3 I O - Menuacute de los Diagramas de Secuencias (estaacutendar)

Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias

Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)

Figura 313 - Serializacioacuten

Figura 314 -Modelo de cascada del ciclo de vida del software

Figura 41 - Resultado del caso de prueba 1

Figura 42 -Resultado del caso de prueba 2

Figura 43 -Resultado del caso de prueba 3

Figura 44 -Resultado del caso de prueba 4

Paacutegina

3

13

22

23

25

26

26

29

30

31

32

32

32

34

35

37

45

46 47

48

iv

Tabla 11 - Tabla comparativa

Tabla 31 -Prefijos estaacutendar de identificadores

Tabla 32 -Elementos atoacutemicos del lenguaje

Tabla 41 - Resumen de los resultados de las pruebas realizadas

Listado de Tablas

Paacutegina

6 33

38 49

V

Notacioacuten

La siguiente es la notacioacuten de la que se haraacute uso

ltCObjectgt

ltGetDocunteiztgt

MiClase MiMetodo

9 Liacutenea de Coacutedigo

Mensaje

Clase de la MFC ( Microsoft Fundation Class)

Meacutetodo de una clase de la MFC

Clase desarrollada Meacutetodo de una clase desarrollada

Liacutenea o Bloque de coacutedigo

Elemento del Diagrama de Secuencia

vi

I Introduccioacuten

L~ tesis se enfoca hacia el desarrollo de sistemas de software centrados en el modelado mediante diagramas de secuencias definidos por el Lenguaje de Modelado Unificado (UML) La investigacioacuten y el producto de la tesis estaacuten inmersos en la etapa del disentildeo de sistemas de software

El producto (prototipo) de la tesis denominado S3C permite la obtencioacuten de diagramas de secuencias de UML tomando como base la informacioacuten de un diagrama de clases y de varios documentos modelados con diagramas de Wamier (disentildeo detallado de los meacutetodos)

Para la elaboracioacuten de los diagramas de clases se hace uso del ambiente existente InverSOODA [HER03] Y para el modelado de los documentos Wamier se ha tomado el ambiente InverDDVi [WEN02] Ambos ambientes visuales son productos de tesis anteriores y se han integrado en un solo prototipo denominado SCUML (Suite cenidet - UML)

(i

S3C realiza un proceso automaacutetico para la obtencioacuten de los diagramas de secuencias en este proceso solo se requiere indicar el diagrama de clases del que se basaraacute La construccioacuten de los diagramas de secuencias en S3C estaacute soportada con una gramaacutetica visual relacional El propoacutesito de la gramaacutetica es validar la construccioacuten de los diagramas de secuencias de UML

En el aacutembito de los diagramas de secuencias de UML no existen aplicaciones comerciales oacute proyectos educativos que se apoyen en una gramaacutetica visual para soportar la construccioacuten de los diagramas de secuencias y tampoco existen aplicaciones que permitan a partir de los diagramas de clases y del disentildeo detallado de los meacutetodos generar automaacuteticamente los diagramas de secuencias

3

Los temas relacionados a esta tesis son Modelado de Sistemas UML Interfaz de Usuario Programacioacuten Orientada a Objetos y Gramaacuteticas Visuales

El capiacutetulo 1 es de conceptos generales se dan a conocer los antecedentes del proyecto los trabajos relacionados hipoacutetesis alcances y limitaciones

En el capiacutetulo 2 se define el marco teoacuterico de la tesis se describen temas como Modelado de sistemas de software disentildeo de sistemas de software modelado visual lenguajes visuales programacioacuten orientada a objetos y lenguaje de modelado unificado

El capiacutetulo 3 describe el desarrollo del ambiente visual se detalla el modelo conceptual la arquitectura y sus elementos los diagramas de secuencias y la gramaacutetica visual relacional que se desarrolloacute

En el capiacutetulo 4 se muestran los casos de pruebas y los resultados obtenidos Y al final se establecen las conclusiones y se dan propuestas para algunos trabajos futuros 3

1

Capiacutetulo I

Conceptos generalis

En eacuteste capiacutetulo se dan a conocer los antecedentes del proyecto de tesis los trabajos relacionados el problema que resolveraacute la hipoacutetesis a comprobar los alcances y limitaciones

Conceptos generales

11 Antecedentes

Actualmente en el cenidet (Centro Nacional de Investigacioacuten y Desarrollo Tecnoloacutegico) se trabaja en la construccioacuten de un conjunto de ambientes visuales para dar soporte al desarrollo con diagramas que define el estaacutendar UML para elaborar sistemas de software de manera completa raacutepida y eficaz El ambiente de modelado principal se ha denominado suite cenidet-UML y su arquitectura general se muestra a continuacioacuten en la Figura 11

Arquitectura de la suite cenidet-UML

Figura 11 Arquitectura de la suite cenidet-UML

a El producto de software resultante de eacutesta tesis lleva por nombre S3C y como se indica en la figura 11 Las tesis directamente relacionadas son InverSOODA [HER03] e

InverDDVi [WEN02]

InverSOODA (Sistema Orientado a Objetos para Disentildeo y Anaacutelisis incluyendo Ingenieriacutea Inversa) es un Ambiente Visual que permite la elaboracioacuten de diagramas de clases de un sistema de software Los diagramas de clases son una vista estaacutetica y en ella se describe las relaciones que existen entre las entidades llamadas clases Cada una de las clases se divide en tres partes nombre de la clase meacutetodos y atributos Este ambiente permite generar el coacutedigo fuente en lenguaje C++ de un diagrama construido y tambieacuten aplicando la ingenieriacutea inversa es posible obtener un diagrama a partir de un coacutedigo en C++ existente

InverDDVi (Disentildeo Detallado Visual incluyendo Ingenieriacutea Inversa) es un Ambiente Visual cuyo objetivo es apoyar en la elaboracioacuten de diagramas de disentildeo detallado utilizando una notacioacuten basada en Warnier Los diagramas de Warnier sirven para describir una secuencia loacutegica de acciones y mediante su simbologiacutea se logra plasmar definiciones de meacutetodos llamadas a otros meacutetodos ciclos comparaciones lectura de informacioacuten y escritura de informacioacuten Este ambiente permite generar el coacutedigo fuente en C de un diagrama construido y tambieacuten aplicando la ingenieriacutea inversa se puede obtener un diagrama de Warnier a partir de un coacutedigo en C que ya exista

i

3

Conceptos generales

12 Trabajos relacionados

Rational Rose de Rafional

Una de las herramientas mas populares del mercado que utiliza la notacioacuten UML y tiene la capacidad de reingenieriacutea de software para integrar sistemas existentes capacidad de mezclar diferentes lenguajes dentro de un mismo modelo ademaacutes de ingenieriacutea inversa sobre los componentes COM (Component Object Model) ActiveX y Java y con soporte de las arquitecturas MicrosoWCOM y CORBAIDL (The Common Object Request Broker Architecture)

Con Rational Rose se puede trabajar en grupo con capacidades para modelar y visualizar procesos de negocios y requerimientos de sistemas Tiene soporte para generar esquemas objetos-relaciones de bases de datos para realizar anaacutelisis de datos Cuenta con el soporte para analizar sitios Web en ASP (Active Server Pages) y JSP (Java Server Pages) Ademaacutes soporta los lenguajes Java CC++ Visual CC++ [RAT02] 9

SI -

Visio de Microsoft

Visio Enterprise 2002 permite crear diferentes tipos de diagramas como son

1 Diagramas de flujo 2 Planos de oficinas 3 Diagramas de aacuterbol 4 Diagramas de organizacioacuten 5 Liacuteneas de tiempo 6 Mapas geograacuteficos y direccionales 7 Diagramas de sitios Web 8 Diagramas de red 9 Diagramas de UML

Tiene las siguientes caracteriacutesticas diagramacioacuten e importacioacuten de servicios de directorio reingenieria de bases de datos disentildeo y documentacioacuten de bases de datos diagramacioacuten de software ingenieriacutea directa e inversa de coacutedigo replicacioacuten exacta por medio de diagramas de equipos y configuraciones de red diagramacioacuten automatizada y ambiente colaborativo

Visio da un conjunto completo de herramientas de diagramacioacuten de redes para planear y documentar claramente las redes existentes Ademaacutes para crear esquemas eleacutectricos mecaacutenicos y de procesos pueden crearse diagramas complejos con facilidad y poco entrenamiento

A las aplicaciones existentes se les puede realizar la ingenieriacutea inversa para obtener el disentildeo y tambieacuten crear nuevos disentildeos Proporciona herramientas para crear diagramas de bases de datos y es posible realizar ingenieriacutea inversa de esquemas existentes en bases de datos cliente servidor como SQL Server IBM Oracle y otros [MIC02]

4

Conceptos generales

e JVision 21 de Object Insight

JVision permite en la ingenieriacutea directa la creacioacuten de clases variables y meacutetodos con lo cual genera plantillas de coacutedigo para programadores en Java Los diagramas se pueden exportar a HTML La documentacioacuten puede integrarse con JavaDoc de Sun JVision da el soporte para ingenieriacutea inversa para el lenguaje Java

Se pueden crear todos los diagramas definidos por UML en los diagramas de secuencias da la oportunidad de dibujar clases liacuteneas liacuteneas de tiempo de vida y marca de destruccioacuten de objetos ofrece ademaacutes el soporte para las acciones de llamada regresar valor enviar accioacuten crear accioacuten y eliminar accioacuten [OBJO2]

MagicDraw 6 de No Magic

Es una herramienta CASE con soporte para trabajo en grupo Esta disentildeado para analistas 6 de negocios analistas de software programadores ingenieros de calidad y

documentadores Esta aplicacioacuten provee la capacidad para crear los diagramas definidos por UML (soporta UML 14) Cuenta con el soporte de ingenieriacutea inversa y generacioacuten de coacutedigo para C++ C Java y CORBNIDL Tiene integracioacuten con NetBeans se actualiza automaacuteticamente disponible en aacuterabe portugueacutes franceacutes italiano ingles (US) alemaacuten espantildeol japoneacutes y coreano

Tiene la caracteriacutestica de soportar la adaptacioacuten de los elementos a colores que el usuario defina Los diagramas pueden exportarse a imaacutegenes JPG EMF WMF EPS y DXF En los diagramas de secuencia da oportunidad de definir roles textos notas mensajes de varios tipos al mismo objeto recursivo ademaacutes de la relacioacuten a las notas y las liacuteneas de vida Es posible guardar los diagramas como imaacutegenes de mapas de bits o vectores Mantiene ademaacutes una vista pequentildea a escala del diagrama completo [NoA402]

e

SmariDraw Professional Plus de SmariDraw

Todos los dibujos pueden agregarse en las aplicaciones de Microsoft como son Word Excel PowerPoint Contiene maacutes de 50000 (1000 en la versioacuten estaacutendar) formas predefinidas ejemplos y plantillas Los diagramas pueden ser exportados a imaacutegenes WMF BMP JPG GIF TIF y otros Incluye un convertidor de archivos de VISIO

Con esta herramienta es posible crear diagramas de flujo diagramas de bloque diagramas de flujos de datos diagramas de organizacioacuten aacuterboles de decisioacuten disentildeo de redes Gantt diagramas de flujo de procesos diagramas de administracioacuten de calidad diagramas eleacutectricos diagramas mecaacutenicos diagramas quiacutemicos liacuteneas de tiempo planes de espacio posters mapas formas y tambieacuten da soporte para UML es posible dibujar objetos actores activacioacuten de los objetos mensaje mensaje de retorno mensaje asiacutencrono mensaje con tiempo liacutenea de vida del objeto marca de destruccioacuten del objeto y ciclos (descrito con un rectaacutengulo y una condicioacuten de salida) [SMA02]

5

Conceptos generales

Producto Soporta Diagramas de UML Secuencias

Creacioacuten automaacutetica de diagramas de

El Rational Rose El Visio

Jvision

Magic D r a w

a a El Fl El a El El

I ~

I ~

I -

Ambiente de modelado de

a a SmartDraw El

Tabla I Tabla comparativa

Todas las herramientas descritas anteriormente cuentan con caracteriacutesticas sobresalientes para el disentildeo y modelado de sistemas de software pero ninguna de ellas genera automaacuteticamente los diagramas de secuencia con base en los diagramas de clases y el disentildeo detallado de los meacutetodos asiacute tambieacuten ninguna de ellas realiza un caacutelculo de los canales de comunicacioacuten abiertos entre las clases que conforman el sistema

iexcla la A UML Editor in Java

13 Definicioacuten del problema

El modelado de sistemas utilizando el estaacutendar de UML en diversos productos comerciales prototipos de laboratorio elaborados en universidades y centros de investigacioacuten atienden la perspectiva baacutesica de la abstraccioacuten general del modelo esto es documentar el modelo del sistema que se requiere sin atender puntos importantes tales como

La generacioacuten automaacutetica de los diagramas de secuencias La correccioacuten de inconsistencias en los diagramas al crearlos de forma separada

El

6

sistemas de software

secuencias utilizando diagramas de a a a

Conceptos generales

Se hace necesaria la creacioacuten de un ambiente visual que permita obtener de forma automaacutetica los diagramas de secuencias en base a los diagramas de clases y al disentildeo detallado de los meacutetodos para facilitar la documentacioacuten la generacioacuten de coacutedigo y el mantenimiento de los sistemas

La obtencioacuten de los diagramas de secuencias estaacute basada en los Diagramas de Clases definidos por UML que son construidos con la herramienta InverSOODA junto con el disentildeo detallado de los meacutetodos construidos con Diagramas de Wamier elaborados con la herramienta InverDDVi

En el estaacutendar UML para la construccioacuten de los diagramas no existe actualmente una sintaxis expliacutecita definida solo existe impliacutecitamente en el uso de los elementos del diagrama por lo que se ha descrito una gramaacutetica visual de tipo relaciona1 como soporte para la construccioacuten de los Diagramas de Secuencias

n ai 14 Objetivo de la Tesis

Construir un ambiente visual que permita al usuario obtener el diagrama de secuencias de manera automaacutetica

141 Objetivos especiacuteficos de la tesis Crear una gramaacutetica que soporte la construccioacuten del diagrama de secuencias Construir de forma automaacutetica el diagrama de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodos

15 Hipoacutetesis de investigacioacuten

Es posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodos

16 Alcances y limitaciones del trabajo de tesis

Los alcances de la tesis se especifican a continuacioacuten

Se elaboroacute la arquitectura del sistema Se definioacute la gramaacutetica de soporte Se desarrolloacute la interfaz en Visual C++ haciendo uso de las MFC Se interactuacutea con los diagramas de clases de InverSOODA Se interachiacutea con el disentildeo detallado de los meacutetodos realizados por InverDDVI Se genera el diagrama de secuencias de forma automaacutetica

7

Conceptos generales

Limitaciones de la tesis

0 No se genera coacutedigo

La investigacioacuten se limita a los diagramas de clases para la vista estaacutetica de los sistemas de software y a los diagramas de Warnier para la vista dinaacutemica de los meacutetodos El ambiente no trabaja en red

No se modifican los archivos de InverSOODA No se modifican los archivos de InverDDVI No se recuperan diagramas de secuencias a partir de coacutedigo legado

4

8

Capiacutetulo 2

Narc0 teoacuterico

En eacuteste capiacutetulo se describen los temas usados para el desarrollo de la tesis iquestQue son los modelos iquestEn que parte del proceso de Ingenieriacutea del Software se usan los modelos o el modelado Se estudia la interfaz de usuario los lenguajes visuales y las gramaacuteticas visuales Se describe el Lenguaje de Modelado Unificado (UML) ademaacutes de la programacioacuten orientada a objetos por ser este paradigma en donde se enfoca este trabajo

Marco teoacuterico

21 Modelado de sistemas de software

un modelo es una abstraccioacuten de algo con el propoacutesito de entenderlo antes de construirlo El modelo omite detalles no esenciales haciendo maacutes faacutecil su manipulacioacuten que la entidad original [BLA98] Un modelo es la simplificacioacuten de la realidad [RUM99] Los propoacutesitos de los modelos son

Probar una entidad fisica antes de construirla Establecer mejor comunicacioacuten con los clientes Visualizar el problema y el sistema desde una mejor perspectiva Reducir la complejidad [BLA98] Capturar y precisar requerimientos y conocimiento del dominio Pensar acerca del disentildeo del sistema Capturar decisiones de disentildeo en una fomia separada que cambia a partir de los requerimientos Generar productos Organizar buscar filtrar obtener examinar y editar informacioacuten acerca de un sistema Explorar muacuteltiples soluciones econoacutemicas Manejar sistemas complejos [RUM99]

El modelado es una probada y bien aceptada teacutecnica de Ingenieriacutea de Software [RUM99] El modelado es parte central de todas las actividades que conducen a la produccioacuten de buen software Se construyen modelos para comunicar la estructura deseada y revisar el comportamiento de nuestro sistema Se construyen modelos para visualizar y controlar la arquitectura del sistema Se construyen modelos para comprender mejor el sistema que estamos construyendo muchas veces descubriendo oportunidades para la simplificacioacuten y la reutilizacioacuten Se construyen modelos para controlar el riesgo [BOO99] La razoacuten fundamental por la que modelamos es porque nosotros construimos modelos que nos ayudan a entender mejor el sistema que estamos desarrollando [RUM99]

El modelado nos permite [RUM99] 1 Visualizar como es el sistema o como queremos que sea 2 Especificar la estructura del sistema 3 Plantear nuestras guiacuteas en la construccioacuten delsistema 4 Documentar las decisiones que hemos tomado

En las etapas del desarrollo del software el modelado es usado en el disentildeo el disentildeo del sistema es la primera etapa en donde se da la aproximacioacuten baacutesica de la solucioacuten al problema seleccionado ademaacutes se decide por la estructura (arquitectura del sistema) y el estilo de la solucioacuten

La arquitectura del sistema provee el contexto sobre el cual se tomaraacuten decisiones mas detalladas en las etapas subsecuentes del disentildeo [BLA98] En el disentildeo modelamos el sistema y encontramos su forma (incluida la arquitehra) para que soporte todos los 3 -

10

Marco teorico

i

4 -I

requisitos -incluyendo los requisitos no funcionales y otras restricciones- que se le suponen [JAC99] Los propoacutesitos del disentildeo son

Adquirir una comprensioacuten en profundidad de los aspectos relacionados con 10s requisitos no funcionales y restricciones relacionadas con los lenguajes de programacioacuten componentes reutilizables sistemas operativos tecnologiacuteas de distribucioacuten y concurrencia tecnologiacuteas de interfaz de usuario tecnologiacuteas de gestioacuten de transacciones etc Crear una entrada apropiada y un punto de partida para actividades de implementacioacuten subsiguientes capturando los requisitos o subsistemas individuales interfaces y clases Ser capaces de descomponer los trabajos de implementacioacuten en partes mas manejables que puedan ser llevadas a cabo por diferentes equipos de desarrollo teniendo en cuenta la posible concurrencia Capturar las interfaces entre los subsistemas Esto ayuda cuando reflexionamos sobre la arquitectura y cuando utilizamos interfaces como elementos de sincronizacioacuten entre diferentes equipos de desarrollo Ser capaces de visualizar y reflexionar sobre el disentildeo utilizando una notacioacuten comuacuten Crear una abstraccioacuten independiente de la implementacioacuten del sistema en el sentido de que la implementacioacuten es un refinamiento directo del disentildeo que rellena lo existente sin cambiar la estructura Esto permite la utilizacioacuten de tecnologiacuteas como la generacioacuten de coacutedigo y la ingenieriacutea de ida y vuelta entre el disentildeo y la implementacioacuten [JAC99]

22 Interfaz de usuario (Mecanismos de interaccioacuten)

El crecimiento de las computadoras personales vendidas en los ~ O rsquo S lanzoacute con fuerza el ldquofaacutecil de usarrdquo como una de las caracteriacutesticas mas importante de un producto de computadora

Las interfaces graacuteficas de usuario no son nuevas se pueden encontrar en las paredes de cuevas al sur de Francia en las piraacutemides de Egipto y en las paredes de muchas ciudades [iUM92] Para el usuario de un sistema interactivo la comunicacioacuten es tan importante como la computacioacuten Para los usuarios regularmente la interfaz es el sistema [HIX93]

Disentildeo de Interfaz Seguacuten Hackos [HAC98] las interfaces estaacuten en todo donde se trabaja con

o Controles en productos de hardware o Etiquetas y sentildeales en el hardware o Pequentildeas pantallas de cristal liquido en maacutequinas de cualquier tipo o Pantallas para aplicaciones de software para terminales de computadoras centrales

Marco teoacuterico

o pantallas para aplicaciones de software en computadoras Personales sistemas operativos como Windows OS2 DOS Macintosh U n b Y Otros

0 Paacuteginas de un sitio WEB 0 Sistemas de ayuda y manuales en-liacutenea 0 Tutoriales incrustados y otros tipos de soporte de funcionamiento O Esquemas de formas y otros documentos

una interfaz es el medio con el cual los usuarios interactuacutean con el producto 0

sistema para lograr SUS objetivos

Interfaz Usable

Para que una interfaz sea usable debe ser transparente y darles a los usuarios la capacidad de lograr cumplir sus metas de forma efectiva y eficiente

Los beneficios presentados en el uso de las interfaces de usuario [TH190] Disfrutar el sistema El usuario disfruta trabajar con un sistema que cuenta con una interfaz bien disentildeada y que le da la funcionalidad y acceso a los recursos de una manera clara y sencilla Proporciona nuevas habilidades Elimina al usuario concentrarse en acciones que la propia interfaz y el sistema hacen dando como resultado que el usuario solo se concentre en lo importante del trabajo Delegacioacuten de tareas La interfaz de usuario permite al usuario no conocer los detalles de la tarea esto es la computadora atiende los detalles de las tareas mientras que el usuario se concentra en asuntos de maacutes alto nivel Seguridad El usuario no necesita estar en lugarespeligrosos para hacer su trabajo

Se da la mayor posibilidad para que el usuario tenga acceso al conocimiento utilizando un sistema interactivo Haciendo las cosas a la primera Las tareas se ejecutan en un orden correcto definido lo que da como resultado un trabajo bien terminado sin necesidad de repetir evitando asiacute altos costos Computando LOS usuarios pueden calcular datos sin necesidad de conocer el proceso para obtener los resultados

Desarrollo

El disentildeo de interfaz es un negocio bastante dificil Eacuteste combina dos complicadas disciplinas psicologiacutea y ciencias de la computacioacuten Estas disciplinas tienen un fondo cultural muy diferente la psicologiacutea atiende a la gente (comprensioacuten y entendimiento) las ciencias computacionales a las maacutequinas (matemaacuteticas y precisioacuten) El disentildeo de las buenas interfaces requiere que estas dos perspectivas esteacuten unidas [THi90]

Hackos dice que las interfaces dan simplicidad y elegancia al trabajo necesario y a la vida e los usuarios Si no es obvio al usuario pero es raacutepida para aprender [HAC98] ademaacutes define caracteriacutesticas comunes de las interfaces usables

o Hacen que el flujo de trabajo sea familiar o confortable o Soportan el estilo de aprendizaje de los usuarios

12

Marco teoacuterico

Visualizacioacuten de Entrenamiento visual Para controlar Soportar interaccioncs Programar con informacioacuten visual visuales expresiones visuales

o Compatibles con los ambientes de trabajo de los usuarios o Se extienden sobre un concepto de disentildeo que es familiar al usuario o Tienen consistencia de presentacioacuten que los hace parecer maacutes confiable y faacuteciles de

aprender o Usan lenguaje y figuras familiares al usuario o faacuteciles de aprender

Datos o informacioacuten acerca de datos

23 Lenguajes Visuales

Los lenguajes visuales son un nuevo paradigma para expresar los sistemas computacionales Ellos ofrecen la posibilidad de manipular directamente los objetos Un lenguaje visual consiste de sentencias visuales Para lenguajes visuales basados en iacuteconos cada sentencia visual es un arreglo espacial de objetos O iacuteconos graacuteficos [CHA90]

Un lenguaje visual es concebido como una coleccioacuten de figuras obtenidas por un arreglo graacutefico de objetos en dos o maacutes dimensiones Los lenguajes visuales pueden ser modelados sintaacutecticamente a traveacutes de un vocabulario un conjunto de relaciones usadas para componer las figuras y un conjunto de reglas describiendo las figuras pertenecientes al lenguaje Los objetos graacuteficos de un vocabulario de un lenguaje visual se caracterizan por contar con un conjunto de atributos Los atributos de un objeto graacutefico pueden ser atributos graacuteficos atributos sintaacutecticos y atributos semaacutenticos [MAR98]

Un lenguaje de programacioacuten visual puede ser informalmente definido como un lenguaje el cual usa algunas representaciones visuales [SHV88]

Programa ylo Disentildeo de Lenguajes de programacioacuten visual ejecucioacuten software Diagramas iconos Formas

Programacioacuten Visual [SHU88]

Gramaacuteticas para la especificacioacuten de lenguajes visuales [MAR98]

a) Gramaacuteticas texfuales generalizadas Este tipo de gramaacutetica provee una adaptacioacuten apropiada de la concatenacioacuten de siacutembolos para dos dimensiones Su principal ventaja es que conservan los elementos teoacutericos de las gramaacuteticas textuales y los eficientes algoritmos de anaacutelisis de eacutestos uacuteltimos Su principal desventaja es que eacutestas gramaacuteticas no son tan poderosas y soacutelo pueden especificar clases restringidas de lenguajes visuales

13

Marco teorico

b) Meacutetodos basados en gramaacuteticas de grafos Un ejemplo de este tiPo de gramaacuteticas son las gramaacuteticas de red Las oraciones generadas con gramaacuteticas de red son grafos dirigidos con siacutembolos en los nodos Estos grafos son llamados redes Una produccioacuten de eacuteste tipo de gramaacuteticas es de la siguiente forma

a - t p E

donde a y p son redes y E es una forma de conectar a p cuando a es conectada a otra red anfitriona

La mayor desventaja es que las gramaacuteticas de red no han probado ser totalmente uacutetiles para la especificacioacuten de gramaacuteticas arbitrarias por la complejidad para rescribir grafos y al hecho de que no todo lenguaje visual estaacute compuesto exclusivamente por grafos

C) Gramaacuteticas de multiconjuntos de atributos En estas gramaacuteticas las producciones rescriben conjuntos o multiconjuntos de siacutembolos que tienen atributos con informacioacuten sobre geometriacutea o semaacutentica La reescritura se controla con restricciones sobre los atributos de los siacutembolos en el lado derecho de las producciones

Un ejemplo de eacutestas gramaacuteticas es la Gramaacutetica Coordinada que especifica notacioacuten matemaacutetica de dos dimensiones En esencia las producciones en una gramaacutetica coordinada n-coordinada libre del contexto tienen la siguiente forma

A -t a donde C F

Todos los siacutembolos de eacuteste tipo de gramaacutetica tienen n atributos geomeacutetricos A es un siacutembolo no terminal a es una cadena no vaciacutea de siacutembolos C es una restriccioacuten sobre los atributos de los siacutembolos en a y F es una expresioacuten que computa los atributos de los siacutembolos de A en teacuterminos de los atributos de los siacutembolos en a no importando el orden de los siacutembolos en a

d) Gramaacuteticas PosicionaZes Las gramaacuteticas posicionales son un formalismo para la definicioacuten e implementacioacuten de lenguajes visuales las gramaacuteticas posicionales extienden naturalmente a las gramaacuteticas libres de contexto Una gramaacutetica libre de contexto posicional PG es una six-tupla (N T S P POS PE) donde

N es un conjunto finito no vaciacuteo de siacutembolos no terminales T es un conjunto finito no vaciacuteo e siacutembolos terminales con N n T = $I S E N es el siacutembolo no terminal de inicio P es un conjunto finito de producciones POS es un conjunto finito de identificadores de relacioacuten binaria PE es un evaluador pictoacuterico

14

Marco teorico

Cada produccioacuten en P tiene la siguiente forma

A -+ X I R I X R2 X ~ I Rm1 xm A

e) Gramaacuteticas de Relacioacuten de siacutembolos Eacuteste es un formalismo sintaacutectico para describir un lenguaje visual donde cada oracioacuten dentro del lenguaje se representa como un conjunto de objetos visuales y un conjunto de relaciones entre objetos

El alfabeto de siacutembolos Vt y el conjunto de relaciones entre siacutembolos Vr una oracioacuten de relacioacuten de siacutembolos w sobre Vt y Vr es un par ( M R) donde

M es un conjunto de elementos-s (v i) con v E Vt y i es un nuacutemero natural R es un conjunto de elementos-r de la forma r (Xi Yj) con Xi Yj E M r E Vr y una relacioacuten r esta contenida entre Xi y Yj

Una gramaacutetica de relacioacuten de simbolos es el conjunto de seis elementos G = (Vn Vt Vr S P R) donde Vn es un conjunto de siacutembolos no terminales Vt es un conjunto de siacutembolos terminales Vr es un conjunto de relaciones entre siacutembolos S es el siacutembolo inicial y P es un conjunto de reglas de reescritura (producciones de elementos-s)

f) Gramaacuteticas relacionales Este tipo de gramaacutetica pertenecen a las gramaacuteticas libres de contexto

La gramaacutetica relaciona1 (RGrsquos) es una 6-tupla G (N C S R Attr P) donde

N C S R Attr P

es un conjunto finito de siacutembolos no terminales es un conjunto de siacutembolos terminales es un siacutembolo distinguido en N llamado siacutembolo inicial es un conjunto finito de siacutembolos de relacioacuten es un conjunto finito de siacutembolos de atributos es un conjunto de producciones de la forma A-gt apF donde A E N a E (nlo)+ Donde n E N cr E E

8 Es un conjunto de relaciones de la forma (r x y) donde r E R y xy son enteros que hacen referencia a un miembro de a y tambieacuten una expresioacuten de la forma (a i) donde a E Attr e i es un entero que hace referencia a un miembrode a

F Es un conjunto de declaraciones de asignacioacuten de caracteriacutesticas de la forma (a O)=x donde a E Attr y x es un entero que hace referencia a un miembro de a o a una expresioacuten de la forma (a i)

15

Marco teoacuterico

24 Programacioacuten orientada a objetos

L~~ meacutetodos orientados a objetos organizan la informacioacuten Y el procesamiento que manipula esta informacioacuten de acuerdo a los objetos delrsquomundo real que la informacioacuten describe [BRO97l

Beneficios de las teacutecnicas orientadas a objetos [BR097] Estabilidad del sistema Mantenibilidad Componentes reusables Confiabilidad Accesibilidad de los datos Participacioacuten del usuario

Seguacuten Graddy Booch la programacioacuten orientada a objetos es ldquoun meacutetodo de implementacioacuten en el que los programas se organizan como colecciones cooperativas de objetos cada uno de los cuales representan una instancia de alguna clase y cuyas clases son todas miembros de una jerarquiacutea de clases unidas mediante relaciones de herenciardquo [JOY 981

Programacioacuten orientada a objetos esencialmente significa programacioacuten usando objetos [JAC93] Los lenguajes orientados a objetos deben soportar los siguientes conceptos

Objetos Abstraccioacuten de datos Encapsulamiento Clases e Instancias Herencia entre clases Polimorfismo

Las propiedades fundamentales de la Programacioacuten Orientada a Objetos son

a Abstraccioacuten Son ideas conceptos y propiedades que se describen en forma general eliminando los detalles Es una estructura de datos y los meacutetodos que manipulan a esos datos

b Encapsulamiento Son las fronteras propias de un objeto bien definidas las cuales protegen los detalles de su representacioacuten interna

c Ocultacioacuten de la informacioacuten Es la propiedad en la que los objetos pueden hacer uso para impedir que otros objetos los usuarios o incluso los programadores conozcan coacutemo estaacute distribuida la informacioacuten

d Herencia Es la propiedad que tiene una clase para heredar atributos y comportamiento a otras clases

e Polirnorfismo Es la propiedad que permite que una entidad pueda cambiar a diferentes formas efectuaacutendose de manera dinaacutemica en tiempo de ejecucioacuten

16

Marco teoacuterico

t

Clases Es la especificacioacuten de una familia de objetos es la declaracioacuten de un tipo de objetos Tambieacuten se dice que una clase es la descripcioacuten de un conjunto de objetos con un comportamiento similar y que esta compuesta de Datos (o atributos) y Meacutetodos o (rutinas acciones operaciones)

Objeto Un objeto es una entidad en la cual se almacenan datos y los meacutetodos o funciones que controlan dichos datos Un objeto es una abstraccioacuten de alguna cosa del mundo real que contiene datos que lo describen y operaciones que solo tienen acceso a esos datos [BR097l Los elementos de los que esta conformado un objeto son

a Las relaciones permiten que el objeto se integre en la organizacioacuten b Las propiedades son los datos que caracterizan el estado de un objeto distinguiendo

asiacute a un objeto determinado de los restantes que forman parte de la misma organizacioacuten

c Los meacutetodos son las operaciones que pueden realizarse sobre la estructura del objeto es decir las acciones que cambian el estado de un objeto y que el objeto es capaz de ejecutar a traveacutes de mensajes y que tambieacuten pone a disposicioacuten de sus descendientes a traveacutes de la herencia

Mensajes Son solicitudes para que se lleve a cabo la operacioacuten indicada y se produzca un resultado

Las razones principales para introducir la tecnologiacutea de objetos son los beneficios de dicha tecnologiacutea

Aumento de la fiabilidad Aumento de la productividad del desarrollador Desarrollo maacutes raacutepido Mejor calidad maacutes alta

Incremento en escalabilidad Mejores estructuras de informacioacuten Incremento de adaptabilidad Reduccioacuten del coacutedigo fuente

Mantenimiento maacutes faacutecil y reduccioacuten de costo

Los elementos de reutilizacioacuten son las clases y objetos

25 Lenguaje de Modelado Unificado (UML)

UML (Unified Modeling Language por sus siglas en ingleacutes Lenguaje de Modelado Unificado) es un lenguaje de modelado visual de propoacutesito general que es utilizado para especificar visualizar construir y documentar las partes de un sistema de software El lenguaje estaacute basado en un pequentildeo nuacutemero de conceptos centrales que la mayoriacutea de los desarrolladores de tecnologiacutea orientada a objetos pueden aprender y aplicar faacutecilmente [RUM99]

17

Marco teoacuterico

y UML Pasado Presente y Futuro

L~~ lenguajes de modelado orientado a objetos aparecieron a mediados de 10s 70rsquos Varias teacutecnicas influenciaron estos lenguajes El nuacutemero de lenguajes de modelado incrementoacute desde menos de 10 hasta maacutes de 50 entre 1989 y 1994 Muchos modeladores teniacutean problemas para encontrar un lenguaje de modelado que satisficiera todas sus necesidades Notablemente aparecioacute Boochrsquo93 y la evolucioacuten continuoacute a OMT y Fusioacuten

OOSE (Object-Oriented Software Engineering) estaacute enfocado a la ingenieriacutea de negocios y anaacutelisis de requerimientos dando un excelente soporte orientado a casos de uso OMT-2 es especialmente expresivo para anaacutelisis y sistemas de informacioacuten de datos grandes Boochrsquo93 fue particularmente expresivo para el disentildeo y fases de construccioacuten de proyectos y popular para aplicaciones de ingenieriacutea intensiva

Grady Booch y Jim Rumbaugh iniciaron el desarrollo de UML en 1994 al unificar sus meacutetodos independientes Booch y OMT En 1995 Ivar Jacobson se unioacute a Racional eacutesta unioacuten logroacute que el meacutetodo OOSE se incorporara La unificacioacuten establecioacute que debiacutean activar el modelado de sistemas utilizando conceptos orientados a objeto asiacute como crear un lenguaje usable tanto para las maacutequinas como para los humanos

A

Muchas organizaciones se unieron al consorcio UML y dedicaron recursos al trabajo hacia el fortalecimiento de la definicioacuten de UML Esta colaboracioacuten produjo un lenguaje de modelado expresivo poderoso y generalmente aplicable En la forma actual de UML se espera que sea base de muchas herramientas incluidas las de modelado visual simulacioacuten y ambientes de desarrollo

R UML es abierto y no-propietario y aunque define un lenguaje preciso no es barrera para futuras mejoras en conceptos de modelado Se usan muchas teacutecnicas de punta pero se esperan teacutecnicas adicionales que influencien futuras versiones de UML puede ser extendido sin redefinir el nuacutecleo

c

Mientras el rehuacuteso basado en componentes se ha favorecido ampliamente cada vez mas esto no significa que las teacutecnicas basadas en componentes reemplazaraacuten las teacutecnicas orientadas a objetos Hay solo sutiles diferencias entre la semaacutentica de componentes y clases [ALC03]

Un opaco rendimiento caracterizoacute el mercado de anaacutelisis modelado y disentildeo en el 2000 en su transicioacuten de las viejas herramientas CASE (Computer Aided Software Engineering) a algo maacutes dinaacutemico y mejor adaptado para satisfacer las necesidades de los desarrolladores para el cambio raacutepido en los ambientes de negocio

El mercado de anaacutelisis modelado y disentildeo lograraacute obtener un crecimiento positivo en varios de los siguientes antildeos por varias razones El mercado seraacute manejado principalmente por la necesidad de desarrolladores a obtener aplicaciones para lanzarse al mercado raacutepidamente asiacute tambieacuten por el intereacutes creciente y uso de una nueva especie de herramienta y por el intereacutes creciente de los desarrolladores en usar UML reglas de negocios y adaptadores de componentes para construir aplicaciones [RIKUI]

z -

18

Marco teoacuterico

UML se ha hecho el estaacutendar para los desarrollos de modelado de negocios administracioacuten de requerimientos anaacutelisis y disentildeo programacioacuten y pruebas Los objetivos primarios de UML en el disentildeo [RAT97j

o Dar a los usuarios un lenguaje visual expresivo de modelado listo para usarse para que puedan desarrollar y cambiar los significados de sus modelos

o Suministrar mecanismos de extensibilidad y especializacioacuten para extender los conceptos centrales

o Ser independiente de lenguajes de programacioacuten particulares y procesos de desarrollo

o Impulsar el desarrollo de las herramientas Orientadas a Objeto en el mercado o Soportar conceptos de desarrollo de alto nivel como colaboracioacuten marcos de

componentes reutilizables patrones y componentes o Integrar las mejores praacutecticas

9 El aacutembito de UML

UML es un lenguaje para especificacioacuten construccioacuten visualizacioacuten y documentacioacuten de artefactos de un sistema de software UML es la fusioacuten de los conceptos de Booch OMT y OOSE El resultado es un simple comuacuten y ampliamente usado lenguaje de modelado para usuarios de estos y otros meacutetodos UML se enfoca en un lenguaje de modelado estaacutendar no en un proceso estaacutendar los autores de UML recomiendan un proceso de desarrollo manejado por casos de uso de arquitectura central iterativo e incremental [iiquest4T97l

Para la definicioacuten de sistemas de software en UML se definen diagramas Un diagrama es la representacioacuten graacutefica de un conjunto de elementos este se visualiza la mayoriacutea de las veces como un grafo conexo de nodos (elementos) y arcos (relaciones) Los diagramas se dibujan para visualizar un sistema desde diferentes perspectivas de forma que un diagrama es la proyeccioacuten de un sistema uumlML incluye nueve diagramas [B0099]

4 -

I Diagrama de clases 2 Diagrama de objetos 3 Diagrama de casos de uso 4 Diagrama de secuencias 5 Diagrama de colaboracioacuten 6 Diagrama de estados 7 Diagrama de actividades 8 Diagrama de componentes 9 Diagrama de despliegue

Diagramas de secuencias Un diagrama de secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten comportamiento

Un diagrama de secuencias muestra un conjunto de mensajes acomodados en una secuencia de tiempo eacuteste diagrama muestra la interaccioacuten en un esquema de dos - dimensiones [RUM99]

19

Marco teoacuterico

Y -

Un diagrama de secuencia es un diagrama de interaccioacuten que resalta la ordenacioacuten temporal de los mensajes Un diagrama de secuencia presenta un conjunto de objetos y los mensajes enviados y recibidos por ellos Los objetos suelen ser instancias (con nombre o sin nombres) de clases pero tambieacuten pueden representar instancias de otros elementos tales como colaboraciones componentes y nodos Los diagramas de secuencia se utilizan para describir la vista dinaacutemica de un sistema [B0099]

Usar los diagramas de secuencia es mostrar la secuencia que existe en un caso de uso [RUM 991

Los diagramas de secuencia tienen dos dimensiones Una dimensioacuten que representa el tiempo Otra dimensioacuten que representa los diferentes objetos que participan en la secuencia de eventos requeridos para completar el propoacutesito [MOuuml98]

El principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildea las interacciones de los objetos [DAN02]

20

Capiacutetulo 3

DesawoCCo de Ia herramienta

En este capiacutetulo se describe el desarrollo del Ambiente Visual Se describe el modelo conceptual del sistema la arquitectura asiacute como tambieacuten los elementos que componen la Arquitectura Se estudian los Diagramas de Secuencias de UML y algunos Patrones de Disentildeo de los que se hace uso para el mejor desarrollo del sistema Se describe a detalle la Gramaacutetica Visual Relaciona1 utilizada para el de Ambiente de desarrollo

I CENIOET 1FNTRO DE INFORMACION

Desarrollo de la herramienta

t i i

Actualmente existe en el cenidet un Ambiente Visual de Modelado de Clases llamado InverSOODA este Ambiente Visual tiene la capacidad de realizar la generacioacuten automaacutetica de coacutedigo de las clases en C++ a partir del modelo especificado Ademaacutes se puede realizar la Ingenieria Inversa de un coacutedigo legado para obtener el modelo de clases Aunado a este trabajo existe el Ambiente Visual denominado InverDDVi con el cual se puede realizar el Disentildeo Detallado de los Meacutetodos de las Clases con diagramas de Warnier Asiacute tambieacuten es posible obtener el modelo aplicando la Ingenieriacutea Inversa a un coacutedigo legado en C++

Ambos trabajos son retomados en este proyecto para la automatizacioacuten en la obtencioacuten de los Diagramas de Secuencias de UML La figura 31 muestra el modelo propuesto de ingenieriacutea directa

Extraer informacioacuten del diagrama de

rsquo rsquo

Diagrama de 11 clases I o

detallado de

detallado de

o meacutetodos

i ir---- Construir el

secuencias i

Modelo de Ingenieriacutea I directa automaacutetica

I

Figura 31 Modelo de Ingenieria Directa Autombtica de los Diagramas de Secuencias

Para la construccioacuten automaacutetica de un diagrama de secuencias se toma como base a un diagrama de Clases El modulo ldquoExtraer informacioacuten del diagrama de Clasesrdquo sirve para obtener el nombre y los meacutetodos descritos en cada uno de las clases que existan en el diagrama de Clases

22

Desarrollo de la herramienta

Con base en la informacioacuten que se tiene se abren los archivos correspondientes a los diagramas de Warnier El proceso que se emplea sobre cada uno los diagramas de Warnier llamado ldquoExtraer informacioacuten de los disentildeos detallados de los meacutetodosrdquo sirve para recopilar el conjunto de las llamadas de cada meacutetodo definido

En el siguiente paso (ldquoReconocer llamadas a meacutetodosrdquo) consiste en identificar si los meacutetodos que estaacuten descritos en los diagramas de Warnier tambieacuten lo estaacuten en el diagrama de Clases correspondiente

El paso ldquoConstruir los diagramas de secuencias automaacuteticamenterdquo realiza una validacioacuten de los meacutetodos definidos en los diagramas de Clases con los meacutetodos definidos en los diagramas de Warnier Este paso crea una estructura de datos con la secuencia de las llamadas y la recorre para crear los objetos y los mensajes en el diagrama de secuencias

AI terminar la creacioacuten automaacutetica del diagrama de secuencias se dispone de la r opcioacuten de guardar

31 Disentildeo de la Arquitectura

Para definir los procesos que el sistema va a realizar es necesario llevar a cabo un anaacutelisis de requisitos los cuales pueden ser expresados mediante diagramas de Casos de Uso Los Casos de Uso son una descripcioacuten textual narrativa de los procesos de un sistema

311Requisitos (Diagrama de Casos de uso)

Los casos de uso en realidad no son un artefacto de anaacutelisis orientado a objetos estos describen simplemente procesos y pueden ser igualmente efectivos en un proyecto tecnoloacutegico no orientado a objetos Son usados en un paso preliminar a la descripcioacuten de requerimientos de un sistema [LAR971 La Figura 32 muestra el diagrama de casos de uso que especifica al S3C

9

S3C (Diagramas de Secuencias)

usuario I Modelado de

I

Figura 32 Diagrama de Casos de Uso para el S3C

23

Desarrollo de la herramienta

Descripcioacuten de los Casos de Uso

Caso de Uso ldquoDiagramas de Secuenciasrdquo Se inicia cuando el actor ldquousuariordquo solicita la creacioacuten de un Diagrama de Secuencias Se establece la forma de la construccioacuten automaacutetica de los diagramas de secuencias de UML Se hace uso del Modelado de Clases y del Modelado del disentildeo detallado de los meacutetodos

Escenario de Eacutexito 1 Se obtiene la informacioacuten de las clases del modelado de clases 2 Se obtiene la informacioacuten del modelado del disentildeo detallado de los meacutetodos 3 Se realiza la construccioacuten automaacutetica de los diagramas de secuencias

1 En el modelo de clases no hay informacioacuten o estaacute incompleta 2 En el modelo del disentildeo detallado de los meacutetodos no hay informacioacuten o estaacute

incompleta

Escenario de Falla

Caso de Uso ldquoModelado de Clasesrdquo El diagrama de Clases se utiliza para obtener los nombres de clases y los nombres de los meacutetodos de cada clase

Escenario de Eacutexito 1 Se abre el modelo 2 Se procesa para obtener la informacioacuten de las clases (nombres de clases y nombres

de meacutetodos)

Escenano de Falla h 1 No se puede abrir el modelo J 2 El modelo esta vaciacuteo

Caso de Uso ldquoModelado del Disentildeo detallado 1 los meacutetodosrdquo El disentildeo detallado de los meacutetodos se realiza con diagramas de Warnier aquiacute se establecen las llamadas a funciones dentro del sistema y es aquiacute donde se identifica el dinamismo que se representaraacute en los diagramas de secuencias

Escenario de Eacutexito 1 Se abre el modelo 2 Se realiza la identificacioacuten de las llamadas existentes

Escenario de Falla 1 No se puede abrir el modelo 2 El modelo esta vaciacuteo

24

Desarrollo de la herramienta

Clase Objeto ni I Diagrama I n ____ Nombre Descripcioacuten

i

Mensaje

Tipo

En el Anaacutelisis Orientado a Objetos se crea una especificacioacuteii del dominio del problema y de los requeriinientos desde la perspectiva de una clasificacioacuten por objetos y del entendimiento de los teacuterminos usados en el dominio del problema Una descomposicioacuten del dominio del problema involucra una identificacioacuten de conceptos atributos y asociaciones que son considerados importantes dentro del dominio El resultado puede ser expresado en un Modelo Corzcepttraf el cual es ilustrado en un conjunto de diagramas que definen conceptos (objetos) [LAR97]

312Modelo Conceptual

El modelo conceptual visto en la Figura 33 no es una descripcioacuten de componentes de software representa conceptos en el domino del problema en el mundo Teal [LAR97l

313Diagramas de clases

Por cuestiones dc espacio las clases de la arquitectura del sistema estaraacuten referidas en varios diagramas que de alguna manera estaacuten relacionados entre si

Una de las partes maacutes importantes del Ambiente Visual S3C es la estructura de clases ltCCraJicogt la cual se refiere al control de los diagramas eacutesta por su naturaleza podriacutea considerarse el nuacutecleo del sistema La manipulacioacuten y control de los diagramas estaacute definido en una estructura de clases organizada con el patroacuten de disentildeo Composite que se muestra en la Figura 34

25

Desarrollo de la herramienta

CRecursividadDS CMensajeDS CObjetoDS CDiagramaDS

I Cvisitor I

CApuntadorDS CDblClickDS CAsocAdjusterDS CSelectorDS

26

Desarrollo de la herramienta

n 32 Elementos de la arquitectura

Es necesario describir los elementos que dan soporte a la arquitectura del ambiente donde se implementaraacute el sistema en este caso Microsoft Visual (MV) C++ 6 El MV C++ es un marco de aplicacioacuten poderoso basado en Windows se integran ademaacutes del lenguaje C++ (compilador y enlazador) el programa de desarrollo de programas en lenguaje C para Windows (SDK) la Microsoft Foundation Class Library AppWizzard Classwizard AppStudio y WorkBencli

La Microsoft Foundation Class Library comprende una biblioteca de clases de C++ y es considerada como el nuacutecleo del MV C++

321Microsoft Foundation Class (MFC)

La libreriacutea Microsoft Foundation Class (MFC) es una interfaz orientada a objetos que tiene las siguientes metas de disentildeo

o

Reduccioacuten significante de esfuerzo al escribir una aplicacioacuten para Windows Velocidad de ejecucioacuten comparable a las APIrsquos del lenguaje C Miacutenimo tamantildeo de coacutedigo Capacidad para llamar cualquier funcioacuten de Windows en C directamente Faacutecil conversioacuten de aplicaciones existentes en C a C++ Faacutecil uso de APIrsquos de Windows con C++ como con C Faacutecil uso de complicadas caracteriacutesticas de abstracciones poderosas como ActiveX soporte para base de datos impresioacuten barras de herramientas y barras de estado El API de Windows en C++ si usa tan efectivamente como las caracteriacutesticas mismas del lenguaje C++

La mayoriacutea de las clases de la Libreriacutea de la Microsoft Foundation Class son derivadas de una clase base ltCObjectgt que es la raiacutez de la jerarquiacutea de clases ltCObjectgt da uacutetiles capacidades a las clases que derivan de ella

La jerarquiacutea que existe en las clases derivadas de ltCObjectgt es la siguiente

Arquitectura de Aplicacioacuten Excepciones Servicios de Archivos Arreglos Listas Mapas Servicios de Internet Sockets Sincronizacioacuten Soporte para base de datos D A 0

27

Desarrollo de la herramienta

i

r

Liacutenea de Comandos Menuacute Dibujo Graacutefico Dibujo Graacutefico de Objetos Soporte de Control Soporte de Ventanas

Soporte para base de datos ODBC

o Marco de Ventanas o Barras de control o Hojas de propiedades o Cajas de Dialogo o Vistas o Controles

322Arquitectura Documento Vista

Por defecto las aplicaciones creadas con la MFC usan un modelo de aplicacioacuten que separa los datos del programa de las vistas de interaccioacuten con el usuario En eacuteste modelo un objeto documento de MFC lee y escribe datos en un almacenamiento persistente Un objeto vista administra el despliegue de datos suministrando al usuario los datos para ser seleccionados o editados La vista le comunica al documento cualquier cambio en los datos La razoacuten maacutes conveniente para seguir este modelo es cuando se necesita muacuteltiples vistas del mismo documento (como en una hoja de caacutelculo y un graacutefico)

La arquitectura documentovista hace faacutecil el soporte de muacuteltiples vistas y muacuteltiples tipos de documentos asiacute como la divisioacuten de ventanas y otras caracteriacutesticas de interfaz de usuario Pero el corazoacuten de la arquitectura son cuatro clases (Mostradas en el aacuterbol de clases de la Figura 36)

ltCDocumerrtgt (o ltCOleDocuinentgt) - Se instancia un objeto de este tipo para almacenar y controlar los datos del programa ltCViewgt (o una de sus clases derivadas ltCScrotlViewgt ltCFormViewgt ltCEditView ltCRecordViewgt ltCDaoRecordView ltCtreeViewgt ltCListViewgt b ltCrichEditViewgt) - Un objeto es usado para desplegar los datos y administrar la interaccioacuten del usuario con los datos ltCFrameWndgt (o una de sus variantes) - Establece el marco sobre el que trabajaraacuten una o mas vistas de un documento ltCDocTemolategt (o ltCSingIeDocTemplategt o ltCMultiDocTemplategt) - Coordina la existencia de uno o maacutes documentos de un tipo dado y administra la correcta creacioacuten de los documentos vistas y objetos ventanas para cada tipo

i

28

Desarrollo de la herramienta

______________ 2 Wiew

I - - __ - ------a ________________

323Integrando Ambientes en Visual C t t

Las aplicaciones de Interfaz de Documento Uacutenico (SDI) soporta muacuteltiples tipos de documentos pero este soporte es para un solo objeto documento Debido a esta restriccioacuten y aunado a la necesidad de tener varios objetos documentos a la vez se determina la utilizacioacuten del modelo Interfaz de Muacuteltiples Documentos (MDI) indicado en la Figura 37

324Interfaz de Muacuteltiples Documentos (MDI)

Una aplicacioacuten de Interfaz de Muacuteltiples Documento (MDI) permite la creacioacuten de plantillas para el manejo de los documentos eacutesta plantilla tiene la forma

rn-pDocTemplate = new CMultiDocTernplate ( I DR-SCUMLTY PE RUNTIME-CLASS (CSCUMLDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CTheView))

AddDocTernplate ( rn-pDocTemplate )

Cada plantilla describe una relacion del tipo de documento con la vista asociada La definicioacuten de la plantilla para el ambiente que controla los diagramas de secuencias es la siguiente

29

Desarrollo de la herramienta c

m-pTernplateSeqDlag = new CMultiDocTernplate ( IDR-DS-SJCTYPE RUNTIME-CLASS (CSeqDiagDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CSeqDiagView) )

AddDocTernplate( rn-pTernplateSeqDiag )

Esta plantilla hace uso de la clase CCliildFrame que por defecto el ambiente Visual C++ construye y esto es debido a que no se requieren caracteriacutesticas extras en las ventanas de las que proporciona dicha clasc En un caso en el que se requiriera un comportamiento diferente de la vista tendriacutea que crearse una nueva clase con las caracteriacutesticas deseadas

Vista Documento

Vista

I- Vista Documento I [ Tip- F Vista

L Figura 37 Modelo Interfaz de Muacuteltiples Documentos (MDI)

Para integrar otro Ambiente que utilice otro tipo de documento es necesario definir otra plantilla de la misma forma mencionada Debe tomarse en cuenta los siguientes puntos

Es necesario definir el nombre (mqTemplateNOMBRE) El IDR del tipo que se requiere que sea el documento En la primera liacutenea RUNTIME CLASS debe indicar la clase ltCDocumentgt que desea La segunda liacutenea RUNTIME-CLASS soacutelo la cambia a otra clase si requiere de otro manipulador de ventanas de lo contrario deje que ltCChildFramegt se haga cargo

-

30

Desarrollo de la herramienta

En la uacuteltima liacutenea referente a RUNTIME-CLASS se debe indicar la clase ltCViewgt que desea usar Para finalizar se usa la instruccioacuten AddDocTernplate para finalizar la definicioacuten del template (mgTemplateNOMBRE)

325 Recursos Diaacutelogos Mertuacutes y Barras de Herrattriertias

Son varios los recursos con los que se puede contar al crear un proyecto en Microsoft Visual C++ Los diaacutelogos son un recurso disponible que son utilizados para visualizar ingresar yo modificar informacioacuten que se requiera En el Ambiente Visual que se desarrolla son varios los diaacutelogos que se utilizaraacuten y eacutestos se describen a continuacioacuten

El Diaacutelogo ldquoCaracteriacutesticas del Obietordquo (Figura 38) identifica el nombre del Objeto y la descripcioacuten del mismo Este diaacutelogo se muestra cuando se presiona doble clic sobre un objeto del diagrama

I Nombre

Desciipcion

Figura 38 Dialogo Caracteriacutesticas del Objeto

El Diaacutelogo ldquoMensaierdquo (Figura 39) muestra el nombre del mensaje que puede ser modificado ademaacutes se visualizan el Identificador del Mensaje el tipo de Mensaje asiacute tambieacuten el origen y destino del mensaje

31

Desarrollo de la herramienta

Nornbie delMensaje Edit

IDentificador del Mensaje Edil Tipo de Mensaje (Edil

Edit Objeto Origen

Objeto Destino IEdit

i25El A Figura 39 Dialogo Mensaje

El menuacute es otro de los recursos del que se puede disponer para organizar el ambiente que se estaacute creando Para eacuteste caso en particular no se hizo modificaciones al menuacute estaacutendar (Figura 310) que Visual C++ presenta Los cambios significativos son el manejo del tipo de documento para los Diagramas de Secuencias

Archivo Editar Yer VenLana AyGda

Figura 310 Menuacute de los Diagramas de Secuencias (estaacutendar)

Otro importante recurso del que uno se puede valer en Visual C++ es la barra de herramienta personalizada la cuaacutel es construida en el Editor de Recursos Se ha construido una barra (Figura 311) con los elementos graacuteficos de los Diagramas de Secuencia de UML

Figura 311 Barra de Herramientas de los Diagramas de Secuencias

Es recomendable que al utilizar barras de herramienta personalizada se defina en el tamantildeo estaacutendar ya que puede experimentar problemas al momento de ejecutar la aplicacioacuten

Ademaacutes puede usar la propiedad TBBS-CHECKGROUP en una barra de herramientas para establecer que los botones puedan quedar presionados hasta que un botoacuten diferente sea presionado No olvide que la numeracioacuten inicia con cero ( O )

vuriableToolBurSetButtonStyle(OTBBSCHECKGROUP)

32

Desarrollo de la herramienta

Prefijo ID IDC IDD IDP IDR IDS

326 Notacioacuten estaacutendar

Los nombres descriptivos de los recursos se asocian a un valor uacutenico Para una mayor claridad eacutestos nombres mantienen un prefijo que describe el tipo de recurso asociado (vea la Tabla 31) [MIC99]

Tipo de Recurso Comandos de Menuacute Controles y recursos Cuadros de diaacutelogo Cadenas de solicitud para cuadros de mensaje Menuacute principal barras de herramienta tabla aceleradora y el icono Cadenas

IDR IDD IDC ID

200 - 299 3000 - 3999 34000 - 34999

Estos son los rangos de valores establecidos para el proyecto S3C Si se utiliza el coacutedigo fuente y se planea agregar otro proyecto verifisue que no se invadan estos nuacutemeros para evitar problemas

Para facilitar auacuten maacutes los trabajos futuros se ha definido una estructura de carpetas (ver Figura 312) para incluir en cada una las Clases correspondientes a cada tesis en desarrollo

33

Desarrollo de la herramienta

ill ~~ -

-I SCUML classes + U A N T L R + U App + 0 ClassDiagrams + 0 Common + a Java

t $2 SequenceDiagiams

+ WarnierDiagrams

iJ PackageDiagrams

12 StaterChartDiagrams

+

- f Classview I Resourceview 1 FileView ]

~ ~

Figura 312 Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)

327Estructura de datos persistencia y recuperacioacuten

Existe una gran cantidad de tipos de datos estructuras clases y meacutetodos de los que se puede hacer uso para una mejor y maacutes faacutecil obtencioacuten de los resultados A continuacioacuten hago comentarios en tipos de datos y meacutetodos en los que podriacutea tener problemas

CTypedPtrList

AI usar este tipo de dato o alguno relacionado que le permita utilizar el meacutetodo ltCTvrgtedPtrListGetNextgt tenga especial precaucioacuten al usarlo ya que al devolver el valor requerido la variable POSITION usada no se queda apuntando a ese valor en particular salta al inmediato siguiente de la lista

Si se realiza una creacioacuten dinaacutemica con punteros para los elementos de una CTypedPtrList Despueacutes de haberlo agregado a la lista evite el delete para borrar esta Usted deseando liberar la memoria no lo haga ya que eliminara directamente el elemento de la lista

POSITION

Es un valor usado para denotar una posicioacuten de un elemento en una coleccioacuten Pero CUIDADO no se refiere a un iacutendice es una referencia (no consecutiva) de punteros muy diferente a un iacutendice

CString

Auacuten cuando el operador de comparacioacuten == (igual a) es permitido para ser utilizado en las cadenas evite su uso ya que en ocasiones aunque cuando la e

34

Desarrollo de la herramienta

compilacioacuten no indique error alguno en la ejecucioacuten no realizaraacute lo que se necesita Recomiendo que utilice CStringCompare ()

Para eliminar el contenido de un CString utilice CStringEmpty() ya que asignar a la cadena un ldquonrdquo podriacutea causarle problemas

Serializacioacuten

Una forma en que se puede guardar informacioacuten y recuperarla de manera eficaz es mediante la serializacioacuten de objetos La serializacioacuten es un proceso que permite escribir un objeto en un archivo y tambieacuten leerlo

Para que la serializacioacuten se lleve a cabo son necesarios tres objetos un objeto de tipo ltCFilegt que represente el archivo un objeto de tipo ltCArchivegt que ofrece el entorno para la serializacioacuten y la clase del objeto a ser serializado debe ser heredada de ltCObjectgt y sobrescribir el meacutetodo ltSerializegt para que se encuentre de tal forma en que pueda ser serializado (vea la Figura 313)

Objeto a ser serializado 1

1 CArchive

[f --=I- ---7 Archivoexi

u Figura 313 Serializacioacuten

328Patrones de disentildeo utilizados

Se ha planteado la definicioacuten de una arquitectura de clases utilizando patrones de disentildeo debido a que algunos de ellos hacen maacutes faacutecil la extensioacuten de la funcionalidad y mantenimiento

35

Desarrollo de la herramienta

El patroacuten Composite es utilizado para crear de manera uniforme el diagrama sobre el que se trabaja (ver Figura 34) manteniendo una jerarquiacutea de clases uniforme las clases maacutes bajas en la jerarquiacutea definen primitivas de objetos graacuteficos

Se aplica el patroacuten de disentildeo Iterator para hacer recorridos en listas de objetos para realizar diversas operaciones Otro patroacuten de disentildeo del que se hace uso es el Visilor (ver Figura 35)

Para otras actividades que se realizan podriacutea pensarse en que se deberiacutean aplicar otros patrones pero se han evitado algunos (como el patroacuten de disentildeo Builder) para evitar incrementar la complejidad en la arquitectura ya que ai mantener el modelo de la MFC de documentovista la funcionalidad del patroacuten de disentildeo Builder es faacutecilmente reemplazado si se hiciera Uso de eacuteste se aumentariacutea la complejidad excesivamente (nos llevariacutea a perdemos en ocasiones en el paso de mensajes entre clases) dantildeando la facilidad de la arquitectura

33 Diagrama de secuencias

Un Diagrama de Secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten escenario Oacute comportamiento se usan para definir el curso loacutegico de accioacuten de un posible camino a seguir en la resolucioacuten de un problema Seguacuten John Daniels [DANO2] ldquoel principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildean las interacciones de los objetosrdquo

Los Diagramas de Secuencias se utilizan en el modelado de la implementacioacuten de sistemas de software ademaacutes son aplicables en el modelado de requisitos para establecer las comunicaciones existentes entre actores yo clases del sistema Con eacutestos diagramas se logran hacer descripciones de los escenarios y los comportamientos del sistema Con los Diagramas de Secuencias es posible definir protocolos de comunicacioacuten con paso de mensajes ya que dan esa flexibilidad que se requiere Ademaacutes los Diagramas de Secuencias contienen informacioacuten suficiente para que puedan ser transformados a los diagramas de colaboracioacuten [RUM Ol][BOO Oil

331Ciclo de vida del software

Considerando cualquier modelo de ciclo de vida del software (en la figura 314 se muestra el Modelo de cascada) el aacutembito directo de eacuteste Ambiente Visual es en el disentildeo aunque tiene sus vertientes en la codificacioacuten y mantenimiento

36

Desarrollo de la herramienta

Diseno

Codificacibn

I I I I Mantenimiento I

igura 314 Modelo de cascada del ciclo de vida del software

34 Elementos atoacutemicos de la Gramaacutetica

Definicioacuten de los elementos atoacutemicos del lenguaje y su contenido

1 Actor- Representa roles de entidad externos al sistema con el que interactuacutea directamente Los actores pueden ser humanos dispositivos u otros sistemas

2 ClaseObjeto- Determina una Clase u Objeto participante en la interaccioacuten

3 Mensaje-Es una comunicacioacuten entre objetos que contiene informacioacuten Eacuteste se representa con la finalidad a que una accioacuten sea llevada a cabo

4 Mensaje con tiempo- Tiene la misma finalidad que el mensaje la diferencia es que con eacutel se representa un atributo de tiempo

5 Mensaje asiacutencrono Es un mensaje que ocurre en el tiempo de manera independiente a otros mensajes

6 Mensaje de destruccioacuten de objeto- Es un mensaje cuya finalidad es indicar la destruccioacuten del objeto destino

7 Mensaje de creacioacuten de objeto- Es un mensaje que indica la creacioacuten de un objeto

8 Llamada al mismo objeto (Recursividad)- Es usado para modelar llamadas recursivas en el que una operacioacuten es invocada por el mismo objeto

37

Desarrollo de la herramienta

9 Destruccioacuten del objeto (AutodestrucciOacuten)- Puede o no modelarse es representada con una X al final de la liacutenea de vida del objeto

Elementos aulomaacuteticos

1 Liacutenea de Vida- Representa la vida del objeto durante la interaccioacuten

2 Activacioacuten- Muestra el periacuteodo de tiempo en el cual el objeto alguna operacioacuten

341RepresentaciOacuten visual

Representacioacuten visual de los elementos atoacutemicos del lenguaje

Actor

_- A

Mensaje

Mensaje de Creacioacuten de

Objeto

ClaseObjeto

I

Mensaje de retorno

Mensaje de Destruccioacuten de

Objeto

abla 32 Element(

Activacioacuten

Mensaje con tiempo

Autodestruccioacuten

x

atoacutemicos del lengi

taacute realizz

Texto ===I (letra)+ (letra I

numero) letra= AZ I az numero = 09

I

Recursividad ~

I

i j e

io

38

u

Comentario

iexcl

Conector de Comentario

35 Gramaacutetica desarrollada

La gramaacutetica que se propone es una gramaacutetica visual del tipo relacional Una gramaacutetica relacional pertenece a las gramaacuteticas libres de contexto es una 6-iupla G (N C S R Attr P) donde

N es un conjunto finito de siacutembolos no terminales C es un conjunto de siacutembolos terminales S es un siacutembolo distinguido en N llamado siacutembolo inicial R es un conjunto finito de siacutembolos de relacioacuten Attr es un conjunto finito de siacutembolos de atributos P es un conjunto de producciones

Entonces definiendo nuestra gramaacutetica G (N C S R Attr P)

N = Diagrama GrupoClaseObjeto

S = Diagrama

R = mensaje mensajeTiempo mensajeRetomo mensajeAsincrono mensajecrea mensajeDestruye autodestruccioacuten recursividad

R

Attr = entrada salida entradacrea

39

Desarrollo de la herramienta

Definiendo la posicioacuten de los atributos en los elementos visuales

entradacrea ObetaClase

entrada

salida

P =

Diagrama I GrupoClaseObjeto (mensaje (mensajeRetorno

(salida 1) (entrada 2) ) (salida 2) (entrada 1) )

- Diagrama 0 GrupoClaseObjeto

(mensaje (mensaje (mensajeRetomo (mensajeRetomo (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entradacrea 2) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 1) ) (salida 1) (entrada 1) )

entrada

salida

40

Desarrollo de la herramienta

s

-

GrupoClaseObjeto - 1 1 I 2 (mensaje (mensaje (mensajeRetorno (mensajeRetorno (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entradacrea 2) ) (salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 1) ) (salida I ) (entrada I ) )

1 En las gramaacuteticas relacionales una produccioacuten estaacute acompantildeada de las posibles

relaciones que puedan generarse En la primera produccioacuten Diagrama produce a un Actor seguida de un GrupoClaseObjeto el Actor inicia la interaccioacuten con un mensaje y recibe el mensaje de retorno al finalizar la interaccioacuten La segunda y tercera produccioacuten son similares debido a que un GrupoClaseObjeto contiene dos ClaseObjeto que se relacionan de la misma forma

Existe un elemento de la gramaacutetica llamado Attr (Atributo) el cual define la parte de los elementos visuales donde se establecen las relaciones Se han determinado dos atributos (entrada y salida) que para nuestro propoacutesito estaraacuten establecidos en la liacutenea de vida de cada elemento visual (Actor y ClaseObjeto)

Los Comentarios y la Activacioacuten no se consideran en la gramaacutetica Los comentarios son libres de incluirse y relacionarse con cualquier elemento y relacioacuten mencionada anteriormente y la activacioacuten existe siempre que se presente un mensaje (o podriacutea omitirse) Estas consideraciones se realizaron para hacer auacuten maacutes faacutecil la gramaacutetica ya que si se trata de realizar un sistema las restricciones de estos elementos pueden mantenerse en el lenguaje de programacioacuten en el que se desarrolle el sistema

36

Precondiciones

El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias

1 El diagrama de Clases debe existir y estar completo 2 Debe existir un archivo con un diagrama de Warnier por cada diagrama de Clases y

con el mismo nombre de archivo (excepto la extensioacuten del archivo) 3 En el uacutenico diagrama de Warnier de cada Clase se deben modelar todos los meacutetodos

de la Clase 4 No realizar declaraciones de meacutetodos

41

Desarrollo de la herramienta

5 Debe existir un meacutetodo lsquomain()rsquo en el diagrama de Clases

Restricciones

Los meacutetodos deben mantener nombres distintos en las diferentes Clases

Metodologiacutea para la obtencioacuten automaacutetica de los Diagramas de Secuencias

1 Seleccionar el diagrama de Clases

2 Se construye una lista con los nombres de las Clases y los Meacutetodos

3 Se verifica si exista el meacutetodo lsquomain()rsquo en alguna Clase Se busca la existencia de una uacutenica Clase

a La Clase que contenga lsquomain()rsquo se va al inicio de la lista de Clases

b Si no existe lsquomain()rsquo SE TERMINA EL PROCESO

4 Se verifica la existencia de los archivos que contienen el Disentildeo Detallado de los meacutetodos en Wamier para cada una de las Clases si alguno falta SE TERMINA EL PROCESO

5 Se procesa cada uno de los modelos del Disentildeo Detallado de los Meacutetodos generando una lista de secuencias de llamadas por cada uno de los meacutetodos

6 Se verifica que cada llamada corresponda a alguacuten meacutetodo existente (del diagrama de Clases) De no existir ese meacutetodo la llamada entra a una estructura que

7 Se crea una lista de secuencia

a Se inicia con lsquomain()rsquo b Se recorre cada una de las llamadas de los meacutetodos c Se considera invaacutelido el caso de que un meacutetodo intente una llamada

recursiva al meacutetodo lsquomain()rsquo

8 Se muestra un diaacutelogo de resultados en el que se indican las llamadas que no se encnotraron definidas y que pueden ser Llamada a libreriacutea oacute Llamada Erroacutenea

42

Capiacutetulo 4

Prue6as y su6taaacuteos

En eacuteste capiacutetulo se da a conocer el detalle de las pruebas y de los resultados obtenidos Se describen los casos de prueba con los que se realizoacute la evaluacioacuten del sistema asiacute tambieacuten se presentan comentarios acerca de los resultados obtenidos

Pruebas y Resultados

41 Recursos teacutecnicos utilizados

Para llevar a cabo las pruebas al sistema S3C se utilizaron los siguientes equipos de Coacutemputo

Computadora de escritorio

256MB RAM Disco Duro 80G Monitor 17rdquo SAMSUNG

AMD Athlon XP 1600+ I4Ghz

Computadora de escritorio Intel Pentium 4 - 128MB RAM Disco Duro 40G Monitor 15rdquo i -

42 Descripcioacuten del plan de pruebas

Las pruebas establecen el Uacuteltimo paso desde donde es posible evaluar la calidad y descubrir los errores Las pruebas y la validacioacuten del software se utilizan para comprobar que el sistema cumple con las expectativas del usuario

En esta seccioacuten se describen los casos de prueba que se realizaron al prototipo de S3C en conjunto a la suite cenidet-UML Para cada uno de los casos se presenta el objetivo el procedimiento que se siguioacute para la prueba y se muestran los resultados obtenidos - _

Las pruebas a realizar son los siguientes

Caso 1 Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Caso 2 Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Wamier

Caso3 Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Wamier

Caso4 Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo 5

44

Pruebas y Resultados

43 Resultados

431 Caso 1

5 Y

IZ =

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoSirdquo 4 Seleccionar el archivo ldquoVENTASrdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 41 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

s3c iuevo Proyecto SCUM1

Diagrama de clases

lvendedor I L

3

salida

venta prod

4 venia-oferta vcntaprod =

salida 6

Figura 41 Resultado del caso de prueba 1

45

Pruebas y Resultados

432 Caso 2

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Warnier (almacenwar cajawar vendedorwar) que ya cxisten (del caso de prueba I )

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoNordquo 4 Agregar las siguientes Clases con los respectivos meacutetodos y atributos

a Claseldquovendedorrdquo Meacutetodos ldquoventa mainrdquo b Claseldquoalmacenrdquo Meacutetodos ldquoentrada salidardquo c Claseldquocajardquo Meacutetodos ldquoventagrodrdquo

5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 42 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

Diagrama de daseo lisgrama dcsccucncis

MOIDOC Anivo

venta prod

salida

1 Ycrdquo1a 2

I 4 vcrdquolD~o1cn venta prod gt

salida 6 i Figura 42 Resultado del caso de prueba 2

46

Pruebas y Resultados

r

433 Caso 3

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Warnier

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 43 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

5

Error al tratar de abrir el archivo A bZwar

Aceptar i

Faltan Archivos de Disentildeos Detallados de Meacutetodos 1 1 A No se puede crear el diagrama de secuencias

Figura 43 Resultado del caso de prueba 3

47

Pruebas y Resultados

434 Caso 4

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 44 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

lsquo I

~ _ i i _ l _ Repaado ~~ ~ ~ 6~ ampA Figura 44 Resultado del caso de prueba 4

48

Pruebas y Resultados

PRUEBA DESCNPCION CASO 1 Mostrar la funcionalidad del

Sistema S3C a partir de un

44 Anaacutelisis de Resultados

RESULTADOS Se comproboacute la correcta funcionalidad del Sistema S3C a partir de un diagrama

CASO 3

CASO4

I diagrama de Clases cxistcnte I de Clases existente CASO 2 I Mostrar la funcionalidad del I Sc comproboacute la corrccta funcionalidad

Sistema S3C a partir de un del Sistema S3C a partir de un diagrama diagrama de Clases que se de Clases que se construye al momento construye al momento Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el Secuencias si falta alguno de los diagrama de Secuencia si falta alguno diagramas de Warnier Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el secuencias si hace falta el meacutetodo diagrama de Secuencias al faltar el ldquomain ()rdquo meacutetodo ldquomain()rdquo

de los diagramas de Warnier

Los resultados obtenidos de cada uno de los casos establecidos demuestran que se validoacute la funcionalidad del prototipo con los requisitos definidos en el alcance de este proyecto

a lt

49

Conclusiones y Tru6ajos Futuros

Aquiacute se dan a conocer las conclusiones y se describen los posibles trabajos futuros para la continuacioacuten de eacuteste proyecto

F

51 Conclusiones

Conclusiones y trabajos futuros

Se ha creado un Ambiente Visual que permite obtener de forma automaacutetica los Diagramas de Secuencias en base a los diagramas de Clases y al disentildeo detallado de los meacutetodos descritos con diagramas de Warnier cumpliendo con los objetivos planteados para este trabajo

La tesis aporta principalmente La generacioacuten automaacutetica de los diagramas de secuencias y la eliminacioacuten de inconsistencias al mantener una validacioacuten directa de los diagramas de clases y los diagramas de Warnier que son utilizados

Esta validacioacuten es lograda a traveacutes del uso de la gramaacutetica visual relaciona1 que se ha definido (veacutease el capiacutetulo 3) Esta gramaacutetica visual establece reglas para la correcta construccioacuten de los diagramas de secuencias

P De esta manera se establece que la hipoacutetesis ldquoEs posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodosrdquo Es verdadera

52 Trabajos Futuros

Un Diagrama de Secuencias puede convertirse en un Diagrama de Colaboracioacuten por lo tanto un trabajo futuro es la construccioacuten automaacutetica de un Diagrama de Colaboracioacuten a partir de uno de Secuencias existente

Es posible calcular la meacutetrica de acoplamiento al tener un Diagrama de Secuencias construido

La Ingenieriacutea directa de un Diagrama de Secuencias estableciendo la validacioacuten en la construccioacuten de todos los elementos visuales que UML define

La propagacioacuten de las modificaciones de un Diagrama de Secuencias a los Diagramas de Clases y los Diagramas de Warnier

La modificacioacuten del coacutedigo fuente mediante los cambios establecidos en un Diagrama de Secuencias

51

[ALC03]

[BLA98]

[B0099]

[BOOOi]

[BR097]

[CHA90]

[DAN02]

[GLA02]

[HAC98]

[HER03]

4

Alcate1 Computer Associates International inc Electronic Data Systems Corporation Hewlett-Packard Company IBM Corporation I-Logix IntelliCorp Kabira Technologies Kennedy Carter Microsoft Corporation Object Management Group Oracle Corporation Project Technology Ptech Inc Rational Software Corporation Reich Technologies Softeam Taskon A S Telelogic Unisys Corporation ldquoOMG Unified Modeling Language Specificationrdquo Version 15 Unified Modeling Language 2003

Blaha Michael Rumbaugh James Premerlani William Eddy Frederick Lorensen William ldquoObject-oriented modeling and designrdquo Prentice Hall 484 Paacuteginas ISBN 0-13-629841-9 QA-769-03S-B53-19981998

Booch Grady Rumbaugh James Jacobson Ivar ldquoEl lenguaje unificado de modeladordquo Addison Wesley 432 Paacuteginas ISBN 84-7829-028-1 1999

Booch Grady Rumbaugh James Jacobson Ivar ldquoThe Unified Modeling Language User Guiderdquo Addison Wesley 2001

Brown David ldquoAn introduction to object-oriented analysis objects in plain Englishrdquo John Whiley amp Sons Inc 700 Paginas ISBN 0-471-1 1028-0 QA-769-035-B76-1997 1997

Chang Shi-Kuo ldquoVisual Languages and visual programmingrdquo Plenum Press 340 Paacuteginas ISBN 0-306-43428-8 QA-7665-V57-1990 1990

Daniels John ldquoModeling with a sense of purposerdquo Design - IEEE Software JanuaryEebmary 2002

Glasgow Universidad Reino Unido ldquoA UML Editor in Javardquo (lthttplstudentsdcsglaacuWstudentspainjfproject-reportproject-re port-htmV4thYearReporthtrnlgt 2002)

T Hackos JoAnn C Redish Janice ldquoUser and Task Analysis for Interface Designrdquo Wiley Computer Publishing 488 Paacuteginas ISBN QA-769-U83- H33-1998 1998

Hemaacutendez Velaacutezquez M ldquoIngenieriacutea inversa de coacutedigo fuente en C++ para la obtencioacuten de su disentildeordquo Tesis AT-379 (03-0334) 2003

Conceptos generales

[HIX93]

[JAC93]

[JAC99]

[JOY98]

[LAR97]

[MAR]

[MIC99]

[MIC02]

[MOU98]

Hix Deborah Hartson H Rex ldquoDeveloping user interfacesrdquo 381 Paacuteginas ISBN 0-471-57813-4 QA-769-U83-H59-1993 1993

Jacobson Ivar Christerson Magnus Jonsson Patrik Overgaard Gunnar ldquoObject oriented software engineeringrdquo Addison Wesley ISBN 0-20 1 - 54435-0 QA-7676-D47-J63-1993 1993

Jacobson Ivar Booch Grady Rumbaugh James ldquoEl proceso unificado de desarrollo de softwarerdquo Addison Wesley 438 Paacuteginas ISBN 84-7829-036- 2 1999

Joyanes Aguilar Luis ldquoProgramacioacuten orientada a objetosrdquo McGruw Hill ISBN 84-481-0590-7 1998

Larman Craig ldquoAplying UML and Patternsrdquo Prentice Hull 507 Paacuteginas ISBN 0-13-748880-7 QA-769-035-L37-1997 1997

Marriot Kim Meyer Bemd ldquoVisual Language Theoryrdquo Springer 381 Paacuteginas P-935-V567-1998 1998

Microsoft ldquoMicrosoft Visual C++ 6 manual del programadorrdquo McGraw Hill ISBN 84-481-2127-9 QA-7673-Cl53-23718-1999 1999

Microsoft ldquoVisiordquo (lthttpwwwmicrosoftcomofficevisiogt 2002)

B Mourao Luis X ldquoUniversal Modeling Language Part 11 UML Notation - Case Sequence and Collaboration Diagramsrdquo Lan Times Magazine (~httpwwwlantimescomltpartsdiscussdiscuss6Ohtm~) 1998

No Magic ldquoMagicDrawrdquo (lthttpwwwmagicdrawcomgt 2002)

Object Insight ldquoJvisionrdquo (lthttpwwwobject-insightcomgt 2002)

Rational Software Microsoft I Hewlett-Packard Oracle Sterling Software MCI Systemhouse Unisys ICON Computing IntelliCorp i-Logix IBM ObjectTime Platinum Technology Ptech Taskon Reich Technologies Sofieam ldquoUML Summaryrdquo Version 11 Unified Modeling Language 1997

Rational ldquoRational Roserdquo (lthttpwwwrationalcomproductosrosegt 2002)

Rikki Kirzner ldquoAnalysis Modeling and Design Tools Market Forecast and Analysis 2001-2005rdquo Bulletin Published Under Services Application Design and Construction Tools Application Development and Deployment Strategies Documento Nuacutemero 24809 Junio 2001

53

Conceptos generales

[RIM92] Rimrner Steve ldquoGraphical user interface programmingrdquo 423 Paacuteginas

1992

Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language reference manualrdquo Addison Wesley 550 Paacuteginas ISBN 0-201-

ISBN 0-8306-2475-9 ISBN 0-8306-2472-4 (pbk) QA-769-083-R55G

[RUM99]

30998-X QA-7676-D47-R85-1999 1999

[RUM299] Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language user guiderdquo Addisoiz Wesley 482 Paacuteginas ISBN 0-201 -57 168-4 QA-7676-D47-B66-1999 1999

[SMA02] SmartDraw ldquoSmartDrawrdquo (lthttpwwwsmartdrawcomgt 2002)

[SHU88] 9 - Shu Nun C ldquoVisual Programmingrdquo Van Nostrand Reinhold ISBN 0-422- 28014-9 ISBN 0-422-01 164-4 QA-7665-S55 1988

[THI90] Thimbleby Harold ldquoUser Interface Designrdquo Acm press 470 Paacuteginas ISBN 0-201 -41 61 8-2 QA-769U83-T772~- 1990 1990

[WENO2] Wences Diaz MF ldquoModelo de Ingenieriacutea Inversa para la obtencioacuten de disentildeo detallado basado en LEVISSrdquo Tesis (02-0014) 2002

54

Anexo A

Conampuracioacuten de Microsoft Vkua[C++ 6 O

Este anexo indica las configuraciones que se utilizaron para la compilacioacuten de SCUML y s3c

Configuracioacuten de Microsoft Visual c++ 60

Debido a la integracioacuten de los proyectos de InverSOODA e InverDDVi con S3C se cumplioacute con los requisitos previos de ambos proyectos

El compilador usado en el proyecto fue el Microsoft Visual C++ 60

Para el cumplimiento con la funcionalidad de InverSOODA se instaloacute el ANTLR la versioacuten 271 Se descargoacute del sitio l i l l ~ ~ ~ ~ ~ ~ t l ~ l ~ - ~ t - ~ la versioacuten mencionada en un archivo comprimido (en formato zip) Se colocoacute el paquete descomprimido en el directorio ldquoDIANTLR-271 I rdquo

Recomiendo ampliamente que el directorio principal de ANTLR se copie en el directorio raiacutez de cualquier unidad de disco debido a que experimenteacute problemas de compilacioacuten cuando ANTLR no se encontraba en el directorio raiacutez

Io015

Source Browser AlttF12 I u c Ersquo V I

Visual Component Mgnager

- - ~ ~ ~ ~~

P2 Registrar control

A Contenedor de prueba de controles ActiveX

A Usor de objetos OLE y COM

Buacutesqueda de errores

A Y++ MFC Iracer

Customize options

~ - q- ~ Macro

Eecord Quick Macro Cbl+ShiR+R Pay Quick Macro Ctrl+ShiR+P

En el menuacute Tools (Herramientas) seleccione el sub-menuacute Options ltopcionesgt

56

Configuracioacuten de Microsoft Visual C++ 60

En la siguiente ventana de diaacutelogo debe agregar la direccioacuten en donde se encuentra el ANTLR

Agregar la ruta del directorio de ANTLR hasta el subdirectorio

libcpp

Editor I Tabs I Debug I Compatibility 1 Build Dneclolies I a I Chow directories for - Platfolm -

- Directories I x ) 4 jWin32 -] llnclude files

m cancd I

57

Configuracioacuten de Microsoft Visual C t+ 60

Se ha creado una libreriacutea (anrlrliblib) de ANTLR la cual ya estaacute situada en el directorio del proyecto SCUML (ISCUML) y no debe ser movida o eliminada

I

Geneial 1 Debug I CC++ Link I Category

Output file name bebugSCUMLexe

Objectljibrary modules 4 anllrliblib

li Generate debug lnfo r Ignore all defaull lbaries D ~ i n k j n ~ ~ ~ t a n ~ r ~ e n e r ~ ~ ~ mapfile

r Enable psafilrng

Proiec1 Ootionn

pq Cancel 1 Libreriacutea de ANTLR que debe existir 1 I para que se compile correctamente

58

Anexo B

~ u iacute aacute raacutepida de uso deC Sistema S3C

5 Este anexo indica de forma raacutepida la manera de utilizar S3C para crear un diagrama de secuencias de forma automaacutetica

Guiacutea Raacutepida de uso del Sistema S3C i

Para indicar la creacioacuten de un diagrama de secuencias en forma automaacutetica se debe ir a la barra del costado izquierdo y presionar ldquoNuevo Proyecto SCUMLrdquo

I s3c I ~ Nuevo Proyecto SCUML ~ _ _ - I Diagrama de clases ~ Diagrama de secuencias 1 MDI DOC Activo

-

Apareceraacute un documento llamado ldquoSCUMLV en donde el simbolo corresponde a un numero consecutivo iniciando desde 1 (uno)

$ e Despueacutes se presiona ldquoDiagrama de clasesrdquo Habraacute que para indicarle al sistema si se requiere abrir un diagrama de clases existente o realizar uno nuevo

i

iquestAbrir un documento existente

No Cardquo~ear

AI presionar ldquoSirdquo se debe indicar cual es el archivo del diagrama de Clases en el cuadro de diaacutelogo siguiente

~~ - 11dMis documentos rsquo 2 M i P C i lsquo h s sitios de red

I

AI presionar ldquoNordquo en ldquoAbrir un documento existenterdquo se nos mostraraacute un documento vacio para crear un diagrama de clases

60

Guiacutea Raacutepida de uso del Sistema S3C

Para ambas opciones se requiere que los diagramas de Wamier ya se encuentren construidos Y para continuar el proccso se selecciona el documento ldquoSCUMLVrsquo creado al inicio y despueacutes presionar el botoacuten nombrado ldquoDiagrama de secuenciasrdquo localizado en la barra de hcrraiiiicntas del costado izquierdo

Ha iniciado el proceso de construccioacuten del diagrama de secuencias Si no existen errores al terminar el proceso se le mostraraacute un cuadro de diaacutelogo llamado ldquoResultadosrdquo en donde le mostraraacute las llamadas de las que no localizoacute su definicioacuten

- - -

Cancel 1 D e las siguientes llamadas es posible que esten mal escritas o peitenezcan a la libreiia del Lenguaie Verifique ya que no se encontraron sus definiciones

A continuacioacuten se mencionan los posibles errores que finalizan el proceso de la creacioacuten automaacutetica de los diagramas de secuencias en S3C

Cuando no exista un meacutetodo lsquomainrsquo definido en el diagrama de clases

No se encontro el meacutetodo lsquomain()rsquo que inicie la secuencia I A No se puede crear el diagrama de secuencias

p==amp=q

61

Guia Raacutepida de uso del Sistema S3C

Cuando se definan niultiples metodos lsquoinainrsquo en el diagrama de clases

Multiples meacutetodos lsquomainOlsquo Imposible decidir el inicio de secuencia

Aceptar i

Si un meacutetodo definido en Wamier realiza una llamada a lsquomainrsquo se cancelara el proceso

Llamada NO VALIDA al meacutetodo principal main

(iAcp-j(

4 i

CI Y rdquoldquoldquoI i 11 1-T

IZNTRO Gt INFORMACION

62

  • Tabla de Contenido
  • Listado de Figuras
  • Listado de Tablas
  • Notacioacuten
  • Introduccioacuten
  • Capitulo 1 Conceptos Generales
    • 11 Antecedentes
    • 12 Trabajos relacionados
      • 121 Tabla comparativa
        • 13 Definicioacuten del problema
        • 14 Objetivo de la Tesis
          • Objetivos especiacuteficos de la tesis
            • 15 Hipoacutetesis de investigacioacuten
            • 16 Alcances y limitaciones del trabajo de tesis
              • Capitulo 2 Marco Teoacuterico
                • 21 Modelado de sistemas de software
                • 22 Interfaz de usuario (Mecanismos de interaccioacuten)
                • 23 Lenguajes Visuales
                • 24 Programacioacuten orientada a objetos
                • 25 Lenguaje de Modelado Unificado (UML)
                  • Desarrollo de la herramienta
                    • 31 Disentildeo de la Arquitectura
                      • 311 Requisitos (Diagrama de Casos de uso)
                        • 312Modelo Conceptual
                        • 313Diagramas de clases
                        • 32 Elementos de la arquitectura
                          • 321 Microsoft Foundation Class (MFC)
                            • 322Arquitectura Documento Vista
                            • 323Integrando Ambientes en Visual c++
                              • 324 Interfaz de Muacuteltiples Documentos (MDI)
                                • 325Recursos Diaacutelogos Menus y Barras de Herramientas
                                  • 326 Notacioacuten estaacutendar
                                  • 327 Estructura de datos persistencia y recuperacioacuten
                                    • 328Patrones de disentildeo utilizados
                                      • 33 Diagrama de secuencias
                                        • 331Ciclo de vida del software
                                          • 34 Elementos atoacutemicos de la Gramaacutetica
                                            • 341 Representacioacuten visual
                                              • 35 Gramaacutetica desarrollada
                                              • 36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias
                                                  • Capitulo 4 Pruebas y Resultados
                                                    • 41 Recursos teacutecnicos utilizados
                                                    • 42 Descripcioacuten del plan de pruebas
                                                    • 43 Resultados
                                                      • 431 Caso
                                                      • 432 Caso2
                                                      • 433 Caso
                                                          • Conclusiones y trabajos futuros
                                                            • Trabajos futuros
                                                            • Referencias
                                                            • Anexo A Configuracioacuten de Microsoft Visual C+t
                                                              • Figura 11 - Arquitectura de la suite cenidet-UML
                                                              • Figura 21 -Programacioacuten Visual
                                                              • Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de
                                                              • Figura 32 -Diagrama de Casos de Uso para el S3C
                                                              • Figura 33 -Modelo Conceptual
                                                              • Figura 34 - Diagrama de Clases -Control del Diagrama -
                                                              • Figura 35 - Diagrama de Clases - Patroacuten Visitor -
                                                              • Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento
                                                              • Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)
                                                              • Figura 38 -Dialogo Caracteriacutesticas del Objeto
                                                              • Figura 39 -Dialogo Mensaje
                                                              • Figura 3 IO - Menuacute de los Diagramas de Secuencias (estaacutendar)
                                                              • Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias
                                                              • Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)
                                                              • Figura 313 - Serializacioacuten
                                                              • Figura 314 -Modelo de cascada del ciclo de vida del software
                                                              • Figura 41 - Resultado del caso de prueba
                                                              • Figura 42 -Resultado del caso de prueba
                                                              • Figura 43 -Resultado del caso de prueba
                                                              • Figura 44 -Resultado del caso de prueba
                                                              • Tabla 11 - Tabla comparativa
                                                              • Tabla 31 -Prefijos estaacutendar de identificadores
                                                              • Tabla 32 -Elementos atoacutemicos del lenguaje
                                                              • Tabla 41 - Resumen de los resultados de las pruebas realizadas

Tabla de Contenido

Tabla de Contenido

Listado de Figuras

Listado de Tablas

Notacioacuten

Introduccioacuten

Capitulo 1 Conceptos Generales

11 Antecedentes

12 Trabajos relacionados

121 Tabla comparativa

13 Definicioacuten del problema

14 Objetivo de la Tesis

141 Objetivos especiacuteficos de la tesis

15 Hipoacutetesis de investigacioacuten

16 Alcances y limitaciones del trabajo de tesis

Capitulo 2 Marco Teoacuterico

21 Modelado de sistemas de software

22 Interfaz de usuario (Mecanismos de interaccioacuten)

23 Lenguajes Visuales

24 Programacioacuten orientada a objetos

25 Lenguaje de Modelado Unificado (UML)

Capitulo 3 Desarrollo de la herramienta

31 Disentildeo de la Arquitectura

311 Requisitos (Diagrama de Casos de uso)

312Modelo Conceptual

313Diagramas de clases

Paacutegina

1 iv V

vi

1

2

3 4

6

6 7

7

8

8

9 10 11 13 16 17

21 23 23 25 25

1

32 Elementos de la arquitectura

321 Microsoft Foundation Class (MFC)

322Arquitectura Documento Vista

323Integrando Ambientes en Visual c++ 324 Interfaz de Muacuteltiples Documentos (MDI)

325Recursos Diaacutelogos Menus y Barras de Herramientas

326 Notacioacuten estaacutendar

327 Estructura de datos persistencia y recuperacioacuten

328Patrones de disentildeo utilizados

33 Diagrama de secuencias

331Ciclo de vida del software

34 Elementos atoacutemicos de la Gramaacutetica

341 Representacioacuten visual

35 Gramaacutetica desarrollada

a -

Tabla de Contenido

36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias

Capitulo 4 Pruebas y Resultados

41 Recursos teacutecnicos utilizados

42 Descripcioacuten del plan de pruebas

43 Resultados

431 Caso 1

432 Caso2

433 Caso 3

434 Caso4

44 Anaacutelisis de resultados

Conclusiones y trabajos futuros

Conclusiones

Trabajos futuros

27

27

28

29

29

31

33

34

35

36

36

37

38

39

41

43

44

44

45

45

46

47

48 49

50 51 51

i

lt

11

i Referencias

Anexo A Configuracioacuten de Microsoft Visual C+t 60

Anexo B Guiacutea raacutepida de uso del sistema S3C

Tabla de Contenido

52 59

lt 111

Listado de Figuras

3

Figura 11 - Arquitectura de la suite cenidet-UML

Figura 21 -Programacioacuten Visual

Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de Secuencias Figura 32 -Diagrama de Casos de Uso para el S3C

Figura 33 -Modelo Conceptual

Figura 34 - Diagrama de Clases -Control del Diagrama -

Figura 35 - Diagrama de Clases - Patroacuten Visitor - Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento Vista Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)

Figura 38 -Dialogo Caracteriacutesticas del Objeto

Figura 39 -Dialogo Mensaje

Figura 3 I O - Menuacute de los Diagramas de Secuencias (estaacutendar)

Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias

Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)

Figura 313 - Serializacioacuten

Figura 314 -Modelo de cascada del ciclo de vida del software

Figura 41 - Resultado del caso de prueba 1

Figura 42 -Resultado del caso de prueba 2

Figura 43 -Resultado del caso de prueba 3

Figura 44 -Resultado del caso de prueba 4

Paacutegina

3

13

22

23

25

26

26

29

30

31

32

32

32

34

35

37

45

46 47

48

iv

Tabla 11 - Tabla comparativa

Tabla 31 -Prefijos estaacutendar de identificadores

Tabla 32 -Elementos atoacutemicos del lenguaje

Tabla 41 - Resumen de los resultados de las pruebas realizadas

Listado de Tablas

Paacutegina

6 33

38 49

V

Notacioacuten

La siguiente es la notacioacuten de la que se haraacute uso

ltCObjectgt

ltGetDocunteiztgt

MiClase MiMetodo

9 Liacutenea de Coacutedigo

Mensaje

Clase de la MFC ( Microsoft Fundation Class)

Meacutetodo de una clase de la MFC

Clase desarrollada Meacutetodo de una clase desarrollada

Liacutenea o Bloque de coacutedigo

Elemento del Diagrama de Secuencia

vi

I Introduccioacuten

L~ tesis se enfoca hacia el desarrollo de sistemas de software centrados en el modelado mediante diagramas de secuencias definidos por el Lenguaje de Modelado Unificado (UML) La investigacioacuten y el producto de la tesis estaacuten inmersos en la etapa del disentildeo de sistemas de software

El producto (prototipo) de la tesis denominado S3C permite la obtencioacuten de diagramas de secuencias de UML tomando como base la informacioacuten de un diagrama de clases y de varios documentos modelados con diagramas de Wamier (disentildeo detallado de los meacutetodos)

Para la elaboracioacuten de los diagramas de clases se hace uso del ambiente existente InverSOODA [HER03] Y para el modelado de los documentos Wamier se ha tomado el ambiente InverDDVi [WEN02] Ambos ambientes visuales son productos de tesis anteriores y se han integrado en un solo prototipo denominado SCUML (Suite cenidet - UML)

(i

S3C realiza un proceso automaacutetico para la obtencioacuten de los diagramas de secuencias en este proceso solo se requiere indicar el diagrama de clases del que se basaraacute La construccioacuten de los diagramas de secuencias en S3C estaacute soportada con una gramaacutetica visual relacional El propoacutesito de la gramaacutetica es validar la construccioacuten de los diagramas de secuencias de UML

En el aacutembito de los diagramas de secuencias de UML no existen aplicaciones comerciales oacute proyectos educativos que se apoyen en una gramaacutetica visual para soportar la construccioacuten de los diagramas de secuencias y tampoco existen aplicaciones que permitan a partir de los diagramas de clases y del disentildeo detallado de los meacutetodos generar automaacuteticamente los diagramas de secuencias

3

Los temas relacionados a esta tesis son Modelado de Sistemas UML Interfaz de Usuario Programacioacuten Orientada a Objetos y Gramaacuteticas Visuales

El capiacutetulo 1 es de conceptos generales se dan a conocer los antecedentes del proyecto los trabajos relacionados hipoacutetesis alcances y limitaciones

En el capiacutetulo 2 se define el marco teoacuterico de la tesis se describen temas como Modelado de sistemas de software disentildeo de sistemas de software modelado visual lenguajes visuales programacioacuten orientada a objetos y lenguaje de modelado unificado

El capiacutetulo 3 describe el desarrollo del ambiente visual se detalla el modelo conceptual la arquitectura y sus elementos los diagramas de secuencias y la gramaacutetica visual relacional que se desarrolloacute

En el capiacutetulo 4 se muestran los casos de pruebas y los resultados obtenidos Y al final se establecen las conclusiones y se dan propuestas para algunos trabajos futuros 3

1

Capiacutetulo I

Conceptos generalis

En eacuteste capiacutetulo se dan a conocer los antecedentes del proyecto de tesis los trabajos relacionados el problema que resolveraacute la hipoacutetesis a comprobar los alcances y limitaciones

Conceptos generales

11 Antecedentes

Actualmente en el cenidet (Centro Nacional de Investigacioacuten y Desarrollo Tecnoloacutegico) se trabaja en la construccioacuten de un conjunto de ambientes visuales para dar soporte al desarrollo con diagramas que define el estaacutendar UML para elaborar sistemas de software de manera completa raacutepida y eficaz El ambiente de modelado principal se ha denominado suite cenidet-UML y su arquitectura general se muestra a continuacioacuten en la Figura 11

Arquitectura de la suite cenidet-UML

Figura 11 Arquitectura de la suite cenidet-UML

a El producto de software resultante de eacutesta tesis lleva por nombre S3C y como se indica en la figura 11 Las tesis directamente relacionadas son InverSOODA [HER03] e

InverDDVi [WEN02]

InverSOODA (Sistema Orientado a Objetos para Disentildeo y Anaacutelisis incluyendo Ingenieriacutea Inversa) es un Ambiente Visual que permite la elaboracioacuten de diagramas de clases de un sistema de software Los diagramas de clases son una vista estaacutetica y en ella se describe las relaciones que existen entre las entidades llamadas clases Cada una de las clases se divide en tres partes nombre de la clase meacutetodos y atributos Este ambiente permite generar el coacutedigo fuente en lenguaje C++ de un diagrama construido y tambieacuten aplicando la ingenieriacutea inversa es posible obtener un diagrama a partir de un coacutedigo en C++ existente

InverDDVi (Disentildeo Detallado Visual incluyendo Ingenieriacutea Inversa) es un Ambiente Visual cuyo objetivo es apoyar en la elaboracioacuten de diagramas de disentildeo detallado utilizando una notacioacuten basada en Warnier Los diagramas de Warnier sirven para describir una secuencia loacutegica de acciones y mediante su simbologiacutea se logra plasmar definiciones de meacutetodos llamadas a otros meacutetodos ciclos comparaciones lectura de informacioacuten y escritura de informacioacuten Este ambiente permite generar el coacutedigo fuente en C de un diagrama construido y tambieacuten aplicando la ingenieriacutea inversa se puede obtener un diagrama de Warnier a partir de un coacutedigo en C que ya exista

i

3

Conceptos generales

12 Trabajos relacionados

Rational Rose de Rafional

Una de las herramientas mas populares del mercado que utiliza la notacioacuten UML y tiene la capacidad de reingenieriacutea de software para integrar sistemas existentes capacidad de mezclar diferentes lenguajes dentro de un mismo modelo ademaacutes de ingenieriacutea inversa sobre los componentes COM (Component Object Model) ActiveX y Java y con soporte de las arquitecturas MicrosoWCOM y CORBAIDL (The Common Object Request Broker Architecture)

Con Rational Rose se puede trabajar en grupo con capacidades para modelar y visualizar procesos de negocios y requerimientos de sistemas Tiene soporte para generar esquemas objetos-relaciones de bases de datos para realizar anaacutelisis de datos Cuenta con el soporte para analizar sitios Web en ASP (Active Server Pages) y JSP (Java Server Pages) Ademaacutes soporta los lenguajes Java CC++ Visual CC++ [RAT02] 9

SI -

Visio de Microsoft

Visio Enterprise 2002 permite crear diferentes tipos de diagramas como son

1 Diagramas de flujo 2 Planos de oficinas 3 Diagramas de aacuterbol 4 Diagramas de organizacioacuten 5 Liacuteneas de tiempo 6 Mapas geograacuteficos y direccionales 7 Diagramas de sitios Web 8 Diagramas de red 9 Diagramas de UML

Tiene las siguientes caracteriacutesticas diagramacioacuten e importacioacuten de servicios de directorio reingenieria de bases de datos disentildeo y documentacioacuten de bases de datos diagramacioacuten de software ingenieriacutea directa e inversa de coacutedigo replicacioacuten exacta por medio de diagramas de equipos y configuraciones de red diagramacioacuten automatizada y ambiente colaborativo

Visio da un conjunto completo de herramientas de diagramacioacuten de redes para planear y documentar claramente las redes existentes Ademaacutes para crear esquemas eleacutectricos mecaacutenicos y de procesos pueden crearse diagramas complejos con facilidad y poco entrenamiento

A las aplicaciones existentes se les puede realizar la ingenieriacutea inversa para obtener el disentildeo y tambieacuten crear nuevos disentildeos Proporciona herramientas para crear diagramas de bases de datos y es posible realizar ingenieriacutea inversa de esquemas existentes en bases de datos cliente servidor como SQL Server IBM Oracle y otros [MIC02]

4

Conceptos generales

e JVision 21 de Object Insight

JVision permite en la ingenieriacutea directa la creacioacuten de clases variables y meacutetodos con lo cual genera plantillas de coacutedigo para programadores en Java Los diagramas se pueden exportar a HTML La documentacioacuten puede integrarse con JavaDoc de Sun JVision da el soporte para ingenieriacutea inversa para el lenguaje Java

Se pueden crear todos los diagramas definidos por UML en los diagramas de secuencias da la oportunidad de dibujar clases liacuteneas liacuteneas de tiempo de vida y marca de destruccioacuten de objetos ofrece ademaacutes el soporte para las acciones de llamada regresar valor enviar accioacuten crear accioacuten y eliminar accioacuten [OBJO2]

MagicDraw 6 de No Magic

Es una herramienta CASE con soporte para trabajo en grupo Esta disentildeado para analistas 6 de negocios analistas de software programadores ingenieros de calidad y

documentadores Esta aplicacioacuten provee la capacidad para crear los diagramas definidos por UML (soporta UML 14) Cuenta con el soporte de ingenieriacutea inversa y generacioacuten de coacutedigo para C++ C Java y CORBNIDL Tiene integracioacuten con NetBeans se actualiza automaacuteticamente disponible en aacuterabe portugueacutes franceacutes italiano ingles (US) alemaacuten espantildeol japoneacutes y coreano

Tiene la caracteriacutestica de soportar la adaptacioacuten de los elementos a colores que el usuario defina Los diagramas pueden exportarse a imaacutegenes JPG EMF WMF EPS y DXF En los diagramas de secuencia da oportunidad de definir roles textos notas mensajes de varios tipos al mismo objeto recursivo ademaacutes de la relacioacuten a las notas y las liacuteneas de vida Es posible guardar los diagramas como imaacutegenes de mapas de bits o vectores Mantiene ademaacutes una vista pequentildea a escala del diagrama completo [NoA402]

e

SmariDraw Professional Plus de SmariDraw

Todos los dibujos pueden agregarse en las aplicaciones de Microsoft como son Word Excel PowerPoint Contiene maacutes de 50000 (1000 en la versioacuten estaacutendar) formas predefinidas ejemplos y plantillas Los diagramas pueden ser exportados a imaacutegenes WMF BMP JPG GIF TIF y otros Incluye un convertidor de archivos de VISIO

Con esta herramienta es posible crear diagramas de flujo diagramas de bloque diagramas de flujos de datos diagramas de organizacioacuten aacuterboles de decisioacuten disentildeo de redes Gantt diagramas de flujo de procesos diagramas de administracioacuten de calidad diagramas eleacutectricos diagramas mecaacutenicos diagramas quiacutemicos liacuteneas de tiempo planes de espacio posters mapas formas y tambieacuten da soporte para UML es posible dibujar objetos actores activacioacuten de los objetos mensaje mensaje de retorno mensaje asiacutencrono mensaje con tiempo liacutenea de vida del objeto marca de destruccioacuten del objeto y ciclos (descrito con un rectaacutengulo y una condicioacuten de salida) [SMA02]

5

Conceptos generales

Producto Soporta Diagramas de UML Secuencias

Creacioacuten automaacutetica de diagramas de

El Rational Rose El Visio

Jvision

Magic D r a w

a a El Fl El a El El

I ~

I ~

I -

Ambiente de modelado de

a a SmartDraw El

Tabla I Tabla comparativa

Todas las herramientas descritas anteriormente cuentan con caracteriacutesticas sobresalientes para el disentildeo y modelado de sistemas de software pero ninguna de ellas genera automaacuteticamente los diagramas de secuencia con base en los diagramas de clases y el disentildeo detallado de los meacutetodos asiacute tambieacuten ninguna de ellas realiza un caacutelculo de los canales de comunicacioacuten abiertos entre las clases que conforman el sistema

iexcla la A UML Editor in Java

13 Definicioacuten del problema

El modelado de sistemas utilizando el estaacutendar de UML en diversos productos comerciales prototipos de laboratorio elaborados en universidades y centros de investigacioacuten atienden la perspectiva baacutesica de la abstraccioacuten general del modelo esto es documentar el modelo del sistema que se requiere sin atender puntos importantes tales como

La generacioacuten automaacutetica de los diagramas de secuencias La correccioacuten de inconsistencias en los diagramas al crearlos de forma separada

El

6

sistemas de software

secuencias utilizando diagramas de a a a

Conceptos generales

Se hace necesaria la creacioacuten de un ambiente visual que permita obtener de forma automaacutetica los diagramas de secuencias en base a los diagramas de clases y al disentildeo detallado de los meacutetodos para facilitar la documentacioacuten la generacioacuten de coacutedigo y el mantenimiento de los sistemas

La obtencioacuten de los diagramas de secuencias estaacute basada en los Diagramas de Clases definidos por UML que son construidos con la herramienta InverSOODA junto con el disentildeo detallado de los meacutetodos construidos con Diagramas de Wamier elaborados con la herramienta InverDDVi

En el estaacutendar UML para la construccioacuten de los diagramas no existe actualmente una sintaxis expliacutecita definida solo existe impliacutecitamente en el uso de los elementos del diagrama por lo que se ha descrito una gramaacutetica visual de tipo relaciona1 como soporte para la construccioacuten de los Diagramas de Secuencias

n ai 14 Objetivo de la Tesis

Construir un ambiente visual que permita al usuario obtener el diagrama de secuencias de manera automaacutetica

141 Objetivos especiacuteficos de la tesis Crear una gramaacutetica que soporte la construccioacuten del diagrama de secuencias Construir de forma automaacutetica el diagrama de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodos

15 Hipoacutetesis de investigacioacuten

Es posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodos

16 Alcances y limitaciones del trabajo de tesis

Los alcances de la tesis se especifican a continuacioacuten

Se elaboroacute la arquitectura del sistema Se definioacute la gramaacutetica de soporte Se desarrolloacute la interfaz en Visual C++ haciendo uso de las MFC Se interactuacutea con los diagramas de clases de InverSOODA Se interachiacutea con el disentildeo detallado de los meacutetodos realizados por InverDDVI Se genera el diagrama de secuencias de forma automaacutetica

7

Conceptos generales

Limitaciones de la tesis

0 No se genera coacutedigo

La investigacioacuten se limita a los diagramas de clases para la vista estaacutetica de los sistemas de software y a los diagramas de Warnier para la vista dinaacutemica de los meacutetodos El ambiente no trabaja en red

No se modifican los archivos de InverSOODA No se modifican los archivos de InverDDVI No se recuperan diagramas de secuencias a partir de coacutedigo legado

4

8

Capiacutetulo 2

Narc0 teoacuterico

En eacuteste capiacutetulo se describen los temas usados para el desarrollo de la tesis iquestQue son los modelos iquestEn que parte del proceso de Ingenieriacutea del Software se usan los modelos o el modelado Se estudia la interfaz de usuario los lenguajes visuales y las gramaacuteticas visuales Se describe el Lenguaje de Modelado Unificado (UML) ademaacutes de la programacioacuten orientada a objetos por ser este paradigma en donde se enfoca este trabajo

Marco teoacuterico

21 Modelado de sistemas de software

un modelo es una abstraccioacuten de algo con el propoacutesito de entenderlo antes de construirlo El modelo omite detalles no esenciales haciendo maacutes faacutecil su manipulacioacuten que la entidad original [BLA98] Un modelo es la simplificacioacuten de la realidad [RUM99] Los propoacutesitos de los modelos son

Probar una entidad fisica antes de construirla Establecer mejor comunicacioacuten con los clientes Visualizar el problema y el sistema desde una mejor perspectiva Reducir la complejidad [BLA98] Capturar y precisar requerimientos y conocimiento del dominio Pensar acerca del disentildeo del sistema Capturar decisiones de disentildeo en una fomia separada que cambia a partir de los requerimientos Generar productos Organizar buscar filtrar obtener examinar y editar informacioacuten acerca de un sistema Explorar muacuteltiples soluciones econoacutemicas Manejar sistemas complejos [RUM99]

El modelado es una probada y bien aceptada teacutecnica de Ingenieriacutea de Software [RUM99] El modelado es parte central de todas las actividades que conducen a la produccioacuten de buen software Se construyen modelos para comunicar la estructura deseada y revisar el comportamiento de nuestro sistema Se construyen modelos para visualizar y controlar la arquitectura del sistema Se construyen modelos para comprender mejor el sistema que estamos construyendo muchas veces descubriendo oportunidades para la simplificacioacuten y la reutilizacioacuten Se construyen modelos para controlar el riesgo [BOO99] La razoacuten fundamental por la que modelamos es porque nosotros construimos modelos que nos ayudan a entender mejor el sistema que estamos desarrollando [RUM99]

El modelado nos permite [RUM99] 1 Visualizar como es el sistema o como queremos que sea 2 Especificar la estructura del sistema 3 Plantear nuestras guiacuteas en la construccioacuten delsistema 4 Documentar las decisiones que hemos tomado

En las etapas del desarrollo del software el modelado es usado en el disentildeo el disentildeo del sistema es la primera etapa en donde se da la aproximacioacuten baacutesica de la solucioacuten al problema seleccionado ademaacutes se decide por la estructura (arquitectura del sistema) y el estilo de la solucioacuten

La arquitectura del sistema provee el contexto sobre el cual se tomaraacuten decisiones mas detalladas en las etapas subsecuentes del disentildeo [BLA98] En el disentildeo modelamos el sistema y encontramos su forma (incluida la arquitehra) para que soporte todos los 3 -

10

Marco teorico

i

4 -I

requisitos -incluyendo los requisitos no funcionales y otras restricciones- que se le suponen [JAC99] Los propoacutesitos del disentildeo son

Adquirir una comprensioacuten en profundidad de los aspectos relacionados con 10s requisitos no funcionales y restricciones relacionadas con los lenguajes de programacioacuten componentes reutilizables sistemas operativos tecnologiacuteas de distribucioacuten y concurrencia tecnologiacuteas de interfaz de usuario tecnologiacuteas de gestioacuten de transacciones etc Crear una entrada apropiada y un punto de partida para actividades de implementacioacuten subsiguientes capturando los requisitos o subsistemas individuales interfaces y clases Ser capaces de descomponer los trabajos de implementacioacuten en partes mas manejables que puedan ser llevadas a cabo por diferentes equipos de desarrollo teniendo en cuenta la posible concurrencia Capturar las interfaces entre los subsistemas Esto ayuda cuando reflexionamos sobre la arquitectura y cuando utilizamos interfaces como elementos de sincronizacioacuten entre diferentes equipos de desarrollo Ser capaces de visualizar y reflexionar sobre el disentildeo utilizando una notacioacuten comuacuten Crear una abstraccioacuten independiente de la implementacioacuten del sistema en el sentido de que la implementacioacuten es un refinamiento directo del disentildeo que rellena lo existente sin cambiar la estructura Esto permite la utilizacioacuten de tecnologiacuteas como la generacioacuten de coacutedigo y la ingenieriacutea de ida y vuelta entre el disentildeo y la implementacioacuten [JAC99]

22 Interfaz de usuario (Mecanismos de interaccioacuten)

El crecimiento de las computadoras personales vendidas en los ~ O rsquo S lanzoacute con fuerza el ldquofaacutecil de usarrdquo como una de las caracteriacutesticas mas importante de un producto de computadora

Las interfaces graacuteficas de usuario no son nuevas se pueden encontrar en las paredes de cuevas al sur de Francia en las piraacutemides de Egipto y en las paredes de muchas ciudades [iUM92] Para el usuario de un sistema interactivo la comunicacioacuten es tan importante como la computacioacuten Para los usuarios regularmente la interfaz es el sistema [HIX93]

Disentildeo de Interfaz Seguacuten Hackos [HAC98] las interfaces estaacuten en todo donde se trabaja con

o Controles en productos de hardware o Etiquetas y sentildeales en el hardware o Pequentildeas pantallas de cristal liquido en maacutequinas de cualquier tipo o Pantallas para aplicaciones de software para terminales de computadoras centrales

Marco teoacuterico

o pantallas para aplicaciones de software en computadoras Personales sistemas operativos como Windows OS2 DOS Macintosh U n b Y Otros

0 Paacuteginas de un sitio WEB 0 Sistemas de ayuda y manuales en-liacutenea 0 Tutoriales incrustados y otros tipos de soporte de funcionamiento O Esquemas de formas y otros documentos

una interfaz es el medio con el cual los usuarios interactuacutean con el producto 0

sistema para lograr SUS objetivos

Interfaz Usable

Para que una interfaz sea usable debe ser transparente y darles a los usuarios la capacidad de lograr cumplir sus metas de forma efectiva y eficiente

Los beneficios presentados en el uso de las interfaces de usuario [TH190] Disfrutar el sistema El usuario disfruta trabajar con un sistema que cuenta con una interfaz bien disentildeada y que le da la funcionalidad y acceso a los recursos de una manera clara y sencilla Proporciona nuevas habilidades Elimina al usuario concentrarse en acciones que la propia interfaz y el sistema hacen dando como resultado que el usuario solo se concentre en lo importante del trabajo Delegacioacuten de tareas La interfaz de usuario permite al usuario no conocer los detalles de la tarea esto es la computadora atiende los detalles de las tareas mientras que el usuario se concentra en asuntos de maacutes alto nivel Seguridad El usuario no necesita estar en lugarespeligrosos para hacer su trabajo

Se da la mayor posibilidad para que el usuario tenga acceso al conocimiento utilizando un sistema interactivo Haciendo las cosas a la primera Las tareas se ejecutan en un orden correcto definido lo que da como resultado un trabajo bien terminado sin necesidad de repetir evitando asiacute altos costos Computando LOS usuarios pueden calcular datos sin necesidad de conocer el proceso para obtener los resultados

Desarrollo

El disentildeo de interfaz es un negocio bastante dificil Eacuteste combina dos complicadas disciplinas psicologiacutea y ciencias de la computacioacuten Estas disciplinas tienen un fondo cultural muy diferente la psicologiacutea atiende a la gente (comprensioacuten y entendimiento) las ciencias computacionales a las maacutequinas (matemaacuteticas y precisioacuten) El disentildeo de las buenas interfaces requiere que estas dos perspectivas esteacuten unidas [THi90]

Hackos dice que las interfaces dan simplicidad y elegancia al trabajo necesario y a la vida e los usuarios Si no es obvio al usuario pero es raacutepida para aprender [HAC98] ademaacutes define caracteriacutesticas comunes de las interfaces usables

o Hacen que el flujo de trabajo sea familiar o confortable o Soportan el estilo de aprendizaje de los usuarios

12

Marco teoacuterico

Visualizacioacuten de Entrenamiento visual Para controlar Soportar interaccioncs Programar con informacioacuten visual visuales expresiones visuales

o Compatibles con los ambientes de trabajo de los usuarios o Se extienden sobre un concepto de disentildeo que es familiar al usuario o Tienen consistencia de presentacioacuten que los hace parecer maacutes confiable y faacuteciles de

aprender o Usan lenguaje y figuras familiares al usuario o faacuteciles de aprender

Datos o informacioacuten acerca de datos

23 Lenguajes Visuales

Los lenguajes visuales son un nuevo paradigma para expresar los sistemas computacionales Ellos ofrecen la posibilidad de manipular directamente los objetos Un lenguaje visual consiste de sentencias visuales Para lenguajes visuales basados en iacuteconos cada sentencia visual es un arreglo espacial de objetos O iacuteconos graacuteficos [CHA90]

Un lenguaje visual es concebido como una coleccioacuten de figuras obtenidas por un arreglo graacutefico de objetos en dos o maacutes dimensiones Los lenguajes visuales pueden ser modelados sintaacutecticamente a traveacutes de un vocabulario un conjunto de relaciones usadas para componer las figuras y un conjunto de reglas describiendo las figuras pertenecientes al lenguaje Los objetos graacuteficos de un vocabulario de un lenguaje visual se caracterizan por contar con un conjunto de atributos Los atributos de un objeto graacutefico pueden ser atributos graacuteficos atributos sintaacutecticos y atributos semaacutenticos [MAR98]

Un lenguaje de programacioacuten visual puede ser informalmente definido como un lenguaje el cual usa algunas representaciones visuales [SHV88]

Programa ylo Disentildeo de Lenguajes de programacioacuten visual ejecucioacuten software Diagramas iconos Formas

Programacioacuten Visual [SHU88]

Gramaacuteticas para la especificacioacuten de lenguajes visuales [MAR98]

a) Gramaacuteticas texfuales generalizadas Este tipo de gramaacutetica provee una adaptacioacuten apropiada de la concatenacioacuten de siacutembolos para dos dimensiones Su principal ventaja es que conservan los elementos teoacutericos de las gramaacuteticas textuales y los eficientes algoritmos de anaacutelisis de eacutestos uacuteltimos Su principal desventaja es que eacutestas gramaacuteticas no son tan poderosas y soacutelo pueden especificar clases restringidas de lenguajes visuales

13

Marco teorico

b) Meacutetodos basados en gramaacuteticas de grafos Un ejemplo de este tiPo de gramaacuteticas son las gramaacuteticas de red Las oraciones generadas con gramaacuteticas de red son grafos dirigidos con siacutembolos en los nodos Estos grafos son llamados redes Una produccioacuten de eacuteste tipo de gramaacuteticas es de la siguiente forma

a - t p E

donde a y p son redes y E es una forma de conectar a p cuando a es conectada a otra red anfitriona

La mayor desventaja es que las gramaacuteticas de red no han probado ser totalmente uacutetiles para la especificacioacuten de gramaacuteticas arbitrarias por la complejidad para rescribir grafos y al hecho de que no todo lenguaje visual estaacute compuesto exclusivamente por grafos

C) Gramaacuteticas de multiconjuntos de atributos En estas gramaacuteticas las producciones rescriben conjuntos o multiconjuntos de siacutembolos que tienen atributos con informacioacuten sobre geometriacutea o semaacutentica La reescritura se controla con restricciones sobre los atributos de los siacutembolos en el lado derecho de las producciones

Un ejemplo de eacutestas gramaacuteticas es la Gramaacutetica Coordinada que especifica notacioacuten matemaacutetica de dos dimensiones En esencia las producciones en una gramaacutetica coordinada n-coordinada libre del contexto tienen la siguiente forma

A -t a donde C F

Todos los siacutembolos de eacuteste tipo de gramaacutetica tienen n atributos geomeacutetricos A es un siacutembolo no terminal a es una cadena no vaciacutea de siacutembolos C es una restriccioacuten sobre los atributos de los siacutembolos en a y F es una expresioacuten que computa los atributos de los siacutembolos de A en teacuterminos de los atributos de los siacutembolos en a no importando el orden de los siacutembolos en a

d) Gramaacuteticas PosicionaZes Las gramaacuteticas posicionales son un formalismo para la definicioacuten e implementacioacuten de lenguajes visuales las gramaacuteticas posicionales extienden naturalmente a las gramaacuteticas libres de contexto Una gramaacutetica libre de contexto posicional PG es una six-tupla (N T S P POS PE) donde

N es un conjunto finito no vaciacuteo de siacutembolos no terminales T es un conjunto finito no vaciacuteo e siacutembolos terminales con N n T = $I S E N es el siacutembolo no terminal de inicio P es un conjunto finito de producciones POS es un conjunto finito de identificadores de relacioacuten binaria PE es un evaluador pictoacuterico

14

Marco teorico

Cada produccioacuten en P tiene la siguiente forma

A -+ X I R I X R2 X ~ I Rm1 xm A

e) Gramaacuteticas de Relacioacuten de siacutembolos Eacuteste es un formalismo sintaacutectico para describir un lenguaje visual donde cada oracioacuten dentro del lenguaje se representa como un conjunto de objetos visuales y un conjunto de relaciones entre objetos

El alfabeto de siacutembolos Vt y el conjunto de relaciones entre siacutembolos Vr una oracioacuten de relacioacuten de siacutembolos w sobre Vt y Vr es un par ( M R) donde

M es un conjunto de elementos-s (v i) con v E Vt y i es un nuacutemero natural R es un conjunto de elementos-r de la forma r (Xi Yj) con Xi Yj E M r E Vr y una relacioacuten r esta contenida entre Xi y Yj

Una gramaacutetica de relacioacuten de simbolos es el conjunto de seis elementos G = (Vn Vt Vr S P R) donde Vn es un conjunto de siacutembolos no terminales Vt es un conjunto de siacutembolos terminales Vr es un conjunto de relaciones entre siacutembolos S es el siacutembolo inicial y P es un conjunto de reglas de reescritura (producciones de elementos-s)

f) Gramaacuteticas relacionales Este tipo de gramaacutetica pertenecen a las gramaacuteticas libres de contexto

La gramaacutetica relaciona1 (RGrsquos) es una 6-tupla G (N C S R Attr P) donde

N C S R Attr P

es un conjunto finito de siacutembolos no terminales es un conjunto de siacutembolos terminales es un siacutembolo distinguido en N llamado siacutembolo inicial es un conjunto finito de siacutembolos de relacioacuten es un conjunto finito de siacutembolos de atributos es un conjunto de producciones de la forma A-gt apF donde A E N a E (nlo)+ Donde n E N cr E E

8 Es un conjunto de relaciones de la forma (r x y) donde r E R y xy son enteros que hacen referencia a un miembro de a y tambieacuten una expresioacuten de la forma (a i) donde a E Attr e i es un entero que hace referencia a un miembrode a

F Es un conjunto de declaraciones de asignacioacuten de caracteriacutesticas de la forma (a O)=x donde a E Attr y x es un entero que hace referencia a un miembro de a o a una expresioacuten de la forma (a i)

15

Marco teoacuterico

24 Programacioacuten orientada a objetos

L~~ meacutetodos orientados a objetos organizan la informacioacuten Y el procesamiento que manipula esta informacioacuten de acuerdo a los objetos delrsquomundo real que la informacioacuten describe [BRO97l

Beneficios de las teacutecnicas orientadas a objetos [BR097] Estabilidad del sistema Mantenibilidad Componentes reusables Confiabilidad Accesibilidad de los datos Participacioacuten del usuario

Seguacuten Graddy Booch la programacioacuten orientada a objetos es ldquoun meacutetodo de implementacioacuten en el que los programas se organizan como colecciones cooperativas de objetos cada uno de los cuales representan una instancia de alguna clase y cuyas clases son todas miembros de una jerarquiacutea de clases unidas mediante relaciones de herenciardquo [JOY 981

Programacioacuten orientada a objetos esencialmente significa programacioacuten usando objetos [JAC93] Los lenguajes orientados a objetos deben soportar los siguientes conceptos

Objetos Abstraccioacuten de datos Encapsulamiento Clases e Instancias Herencia entre clases Polimorfismo

Las propiedades fundamentales de la Programacioacuten Orientada a Objetos son

a Abstraccioacuten Son ideas conceptos y propiedades que se describen en forma general eliminando los detalles Es una estructura de datos y los meacutetodos que manipulan a esos datos

b Encapsulamiento Son las fronteras propias de un objeto bien definidas las cuales protegen los detalles de su representacioacuten interna

c Ocultacioacuten de la informacioacuten Es la propiedad en la que los objetos pueden hacer uso para impedir que otros objetos los usuarios o incluso los programadores conozcan coacutemo estaacute distribuida la informacioacuten

d Herencia Es la propiedad que tiene una clase para heredar atributos y comportamiento a otras clases

e Polirnorfismo Es la propiedad que permite que una entidad pueda cambiar a diferentes formas efectuaacutendose de manera dinaacutemica en tiempo de ejecucioacuten

16

Marco teoacuterico

t

Clases Es la especificacioacuten de una familia de objetos es la declaracioacuten de un tipo de objetos Tambieacuten se dice que una clase es la descripcioacuten de un conjunto de objetos con un comportamiento similar y que esta compuesta de Datos (o atributos) y Meacutetodos o (rutinas acciones operaciones)

Objeto Un objeto es una entidad en la cual se almacenan datos y los meacutetodos o funciones que controlan dichos datos Un objeto es una abstraccioacuten de alguna cosa del mundo real que contiene datos que lo describen y operaciones que solo tienen acceso a esos datos [BR097l Los elementos de los que esta conformado un objeto son

a Las relaciones permiten que el objeto se integre en la organizacioacuten b Las propiedades son los datos que caracterizan el estado de un objeto distinguiendo

asiacute a un objeto determinado de los restantes que forman parte de la misma organizacioacuten

c Los meacutetodos son las operaciones que pueden realizarse sobre la estructura del objeto es decir las acciones que cambian el estado de un objeto y que el objeto es capaz de ejecutar a traveacutes de mensajes y que tambieacuten pone a disposicioacuten de sus descendientes a traveacutes de la herencia

Mensajes Son solicitudes para que se lleve a cabo la operacioacuten indicada y se produzca un resultado

Las razones principales para introducir la tecnologiacutea de objetos son los beneficios de dicha tecnologiacutea

Aumento de la fiabilidad Aumento de la productividad del desarrollador Desarrollo maacutes raacutepido Mejor calidad maacutes alta

Incremento en escalabilidad Mejores estructuras de informacioacuten Incremento de adaptabilidad Reduccioacuten del coacutedigo fuente

Mantenimiento maacutes faacutecil y reduccioacuten de costo

Los elementos de reutilizacioacuten son las clases y objetos

25 Lenguaje de Modelado Unificado (UML)

UML (Unified Modeling Language por sus siglas en ingleacutes Lenguaje de Modelado Unificado) es un lenguaje de modelado visual de propoacutesito general que es utilizado para especificar visualizar construir y documentar las partes de un sistema de software El lenguaje estaacute basado en un pequentildeo nuacutemero de conceptos centrales que la mayoriacutea de los desarrolladores de tecnologiacutea orientada a objetos pueden aprender y aplicar faacutecilmente [RUM99]

17

Marco teoacuterico

y UML Pasado Presente y Futuro

L~~ lenguajes de modelado orientado a objetos aparecieron a mediados de 10s 70rsquos Varias teacutecnicas influenciaron estos lenguajes El nuacutemero de lenguajes de modelado incrementoacute desde menos de 10 hasta maacutes de 50 entre 1989 y 1994 Muchos modeladores teniacutean problemas para encontrar un lenguaje de modelado que satisficiera todas sus necesidades Notablemente aparecioacute Boochrsquo93 y la evolucioacuten continuoacute a OMT y Fusioacuten

OOSE (Object-Oriented Software Engineering) estaacute enfocado a la ingenieriacutea de negocios y anaacutelisis de requerimientos dando un excelente soporte orientado a casos de uso OMT-2 es especialmente expresivo para anaacutelisis y sistemas de informacioacuten de datos grandes Boochrsquo93 fue particularmente expresivo para el disentildeo y fases de construccioacuten de proyectos y popular para aplicaciones de ingenieriacutea intensiva

Grady Booch y Jim Rumbaugh iniciaron el desarrollo de UML en 1994 al unificar sus meacutetodos independientes Booch y OMT En 1995 Ivar Jacobson se unioacute a Racional eacutesta unioacuten logroacute que el meacutetodo OOSE se incorporara La unificacioacuten establecioacute que debiacutean activar el modelado de sistemas utilizando conceptos orientados a objeto asiacute como crear un lenguaje usable tanto para las maacutequinas como para los humanos

A

Muchas organizaciones se unieron al consorcio UML y dedicaron recursos al trabajo hacia el fortalecimiento de la definicioacuten de UML Esta colaboracioacuten produjo un lenguaje de modelado expresivo poderoso y generalmente aplicable En la forma actual de UML se espera que sea base de muchas herramientas incluidas las de modelado visual simulacioacuten y ambientes de desarrollo

R UML es abierto y no-propietario y aunque define un lenguaje preciso no es barrera para futuras mejoras en conceptos de modelado Se usan muchas teacutecnicas de punta pero se esperan teacutecnicas adicionales que influencien futuras versiones de UML puede ser extendido sin redefinir el nuacutecleo

c

Mientras el rehuacuteso basado en componentes se ha favorecido ampliamente cada vez mas esto no significa que las teacutecnicas basadas en componentes reemplazaraacuten las teacutecnicas orientadas a objetos Hay solo sutiles diferencias entre la semaacutentica de componentes y clases [ALC03]

Un opaco rendimiento caracterizoacute el mercado de anaacutelisis modelado y disentildeo en el 2000 en su transicioacuten de las viejas herramientas CASE (Computer Aided Software Engineering) a algo maacutes dinaacutemico y mejor adaptado para satisfacer las necesidades de los desarrolladores para el cambio raacutepido en los ambientes de negocio

El mercado de anaacutelisis modelado y disentildeo lograraacute obtener un crecimiento positivo en varios de los siguientes antildeos por varias razones El mercado seraacute manejado principalmente por la necesidad de desarrolladores a obtener aplicaciones para lanzarse al mercado raacutepidamente asiacute tambieacuten por el intereacutes creciente y uso de una nueva especie de herramienta y por el intereacutes creciente de los desarrolladores en usar UML reglas de negocios y adaptadores de componentes para construir aplicaciones [RIKUI]

z -

18

Marco teoacuterico

UML se ha hecho el estaacutendar para los desarrollos de modelado de negocios administracioacuten de requerimientos anaacutelisis y disentildeo programacioacuten y pruebas Los objetivos primarios de UML en el disentildeo [RAT97j

o Dar a los usuarios un lenguaje visual expresivo de modelado listo para usarse para que puedan desarrollar y cambiar los significados de sus modelos

o Suministrar mecanismos de extensibilidad y especializacioacuten para extender los conceptos centrales

o Ser independiente de lenguajes de programacioacuten particulares y procesos de desarrollo

o Impulsar el desarrollo de las herramientas Orientadas a Objeto en el mercado o Soportar conceptos de desarrollo de alto nivel como colaboracioacuten marcos de

componentes reutilizables patrones y componentes o Integrar las mejores praacutecticas

9 El aacutembito de UML

UML es un lenguaje para especificacioacuten construccioacuten visualizacioacuten y documentacioacuten de artefactos de un sistema de software UML es la fusioacuten de los conceptos de Booch OMT y OOSE El resultado es un simple comuacuten y ampliamente usado lenguaje de modelado para usuarios de estos y otros meacutetodos UML se enfoca en un lenguaje de modelado estaacutendar no en un proceso estaacutendar los autores de UML recomiendan un proceso de desarrollo manejado por casos de uso de arquitectura central iterativo e incremental [iiquest4T97l

Para la definicioacuten de sistemas de software en UML se definen diagramas Un diagrama es la representacioacuten graacutefica de un conjunto de elementos este se visualiza la mayoriacutea de las veces como un grafo conexo de nodos (elementos) y arcos (relaciones) Los diagramas se dibujan para visualizar un sistema desde diferentes perspectivas de forma que un diagrama es la proyeccioacuten de un sistema uumlML incluye nueve diagramas [B0099]

4 -

I Diagrama de clases 2 Diagrama de objetos 3 Diagrama de casos de uso 4 Diagrama de secuencias 5 Diagrama de colaboracioacuten 6 Diagrama de estados 7 Diagrama de actividades 8 Diagrama de componentes 9 Diagrama de despliegue

Diagramas de secuencias Un diagrama de secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten comportamiento

Un diagrama de secuencias muestra un conjunto de mensajes acomodados en una secuencia de tiempo eacuteste diagrama muestra la interaccioacuten en un esquema de dos - dimensiones [RUM99]

19

Marco teoacuterico

Y -

Un diagrama de secuencia es un diagrama de interaccioacuten que resalta la ordenacioacuten temporal de los mensajes Un diagrama de secuencia presenta un conjunto de objetos y los mensajes enviados y recibidos por ellos Los objetos suelen ser instancias (con nombre o sin nombres) de clases pero tambieacuten pueden representar instancias de otros elementos tales como colaboraciones componentes y nodos Los diagramas de secuencia se utilizan para describir la vista dinaacutemica de un sistema [B0099]

Usar los diagramas de secuencia es mostrar la secuencia que existe en un caso de uso [RUM 991

Los diagramas de secuencia tienen dos dimensiones Una dimensioacuten que representa el tiempo Otra dimensioacuten que representa los diferentes objetos que participan en la secuencia de eventos requeridos para completar el propoacutesito [MOuuml98]

El principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildea las interacciones de los objetos [DAN02]

20

Capiacutetulo 3

DesawoCCo de Ia herramienta

En este capiacutetulo se describe el desarrollo del Ambiente Visual Se describe el modelo conceptual del sistema la arquitectura asiacute como tambieacuten los elementos que componen la Arquitectura Se estudian los Diagramas de Secuencias de UML y algunos Patrones de Disentildeo de los que se hace uso para el mejor desarrollo del sistema Se describe a detalle la Gramaacutetica Visual Relaciona1 utilizada para el de Ambiente de desarrollo

I CENIOET 1FNTRO DE INFORMACION

Desarrollo de la herramienta

t i i

Actualmente existe en el cenidet un Ambiente Visual de Modelado de Clases llamado InverSOODA este Ambiente Visual tiene la capacidad de realizar la generacioacuten automaacutetica de coacutedigo de las clases en C++ a partir del modelo especificado Ademaacutes se puede realizar la Ingenieria Inversa de un coacutedigo legado para obtener el modelo de clases Aunado a este trabajo existe el Ambiente Visual denominado InverDDVi con el cual se puede realizar el Disentildeo Detallado de los Meacutetodos de las Clases con diagramas de Warnier Asiacute tambieacuten es posible obtener el modelo aplicando la Ingenieriacutea Inversa a un coacutedigo legado en C++

Ambos trabajos son retomados en este proyecto para la automatizacioacuten en la obtencioacuten de los Diagramas de Secuencias de UML La figura 31 muestra el modelo propuesto de ingenieriacutea directa

Extraer informacioacuten del diagrama de

rsquo rsquo

Diagrama de 11 clases I o

detallado de

detallado de

o meacutetodos

i ir---- Construir el

secuencias i

Modelo de Ingenieriacutea I directa automaacutetica

I

Figura 31 Modelo de Ingenieria Directa Autombtica de los Diagramas de Secuencias

Para la construccioacuten automaacutetica de un diagrama de secuencias se toma como base a un diagrama de Clases El modulo ldquoExtraer informacioacuten del diagrama de Clasesrdquo sirve para obtener el nombre y los meacutetodos descritos en cada uno de las clases que existan en el diagrama de Clases

22

Desarrollo de la herramienta

Con base en la informacioacuten que se tiene se abren los archivos correspondientes a los diagramas de Warnier El proceso que se emplea sobre cada uno los diagramas de Warnier llamado ldquoExtraer informacioacuten de los disentildeos detallados de los meacutetodosrdquo sirve para recopilar el conjunto de las llamadas de cada meacutetodo definido

En el siguiente paso (ldquoReconocer llamadas a meacutetodosrdquo) consiste en identificar si los meacutetodos que estaacuten descritos en los diagramas de Warnier tambieacuten lo estaacuten en el diagrama de Clases correspondiente

El paso ldquoConstruir los diagramas de secuencias automaacuteticamenterdquo realiza una validacioacuten de los meacutetodos definidos en los diagramas de Clases con los meacutetodos definidos en los diagramas de Warnier Este paso crea una estructura de datos con la secuencia de las llamadas y la recorre para crear los objetos y los mensajes en el diagrama de secuencias

AI terminar la creacioacuten automaacutetica del diagrama de secuencias se dispone de la r opcioacuten de guardar

31 Disentildeo de la Arquitectura

Para definir los procesos que el sistema va a realizar es necesario llevar a cabo un anaacutelisis de requisitos los cuales pueden ser expresados mediante diagramas de Casos de Uso Los Casos de Uso son una descripcioacuten textual narrativa de los procesos de un sistema

311Requisitos (Diagrama de Casos de uso)

Los casos de uso en realidad no son un artefacto de anaacutelisis orientado a objetos estos describen simplemente procesos y pueden ser igualmente efectivos en un proyecto tecnoloacutegico no orientado a objetos Son usados en un paso preliminar a la descripcioacuten de requerimientos de un sistema [LAR971 La Figura 32 muestra el diagrama de casos de uso que especifica al S3C

9

S3C (Diagramas de Secuencias)

usuario I Modelado de

I

Figura 32 Diagrama de Casos de Uso para el S3C

23

Desarrollo de la herramienta

Descripcioacuten de los Casos de Uso

Caso de Uso ldquoDiagramas de Secuenciasrdquo Se inicia cuando el actor ldquousuariordquo solicita la creacioacuten de un Diagrama de Secuencias Se establece la forma de la construccioacuten automaacutetica de los diagramas de secuencias de UML Se hace uso del Modelado de Clases y del Modelado del disentildeo detallado de los meacutetodos

Escenario de Eacutexito 1 Se obtiene la informacioacuten de las clases del modelado de clases 2 Se obtiene la informacioacuten del modelado del disentildeo detallado de los meacutetodos 3 Se realiza la construccioacuten automaacutetica de los diagramas de secuencias

1 En el modelo de clases no hay informacioacuten o estaacute incompleta 2 En el modelo del disentildeo detallado de los meacutetodos no hay informacioacuten o estaacute

incompleta

Escenario de Falla

Caso de Uso ldquoModelado de Clasesrdquo El diagrama de Clases se utiliza para obtener los nombres de clases y los nombres de los meacutetodos de cada clase

Escenario de Eacutexito 1 Se abre el modelo 2 Se procesa para obtener la informacioacuten de las clases (nombres de clases y nombres

de meacutetodos)

Escenano de Falla h 1 No se puede abrir el modelo J 2 El modelo esta vaciacuteo

Caso de Uso ldquoModelado del Disentildeo detallado 1 los meacutetodosrdquo El disentildeo detallado de los meacutetodos se realiza con diagramas de Warnier aquiacute se establecen las llamadas a funciones dentro del sistema y es aquiacute donde se identifica el dinamismo que se representaraacute en los diagramas de secuencias

Escenario de Eacutexito 1 Se abre el modelo 2 Se realiza la identificacioacuten de las llamadas existentes

Escenario de Falla 1 No se puede abrir el modelo 2 El modelo esta vaciacuteo

24

Desarrollo de la herramienta

Clase Objeto ni I Diagrama I n ____ Nombre Descripcioacuten

i

Mensaje

Tipo

En el Anaacutelisis Orientado a Objetos se crea una especificacioacuteii del dominio del problema y de los requeriinientos desde la perspectiva de una clasificacioacuten por objetos y del entendimiento de los teacuterminos usados en el dominio del problema Una descomposicioacuten del dominio del problema involucra una identificacioacuten de conceptos atributos y asociaciones que son considerados importantes dentro del dominio El resultado puede ser expresado en un Modelo Corzcepttraf el cual es ilustrado en un conjunto de diagramas que definen conceptos (objetos) [LAR97]

312Modelo Conceptual

El modelo conceptual visto en la Figura 33 no es una descripcioacuten de componentes de software representa conceptos en el domino del problema en el mundo Teal [LAR97l

313Diagramas de clases

Por cuestiones dc espacio las clases de la arquitectura del sistema estaraacuten referidas en varios diagramas que de alguna manera estaacuten relacionados entre si

Una de las partes maacutes importantes del Ambiente Visual S3C es la estructura de clases ltCCraJicogt la cual se refiere al control de los diagramas eacutesta por su naturaleza podriacutea considerarse el nuacutecleo del sistema La manipulacioacuten y control de los diagramas estaacute definido en una estructura de clases organizada con el patroacuten de disentildeo Composite que se muestra en la Figura 34

25

Desarrollo de la herramienta

CRecursividadDS CMensajeDS CObjetoDS CDiagramaDS

I Cvisitor I

CApuntadorDS CDblClickDS CAsocAdjusterDS CSelectorDS

26

Desarrollo de la herramienta

n 32 Elementos de la arquitectura

Es necesario describir los elementos que dan soporte a la arquitectura del ambiente donde se implementaraacute el sistema en este caso Microsoft Visual (MV) C++ 6 El MV C++ es un marco de aplicacioacuten poderoso basado en Windows se integran ademaacutes del lenguaje C++ (compilador y enlazador) el programa de desarrollo de programas en lenguaje C para Windows (SDK) la Microsoft Foundation Class Library AppWizzard Classwizard AppStudio y WorkBencli

La Microsoft Foundation Class Library comprende una biblioteca de clases de C++ y es considerada como el nuacutecleo del MV C++

321Microsoft Foundation Class (MFC)

La libreriacutea Microsoft Foundation Class (MFC) es una interfaz orientada a objetos que tiene las siguientes metas de disentildeo

o

Reduccioacuten significante de esfuerzo al escribir una aplicacioacuten para Windows Velocidad de ejecucioacuten comparable a las APIrsquos del lenguaje C Miacutenimo tamantildeo de coacutedigo Capacidad para llamar cualquier funcioacuten de Windows en C directamente Faacutecil conversioacuten de aplicaciones existentes en C a C++ Faacutecil uso de APIrsquos de Windows con C++ como con C Faacutecil uso de complicadas caracteriacutesticas de abstracciones poderosas como ActiveX soporte para base de datos impresioacuten barras de herramientas y barras de estado El API de Windows en C++ si usa tan efectivamente como las caracteriacutesticas mismas del lenguaje C++

La mayoriacutea de las clases de la Libreriacutea de la Microsoft Foundation Class son derivadas de una clase base ltCObjectgt que es la raiacutez de la jerarquiacutea de clases ltCObjectgt da uacutetiles capacidades a las clases que derivan de ella

La jerarquiacutea que existe en las clases derivadas de ltCObjectgt es la siguiente

Arquitectura de Aplicacioacuten Excepciones Servicios de Archivos Arreglos Listas Mapas Servicios de Internet Sockets Sincronizacioacuten Soporte para base de datos D A 0

27

Desarrollo de la herramienta

i

r

Liacutenea de Comandos Menuacute Dibujo Graacutefico Dibujo Graacutefico de Objetos Soporte de Control Soporte de Ventanas

Soporte para base de datos ODBC

o Marco de Ventanas o Barras de control o Hojas de propiedades o Cajas de Dialogo o Vistas o Controles

322Arquitectura Documento Vista

Por defecto las aplicaciones creadas con la MFC usan un modelo de aplicacioacuten que separa los datos del programa de las vistas de interaccioacuten con el usuario En eacuteste modelo un objeto documento de MFC lee y escribe datos en un almacenamiento persistente Un objeto vista administra el despliegue de datos suministrando al usuario los datos para ser seleccionados o editados La vista le comunica al documento cualquier cambio en los datos La razoacuten maacutes conveniente para seguir este modelo es cuando se necesita muacuteltiples vistas del mismo documento (como en una hoja de caacutelculo y un graacutefico)

La arquitectura documentovista hace faacutecil el soporte de muacuteltiples vistas y muacuteltiples tipos de documentos asiacute como la divisioacuten de ventanas y otras caracteriacutesticas de interfaz de usuario Pero el corazoacuten de la arquitectura son cuatro clases (Mostradas en el aacuterbol de clases de la Figura 36)

ltCDocumerrtgt (o ltCOleDocuinentgt) - Se instancia un objeto de este tipo para almacenar y controlar los datos del programa ltCViewgt (o una de sus clases derivadas ltCScrotlViewgt ltCFormViewgt ltCEditView ltCRecordViewgt ltCDaoRecordView ltCtreeViewgt ltCListViewgt b ltCrichEditViewgt) - Un objeto es usado para desplegar los datos y administrar la interaccioacuten del usuario con los datos ltCFrameWndgt (o una de sus variantes) - Establece el marco sobre el que trabajaraacuten una o mas vistas de un documento ltCDocTemolategt (o ltCSingIeDocTemplategt o ltCMultiDocTemplategt) - Coordina la existencia de uno o maacutes documentos de un tipo dado y administra la correcta creacioacuten de los documentos vistas y objetos ventanas para cada tipo

i

28

Desarrollo de la herramienta

______________ 2 Wiew

I - - __ - ------a ________________

323Integrando Ambientes en Visual C t t

Las aplicaciones de Interfaz de Documento Uacutenico (SDI) soporta muacuteltiples tipos de documentos pero este soporte es para un solo objeto documento Debido a esta restriccioacuten y aunado a la necesidad de tener varios objetos documentos a la vez se determina la utilizacioacuten del modelo Interfaz de Muacuteltiples Documentos (MDI) indicado en la Figura 37

324Interfaz de Muacuteltiples Documentos (MDI)

Una aplicacioacuten de Interfaz de Muacuteltiples Documento (MDI) permite la creacioacuten de plantillas para el manejo de los documentos eacutesta plantilla tiene la forma

rn-pDocTemplate = new CMultiDocTernplate ( I DR-SCUMLTY PE RUNTIME-CLASS (CSCUMLDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CTheView))

AddDocTernplate ( rn-pDocTemplate )

Cada plantilla describe una relacion del tipo de documento con la vista asociada La definicioacuten de la plantilla para el ambiente que controla los diagramas de secuencias es la siguiente

29

Desarrollo de la herramienta c

m-pTernplateSeqDlag = new CMultiDocTernplate ( IDR-DS-SJCTYPE RUNTIME-CLASS (CSeqDiagDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CSeqDiagView) )

AddDocTernplate( rn-pTernplateSeqDiag )

Esta plantilla hace uso de la clase CCliildFrame que por defecto el ambiente Visual C++ construye y esto es debido a que no se requieren caracteriacutesticas extras en las ventanas de las que proporciona dicha clasc En un caso en el que se requiriera un comportamiento diferente de la vista tendriacutea que crearse una nueva clase con las caracteriacutesticas deseadas

Vista Documento

Vista

I- Vista Documento I [ Tip- F Vista

L Figura 37 Modelo Interfaz de Muacuteltiples Documentos (MDI)

Para integrar otro Ambiente que utilice otro tipo de documento es necesario definir otra plantilla de la misma forma mencionada Debe tomarse en cuenta los siguientes puntos

Es necesario definir el nombre (mqTemplateNOMBRE) El IDR del tipo que se requiere que sea el documento En la primera liacutenea RUNTIME CLASS debe indicar la clase ltCDocumentgt que desea La segunda liacutenea RUNTIME-CLASS soacutelo la cambia a otra clase si requiere de otro manipulador de ventanas de lo contrario deje que ltCChildFramegt se haga cargo

-

30

Desarrollo de la herramienta

En la uacuteltima liacutenea referente a RUNTIME-CLASS se debe indicar la clase ltCViewgt que desea usar Para finalizar se usa la instruccioacuten AddDocTernplate para finalizar la definicioacuten del template (mgTemplateNOMBRE)

325 Recursos Diaacutelogos Mertuacutes y Barras de Herrattriertias

Son varios los recursos con los que se puede contar al crear un proyecto en Microsoft Visual C++ Los diaacutelogos son un recurso disponible que son utilizados para visualizar ingresar yo modificar informacioacuten que se requiera En el Ambiente Visual que se desarrolla son varios los diaacutelogos que se utilizaraacuten y eacutestos se describen a continuacioacuten

El Diaacutelogo ldquoCaracteriacutesticas del Obietordquo (Figura 38) identifica el nombre del Objeto y la descripcioacuten del mismo Este diaacutelogo se muestra cuando se presiona doble clic sobre un objeto del diagrama

I Nombre

Desciipcion

Figura 38 Dialogo Caracteriacutesticas del Objeto

El Diaacutelogo ldquoMensaierdquo (Figura 39) muestra el nombre del mensaje que puede ser modificado ademaacutes se visualizan el Identificador del Mensaje el tipo de Mensaje asiacute tambieacuten el origen y destino del mensaje

31

Desarrollo de la herramienta

Nornbie delMensaje Edit

IDentificador del Mensaje Edil Tipo de Mensaje (Edil

Edit Objeto Origen

Objeto Destino IEdit

i25El A Figura 39 Dialogo Mensaje

El menuacute es otro de los recursos del que se puede disponer para organizar el ambiente que se estaacute creando Para eacuteste caso en particular no se hizo modificaciones al menuacute estaacutendar (Figura 310) que Visual C++ presenta Los cambios significativos son el manejo del tipo de documento para los Diagramas de Secuencias

Archivo Editar Yer VenLana AyGda

Figura 310 Menuacute de los Diagramas de Secuencias (estaacutendar)

Otro importante recurso del que uno se puede valer en Visual C++ es la barra de herramienta personalizada la cuaacutel es construida en el Editor de Recursos Se ha construido una barra (Figura 311) con los elementos graacuteficos de los Diagramas de Secuencia de UML

Figura 311 Barra de Herramientas de los Diagramas de Secuencias

Es recomendable que al utilizar barras de herramienta personalizada se defina en el tamantildeo estaacutendar ya que puede experimentar problemas al momento de ejecutar la aplicacioacuten

Ademaacutes puede usar la propiedad TBBS-CHECKGROUP en una barra de herramientas para establecer que los botones puedan quedar presionados hasta que un botoacuten diferente sea presionado No olvide que la numeracioacuten inicia con cero ( O )

vuriableToolBurSetButtonStyle(OTBBSCHECKGROUP)

32

Desarrollo de la herramienta

Prefijo ID IDC IDD IDP IDR IDS

326 Notacioacuten estaacutendar

Los nombres descriptivos de los recursos se asocian a un valor uacutenico Para una mayor claridad eacutestos nombres mantienen un prefijo que describe el tipo de recurso asociado (vea la Tabla 31) [MIC99]

Tipo de Recurso Comandos de Menuacute Controles y recursos Cuadros de diaacutelogo Cadenas de solicitud para cuadros de mensaje Menuacute principal barras de herramienta tabla aceleradora y el icono Cadenas

IDR IDD IDC ID

200 - 299 3000 - 3999 34000 - 34999

Estos son los rangos de valores establecidos para el proyecto S3C Si se utiliza el coacutedigo fuente y se planea agregar otro proyecto verifisue que no se invadan estos nuacutemeros para evitar problemas

Para facilitar auacuten maacutes los trabajos futuros se ha definido una estructura de carpetas (ver Figura 312) para incluir en cada una las Clases correspondientes a cada tesis en desarrollo

33

Desarrollo de la herramienta

ill ~~ -

-I SCUML classes + U A N T L R + U App + 0 ClassDiagrams + 0 Common + a Java

t $2 SequenceDiagiams

+ WarnierDiagrams

iJ PackageDiagrams

12 StaterChartDiagrams

+

- f Classview I Resourceview 1 FileView ]

~ ~

Figura 312 Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)

327Estructura de datos persistencia y recuperacioacuten

Existe una gran cantidad de tipos de datos estructuras clases y meacutetodos de los que se puede hacer uso para una mejor y maacutes faacutecil obtencioacuten de los resultados A continuacioacuten hago comentarios en tipos de datos y meacutetodos en los que podriacutea tener problemas

CTypedPtrList

AI usar este tipo de dato o alguno relacionado que le permita utilizar el meacutetodo ltCTvrgtedPtrListGetNextgt tenga especial precaucioacuten al usarlo ya que al devolver el valor requerido la variable POSITION usada no se queda apuntando a ese valor en particular salta al inmediato siguiente de la lista

Si se realiza una creacioacuten dinaacutemica con punteros para los elementos de una CTypedPtrList Despueacutes de haberlo agregado a la lista evite el delete para borrar esta Usted deseando liberar la memoria no lo haga ya que eliminara directamente el elemento de la lista

POSITION

Es un valor usado para denotar una posicioacuten de un elemento en una coleccioacuten Pero CUIDADO no se refiere a un iacutendice es una referencia (no consecutiva) de punteros muy diferente a un iacutendice

CString

Auacuten cuando el operador de comparacioacuten == (igual a) es permitido para ser utilizado en las cadenas evite su uso ya que en ocasiones aunque cuando la e

34

Desarrollo de la herramienta

compilacioacuten no indique error alguno en la ejecucioacuten no realizaraacute lo que se necesita Recomiendo que utilice CStringCompare ()

Para eliminar el contenido de un CString utilice CStringEmpty() ya que asignar a la cadena un ldquonrdquo podriacutea causarle problemas

Serializacioacuten

Una forma en que se puede guardar informacioacuten y recuperarla de manera eficaz es mediante la serializacioacuten de objetos La serializacioacuten es un proceso que permite escribir un objeto en un archivo y tambieacuten leerlo

Para que la serializacioacuten se lleve a cabo son necesarios tres objetos un objeto de tipo ltCFilegt que represente el archivo un objeto de tipo ltCArchivegt que ofrece el entorno para la serializacioacuten y la clase del objeto a ser serializado debe ser heredada de ltCObjectgt y sobrescribir el meacutetodo ltSerializegt para que se encuentre de tal forma en que pueda ser serializado (vea la Figura 313)

Objeto a ser serializado 1

1 CArchive

[f --=I- ---7 Archivoexi

u Figura 313 Serializacioacuten

328Patrones de disentildeo utilizados

Se ha planteado la definicioacuten de una arquitectura de clases utilizando patrones de disentildeo debido a que algunos de ellos hacen maacutes faacutecil la extensioacuten de la funcionalidad y mantenimiento

35

Desarrollo de la herramienta

El patroacuten Composite es utilizado para crear de manera uniforme el diagrama sobre el que se trabaja (ver Figura 34) manteniendo una jerarquiacutea de clases uniforme las clases maacutes bajas en la jerarquiacutea definen primitivas de objetos graacuteficos

Se aplica el patroacuten de disentildeo Iterator para hacer recorridos en listas de objetos para realizar diversas operaciones Otro patroacuten de disentildeo del que se hace uso es el Visilor (ver Figura 35)

Para otras actividades que se realizan podriacutea pensarse en que se deberiacutean aplicar otros patrones pero se han evitado algunos (como el patroacuten de disentildeo Builder) para evitar incrementar la complejidad en la arquitectura ya que ai mantener el modelo de la MFC de documentovista la funcionalidad del patroacuten de disentildeo Builder es faacutecilmente reemplazado si se hiciera Uso de eacuteste se aumentariacutea la complejidad excesivamente (nos llevariacutea a perdemos en ocasiones en el paso de mensajes entre clases) dantildeando la facilidad de la arquitectura

33 Diagrama de secuencias

Un Diagrama de Secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten escenario Oacute comportamiento se usan para definir el curso loacutegico de accioacuten de un posible camino a seguir en la resolucioacuten de un problema Seguacuten John Daniels [DANO2] ldquoel principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildean las interacciones de los objetosrdquo

Los Diagramas de Secuencias se utilizan en el modelado de la implementacioacuten de sistemas de software ademaacutes son aplicables en el modelado de requisitos para establecer las comunicaciones existentes entre actores yo clases del sistema Con eacutestos diagramas se logran hacer descripciones de los escenarios y los comportamientos del sistema Con los Diagramas de Secuencias es posible definir protocolos de comunicacioacuten con paso de mensajes ya que dan esa flexibilidad que se requiere Ademaacutes los Diagramas de Secuencias contienen informacioacuten suficiente para que puedan ser transformados a los diagramas de colaboracioacuten [RUM Ol][BOO Oil

331Ciclo de vida del software

Considerando cualquier modelo de ciclo de vida del software (en la figura 314 se muestra el Modelo de cascada) el aacutembito directo de eacuteste Ambiente Visual es en el disentildeo aunque tiene sus vertientes en la codificacioacuten y mantenimiento

36

Desarrollo de la herramienta

Diseno

Codificacibn

I I I I Mantenimiento I

igura 314 Modelo de cascada del ciclo de vida del software

34 Elementos atoacutemicos de la Gramaacutetica

Definicioacuten de los elementos atoacutemicos del lenguaje y su contenido

1 Actor- Representa roles de entidad externos al sistema con el que interactuacutea directamente Los actores pueden ser humanos dispositivos u otros sistemas

2 ClaseObjeto- Determina una Clase u Objeto participante en la interaccioacuten

3 Mensaje-Es una comunicacioacuten entre objetos que contiene informacioacuten Eacuteste se representa con la finalidad a que una accioacuten sea llevada a cabo

4 Mensaje con tiempo- Tiene la misma finalidad que el mensaje la diferencia es que con eacutel se representa un atributo de tiempo

5 Mensaje asiacutencrono Es un mensaje que ocurre en el tiempo de manera independiente a otros mensajes

6 Mensaje de destruccioacuten de objeto- Es un mensaje cuya finalidad es indicar la destruccioacuten del objeto destino

7 Mensaje de creacioacuten de objeto- Es un mensaje que indica la creacioacuten de un objeto

8 Llamada al mismo objeto (Recursividad)- Es usado para modelar llamadas recursivas en el que una operacioacuten es invocada por el mismo objeto

37

Desarrollo de la herramienta

9 Destruccioacuten del objeto (AutodestrucciOacuten)- Puede o no modelarse es representada con una X al final de la liacutenea de vida del objeto

Elementos aulomaacuteticos

1 Liacutenea de Vida- Representa la vida del objeto durante la interaccioacuten

2 Activacioacuten- Muestra el periacuteodo de tiempo en el cual el objeto alguna operacioacuten

341RepresentaciOacuten visual

Representacioacuten visual de los elementos atoacutemicos del lenguaje

Actor

_- A

Mensaje

Mensaje de Creacioacuten de

Objeto

ClaseObjeto

I

Mensaje de retorno

Mensaje de Destruccioacuten de

Objeto

abla 32 Element(

Activacioacuten

Mensaje con tiempo

Autodestruccioacuten

x

atoacutemicos del lengi

taacute realizz

Texto ===I (letra)+ (letra I

numero) letra= AZ I az numero = 09

I

Recursividad ~

I

i j e

io

38

u

Comentario

iexcl

Conector de Comentario

35 Gramaacutetica desarrollada

La gramaacutetica que se propone es una gramaacutetica visual del tipo relacional Una gramaacutetica relacional pertenece a las gramaacuteticas libres de contexto es una 6-iupla G (N C S R Attr P) donde

N es un conjunto finito de siacutembolos no terminales C es un conjunto de siacutembolos terminales S es un siacutembolo distinguido en N llamado siacutembolo inicial R es un conjunto finito de siacutembolos de relacioacuten Attr es un conjunto finito de siacutembolos de atributos P es un conjunto de producciones

Entonces definiendo nuestra gramaacutetica G (N C S R Attr P)

N = Diagrama GrupoClaseObjeto

S = Diagrama

R = mensaje mensajeTiempo mensajeRetomo mensajeAsincrono mensajecrea mensajeDestruye autodestruccioacuten recursividad

R

Attr = entrada salida entradacrea

39

Desarrollo de la herramienta

Definiendo la posicioacuten de los atributos en los elementos visuales

entradacrea ObetaClase

entrada

salida

P =

Diagrama I GrupoClaseObjeto (mensaje (mensajeRetorno

(salida 1) (entrada 2) ) (salida 2) (entrada 1) )

- Diagrama 0 GrupoClaseObjeto

(mensaje (mensaje (mensajeRetomo (mensajeRetomo (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entradacrea 2) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 1) ) (salida 1) (entrada 1) )

entrada

salida

40

Desarrollo de la herramienta

s

-

GrupoClaseObjeto - 1 1 I 2 (mensaje (mensaje (mensajeRetorno (mensajeRetorno (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entradacrea 2) ) (salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 1) ) (salida I ) (entrada I ) )

1 En las gramaacuteticas relacionales una produccioacuten estaacute acompantildeada de las posibles

relaciones que puedan generarse En la primera produccioacuten Diagrama produce a un Actor seguida de un GrupoClaseObjeto el Actor inicia la interaccioacuten con un mensaje y recibe el mensaje de retorno al finalizar la interaccioacuten La segunda y tercera produccioacuten son similares debido a que un GrupoClaseObjeto contiene dos ClaseObjeto que se relacionan de la misma forma

Existe un elemento de la gramaacutetica llamado Attr (Atributo) el cual define la parte de los elementos visuales donde se establecen las relaciones Se han determinado dos atributos (entrada y salida) que para nuestro propoacutesito estaraacuten establecidos en la liacutenea de vida de cada elemento visual (Actor y ClaseObjeto)

Los Comentarios y la Activacioacuten no se consideran en la gramaacutetica Los comentarios son libres de incluirse y relacionarse con cualquier elemento y relacioacuten mencionada anteriormente y la activacioacuten existe siempre que se presente un mensaje (o podriacutea omitirse) Estas consideraciones se realizaron para hacer auacuten maacutes faacutecil la gramaacutetica ya que si se trata de realizar un sistema las restricciones de estos elementos pueden mantenerse en el lenguaje de programacioacuten en el que se desarrolle el sistema

36

Precondiciones

El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias

1 El diagrama de Clases debe existir y estar completo 2 Debe existir un archivo con un diagrama de Warnier por cada diagrama de Clases y

con el mismo nombre de archivo (excepto la extensioacuten del archivo) 3 En el uacutenico diagrama de Warnier de cada Clase se deben modelar todos los meacutetodos

de la Clase 4 No realizar declaraciones de meacutetodos

41

Desarrollo de la herramienta

5 Debe existir un meacutetodo lsquomain()rsquo en el diagrama de Clases

Restricciones

Los meacutetodos deben mantener nombres distintos en las diferentes Clases

Metodologiacutea para la obtencioacuten automaacutetica de los Diagramas de Secuencias

1 Seleccionar el diagrama de Clases

2 Se construye una lista con los nombres de las Clases y los Meacutetodos

3 Se verifica si exista el meacutetodo lsquomain()rsquo en alguna Clase Se busca la existencia de una uacutenica Clase

a La Clase que contenga lsquomain()rsquo se va al inicio de la lista de Clases

b Si no existe lsquomain()rsquo SE TERMINA EL PROCESO

4 Se verifica la existencia de los archivos que contienen el Disentildeo Detallado de los meacutetodos en Wamier para cada una de las Clases si alguno falta SE TERMINA EL PROCESO

5 Se procesa cada uno de los modelos del Disentildeo Detallado de los Meacutetodos generando una lista de secuencias de llamadas por cada uno de los meacutetodos

6 Se verifica que cada llamada corresponda a alguacuten meacutetodo existente (del diagrama de Clases) De no existir ese meacutetodo la llamada entra a una estructura que

7 Se crea una lista de secuencia

a Se inicia con lsquomain()rsquo b Se recorre cada una de las llamadas de los meacutetodos c Se considera invaacutelido el caso de que un meacutetodo intente una llamada

recursiva al meacutetodo lsquomain()rsquo

8 Se muestra un diaacutelogo de resultados en el que se indican las llamadas que no se encnotraron definidas y que pueden ser Llamada a libreriacutea oacute Llamada Erroacutenea

42

Capiacutetulo 4

Prue6as y su6taaacuteos

En eacuteste capiacutetulo se da a conocer el detalle de las pruebas y de los resultados obtenidos Se describen los casos de prueba con los que se realizoacute la evaluacioacuten del sistema asiacute tambieacuten se presentan comentarios acerca de los resultados obtenidos

Pruebas y Resultados

41 Recursos teacutecnicos utilizados

Para llevar a cabo las pruebas al sistema S3C se utilizaron los siguientes equipos de Coacutemputo

Computadora de escritorio

256MB RAM Disco Duro 80G Monitor 17rdquo SAMSUNG

AMD Athlon XP 1600+ I4Ghz

Computadora de escritorio Intel Pentium 4 - 128MB RAM Disco Duro 40G Monitor 15rdquo i -

42 Descripcioacuten del plan de pruebas

Las pruebas establecen el Uacuteltimo paso desde donde es posible evaluar la calidad y descubrir los errores Las pruebas y la validacioacuten del software se utilizan para comprobar que el sistema cumple con las expectativas del usuario

En esta seccioacuten se describen los casos de prueba que se realizaron al prototipo de S3C en conjunto a la suite cenidet-UML Para cada uno de los casos se presenta el objetivo el procedimiento que se siguioacute para la prueba y se muestran los resultados obtenidos - _

Las pruebas a realizar son los siguientes

Caso 1 Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Caso 2 Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Wamier

Caso3 Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Wamier

Caso4 Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo 5

44

Pruebas y Resultados

43 Resultados

431 Caso 1

5 Y

IZ =

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoSirdquo 4 Seleccionar el archivo ldquoVENTASrdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 41 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

s3c iuevo Proyecto SCUM1

Diagrama de clases

lvendedor I L

3

salida

venta prod

4 venia-oferta vcntaprod =

salida 6

Figura 41 Resultado del caso de prueba 1

45

Pruebas y Resultados

432 Caso 2

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Warnier (almacenwar cajawar vendedorwar) que ya cxisten (del caso de prueba I )

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoNordquo 4 Agregar las siguientes Clases con los respectivos meacutetodos y atributos

a Claseldquovendedorrdquo Meacutetodos ldquoventa mainrdquo b Claseldquoalmacenrdquo Meacutetodos ldquoentrada salidardquo c Claseldquocajardquo Meacutetodos ldquoventagrodrdquo

5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 42 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

Diagrama de daseo lisgrama dcsccucncis

MOIDOC Anivo

venta prod

salida

1 Ycrdquo1a 2

I 4 vcrdquolD~o1cn venta prod gt

salida 6 i Figura 42 Resultado del caso de prueba 2

46

Pruebas y Resultados

r

433 Caso 3

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Warnier

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 43 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

5

Error al tratar de abrir el archivo A bZwar

Aceptar i

Faltan Archivos de Disentildeos Detallados de Meacutetodos 1 1 A No se puede crear el diagrama de secuencias

Figura 43 Resultado del caso de prueba 3

47

Pruebas y Resultados

434 Caso 4

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 44 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

lsquo I

~ _ i i _ l _ Repaado ~~ ~ ~ 6~ ampA Figura 44 Resultado del caso de prueba 4

48

Pruebas y Resultados

PRUEBA DESCNPCION CASO 1 Mostrar la funcionalidad del

Sistema S3C a partir de un

44 Anaacutelisis de Resultados

RESULTADOS Se comproboacute la correcta funcionalidad del Sistema S3C a partir de un diagrama

CASO 3

CASO4

I diagrama de Clases cxistcnte I de Clases existente CASO 2 I Mostrar la funcionalidad del I Sc comproboacute la corrccta funcionalidad

Sistema S3C a partir de un del Sistema S3C a partir de un diagrama diagrama de Clases que se de Clases que se construye al momento construye al momento Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el Secuencias si falta alguno de los diagrama de Secuencia si falta alguno diagramas de Warnier Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el secuencias si hace falta el meacutetodo diagrama de Secuencias al faltar el ldquomain ()rdquo meacutetodo ldquomain()rdquo

de los diagramas de Warnier

Los resultados obtenidos de cada uno de los casos establecidos demuestran que se validoacute la funcionalidad del prototipo con los requisitos definidos en el alcance de este proyecto

a lt

49

Conclusiones y Tru6ajos Futuros

Aquiacute se dan a conocer las conclusiones y se describen los posibles trabajos futuros para la continuacioacuten de eacuteste proyecto

F

51 Conclusiones

Conclusiones y trabajos futuros

Se ha creado un Ambiente Visual que permite obtener de forma automaacutetica los Diagramas de Secuencias en base a los diagramas de Clases y al disentildeo detallado de los meacutetodos descritos con diagramas de Warnier cumpliendo con los objetivos planteados para este trabajo

La tesis aporta principalmente La generacioacuten automaacutetica de los diagramas de secuencias y la eliminacioacuten de inconsistencias al mantener una validacioacuten directa de los diagramas de clases y los diagramas de Warnier que son utilizados

Esta validacioacuten es lograda a traveacutes del uso de la gramaacutetica visual relaciona1 que se ha definido (veacutease el capiacutetulo 3) Esta gramaacutetica visual establece reglas para la correcta construccioacuten de los diagramas de secuencias

P De esta manera se establece que la hipoacutetesis ldquoEs posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodosrdquo Es verdadera

52 Trabajos Futuros

Un Diagrama de Secuencias puede convertirse en un Diagrama de Colaboracioacuten por lo tanto un trabajo futuro es la construccioacuten automaacutetica de un Diagrama de Colaboracioacuten a partir de uno de Secuencias existente

Es posible calcular la meacutetrica de acoplamiento al tener un Diagrama de Secuencias construido

La Ingenieriacutea directa de un Diagrama de Secuencias estableciendo la validacioacuten en la construccioacuten de todos los elementos visuales que UML define

La propagacioacuten de las modificaciones de un Diagrama de Secuencias a los Diagramas de Clases y los Diagramas de Warnier

La modificacioacuten del coacutedigo fuente mediante los cambios establecidos en un Diagrama de Secuencias

51

[ALC03]

[BLA98]

[B0099]

[BOOOi]

[BR097]

[CHA90]

[DAN02]

[GLA02]

[HAC98]

[HER03]

4

Alcate1 Computer Associates International inc Electronic Data Systems Corporation Hewlett-Packard Company IBM Corporation I-Logix IntelliCorp Kabira Technologies Kennedy Carter Microsoft Corporation Object Management Group Oracle Corporation Project Technology Ptech Inc Rational Software Corporation Reich Technologies Softeam Taskon A S Telelogic Unisys Corporation ldquoOMG Unified Modeling Language Specificationrdquo Version 15 Unified Modeling Language 2003

Blaha Michael Rumbaugh James Premerlani William Eddy Frederick Lorensen William ldquoObject-oriented modeling and designrdquo Prentice Hall 484 Paacuteginas ISBN 0-13-629841-9 QA-769-03S-B53-19981998

Booch Grady Rumbaugh James Jacobson Ivar ldquoEl lenguaje unificado de modeladordquo Addison Wesley 432 Paacuteginas ISBN 84-7829-028-1 1999

Booch Grady Rumbaugh James Jacobson Ivar ldquoThe Unified Modeling Language User Guiderdquo Addison Wesley 2001

Brown David ldquoAn introduction to object-oriented analysis objects in plain Englishrdquo John Whiley amp Sons Inc 700 Paginas ISBN 0-471-1 1028-0 QA-769-035-B76-1997 1997

Chang Shi-Kuo ldquoVisual Languages and visual programmingrdquo Plenum Press 340 Paacuteginas ISBN 0-306-43428-8 QA-7665-V57-1990 1990

Daniels John ldquoModeling with a sense of purposerdquo Design - IEEE Software JanuaryEebmary 2002

Glasgow Universidad Reino Unido ldquoA UML Editor in Javardquo (lthttplstudentsdcsglaacuWstudentspainjfproject-reportproject-re port-htmV4thYearReporthtrnlgt 2002)

T Hackos JoAnn C Redish Janice ldquoUser and Task Analysis for Interface Designrdquo Wiley Computer Publishing 488 Paacuteginas ISBN QA-769-U83- H33-1998 1998

Hemaacutendez Velaacutezquez M ldquoIngenieriacutea inversa de coacutedigo fuente en C++ para la obtencioacuten de su disentildeordquo Tesis AT-379 (03-0334) 2003

Conceptos generales

[HIX93]

[JAC93]

[JAC99]

[JOY98]

[LAR97]

[MAR]

[MIC99]

[MIC02]

[MOU98]

Hix Deborah Hartson H Rex ldquoDeveloping user interfacesrdquo 381 Paacuteginas ISBN 0-471-57813-4 QA-769-U83-H59-1993 1993

Jacobson Ivar Christerson Magnus Jonsson Patrik Overgaard Gunnar ldquoObject oriented software engineeringrdquo Addison Wesley ISBN 0-20 1 - 54435-0 QA-7676-D47-J63-1993 1993

Jacobson Ivar Booch Grady Rumbaugh James ldquoEl proceso unificado de desarrollo de softwarerdquo Addison Wesley 438 Paacuteginas ISBN 84-7829-036- 2 1999

Joyanes Aguilar Luis ldquoProgramacioacuten orientada a objetosrdquo McGruw Hill ISBN 84-481-0590-7 1998

Larman Craig ldquoAplying UML and Patternsrdquo Prentice Hull 507 Paacuteginas ISBN 0-13-748880-7 QA-769-035-L37-1997 1997

Marriot Kim Meyer Bemd ldquoVisual Language Theoryrdquo Springer 381 Paacuteginas P-935-V567-1998 1998

Microsoft ldquoMicrosoft Visual C++ 6 manual del programadorrdquo McGraw Hill ISBN 84-481-2127-9 QA-7673-Cl53-23718-1999 1999

Microsoft ldquoVisiordquo (lthttpwwwmicrosoftcomofficevisiogt 2002)

B Mourao Luis X ldquoUniversal Modeling Language Part 11 UML Notation - Case Sequence and Collaboration Diagramsrdquo Lan Times Magazine (~httpwwwlantimescomltpartsdiscussdiscuss6Ohtm~) 1998

No Magic ldquoMagicDrawrdquo (lthttpwwwmagicdrawcomgt 2002)

Object Insight ldquoJvisionrdquo (lthttpwwwobject-insightcomgt 2002)

Rational Software Microsoft I Hewlett-Packard Oracle Sterling Software MCI Systemhouse Unisys ICON Computing IntelliCorp i-Logix IBM ObjectTime Platinum Technology Ptech Taskon Reich Technologies Sofieam ldquoUML Summaryrdquo Version 11 Unified Modeling Language 1997

Rational ldquoRational Roserdquo (lthttpwwwrationalcomproductosrosegt 2002)

Rikki Kirzner ldquoAnalysis Modeling and Design Tools Market Forecast and Analysis 2001-2005rdquo Bulletin Published Under Services Application Design and Construction Tools Application Development and Deployment Strategies Documento Nuacutemero 24809 Junio 2001

53

Conceptos generales

[RIM92] Rimrner Steve ldquoGraphical user interface programmingrdquo 423 Paacuteginas

1992

Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language reference manualrdquo Addison Wesley 550 Paacuteginas ISBN 0-201-

ISBN 0-8306-2475-9 ISBN 0-8306-2472-4 (pbk) QA-769-083-R55G

[RUM99]

30998-X QA-7676-D47-R85-1999 1999

[RUM299] Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language user guiderdquo Addisoiz Wesley 482 Paacuteginas ISBN 0-201 -57 168-4 QA-7676-D47-B66-1999 1999

[SMA02] SmartDraw ldquoSmartDrawrdquo (lthttpwwwsmartdrawcomgt 2002)

[SHU88] 9 - Shu Nun C ldquoVisual Programmingrdquo Van Nostrand Reinhold ISBN 0-422- 28014-9 ISBN 0-422-01 164-4 QA-7665-S55 1988

[THI90] Thimbleby Harold ldquoUser Interface Designrdquo Acm press 470 Paacuteginas ISBN 0-201 -41 61 8-2 QA-769U83-T772~- 1990 1990

[WENO2] Wences Diaz MF ldquoModelo de Ingenieriacutea Inversa para la obtencioacuten de disentildeo detallado basado en LEVISSrdquo Tesis (02-0014) 2002

54

Anexo A

Conampuracioacuten de Microsoft Vkua[C++ 6 O

Este anexo indica las configuraciones que se utilizaron para la compilacioacuten de SCUML y s3c

Configuracioacuten de Microsoft Visual c++ 60

Debido a la integracioacuten de los proyectos de InverSOODA e InverDDVi con S3C se cumplioacute con los requisitos previos de ambos proyectos

El compilador usado en el proyecto fue el Microsoft Visual C++ 60

Para el cumplimiento con la funcionalidad de InverSOODA se instaloacute el ANTLR la versioacuten 271 Se descargoacute del sitio l i l l ~ ~ ~ ~ ~ ~ t l ~ l ~ - ~ t - ~ la versioacuten mencionada en un archivo comprimido (en formato zip) Se colocoacute el paquete descomprimido en el directorio ldquoDIANTLR-271 I rdquo

Recomiendo ampliamente que el directorio principal de ANTLR se copie en el directorio raiacutez de cualquier unidad de disco debido a que experimenteacute problemas de compilacioacuten cuando ANTLR no se encontraba en el directorio raiacutez

Io015

Source Browser AlttF12 I u c Ersquo V I

Visual Component Mgnager

- - ~ ~ ~ ~~

P2 Registrar control

A Contenedor de prueba de controles ActiveX

A Usor de objetos OLE y COM

Buacutesqueda de errores

A Y++ MFC Iracer

Customize options

~ - q- ~ Macro

Eecord Quick Macro Cbl+ShiR+R Pay Quick Macro Ctrl+ShiR+P

En el menuacute Tools (Herramientas) seleccione el sub-menuacute Options ltopcionesgt

56

Configuracioacuten de Microsoft Visual C++ 60

En la siguiente ventana de diaacutelogo debe agregar la direccioacuten en donde se encuentra el ANTLR

Agregar la ruta del directorio de ANTLR hasta el subdirectorio

libcpp

Editor I Tabs I Debug I Compatibility 1 Build Dneclolies I a I Chow directories for - Platfolm -

- Directories I x ) 4 jWin32 -] llnclude files

m cancd I

57

Configuracioacuten de Microsoft Visual C t+ 60

Se ha creado una libreriacutea (anrlrliblib) de ANTLR la cual ya estaacute situada en el directorio del proyecto SCUML (ISCUML) y no debe ser movida o eliminada

I

Geneial 1 Debug I CC++ Link I Category

Output file name bebugSCUMLexe

Objectljibrary modules 4 anllrliblib

li Generate debug lnfo r Ignore all defaull lbaries D ~ i n k j n ~ ~ ~ t a n ~ r ~ e n e r ~ ~ ~ mapfile

r Enable psafilrng

Proiec1 Ootionn

pq Cancel 1 Libreriacutea de ANTLR que debe existir 1 I para que se compile correctamente

58

Anexo B

~ u iacute aacute raacutepida de uso deC Sistema S3C

5 Este anexo indica de forma raacutepida la manera de utilizar S3C para crear un diagrama de secuencias de forma automaacutetica

Guiacutea Raacutepida de uso del Sistema S3C i

Para indicar la creacioacuten de un diagrama de secuencias en forma automaacutetica se debe ir a la barra del costado izquierdo y presionar ldquoNuevo Proyecto SCUMLrdquo

I s3c I ~ Nuevo Proyecto SCUML ~ _ _ - I Diagrama de clases ~ Diagrama de secuencias 1 MDI DOC Activo

-

Apareceraacute un documento llamado ldquoSCUMLV en donde el simbolo corresponde a un numero consecutivo iniciando desde 1 (uno)

$ e Despueacutes se presiona ldquoDiagrama de clasesrdquo Habraacute que para indicarle al sistema si se requiere abrir un diagrama de clases existente o realizar uno nuevo

i

iquestAbrir un documento existente

No Cardquo~ear

AI presionar ldquoSirdquo se debe indicar cual es el archivo del diagrama de Clases en el cuadro de diaacutelogo siguiente

~~ - 11dMis documentos rsquo 2 M i P C i lsquo h s sitios de red

I

AI presionar ldquoNordquo en ldquoAbrir un documento existenterdquo se nos mostraraacute un documento vacio para crear un diagrama de clases

60

Guiacutea Raacutepida de uso del Sistema S3C

Para ambas opciones se requiere que los diagramas de Wamier ya se encuentren construidos Y para continuar el proccso se selecciona el documento ldquoSCUMLVrsquo creado al inicio y despueacutes presionar el botoacuten nombrado ldquoDiagrama de secuenciasrdquo localizado en la barra de hcrraiiiicntas del costado izquierdo

Ha iniciado el proceso de construccioacuten del diagrama de secuencias Si no existen errores al terminar el proceso se le mostraraacute un cuadro de diaacutelogo llamado ldquoResultadosrdquo en donde le mostraraacute las llamadas de las que no localizoacute su definicioacuten

- - -

Cancel 1 D e las siguientes llamadas es posible que esten mal escritas o peitenezcan a la libreiia del Lenguaie Verifique ya que no se encontraron sus definiciones

A continuacioacuten se mencionan los posibles errores que finalizan el proceso de la creacioacuten automaacutetica de los diagramas de secuencias en S3C

Cuando no exista un meacutetodo lsquomainrsquo definido en el diagrama de clases

No se encontro el meacutetodo lsquomain()rsquo que inicie la secuencia I A No se puede crear el diagrama de secuencias

p==amp=q

61

Guia Raacutepida de uso del Sistema S3C

Cuando se definan niultiples metodos lsquoinainrsquo en el diagrama de clases

Multiples meacutetodos lsquomainOlsquo Imposible decidir el inicio de secuencia

Aceptar i

Si un meacutetodo definido en Wamier realiza una llamada a lsquomainrsquo se cancelara el proceso

Llamada NO VALIDA al meacutetodo principal main

(iAcp-j(

4 i

CI Y rdquoldquoldquoI i 11 1-T

IZNTRO Gt INFORMACION

62

  • Tabla de Contenido
  • Listado de Figuras
  • Listado de Tablas
  • Notacioacuten
  • Introduccioacuten
  • Capitulo 1 Conceptos Generales
    • 11 Antecedentes
    • 12 Trabajos relacionados
      • 121 Tabla comparativa
        • 13 Definicioacuten del problema
        • 14 Objetivo de la Tesis
          • Objetivos especiacuteficos de la tesis
            • 15 Hipoacutetesis de investigacioacuten
            • 16 Alcances y limitaciones del trabajo de tesis
              • Capitulo 2 Marco Teoacuterico
                • 21 Modelado de sistemas de software
                • 22 Interfaz de usuario (Mecanismos de interaccioacuten)
                • 23 Lenguajes Visuales
                • 24 Programacioacuten orientada a objetos
                • 25 Lenguaje de Modelado Unificado (UML)
                  • Desarrollo de la herramienta
                    • 31 Disentildeo de la Arquitectura
                      • 311 Requisitos (Diagrama de Casos de uso)
                        • 312Modelo Conceptual
                        • 313Diagramas de clases
                        • 32 Elementos de la arquitectura
                          • 321 Microsoft Foundation Class (MFC)
                            • 322Arquitectura Documento Vista
                            • 323Integrando Ambientes en Visual c++
                              • 324 Interfaz de Muacuteltiples Documentos (MDI)
                                • 325Recursos Diaacutelogos Menus y Barras de Herramientas
                                  • 326 Notacioacuten estaacutendar
                                  • 327 Estructura de datos persistencia y recuperacioacuten
                                    • 328Patrones de disentildeo utilizados
                                      • 33 Diagrama de secuencias
                                        • 331Ciclo de vida del software
                                          • 34 Elementos atoacutemicos de la Gramaacutetica
                                            • 341 Representacioacuten visual
                                              • 35 Gramaacutetica desarrollada
                                              • 36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias
                                                  • Capitulo 4 Pruebas y Resultados
                                                    • 41 Recursos teacutecnicos utilizados
                                                    • 42 Descripcioacuten del plan de pruebas
                                                    • 43 Resultados
                                                      • 431 Caso
                                                      • 432 Caso2
                                                      • 433 Caso
                                                          • Conclusiones y trabajos futuros
                                                            • Trabajos futuros
                                                            • Referencias
                                                            • Anexo A Configuracioacuten de Microsoft Visual C+t
                                                              • Figura 11 - Arquitectura de la suite cenidet-UML
                                                              • Figura 21 -Programacioacuten Visual
                                                              • Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de
                                                              • Figura 32 -Diagrama de Casos de Uso para el S3C
                                                              • Figura 33 -Modelo Conceptual
                                                              • Figura 34 - Diagrama de Clases -Control del Diagrama -
                                                              • Figura 35 - Diagrama de Clases - Patroacuten Visitor -
                                                              • Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento
                                                              • Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)
                                                              • Figura 38 -Dialogo Caracteriacutesticas del Objeto
                                                              • Figura 39 -Dialogo Mensaje
                                                              • Figura 3 IO - Menuacute de los Diagramas de Secuencias (estaacutendar)
                                                              • Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias
                                                              • Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)
                                                              • Figura 313 - Serializacioacuten
                                                              • Figura 314 -Modelo de cascada del ciclo de vida del software
                                                              • Figura 41 - Resultado del caso de prueba
                                                              • Figura 42 -Resultado del caso de prueba
                                                              • Figura 43 -Resultado del caso de prueba
                                                              • Figura 44 -Resultado del caso de prueba
                                                              • Tabla 11 - Tabla comparativa
                                                              • Tabla 31 -Prefijos estaacutendar de identificadores
                                                              • Tabla 32 -Elementos atoacutemicos del lenguaje
                                                              • Tabla 41 - Resumen de los resultados de las pruebas realizadas

32 Elementos de la arquitectura

321 Microsoft Foundation Class (MFC)

322Arquitectura Documento Vista

323Integrando Ambientes en Visual c++ 324 Interfaz de Muacuteltiples Documentos (MDI)

325Recursos Diaacutelogos Menus y Barras de Herramientas

326 Notacioacuten estaacutendar

327 Estructura de datos persistencia y recuperacioacuten

328Patrones de disentildeo utilizados

33 Diagrama de secuencias

331Ciclo de vida del software

34 Elementos atoacutemicos de la Gramaacutetica

341 Representacioacuten visual

35 Gramaacutetica desarrollada

a -

Tabla de Contenido

36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias

Capitulo 4 Pruebas y Resultados

41 Recursos teacutecnicos utilizados

42 Descripcioacuten del plan de pruebas

43 Resultados

431 Caso 1

432 Caso2

433 Caso 3

434 Caso4

44 Anaacutelisis de resultados

Conclusiones y trabajos futuros

Conclusiones

Trabajos futuros

27

27

28

29

29

31

33

34

35

36

36

37

38

39

41

43

44

44

45

45

46

47

48 49

50 51 51

i

lt

11

i Referencias

Anexo A Configuracioacuten de Microsoft Visual C+t 60

Anexo B Guiacutea raacutepida de uso del sistema S3C

Tabla de Contenido

52 59

lt 111

Listado de Figuras

3

Figura 11 - Arquitectura de la suite cenidet-UML

Figura 21 -Programacioacuten Visual

Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de Secuencias Figura 32 -Diagrama de Casos de Uso para el S3C

Figura 33 -Modelo Conceptual

Figura 34 - Diagrama de Clases -Control del Diagrama -

Figura 35 - Diagrama de Clases - Patroacuten Visitor - Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento Vista Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)

Figura 38 -Dialogo Caracteriacutesticas del Objeto

Figura 39 -Dialogo Mensaje

Figura 3 I O - Menuacute de los Diagramas de Secuencias (estaacutendar)

Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias

Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)

Figura 313 - Serializacioacuten

Figura 314 -Modelo de cascada del ciclo de vida del software

Figura 41 - Resultado del caso de prueba 1

Figura 42 -Resultado del caso de prueba 2

Figura 43 -Resultado del caso de prueba 3

Figura 44 -Resultado del caso de prueba 4

Paacutegina

3

13

22

23

25

26

26

29

30

31

32

32

32

34

35

37

45

46 47

48

iv

Tabla 11 - Tabla comparativa

Tabla 31 -Prefijos estaacutendar de identificadores

Tabla 32 -Elementos atoacutemicos del lenguaje

Tabla 41 - Resumen de los resultados de las pruebas realizadas

Listado de Tablas

Paacutegina

6 33

38 49

V

Notacioacuten

La siguiente es la notacioacuten de la que se haraacute uso

ltCObjectgt

ltGetDocunteiztgt

MiClase MiMetodo

9 Liacutenea de Coacutedigo

Mensaje

Clase de la MFC ( Microsoft Fundation Class)

Meacutetodo de una clase de la MFC

Clase desarrollada Meacutetodo de una clase desarrollada

Liacutenea o Bloque de coacutedigo

Elemento del Diagrama de Secuencia

vi

I Introduccioacuten

L~ tesis se enfoca hacia el desarrollo de sistemas de software centrados en el modelado mediante diagramas de secuencias definidos por el Lenguaje de Modelado Unificado (UML) La investigacioacuten y el producto de la tesis estaacuten inmersos en la etapa del disentildeo de sistemas de software

El producto (prototipo) de la tesis denominado S3C permite la obtencioacuten de diagramas de secuencias de UML tomando como base la informacioacuten de un diagrama de clases y de varios documentos modelados con diagramas de Wamier (disentildeo detallado de los meacutetodos)

Para la elaboracioacuten de los diagramas de clases se hace uso del ambiente existente InverSOODA [HER03] Y para el modelado de los documentos Wamier se ha tomado el ambiente InverDDVi [WEN02] Ambos ambientes visuales son productos de tesis anteriores y se han integrado en un solo prototipo denominado SCUML (Suite cenidet - UML)

(i

S3C realiza un proceso automaacutetico para la obtencioacuten de los diagramas de secuencias en este proceso solo se requiere indicar el diagrama de clases del que se basaraacute La construccioacuten de los diagramas de secuencias en S3C estaacute soportada con una gramaacutetica visual relacional El propoacutesito de la gramaacutetica es validar la construccioacuten de los diagramas de secuencias de UML

En el aacutembito de los diagramas de secuencias de UML no existen aplicaciones comerciales oacute proyectos educativos que se apoyen en una gramaacutetica visual para soportar la construccioacuten de los diagramas de secuencias y tampoco existen aplicaciones que permitan a partir de los diagramas de clases y del disentildeo detallado de los meacutetodos generar automaacuteticamente los diagramas de secuencias

3

Los temas relacionados a esta tesis son Modelado de Sistemas UML Interfaz de Usuario Programacioacuten Orientada a Objetos y Gramaacuteticas Visuales

El capiacutetulo 1 es de conceptos generales se dan a conocer los antecedentes del proyecto los trabajos relacionados hipoacutetesis alcances y limitaciones

En el capiacutetulo 2 se define el marco teoacuterico de la tesis se describen temas como Modelado de sistemas de software disentildeo de sistemas de software modelado visual lenguajes visuales programacioacuten orientada a objetos y lenguaje de modelado unificado

El capiacutetulo 3 describe el desarrollo del ambiente visual se detalla el modelo conceptual la arquitectura y sus elementos los diagramas de secuencias y la gramaacutetica visual relacional que se desarrolloacute

En el capiacutetulo 4 se muestran los casos de pruebas y los resultados obtenidos Y al final se establecen las conclusiones y se dan propuestas para algunos trabajos futuros 3

1

Capiacutetulo I

Conceptos generalis

En eacuteste capiacutetulo se dan a conocer los antecedentes del proyecto de tesis los trabajos relacionados el problema que resolveraacute la hipoacutetesis a comprobar los alcances y limitaciones

Conceptos generales

11 Antecedentes

Actualmente en el cenidet (Centro Nacional de Investigacioacuten y Desarrollo Tecnoloacutegico) se trabaja en la construccioacuten de un conjunto de ambientes visuales para dar soporte al desarrollo con diagramas que define el estaacutendar UML para elaborar sistemas de software de manera completa raacutepida y eficaz El ambiente de modelado principal se ha denominado suite cenidet-UML y su arquitectura general se muestra a continuacioacuten en la Figura 11

Arquitectura de la suite cenidet-UML

Figura 11 Arquitectura de la suite cenidet-UML

a El producto de software resultante de eacutesta tesis lleva por nombre S3C y como se indica en la figura 11 Las tesis directamente relacionadas son InverSOODA [HER03] e

InverDDVi [WEN02]

InverSOODA (Sistema Orientado a Objetos para Disentildeo y Anaacutelisis incluyendo Ingenieriacutea Inversa) es un Ambiente Visual que permite la elaboracioacuten de diagramas de clases de un sistema de software Los diagramas de clases son una vista estaacutetica y en ella se describe las relaciones que existen entre las entidades llamadas clases Cada una de las clases se divide en tres partes nombre de la clase meacutetodos y atributos Este ambiente permite generar el coacutedigo fuente en lenguaje C++ de un diagrama construido y tambieacuten aplicando la ingenieriacutea inversa es posible obtener un diagrama a partir de un coacutedigo en C++ existente

InverDDVi (Disentildeo Detallado Visual incluyendo Ingenieriacutea Inversa) es un Ambiente Visual cuyo objetivo es apoyar en la elaboracioacuten de diagramas de disentildeo detallado utilizando una notacioacuten basada en Warnier Los diagramas de Warnier sirven para describir una secuencia loacutegica de acciones y mediante su simbologiacutea se logra plasmar definiciones de meacutetodos llamadas a otros meacutetodos ciclos comparaciones lectura de informacioacuten y escritura de informacioacuten Este ambiente permite generar el coacutedigo fuente en C de un diagrama construido y tambieacuten aplicando la ingenieriacutea inversa se puede obtener un diagrama de Warnier a partir de un coacutedigo en C que ya exista

i

3

Conceptos generales

12 Trabajos relacionados

Rational Rose de Rafional

Una de las herramientas mas populares del mercado que utiliza la notacioacuten UML y tiene la capacidad de reingenieriacutea de software para integrar sistemas existentes capacidad de mezclar diferentes lenguajes dentro de un mismo modelo ademaacutes de ingenieriacutea inversa sobre los componentes COM (Component Object Model) ActiveX y Java y con soporte de las arquitecturas MicrosoWCOM y CORBAIDL (The Common Object Request Broker Architecture)

Con Rational Rose se puede trabajar en grupo con capacidades para modelar y visualizar procesos de negocios y requerimientos de sistemas Tiene soporte para generar esquemas objetos-relaciones de bases de datos para realizar anaacutelisis de datos Cuenta con el soporte para analizar sitios Web en ASP (Active Server Pages) y JSP (Java Server Pages) Ademaacutes soporta los lenguajes Java CC++ Visual CC++ [RAT02] 9

SI -

Visio de Microsoft

Visio Enterprise 2002 permite crear diferentes tipos de diagramas como son

1 Diagramas de flujo 2 Planos de oficinas 3 Diagramas de aacuterbol 4 Diagramas de organizacioacuten 5 Liacuteneas de tiempo 6 Mapas geograacuteficos y direccionales 7 Diagramas de sitios Web 8 Diagramas de red 9 Diagramas de UML

Tiene las siguientes caracteriacutesticas diagramacioacuten e importacioacuten de servicios de directorio reingenieria de bases de datos disentildeo y documentacioacuten de bases de datos diagramacioacuten de software ingenieriacutea directa e inversa de coacutedigo replicacioacuten exacta por medio de diagramas de equipos y configuraciones de red diagramacioacuten automatizada y ambiente colaborativo

Visio da un conjunto completo de herramientas de diagramacioacuten de redes para planear y documentar claramente las redes existentes Ademaacutes para crear esquemas eleacutectricos mecaacutenicos y de procesos pueden crearse diagramas complejos con facilidad y poco entrenamiento

A las aplicaciones existentes se les puede realizar la ingenieriacutea inversa para obtener el disentildeo y tambieacuten crear nuevos disentildeos Proporciona herramientas para crear diagramas de bases de datos y es posible realizar ingenieriacutea inversa de esquemas existentes en bases de datos cliente servidor como SQL Server IBM Oracle y otros [MIC02]

4

Conceptos generales

e JVision 21 de Object Insight

JVision permite en la ingenieriacutea directa la creacioacuten de clases variables y meacutetodos con lo cual genera plantillas de coacutedigo para programadores en Java Los diagramas se pueden exportar a HTML La documentacioacuten puede integrarse con JavaDoc de Sun JVision da el soporte para ingenieriacutea inversa para el lenguaje Java

Se pueden crear todos los diagramas definidos por UML en los diagramas de secuencias da la oportunidad de dibujar clases liacuteneas liacuteneas de tiempo de vida y marca de destruccioacuten de objetos ofrece ademaacutes el soporte para las acciones de llamada regresar valor enviar accioacuten crear accioacuten y eliminar accioacuten [OBJO2]

MagicDraw 6 de No Magic

Es una herramienta CASE con soporte para trabajo en grupo Esta disentildeado para analistas 6 de negocios analistas de software programadores ingenieros de calidad y

documentadores Esta aplicacioacuten provee la capacidad para crear los diagramas definidos por UML (soporta UML 14) Cuenta con el soporte de ingenieriacutea inversa y generacioacuten de coacutedigo para C++ C Java y CORBNIDL Tiene integracioacuten con NetBeans se actualiza automaacuteticamente disponible en aacuterabe portugueacutes franceacutes italiano ingles (US) alemaacuten espantildeol japoneacutes y coreano

Tiene la caracteriacutestica de soportar la adaptacioacuten de los elementos a colores que el usuario defina Los diagramas pueden exportarse a imaacutegenes JPG EMF WMF EPS y DXF En los diagramas de secuencia da oportunidad de definir roles textos notas mensajes de varios tipos al mismo objeto recursivo ademaacutes de la relacioacuten a las notas y las liacuteneas de vida Es posible guardar los diagramas como imaacutegenes de mapas de bits o vectores Mantiene ademaacutes una vista pequentildea a escala del diagrama completo [NoA402]

e

SmariDraw Professional Plus de SmariDraw

Todos los dibujos pueden agregarse en las aplicaciones de Microsoft como son Word Excel PowerPoint Contiene maacutes de 50000 (1000 en la versioacuten estaacutendar) formas predefinidas ejemplos y plantillas Los diagramas pueden ser exportados a imaacutegenes WMF BMP JPG GIF TIF y otros Incluye un convertidor de archivos de VISIO

Con esta herramienta es posible crear diagramas de flujo diagramas de bloque diagramas de flujos de datos diagramas de organizacioacuten aacuterboles de decisioacuten disentildeo de redes Gantt diagramas de flujo de procesos diagramas de administracioacuten de calidad diagramas eleacutectricos diagramas mecaacutenicos diagramas quiacutemicos liacuteneas de tiempo planes de espacio posters mapas formas y tambieacuten da soporte para UML es posible dibujar objetos actores activacioacuten de los objetos mensaje mensaje de retorno mensaje asiacutencrono mensaje con tiempo liacutenea de vida del objeto marca de destruccioacuten del objeto y ciclos (descrito con un rectaacutengulo y una condicioacuten de salida) [SMA02]

5

Conceptos generales

Producto Soporta Diagramas de UML Secuencias

Creacioacuten automaacutetica de diagramas de

El Rational Rose El Visio

Jvision

Magic D r a w

a a El Fl El a El El

I ~

I ~

I -

Ambiente de modelado de

a a SmartDraw El

Tabla I Tabla comparativa

Todas las herramientas descritas anteriormente cuentan con caracteriacutesticas sobresalientes para el disentildeo y modelado de sistemas de software pero ninguna de ellas genera automaacuteticamente los diagramas de secuencia con base en los diagramas de clases y el disentildeo detallado de los meacutetodos asiacute tambieacuten ninguna de ellas realiza un caacutelculo de los canales de comunicacioacuten abiertos entre las clases que conforman el sistema

iexcla la A UML Editor in Java

13 Definicioacuten del problema

El modelado de sistemas utilizando el estaacutendar de UML en diversos productos comerciales prototipos de laboratorio elaborados en universidades y centros de investigacioacuten atienden la perspectiva baacutesica de la abstraccioacuten general del modelo esto es documentar el modelo del sistema que se requiere sin atender puntos importantes tales como

La generacioacuten automaacutetica de los diagramas de secuencias La correccioacuten de inconsistencias en los diagramas al crearlos de forma separada

El

6

sistemas de software

secuencias utilizando diagramas de a a a

Conceptos generales

Se hace necesaria la creacioacuten de un ambiente visual que permita obtener de forma automaacutetica los diagramas de secuencias en base a los diagramas de clases y al disentildeo detallado de los meacutetodos para facilitar la documentacioacuten la generacioacuten de coacutedigo y el mantenimiento de los sistemas

La obtencioacuten de los diagramas de secuencias estaacute basada en los Diagramas de Clases definidos por UML que son construidos con la herramienta InverSOODA junto con el disentildeo detallado de los meacutetodos construidos con Diagramas de Wamier elaborados con la herramienta InverDDVi

En el estaacutendar UML para la construccioacuten de los diagramas no existe actualmente una sintaxis expliacutecita definida solo existe impliacutecitamente en el uso de los elementos del diagrama por lo que se ha descrito una gramaacutetica visual de tipo relaciona1 como soporte para la construccioacuten de los Diagramas de Secuencias

n ai 14 Objetivo de la Tesis

Construir un ambiente visual que permita al usuario obtener el diagrama de secuencias de manera automaacutetica

141 Objetivos especiacuteficos de la tesis Crear una gramaacutetica que soporte la construccioacuten del diagrama de secuencias Construir de forma automaacutetica el diagrama de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodos

15 Hipoacutetesis de investigacioacuten

Es posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodos

16 Alcances y limitaciones del trabajo de tesis

Los alcances de la tesis se especifican a continuacioacuten

Se elaboroacute la arquitectura del sistema Se definioacute la gramaacutetica de soporte Se desarrolloacute la interfaz en Visual C++ haciendo uso de las MFC Se interactuacutea con los diagramas de clases de InverSOODA Se interachiacutea con el disentildeo detallado de los meacutetodos realizados por InverDDVI Se genera el diagrama de secuencias de forma automaacutetica

7

Conceptos generales

Limitaciones de la tesis

0 No se genera coacutedigo

La investigacioacuten se limita a los diagramas de clases para la vista estaacutetica de los sistemas de software y a los diagramas de Warnier para la vista dinaacutemica de los meacutetodos El ambiente no trabaja en red

No se modifican los archivos de InverSOODA No se modifican los archivos de InverDDVI No se recuperan diagramas de secuencias a partir de coacutedigo legado

4

8

Capiacutetulo 2

Narc0 teoacuterico

En eacuteste capiacutetulo se describen los temas usados para el desarrollo de la tesis iquestQue son los modelos iquestEn que parte del proceso de Ingenieriacutea del Software se usan los modelos o el modelado Se estudia la interfaz de usuario los lenguajes visuales y las gramaacuteticas visuales Se describe el Lenguaje de Modelado Unificado (UML) ademaacutes de la programacioacuten orientada a objetos por ser este paradigma en donde se enfoca este trabajo

Marco teoacuterico

21 Modelado de sistemas de software

un modelo es una abstraccioacuten de algo con el propoacutesito de entenderlo antes de construirlo El modelo omite detalles no esenciales haciendo maacutes faacutecil su manipulacioacuten que la entidad original [BLA98] Un modelo es la simplificacioacuten de la realidad [RUM99] Los propoacutesitos de los modelos son

Probar una entidad fisica antes de construirla Establecer mejor comunicacioacuten con los clientes Visualizar el problema y el sistema desde una mejor perspectiva Reducir la complejidad [BLA98] Capturar y precisar requerimientos y conocimiento del dominio Pensar acerca del disentildeo del sistema Capturar decisiones de disentildeo en una fomia separada que cambia a partir de los requerimientos Generar productos Organizar buscar filtrar obtener examinar y editar informacioacuten acerca de un sistema Explorar muacuteltiples soluciones econoacutemicas Manejar sistemas complejos [RUM99]

El modelado es una probada y bien aceptada teacutecnica de Ingenieriacutea de Software [RUM99] El modelado es parte central de todas las actividades que conducen a la produccioacuten de buen software Se construyen modelos para comunicar la estructura deseada y revisar el comportamiento de nuestro sistema Se construyen modelos para visualizar y controlar la arquitectura del sistema Se construyen modelos para comprender mejor el sistema que estamos construyendo muchas veces descubriendo oportunidades para la simplificacioacuten y la reutilizacioacuten Se construyen modelos para controlar el riesgo [BOO99] La razoacuten fundamental por la que modelamos es porque nosotros construimos modelos que nos ayudan a entender mejor el sistema que estamos desarrollando [RUM99]

El modelado nos permite [RUM99] 1 Visualizar como es el sistema o como queremos que sea 2 Especificar la estructura del sistema 3 Plantear nuestras guiacuteas en la construccioacuten delsistema 4 Documentar las decisiones que hemos tomado

En las etapas del desarrollo del software el modelado es usado en el disentildeo el disentildeo del sistema es la primera etapa en donde se da la aproximacioacuten baacutesica de la solucioacuten al problema seleccionado ademaacutes se decide por la estructura (arquitectura del sistema) y el estilo de la solucioacuten

La arquitectura del sistema provee el contexto sobre el cual se tomaraacuten decisiones mas detalladas en las etapas subsecuentes del disentildeo [BLA98] En el disentildeo modelamos el sistema y encontramos su forma (incluida la arquitehra) para que soporte todos los 3 -

10

Marco teorico

i

4 -I

requisitos -incluyendo los requisitos no funcionales y otras restricciones- que se le suponen [JAC99] Los propoacutesitos del disentildeo son

Adquirir una comprensioacuten en profundidad de los aspectos relacionados con 10s requisitos no funcionales y restricciones relacionadas con los lenguajes de programacioacuten componentes reutilizables sistemas operativos tecnologiacuteas de distribucioacuten y concurrencia tecnologiacuteas de interfaz de usuario tecnologiacuteas de gestioacuten de transacciones etc Crear una entrada apropiada y un punto de partida para actividades de implementacioacuten subsiguientes capturando los requisitos o subsistemas individuales interfaces y clases Ser capaces de descomponer los trabajos de implementacioacuten en partes mas manejables que puedan ser llevadas a cabo por diferentes equipos de desarrollo teniendo en cuenta la posible concurrencia Capturar las interfaces entre los subsistemas Esto ayuda cuando reflexionamos sobre la arquitectura y cuando utilizamos interfaces como elementos de sincronizacioacuten entre diferentes equipos de desarrollo Ser capaces de visualizar y reflexionar sobre el disentildeo utilizando una notacioacuten comuacuten Crear una abstraccioacuten independiente de la implementacioacuten del sistema en el sentido de que la implementacioacuten es un refinamiento directo del disentildeo que rellena lo existente sin cambiar la estructura Esto permite la utilizacioacuten de tecnologiacuteas como la generacioacuten de coacutedigo y la ingenieriacutea de ida y vuelta entre el disentildeo y la implementacioacuten [JAC99]

22 Interfaz de usuario (Mecanismos de interaccioacuten)

El crecimiento de las computadoras personales vendidas en los ~ O rsquo S lanzoacute con fuerza el ldquofaacutecil de usarrdquo como una de las caracteriacutesticas mas importante de un producto de computadora

Las interfaces graacuteficas de usuario no son nuevas se pueden encontrar en las paredes de cuevas al sur de Francia en las piraacutemides de Egipto y en las paredes de muchas ciudades [iUM92] Para el usuario de un sistema interactivo la comunicacioacuten es tan importante como la computacioacuten Para los usuarios regularmente la interfaz es el sistema [HIX93]

Disentildeo de Interfaz Seguacuten Hackos [HAC98] las interfaces estaacuten en todo donde se trabaja con

o Controles en productos de hardware o Etiquetas y sentildeales en el hardware o Pequentildeas pantallas de cristal liquido en maacutequinas de cualquier tipo o Pantallas para aplicaciones de software para terminales de computadoras centrales

Marco teoacuterico

o pantallas para aplicaciones de software en computadoras Personales sistemas operativos como Windows OS2 DOS Macintosh U n b Y Otros

0 Paacuteginas de un sitio WEB 0 Sistemas de ayuda y manuales en-liacutenea 0 Tutoriales incrustados y otros tipos de soporte de funcionamiento O Esquemas de formas y otros documentos

una interfaz es el medio con el cual los usuarios interactuacutean con el producto 0

sistema para lograr SUS objetivos

Interfaz Usable

Para que una interfaz sea usable debe ser transparente y darles a los usuarios la capacidad de lograr cumplir sus metas de forma efectiva y eficiente

Los beneficios presentados en el uso de las interfaces de usuario [TH190] Disfrutar el sistema El usuario disfruta trabajar con un sistema que cuenta con una interfaz bien disentildeada y que le da la funcionalidad y acceso a los recursos de una manera clara y sencilla Proporciona nuevas habilidades Elimina al usuario concentrarse en acciones que la propia interfaz y el sistema hacen dando como resultado que el usuario solo se concentre en lo importante del trabajo Delegacioacuten de tareas La interfaz de usuario permite al usuario no conocer los detalles de la tarea esto es la computadora atiende los detalles de las tareas mientras que el usuario se concentra en asuntos de maacutes alto nivel Seguridad El usuario no necesita estar en lugarespeligrosos para hacer su trabajo

Se da la mayor posibilidad para que el usuario tenga acceso al conocimiento utilizando un sistema interactivo Haciendo las cosas a la primera Las tareas se ejecutan en un orden correcto definido lo que da como resultado un trabajo bien terminado sin necesidad de repetir evitando asiacute altos costos Computando LOS usuarios pueden calcular datos sin necesidad de conocer el proceso para obtener los resultados

Desarrollo

El disentildeo de interfaz es un negocio bastante dificil Eacuteste combina dos complicadas disciplinas psicologiacutea y ciencias de la computacioacuten Estas disciplinas tienen un fondo cultural muy diferente la psicologiacutea atiende a la gente (comprensioacuten y entendimiento) las ciencias computacionales a las maacutequinas (matemaacuteticas y precisioacuten) El disentildeo de las buenas interfaces requiere que estas dos perspectivas esteacuten unidas [THi90]

Hackos dice que las interfaces dan simplicidad y elegancia al trabajo necesario y a la vida e los usuarios Si no es obvio al usuario pero es raacutepida para aprender [HAC98] ademaacutes define caracteriacutesticas comunes de las interfaces usables

o Hacen que el flujo de trabajo sea familiar o confortable o Soportan el estilo de aprendizaje de los usuarios

12

Marco teoacuterico

Visualizacioacuten de Entrenamiento visual Para controlar Soportar interaccioncs Programar con informacioacuten visual visuales expresiones visuales

o Compatibles con los ambientes de trabajo de los usuarios o Se extienden sobre un concepto de disentildeo que es familiar al usuario o Tienen consistencia de presentacioacuten que los hace parecer maacutes confiable y faacuteciles de

aprender o Usan lenguaje y figuras familiares al usuario o faacuteciles de aprender

Datos o informacioacuten acerca de datos

23 Lenguajes Visuales

Los lenguajes visuales son un nuevo paradigma para expresar los sistemas computacionales Ellos ofrecen la posibilidad de manipular directamente los objetos Un lenguaje visual consiste de sentencias visuales Para lenguajes visuales basados en iacuteconos cada sentencia visual es un arreglo espacial de objetos O iacuteconos graacuteficos [CHA90]

Un lenguaje visual es concebido como una coleccioacuten de figuras obtenidas por un arreglo graacutefico de objetos en dos o maacutes dimensiones Los lenguajes visuales pueden ser modelados sintaacutecticamente a traveacutes de un vocabulario un conjunto de relaciones usadas para componer las figuras y un conjunto de reglas describiendo las figuras pertenecientes al lenguaje Los objetos graacuteficos de un vocabulario de un lenguaje visual se caracterizan por contar con un conjunto de atributos Los atributos de un objeto graacutefico pueden ser atributos graacuteficos atributos sintaacutecticos y atributos semaacutenticos [MAR98]

Un lenguaje de programacioacuten visual puede ser informalmente definido como un lenguaje el cual usa algunas representaciones visuales [SHV88]

Programa ylo Disentildeo de Lenguajes de programacioacuten visual ejecucioacuten software Diagramas iconos Formas

Programacioacuten Visual [SHU88]

Gramaacuteticas para la especificacioacuten de lenguajes visuales [MAR98]

a) Gramaacuteticas texfuales generalizadas Este tipo de gramaacutetica provee una adaptacioacuten apropiada de la concatenacioacuten de siacutembolos para dos dimensiones Su principal ventaja es que conservan los elementos teoacutericos de las gramaacuteticas textuales y los eficientes algoritmos de anaacutelisis de eacutestos uacuteltimos Su principal desventaja es que eacutestas gramaacuteticas no son tan poderosas y soacutelo pueden especificar clases restringidas de lenguajes visuales

13

Marco teorico

b) Meacutetodos basados en gramaacuteticas de grafos Un ejemplo de este tiPo de gramaacuteticas son las gramaacuteticas de red Las oraciones generadas con gramaacuteticas de red son grafos dirigidos con siacutembolos en los nodos Estos grafos son llamados redes Una produccioacuten de eacuteste tipo de gramaacuteticas es de la siguiente forma

a - t p E

donde a y p son redes y E es una forma de conectar a p cuando a es conectada a otra red anfitriona

La mayor desventaja es que las gramaacuteticas de red no han probado ser totalmente uacutetiles para la especificacioacuten de gramaacuteticas arbitrarias por la complejidad para rescribir grafos y al hecho de que no todo lenguaje visual estaacute compuesto exclusivamente por grafos

C) Gramaacuteticas de multiconjuntos de atributos En estas gramaacuteticas las producciones rescriben conjuntos o multiconjuntos de siacutembolos que tienen atributos con informacioacuten sobre geometriacutea o semaacutentica La reescritura se controla con restricciones sobre los atributos de los siacutembolos en el lado derecho de las producciones

Un ejemplo de eacutestas gramaacuteticas es la Gramaacutetica Coordinada que especifica notacioacuten matemaacutetica de dos dimensiones En esencia las producciones en una gramaacutetica coordinada n-coordinada libre del contexto tienen la siguiente forma

A -t a donde C F

Todos los siacutembolos de eacuteste tipo de gramaacutetica tienen n atributos geomeacutetricos A es un siacutembolo no terminal a es una cadena no vaciacutea de siacutembolos C es una restriccioacuten sobre los atributos de los siacutembolos en a y F es una expresioacuten que computa los atributos de los siacutembolos de A en teacuterminos de los atributos de los siacutembolos en a no importando el orden de los siacutembolos en a

d) Gramaacuteticas PosicionaZes Las gramaacuteticas posicionales son un formalismo para la definicioacuten e implementacioacuten de lenguajes visuales las gramaacuteticas posicionales extienden naturalmente a las gramaacuteticas libres de contexto Una gramaacutetica libre de contexto posicional PG es una six-tupla (N T S P POS PE) donde

N es un conjunto finito no vaciacuteo de siacutembolos no terminales T es un conjunto finito no vaciacuteo e siacutembolos terminales con N n T = $I S E N es el siacutembolo no terminal de inicio P es un conjunto finito de producciones POS es un conjunto finito de identificadores de relacioacuten binaria PE es un evaluador pictoacuterico

14

Marco teorico

Cada produccioacuten en P tiene la siguiente forma

A -+ X I R I X R2 X ~ I Rm1 xm A

e) Gramaacuteticas de Relacioacuten de siacutembolos Eacuteste es un formalismo sintaacutectico para describir un lenguaje visual donde cada oracioacuten dentro del lenguaje se representa como un conjunto de objetos visuales y un conjunto de relaciones entre objetos

El alfabeto de siacutembolos Vt y el conjunto de relaciones entre siacutembolos Vr una oracioacuten de relacioacuten de siacutembolos w sobre Vt y Vr es un par ( M R) donde

M es un conjunto de elementos-s (v i) con v E Vt y i es un nuacutemero natural R es un conjunto de elementos-r de la forma r (Xi Yj) con Xi Yj E M r E Vr y una relacioacuten r esta contenida entre Xi y Yj

Una gramaacutetica de relacioacuten de simbolos es el conjunto de seis elementos G = (Vn Vt Vr S P R) donde Vn es un conjunto de siacutembolos no terminales Vt es un conjunto de siacutembolos terminales Vr es un conjunto de relaciones entre siacutembolos S es el siacutembolo inicial y P es un conjunto de reglas de reescritura (producciones de elementos-s)

f) Gramaacuteticas relacionales Este tipo de gramaacutetica pertenecen a las gramaacuteticas libres de contexto

La gramaacutetica relaciona1 (RGrsquos) es una 6-tupla G (N C S R Attr P) donde

N C S R Attr P

es un conjunto finito de siacutembolos no terminales es un conjunto de siacutembolos terminales es un siacutembolo distinguido en N llamado siacutembolo inicial es un conjunto finito de siacutembolos de relacioacuten es un conjunto finito de siacutembolos de atributos es un conjunto de producciones de la forma A-gt apF donde A E N a E (nlo)+ Donde n E N cr E E

8 Es un conjunto de relaciones de la forma (r x y) donde r E R y xy son enteros que hacen referencia a un miembro de a y tambieacuten una expresioacuten de la forma (a i) donde a E Attr e i es un entero que hace referencia a un miembrode a

F Es un conjunto de declaraciones de asignacioacuten de caracteriacutesticas de la forma (a O)=x donde a E Attr y x es un entero que hace referencia a un miembro de a o a una expresioacuten de la forma (a i)

15

Marco teoacuterico

24 Programacioacuten orientada a objetos

L~~ meacutetodos orientados a objetos organizan la informacioacuten Y el procesamiento que manipula esta informacioacuten de acuerdo a los objetos delrsquomundo real que la informacioacuten describe [BRO97l

Beneficios de las teacutecnicas orientadas a objetos [BR097] Estabilidad del sistema Mantenibilidad Componentes reusables Confiabilidad Accesibilidad de los datos Participacioacuten del usuario

Seguacuten Graddy Booch la programacioacuten orientada a objetos es ldquoun meacutetodo de implementacioacuten en el que los programas se organizan como colecciones cooperativas de objetos cada uno de los cuales representan una instancia de alguna clase y cuyas clases son todas miembros de una jerarquiacutea de clases unidas mediante relaciones de herenciardquo [JOY 981

Programacioacuten orientada a objetos esencialmente significa programacioacuten usando objetos [JAC93] Los lenguajes orientados a objetos deben soportar los siguientes conceptos

Objetos Abstraccioacuten de datos Encapsulamiento Clases e Instancias Herencia entre clases Polimorfismo

Las propiedades fundamentales de la Programacioacuten Orientada a Objetos son

a Abstraccioacuten Son ideas conceptos y propiedades que se describen en forma general eliminando los detalles Es una estructura de datos y los meacutetodos que manipulan a esos datos

b Encapsulamiento Son las fronteras propias de un objeto bien definidas las cuales protegen los detalles de su representacioacuten interna

c Ocultacioacuten de la informacioacuten Es la propiedad en la que los objetos pueden hacer uso para impedir que otros objetos los usuarios o incluso los programadores conozcan coacutemo estaacute distribuida la informacioacuten

d Herencia Es la propiedad que tiene una clase para heredar atributos y comportamiento a otras clases

e Polirnorfismo Es la propiedad que permite que una entidad pueda cambiar a diferentes formas efectuaacutendose de manera dinaacutemica en tiempo de ejecucioacuten

16

Marco teoacuterico

t

Clases Es la especificacioacuten de una familia de objetos es la declaracioacuten de un tipo de objetos Tambieacuten se dice que una clase es la descripcioacuten de un conjunto de objetos con un comportamiento similar y que esta compuesta de Datos (o atributos) y Meacutetodos o (rutinas acciones operaciones)

Objeto Un objeto es una entidad en la cual se almacenan datos y los meacutetodos o funciones que controlan dichos datos Un objeto es una abstraccioacuten de alguna cosa del mundo real que contiene datos que lo describen y operaciones que solo tienen acceso a esos datos [BR097l Los elementos de los que esta conformado un objeto son

a Las relaciones permiten que el objeto se integre en la organizacioacuten b Las propiedades son los datos que caracterizan el estado de un objeto distinguiendo

asiacute a un objeto determinado de los restantes que forman parte de la misma organizacioacuten

c Los meacutetodos son las operaciones que pueden realizarse sobre la estructura del objeto es decir las acciones que cambian el estado de un objeto y que el objeto es capaz de ejecutar a traveacutes de mensajes y que tambieacuten pone a disposicioacuten de sus descendientes a traveacutes de la herencia

Mensajes Son solicitudes para que se lleve a cabo la operacioacuten indicada y se produzca un resultado

Las razones principales para introducir la tecnologiacutea de objetos son los beneficios de dicha tecnologiacutea

Aumento de la fiabilidad Aumento de la productividad del desarrollador Desarrollo maacutes raacutepido Mejor calidad maacutes alta

Incremento en escalabilidad Mejores estructuras de informacioacuten Incremento de adaptabilidad Reduccioacuten del coacutedigo fuente

Mantenimiento maacutes faacutecil y reduccioacuten de costo

Los elementos de reutilizacioacuten son las clases y objetos

25 Lenguaje de Modelado Unificado (UML)

UML (Unified Modeling Language por sus siglas en ingleacutes Lenguaje de Modelado Unificado) es un lenguaje de modelado visual de propoacutesito general que es utilizado para especificar visualizar construir y documentar las partes de un sistema de software El lenguaje estaacute basado en un pequentildeo nuacutemero de conceptos centrales que la mayoriacutea de los desarrolladores de tecnologiacutea orientada a objetos pueden aprender y aplicar faacutecilmente [RUM99]

17

Marco teoacuterico

y UML Pasado Presente y Futuro

L~~ lenguajes de modelado orientado a objetos aparecieron a mediados de 10s 70rsquos Varias teacutecnicas influenciaron estos lenguajes El nuacutemero de lenguajes de modelado incrementoacute desde menos de 10 hasta maacutes de 50 entre 1989 y 1994 Muchos modeladores teniacutean problemas para encontrar un lenguaje de modelado que satisficiera todas sus necesidades Notablemente aparecioacute Boochrsquo93 y la evolucioacuten continuoacute a OMT y Fusioacuten

OOSE (Object-Oriented Software Engineering) estaacute enfocado a la ingenieriacutea de negocios y anaacutelisis de requerimientos dando un excelente soporte orientado a casos de uso OMT-2 es especialmente expresivo para anaacutelisis y sistemas de informacioacuten de datos grandes Boochrsquo93 fue particularmente expresivo para el disentildeo y fases de construccioacuten de proyectos y popular para aplicaciones de ingenieriacutea intensiva

Grady Booch y Jim Rumbaugh iniciaron el desarrollo de UML en 1994 al unificar sus meacutetodos independientes Booch y OMT En 1995 Ivar Jacobson se unioacute a Racional eacutesta unioacuten logroacute que el meacutetodo OOSE se incorporara La unificacioacuten establecioacute que debiacutean activar el modelado de sistemas utilizando conceptos orientados a objeto asiacute como crear un lenguaje usable tanto para las maacutequinas como para los humanos

A

Muchas organizaciones se unieron al consorcio UML y dedicaron recursos al trabajo hacia el fortalecimiento de la definicioacuten de UML Esta colaboracioacuten produjo un lenguaje de modelado expresivo poderoso y generalmente aplicable En la forma actual de UML se espera que sea base de muchas herramientas incluidas las de modelado visual simulacioacuten y ambientes de desarrollo

R UML es abierto y no-propietario y aunque define un lenguaje preciso no es barrera para futuras mejoras en conceptos de modelado Se usan muchas teacutecnicas de punta pero se esperan teacutecnicas adicionales que influencien futuras versiones de UML puede ser extendido sin redefinir el nuacutecleo

c

Mientras el rehuacuteso basado en componentes se ha favorecido ampliamente cada vez mas esto no significa que las teacutecnicas basadas en componentes reemplazaraacuten las teacutecnicas orientadas a objetos Hay solo sutiles diferencias entre la semaacutentica de componentes y clases [ALC03]

Un opaco rendimiento caracterizoacute el mercado de anaacutelisis modelado y disentildeo en el 2000 en su transicioacuten de las viejas herramientas CASE (Computer Aided Software Engineering) a algo maacutes dinaacutemico y mejor adaptado para satisfacer las necesidades de los desarrolladores para el cambio raacutepido en los ambientes de negocio

El mercado de anaacutelisis modelado y disentildeo lograraacute obtener un crecimiento positivo en varios de los siguientes antildeos por varias razones El mercado seraacute manejado principalmente por la necesidad de desarrolladores a obtener aplicaciones para lanzarse al mercado raacutepidamente asiacute tambieacuten por el intereacutes creciente y uso de una nueva especie de herramienta y por el intereacutes creciente de los desarrolladores en usar UML reglas de negocios y adaptadores de componentes para construir aplicaciones [RIKUI]

z -

18

Marco teoacuterico

UML se ha hecho el estaacutendar para los desarrollos de modelado de negocios administracioacuten de requerimientos anaacutelisis y disentildeo programacioacuten y pruebas Los objetivos primarios de UML en el disentildeo [RAT97j

o Dar a los usuarios un lenguaje visual expresivo de modelado listo para usarse para que puedan desarrollar y cambiar los significados de sus modelos

o Suministrar mecanismos de extensibilidad y especializacioacuten para extender los conceptos centrales

o Ser independiente de lenguajes de programacioacuten particulares y procesos de desarrollo

o Impulsar el desarrollo de las herramientas Orientadas a Objeto en el mercado o Soportar conceptos de desarrollo de alto nivel como colaboracioacuten marcos de

componentes reutilizables patrones y componentes o Integrar las mejores praacutecticas

9 El aacutembito de UML

UML es un lenguaje para especificacioacuten construccioacuten visualizacioacuten y documentacioacuten de artefactos de un sistema de software UML es la fusioacuten de los conceptos de Booch OMT y OOSE El resultado es un simple comuacuten y ampliamente usado lenguaje de modelado para usuarios de estos y otros meacutetodos UML se enfoca en un lenguaje de modelado estaacutendar no en un proceso estaacutendar los autores de UML recomiendan un proceso de desarrollo manejado por casos de uso de arquitectura central iterativo e incremental [iiquest4T97l

Para la definicioacuten de sistemas de software en UML se definen diagramas Un diagrama es la representacioacuten graacutefica de un conjunto de elementos este se visualiza la mayoriacutea de las veces como un grafo conexo de nodos (elementos) y arcos (relaciones) Los diagramas se dibujan para visualizar un sistema desde diferentes perspectivas de forma que un diagrama es la proyeccioacuten de un sistema uumlML incluye nueve diagramas [B0099]

4 -

I Diagrama de clases 2 Diagrama de objetos 3 Diagrama de casos de uso 4 Diagrama de secuencias 5 Diagrama de colaboracioacuten 6 Diagrama de estados 7 Diagrama de actividades 8 Diagrama de componentes 9 Diagrama de despliegue

Diagramas de secuencias Un diagrama de secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten comportamiento

Un diagrama de secuencias muestra un conjunto de mensajes acomodados en una secuencia de tiempo eacuteste diagrama muestra la interaccioacuten en un esquema de dos - dimensiones [RUM99]

19

Marco teoacuterico

Y -

Un diagrama de secuencia es un diagrama de interaccioacuten que resalta la ordenacioacuten temporal de los mensajes Un diagrama de secuencia presenta un conjunto de objetos y los mensajes enviados y recibidos por ellos Los objetos suelen ser instancias (con nombre o sin nombres) de clases pero tambieacuten pueden representar instancias de otros elementos tales como colaboraciones componentes y nodos Los diagramas de secuencia se utilizan para describir la vista dinaacutemica de un sistema [B0099]

Usar los diagramas de secuencia es mostrar la secuencia que existe en un caso de uso [RUM 991

Los diagramas de secuencia tienen dos dimensiones Una dimensioacuten que representa el tiempo Otra dimensioacuten que representa los diferentes objetos que participan en la secuencia de eventos requeridos para completar el propoacutesito [MOuuml98]

El principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildea las interacciones de los objetos [DAN02]

20

Capiacutetulo 3

DesawoCCo de Ia herramienta

En este capiacutetulo se describe el desarrollo del Ambiente Visual Se describe el modelo conceptual del sistema la arquitectura asiacute como tambieacuten los elementos que componen la Arquitectura Se estudian los Diagramas de Secuencias de UML y algunos Patrones de Disentildeo de los que se hace uso para el mejor desarrollo del sistema Se describe a detalle la Gramaacutetica Visual Relaciona1 utilizada para el de Ambiente de desarrollo

I CENIOET 1FNTRO DE INFORMACION

Desarrollo de la herramienta

t i i

Actualmente existe en el cenidet un Ambiente Visual de Modelado de Clases llamado InverSOODA este Ambiente Visual tiene la capacidad de realizar la generacioacuten automaacutetica de coacutedigo de las clases en C++ a partir del modelo especificado Ademaacutes se puede realizar la Ingenieria Inversa de un coacutedigo legado para obtener el modelo de clases Aunado a este trabajo existe el Ambiente Visual denominado InverDDVi con el cual se puede realizar el Disentildeo Detallado de los Meacutetodos de las Clases con diagramas de Warnier Asiacute tambieacuten es posible obtener el modelo aplicando la Ingenieriacutea Inversa a un coacutedigo legado en C++

Ambos trabajos son retomados en este proyecto para la automatizacioacuten en la obtencioacuten de los Diagramas de Secuencias de UML La figura 31 muestra el modelo propuesto de ingenieriacutea directa

Extraer informacioacuten del diagrama de

rsquo rsquo

Diagrama de 11 clases I o

detallado de

detallado de

o meacutetodos

i ir---- Construir el

secuencias i

Modelo de Ingenieriacutea I directa automaacutetica

I

Figura 31 Modelo de Ingenieria Directa Autombtica de los Diagramas de Secuencias

Para la construccioacuten automaacutetica de un diagrama de secuencias se toma como base a un diagrama de Clases El modulo ldquoExtraer informacioacuten del diagrama de Clasesrdquo sirve para obtener el nombre y los meacutetodos descritos en cada uno de las clases que existan en el diagrama de Clases

22

Desarrollo de la herramienta

Con base en la informacioacuten que se tiene se abren los archivos correspondientes a los diagramas de Warnier El proceso que se emplea sobre cada uno los diagramas de Warnier llamado ldquoExtraer informacioacuten de los disentildeos detallados de los meacutetodosrdquo sirve para recopilar el conjunto de las llamadas de cada meacutetodo definido

En el siguiente paso (ldquoReconocer llamadas a meacutetodosrdquo) consiste en identificar si los meacutetodos que estaacuten descritos en los diagramas de Warnier tambieacuten lo estaacuten en el diagrama de Clases correspondiente

El paso ldquoConstruir los diagramas de secuencias automaacuteticamenterdquo realiza una validacioacuten de los meacutetodos definidos en los diagramas de Clases con los meacutetodos definidos en los diagramas de Warnier Este paso crea una estructura de datos con la secuencia de las llamadas y la recorre para crear los objetos y los mensajes en el diagrama de secuencias

AI terminar la creacioacuten automaacutetica del diagrama de secuencias se dispone de la r opcioacuten de guardar

31 Disentildeo de la Arquitectura

Para definir los procesos que el sistema va a realizar es necesario llevar a cabo un anaacutelisis de requisitos los cuales pueden ser expresados mediante diagramas de Casos de Uso Los Casos de Uso son una descripcioacuten textual narrativa de los procesos de un sistema

311Requisitos (Diagrama de Casos de uso)

Los casos de uso en realidad no son un artefacto de anaacutelisis orientado a objetos estos describen simplemente procesos y pueden ser igualmente efectivos en un proyecto tecnoloacutegico no orientado a objetos Son usados en un paso preliminar a la descripcioacuten de requerimientos de un sistema [LAR971 La Figura 32 muestra el diagrama de casos de uso que especifica al S3C

9

S3C (Diagramas de Secuencias)

usuario I Modelado de

I

Figura 32 Diagrama de Casos de Uso para el S3C

23

Desarrollo de la herramienta

Descripcioacuten de los Casos de Uso

Caso de Uso ldquoDiagramas de Secuenciasrdquo Se inicia cuando el actor ldquousuariordquo solicita la creacioacuten de un Diagrama de Secuencias Se establece la forma de la construccioacuten automaacutetica de los diagramas de secuencias de UML Se hace uso del Modelado de Clases y del Modelado del disentildeo detallado de los meacutetodos

Escenario de Eacutexito 1 Se obtiene la informacioacuten de las clases del modelado de clases 2 Se obtiene la informacioacuten del modelado del disentildeo detallado de los meacutetodos 3 Se realiza la construccioacuten automaacutetica de los diagramas de secuencias

1 En el modelo de clases no hay informacioacuten o estaacute incompleta 2 En el modelo del disentildeo detallado de los meacutetodos no hay informacioacuten o estaacute

incompleta

Escenario de Falla

Caso de Uso ldquoModelado de Clasesrdquo El diagrama de Clases se utiliza para obtener los nombres de clases y los nombres de los meacutetodos de cada clase

Escenario de Eacutexito 1 Se abre el modelo 2 Se procesa para obtener la informacioacuten de las clases (nombres de clases y nombres

de meacutetodos)

Escenano de Falla h 1 No se puede abrir el modelo J 2 El modelo esta vaciacuteo

Caso de Uso ldquoModelado del Disentildeo detallado 1 los meacutetodosrdquo El disentildeo detallado de los meacutetodos se realiza con diagramas de Warnier aquiacute se establecen las llamadas a funciones dentro del sistema y es aquiacute donde se identifica el dinamismo que se representaraacute en los diagramas de secuencias

Escenario de Eacutexito 1 Se abre el modelo 2 Se realiza la identificacioacuten de las llamadas existentes

Escenario de Falla 1 No se puede abrir el modelo 2 El modelo esta vaciacuteo

24

Desarrollo de la herramienta

Clase Objeto ni I Diagrama I n ____ Nombre Descripcioacuten

i

Mensaje

Tipo

En el Anaacutelisis Orientado a Objetos se crea una especificacioacuteii del dominio del problema y de los requeriinientos desde la perspectiva de una clasificacioacuten por objetos y del entendimiento de los teacuterminos usados en el dominio del problema Una descomposicioacuten del dominio del problema involucra una identificacioacuten de conceptos atributos y asociaciones que son considerados importantes dentro del dominio El resultado puede ser expresado en un Modelo Corzcepttraf el cual es ilustrado en un conjunto de diagramas que definen conceptos (objetos) [LAR97]

312Modelo Conceptual

El modelo conceptual visto en la Figura 33 no es una descripcioacuten de componentes de software representa conceptos en el domino del problema en el mundo Teal [LAR97l

313Diagramas de clases

Por cuestiones dc espacio las clases de la arquitectura del sistema estaraacuten referidas en varios diagramas que de alguna manera estaacuten relacionados entre si

Una de las partes maacutes importantes del Ambiente Visual S3C es la estructura de clases ltCCraJicogt la cual se refiere al control de los diagramas eacutesta por su naturaleza podriacutea considerarse el nuacutecleo del sistema La manipulacioacuten y control de los diagramas estaacute definido en una estructura de clases organizada con el patroacuten de disentildeo Composite que se muestra en la Figura 34

25

Desarrollo de la herramienta

CRecursividadDS CMensajeDS CObjetoDS CDiagramaDS

I Cvisitor I

CApuntadorDS CDblClickDS CAsocAdjusterDS CSelectorDS

26

Desarrollo de la herramienta

n 32 Elementos de la arquitectura

Es necesario describir los elementos que dan soporte a la arquitectura del ambiente donde se implementaraacute el sistema en este caso Microsoft Visual (MV) C++ 6 El MV C++ es un marco de aplicacioacuten poderoso basado en Windows se integran ademaacutes del lenguaje C++ (compilador y enlazador) el programa de desarrollo de programas en lenguaje C para Windows (SDK) la Microsoft Foundation Class Library AppWizzard Classwizard AppStudio y WorkBencli

La Microsoft Foundation Class Library comprende una biblioteca de clases de C++ y es considerada como el nuacutecleo del MV C++

321Microsoft Foundation Class (MFC)

La libreriacutea Microsoft Foundation Class (MFC) es una interfaz orientada a objetos que tiene las siguientes metas de disentildeo

o

Reduccioacuten significante de esfuerzo al escribir una aplicacioacuten para Windows Velocidad de ejecucioacuten comparable a las APIrsquos del lenguaje C Miacutenimo tamantildeo de coacutedigo Capacidad para llamar cualquier funcioacuten de Windows en C directamente Faacutecil conversioacuten de aplicaciones existentes en C a C++ Faacutecil uso de APIrsquos de Windows con C++ como con C Faacutecil uso de complicadas caracteriacutesticas de abstracciones poderosas como ActiveX soporte para base de datos impresioacuten barras de herramientas y barras de estado El API de Windows en C++ si usa tan efectivamente como las caracteriacutesticas mismas del lenguaje C++

La mayoriacutea de las clases de la Libreriacutea de la Microsoft Foundation Class son derivadas de una clase base ltCObjectgt que es la raiacutez de la jerarquiacutea de clases ltCObjectgt da uacutetiles capacidades a las clases que derivan de ella

La jerarquiacutea que existe en las clases derivadas de ltCObjectgt es la siguiente

Arquitectura de Aplicacioacuten Excepciones Servicios de Archivos Arreglos Listas Mapas Servicios de Internet Sockets Sincronizacioacuten Soporte para base de datos D A 0

27

Desarrollo de la herramienta

i

r

Liacutenea de Comandos Menuacute Dibujo Graacutefico Dibujo Graacutefico de Objetos Soporte de Control Soporte de Ventanas

Soporte para base de datos ODBC

o Marco de Ventanas o Barras de control o Hojas de propiedades o Cajas de Dialogo o Vistas o Controles

322Arquitectura Documento Vista

Por defecto las aplicaciones creadas con la MFC usan un modelo de aplicacioacuten que separa los datos del programa de las vistas de interaccioacuten con el usuario En eacuteste modelo un objeto documento de MFC lee y escribe datos en un almacenamiento persistente Un objeto vista administra el despliegue de datos suministrando al usuario los datos para ser seleccionados o editados La vista le comunica al documento cualquier cambio en los datos La razoacuten maacutes conveniente para seguir este modelo es cuando se necesita muacuteltiples vistas del mismo documento (como en una hoja de caacutelculo y un graacutefico)

La arquitectura documentovista hace faacutecil el soporte de muacuteltiples vistas y muacuteltiples tipos de documentos asiacute como la divisioacuten de ventanas y otras caracteriacutesticas de interfaz de usuario Pero el corazoacuten de la arquitectura son cuatro clases (Mostradas en el aacuterbol de clases de la Figura 36)

ltCDocumerrtgt (o ltCOleDocuinentgt) - Se instancia un objeto de este tipo para almacenar y controlar los datos del programa ltCViewgt (o una de sus clases derivadas ltCScrotlViewgt ltCFormViewgt ltCEditView ltCRecordViewgt ltCDaoRecordView ltCtreeViewgt ltCListViewgt b ltCrichEditViewgt) - Un objeto es usado para desplegar los datos y administrar la interaccioacuten del usuario con los datos ltCFrameWndgt (o una de sus variantes) - Establece el marco sobre el que trabajaraacuten una o mas vistas de un documento ltCDocTemolategt (o ltCSingIeDocTemplategt o ltCMultiDocTemplategt) - Coordina la existencia de uno o maacutes documentos de un tipo dado y administra la correcta creacioacuten de los documentos vistas y objetos ventanas para cada tipo

i

28

Desarrollo de la herramienta

______________ 2 Wiew

I - - __ - ------a ________________

323Integrando Ambientes en Visual C t t

Las aplicaciones de Interfaz de Documento Uacutenico (SDI) soporta muacuteltiples tipos de documentos pero este soporte es para un solo objeto documento Debido a esta restriccioacuten y aunado a la necesidad de tener varios objetos documentos a la vez se determina la utilizacioacuten del modelo Interfaz de Muacuteltiples Documentos (MDI) indicado en la Figura 37

324Interfaz de Muacuteltiples Documentos (MDI)

Una aplicacioacuten de Interfaz de Muacuteltiples Documento (MDI) permite la creacioacuten de plantillas para el manejo de los documentos eacutesta plantilla tiene la forma

rn-pDocTemplate = new CMultiDocTernplate ( I DR-SCUMLTY PE RUNTIME-CLASS (CSCUMLDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CTheView))

AddDocTernplate ( rn-pDocTemplate )

Cada plantilla describe una relacion del tipo de documento con la vista asociada La definicioacuten de la plantilla para el ambiente que controla los diagramas de secuencias es la siguiente

29

Desarrollo de la herramienta c

m-pTernplateSeqDlag = new CMultiDocTernplate ( IDR-DS-SJCTYPE RUNTIME-CLASS (CSeqDiagDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CSeqDiagView) )

AddDocTernplate( rn-pTernplateSeqDiag )

Esta plantilla hace uso de la clase CCliildFrame que por defecto el ambiente Visual C++ construye y esto es debido a que no se requieren caracteriacutesticas extras en las ventanas de las que proporciona dicha clasc En un caso en el que se requiriera un comportamiento diferente de la vista tendriacutea que crearse una nueva clase con las caracteriacutesticas deseadas

Vista Documento

Vista

I- Vista Documento I [ Tip- F Vista

L Figura 37 Modelo Interfaz de Muacuteltiples Documentos (MDI)

Para integrar otro Ambiente que utilice otro tipo de documento es necesario definir otra plantilla de la misma forma mencionada Debe tomarse en cuenta los siguientes puntos

Es necesario definir el nombre (mqTemplateNOMBRE) El IDR del tipo que se requiere que sea el documento En la primera liacutenea RUNTIME CLASS debe indicar la clase ltCDocumentgt que desea La segunda liacutenea RUNTIME-CLASS soacutelo la cambia a otra clase si requiere de otro manipulador de ventanas de lo contrario deje que ltCChildFramegt se haga cargo

-

30

Desarrollo de la herramienta

En la uacuteltima liacutenea referente a RUNTIME-CLASS se debe indicar la clase ltCViewgt que desea usar Para finalizar se usa la instruccioacuten AddDocTernplate para finalizar la definicioacuten del template (mgTemplateNOMBRE)

325 Recursos Diaacutelogos Mertuacutes y Barras de Herrattriertias

Son varios los recursos con los que se puede contar al crear un proyecto en Microsoft Visual C++ Los diaacutelogos son un recurso disponible que son utilizados para visualizar ingresar yo modificar informacioacuten que se requiera En el Ambiente Visual que se desarrolla son varios los diaacutelogos que se utilizaraacuten y eacutestos se describen a continuacioacuten

El Diaacutelogo ldquoCaracteriacutesticas del Obietordquo (Figura 38) identifica el nombre del Objeto y la descripcioacuten del mismo Este diaacutelogo se muestra cuando se presiona doble clic sobre un objeto del diagrama

I Nombre

Desciipcion

Figura 38 Dialogo Caracteriacutesticas del Objeto

El Diaacutelogo ldquoMensaierdquo (Figura 39) muestra el nombre del mensaje que puede ser modificado ademaacutes se visualizan el Identificador del Mensaje el tipo de Mensaje asiacute tambieacuten el origen y destino del mensaje

31

Desarrollo de la herramienta

Nornbie delMensaje Edit

IDentificador del Mensaje Edil Tipo de Mensaje (Edil

Edit Objeto Origen

Objeto Destino IEdit

i25El A Figura 39 Dialogo Mensaje

El menuacute es otro de los recursos del que se puede disponer para organizar el ambiente que se estaacute creando Para eacuteste caso en particular no se hizo modificaciones al menuacute estaacutendar (Figura 310) que Visual C++ presenta Los cambios significativos son el manejo del tipo de documento para los Diagramas de Secuencias

Archivo Editar Yer VenLana AyGda

Figura 310 Menuacute de los Diagramas de Secuencias (estaacutendar)

Otro importante recurso del que uno se puede valer en Visual C++ es la barra de herramienta personalizada la cuaacutel es construida en el Editor de Recursos Se ha construido una barra (Figura 311) con los elementos graacuteficos de los Diagramas de Secuencia de UML

Figura 311 Barra de Herramientas de los Diagramas de Secuencias

Es recomendable que al utilizar barras de herramienta personalizada se defina en el tamantildeo estaacutendar ya que puede experimentar problemas al momento de ejecutar la aplicacioacuten

Ademaacutes puede usar la propiedad TBBS-CHECKGROUP en una barra de herramientas para establecer que los botones puedan quedar presionados hasta que un botoacuten diferente sea presionado No olvide que la numeracioacuten inicia con cero ( O )

vuriableToolBurSetButtonStyle(OTBBSCHECKGROUP)

32

Desarrollo de la herramienta

Prefijo ID IDC IDD IDP IDR IDS

326 Notacioacuten estaacutendar

Los nombres descriptivos de los recursos se asocian a un valor uacutenico Para una mayor claridad eacutestos nombres mantienen un prefijo que describe el tipo de recurso asociado (vea la Tabla 31) [MIC99]

Tipo de Recurso Comandos de Menuacute Controles y recursos Cuadros de diaacutelogo Cadenas de solicitud para cuadros de mensaje Menuacute principal barras de herramienta tabla aceleradora y el icono Cadenas

IDR IDD IDC ID

200 - 299 3000 - 3999 34000 - 34999

Estos son los rangos de valores establecidos para el proyecto S3C Si se utiliza el coacutedigo fuente y se planea agregar otro proyecto verifisue que no se invadan estos nuacutemeros para evitar problemas

Para facilitar auacuten maacutes los trabajos futuros se ha definido una estructura de carpetas (ver Figura 312) para incluir en cada una las Clases correspondientes a cada tesis en desarrollo

33

Desarrollo de la herramienta

ill ~~ -

-I SCUML classes + U A N T L R + U App + 0 ClassDiagrams + 0 Common + a Java

t $2 SequenceDiagiams

+ WarnierDiagrams

iJ PackageDiagrams

12 StaterChartDiagrams

+

- f Classview I Resourceview 1 FileView ]

~ ~

Figura 312 Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)

327Estructura de datos persistencia y recuperacioacuten

Existe una gran cantidad de tipos de datos estructuras clases y meacutetodos de los que se puede hacer uso para una mejor y maacutes faacutecil obtencioacuten de los resultados A continuacioacuten hago comentarios en tipos de datos y meacutetodos en los que podriacutea tener problemas

CTypedPtrList

AI usar este tipo de dato o alguno relacionado que le permita utilizar el meacutetodo ltCTvrgtedPtrListGetNextgt tenga especial precaucioacuten al usarlo ya que al devolver el valor requerido la variable POSITION usada no se queda apuntando a ese valor en particular salta al inmediato siguiente de la lista

Si se realiza una creacioacuten dinaacutemica con punteros para los elementos de una CTypedPtrList Despueacutes de haberlo agregado a la lista evite el delete para borrar esta Usted deseando liberar la memoria no lo haga ya que eliminara directamente el elemento de la lista

POSITION

Es un valor usado para denotar una posicioacuten de un elemento en una coleccioacuten Pero CUIDADO no se refiere a un iacutendice es una referencia (no consecutiva) de punteros muy diferente a un iacutendice

CString

Auacuten cuando el operador de comparacioacuten == (igual a) es permitido para ser utilizado en las cadenas evite su uso ya que en ocasiones aunque cuando la e

34

Desarrollo de la herramienta

compilacioacuten no indique error alguno en la ejecucioacuten no realizaraacute lo que se necesita Recomiendo que utilice CStringCompare ()

Para eliminar el contenido de un CString utilice CStringEmpty() ya que asignar a la cadena un ldquonrdquo podriacutea causarle problemas

Serializacioacuten

Una forma en que se puede guardar informacioacuten y recuperarla de manera eficaz es mediante la serializacioacuten de objetos La serializacioacuten es un proceso que permite escribir un objeto en un archivo y tambieacuten leerlo

Para que la serializacioacuten se lleve a cabo son necesarios tres objetos un objeto de tipo ltCFilegt que represente el archivo un objeto de tipo ltCArchivegt que ofrece el entorno para la serializacioacuten y la clase del objeto a ser serializado debe ser heredada de ltCObjectgt y sobrescribir el meacutetodo ltSerializegt para que se encuentre de tal forma en que pueda ser serializado (vea la Figura 313)

Objeto a ser serializado 1

1 CArchive

[f --=I- ---7 Archivoexi

u Figura 313 Serializacioacuten

328Patrones de disentildeo utilizados

Se ha planteado la definicioacuten de una arquitectura de clases utilizando patrones de disentildeo debido a que algunos de ellos hacen maacutes faacutecil la extensioacuten de la funcionalidad y mantenimiento

35

Desarrollo de la herramienta

El patroacuten Composite es utilizado para crear de manera uniforme el diagrama sobre el que se trabaja (ver Figura 34) manteniendo una jerarquiacutea de clases uniforme las clases maacutes bajas en la jerarquiacutea definen primitivas de objetos graacuteficos

Se aplica el patroacuten de disentildeo Iterator para hacer recorridos en listas de objetos para realizar diversas operaciones Otro patroacuten de disentildeo del que se hace uso es el Visilor (ver Figura 35)

Para otras actividades que se realizan podriacutea pensarse en que se deberiacutean aplicar otros patrones pero se han evitado algunos (como el patroacuten de disentildeo Builder) para evitar incrementar la complejidad en la arquitectura ya que ai mantener el modelo de la MFC de documentovista la funcionalidad del patroacuten de disentildeo Builder es faacutecilmente reemplazado si se hiciera Uso de eacuteste se aumentariacutea la complejidad excesivamente (nos llevariacutea a perdemos en ocasiones en el paso de mensajes entre clases) dantildeando la facilidad de la arquitectura

33 Diagrama de secuencias

Un Diagrama de Secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten escenario Oacute comportamiento se usan para definir el curso loacutegico de accioacuten de un posible camino a seguir en la resolucioacuten de un problema Seguacuten John Daniels [DANO2] ldquoel principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildean las interacciones de los objetosrdquo

Los Diagramas de Secuencias se utilizan en el modelado de la implementacioacuten de sistemas de software ademaacutes son aplicables en el modelado de requisitos para establecer las comunicaciones existentes entre actores yo clases del sistema Con eacutestos diagramas se logran hacer descripciones de los escenarios y los comportamientos del sistema Con los Diagramas de Secuencias es posible definir protocolos de comunicacioacuten con paso de mensajes ya que dan esa flexibilidad que se requiere Ademaacutes los Diagramas de Secuencias contienen informacioacuten suficiente para que puedan ser transformados a los diagramas de colaboracioacuten [RUM Ol][BOO Oil

331Ciclo de vida del software

Considerando cualquier modelo de ciclo de vida del software (en la figura 314 se muestra el Modelo de cascada) el aacutembito directo de eacuteste Ambiente Visual es en el disentildeo aunque tiene sus vertientes en la codificacioacuten y mantenimiento

36

Desarrollo de la herramienta

Diseno

Codificacibn

I I I I Mantenimiento I

igura 314 Modelo de cascada del ciclo de vida del software

34 Elementos atoacutemicos de la Gramaacutetica

Definicioacuten de los elementos atoacutemicos del lenguaje y su contenido

1 Actor- Representa roles de entidad externos al sistema con el que interactuacutea directamente Los actores pueden ser humanos dispositivos u otros sistemas

2 ClaseObjeto- Determina una Clase u Objeto participante en la interaccioacuten

3 Mensaje-Es una comunicacioacuten entre objetos que contiene informacioacuten Eacuteste se representa con la finalidad a que una accioacuten sea llevada a cabo

4 Mensaje con tiempo- Tiene la misma finalidad que el mensaje la diferencia es que con eacutel se representa un atributo de tiempo

5 Mensaje asiacutencrono Es un mensaje que ocurre en el tiempo de manera independiente a otros mensajes

6 Mensaje de destruccioacuten de objeto- Es un mensaje cuya finalidad es indicar la destruccioacuten del objeto destino

7 Mensaje de creacioacuten de objeto- Es un mensaje que indica la creacioacuten de un objeto

8 Llamada al mismo objeto (Recursividad)- Es usado para modelar llamadas recursivas en el que una operacioacuten es invocada por el mismo objeto

37

Desarrollo de la herramienta

9 Destruccioacuten del objeto (AutodestrucciOacuten)- Puede o no modelarse es representada con una X al final de la liacutenea de vida del objeto

Elementos aulomaacuteticos

1 Liacutenea de Vida- Representa la vida del objeto durante la interaccioacuten

2 Activacioacuten- Muestra el periacuteodo de tiempo en el cual el objeto alguna operacioacuten

341RepresentaciOacuten visual

Representacioacuten visual de los elementos atoacutemicos del lenguaje

Actor

_- A

Mensaje

Mensaje de Creacioacuten de

Objeto

ClaseObjeto

I

Mensaje de retorno

Mensaje de Destruccioacuten de

Objeto

abla 32 Element(

Activacioacuten

Mensaje con tiempo

Autodestruccioacuten

x

atoacutemicos del lengi

taacute realizz

Texto ===I (letra)+ (letra I

numero) letra= AZ I az numero = 09

I

Recursividad ~

I

i j e

io

38

u

Comentario

iexcl

Conector de Comentario

35 Gramaacutetica desarrollada

La gramaacutetica que se propone es una gramaacutetica visual del tipo relacional Una gramaacutetica relacional pertenece a las gramaacuteticas libres de contexto es una 6-iupla G (N C S R Attr P) donde

N es un conjunto finito de siacutembolos no terminales C es un conjunto de siacutembolos terminales S es un siacutembolo distinguido en N llamado siacutembolo inicial R es un conjunto finito de siacutembolos de relacioacuten Attr es un conjunto finito de siacutembolos de atributos P es un conjunto de producciones

Entonces definiendo nuestra gramaacutetica G (N C S R Attr P)

N = Diagrama GrupoClaseObjeto

S = Diagrama

R = mensaje mensajeTiempo mensajeRetomo mensajeAsincrono mensajecrea mensajeDestruye autodestruccioacuten recursividad

R

Attr = entrada salida entradacrea

39

Desarrollo de la herramienta

Definiendo la posicioacuten de los atributos en los elementos visuales

entradacrea ObetaClase

entrada

salida

P =

Diagrama I GrupoClaseObjeto (mensaje (mensajeRetorno

(salida 1) (entrada 2) ) (salida 2) (entrada 1) )

- Diagrama 0 GrupoClaseObjeto

(mensaje (mensaje (mensajeRetomo (mensajeRetomo (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entradacrea 2) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 1) ) (salida 1) (entrada 1) )

entrada

salida

40

Desarrollo de la herramienta

s

-

GrupoClaseObjeto - 1 1 I 2 (mensaje (mensaje (mensajeRetorno (mensajeRetorno (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entradacrea 2) ) (salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 1) ) (salida I ) (entrada I ) )

1 En las gramaacuteticas relacionales una produccioacuten estaacute acompantildeada de las posibles

relaciones que puedan generarse En la primera produccioacuten Diagrama produce a un Actor seguida de un GrupoClaseObjeto el Actor inicia la interaccioacuten con un mensaje y recibe el mensaje de retorno al finalizar la interaccioacuten La segunda y tercera produccioacuten son similares debido a que un GrupoClaseObjeto contiene dos ClaseObjeto que se relacionan de la misma forma

Existe un elemento de la gramaacutetica llamado Attr (Atributo) el cual define la parte de los elementos visuales donde se establecen las relaciones Se han determinado dos atributos (entrada y salida) que para nuestro propoacutesito estaraacuten establecidos en la liacutenea de vida de cada elemento visual (Actor y ClaseObjeto)

Los Comentarios y la Activacioacuten no se consideran en la gramaacutetica Los comentarios son libres de incluirse y relacionarse con cualquier elemento y relacioacuten mencionada anteriormente y la activacioacuten existe siempre que se presente un mensaje (o podriacutea omitirse) Estas consideraciones se realizaron para hacer auacuten maacutes faacutecil la gramaacutetica ya que si se trata de realizar un sistema las restricciones de estos elementos pueden mantenerse en el lenguaje de programacioacuten en el que se desarrolle el sistema

36

Precondiciones

El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias

1 El diagrama de Clases debe existir y estar completo 2 Debe existir un archivo con un diagrama de Warnier por cada diagrama de Clases y

con el mismo nombre de archivo (excepto la extensioacuten del archivo) 3 En el uacutenico diagrama de Warnier de cada Clase se deben modelar todos los meacutetodos

de la Clase 4 No realizar declaraciones de meacutetodos

41

Desarrollo de la herramienta

5 Debe existir un meacutetodo lsquomain()rsquo en el diagrama de Clases

Restricciones

Los meacutetodos deben mantener nombres distintos en las diferentes Clases

Metodologiacutea para la obtencioacuten automaacutetica de los Diagramas de Secuencias

1 Seleccionar el diagrama de Clases

2 Se construye una lista con los nombres de las Clases y los Meacutetodos

3 Se verifica si exista el meacutetodo lsquomain()rsquo en alguna Clase Se busca la existencia de una uacutenica Clase

a La Clase que contenga lsquomain()rsquo se va al inicio de la lista de Clases

b Si no existe lsquomain()rsquo SE TERMINA EL PROCESO

4 Se verifica la existencia de los archivos que contienen el Disentildeo Detallado de los meacutetodos en Wamier para cada una de las Clases si alguno falta SE TERMINA EL PROCESO

5 Se procesa cada uno de los modelos del Disentildeo Detallado de los Meacutetodos generando una lista de secuencias de llamadas por cada uno de los meacutetodos

6 Se verifica que cada llamada corresponda a alguacuten meacutetodo existente (del diagrama de Clases) De no existir ese meacutetodo la llamada entra a una estructura que

7 Se crea una lista de secuencia

a Se inicia con lsquomain()rsquo b Se recorre cada una de las llamadas de los meacutetodos c Se considera invaacutelido el caso de que un meacutetodo intente una llamada

recursiva al meacutetodo lsquomain()rsquo

8 Se muestra un diaacutelogo de resultados en el que se indican las llamadas que no se encnotraron definidas y que pueden ser Llamada a libreriacutea oacute Llamada Erroacutenea

42

Capiacutetulo 4

Prue6as y su6taaacuteos

En eacuteste capiacutetulo se da a conocer el detalle de las pruebas y de los resultados obtenidos Se describen los casos de prueba con los que se realizoacute la evaluacioacuten del sistema asiacute tambieacuten se presentan comentarios acerca de los resultados obtenidos

Pruebas y Resultados

41 Recursos teacutecnicos utilizados

Para llevar a cabo las pruebas al sistema S3C se utilizaron los siguientes equipos de Coacutemputo

Computadora de escritorio

256MB RAM Disco Duro 80G Monitor 17rdquo SAMSUNG

AMD Athlon XP 1600+ I4Ghz

Computadora de escritorio Intel Pentium 4 - 128MB RAM Disco Duro 40G Monitor 15rdquo i -

42 Descripcioacuten del plan de pruebas

Las pruebas establecen el Uacuteltimo paso desde donde es posible evaluar la calidad y descubrir los errores Las pruebas y la validacioacuten del software se utilizan para comprobar que el sistema cumple con las expectativas del usuario

En esta seccioacuten se describen los casos de prueba que se realizaron al prototipo de S3C en conjunto a la suite cenidet-UML Para cada uno de los casos se presenta el objetivo el procedimiento que se siguioacute para la prueba y se muestran los resultados obtenidos - _

Las pruebas a realizar son los siguientes

Caso 1 Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Caso 2 Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Wamier

Caso3 Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Wamier

Caso4 Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo 5

44

Pruebas y Resultados

43 Resultados

431 Caso 1

5 Y

IZ =

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoSirdquo 4 Seleccionar el archivo ldquoVENTASrdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 41 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

s3c iuevo Proyecto SCUM1

Diagrama de clases

lvendedor I L

3

salida

venta prod

4 venia-oferta vcntaprod =

salida 6

Figura 41 Resultado del caso de prueba 1

45

Pruebas y Resultados

432 Caso 2

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Warnier (almacenwar cajawar vendedorwar) que ya cxisten (del caso de prueba I )

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoNordquo 4 Agregar las siguientes Clases con los respectivos meacutetodos y atributos

a Claseldquovendedorrdquo Meacutetodos ldquoventa mainrdquo b Claseldquoalmacenrdquo Meacutetodos ldquoentrada salidardquo c Claseldquocajardquo Meacutetodos ldquoventagrodrdquo

5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 42 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

Diagrama de daseo lisgrama dcsccucncis

MOIDOC Anivo

venta prod

salida

1 Ycrdquo1a 2

I 4 vcrdquolD~o1cn venta prod gt

salida 6 i Figura 42 Resultado del caso de prueba 2

46

Pruebas y Resultados

r

433 Caso 3

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Warnier

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 43 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

5

Error al tratar de abrir el archivo A bZwar

Aceptar i

Faltan Archivos de Disentildeos Detallados de Meacutetodos 1 1 A No se puede crear el diagrama de secuencias

Figura 43 Resultado del caso de prueba 3

47

Pruebas y Resultados

434 Caso 4

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 44 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

lsquo I

~ _ i i _ l _ Repaado ~~ ~ ~ 6~ ampA Figura 44 Resultado del caso de prueba 4

48

Pruebas y Resultados

PRUEBA DESCNPCION CASO 1 Mostrar la funcionalidad del

Sistema S3C a partir de un

44 Anaacutelisis de Resultados

RESULTADOS Se comproboacute la correcta funcionalidad del Sistema S3C a partir de un diagrama

CASO 3

CASO4

I diagrama de Clases cxistcnte I de Clases existente CASO 2 I Mostrar la funcionalidad del I Sc comproboacute la corrccta funcionalidad

Sistema S3C a partir de un del Sistema S3C a partir de un diagrama diagrama de Clases que se de Clases que se construye al momento construye al momento Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el Secuencias si falta alguno de los diagrama de Secuencia si falta alguno diagramas de Warnier Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el secuencias si hace falta el meacutetodo diagrama de Secuencias al faltar el ldquomain ()rdquo meacutetodo ldquomain()rdquo

de los diagramas de Warnier

Los resultados obtenidos de cada uno de los casos establecidos demuestran que se validoacute la funcionalidad del prototipo con los requisitos definidos en el alcance de este proyecto

a lt

49

Conclusiones y Tru6ajos Futuros

Aquiacute se dan a conocer las conclusiones y se describen los posibles trabajos futuros para la continuacioacuten de eacuteste proyecto

F

51 Conclusiones

Conclusiones y trabajos futuros

Se ha creado un Ambiente Visual que permite obtener de forma automaacutetica los Diagramas de Secuencias en base a los diagramas de Clases y al disentildeo detallado de los meacutetodos descritos con diagramas de Warnier cumpliendo con los objetivos planteados para este trabajo

La tesis aporta principalmente La generacioacuten automaacutetica de los diagramas de secuencias y la eliminacioacuten de inconsistencias al mantener una validacioacuten directa de los diagramas de clases y los diagramas de Warnier que son utilizados

Esta validacioacuten es lograda a traveacutes del uso de la gramaacutetica visual relaciona1 que se ha definido (veacutease el capiacutetulo 3) Esta gramaacutetica visual establece reglas para la correcta construccioacuten de los diagramas de secuencias

P De esta manera se establece que la hipoacutetesis ldquoEs posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodosrdquo Es verdadera

52 Trabajos Futuros

Un Diagrama de Secuencias puede convertirse en un Diagrama de Colaboracioacuten por lo tanto un trabajo futuro es la construccioacuten automaacutetica de un Diagrama de Colaboracioacuten a partir de uno de Secuencias existente

Es posible calcular la meacutetrica de acoplamiento al tener un Diagrama de Secuencias construido

La Ingenieriacutea directa de un Diagrama de Secuencias estableciendo la validacioacuten en la construccioacuten de todos los elementos visuales que UML define

La propagacioacuten de las modificaciones de un Diagrama de Secuencias a los Diagramas de Clases y los Diagramas de Warnier

La modificacioacuten del coacutedigo fuente mediante los cambios establecidos en un Diagrama de Secuencias

51

[ALC03]

[BLA98]

[B0099]

[BOOOi]

[BR097]

[CHA90]

[DAN02]

[GLA02]

[HAC98]

[HER03]

4

Alcate1 Computer Associates International inc Electronic Data Systems Corporation Hewlett-Packard Company IBM Corporation I-Logix IntelliCorp Kabira Technologies Kennedy Carter Microsoft Corporation Object Management Group Oracle Corporation Project Technology Ptech Inc Rational Software Corporation Reich Technologies Softeam Taskon A S Telelogic Unisys Corporation ldquoOMG Unified Modeling Language Specificationrdquo Version 15 Unified Modeling Language 2003

Blaha Michael Rumbaugh James Premerlani William Eddy Frederick Lorensen William ldquoObject-oriented modeling and designrdquo Prentice Hall 484 Paacuteginas ISBN 0-13-629841-9 QA-769-03S-B53-19981998

Booch Grady Rumbaugh James Jacobson Ivar ldquoEl lenguaje unificado de modeladordquo Addison Wesley 432 Paacuteginas ISBN 84-7829-028-1 1999

Booch Grady Rumbaugh James Jacobson Ivar ldquoThe Unified Modeling Language User Guiderdquo Addison Wesley 2001

Brown David ldquoAn introduction to object-oriented analysis objects in plain Englishrdquo John Whiley amp Sons Inc 700 Paginas ISBN 0-471-1 1028-0 QA-769-035-B76-1997 1997

Chang Shi-Kuo ldquoVisual Languages and visual programmingrdquo Plenum Press 340 Paacuteginas ISBN 0-306-43428-8 QA-7665-V57-1990 1990

Daniels John ldquoModeling with a sense of purposerdquo Design - IEEE Software JanuaryEebmary 2002

Glasgow Universidad Reino Unido ldquoA UML Editor in Javardquo (lthttplstudentsdcsglaacuWstudentspainjfproject-reportproject-re port-htmV4thYearReporthtrnlgt 2002)

T Hackos JoAnn C Redish Janice ldquoUser and Task Analysis for Interface Designrdquo Wiley Computer Publishing 488 Paacuteginas ISBN QA-769-U83- H33-1998 1998

Hemaacutendez Velaacutezquez M ldquoIngenieriacutea inversa de coacutedigo fuente en C++ para la obtencioacuten de su disentildeordquo Tesis AT-379 (03-0334) 2003

Conceptos generales

[HIX93]

[JAC93]

[JAC99]

[JOY98]

[LAR97]

[MAR]

[MIC99]

[MIC02]

[MOU98]

Hix Deborah Hartson H Rex ldquoDeveloping user interfacesrdquo 381 Paacuteginas ISBN 0-471-57813-4 QA-769-U83-H59-1993 1993

Jacobson Ivar Christerson Magnus Jonsson Patrik Overgaard Gunnar ldquoObject oriented software engineeringrdquo Addison Wesley ISBN 0-20 1 - 54435-0 QA-7676-D47-J63-1993 1993

Jacobson Ivar Booch Grady Rumbaugh James ldquoEl proceso unificado de desarrollo de softwarerdquo Addison Wesley 438 Paacuteginas ISBN 84-7829-036- 2 1999

Joyanes Aguilar Luis ldquoProgramacioacuten orientada a objetosrdquo McGruw Hill ISBN 84-481-0590-7 1998

Larman Craig ldquoAplying UML and Patternsrdquo Prentice Hull 507 Paacuteginas ISBN 0-13-748880-7 QA-769-035-L37-1997 1997

Marriot Kim Meyer Bemd ldquoVisual Language Theoryrdquo Springer 381 Paacuteginas P-935-V567-1998 1998

Microsoft ldquoMicrosoft Visual C++ 6 manual del programadorrdquo McGraw Hill ISBN 84-481-2127-9 QA-7673-Cl53-23718-1999 1999

Microsoft ldquoVisiordquo (lthttpwwwmicrosoftcomofficevisiogt 2002)

B Mourao Luis X ldquoUniversal Modeling Language Part 11 UML Notation - Case Sequence and Collaboration Diagramsrdquo Lan Times Magazine (~httpwwwlantimescomltpartsdiscussdiscuss6Ohtm~) 1998

No Magic ldquoMagicDrawrdquo (lthttpwwwmagicdrawcomgt 2002)

Object Insight ldquoJvisionrdquo (lthttpwwwobject-insightcomgt 2002)

Rational Software Microsoft I Hewlett-Packard Oracle Sterling Software MCI Systemhouse Unisys ICON Computing IntelliCorp i-Logix IBM ObjectTime Platinum Technology Ptech Taskon Reich Technologies Sofieam ldquoUML Summaryrdquo Version 11 Unified Modeling Language 1997

Rational ldquoRational Roserdquo (lthttpwwwrationalcomproductosrosegt 2002)

Rikki Kirzner ldquoAnalysis Modeling and Design Tools Market Forecast and Analysis 2001-2005rdquo Bulletin Published Under Services Application Design and Construction Tools Application Development and Deployment Strategies Documento Nuacutemero 24809 Junio 2001

53

Conceptos generales

[RIM92] Rimrner Steve ldquoGraphical user interface programmingrdquo 423 Paacuteginas

1992

Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language reference manualrdquo Addison Wesley 550 Paacuteginas ISBN 0-201-

ISBN 0-8306-2475-9 ISBN 0-8306-2472-4 (pbk) QA-769-083-R55G

[RUM99]

30998-X QA-7676-D47-R85-1999 1999

[RUM299] Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language user guiderdquo Addisoiz Wesley 482 Paacuteginas ISBN 0-201 -57 168-4 QA-7676-D47-B66-1999 1999

[SMA02] SmartDraw ldquoSmartDrawrdquo (lthttpwwwsmartdrawcomgt 2002)

[SHU88] 9 - Shu Nun C ldquoVisual Programmingrdquo Van Nostrand Reinhold ISBN 0-422- 28014-9 ISBN 0-422-01 164-4 QA-7665-S55 1988

[THI90] Thimbleby Harold ldquoUser Interface Designrdquo Acm press 470 Paacuteginas ISBN 0-201 -41 61 8-2 QA-769U83-T772~- 1990 1990

[WENO2] Wences Diaz MF ldquoModelo de Ingenieriacutea Inversa para la obtencioacuten de disentildeo detallado basado en LEVISSrdquo Tesis (02-0014) 2002

54

Anexo A

Conampuracioacuten de Microsoft Vkua[C++ 6 O

Este anexo indica las configuraciones que se utilizaron para la compilacioacuten de SCUML y s3c

Configuracioacuten de Microsoft Visual c++ 60

Debido a la integracioacuten de los proyectos de InverSOODA e InverDDVi con S3C se cumplioacute con los requisitos previos de ambos proyectos

El compilador usado en el proyecto fue el Microsoft Visual C++ 60

Para el cumplimiento con la funcionalidad de InverSOODA se instaloacute el ANTLR la versioacuten 271 Se descargoacute del sitio l i l l ~ ~ ~ ~ ~ ~ t l ~ l ~ - ~ t - ~ la versioacuten mencionada en un archivo comprimido (en formato zip) Se colocoacute el paquete descomprimido en el directorio ldquoDIANTLR-271 I rdquo

Recomiendo ampliamente que el directorio principal de ANTLR se copie en el directorio raiacutez de cualquier unidad de disco debido a que experimenteacute problemas de compilacioacuten cuando ANTLR no se encontraba en el directorio raiacutez

Io015

Source Browser AlttF12 I u c Ersquo V I

Visual Component Mgnager

- - ~ ~ ~ ~~

P2 Registrar control

A Contenedor de prueba de controles ActiveX

A Usor de objetos OLE y COM

Buacutesqueda de errores

A Y++ MFC Iracer

Customize options

~ - q- ~ Macro

Eecord Quick Macro Cbl+ShiR+R Pay Quick Macro Ctrl+ShiR+P

En el menuacute Tools (Herramientas) seleccione el sub-menuacute Options ltopcionesgt

56

Configuracioacuten de Microsoft Visual C++ 60

En la siguiente ventana de diaacutelogo debe agregar la direccioacuten en donde se encuentra el ANTLR

Agregar la ruta del directorio de ANTLR hasta el subdirectorio

libcpp

Editor I Tabs I Debug I Compatibility 1 Build Dneclolies I a I Chow directories for - Platfolm -

- Directories I x ) 4 jWin32 -] llnclude files

m cancd I

57

Configuracioacuten de Microsoft Visual C t+ 60

Se ha creado una libreriacutea (anrlrliblib) de ANTLR la cual ya estaacute situada en el directorio del proyecto SCUML (ISCUML) y no debe ser movida o eliminada

I

Geneial 1 Debug I CC++ Link I Category

Output file name bebugSCUMLexe

Objectljibrary modules 4 anllrliblib

li Generate debug lnfo r Ignore all defaull lbaries D ~ i n k j n ~ ~ ~ t a n ~ r ~ e n e r ~ ~ ~ mapfile

r Enable psafilrng

Proiec1 Ootionn

pq Cancel 1 Libreriacutea de ANTLR que debe existir 1 I para que se compile correctamente

58

Anexo B

~ u iacute aacute raacutepida de uso deC Sistema S3C

5 Este anexo indica de forma raacutepida la manera de utilizar S3C para crear un diagrama de secuencias de forma automaacutetica

Guiacutea Raacutepida de uso del Sistema S3C i

Para indicar la creacioacuten de un diagrama de secuencias en forma automaacutetica se debe ir a la barra del costado izquierdo y presionar ldquoNuevo Proyecto SCUMLrdquo

I s3c I ~ Nuevo Proyecto SCUML ~ _ _ - I Diagrama de clases ~ Diagrama de secuencias 1 MDI DOC Activo

-

Apareceraacute un documento llamado ldquoSCUMLV en donde el simbolo corresponde a un numero consecutivo iniciando desde 1 (uno)

$ e Despueacutes se presiona ldquoDiagrama de clasesrdquo Habraacute que para indicarle al sistema si se requiere abrir un diagrama de clases existente o realizar uno nuevo

i

iquestAbrir un documento existente

No Cardquo~ear

AI presionar ldquoSirdquo se debe indicar cual es el archivo del diagrama de Clases en el cuadro de diaacutelogo siguiente

~~ - 11dMis documentos rsquo 2 M i P C i lsquo h s sitios de red

I

AI presionar ldquoNordquo en ldquoAbrir un documento existenterdquo se nos mostraraacute un documento vacio para crear un diagrama de clases

60

Guiacutea Raacutepida de uso del Sistema S3C

Para ambas opciones se requiere que los diagramas de Wamier ya se encuentren construidos Y para continuar el proccso se selecciona el documento ldquoSCUMLVrsquo creado al inicio y despueacutes presionar el botoacuten nombrado ldquoDiagrama de secuenciasrdquo localizado en la barra de hcrraiiiicntas del costado izquierdo

Ha iniciado el proceso de construccioacuten del diagrama de secuencias Si no existen errores al terminar el proceso se le mostraraacute un cuadro de diaacutelogo llamado ldquoResultadosrdquo en donde le mostraraacute las llamadas de las que no localizoacute su definicioacuten

- - -

Cancel 1 D e las siguientes llamadas es posible que esten mal escritas o peitenezcan a la libreiia del Lenguaie Verifique ya que no se encontraron sus definiciones

A continuacioacuten se mencionan los posibles errores que finalizan el proceso de la creacioacuten automaacutetica de los diagramas de secuencias en S3C

Cuando no exista un meacutetodo lsquomainrsquo definido en el diagrama de clases

No se encontro el meacutetodo lsquomain()rsquo que inicie la secuencia I A No se puede crear el diagrama de secuencias

p==amp=q

61

Guia Raacutepida de uso del Sistema S3C

Cuando se definan niultiples metodos lsquoinainrsquo en el diagrama de clases

Multiples meacutetodos lsquomainOlsquo Imposible decidir el inicio de secuencia

Aceptar i

Si un meacutetodo definido en Wamier realiza una llamada a lsquomainrsquo se cancelara el proceso

Llamada NO VALIDA al meacutetodo principal main

(iAcp-j(

4 i

CI Y rdquoldquoldquoI i 11 1-T

IZNTRO Gt INFORMACION

62

  • Tabla de Contenido
  • Listado de Figuras
  • Listado de Tablas
  • Notacioacuten
  • Introduccioacuten
  • Capitulo 1 Conceptos Generales
    • 11 Antecedentes
    • 12 Trabajos relacionados
      • 121 Tabla comparativa
        • 13 Definicioacuten del problema
        • 14 Objetivo de la Tesis
          • Objetivos especiacuteficos de la tesis
            • 15 Hipoacutetesis de investigacioacuten
            • 16 Alcances y limitaciones del trabajo de tesis
              • Capitulo 2 Marco Teoacuterico
                • 21 Modelado de sistemas de software
                • 22 Interfaz de usuario (Mecanismos de interaccioacuten)
                • 23 Lenguajes Visuales
                • 24 Programacioacuten orientada a objetos
                • 25 Lenguaje de Modelado Unificado (UML)
                  • Desarrollo de la herramienta
                    • 31 Disentildeo de la Arquitectura
                      • 311 Requisitos (Diagrama de Casos de uso)
                        • 312Modelo Conceptual
                        • 313Diagramas de clases
                        • 32 Elementos de la arquitectura
                          • 321 Microsoft Foundation Class (MFC)
                            • 322Arquitectura Documento Vista
                            • 323Integrando Ambientes en Visual c++
                              • 324 Interfaz de Muacuteltiples Documentos (MDI)
                                • 325Recursos Diaacutelogos Menus y Barras de Herramientas
                                  • 326 Notacioacuten estaacutendar
                                  • 327 Estructura de datos persistencia y recuperacioacuten
                                    • 328Patrones de disentildeo utilizados
                                      • 33 Diagrama de secuencias
                                        • 331Ciclo de vida del software
                                          • 34 Elementos atoacutemicos de la Gramaacutetica
                                            • 341 Representacioacuten visual
                                              • 35 Gramaacutetica desarrollada
                                              • 36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias
                                                  • Capitulo 4 Pruebas y Resultados
                                                    • 41 Recursos teacutecnicos utilizados
                                                    • 42 Descripcioacuten del plan de pruebas
                                                    • 43 Resultados
                                                      • 431 Caso
                                                      • 432 Caso2
                                                      • 433 Caso
                                                          • Conclusiones y trabajos futuros
                                                            • Trabajos futuros
                                                            • Referencias
                                                            • Anexo A Configuracioacuten de Microsoft Visual C+t
                                                              • Figura 11 - Arquitectura de la suite cenidet-UML
                                                              • Figura 21 -Programacioacuten Visual
                                                              • Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de
                                                              • Figura 32 -Diagrama de Casos de Uso para el S3C
                                                              • Figura 33 -Modelo Conceptual
                                                              • Figura 34 - Diagrama de Clases -Control del Diagrama -
                                                              • Figura 35 - Diagrama de Clases - Patroacuten Visitor -
                                                              • Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento
                                                              • Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)
                                                              • Figura 38 -Dialogo Caracteriacutesticas del Objeto
                                                              • Figura 39 -Dialogo Mensaje
                                                              • Figura 3 IO - Menuacute de los Diagramas de Secuencias (estaacutendar)
                                                              • Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias
                                                              • Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)
                                                              • Figura 313 - Serializacioacuten
                                                              • Figura 314 -Modelo de cascada del ciclo de vida del software
                                                              • Figura 41 - Resultado del caso de prueba
                                                              • Figura 42 -Resultado del caso de prueba
                                                              • Figura 43 -Resultado del caso de prueba
                                                              • Figura 44 -Resultado del caso de prueba
                                                              • Tabla 11 - Tabla comparativa
                                                              • Tabla 31 -Prefijos estaacutendar de identificadores
                                                              • Tabla 32 -Elementos atoacutemicos del lenguaje
                                                              • Tabla 41 - Resumen de los resultados de las pruebas realizadas

i Referencias

Anexo A Configuracioacuten de Microsoft Visual C+t 60

Anexo B Guiacutea raacutepida de uso del sistema S3C

Tabla de Contenido

52 59

lt 111

Listado de Figuras

3

Figura 11 - Arquitectura de la suite cenidet-UML

Figura 21 -Programacioacuten Visual

Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de Secuencias Figura 32 -Diagrama de Casos de Uso para el S3C

Figura 33 -Modelo Conceptual

Figura 34 - Diagrama de Clases -Control del Diagrama -

Figura 35 - Diagrama de Clases - Patroacuten Visitor - Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento Vista Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)

Figura 38 -Dialogo Caracteriacutesticas del Objeto

Figura 39 -Dialogo Mensaje

Figura 3 I O - Menuacute de los Diagramas de Secuencias (estaacutendar)

Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias

Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)

Figura 313 - Serializacioacuten

Figura 314 -Modelo de cascada del ciclo de vida del software

Figura 41 - Resultado del caso de prueba 1

Figura 42 -Resultado del caso de prueba 2

Figura 43 -Resultado del caso de prueba 3

Figura 44 -Resultado del caso de prueba 4

Paacutegina

3

13

22

23

25

26

26

29

30

31

32

32

32

34

35

37

45

46 47

48

iv

Tabla 11 - Tabla comparativa

Tabla 31 -Prefijos estaacutendar de identificadores

Tabla 32 -Elementos atoacutemicos del lenguaje

Tabla 41 - Resumen de los resultados de las pruebas realizadas

Listado de Tablas

Paacutegina

6 33

38 49

V

Notacioacuten

La siguiente es la notacioacuten de la que se haraacute uso

ltCObjectgt

ltGetDocunteiztgt

MiClase MiMetodo

9 Liacutenea de Coacutedigo

Mensaje

Clase de la MFC ( Microsoft Fundation Class)

Meacutetodo de una clase de la MFC

Clase desarrollada Meacutetodo de una clase desarrollada

Liacutenea o Bloque de coacutedigo

Elemento del Diagrama de Secuencia

vi

I Introduccioacuten

L~ tesis se enfoca hacia el desarrollo de sistemas de software centrados en el modelado mediante diagramas de secuencias definidos por el Lenguaje de Modelado Unificado (UML) La investigacioacuten y el producto de la tesis estaacuten inmersos en la etapa del disentildeo de sistemas de software

El producto (prototipo) de la tesis denominado S3C permite la obtencioacuten de diagramas de secuencias de UML tomando como base la informacioacuten de un diagrama de clases y de varios documentos modelados con diagramas de Wamier (disentildeo detallado de los meacutetodos)

Para la elaboracioacuten de los diagramas de clases se hace uso del ambiente existente InverSOODA [HER03] Y para el modelado de los documentos Wamier se ha tomado el ambiente InverDDVi [WEN02] Ambos ambientes visuales son productos de tesis anteriores y se han integrado en un solo prototipo denominado SCUML (Suite cenidet - UML)

(i

S3C realiza un proceso automaacutetico para la obtencioacuten de los diagramas de secuencias en este proceso solo se requiere indicar el diagrama de clases del que se basaraacute La construccioacuten de los diagramas de secuencias en S3C estaacute soportada con una gramaacutetica visual relacional El propoacutesito de la gramaacutetica es validar la construccioacuten de los diagramas de secuencias de UML

En el aacutembito de los diagramas de secuencias de UML no existen aplicaciones comerciales oacute proyectos educativos que se apoyen en una gramaacutetica visual para soportar la construccioacuten de los diagramas de secuencias y tampoco existen aplicaciones que permitan a partir de los diagramas de clases y del disentildeo detallado de los meacutetodos generar automaacuteticamente los diagramas de secuencias

3

Los temas relacionados a esta tesis son Modelado de Sistemas UML Interfaz de Usuario Programacioacuten Orientada a Objetos y Gramaacuteticas Visuales

El capiacutetulo 1 es de conceptos generales se dan a conocer los antecedentes del proyecto los trabajos relacionados hipoacutetesis alcances y limitaciones

En el capiacutetulo 2 se define el marco teoacuterico de la tesis se describen temas como Modelado de sistemas de software disentildeo de sistemas de software modelado visual lenguajes visuales programacioacuten orientada a objetos y lenguaje de modelado unificado

El capiacutetulo 3 describe el desarrollo del ambiente visual se detalla el modelo conceptual la arquitectura y sus elementos los diagramas de secuencias y la gramaacutetica visual relacional que se desarrolloacute

En el capiacutetulo 4 se muestran los casos de pruebas y los resultados obtenidos Y al final se establecen las conclusiones y se dan propuestas para algunos trabajos futuros 3

1

Capiacutetulo I

Conceptos generalis

En eacuteste capiacutetulo se dan a conocer los antecedentes del proyecto de tesis los trabajos relacionados el problema que resolveraacute la hipoacutetesis a comprobar los alcances y limitaciones

Conceptos generales

11 Antecedentes

Actualmente en el cenidet (Centro Nacional de Investigacioacuten y Desarrollo Tecnoloacutegico) se trabaja en la construccioacuten de un conjunto de ambientes visuales para dar soporte al desarrollo con diagramas que define el estaacutendar UML para elaborar sistemas de software de manera completa raacutepida y eficaz El ambiente de modelado principal se ha denominado suite cenidet-UML y su arquitectura general se muestra a continuacioacuten en la Figura 11

Arquitectura de la suite cenidet-UML

Figura 11 Arquitectura de la suite cenidet-UML

a El producto de software resultante de eacutesta tesis lleva por nombre S3C y como se indica en la figura 11 Las tesis directamente relacionadas son InverSOODA [HER03] e

InverDDVi [WEN02]

InverSOODA (Sistema Orientado a Objetos para Disentildeo y Anaacutelisis incluyendo Ingenieriacutea Inversa) es un Ambiente Visual que permite la elaboracioacuten de diagramas de clases de un sistema de software Los diagramas de clases son una vista estaacutetica y en ella se describe las relaciones que existen entre las entidades llamadas clases Cada una de las clases se divide en tres partes nombre de la clase meacutetodos y atributos Este ambiente permite generar el coacutedigo fuente en lenguaje C++ de un diagrama construido y tambieacuten aplicando la ingenieriacutea inversa es posible obtener un diagrama a partir de un coacutedigo en C++ existente

InverDDVi (Disentildeo Detallado Visual incluyendo Ingenieriacutea Inversa) es un Ambiente Visual cuyo objetivo es apoyar en la elaboracioacuten de diagramas de disentildeo detallado utilizando una notacioacuten basada en Warnier Los diagramas de Warnier sirven para describir una secuencia loacutegica de acciones y mediante su simbologiacutea se logra plasmar definiciones de meacutetodos llamadas a otros meacutetodos ciclos comparaciones lectura de informacioacuten y escritura de informacioacuten Este ambiente permite generar el coacutedigo fuente en C de un diagrama construido y tambieacuten aplicando la ingenieriacutea inversa se puede obtener un diagrama de Warnier a partir de un coacutedigo en C que ya exista

i

3

Conceptos generales

12 Trabajos relacionados

Rational Rose de Rafional

Una de las herramientas mas populares del mercado que utiliza la notacioacuten UML y tiene la capacidad de reingenieriacutea de software para integrar sistemas existentes capacidad de mezclar diferentes lenguajes dentro de un mismo modelo ademaacutes de ingenieriacutea inversa sobre los componentes COM (Component Object Model) ActiveX y Java y con soporte de las arquitecturas MicrosoWCOM y CORBAIDL (The Common Object Request Broker Architecture)

Con Rational Rose se puede trabajar en grupo con capacidades para modelar y visualizar procesos de negocios y requerimientos de sistemas Tiene soporte para generar esquemas objetos-relaciones de bases de datos para realizar anaacutelisis de datos Cuenta con el soporte para analizar sitios Web en ASP (Active Server Pages) y JSP (Java Server Pages) Ademaacutes soporta los lenguajes Java CC++ Visual CC++ [RAT02] 9

SI -

Visio de Microsoft

Visio Enterprise 2002 permite crear diferentes tipos de diagramas como son

1 Diagramas de flujo 2 Planos de oficinas 3 Diagramas de aacuterbol 4 Diagramas de organizacioacuten 5 Liacuteneas de tiempo 6 Mapas geograacuteficos y direccionales 7 Diagramas de sitios Web 8 Diagramas de red 9 Diagramas de UML

Tiene las siguientes caracteriacutesticas diagramacioacuten e importacioacuten de servicios de directorio reingenieria de bases de datos disentildeo y documentacioacuten de bases de datos diagramacioacuten de software ingenieriacutea directa e inversa de coacutedigo replicacioacuten exacta por medio de diagramas de equipos y configuraciones de red diagramacioacuten automatizada y ambiente colaborativo

Visio da un conjunto completo de herramientas de diagramacioacuten de redes para planear y documentar claramente las redes existentes Ademaacutes para crear esquemas eleacutectricos mecaacutenicos y de procesos pueden crearse diagramas complejos con facilidad y poco entrenamiento

A las aplicaciones existentes se les puede realizar la ingenieriacutea inversa para obtener el disentildeo y tambieacuten crear nuevos disentildeos Proporciona herramientas para crear diagramas de bases de datos y es posible realizar ingenieriacutea inversa de esquemas existentes en bases de datos cliente servidor como SQL Server IBM Oracle y otros [MIC02]

4

Conceptos generales

e JVision 21 de Object Insight

JVision permite en la ingenieriacutea directa la creacioacuten de clases variables y meacutetodos con lo cual genera plantillas de coacutedigo para programadores en Java Los diagramas se pueden exportar a HTML La documentacioacuten puede integrarse con JavaDoc de Sun JVision da el soporte para ingenieriacutea inversa para el lenguaje Java

Se pueden crear todos los diagramas definidos por UML en los diagramas de secuencias da la oportunidad de dibujar clases liacuteneas liacuteneas de tiempo de vida y marca de destruccioacuten de objetos ofrece ademaacutes el soporte para las acciones de llamada regresar valor enviar accioacuten crear accioacuten y eliminar accioacuten [OBJO2]

MagicDraw 6 de No Magic

Es una herramienta CASE con soporte para trabajo en grupo Esta disentildeado para analistas 6 de negocios analistas de software programadores ingenieros de calidad y

documentadores Esta aplicacioacuten provee la capacidad para crear los diagramas definidos por UML (soporta UML 14) Cuenta con el soporte de ingenieriacutea inversa y generacioacuten de coacutedigo para C++ C Java y CORBNIDL Tiene integracioacuten con NetBeans se actualiza automaacuteticamente disponible en aacuterabe portugueacutes franceacutes italiano ingles (US) alemaacuten espantildeol japoneacutes y coreano

Tiene la caracteriacutestica de soportar la adaptacioacuten de los elementos a colores que el usuario defina Los diagramas pueden exportarse a imaacutegenes JPG EMF WMF EPS y DXF En los diagramas de secuencia da oportunidad de definir roles textos notas mensajes de varios tipos al mismo objeto recursivo ademaacutes de la relacioacuten a las notas y las liacuteneas de vida Es posible guardar los diagramas como imaacutegenes de mapas de bits o vectores Mantiene ademaacutes una vista pequentildea a escala del diagrama completo [NoA402]

e

SmariDraw Professional Plus de SmariDraw

Todos los dibujos pueden agregarse en las aplicaciones de Microsoft como son Word Excel PowerPoint Contiene maacutes de 50000 (1000 en la versioacuten estaacutendar) formas predefinidas ejemplos y plantillas Los diagramas pueden ser exportados a imaacutegenes WMF BMP JPG GIF TIF y otros Incluye un convertidor de archivos de VISIO

Con esta herramienta es posible crear diagramas de flujo diagramas de bloque diagramas de flujos de datos diagramas de organizacioacuten aacuterboles de decisioacuten disentildeo de redes Gantt diagramas de flujo de procesos diagramas de administracioacuten de calidad diagramas eleacutectricos diagramas mecaacutenicos diagramas quiacutemicos liacuteneas de tiempo planes de espacio posters mapas formas y tambieacuten da soporte para UML es posible dibujar objetos actores activacioacuten de los objetos mensaje mensaje de retorno mensaje asiacutencrono mensaje con tiempo liacutenea de vida del objeto marca de destruccioacuten del objeto y ciclos (descrito con un rectaacutengulo y una condicioacuten de salida) [SMA02]

5

Conceptos generales

Producto Soporta Diagramas de UML Secuencias

Creacioacuten automaacutetica de diagramas de

El Rational Rose El Visio

Jvision

Magic D r a w

a a El Fl El a El El

I ~

I ~

I -

Ambiente de modelado de

a a SmartDraw El

Tabla I Tabla comparativa

Todas las herramientas descritas anteriormente cuentan con caracteriacutesticas sobresalientes para el disentildeo y modelado de sistemas de software pero ninguna de ellas genera automaacuteticamente los diagramas de secuencia con base en los diagramas de clases y el disentildeo detallado de los meacutetodos asiacute tambieacuten ninguna de ellas realiza un caacutelculo de los canales de comunicacioacuten abiertos entre las clases que conforman el sistema

iexcla la A UML Editor in Java

13 Definicioacuten del problema

El modelado de sistemas utilizando el estaacutendar de UML en diversos productos comerciales prototipos de laboratorio elaborados en universidades y centros de investigacioacuten atienden la perspectiva baacutesica de la abstraccioacuten general del modelo esto es documentar el modelo del sistema que se requiere sin atender puntos importantes tales como

La generacioacuten automaacutetica de los diagramas de secuencias La correccioacuten de inconsistencias en los diagramas al crearlos de forma separada

El

6

sistemas de software

secuencias utilizando diagramas de a a a

Conceptos generales

Se hace necesaria la creacioacuten de un ambiente visual que permita obtener de forma automaacutetica los diagramas de secuencias en base a los diagramas de clases y al disentildeo detallado de los meacutetodos para facilitar la documentacioacuten la generacioacuten de coacutedigo y el mantenimiento de los sistemas

La obtencioacuten de los diagramas de secuencias estaacute basada en los Diagramas de Clases definidos por UML que son construidos con la herramienta InverSOODA junto con el disentildeo detallado de los meacutetodos construidos con Diagramas de Wamier elaborados con la herramienta InverDDVi

En el estaacutendar UML para la construccioacuten de los diagramas no existe actualmente una sintaxis expliacutecita definida solo existe impliacutecitamente en el uso de los elementos del diagrama por lo que se ha descrito una gramaacutetica visual de tipo relaciona1 como soporte para la construccioacuten de los Diagramas de Secuencias

n ai 14 Objetivo de la Tesis

Construir un ambiente visual que permita al usuario obtener el diagrama de secuencias de manera automaacutetica

141 Objetivos especiacuteficos de la tesis Crear una gramaacutetica que soporte la construccioacuten del diagrama de secuencias Construir de forma automaacutetica el diagrama de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodos

15 Hipoacutetesis de investigacioacuten

Es posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodos

16 Alcances y limitaciones del trabajo de tesis

Los alcances de la tesis se especifican a continuacioacuten

Se elaboroacute la arquitectura del sistema Se definioacute la gramaacutetica de soporte Se desarrolloacute la interfaz en Visual C++ haciendo uso de las MFC Se interactuacutea con los diagramas de clases de InverSOODA Se interachiacutea con el disentildeo detallado de los meacutetodos realizados por InverDDVI Se genera el diagrama de secuencias de forma automaacutetica

7

Conceptos generales

Limitaciones de la tesis

0 No se genera coacutedigo

La investigacioacuten se limita a los diagramas de clases para la vista estaacutetica de los sistemas de software y a los diagramas de Warnier para la vista dinaacutemica de los meacutetodos El ambiente no trabaja en red

No se modifican los archivos de InverSOODA No se modifican los archivos de InverDDVI No se recuperan diagramas de secuencias a partir de coacutedigo legado

4

8

Capiacutetulo 2

Narc0 teoacuterico

En eacuteste capiacutetulo se describen los temas usados para el desarrollo de la tesis iquestQue son los modelos iquestEn que parte del proceso de Ingenieriacutea del Software se usan los modelos o el modelado Se estudia la interfaz de usuario los lenguajes visuales y las gramaacuteticas visuales Se describe el Lenguaje de Modelado Unificado (UML) ademaacutes de la programacioacuten orientada a objetos por ser este paradigma en donde se enfoca este trabajo

Marco teoacuterico

21 Modelado de sistemas de software

un modelo es una abstraccioacuten de algo con el propoacutesito de entenderlo antes de construirlo El modelo omite detalles no esenciales haciendo maacutes faacutecil su manipulacioacuten que la entidad original [BLA98] Un modelo es la simplificacioacuten de la realidad [RUM99] Los propoacutesitos de los modelos son

Probar una entidad fisica antes de construirla Establecer mejor comunicacioacuten con los clientes Visualizar el problema y el sistema desde una mejor perspectiva Reducir la complejidad [BLA98] Capturar y precisar requerimientos y conocimiento del dominio Pensar acerca del disentildeo del sistema Capturar decisiones de disentildeo en una fomia separada que cambia a partir de los requerimientos Generar productos Organizar buscar filtrar obtener examinar y editar informacioacuten acerca de un sistema Explorar muacuteltiples soluciones econoacutemicas Manejar sistemas complejos [RUM99]

El modelado es una probada y bien aceptada teacutecnica de Ingenieriacutea de Software [RUM99] El modelado es parte central de todas las actividades que conducen a la produccioacuten de buen software Se construyen modelos para comunicar la estructura deseada y revisar el comportamiento de nuestro sistema Se construyen modelos para visualizar y controlar la arquitectura del sistema Se construyen modelos para comprender mejor el sistema que estamos construyendo muchas veces descubriendo oportunidades para la simplificacioacuten y la reutilizacioacuten Se construyen modelos para controlar el riesgo [BOO99] La razoacuten fundamental por la que modelamos es porque nosotros construimos modelos que nos ayudan a entender mejor el sistema que estamos desarrollando [RUM99]

El modelado nos permite [RUM99] 1 Visualizar como es el sistema o como queremos que sea 2 Especificar la estructura del sistema 3 Plantear nuestras guiacuteas en la construccioacuten delsistema 4 Documentar las decisiones que hemos tomado

En las etapas del desarrollo del software el modelado es usado en el disentildeo el disentildeo del sistema es la primera etapa en donde se da la aproximacioacuten baacutesica de la solucioacuten al problema seleccionado ademaacutes se decide por la estructura (arquitectura del sistema) y el estilo de la solucioacuten

La arquitectura del sistema provee el contexto sobre el cual se tomaraacuten decisiones mas detalladas en las etapas subsecuentes del disentildeo [BLA98] En el disentildeo modelamos el sistema y encontramos su forma (incluida la arquitehra) para que soporte todos los 3 -

10

Marco teorico

i

4 -I

requisitos -incluyendo los requisitos no funcionales y otras restricciones- que se le suponen [JAC99] Los propoacutesitos del disentildeo son

Adquirir una comprensioacuten en profundidad de los aspectos relacionados con 10s requisitos no funcionales y restricciones relacionadas con los lenguajes de programacioacuten componentes reutilizables sistemas operativos tecnologiacuteas de distribucioacuten y concurrencia tecnologiacuteas de interfaz de usuario tecnologiacuteas de gestioacuten de transacciones etc Crear una entrada apropiada y un punto de partida para actividades de implementacioacuten subsiguientes capturando los requisitos o subsistemas individuales interfaces y clases Ser capaces de descomponer los trabajos de implementacioacuten en partes mas manejables que puedan ser llevadas a cabo por diferentes equipos de desarrollo teniendo en cuenta la posible concurrencia Capturar las interfaces entre los subsistemas Esto ayuda cuando reflexionamos sobre la arquitectura y cuando utilizamos interfaces como elementos de sincronizacioacuten entre diferentes equipos de desarrollo Ser capaces de visualizar y reflexionar sobre el disentildeo utilizando una notacioacuten comuacuten Crear una abstraccioacuten independiente de la implementacioacuten del sistema en el sentido de que la implementacioacuten es un refinamiento directo del disentildeo que rellena lo existente sin cambiar la estructura Esto permite la utilizacioacuten de tecnologiacuteas como la generacioacuten de coacutedigo y la ingenieriacutea de ida y vuelta entre el disentildeo y la implementacioacuten [JAC99]

22 Interfaz de usuario (Mecanismos de interaccioacuten)

El crecimiento de las computadoras personales vendidas en los ~ O rsquo S lanzoacute con fuerza el ldquofaacutecil de usarrdquo como una de las caracteriacutesticas mas importante de un producto de computadora

Las interfaces graacuteficas de usuario no son nuevas se pueden encontrar en las paredes de cuevas al sur de Francia en las piraacutemides de Egipto y en las paredes de muchas ciudades [iUM92] Para el usuario de un sistema interactivo la comunicacioacuten es tan importante como la computacioacuten Para los usuarios regularmente la interfaz es el sistema [HIX93]

Disentildeo de Interfaz Seguacuten Hackos [HAC98] las interfaces estaacuten en todo donde se trabaja con

o Controles en productos de hardware o Etiquetas y sentildeales en el hardware o Pequentildeas pantallas de cristal liquido en maacutequinas de cualquier tipo o Pantallas para aplicaciones de software para terminales de computadoras centrales

Marco teoacuterico

o pantallas para aplicaciones de software en computadoras Personales sistemas operativos como Windows OS2 DOS Macintosh U n b Y Otros

0 Paacuteginas de un sitio WEB 0 Sistemas de ayuda y manuales en-liacutenea 0 Tutoriales incrustados y otros tipos de soporte de funcionamiento O Esquemas de formas y otros documentos

una interfaz es el medio con el cual los usuarios interactuacutean con el producto 0

sistema para lograr SUS objetivos

Interfaz Usable

Para que una interfaz sea usable debe ser transparente y darles a los usuarios la capacidad de lograr cumplir sus metas de forma efectiva y eficiente

Los beneficios presentados en el uso de las interfaces de usuario [TH190] Disfrutar el sistema El usuario disfruta trabajar con un sistema que cuenta con una interfaz bien disentildeada y que le da la funcionalidad y acceso a los recursos de una manera clara y sencilla Proporciona nuevas habilidades Elimina al usuario concentrarse en acciones que la propia interfaz y el sistema hacen dando como resultado que el usuario solo se concentre en lo importante del trabajo Delegacioacuten de tareas La interfaz de usuario permite al usuario no conocer los detalles de la tarea esto es la computadora atiende los detalles de las tareas mientras que el usuario se concentra en asuntos de maacutes alto nivel Seguridad El usuario no necesita estar en lugarespeligrosos para hacer su trabajo

Se da la mayor posibilidad para que el usuario tenga acceso al conocimiento utilizando un sistema interactivo Haciendo las cosas a la primera Las tareas se ejecutan en un orden correcto definido lo que da como resultado un trabajo bien terminado sin necesidad de repetir evitando asiacute altos costos Computando LOS usuarios pueden calcular datos sin necesidad de conocer el proceso para obtener los resultados

Desarrollo

El disentildeo de interfaz es un negocio bastante dificil Eacuteste combina dos complicadas disciplinas psicologiacutea y ciencias de la computacioacuten Estas disciplinas tienen un fondo cultural muy diferente la psicologiacutea atiende a la gente (comprensioacuten y entendimiento) las ciencias computacionales a las maacutequinas (matemaacuteticas y precisioacuten) El disentildeo de las buenas interfaces requiere que estas dos perspectivas esteacuten unidas [THi90]

Hackos dice que las interfaces dan simplicidad y elegancia al trabajo necesario y a la vida e los usuarios Si no es obvio al usuario pero es raacutepida para aprender [HAC98] ademaacutes define caracteriacutesticas comunes de las interfaces usables

o Hacen que el flujo de trabajo sea familiar o confortable o Soportan el estilo de aprendizaje de los usuarios

12

Marco teoacuterico

Visualizacioacuten de Entrenamiento visual Para controlar Soportar interaccioncs Programar con informacioacuten visual visuales expresiones visuales

o Compatibles con los ambientes de trabajo de los usuarios o Se extienden sobre un concepto de disentildeo que es familiar al usuario o Tienen consistencia de presentacioacuten que los hace parecer maacutes confiable y faacuteciles de

aprender o Usan lenguaje y figuras familiares al usuario o faacuteciles de aprender

Datos o informacioacuten acerca de datos

23 Lenguajes Visuales

Los lenguajes visuales son un nuevo paradigma para expresar los sistemas computacionales Ellos ofrecen la posibilidad de manipular directamente los objetos Un lenguaje visual consiste de sentencias visuales Para lenguajes visuales basados en iacuteconos cada sentencia visual es un arreglo espacial de objetos O iacuteconos graacuteficos [CHA90]

Un lenguaje visual es concebido como una coleccioacuten de figuras obtenidas por un arreglo graacutefico de objetos en dos o maacutes dimensiones Los lenguajes visuales pueden ser modelados sintaacutecticamente a traveacutes de un vocabulario un conjunto de relaciones usadas para componer las figuras y un conjunto de reglas describiendo las figuras pertenecientes al lenguaje Los objetos graacuteficos de un vocabulario de un lenguaje visual se caracterizan por contar con un conjunto de atributos Los atributos de un objeto graacutefico pueden ser atributos graacuteficos atributos sintaacutecticos y atributos semaacutenticos [MAR98]

Un lenguaje de programacioacuten visual puede ser informalmente definido como un lenguaje el cual usa algunas representaciones visuales [SHV88]

Programa ylo Disentildeo de Lenguajes de programacioacuten visual ejecucioacuten software Diagramas iconos Formas

Programacioacuten Visual [SHU88]

Gramaacuteticas para la especificacioacuten de lenguajes visuales [MAR98]

a) Gramaacuteticas texfuales generalizadas Este tipo de gramaacutetica provee una adaptacioacuten apropiada de la concatenacioacuten de siacutembolos para dos dimensiones Su principal ventaja es que conservan los elementos teoacutericos de las gramaacuteticas textuales y los eficientes algoritmos de anaacutelisis de eacutestos uacuteltimos Su principal desventaja es que eacutestas gramaacuteticas no son tan poderosas y soacutelo pueden especificar clases restringidas de lenguajes visuales

13

Marco teorico

b) Meacutetodos basados en gramaacuteticas de grafos Un ejemplo de este tiPo de gramaacuteticas son las gramaacuteticas de red Las oraciones generadas con gramaacuteticas de red son grafos dirigidos con siacutembolos en los nodos Estos grafos son llamados redes Una produccioacuten de eacuteste tipo de gramaacuteticas es de la siguiente forma

a - t p E

donde a y p son redes y E es una forma de conectar a p cuando a es conectada a otra red anfitriona

La mayor desventaja es que las gramaacuteticas de red no han probado ser totalmente uacutetiles para la especificacioacuten de gramaacuteticas arbitrarias por la complejidad para rescribir grafos y al hecho de que no todo lenguaje visual estaacute compuesto exclusivamente por grafos

C) Gramaacuteticas de multiconjuntos de atributos En estas gramaacuteticas las producciones rescriben conjuntos o multiconjuntos de siacutembolos que tienen atributos con informacioacuten sobre geometriacutea o semaacutentica La reescritura se controla con restricciones sobre los atributos de los siacutembolos en el lado derecho de las producciones

Un ejemplo de eacutestas gramaacuteticas es la Gramaacutetica Coordinada que especifica notacioacuten matemaacutetica de dos dimensiones En esencia las producciones en una gramaacutetica coordinada n-coordinada libre del contexto tienen la siguiente forma

A -t a donde C F

Todos los siacutembolos de eacuteste tipo de gramaacutetica tienen n atributos geomeacutetricos A es un siacutembolo no terminal a es una cadena no vaciacutea de siacutembolos C es una restriccioacuten sobre los atributos de los siacutembolos en a y F es una expresioacuten que computa los atributos de los siacutembolos de A en teacuterminos de los atributos de los siacutembolos en a no importando el orden de los siacutembolos en a

d) Gramaacuteticas PosicionaZes Las gramaacuteticas posicionales son un formalismo para la definicioacuten e implementacioacuten de lenguajes visuales las gramaacuteticas posicionales extienden naturalmente a las gramaacuteticas libres de contexto Una gramaacutetica libre de contexto posicional PG es una six-tupla (N T S P POS PE) donde

N es un conjunto finito no vaciacuteo de siacutembolos no terminales T es un conjunto finito no vaciacuteo e siacutembolos terminales con N n T = $I S E N es el siacutembolo no terminal de inicio P es un conjunto finito de producciones POS es un conjunto finito de identificadores de relacioacuten binaria PE es un evaluador pictoacuterico

14

Marco teorico

Cada produccioacuten en P tiene la siguiente forma

A -+ X I R I X R2 X ~ I Rm1 xm A

e) Gramaacuteticas de Relacioacuten de siacutembolos Eacuteste es un formalismo sintaacutectico para describir un lenguaje visual donde cada oracioacuten dentro del lenguaje se representa como un conjunto de objetos visuales y un conjunto de relaciones entre objetos

El alfabeto de siacutembolos Vt y el conjunto de relaciones entre siacutembolos Vr una oracioacuten de relacioacuten de siacutembolos w sobre Vt y Vr es un par ( M R) donde

M es un conjunto de elementos-s (v i) con v E Vt y i es un nuacutemero natural R es un conjunto de elementos-r de la forma r (Xi Yj) con Xi Yj E M r E Vr y una relacioacuten r esta contenida entre Xi y Yj

Una gramaacutetica de relacioacuten de simbolos es el conjunto de seis elementos G = (Vn Vt Vr S P R) donde Vn es un conjunto de siacutembolos no terminales Vt es un conjunto de siacutembolos terminales Vr es un conjunto de relaciones entre siacutembolos S es el siacutembolo inicial y P es un conjunto de reglas de reescritura (producciones de elementos-s)

f) Gramaacuteticas relacionales Este tipo de gramaacutetica pertenecen a las gramaacuteticas libres de contexto

La gramaacutetica relaciona1 (RGrsquos) es una 6-tupla G (N C S R Attr P) donde

N C S R Attr P

es un conjunto finito de siacutembolos no terminales es un conjunto de siacutembolos terminales es un siacutembolo distinguido en N llamado siacutembolo inicial es un conjunto finito de siacutembolos de relacioacuten es un conjunto finito de siacutembolos de atributos es un conjunto de producciones de la forma A-gt apF donde A E N a E (nlo)+ Donde n E N cr E E

8 Es un conjunto de relaciones de la forma (r x y) donde r E R y xy son enteros que hacen referencia a un miembro de a y tambieacuten una expresioacuten de la forma (a i) donde a E Attr e i es un entero que hace referencia a un miembrode a

F Es un conjunto de declaraciones de asignacioacuten de caracteriacutesticas de la forma (a O)=x donde a E Attr y x es un entero que hace referencia a un miembro de a o a una expresioacuten de la forma (a i)

15

Marco teoacuterico

24 Programacioacuten orientada a objetos

L~~ meacutetodos orientados a objetos organizan la informacioacuten Y el procesamiento que manipula esta informacioacuten de acuerdo a los objetos delrsquomundo real que la informacioacuten describe [BRO97l

Beneficios de las teacutecnicas orientadas a objetos [BR097] Estabilidad del sistema Mantenibilidad Componentes reusables Confiabilidad Accesibilidad de los datos Participacioacuten del usuario

Seguacuten Graddy Booch la programacioacuten orientada a objetos es ldquoun meacutetodo de implementacioacuten en el que los programas se organizan como colecciones cooperativas de objetos cada uno de los cuales representan una instancia de alguna clase y cuyas clases son todas miembros de una jerarquiacutea de clases unidas mediante relaciones de herenciardquo [JOY 981

Programacioacuten orientada a objetos esencialmente significa programacioacuten usando objetos [JAC93] Los lenguajes orientados a objetos deben soportar los siguientes conceptos

Objetos Abstraccioacuten de datos Encapsulamiento Clases e Instancias Herencia entre clases Polimorfismo

Las propiedades fundamentales de la Programacioacuten Orientada a Objetos son

a Abstraccioacuten Son ideas conceptos y propiedades que se describen en forma general eliminando los detalles Es una estructura de datos y los meacutetodos que manipulan a esos datos

b Encapsulamiento Son las fronteras propias de un objeto bien definidas las cuales protegen los detalles de su representacioacuten interna

c Ocultacioacuten de la informacioacuten Es la propiedad en la que los objetos pueden hacer uso para impedir que otros objetos los usuarios o incluso los programadores conozcan coacutemo estaacute distribuida la informacioacuten

d Herencia Es la propiedad que tiene una clase para heredar atributos y comportamiento a otras clases

e Polirnorfismo Es la propiedad que permite que una entidad pueda cambiar a diferentes formas efectuaacutendose de manera dinaacutemica en tiempo de ejecucioacuten

16

Marco teoacuterico

t

Clases Es la especificacioacuten de una familia de objetos es la declaracioacuten de un tipo de objetos Tambieacuten se dice que una clase es la descripcioacuten de un conjunto de objetos con un comportamiento similar y que esta compuesta de Datos (o atributos) y Meacutetodos o (rutinas acciones operaciones)

Objeto Un objeto es una entidad en la cual se almacenan datos y los meacutetodos o funciones que controlan dichos datos Un objeto es una abstraccioacuten de alguna cosa del mundo real que contiene datos que lo describen y operaciones que solo tienen acceso a esos datos [BR097l Los elementos de los que esta conformado un objeto son

a Las relaciones permiten que el objeto se integre en la organizacioacuten b Las propiedades son los datos que caracterizan el estado de un objeto distinguiendo

asiacute a un objeto determinado de los restantes que forman parte de la misma organizacioacuten

c Los meacutetodos son las operaciones que pueden realizarse sobre la estructura del objeto es decir las acciones que cambian el estado de un objeto y que el objeto es capaz de ejecutar a traveacutes de mensajes y que tambieacuten pone a disposicioacuten de sus descendientes a traveacutes de la herencia

Mensajes Son solicitudes para que se lleve a cabo la operacioacuten indicada y se produzca un resultado

Las razones principales para introducir la tecnologiacutea de objetos son los beneficios de dicha tecnologiacutea

Aumento de la fiabilidad Aumento de la productividad del desarrollador Desarrollo maacutes raacutepido Mejor calidad maacutes alta

Incremento en escalabilidad Mejores estructuras de informacioacuten Incremento de adaptabilidad Reduccioacuten del coacutedigo fuente

Mantenimiento maacutes faacutecil y reduccioacuten de costo

Los elementos de reutilizacioacuten son las clases y objetos

25 Lenguaje de Modelado Unificado (UML)

UML (Unified Modeling Language por sus siglas en ingleacutes Lenguaje de Modelado Unificado) es un lenguaje de modelado visual de propoacutesito general que es utilizado para especificar visualizar construir y documentar las partes de un sistema de software El lenguaje estaacute basado en un pequentildeo nuacutemero de conceptos centrales que la mayoriacutea de los desarrolladores de tecnologiacutea orientada a objetos pueden aprender y aplicar faacutecilmente [RUM99]

17

Marco teoacuterico

y UML Pasado Presente y Futuro

L~~ lenguajes de modelado orientado a objetos aparecieron a mediados de 10s 70rsquos Varias teacutecnicas influenciaron estos lenguajes El nuacutemero de lenguajes de modelado incrementoacute desde menos de 10 hasta maacutes de 50 entre 1989 y 1994 Muchos modeladores teniacutean problemas para encontrar un lenguaje de modelado que satisficiera todas sus necesidades Notablemente aparecioacute Boochrsquo93 y la evolucioacuten continuoacute a OMT y Fusioacuten

OOSE (Object-Oriented Software Engineering) estaacute enfocado a la ingenieriacutea de negocios y anaacutelisis de requerimientos dando un excelente soporte orientado a casos de uso OMT-2 es especialmente expresivo para anaacutelisis y sistemas de informacioacuten de datos grandes Boochrsquo93 fue particularmente expresivo para el disentildeo y fases de construccioacuten de proyectos y popular para aplicaciones de ingenieriacutea intensiva

Grady Booch y Jim Rumbaugh iniciaron el desarrollo de UML en 1994 al unificar sus meacutetodos independientes Booch y OMT En 1995 Ivar Jacobson se unioacute a Racional eacutesta unioacuten logroacute que el meacutetodo OOSE se incorporara La unificacioacuten establecioacute que debiacutean activar el modelado de sistemas utilizando conceptos orientados a objeto asiacute como crear un lenguaje usable tanto para las maacutequinas como para los humanos

A

Muchas organizaciones se unieron al consorcio UML y dedicaron recursos al trabajo hacia el fortalecimiento de la definicioacuten de UML Esta colaboracioacuten produjo un lenguaje de modelado expresivo poderoso y generalmente aplicable En la forma actual de UML se espera que sea base de muchas herramientas incluidas las de modelado visual simulacioacuten y ambientes de desarrollo

R UML es abierto y no-propietario y aunque define un lenguaje preciso no es barrera para futuras mejoras en conceptos de modelado Se usan muchas teacutecnicas de punta pero se esperan teacutecnicas adicionales que influencien futuras versiones de UML puede ser extendido sin redefinir el nuacutecleo

c

Mientras el rehuacuteso basado en componentes se ha favorecido ampliamente cada vez mas esto no significa que las teacutecnicas basadas en componentes reemplazaraacuten las teacutecnicas orientadas a objetos Hay solo sutiles diferencias entre la semaacutentica de componentes y clases [ALC03]

Un opaco rendimiento caracterizoacute el mercado de anaacutelisis modelado y disentildeo en el 2000 en su transicioacuten de las viejas herramientas CASE (Computer Aided Software Engineering) a algo maacutes dinaacutemico y mejor adaptado para satisfacer las necesidades de los desarrolladores para el cambio raacutepido en los ambientes de negocio

El mercado de anaacutelisis modelado y disentildeo lograraacute obtener un crecimiento positivo en varios de los siguientes antildeos por varias razones El mercado seraacute manejado principalmente por la necesidad de desarrolladores a obtener aplicaciones para lanzarse al mercado raacutepidamente asiacute tambieacuten por el intereacutes creciente y uso de una nueva especie de herramienta y por el intereacutes creciente de los desarrolladores en usar UML reglas de negocios y adaptadores de componentes para construir aplicaciones [RIKUI]

z -

18

Marco teoacuterico

UML se ha hecho el estaacutendar para los desarrollos de modelado de negocios administracioacuten de requerimientos anaacutelisis y disentildeo programacioacuten y pruebas Los objetivos primarios de UML en el disentildeo [RAT97j

o Dar a los usuarios un lenguaje visual expresivo de modelado listo para usarse para que puedan desarrollar y cambiar los significados de sus modelos

o Suministrar mecanismos de extensibilidad y especializacioacuten para extender los conceptos centrales

o Ser independiente de lenguajes de programacioacuten particulares y procesos de desarrollo

o Impulsar el desarrollo de las herramientas Orientadas a Objeto en el mercado o Soportar conceptos de desarrollo de alto nivel como colaboracioacuten marcos de

componentes reutilizables patrones y componentes o Integrar las mejores praacutecticas

9 El aacutembito de UML

UML es un lenguaje para especificacioacuten construccioacuten visualizacioacuten y documentacioacuten de artefactos de un sistema de software UML es la fusioacuten de los conceptos de Booch OMT y OOSE El resultado es un simple comuacuten y ampliamente usado lenguaje de modelado para usuarios de estos y otros meacutetodos UML se enfoca en un lenguaje de modelado estaacutendar no en un proceso estaacutendar los autores de UML recomiendan un proceso de desarrollo manejado por casos de uso de arquitectura central iterativo e incremental [iiquest4T97l

Para la definicioacuten de sistemas de software en UML se definen diagramas Un diagrama es la representacioacuten graacutefica de un conjunto de elementos este se visualiza la mayoriacutea de las veces como un grafo conexo de nodos (elementos) y arcos (relaciones) Los diagramas se dibujan para visualizar un sistema desde diferentes perspectivas de forma que un diagrama es la proyeccioacuten de un sistema uumlML incluye nueve diagramas [B0099]

4 -

I Diagrama de clases 2 Diagrama de objetos 3 Diagrama de casos de uso 4 Diagrama de secuencias 5 Diagrama de colaboracioacuten 6 Diagrama de estados 7 Diagrama de actividades 8 Diagrama de componentes 9 Diagrama de despliegue

Diagramas de secuencias Un diagrama de secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten comportamiento

Un diagrama de secuencias muestra un conjunto de mensajes acomodados en una secuencia de tiempo eacuteste diagrama muestra la interaccioacuten en un esquema de dos - dimensiones [RUM99]

19

Marco teoacuterico

Y -

Un diagrama de secuencia es un diagrama de interaccioacuten que resalta la ordenacioacuten temporal de los mensajes Un diagrama de secuencia presenta un conjunto de objetos y los mensajes enviados y recibidos por ellos Los objetos suelen ser instancias (con nombre o sin nombres) de clases pero tambieacuten pueden representar instancias de otros elementos tales como colaboraciones componentes y nodos Los diagramas de secuencia se utilizan para describir la vista dinaacutemica de un sistema [B0099]

Usar los diagramas de secuencia es mostrar la secuencia que existe en un caso de uso [RUM 991

Los diagramas de secuencia tienen dos dimensiones Una dimensioacuten que representa el tiempo Otra dimensioacuten que representa los diferentes objetos que participan en la secuencia de eventos requeridos para completar el propoacutesito [MOuuml98]

El principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildea las interacciones de los objetos [DAN02]

20

Capiacutetulo 3

DesawoCCo de Ia herramienta

En este capiacutetulo se describe el desarrollo del Ambiente Visual Se describe el modelo conceptual del sistema la arquitectura asiacute como tambieacuten los elementos que componen la Arquitectura Se estudian los Diagramas de Secuencias de UML y algunos Patrones de Disentildeo de los que se hace uso para el mejor desarrollo del sistema Se describe a detalle la Gramaacutetica Visual Relaciona1 utilizada para el de Ambiente de desarrollo

I CENIOET 1FNTRO DE INFORMACION

Desarrollo de la herramienta

t i i

Actualmente existe en el cenidet un Ambiente Visual de Modelado de Clases llamado InverSOODA este Ambiente Visual tiene la capacidad de realizar la generacioacuten automaacutetica de coacutedigo de las clases en C++ a partir del modelo especificado Ademaacutes se puede realizar la Ingenieria Inversa de un coacutedigo legado para obtener el modelo de clases Aunado a este trabajo existe el Ambiente Visual denominado InverDDVi con el cual se puede realizar el Disentildeo Detallado de los Meacutetodos de las Clases con diagramas de Warnier Asiacute tambieacuten es posible obtener el modelo aplicando la Ingenieriacutea Inversa a un coacutedigo legado en C++

Ambos trabajos son retomados en este proyecto para la automatizacioacuten en la obtencioacuten de los Diagramas de Secuencias de UML La figura 31 muestra el modelo propuesto de ingenieriacutea directa

Extraer informacioacuten del diagrama de

rsquo rsquo

Diagrama de 11 clases I o

detallado de

detallado de

o meacutetodos

i ir---- Construir el

secuencias i

Modelo de Ingenieriacutea I directa automaacutetica

I

Figura 31 Modelo de Ingenieria Directa Autombtica de los Diagramas de Secuencias

Para la construccioacuten automaacutetica de un diagrama de secuencias se toma como base a un diagrama de Clases El modulo ldquoExtraer informacioacuten del diagrama de Clasesrdquo sirve para obtener el nombre y los meacutetodos descritos en cada uno de las clases que existan en el diagrama de Clases

22

Desarrollo de la herramienta

Con base en la informacioacuten que se tiene se abren los archivos correspondientes a los diagramas de Warnier El proceso que se emplea sobre cada uno los diagramas de Warnier llamado ldquoExtraer informacioacuten de los disentildeos detallados de los meacutetodosrdquo sirve para recopilar el conjunto de las llamadas de cada meacutetodo definido

En el siguiente paso (ldquoReconocer llamadas a meacutetodosrdquo) consiste en identificar si los meacutetodos que estaacuten descritos en los diagramas de Warnier tambieacuten lo estaacuten en el diagrama de Clases correspondiente

El paso ldquoConstruir los diagramas de secuencias automaacuteticamenterdquo realiza una validacioacuten de los meacutetodos definidos en los diagramas de Clases con los meacutetodos definidos en los diagramas de Warnier Este paso crea una estructura de datos con la secuencia de las llamadas y la recorre para crear los objetos y los mensajes en el diagrama de secuencias

AI terminar la creacioacuten automaacutetica del diagrama de secuencias se dispone de la r opcioacuten de guardar

31 Disentildeo de la Arquitectura

Para definir los procesos que el sistema va a realizar es necesario llevar a cabo un anaacutelisis de requisitos los cuales pueden ser expresados mediante diagramas de Casos de Uso Los Casos de Uso son una descripcioacuten textual narrativa de los procesos de un sistema

311Requisitos (Diagrama de Casos de uso)

Los casos de uso en realidad no son un artefacto de anaacutelisis orientado a objetos estos describen simplemente procesos y pueden ser igualmente efectivos en un proyecto tecnoloacutegico no orientado a objetos Son usados en un paso preliminar a la descripcioacuten de requerimientos de un sistema [LAR971 La Figura 32 muestra el diagrama de casos de uso que especifica al S3C

9

S3C (Diagramas de Secuencias)

usuario I Modelado de

I

Figura 32 Diagrama de Casos de Uso para el S3C

23

Desarrollo de la herramienta

Descripcioacuten de los Casos de Uso

Caso de Uso ldquoDiagramas de Secuenciasrdquo Se inicia cuando el actor ldquousuariordquo solicita la creacioacuten de un Diagrama de Secuencias Se establece la forma de la construccioacuten automaacutetica de los diagramas de secuencias de UML Se hace uso del Modelado de Clases y del Modelado del disentildeo detallado de los meacutetodos

Escenario de Eacutexito 1 Se obtiene la informacioacuten de las clases del modelado de clases 2 Se obtiene la informacioacuten del modelado del disentildeo detallado de los meacutetodos 3 Se realiza la construccioacuten automaacutetica de los diagramas de secuencias

1 En el modelo de clases no hay informacioacuten o estaacute incompleta 2 En el modelo del disentildeo detallado de los meacutetodos no hay informacioacuten o estaacute

incompleta

Escenario de Falla

Caso de Uso ldquoModelado de Clasesrdquo El diagrama de Clases se utiliza para obtener los nombres de clases y los nombres de los meacutetodos de cada clase

Escenario de Eacutexito 1 Se abre el modelo 2 Se procesa para obtener la informacioacuten de las clases (nombres de clases y nombres

de meacutetodos)

Escenano de Falla h 1 No se puede abrir el modelo J 2 El modelo esta vaciacuteo

Caso de Uso ldquoModelado del Disentildeo detallado 1 los meacutetodosrdquo El disentildeo detallado de los meacutetodos se realiza con diagramas de Warnier aquiacute se establecen las llamadas a funciones dentro del sistema y es aquiacute donde se identifica el dinamismo que se representaraacute en los diagramas de secuencias

Escenario de Eacutexito 1 Se abre el modelo 2 Se realiza la identificacioacuten de las llamadas existentes

Escenario de Falla 1 No se puede abrir el modelo 2 El modelo esta vaciacuteo

24

Desarrollo de la herramienta

Clase Objeto ni I Diagrama I n ____ Nombre Descripcioacuten

i

Mensaje

Tipo

En el Anaacutelisis Orientado a Objetos se crea una especificacioacuteii del dominio del problema y de los requeriinientos desde la perspectiva de una clasificacioacuten por objetos y del entendimiento de los teacuterminos usados en el dominio del problema Una descomposicioacuten del dominio del problema involucra una identificacioacuten de conceptos atributos y asociaciones que son considerados importantes dentro del dominio El resultado puede ser expresado en un Modelo Corzcepttraf el cual es ilustrado en un conjunto de diagramas que definen conceptos (objetos) [LAR97]

312Modelo Conceptual

El modelo conceptual visto en la Figura 33 no es una descripcioacuten de componentes de software representa conceptos en el domino del problema en el mundo Teal [LAR97l

313Diagramas de clases

Por cuestiones dc espacio las clases de la arquitectura del sistema estaraacuten referidas en varios diagramas que de alguna manera estaacuten relacionados entre si

Una de las partes maacutes importantes del Ambiente Visual S3C es la estructura de clases ltCCraJicogt la cual se refiere al control de los diagramas eacutesta por su naturaleza podriacutea considerarse el nuacutecleo del sistema La manipulacioacuten y control de los diagramas estaacute definido en una estructura de clases organizada con el patroacuten de disentildeo Composite que se muestra en la Figura 34

25

Desarrollo de la herramienta

CRecursividadDS CMensajeDS CObjetoDS CDiagramaDS

I Cvisitor I

CApuntadorDS CDblClickDS CAsocAdjusterDS CSelectorDS

26

Desarrollo de la herramienta

n 32 Elementos de la arquitectura

Es necesario describir los elementos que dan soporte a la arquitectura del ambiente donde se implementaraacute el sistema en este caso Microsoft Visual (MV) C++ 6 El MV C++ es un marco de aplicacioacuten poderoso basado en Windows se integran ademaacutes del lenguaje C++ (compilador y enlazador) el programa de desarrollo de programas en lenguaje C para Windows (SDK) la Microsoft Foundation Class Library AppWizzard Classwizard AppStudio y WorkBencli

La Microsoft Foundation Class Library comprende una biblioteca de clases de C++ y es considerada como el nuacutecleo del MV C++

321Microsoft Foundation Class (MFC)

La libreriacutea Microsoft Foundation Class (MFC) es una interfaz orientada a objetos que tiene las siguientes metas de disentildeo

o

Reduccioacuten significante de esfuerzo al escribir una aplicacioacuten para Windows Velocidad de ejecucioacuten comparable a las APIrsquos del lenguaje C Miacutenimo tamantildeo de coacutedigo Capacidad para llamar cualquier funcioacuten de Windows en C directamente Faacutecil conversioacuten de aplicaciones existentes en C a C++ Faacutecil uso de APIrsquos de Windows con C++ como con C Faacutecil uso de complicadas caracteriacutesticas de abstracciones poderosas como ActiveX soporte para base de datos impresioacuten barras de herramientas y barras de estado El API de Windows en C++ si usa tan efectivamente como las caracteriacutesticas mismas del lenguaje C++

La mayoriacutea de las clases de la Libreriacutea de la Microsoft Foundation Class son derivadas de una clase base ltCObjectgt que es la raiacutez de la jerarquiacutea de clases ltCObjectgt da uacutetiles capacidades a las clases que derivan de ella

La jerarquiacutea que existe en las clases derivadas de ltCObjectgt es la siguiente

Arquitectura de Aplicacioacuten Excepciones Servicios de Archivos Arreglos Listas Mapas Servicios de Internet Sockets Sincronizacioacuten Soporte para base de datos D A 0

27

Desarrollo de la herramienta

i

r

Liacutenea de Comandos Menuacute Dibujo Graacutefico Dibujo Graacutefico de Objetos Soporte de Control Soporte de Ventanas

Soporte para base de datos ODBC

o Marco de Ventanas o Barras de control o Hojas de propiedades o Cajas de Dialogo o Vistas o Controles

322Arquitectura Documento Vista

Por defecto las aplicaciones creadas con la MFC usan un modelo de aplicacioacuten que separa los datos del programa de las vistas de interaccioacuten con el usuario En eacuteste modelo un objeto documento de MFC lee y escribe datos en un almacenamiento persistente Un objeto vista administra el despliegue de datos suministrando al usuario los datos para ser seleccionados o editados La vista le comunica al documento cualquier cambio en los datos La razoacuten maacutes conveniente para seguir este modelo es cuando se necesita muacuteltiples vistas del mismo documento (como en una hoja de caacutelculo y un graacutefico)

La arquitectura documentovista hace faacutecil el soporte de muacuteltiples vistas y muacuteltiples tipos de documentos asiacute como la divisioacuten de ventanas y otras caracteriacutesticas de interfaz de usuario Pero el corazoacuten de la arquitectura son cuatro clases (Mostradas en el aacuterbol de clases de la Figura 36)

ltCDocumerrtgt (o ltCOleDocuinentgt) - Se instancia un objeto de este tipo para almacenar y controlar los datos del programa ltCViewgt (o una de sus clases derivadas ltCScrotlViewgt ltCFormViewgt ltCEditView ltCRecordViewgt ltCDaoRecordView ltCtreeViewgt ltCListViewgt b ltCrichEditViewgt) - Un objeto es usado para desplegar los datos y administrar la interaccioacuten del usuario con los datos ltCFrameWndgt (o una de sus variantes) - Establece el marco sobre el que trabajaraacuten una o mas vistas de un documento ltCDocTemolategt (o ltCSingIeDocTemplategt o ltCMultiDocTemplategt) - Coordina la existencia de uno o maacutes documentos de un tipo dado y administra la correcta creacioacuten de los documentos vistas y objetos ventanas para cada tipo

i

28

Desarrollo de la herramienta

______________ 2 Wiew

I - - __ - ------a ________________

323Integrando Ambientes en Visual C t t

Las aplicaciones de Interfaz de Documento Uacutenico (SDI) soporta muacuteltiples tipos de documentos pero este soporte es para un solo objeto documento Debido a esta restriccioacuten y aunado a la necesidad de tener varios objetos documentos a la vez se determina la utilizacioacuten del modelo Interfaz de Muacuteltiples Documentos (MDI) indicado en la Figura 37

324Interfaz de Muacuteltiples Documentos (MDI)

Una aplicacioacuten de Interfaz de Muacuteltiples Documento (MDI) permite la creacioacuten de plantillas para el manejo de los documentos eacutesta plantilla tiene la forma

rn-pDocTemplate = new CMultiDocTernplate ( I DR-SCUMLTY PE RUNTIME-CLASS (CSCUMLDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CTheView))

AddDocTernplate ( rn-pDocTemplate )

Cada plantilla describe una relacion del tipo de documento con la vista asociada La definicioacuten de la plantilla para el ambiente que controla los diagramas de secuencias es la siguiente

29

Desarrollo de la herramienta c

m-pTernplateSeqDlag = new CMultiDocTernplate ( IDR-DS-SJCTYPE RUNTIME-CLASS (CSeqDiagDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CSeqDiagView) )

AddDocTernplate( rn-pTernplateSeqDiag )

Esta plantilla hace uso de la clase CCliildFrame que por defecto el ambiente Visual C++ construye y esto es debido a que no se requieren caracteriacutesticas extras en las ventanas de las que proporciona dicha clasc En un caso en el que se requiriera un comportamiento diferente de la vista tendriacutea que crearse una nueva clase con las caracteriacutesticas deseadas

Vista Documento

Vista

I- Vista Documento I [ Tip- F Vista

L Figura 37 Modelo Interfaz de Muacuteltiples Documentos (MDI)

Para integrar otro Ambiente que utilice otro tipo de documento es necesario definir otra plantilla de la misma forma mencionada Debe tomarse en cuenta los siguientes puntos

Es necesario definir el nombre (mqTemplateNOMBRE) El IDR del tipo que se requiere que sea el documento En la primera liacutenea RUNTIME CLASS debe indicar la clase ltCDocumentgt que desea La segunda liacutenea RUNTIME-CLASS soacutelo la cambia a otra clase si requiere de otro manipulador de ventanas de lo contrario deje que ltCChildFramegt se haga cargo

-

30

Desarrollo de la herramienta

En la uacuteltima liacutenea referente a RUNTIME-CLASS se debe indicar la clase ltCViewgt que desea usar Para finalizar se usa la instruccioacuten AddDocTernplate para finalizar la definicioacuten del template (mgTemplateNOMBRE)

325 Recursos Diaacutelogos Mertuacutes y Barras de Herrattriertias

Son varios los recursos con los que se puede contar al crear un proyecto en Microsoft Visual C++ Los diaacutelogos son un recurso disponible que son utilizados para visualizar ingresar yo modificar informacioacuten que se requiera En el Ambiente Visual que se desarrolla son varios los diaacutelogos que se utilizaraacuten y eacutestos se describen a continuacioacuten

El Diaacutelogo ldquoCaracteriacutesticas del Obietordquo (Figura 38) identifica el nombre del Objeto y la descripcioacuten del mismo Este diaacutelogo se muestra cuando se presiona doble clic sobre un objeto del diagrama

I Nombre

Desciipcion

Figura 38 Dialogo Caracteriacutesticas del Objeto

El Diaacutelogo ldquoMensaierdquo (Figura 39) muestra el nombre del mensaje que puede ser modificado ademaacutes se visualizan el Identificador del Mensaje el tipo de Mensaje asiacute tambieacuten el origen y destino del mensaje

31

Desarrollo de la herramienta

Nornbie delMensaje Edit

IDentificador del Mensaje Edil Tipo de Mensaje (Edil

Edit Objeto Origen

Objeto Destino IEdit

i25El A Figura 39 Dialogo Mensaje

El menuacute es otro de los recursos del que se puede disponer para organizar el ambiente que se estaacute creando Para eacuteste caso en particular no se hizo modificaciones al menuacute estaacutendar (Figura 310) que Visual C++ presenta Los cambios significativos son el manejo del tipo de documento para los Diagramas de Secuencias

Archivo Editar Yer VenLana AyGda

Figura 310 Menuacute de los Diagramas de Secuencias (estaacutendar)

Otro importante recurso del que uno se puede valer en Visual C++ es la barra de herramienta personalizada la cuaacutel es construida en el Editor de Recursos Se ha construido una barra (Figura 311) con los elementos graacuteficos de los Diagramas de Secuencia de UML

Figura 311 Barra de Herramientas de los Diagramas de Secuencias

Es recomendable que al utilizar barras de herramienta personalizada se defina en el tamantildeo estaacutendar ya que puede experimentar problemas al momento de ejecutar la aplicacioacuten

Ademaacutes puede usar la propiedad TBBS-CHECKGROUP en una barra de herramientas para establecer que los botones puedan quedar presionados hasta que un botoacuten diferente sea presionado No olvide que la numeracioacuten inicia con cero ( O )

vuriableToolBurSetButtonStyle(OTBBSCHECKGROUP)

32

Desarrollo de la herramienta

Prefijo ID IDC IDD IDP IDR IDS

326 Notacioacuten estaacutendar

Los nombres descriptivos de los recursos se asocian a un valor uacutenico Para una mayor claridad eacutestos nombres mantienen un prefijo que describe el tipo de recurso asociado (vea la Tabla 31) [MIC99]

Tipo de Recurso Comandos de Menuacute Controles y recursos Cuadros de diaacutelogo Cadenas de solicitud para cuadros de mensaje Menuacute principal barras de herramienta tabla aceleradora y el icono Cadenas

IDR IDD IDC ID

200 - 299 3000 - 3999 34000 - 34999

Estos son los rangos de valores establecidos para el proyecto S3C Si se utiliza el coacutedigo fuente y se planea agregar otro proyecto verifisue que no se invadan estos nuacutemeros para evitar problemas

Para facilitar auacuten maacutes los trabajos futuros se ha definido una estructura de carpetas (ver Figura 312) para incluir en cada una las Clases correspondientes a cada tesis en desarrollo

33

Desarrollo de la herramienta

ill ~~ -

-I SCUML classes + U A N T L R + U App + 0 ClassDiagrams + 0 Common + a Java

t $2 SequenceDiagiams

+ WarnierDiagrams

iJ PackageDiagrams

12 StaterChartDiagrams

+

- f Classview I Resourceview 1 FileView ]

~ ~

Figura 312 Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)

327Estructura de datos persistencia y recuperacioacuten

Existe una gran cantidad de tipos de datos estructuras clases y meacutetodos de los que se puede hacer uso para una mejor y maacutes faacutecil obtencioacuten de los resultados A continuacioacuten hago comentarios en tipos de datos y meacutetodos en los que podriacutea tener problemas

CTypedPtrList

AI usar este tipo de dato o alguno relacionado que le permita utilizar el meacutetodo ltCTvrgtedPtrListGetNextgt tenga especial precaucioacuten al usarlo ya que al devolver el valor requerido la variable POSITION usada no se queda apuntando a ese valor en particular salta al inmediato siguiente de la lista

Si se realiza una creacioacuten dinaacutemica con punteros para los elementos de una CTypedPtrList Despueacutes de haberlo agregado a la lista evite el delete para borrar esta Usted deseando liberar la memoria no lo haga ya que eliminara directamente el elemento de la lista

POSITION

Es un valor usado para denotar una posicioacuten de un elemento en una coleccioacuten Pero CUIDADO no se refiere a un iacutendice es una referencia (no consecutiva) de punteros muy diferente a un iacutendice

CString

Auacuten cuando el operador de comparacioacuten == (igual a) es permitido para ser utilizado en las cadenas evite su uso ya que en ocasiones aunque cuando la e

34

Desarrollo de la herramienta

compilacioacuten no indique error alguno en la ejecucioacuten no realizaraacute lo que se necesita Recomiendo que utilice CStringCompare ()

Para eliminar el contenido de un CString utilice CStringEmpty() ya que asignar a la cadena un ldquonrdquo podriacutea causarle problemas

Serializacioacuten

Una forma en que se puede guardar informacioacuten y recuperarla de manera eficaz es mediante la serializacioacuten de objetos La serializacioacuten es un proceso que permite escribir un objeto en un archivo y tambieacuten leerlo

Para que la serializacioacuten se lleve a cabo son necesarios tres objetos un objeto de tipo ltCFilegt que represente el archivo un objeto de tipo ltCArchivegt que ofrece el entorno para la serializacioacuten y la clase del objeto a ser serializado debe ser heredada de ltCObjectgt y sobrescribir el meacutetodo ltSerializegt para que se encuentre de tal forma en que pueda ser serializado (vea la Figura 313)

Objeto a ser serializado 1

1 CArchive

[f --=I- ---7 Archivoexi

u Figura 313 Serializacioacuten

328Patrones de disentildeo utilizados

Se ha planteado la definicioacuten de una arquitectura de clases utilizando patrones de disentildeo debido a que algunos de ellos hacen maacutes faacutecil la extensioacuten de la funcionalidad y mantenimiento

35

Desarrollo de la herramienta

El patroacuten Composite es utilizado para crear de manera uniforme el diagrama sobre el que se trabaja (ver Figura 34) manteniendo una jerarquiacutea de clases uniforme las clases maacutes bajas en la jerarquiacutea definen primitivas de objetos graacuteficos

Se aplica el patroacuten de disentildeo Iterator para hacer recorridos en listas de objetos para realizar diversas operaciones Otro patroacuten de disentildeo del que se hace uso es el Visilor (ver Figura 35)

Para otras actividades que se realizan podriacutea pensarse en que se deberiacutean aplicar otros patrones pero se han evitado algunos (como el patroacuten de disentildeo Builder) para evitar incrementar la complejidad en la arquitectura ya que ai mantener el modelo de la MFC de documentovista la funcionalidad del patroacuten de disentildeo Builder es faacutecilmente reemplazado si se hiciera Uso de eacuteste se aumentariacutea la complejidad excesivamente (nos llevariacutea a perdemos en ocasiones en el paso de mensajes entre clases) dantildeando la facilidad de la arquitectura

33 Diagrama de secuencias

Un Diagrama de Secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten escenario Oacute comportamiento se usan para definir el curso loacutegico de accioacuten de un posible camino a seguir en la resolucioacuten de un problema Seguacuten John Daniels [DANO2] ldquoel principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildean las interacciones de los objetosrdquo

Los Diagramas de Secuencias se utilizan en el modelado de la implementacioacuten de sistemas de software ademaacutes son aplicables en el modelado de requisitos para establecer las comunicaciones existentes entre actores yo clases del sistema Con eacutestos diagramas se logran hacer descripciones de los escenarios y los comportamientos del sistema Con los Diagramas de Secuencias es posible definir protocolos de comunicacioacuten con paso de mensajes ya que dan esa flexibilidad que se requiere Ademaacutes los Diagramas de Secuencias contienen informacioacuten suficiente para que puedan ser transformados a los diagramas de colaboracioacuten [RUM Ol][BOO Oil

331Ciclo de vida del software

Considerando cualquier modelo de ciclo de vida del software (en la figura 314 se muestra el Modelo de cascada) el aacutembito directo de eacuteste Ambiente Visual es en el disentildeo aunque tiene sus vertientes en la codificacioacuten y mantenimiento

36

Desarrollo de la herramienta

Diseno

Codificacibn

I I I I Mantenimiento I

igura 314 Modelo de cascada del ciclo de vida del software

34 Elementos atoacutemicos de la Gramaacutetica

Definicioacuten de los elementos atoacutemicos del lenguaje y su contenido

1 Actor- Representa roles de entidad externos al sistema con el que interactuacutea directamente Los actores pueden ser humanos dispositivos u otros sistemas

2 ClaseObjeto- Determina una Clase u Objeto participante en la interaccioacuten

3 Mensaje-Es una comunicacioacuten entre objetos que contiene informacioacuten Eacuteste se representa con la finalidad a que una accioacuten sea llevada a cabo

4 Mensaje con tiempo- Tiene la misma finalidad que el mensaje la diferencia es que con eacutel se representa un atributo de tiempo

5 Mensaje asiacutencrono Es un mensaje que ocurre en el tiempo de manera independiente a otros mensajes

6 Mensaje de destruccioacuten de objeto- Es un mensaje cuya finalidad es indicar la destruccioacuten del objeto destino

7 Mensaje de creacioacuten de objeto- Es un mensaje que indica la creacioacuten de un objeto

8 Llamada al mismo objeto (Recursividad)- Es usado para modelar llamadas recursivas en el que una operacioacuten es invocada por el mismo objeto

37

Desarrollo de la herramienta

9 Destruccioacuten del objeto (AutodestrucciOacuten)- Puede o no modelarse es representada con una X al final de la liacutenea de vida del objeto

Elementos aulomaacuteticos

1 Liacutenea de Vida- Representa la vida del objeto durante la interaccioacuten

2 Activacioacuten- Muestra el periacuteodo de tiempo en el cual el objeto alguna operacioacuten

341RepresentaciOacuten visual

Representacioacuten visual de los elementos atoacutemicos del lenguaje

Actor

_- A

Mensaje

Mensaje de Creacioacuten de

Objeto

ClaseObjeto

I

Mensaje de retorno

Mensaje de Destruccioacuten de

Objeto

abla 32 Element(

Activacioacuten

Mensaje con tiempo

Autodestruccioacuten

x

atoacutemicos del lengi

taacute realizz

Texto ===I (letra)+ (letra I

numero) letra= AZ I az numero = 09

I

Recursividad ~

I

i j e

io

38

u

Comentario

iexcl

Conector de Comentario

35 Gramaacutetica desarrollada

La gramaacutetica que se propone es una gramaacutetica visual del tipo relacional Una gramaacutetica relacional pertenece a las gramaacuteticas libres de contexto es una 6-iupla G (N C S R Attr P) donde

N es un conjunto finito de siacutembolos no terminales C es un conjunto de siacutembolos terminales S es un siacutembolo distinguido en N llamado siacutembolo inicial R es un conjunto finito de siacutembolos de relacioacuten Attr es un conjunto finito de siacutembolos de atributos P es un conjunto de producciones

Entonces definiendo nuestra gramaacutetica G (N C S R Attr P)

N = Diagrama GrupoClaseObjeto

S = Diagrama

R = mensaje mensajeTiempo mensajeRetomo mensajeAsincrono mensajecrea mensajeDestruye autodestruccioacuten recursividad

R

Attr = entrada salida entradacrea

39

Desarrollo de la herramienta

Definiendo la posicioacuten de los atributos en los elementos visuales

entradacrea ObetaClase

entrada

salida

P =

Diagrama I GrupoClaseObjeto (mensaje (mensajeRetorno

(salida 1) (entrada 2) ) (salida 2) (entrada 1) )

- Diagrama 0 GrupoClaseObjeto

(mensaje (mensaje (mensajeRetomo (mensajeRetomo (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entradacrea 2) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 1) ) (salida 1) (entrada 1) )

entrada

salida

40

Desarrollo de la herramienta

s

-

GrupoClaseObjeto - 1 1 I 2 (mensaje (mensaje (mensajeRetorno (mensajeRetorno (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entradacrea 2) ) (salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 1) ) (salida I ) (entrada I ) )

1 En las gramaacuteticas relacionales una produccioacuten estaacute acompantildeada de las posibles

relaciones que puedan generarse En la primera produccioacuten Diagrama produce a un Actor seguida de un GrupoClaseObjeto el Actor inicia la interaccioacuten con un mensaje y recibe el mensaje de retorno al finalizar la interaccioacuten La segunda y tercera produccioacuten son similares debido a que un GrupoClaseObjeto contiene dos ClaseObjeto que se relacionan de la misma forma

Existe un elemento de la gramaacutetica llamado Attr (Atributo) el cual define la parte de los elementos visuales donde se establecen las relaciones Se han determinado dos atributos (entrada y salida) que para nuestro propoacutesito estaraacuten establecidos en la liacutenea de vida de cada elemento visual (Actor y ClaseObjeto)

Los Comentarios y la Activacioacuten no se consideran en la gramaacutetica Los comentarios son libres de incluirse y relacionarse con cualquier elemento y relacioacuten mencionada anteriormente y la activacioacuten existe siempre que se presente un mensaje (o podriacutea omitirse) Estas consideraciones se realizaron para hacer auacuten maacutes faacutecil la gramaacutetica ya que si se trata de realizar un sistema las restricciones de estos elementos pueden mantenerse en el lenguaje de programacioacuten en el que se desarrolle el sistema

36

Precondiciones

El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias

1 El diagrama de Clases debe existir y estar completo 2 Debe existir un archivo con un diagrama de Warnier por cada diagrama de Clases y

con el mismo nombre de archivo (excepto la extensioacuten del archivo) 3 En el uacutenico diagrama de Warnier de cada Clase se deben modelar todos los meacutetodos

de la Clase 4 No realizar declaraciones de meacutetodos

41

Desarrollo de la herramienta

5 Debe existir un meacutetodo lsquomain()rsquo en el diagrama de Clases

Restricciones

Los meacutetodos deben mantener nombres distintos en las diferentes Clases

Metodologiacutea para la obtencioacuten automaacutetica de los Diagramas de Secuencias

1 Seleccionar el diagrama de Clases

2 Se construye una lista con los nombres de las Clases y los Meacutetodos

3 Se verifica si exista el meacutetodo lsquomain()rsquo en alguna Clase Se busca la existencia de una uacutenica Clase

a La Clase que contenga lsquomain()rsquo se va al inicio de la lista de Clases

b Si no existe lsquomain()rsquo SE TERMINA EL PROCESO

4 Se verifica la existencia de los archivos que contienen el Disentildeo Detallado de los meacutetodos en Wamier para cada una de las Clases si alguno falta SE TERMINA EL PROCESO

5 Se procesa cada uno de los modelos del Disentildeo Detallado de los Meacutetodos generando una lista de secuencias de llamadas por cada uno de los meacutetodos

6 Se verifica que cada llamada corresponda a alguacuten meacutetodo existente (del diagrama de Clases) De no existir ese meacutetodo la llamada entra a una estructura que

7 Se crea una lista de secuencia

a Se inicia con lsquomain()rsquo b Se recorre cada una de las llamadas de los meacutetodos c Se considera invaacutelido el caso de que un meacutetodo intente una llamada

recursiva al meacutetodo lsquomain()rsquo

8 Se muestra un diaacutelogo de resultados en el que se indican las llamadas que no se encnotraron definidas y que pueden ser Llamada a libreriacutea oacute Llamada Erroacutenea

42

Capiacutetulo 4

Prue6as y su6taaacuteos

En eacuteste capiacutetulo se da a conocer el detalle de las pruebas y de los resultados obtenidos Se describen los casos de prueba con los que se realizoacute la evaluacioacuten del sistema asiacute tambieacuten se presentan comentarios acerca de los resultados obtenidos

Pruebas y Resultados

41 Recursos teacutecnicos utilizados

Para llevar a cabo las pruebas al sistema S3C se utilizaron los siguientes equipos de Coacutemputo

Computadora de escritorio

256MB RAM Disco Duro 80G Monitor 17rdquo SAMSUNG

AMD Athlon XP 1600+ I4Ghz

Computadora de escritorio Intel Pentium 4 - 128MB RAM Disco Duro 40G Monitor 15rdquo i -

42 Descripcioacuten del plan de pruebas

Las pruebas establecen el Uacuteltimo paso desde donde es posible evaluar la calidad y descubrir los errores Las pruebas y la validacioacuten del software se utilizan para comprobar que el sistema cumple con las expectativas del usuario

En esta seccioacuten se describen los casos de prueba que se realizaron al prototipo de S3C en conjunto a la suite cenidet-UML Para cada uno de los casos se presenta el objetivo el procedimiento que se siguioacute para la prueba y se muestran los resultados obtenidos - _

Las pruebas a realizar son los siguientes

Caso 1 Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Caso 2 Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Wamier

Caso3 Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Wamier

Caso4 Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo 5

44

Pruebas y Resultados

43 Resultados

431 Caso 1

5 Y

IZ =

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoSirdquo 4 Seleccionar el archivo ldquoVENTASrdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 41 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

s3c iuevo Proyecto SCUM1

Diagrama de clases

lvendedor I L

3

salida

venta prod

4 venia-oferta vcntaprod =

salida 6

Figura 41 Resultado del caso de prueba 1

45

Pruebas y Resultados

432 Caso 2

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Warnier (almacenwar cajawar vendedorwar) que ya cxisten (del caso de prueba I )

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoNordquo 4 Agregar las siguientes Clases con los respectivos meacutetodos y atributos

a Claseldquovendedorrdquo Meacutetodos ldquoventa mainrdquo b Claseldquoalmacenrdquo Meacutetodos ldquoentrada salidardquo c Claseldquocajardquo Meacutetodos ldquoventagrodrdquo

5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 42 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

Diagrama de daseo lisgrama dcsccucncis

MOIDOC Anivo

venta prod

salida

1 Ycrdquo1a 2

I 4 vcrdquolD~o1cn venta prod gt

salida 6 i Figura 42 Resultado del caso de prueba 2

46

Pruebas y Resultados

r

433 Caso 3

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Warnier

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 43 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

5

Error al tratar de abrir el archivo A bZwar

Aceptar i

Faltan Archivos de Disentildeos Detallados de Meacutetodos 1 1 A No se puede crear el diagrama de secuencias

Figura 43 Resultado del caso de prueba 3

47

Pruebas y Resultados

434 Caso 4

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 44 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

lsquo I

~ _ i i _ l _ Repaado ~~ ~ ~ 6~ ampA Figura 44 Resultado del caso de prueba 4

48

Pruebas y Resultados

PRUEBA DESCNPCION CASO 1 Mostrar la funcionalidad del

Sistema S3C a partir de un

44 Anaacutelisis de Resultados

RESULTADOS Se comproboacute la correcta funcionalidad del Sistema S3C a partir de un diagrama

CASO 3

CASO4

I diagrama de Clases cxistcnte I de Clases existente CASO 2 I Mostrar la funcionalidad del I Sc comproboacute la corrccta funcionalidad

Sistema S3C a partir de un del Sistema S3C a partir de un diagrama diagrama de Clases que se de Clases que se construye al momento construye al momento Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el Secuencias si falta alguno de los diagrama de Secuencia si falta alguno diagramas de Warnier Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el secuencias si hace falta el meacutetodo diagrama de Secuencias al faltar el ldquomain ()rdquo meacutetodo ldquomain()rdquo

de los diagramas de Warnier

Los resultados obtenidos de cada uno de los casos establecidos demuestran que se validoacute la funcionalidad del prototipo con los requisitos definidos en el alcance de este proyecto

a lt

49

Conclusiones y Tru6ajos Futuros

Aquiacute se dan a conocer las conclusiones y se describen los posibles trabajos futuros para la continuacioacuten de eacuteste proyecto

F

51 Conclusiones

Conclusiones y trabajos futuros

Se ha creado un Ambiente Visual que permite obtener de forma automaacutetica los Diagramas de Secuencias en base a los diagramas de Clases y al disentildeo detallado de los meacutetodos descritos con diagramas de Warnier cumpliendo con los objetivos planteados para este trabajo

La tesis aporta principalmente La generacioacuten automaacutetica de los diagramas de secuencias y la eliminacioacuten de inconsistencias al mantener una validacioacuten directa de los diagramas de clases y los diagramas de Warnier que son utilizados

Esta validacioacuten es lograda a traveacutes del uso de la gramaacutetica visual relaciona1 que se ha definido (veacutease el capiacutetulo 3) Esta gramaacutetica visual establece reglas para la correcta construccioacuten de los diagramas de secuencias

P De esta manera se establece que la hipoacutetesis ldquoEs posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodosrdquo Es verdadera

52 Trabajos Futuros

Un Diagrama de Secuencias puede convertirse en un Diagrama de Colaboracioacuten por lo tanto un trabajo futuro es la construccioacuten automaacutetica de un Diagrama de Colaboracioacuten a partir de uno de Secuencias existente

Es posible calcular la meacutetrica de acoplamiento al tener un Diagrama de Secuencias construido

La Ingenieriacutea directa de un Diagrama de Secuencias estableciendo la validacioacuten en la construccioacuten de todos los elementos visuales que UML define

La propagacioacuten de las modificaciones de un Diagrama de Secuencias a los Diagramas de Clases y los Diagramas de Warnier

La modificacioacuten del coacutedigo fuente mediante los cambios establecidos en un Diagrama de Secuencias

51

[ALC03]

[BLA98]

[B0099]

[BOOOi]

[BR097]

[CHA90]

[DAN02]

[GLA02]

[HAC98]

[HER03]

4

Alcate1 Computer Associates International inc Electronic Data Systems Corporation Hewlett-Packard Company IBM Corporation I-Logix IntelliCorp Kabira Technologies Kennedy Carter Microsoft Corporation Object Management Group Oracle Corporation Project Technology Ptech Inc Rational Software Corporation Reich Technologies Softeam Taskon A S Telelogic Unisys Corporation ldquoOMG Unified Modeling Language Specificationrdquo Version 15 Unified Modeling Language 2003

Blaha Michael Rumbaugh James Premerlani William Eddy Frederick Lorensen William ldquoObject-oriented modeling and designrdquo Prentice Hall 484 Paacuteginas ISBN 0-13-629841-9 QA-769-03S-B53-19981998

Booch Grady Rumbaugh James Jacobson Ivar ldquoEl lenguaje unificado de modeladordquo Addison Wesley 432 Paacuteginas ISBN 84-7829-028-1 1999

Booch Grady Rumbaugh James Jacobson Ivar ldquoThe Unified Modeling Language User Guiderdquo Addison Wesley 2001

Brown David ldquoAn introduction to object-oriented analysis objects in plain Englishrdquo John Whiley amp Sons Inc 700 Paginas ISBN 0-471-1 1028-0 QA-769-035-B76-1997 1997

Chang Shi-Kuo ldquoVisual Languages and visual programmingrdquo Plenum Press 340 Paacuteginas ISBN 0-306-43428-8 QA-7665-V57-1990 1990

Daniels John ldquoModeling with a sense of purposerdquo Design - IEEE Software JanuaryEebmary 2002

Glasgow Universidad Reino Unido ldquoA UML Editor in Javardquo (lthttplstudentsdcsglaacuWstudentspainjfproject-reportproject-re port-htmV4thYearReporthtrnlgt 2002)

T Hackos JoAnn C Redish Janice ldquoUser and Task Analysis for Interface Designrdquo Wiley Computer Publishing 488 Paacuteginas ISBN QA-769-U83- H33-1998 1998

Hemaacutendez Velaacutezquez M ldquoIngenieriacutea inversa de coacutedigo fuente en C++ para la obtencioacuten de su disentildeordquo Tesis AT-379 (03-0334) 2003

Conceptos generales

[HIX93]

[JAC93]

[JAC99]

[JOY98]

[LAR97]

[MAR]

[MIC99]

[MIC02]

[MOU98]

Hix Deborah Hartson H Rex ldquoDeveloping user interfacesrdquo 381 Paacuteginas ISBN 0-471-57813-4 QA-769-U83-H59-1993 1993

Jacobson Ivar Christerson Magnus Jonsson Patrik Overgaard Gunnar ldquoObject oriented software engineeringrdquo Addison Wesley ISBN 0-20 1 - 54435-0 QA-7676-D47-J63-1993 1993

Jacobson Ivar Booch Grady Rumbaugh James ldquoEl proceso unificado de desarrollo de softwarerdquo Addison Wesley 438 Paacuteginas ISBN 84-7829-036- 2 1999

Joyanes Aguilar Luis ldquoProgramacioacuten orientada a objetosrdquo McGruw Hill ISBN 84-481-0590-7 1998

Larman Craig ldquoAplying UML and Patternsrdquo Prentice Hull 507 Paacuteginas ISBN 0-13-748880-7 QA-769-035-L37-1997 1997

Marriot Kim Meyer Bemd ldquoVisual Language Theoryrdquo Springer 381 Paacuteginas P-935-V567-1998 1998

Microsoft ldquoMicrosoft Visual C++ 6 manual del programadorrdquo McGraw Hill ISBN 84-481-2127-9 QA-7673-Cl53-23718-1999 1999

Microsoft ldquoVisiordquo (lthttpwwwmicrosoftcomofficevisiogt 2002)

B Mourao Luis X ldquoUniversal Modeling Language Part 11 UML Notation - Case Sequence and Collaboration Diagramsrdquo Lan Times Magazine (~httpwwwlantimescomltpartsdiscussdiscuss6Ohtm~) 1998

No Magic ldquoMagicDrawrdquo (lthttpwwwmagicdrawcomgt 2002)

Object Insight ldquoJvisionrdquo (lthttpwwwobject-insightcomgt 2002)

Rational Software Microsoft I Hewlett-Packard Oracle Sterling Software MCI Systemhouse Unisys ICON Computing IntelliCorp i-Logix IBM ObjectTime Platinum Technology Ptech Taskon Reich Technologies Sofieam ldquoUML Summaryrdquo Version 11 Unified Modeling Language 1997

Rational ldquoRational Roserdquo (lthttpwwwrationalcomproductosrosegt 2002)

Rikki Kirzner ldquoAnalysis Modeling and Design Tools Market Forecast and Analysis 2001-2005rdquo Bulletin Published Under Services Application Design and Construction Tools Application Development and Deployment Strategies Documento Nuacutemero 24809 Junio 2001

53

Conceptos generales

[RIM92] Rimrner Steve ldquoGraphical user interface programmingrdquo 423 Paacuteginas

1992

Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language reference manualrdquo Addison Wesley 550 Paacuteginas ISBN 0-201-

ISBN 0-8306-2475-9 ISBN 0-8306-2472-4 (pbk) QA-769-083-R55G

[RUM99]

30998-X QA-7676-D47-R85-1999 1999

[RUM299] Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language user guiderdquo Addisoiz Wesley 482 Paacuteginas ISBN 0-201 -57 168-4 QA-7676-D47-B66-1999 1999

[SMA02] SmartDraw ldquoSmartDrawrdquo (lthttpwwwsmartdrawcomgt 2002)

[SHU88] 9 - Shu Nun C ldquoVisual Programmingrdquo Van Nostrand Reinhold ISBN 0-422- 28014-9 ISBN 0-422-01 164-4 QA-7665-S55 1988

[THI90] Thimbleby Harold ldquoUser Interface Designrdquo Acm press 470 Paacuteginas ISBN 0-201 -41 61 8-2 QA-769U83-T772~- 1990 1990

[WENO2] Wences Diaz MF ldquoModelo de Ingenieriacutea Inversa para la obtencioacuten de disentildeo detallado basado en LEVISSrdquo Tesis (02-0014) 2002

54

Anexo A

Conampuracioacuten de Microsoft Vkua[C++ 6 O

Este anexo indica las configuraciones que se utilizaron para la compilacioacuten de SCUML y s3c

Configuracioacuten de Microsoft Visual c++ 60

Debido a la integracioacuten de los proyectos de InverSOODA e InverDDVi con S3C se cumplioacute con los requisitos previos de ambos proyectos

El compilador usado en el proyecto fue el Microsoft Visual C++ 60

Para el cumplimiento con la funcionalidad de InverSOODA se instaloacute el ANTLR la versioacuten 271 Se descargoacute del sitio l i l l ~ ~ ~ ~ ~ ~ t l ~ l ~ - ~ t - ~ la versioacuten mencionada en un archivo comprimido (en formato zip) Se colocoacute el paquete descomprimido en el directorio ldquoDIANTLR-271 I rdquo

Recomiendo ampliamente que el directorio principal de ANTLR se copie en el directorio raiacutez de cualquier unidad de disco debido a que experimenteacute problemas de compilacioacuten cuando ANTLR no se encontraba en el directorio raiacutez

Io015

Source Browser AlttF12 I u c Ersquo V I

Visual Component Mgnager

- - ~ ~ ~ ~~

P2 Registrar control

A Contenedor de prueba de controles ActiveX

A Usor de objetos OLE y COM

Buacutesqueda de errores

A Y++ MFC Iracer

Customize options

~ - q- ~ Macro

Eecord Quick Macro Cbl+ShiR+R Pay Quick Macro Ctrl+ShiR+P

En el menuacute Tools (Herramientas) seleccione el sub-menuacute Options ltopcionesgt

56

Configuracioacuten de Microsoft Visual C++ 60

En la siguiente ventana de diaacutelogo debe agregar la direccioacuten en donde se encuentra el ANTLR

Agregar la ruta del directorio de ANTLR hasta el subdirectorio

libcpp

Editor I Tabs I Debug I Compatibility 1 Build Dneclolies I a I Chow directories for - Platfolm -

- Directories I x ) 4 jWin32 -] llnclude files

m cancd I

57

Configuracioacuten de Microsoft Visual C t+ 60

Se ha creado una libreriacutea (anrlrliblib) de ANTLR la cual ya estaacute situada en el directorio del proyecto SCUML (ISCUML) y no debe ser movida o eliminada

I

Geneial 1 Debug I CC++ Link I Category

Output file name bebugSCUMLexe

Objectljibrary modules 4 anllrliblib

li Generate debug lnfo r Ignore all defaull lbaries D ~ i n k j n ~ ~ ~ t a n ~ r ~ e n e r ~ ~ ~ mapfile

r Enable psafilrng

Proiec1 Ootionn

pq Cancel 1 Libreriacutea de ANTLR que debe existir 1 I para que se compile correctamente

58

Anexo B

~ u iacute aacute raacutepida de uso deC Sistema S3C

5 Este anexo indica de forma raacutepida la manera de utilizar S3C para crear un diagrama de secuencias de forma automaacutetica

Guiacutea Raacutepida de uso del Sistema S3C i

Para indicar la creacioacuten de un diagrama de secuencias en forma automaacutetica se debe ir a la barra del costado izquierdo y presionar ldquoNuevo Proyecto SCUMLrdquo

I s3c I ~ Nuevo Proyecto SCUML ~ _ _ - I Diagrama de clases ~ Diagrama de secuencias 1 MDI DOC Activo

-

Apareceraacute un documento llamado ldquoSCUMLV en donde el simbolo corresponde a un numero consecutivo iniciando desde 1 (uno)

$ e Despueacutes se presiona ldquoDiagrama de clasesrdquo Habraacute que para indicarle al sistema si se requiere abrir un diagrama de clases existente o realizar uno nuevo

i

iquestAbrir un documento existente

No Cardquo~ear

AI presionar ldquoSirdquo se debe indicar cual es el archivo del diagrama de Clases en el cuadro de diaacutelogo siguiente

~~ - 11dMis documentos rsquo 2 M i P C i lsquo h s sitios de red

I

AI presionar ldquoNordquo en ldquoAbrir un documento existenterdquo se nos mostraraacute un documento vacio para crear un diagrama de clases

60

Guiacutea Raacutepida de uso del Sistema S3C

Para ambas opciones se requiere que los diagramas de Wamier ya se encuentren construidos Y para continuar el proccso se selecciona el documento ldquoSCUMLVrsquo creado al inicio y despueacutes presionar el botoacuten nombrado ldquoDiagrama de secuenciasrdquo localizado en la barra de hcrraiiiicntas del costado izquierdo

Ha iniciado el proceso de construccioacuten del diagrama de secuencias Si no existen errores al terminar el proceso se le mostraraacute un cuadro de diaacutelogo llamado ldquoResultadosrdquo en donde le mostraraacute las llamadas de las que no localizoacute su definicioacuten

- - -

Cancel 1 D e las siguientes llamadas es posible que esten mal escritas o peitenezcan a la libreiia del Lenguaie Verifique ya que no se encontraron sus definiciones

A continuacioacuten se mencionan los posibles errores que finalizan el proceso de la creacioacuten automaacutetica de los diagramas de secuencias en S3C

Cuando no exista un meacutetodo lsquomainrsquo definido en el diagrama de clases

No se encontro el meacutetodo lsquomain()rsquo que inicie la secuencia I A No se puede crear el diagrama de secuencias

p==amp=q

61

Guia Raacutepida de uso del Sistema S3C

Cuando se definan niultiples metodos lsquoinainrsquo en el diagrama de clases

Multiples meacutetodos lsquomainOlsquo Imposible decidir el inicio de secuencia

Aceptar i

Si un meacutetodo definido en Wamier realiza una llamada a lsquomainrsquo se cancelara el proceso

Llamada NO VALIDA al meacutetodo principal main

(iAcp-j(

4 i

CI Y rdquoldquoldquoI i 11 1-T

IZNTRO Gt INFORMACION

62

  • Tabla de Contenido
  • Listado de Figuras
  • Listado de Tablas
  • Notacioacuten
  • Introduccioacuten
  • Capitulo 1 Conceptos Generales
    • 11 Antecedentes
    • 12 Trabajos relacionados
      • 121 Tabla comparativa
        • 13 Definicioacuten del problema
        • 14 Objetivo de la Tesis
          • Objetivos especiacuteficos de la tesis
            • 15 Hipoacutetesis de investigacioacuten
            • 16 Alcances y limitaciones del trabajo de tesis
              • Capitulo 2 Marco Teoacuterico
                • 21 Modelado de sistemas de software
                • 22 Interfaz de usuario (Mecanismos de interaccioacuten)
                • 23 Lenguajes Visuales
                • 24 Programacioacuten orientada a objetos
                • 25 Lenguaje de Modelado Unificado (UML)
                  • Desarrollo de la herramienta
                    • 31 Disentildeo de la Arquitectura
                      • 311 Requisitos (Diagrama de Casos de uso)
                        • 312Modelo Conceptual
                        • 313Diagramas de clases
                        • 32 Elementos de la arquitectura
                          • 321 Microsoft Foundation Class (MFC)
                            • 322Arquitectura Documento Vista
                            • 323Integrando Ambientes en Visual c++
                              • 324 Interfaz de Muacuteltiples Documentos (MDI)
                                • 325Recursos Diaacutelogos Menus y Barras de Herramientas
                                  • 326 Notacioacuten estaacutendar
                                  • 327 Estructura de datos persistencia y recuperacioacuten
                                    • 328Patrones de disentildeo utilizados
                                      • 33 Diagrama de secuencias
                                        • 331Ciclo de vida del software
                                          • 34 Elementos atoacutemicos de la Gramaacutetica
                                            • 341 Representacioacuten visual
                                              • 35 Gramaacutetica desarrollada
                                              • 36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias
                                                  • Capitulo 4 Pruebas y Resultados
                                                    • 41 Recursos teacutecnicos utilizados
                                                    • 42 Descripcioacuten del plan de pruebas
                                                    • 43 Resultados
                                                      • 431 Caso
                                                      • 432 Caso2
                                                      • 433 Caso
                                                          • Conclusiones y trabajos futuros
                                                            • Trabajos futuros
                                                            • Referencias
                                                            • Anexo A Configuracioacuten de Microsoft Visual C+t
                                                              • Figura 11 - Arquitectura de la suite cenidet-UML
                                                              • Figura 21 -Programacioacuten Visual
                                                              • Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de
                                                              • Figura 32 -Diagrama de Casos de Uso para el S3C
                                                              • Figura 33 -Modelo Conceptual
                                                              • Figura 34 - Diagrama de Clases -Control del Diagrama -
                                                              • Figura 35 - Diagrama de Clases - Patroacuten Visitor -
                                                              • Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento
                                                              • Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)
                                                              • Figura 38 -Dialogo Caracteriacutesticas del Objeto
                                                              • Figura 39 -Dialogo Mensaje
                                                              • Figura 3 IO - Menuacute de los Diagramas de Secuencias (estaacutendar)
                                                              • Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias
                                                              • Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)
                                                              • Figura 313 - Serializacioacuten
                                                              • Figura 314 -Modelo de cascada del ciclo de vida del software
                                                              • Figura 41 - Resultado del caso de prueba
                                                              • Figura 42 -Resultado del caso de prueba
                                                              • Figura 43 -Resultado del caso de prueba
                                                              • Figura 44 -Resultado del caso de prueba
                                                              • Tabla 11 - Tabla comparativa
                                                              • Tabla 31 -Prefijos estaacutendar de identificadores
                                                              • Tabla 32 -Elementos atoacutemicos del lenguaje
                                                              • Tabla 41 - Resumen de los resultados de las pruebas realizadas

Listado de Figuras

3

Figura 11 - Arquitectura de la suite cenidet-UML

Figura 21 -Programacioacuten Visual

Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de Secuencias Figura 32 -Diagrama de Casos de Uso para el S3C

Figura 33 -Modelo Conceptual

Figura 34 - Diagrama de Clases -Control del Diagrama -

Figura 35 - Diagrama de Clases - Patroacuten Visitor - Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento Vista Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)

Figura 38 -Dialogo Caracteriacutesticas del Objeto

Figura 39 -Dialogo Mensaje

Figura 3 I O - Menuacute de los Diagramas de Secuencias (estaacutendar)

Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias

Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)

Figura 313 - Serializacioacuten

Figura 314 -Modelo de cascada del ciclo de vida del software

Figura 41 - Resultado del caso de prueba 1

Figura 42 -Resultado del caso de prueba 2

Figura 43 -Resultado del caso de prueba 3

Figura 44 -Resultado del caso de prueba 4

Paacutegina

3

13

22

23

25

26

26

29

30

31

32

32

32

34

35

37

45

46 47

48

iv

Tabla 11 - Tabla comparativa

Tabla 31 -Prefijos estaacutendar de identificadores

Tabla 32 -Elementos atoacutemicos del lenguaje

Tabla 41 - Resumen de los resultados de las pruebas realizadas

Listado de Tablas

Paacutegina

6 33

38 49

V

Notacioacuten

La siguiente es la notacioacuten de la que se haraacute uso

ltCObjectgt

ltGetDocunteiztgt

MiClase MiMetodo

9 Liacutenea de Coacutedigo

Mensaje

Clase de la MFC ( Microsoft Fundation Class)

Meacutetodo de una clase de la MFC

Clase desarrollada Meacutetodo de una clase desarrollada

Liacutenea o Bloque de coacutedigo

Elemento del Diagrama de Secuencia

vi

I Introduccioacuten

L~ tesis se enfoca hacia el desarrollo de sistemas de software centrados en el modelado mediante diagramas de secuencias definidos por el Lenguaje de Modelado Unificado (UML) La investigacioacuten y el producto de la tesis estaacuten inmersos en la etapa del disentildeo de sistemas de software

El producto (prototipo) de la tesis denominado S3C permite la obtencioacuten de diagramas de secuencias de UML tomando como base la informacioacuten de un diagrama de clases y de varios documentos modelados con diagramas de Wamier (disentildeo detallado de los meacutetodos)

Para la elaboracioacuten de los diagramas de clases se hace uso del ambiente existente InverSOODA [HER03] Y para el modelado de los documentos Wamier se ha tomado el ambiente InverDDVi [WEN02] Ambos ambientes visuales son productos de tesis anteriores y se han integrado en un solo prototipo denominado SCUML (Suite cenidet - UML)

(i

S3C realiza un proceso automaacutetico para la obtencioacuten de los diagramas de secuencias en este proceso solo se requiere indicar el diagrama de clases del que se basaraacute La construccioacuten de los diagramas de secuencias en S3C estaacute soportada con una gramaacutetica visual relacional El propoacutesito de la gramaacutetica es validar la construccioacuten de los diagramas de secuencias de UML

En el aacutembito de los diagramas de secuencias de UML no existen aplicaciones comerciales oacute proyectos educativos que se apoyen en una gramaacutetica visual para soportar la construccioacuten de los diagramas de secuencias y tampoco existen aplicaciones que permitan a partir de los diagramas de clases y del disentildeo detallado de los meacutetodos generar automaacuteticamente los diagramas de secuencias

3

Los temas relacionados a esta tesis son Modelado de Sistemas UML Interfaz de Usuario Programacioacuten Orientada a Objetos y Gramaacuteticas Visuales

El capiacutetulo 1 es de conceptos generales se dan a conocer los antecedentes del proyecto los trabajos relacionados hipoacutetesis alcances y limitaciones

En el capiacutetulo 2 se define el marco teoacuterico de la tesis se describen temas como Modelado de sistemas de software disentildeo de sistemas de software modelado visual lenguajes visuales programacioacuten orientada a objetos y lenguaje de modelado unificado

El capiacutetulo 3 describe el desarrollo del ambiente visual se detalla el modelo conceptual la arquitectura y sus elementos los diagramas de secuencias y la gramaacutetica visual relacional que se desarrolloacute

En el capiacutetulo 4 se muestran los casos de pruebas y los resultados obtenidos Y al final se establecen las conclusiones y se dan propuestas para algunos trabajos futuros 3

1

Capiacutetulo I

Conceptos generalis

En eacuteste capiacutetulo se dan a conocer los antecedentes del proyecto de tesis los trabajos relacionados el problema que resolveraacute la hipoacutetesis a comprobar los alcances y limitaciones

Conceptos generales

11 Antecedentes

Actualmente en el cenidet (Centro Nacional de Investigacioacuten y Desarrollo Tecnoloacutegico) se trabaja en la construccioacuten de un conjunto de ambientes visuales para dar soporte al desarrollo con diagramas que define el estaacutendar UML para elaborar sistemas de software de manera completa raacutepida y eficaz El ambiente de modelado principal se ha denominado suite cenidet-UML y su arquitectura general se muestra a continuacioacuten en la Figura 11

Arquitectura de la suite cenidet-UML

Figura 11 Arquitectura de la suite cenidet-UML

a El producto de software resultante de eacutesta tesis lleva por nombre S3C y como se indica en la figura 11 Las tesis directamente relacionadas son InverSOODA [HER03] e

InverDDVi [WEN02]

InverSOODA (Sistema Orientado a Objetos para Disentildeo y Anaacutelisis incluyendo Ingenieriacutea Inversa) es un Ambiente Visual que permite la elaboracioacuten de diagramas de clases de un sistema de software Los diagramas de clases son una vista estaacutetica y en ella se describe las relaciones que existen entre las entidades llamadas clases Cada una de las clases se divide en tres partes nombre de la clase meacutetodos y atributos Este ambiente permite generar el coacutedigo fuente en lenguaje C++ de un diagrama construido y tambieacuten aplicando la ingenieriacutea inversa es posible obtener un diagrama a partir de un coacutedigo en C++ existente

InverDDVi (Disentildeo Detallado Visual incluyendo Ingenieriacutea Inversa) es un Ambiente Visual cuyo objetivo es apoyar en la elaboracioacuten de diagramas de disentildeo detallado utilizando una notacioacuten basada en Warnier Los diagramas de Warnier sirven para describir una secuencia loacutegica de acciones y mediante su simbologiacutea se logra plasmar definiciones de meacutetodos llamadas a otros meacutetodos ciclos comparaciones lectura de informacioacuten y escritura de informacioacuten Este ambiente permite generar el coacutedigo fuente en C de un diagrama construido y tambieacuten aplicando la ingenieriacutea inversa se puede obtener un diagrama de Warnier a partir de un coacutedigo en C que ya exista

i

3

Conceptos generales

12 Trabajos relacionados

Rational Rose de Rafional

Una de las herramientas mas populares del mercado que utiliza la notacioacuten UML y tiene la capacidad de reingenieriacutea de software para integrar sistemas existentes capacidad de mezclar diferentes lenguajes dentro de un mismo modelo ademaacutes de ingenieriacutea inversa sobre los componentes COM (Component Object Model) ActiveX y Java y con soporte de las arquitecturas MicrosoWCOM y CORBAIDL (The Common Object Request Broker Architecture)

Con Rational Rose se puede trabajar en grupo con capacidades para modelar y visualizar procesos de negocios y requerimientos de sistemas Tiene soporte para generar esquemas objetos-relaciones de bases de datos para realizar anaacutelisis de datos Cuenta con el soporte para analizar sitios Web en ASP (Active Server Pages) y JSP (Java Server Pages) Ademaacutes soporta los lenguajes Java CC++ Visual CC++ [RAT02] 9

SI -

Visio de Microsoft

Visio Enterprise 2002 permite crear diferentes tipos de diagramas como son

1 Diagramas de flujo 2 Planos de oficinas 3 Diagramas de aacuterbol 4 Diagramas de organizacioacuten 5 Liacuteneas de tiempo 6 Mapas geograacuteficos y direccionales 7 Diagramas de sitios Web 8 Diagramas de red 9 Diagramas de UML

Tiene las siguientes caracteriacutesticas diagramacioacuten e importacioacuten de servicios de directorio reingenieria de bases de datos disentildeo y documentacioacuten de bases de datos diagramacioacuten de software ingenieriacutea directa e inversa de coacutedigo replicacioacuten exacta por medio de diagramas de equipos y configuraciones de red diagramacioacuten automatizada y ambiente colaborativo

Visio da un conjunto completo de herramientas de diagramacioacuten de redes para planear y documentar claramente las redes existentes Ademaacutes para crear esquemas eleacutectricos mecaacutenicos y de procesos pueden crearse diagramas complejos con facilidad y poco entrenamiento

A las aplicaciones existentes se les puede realizar la ingenieriacutea inversa para obtener el disentildeo y tambieacuten crear nuevos disentildeos Proporciona herramientas para crear diagramas de bases de datos y es posible realizar ingenieriacutea inversa de esquemas existentes en bases de datos cliente servidor como SQL Server IBM Oracle y otros [MIC02]

4

Conceptos generales

e JVision 21 de Object Insight

JVision permite en la ingenieriacutea directa la creacioacuten de clases variables y meacutetodos con lo cual genera plantillas de coacutedigo para programadores en Java Los diagramas se pueden exportar a HTML La documentacioacuten puede integrarse con JavaDoc de Sun JVision da el soporte para ingenieriacutea inversa para el lenguaje Java

Se pueden crear todos los diagramas definidos por UML en los diagramas de secuencias da la oportunidad de dibujar clases liacuteneas liacuteneas de tiempo de vida y marca de destruccioacuten de objetos ofrece ademaacutes el soporte para las acciones de llamada regresar valor enviar accioacuten crear accioacuten y eliminar accioacuten [OBJO2]

MagicDraw 6 de No Magic

Es una herramienta CASE con soporte para trabajo en grupo Esta disentildeado para analistas 6 de negocios analistas de software programadores ingenieros de calidad y

documentadores Esta aplicacioacuten provee la capacidad para crear los diagramas definidos por UML (soporta UML 14) Cuenta con el soporte de ingenieriacutea inversa y generacioacuten de coacutedigo para C++ C Java y CORBNIDL Tiene integracioacuten con NetBeans se actualiza automaacuteticamente disponible en aacuterabe portugueacutes franceacutes italiano ingles (US) alemaacuten espantildeol japoneacutes y coreano

Tiene la caracteriacutestica de soportar la adaptacioacuten de los elementos a colores que el usuario defina Los diagramas pueden exportarse a imaacutegenes JPG EMF WMF EPS y DXF En los diagramas de secuencia da oportunidad de definir roles textos notas mensajes de varios tipos al mismo objeto recursivo ademaacutes de la relacioacuten a las notas y las liacuteneas de vida Es posible guardar los diagramas como imaacutegenes de mapas de bits o vectores Mantiene ademaacutes una vista pequentildea a escala del diagrama completo [NoA402]

e

SmariDraw Professional Plus de SmariDraw

Todos los dibujos pueden agregarse en las aplicaciones de Microsoft como son Word Excel PowerPoint Contiene maacutes de 50000 (1000 en la versioacuten estaacutendar) formas predefinidas ejemplos y plantillas Los diagramas pueden ser exportados a imaacutegenes WMF BMP JPG GIF TIF y otros Incluye un convertidor de archivos de VISIO

Con esta herramienta es posible crear diagramas de flujo diagramas de bloque diagramas de flujos de datos diagramas de organizacioacuten aacuterboles de decisioacuten disentildeo de redes Gantt diagramas de flujo de procesos diagramas de administracioacuten de calidad diagramas eleacutectricos diagramas mecaacutenicos diagramas quiacutemicos liacuteneas de tiempo planes de espacio posters mapas formas y tambieacuten da soporte para UML es posible dibujar objetos actores activacioacuten de los objetos mensaje mensaje de retorno mensaje asiacutencrono mensaje con tiempo liacutenea de vida del objeto marca de destruccioacuten del objeto y ciclos (descrito con un rectaacutengulo y una condicioacuten de salida) [SMA02]

5

Conceptos generales

Producto Soporta Diagramas de UML Secuencias

Creacioacuten automaacutetica de diagramas de

El Rational Rose El Visio

Jvision

Magic D r a w

a a El Fl El a El El

I ~

I ~

I -

Ambiente de modelado de

a a SmartDraw El

Tabla I Tabla comparativa

Todas las herramientas descritas anteriormente cuentan con caracteriacutesticas sobresalientes para el disentildeo y modelado de sistemas de software pero ninguna de ellas genera automaacuteticamente los diagramas de secuencia con base en los diagramas de clases y el disentildeo detallado de los meacutetodos asiacute tambieacuten ninguna de ellas realiza un caacutelculo de los canales de comunicacioacuten abiertos entre las clases que conforman el sistema

iexcla la A UML Editor in Java

13 Definicioacuten del problema

El modelado de sistemas utilizando el estaacutendar de UML en diversos productos comerciales prototipos de laboratorio elaborados en universidades y centros de investigacioacuten atienden la perspectiva baacutesica de la abstraccioacuten general del modelo esto es documentar el modelo del sistema que se requiere sin atender puntos importantes tales como

La generacioacuten automaacutetica de los diagramas de secuencias La correccioacuten de inconsistencias en los diagramas al crearlos de forma separada

El

6

sistemas de software

secuencias utilizando diagramas de a a a

Conceptos generales

Se hace necesaria la creacioacuten de un ambiente visual que permita obtener de forma automaacutetica los diagramas de secuencias en base a los diagramas de clases y al disentildeo detallado de los meacutetodos para facilitar la documentacioacuten la generacioacuten de coacutedigo y el mantenimiento de los sistemas

La obtencioacuten de los diagramas de secuencias estaacute basada en los Diagramas de Clases definidos por UML que son construidos con la herramienta InverSOODA junto con el disentildeo detallado de los meacutetodos construidos con Diagramas de Wamier elaborados con la herramienta InverDDVi

En el estaacutendar UML para la construccioacuten de los diagramas no existe actualmente una sintaxis expliacutecita definida solo existe impliacutecitamente en el uso de los elementos del diagrama por lo que se ha descrito una gramaacutetica visual de tipo relaciona1 como soporte para la construccioacuten de los Diagramas de Secuencias

n ai 14 Objetivo de la Tesis

Construir un ambiente visual que permita al usuario obtener el diagrama de secuencias de manera automaacutetica

141 Objetivos especiacuteficos de la tesis Crear una gramaacutetica que soporte la construccioacuten del diagrama de secuencias Construir de forma automaacutetica el diagrama de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodos

15 Hipoacutetesis de investigacioacuten

Es posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodos

16 Alcances y limitaciones del trabajo de tesis

Los alcances de la tesis se especifican a continuacioacuten

Se elaboroacute la arquitectura del sistema Se definioacute la gramaacutetica de soporte Se desarrolloacute la interfaz en Visual C++ haciendo uso de las MFC Se interactuacutea con los diagramas de clases de InverSOODA Se interachiacutea con el disentildeo detallado de los meacutetodos realizados por InverDDVI Se genera el diagrama de secuencias de forma automaacutetica

7

Conceptos generales

Limitaciones de la tesis

0 No se genera coacutedigo

La investigacioacuten se limita a los diagramas de clases para la vista estaacutetica de los sistemas de software y a los diagramas de Warnier para la vista dinaacutemica de los meacutetodos El ambiente no trabaja en red

No se modifican los archivos de InverSOODA No se modifican los archivos de InverDDVI No se recuperan diagramas de secuencias a partir de coacutedigo legado

4

8

Capiacutetulo 2

Narc0 teoacuterico

En eacuteste capiacutetulo se describen los temas usados para el desarrollo de la tesis iquestQue son los modelos iquestEn que parte del proceso de Ingenieriacutea del Software se usan los modelos o el modelado Se estudia la interfaz de usuario los lenguajes visuales y las gramaacuteticas visuales Se describe el Lenguaje de Modelado Unificado (UML) ademaacutes de la programacioacuten orientada a objetos por ser este paradigma en donde se enfoca este trabajo

Marco teoacuterico

21 Modelado de sistemas de software

un modelo es una abstraccioacuten de algo con el propoacutesito de entenderlo antes de construirlo El modelo omite detalles no esenciales haciendo maacutes faacutecil su manipulacioacuten que la entidad original [BLA98] Un modelo es la simplificacioacuten de la realidad [RUM99] Los propoacutesitos de los modelos son

Probar una entidad fisica antes de construirla Establecer mejor comunicacioacuten con los clientes Visualizar el problema y el sistema desde una mejor perspectiva Reducir la complejidad [BLA98] Capturar y precisar requerimientos y conocimiento del dominio Pensar acerca del disentildeo del sistema Capturar decisiones de disentildeo en una fomia separada que cambia a partir de los requerimientos Generar productos Organizar buscar filtrar obtener examinar y editar informacioacuten acerca de un sistema Explorar muacuteltiples soluciones econoacutemicas Manejar sistemas complejos [RUM99]

El modelado es una probada y bien aceptada teacutecnica de Ingenieriacutea de Software [RUM99] El modelado es parte central de todas las actividades que conducen a la produccioacuten de buen software Se construyen modelos para comunicar la estructura deseada y revisar el comportamiento de nuestro sistema Se construyen modelos para visualizar y controlar la arquitectura del sistema Se construyen modelos para comprender mejor el sistema que estamos construyendo muchas veces descubriendo oportunidades para la simplificacioacuten y la reutilizacioacuten Se construyen modelos para controlar el riesgo [BOO99] La razoacuten fundamental por la que modelamos es porque nosotros construimos modelos que nos ayudan a entender mejor el sistema que estamos desarrollando [RUM99]

El modelado nos permite [RUM99] 1 Visualizar como es el sistema o como queremos que sea 2 Especificar la estructura del sistema 3 Plantear nuestras guiacuteas en la construccioacuten delsistema 4 Documentar las decisiones que hemos tomado

En las etapas del desarrollo del software el modelado es usado en el disentildeo el disentildeo del sistema es la primera etapa en donde se da la aproximacioacuten baacutesica de la solucioacuten al problema seleccionado ademaacutes se decide por la estructura (arquitectura del sistema) y el estilo de la solucioacuten

La arquitectura del sistema provee el contexto sobre el cual se tomaraacuten decisiones mas detalladas en las etapas subsecuentes del disentildeo [BLA98] En el disentildeo modelamos el sistema y encontramos su forma (incluida la arquitehra) para que soporte todos los 3 -

10

Marco teorico

i

4 -I

requisitos -incluyendo los requisitos no funcionales y otras restricciones- que se le suponen [JAC99] Los propoacutesitos del disentildeo son

Adquirir una comprensioacuten en profundidad de los aspectos relacionados con 10s requisitos no funcionales y restricciones relacionadas con los lenguajes de programacioacuten componentes reutilizables sistemas operativos tecnologiacuteas de distribucioacuten y concurrencia tecnologiacuteas de interfaz de usuario tecnologiacuteas de gestioacuten de transacciones etc Crear una entrada apropiada y un punto de partida para actividades de implementacioacuten subsiguientes capturando los requisitos o subsistemas individuales interfaces y clases Ser capaces de descomponer los trabajos de implementacioacuten en partes mas manejables que puedan ser llevadas a cabo por diferentes equipos de desarrollo teniendo en cuenta la posible concurrencia Capturar las interfaces entre los subsistemas Esto ayuda cuando reflexionamos sobre la arquitectura y cuando utilizamos interfaces como elementos de sincronizacioacuten entre diferentes equipos de desarrollo Ser capaces de visualizar y reflexionar sobre el disentildeo utilizando una notacioacuten comuacuten Crear una abstraccioacuten independiente de la implementacioacuten del sistema en el sentido de que la implementacioacuten es un refinamiento directo del disentildeo que rellena lo existente sin cambiar la estructura Esto permite la utilizacioacuten de tecnologiacuteas como la generacioacuten de coacutedigo y la ingenieriacutea de ida y vuelta entre el disentildeo y la implementacioacuten [JAC99]

22 Interfaz de usuario (Mecanismos de interaccioacuten)

El crecimiento de las computadoras personales vendidas en los ~ O rsquo S lanzoacute con fuerza el ldquofaacutecil de usarrdquo como una de las caracteriacutesticas mas importante de un producto de computadora

Las interfaces graacuteficas de usuario no son nuevas se pueden encontrar en las paredes de cuevas al sur de Francia en las piraacutemides de Egipto y en las paredes de muchas ciudades [iUM92] Para el usuario de un sistema interactivo la comunicacioacuten es tan importante como la computacioacuten Para los usuarios regularmente la interfaz es el sistema [HIX93]

Disentildeo de Interfaz Seguacuten Hackos [HAC98] las interfaces estaacuten en todo donde se trabaja con

o Controles en productos de hardware o Etiquetas y sentildeales en el hardware o Pequentildeas pantallas de cristal liquido en maacutequinas de cualquier tipo o Pantallas para aplicaciones de software para terminales de computadoras centrales

Marco teoacuterico

o pantallas para aplicaciones de software en computadoras Personales sistemas operativos como Windows OS2 DOS Macintosh U n b Y Otros

0 Paacuteginas de un sitio WEB 0 Sistemas de ayuda y manuales en-liacutenea 0 Tutoriales incrustados y otros tipos de soporte de funcionamiento O Esquemas de formas y otros documentos

una interfaz es el medio con el cual los usuarios interactuacutean con el producto 0

sistema para lograr SUS objetivos

Interfaz Usable

Para que una interfaz sea usable debe ser transparente y darles a los usuarios la capacidad de lograr cumplir sus metas de forma efectiva y eficiente

Los beneficios presentados en el uso de las interfaces de usuario [TH190] Disfrutar el sistema El usuario disfruta trabajar con un sistema que cuenta con una interfaz bien disentildeada y que le da la funcionalidad y acceso a los recursos de una manera clara y sencilla Proporciona nuevas habilidades Elimina al usuario concentrarse en acciones que la propia interfaz y el sistema hacen dando como resultado que el usuario solo se concentre en lo importante del trabajo Delegacioacuten de tareas La interfaz de usuario permite al usuario no conocer los detalles de la tarea esto es la computadora atiende los detalles de las tareas mientras que el usuario se concentra en asuntos de maacutes alto nivel Seguridad El usuario no necesita estar en lugarespeligrosos para hacer su trabajo

Se da la mayor posibilidad para que el usuario tenga acceso al conocimiento utilizando un sistema interactivo Haciendo las cosas a la primera Las tareas se ejecutan en un orden correcto definido lo que da como resultado un trabajo bien terminado sin necesidad de repetir evitando asiacute altos costos Computando LOS usuarios pueden calcular datos sin necesidad de conocer el proceso para obtener los resultados

Desarrollo

El disentildeo de interfaz es un negocio bastante dificil Eacuteste combina dos complicadas disciplinas psicologiacutea y ciencias de la computacioacuten Estas disciplinas tienen un fondo cultural muy diferente la psicologiacutea atiende a la gente (comprensioacuten y entendimiento) las ciencias computacionales a las maacutequinas (matemaacuteticas y precisioacuten) El disentildeo de las buenas interfaces requiere que estas dos perspectivas esteacuten unidas [THi90]

Hackos dice que las interfaces dan simplicidad y elegancia al trabajo necesario y a la vida e los usuarios Si no es obvio al usuario pero es raacutepida para aprender [HAC98] ademaacutes define caracteriacutesticas comunes de las interfaces usables

o Hacen que el flujo de trabajo sea familiar o confortable o Soportan el estilo de aprendizaje de los usuarios

12

Marco teoacuterico

Visualizacioacuten de Entrenamiento visual Para controlar Soportar interaccioncs Programar con informacioacuten visual visuales expresiones visuales

o Compatibles con los ambientes de trabajo de los usuarios o Se extienden sobre un concepto de disentildeo que es familiar al usuario o Tienen consistencia de presentacioacuten que los hace parecer maacutes confiable y faacuteciles de

aprender o Usan lenguaje y figuras familiares al usuario o faacuteciles de aprender

Datos o informacioacuten acerca de datos

23 Lenguajes Visuales

Los lenguajes visuales son un nuevo paradigma para expresar los sistemas computacionales Ellos ofrecen la posibilidad de manipular directamente los objetos Un lenguaje visual consiste de sentencias visuales Para lenguajes visuales basados en iacuteconos cada sentencia visual es un arreglo espacial de objetos O iacuteconos graacuteficos [CHA90]

Un lenguaje visual es concebido como una coleccioacuten de figuras obtenidas por un arreglo graacutefico de objetos en dos o maacutes dimensiones Los lenguajes visuales pueden ser modelados sintaacutecticamente a traveacutes de un vocabulario un conjunto de relaciones usadas para componer las figuras y un conjunto de reglas describiendo las figuras pertenecientes al lenguaje Los objetos graacuteficos de un vocabulario de un lenguaje visual se caracterizan por contar con un conjunto de atributos Los atributos de un objeto graacutefico pueden ser atributos graacuteficos atributos sintaacutecticos y atributos semaacutenticos [MAR98]

Un lenguaje de programacioacuten visual puede ser informalmente definido como un lenguaje el cual usa algunas representaciones visuales [SHV88]

Programa ylo Disentildeo de Lenguajes de programacioacuten visual ejecucioacuten software Diagramas iconos Formas

Programacioacuten Visual [SHU88]

Gramaacuteticas para la especificacioacuten de lenguajes visuales [MAR98]

a) Gramaacuteticas texfuales generalizadas Este tipo de gramaacutetica provee una adaptacioacuten apropiada de la concatenacioacuten de siacutembolos para dos dimensiones Su principal ventaja es que conservan los elementos teoacutericos de las gramaacuteticas textuales y los eficientes algoritmos de anaacutelisis de eacutestos uacuteltimos Su principal desventaja es que eacutestas gramaacuteticas no son tan poderosas y soacutelo pueden especificar clases restringidas de lenguajes visuales

13

Marco teorico

b) Meacutetodos basados en gramaacuteticas de grafos Un ejemplo de este tiPo de gramaacuteticas son las gramaacuteticas de red Las oraciones generadas con gramaacuteticas de red son grafos dirigidos con siacutembolos en los nodos Estos grafos son llamados redes Una produccioacuten de eacuteste tipo de gramaacuteticas es de la siguiente forma

a - t p E

donde a y p son redes y E es una forma de conectar a p cuando a es conectada a otra red anfitriona

La mayor desventaja es que las gramaacuteticas de red no han probado ser totalmente uacutetiles para la especificacioacuten de gramaacuteticas arbitrarias por la complejidad para rescribir grafos y al hecho de que no todo lenguaje visual estaacute compuesto exclusivamente por grafos

C) Gramaacuteticas de multiconjuntos de atributos En estas gramaacuteticas las producciones rescriben conjuntos o multiconjuntos de siacutembolos que tienen atributos con informacioacuten sobre geometriacutea o semaacutentica La reescritura se controla con restricciones sobre los atributos de los siacutembolos en el lado derecho de las producciones

Un ejemplo de eacutestas gramaacuteticas es la Gramaacutetica Coordinada que especifica notacioacuten matemaacutetica de dos dimensiones En esencia las producciones en una gramaacutetica coordinada n-coordinada libre del contexto tienen la siguiente forma

A -t a donde C F

Todos los siacutembolos de eacuteste tipo de gramaacutetica tienen n atributos geomeacutetricos A es un siacutembolo no terminal a es una cadena no vaciacutea de siacutembolos C es una restriccioacuten sobre los atributos de los siacutembolos en a y F es una expresioacuten que computa los atributos de los siacutembolos de A en teacuterminos de los atributos de los siacutembolos en a no importando el orden de los siacutembolos en a

d) Gramaacuteticas PosicionaZes Las gramaacuteticas posicionales son un formalismo para la definicioacuten e implementacioacuten de lenguajes visuales las gramaacuteticas posicionales extienden naturalmente a las gramaacuteticas libres de contexto Una gramaacutetica libre de contexto posicional PG es una six-tupla (N T S P POS PE) donde

N es un conjunto finito no vaciacuteo de siacutembolos no terminales T es un conjunto finito no vaciacuteo e siacutembolos terminales con N n T = $I S E N es el siacutembolo no terminal de inicio P es un conjunto finito de producciones POS es un conjunto finito de identificadores de relacioacuten binaria PE es un evaluador pictoacuterico

14

Marco teorico

Cada produccioacuten en P tiene la siguiente forma

A -+ X I R I X R2 X ~ I Rm1 xm A

e) Gramaacuteticas de Relacioacuten de siacutembolos Eacuteste es un formalismo sintaacutectico para describir un lenguaje visual donde cada oracioacuten dentro del lenguaje se representa como un conjunto de objetos visuales y un conjunto de relaciones entre objetos

El alfabeto de siacutembolos Vt y el conjunto de relaciones entre siacutembolos Vr una oracioacuten de relacioacuten de siacutembolos w sobre Vt y Vr es un par ( M R) donde

M es un conjunto de elementos-s (v i) con v E Vt y i es un nuacutemero natural R es un conjunto de elementos-r de la forma r (Xi Yj) con Xi Yj E M r E Vr y una relacioacuten r esta contenida entre Xi y Yj

Una gramaacutetica de relacioacuten de simbolos es el conjunto de seis elementos G = (Vn Vt Vr S P R) donde Vn es un conjunto de siacutembolos no terminales Vt es un conjunto de siacutembolos terminales Vr es un conjunto de relaciones entre siacutembolos S es el siacutembolo inicial y P es un conjunto de reglas de reescritura (producciones de elementos-s)

f) Gramaacuteticas relacionales Este tipo de gramaacutetica pertenecen a las gramaacuteticas libres de contexto

La gramaacutetica relaciona1 (RGrsquos) es una 6-tupla G (N C S R Attr P) donde

N C S R Attr P

es un conjunto finito de siacutembolos no terminales es un conjunto de siacutembolos terminales es un siacutembolo distinguido en N llamado siacutembolo inicial es un conjunto finito de siacutembolos de relacioacuten es un conjunto finito de siacutembolos de atributos es un conjunto de producciones de la forma A-gt apF donde A E N a E (nlo)+ Donde n E N cr E E

8 Es un conjunto de relaciones de la forma (r x y) donde r E R y xy son enteros que hacen referencia a un miembro de a y tambieacuten una expresioacuten de la forma (a i) donde a E Attr e i es un entero que hace referencia a un miembrode a

F Es un conjunto de declaraciones de asignacioacuten de caracteriacutesticas de la forma (a O)=x donde a E Attr y x es un entero que hace referencia a un miembro de a o a una expresioacuten de la forma (a i)

15

Marco teoacuterico

24 Programacioacuten orientada a objetos

L~~ meacutetodos orientados a objetos organizan la informacioacuten Y el procesamiento que manipula esta informacioacuten de acuerdo a los objetos delrsquomundo real que la informacioacuten describe [BRO97l

Beneficios de las teacutecnicas orientadas a objetos [BR097] Estabilidad del sistema Mantenibilidad Componentes reusables Confiabilidad Accesibilidad de los datos Participacioacuten del usuario

Seguacuten Graddy Booch la programacioacuten orientada a objetos es ldquoun meacutetodo de implementacioacuten en el que los programas se organizan como colecciones cooperativas de objetos cada uno de los cuales representan una instancia de alguna clase y cuyas clases son todas miembros de una jerarquiacutea de clases unidas mediante relaciones de herenciardquo [JOY 981

Programacioacuten orientada a objetos esencialmente significa programacioacuten usando objetos [JAC93] Los lenguajes orientados a objetos deben soportar los siguientes conceptos

Objetos Abstraccioacuten de datos Encapsulamiento Clases e Instancias Herencia entre clases Polimorfismo

Las propiedades fundamentales de la Programacioacuten Orientada a Objetos son

a Abstraccioacuten Son ideas conceptos y propiedades que se describen en forma general eliminando los detalles Es una estructura de datos y los meacutetodos que manipulan a esos datos

b Encapsulamiento Son las fronteras propias de un objeto bien definidas las cuales protegen los detalles de su representacioacuten interna

c Ocultacioacuten de la informacioacuten Es la propiedad en la que los objetos pueden hacer uso para impedir que otros objetos los usuarios o incluso los programadores conozcan coacutemo estaacute distribuida la informacioacuten

d Herencia Es la propiedad que tiene una clase para heredar atributos y comportamiento a otras clases

e Polirnorfismo Es la propiedad que permite que una entidad pueda cambiar a diferentes formas efectuaacutendose de manera dinaacutemica en tiempo de ejecucioacuten

16

Marco teoacuterico

t

Clases Es la especificacioacuten de una familia de objetos es la declaracioacuten de un tipo de objetos Tambieacuten se dice que una clase es la descripcioacuten de un conjunto de objetos con un comportamiento similar y que esta compuesta de Datos (o atributos) y Meacutetodos o (rutinas acciones operaciones)

Objeto Un objeto es una entidad en la cual se almacenan datos y los meacutetodos o funciones que controlan dichos datos Un objeto es una abstraccioacuten de alguna cosa del mundo real que contiene datos que lo describen y operaciones que solo tienen acceso a esos datos [BR097l Los elementos de los que esta conformado un objeto son

a Las relaciones permiten que el objeto se integre en la organizacioacuten b Las propiedades son los datos que caracterizan el estado de un objeto distinguiendo

asiacute a un objeto determinado de los restantes que forman parte de la misma organizacioacuten

c Los meacutetodos son las operaciones que pueden realizarse sobre la estructura del objeto es decir las acciones que cambian el estado de un objeto y que el objeto es capaz de ejecutar a traveacutes de mensajes y que tambieacuten pone a disposicioacuten de sus descendientes a traveacutes de la herencia

Mensajes Son solicitudes para que se lleve a cabo la operacioacuten indicada y se produzca un resultado

Las razones principales para introducir la tecnologiacutea de objetos son los beneficios de dicha tecnologiacutea

Aumento de la fiabilidad Aumento de la productividad del desarrollador Desarrollo maacutes raacutepido Mejor calidad maacutes alta

Incremento en escalabilidad Mejores estructuras de informacioacuten Incremento de adaptabilidad Reduccioacuten del coacutedigo fuente

Mantenimiento maacutes faacutecil y reduccioacuten de costo

Los elementos de reutilizacioacuten son las clases y objetos

25 Lenguaje de Modelado Unificado (UML)

UML (Unified Modeling Language por sus siglas en ingleacutes Lenguaje de Modelado Unificado) es un lenguaje de modelado visual de propoacutesito general que es utilizado para especificar visualizar construir y documentar las partes de un sistema de software El lenguaje estaacute basado en un pequentildeo nuacutemero de conceptos centrales que la mayoriacutea de los desarrolladores de tecnologiacutea orientada a objetos pueden aprender y aplicar faacutecilmente [RUM99]

17

Marco teoacuterico

y UML Pasado Presente y Futuro

L~~ lenguajes de modelado orientado a objetos aparecieron a mediados de 10s 70rsquos Varias teacutecnicas influenciaron estos lenguajes El nuacutemero de lenguajes de modelado incrementoacute desde menos de 10 hasta maacutes de 50 entre 1989 y 1994 Muchos modeladores teniacutean problemas para encontrar un lenguaje de modelado que satisficiera todas sus necesidades Notablemente aparecioacute Boochrsquo93 y la evolucioacuten continuoacute a OMT y Fusioacuten

OOSE (Object-Oriented Software Engineering) estaacute enfocado a la ingenieriacutea de negocios y anaacutelisis de requerimientos dando un excelente soporte orientado a casos de uso OMT-2 es especialmente expresivo para anaacutelisis y sistemas de informacioacuten de datos grandes Boochrsquo93 fue particularmente expresivo para el disentildeo y fases de construccioacuten de proyectos y popular para aplicaciones de ingenieriacutea intensiva

Grady Booch y Jim Rumbaugh iniciaron el desarrollo de UML en 1994 al unificar sus meacutetodos independientes Booch y OMT En 1995 Ivar Jacobson se unioacute a Racional eacutesta unioacuten logroacute que el meacutetodo OOSE se incorporara La unificacioacuten establecioacute que debiacutean activar el modelado de sistemas utilizando conceptos orientados a objeto asiacute como crear un lenguaje usable tanto para las maacutequinas como para los humanos

A

Muchas organizaciones se unieron al consorcio UML y dedicaron recursos al trabajo hacia el fortalecimiento de la definicioacuten de UML Esta colaboracioacuten produjo un lenguaje de modelado expresivo poderoso y generalmente aplicable En la forma actual de UML se espera que sea base de muchas herramientas incluidas las de modelado visual simulacioacuten y ambientes de desarrollo

R UML es abierto y no-propietario y aunque define un lenguaje preciso no es barrera para futuras mejoras en conceptos de modelado Se usan muchas teacutecnicas de punta pero se esperan teacutecnicas adicionales que influencien futuras versiones de UML puede ser extendido sin redefinir el nuacutecleo

c

Mientras el rehuacuteso basado en componentes se ha favorecido ampliamente cada vez mas esto no significa que las teacutecnicas basadas en componentes reemplazaraacuten las teacutecnicas orientadas a objetos Hay solo sutiles diferencias entre la semaacutentica de componentes y clases [ALC03]

Un opaco rendimiento caracterizoacute el mercado de anaacutelisis modelado y disentildeo en el 2000 en su transicioacuten de las viejas herramientas CASE (Computer Aided Software Engineering) a algo maacutes dinaacutemico y mejor adaptado para satisfacer las necesidades de los desarrolladores para el cambio raacutepido en los ambientes de negocio

El mercado de anaacutelisis modelado y disentildeo lograraacute obtener un crecimiento positivo en varios de los siguientes antildeos por varias razones El mercado seraacute manejado principalmente por la necesidad de desarrolladores a obtener aplicaciones para lanzarse al mercado raacutepidamente asiacute tambieacuten por el intereacutes creciente y uso de una nueva especie de herramienta y por el intereacutes creciente de los desarrolladores en usar UML reglas de negocios y adaptadores de componentes para construir aplicaciones [RIKUI]

z -

18

Marco teoacuterico

UML se ha hecho el estaacutendar para los desarrollos de modelado de negocios administracioacuten de requerimientos anaacutelisis y disentildeo programacioacuten y pruebas Los objetivos primarios de UML en el disentildeo [RAT97j

o Dar a los usuarios un lenguaje visual expresivo de modelado listo para usarse para que puedan desarrollar y cambiar los significados de sus modelos

o Suministrar mecanismos de extensibilidad y especializacioacuten para extender los conceptos centrales

o Ser independiente de lenguajes de programacioacuten particulares y procesos de desarrollo

o Impulsar el desarrollo de las herramientas Orientadas a Objeto en el mercado o Soportar conceptos de desarrollo de alto nivel como colaboracioacuten marcos de

componentes reutilizables patrones y componentes o Integrar las mejores praacutecticas

9 El aacutembito de UML

UML es un lenguaje para especificacioacuten construccioacuten visualizacioacuten y documentacioacuten de artefactos de un sistema de software UML es la fusioacuten de los conceptos de Booch OMT y OOSE El resultado es un simple comuacuten y ampliamente usado lenguaje de modelado para usuarios de estos y otros meacutetodos UML se enfoca en un lenguaje de modelado estaacutendar no en un proceso estaacutendar los autores de UML recomiendan un proceso de desarrollo manejado por casos de uso de arquitectura central iterativo e incremental [iiquest4T97l

Para la definicioacuten de sistemas de software en UML se definen diagramas Un diagrama es la representacioacuten graacutefica de un conjunto de elementos este se visualiza la mayoriacutea de las veces como un grafo conexo de nodos (elementos) y arcos (relaciones) Los diagramas se dibujan para visualizar un sistema desde diferentes perspectivas de forma que un diagrama es la proyeccioacuten de un sistema uumlML incluye nueve diagramas [B0099]

4 -

I Diagrama de clases 2 Diagrama de objetos 3 Diagrama de casos de uso 4 Diagrama de secuencias 5 Diagrama de colaboracioacuten 6 Diagrama de estados 7 Diagrama de actividades 8 Diagrama de componentes 9 Diagrama de despliegue

Diagramas de secuencias Un diagrama de secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten comportamiento

Un diagrama de secuencias muestra un conjunto de mensajes acomodados en una secuencia de tiempo eacuteste diagrama muestra la interaccioacuten en un esquema de dos - dimensiones [RUM99]

19

Marco teoacuterico

Y -

Un diagrama de secuencia es un diagrama de interaccioacuten que resalta la ordenacioacuten temporal de los mensajes Un diagrama de secuencia presenta un conjunto de objetos y los mensajes enviados y recibidos por ellos Los objetos suelen ser instancias (con nombre o sin nombres) de clases pero tambieacuten pueden representar instancias de otros elementos tales como colaboraciones componentes y nodos Los diagramas de secuencia se utilizan para describir la vista dinaacutemica de un sistema [B0099]

Usar los diagramas de secuencia es mostrar la secuencia que existe en un caso de uso [RUM 991

Los diagramas de secuencia tienen dos dimensiones Una dimensioacuten que representa el tiempo Otra dimensioacuten que representa los diferentes objetos que participan en la secuencia de eventos requeridos para completar el propoacutesito [MOuuml98]

El principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildea las interacciones de los objetos [DAN02]

20

Capiacutetulo 3

DesawoCCo de Ia herramienta

En este capiacutetulo se describe el desarrollo del Ambiente Visual Se describe el modelo conceptual del sistema la arquitectura asiacute como tambieacuten los elementos que componen la Arquitectura Se estudian los Diagramas de Secuencias de UML y algunos Patrones de Disentildeo de los que se hace uso para el mejor desarrollo del sistema Se describe a detalle la Gramaacutetica Visual Relaciona1 utilizada para el de Ambiente de desarrollo

I CENIOET 1FNTRO DE INFORMACION

Desarrollo de la herramienta

t i i

Actualmente existe en el cenidet un Ambiente Visual de Modelado de Clases llamado InverSOODA este Ambiente Visual tiene la capacidad de realizar la generacioacuten automaacutetica de coacutedigo de las clases en C++ a partir del modelo especificado Ademaacutes se puede realizar la Ingenieria Inversa de un coacutedigo legado para obtener el modelo de clases Aunado a este trabajo existe el Ambiente Visual denominado InverDDVi con el cual se puede realizar el Disentildeo Detallado de los Meacutetodos de las Clases con diagramas de Warnier Asiacute tambieacuten es posible obtener el modelo aplicando la Ingenieriacutea Inversa a un coacutedigo legado en C++

Ambos trabajos son retomados en este proyecto para la automatizacioacuten en la obtencioacuten de los Diagramas de Secuencias de UML La figura 31 muestra el modelo propuesto de ingenieriacutea directa

Extraer informacioacuten del diagrama de

rsquo rsquo

Diagrama de 11 clases I o

detallado de

detallado de

o meacutetodos

i ir---- Construir el

secuencias i

Modelo de Ingenieriacutea I directa automaacutetica

I

Figura 31 Modelo de Ingenieria Directa Autombtica de los Diagramas de Secuencias

Para la construccioacuten automaacutetica de un diagrama de secuencias se toma como base a un diagrama de Clases El modulo ldquoExtraer informacioacuten del diagrama de Clasesrdquo sirve para obtener el nombre y los meacutetodos descritos en cada uno de las clases que existan en el diagrama de Clases

22

Desarrollo de la herramienta

Con base en la informacioacuten que se tiene se abren los archivos correspondientes a los diagramas de Warnier El proceso que se emplea sobre cada uno los diagramas de Warnier llamado ldquoExtraer informacioacuten de los disentildeos detallados de los meacutetodosrdquo sirve para recopilar el conjunto de las llamadas de cada meacutetodo definido

En el siguiente paso (ldquoReconocer llamadas a meacutetodosrdquo) consiste en identificar si los meacutetodos que estaacuten descritos en los diagramas de Warnier tambieacuten lo estaacuten en el diagrama de Clases correspondiente

El paso ldquoConstruir los diagramas de secuencias automaacuteticamenterdquo realiza una validacioacuten de los meacutetodos definidos en los diagramas de Clases con los meacutetodos definidos en los diagramas de Warnier Este paso crea una estructura de datos con la secuencia de las llamadas y la recorre para crear los objetos y los mensajes en el diagrama de secuencias

AI terminar la creacioacuten automaacutetica del diagrama de secuencias se dispone de la r opcioacuten de guardar

31 Disentildeo de la Arquitectura

Para definir los procesos que el sistema va a realizar es necesario llevar a cabo un anaacutelisis de requisitos los cuales pueden ser expresados mediante diagramas de Casos de Uso Los Casos de Uso son una descripcioacuten textual narrativa de los procesos de un sistema

311Requisitos (Diagrama de Casos de uso)

Los casos de uso en realidad no son un artefacto de anaacutelisis orientado a objetos estos describen simplemente procesos y pueden ser igualmente efectivos en un proyecto tecnoloacutegico no orientado a objetos Son usados en un paso preliminar a la descripcioacuten de requerimientos de un sistema [LAR971 La Figura 32 muestra el diagrama de casos de uso que especifica al S3C

9

S3C (Diagramas de Secuencias)

usuario I Modelado de

I

Figura 32 Diagrama de Casos de Uso para el S3C

23

Desarrollo de la herramienta

Descripcioacuten de los Casos de Uso

Caso de Uso ldquoDiagramas de Secuenciasrdquo Se inicia cuando el actor ldquousuariordquo solicita la creacioacuten de un Diagrama de Secuencias Se establece la forma de la construccioacuten automaacutetica de los diagramas de secuencias de UML Se hace uso del Modelado de Clases y del Modelado del disentildeo detallado de los meacutetodos

Escenario de Eacutexito 1 Se obtiene la informacioacuten de las clases del modelado de clases 2 Se obtiene la informacioacuten del modelado del disentildeo detallado de los meacutetodos 3 Se realiza la construccioacuten automaacutetica de los diagramas de secuencias

1 En el modelo de clases no hay informacioacuten o estaacute incompleta 2 En el modelo del disentildeo detallado de los meacutetodos no hay informacioacuten o estaacute

incompleta

Escenario de Falla

Caso de Uso ldquoModelado de Clasesrdquo El diagrama de Clases se utiliza para obtener los nombres de clases y los nombres de los meacutetodos de cada clase

Escenario de Eacutexito 1 Se abre el modelo 2 Se procesa para obtener la informacioacuten de las clases (nombres de clases y nombres

de meacutetodos)

Escenano de Falla h 1 No se puede abrir el modelo J 2 El modelo esta vaciacuteo

Caso de Uso ldquoModelado del Disentildeo detallado 1 los meacutetodosrdquo El disentildeo detallado de los meacutetodos se realiza con diagramas de Warnier aquiacute se establecen las llamadas a funciones dentro del sistema y es aquiacute donde se identifica el dinamismo que se representaraacute en los diagramas de secuencias

Escenario de Eacutexito 1 Se abre el modelo 2 Se realiza la identificacioacuten de las llamadas existentes

Escenario de Falla 1 No se puede abrir el modelo 2 El modelo esta vaciacuteo

24

Desarrollo de la herramienta

Clase Objeto ni I Diagrama I n ____ Nombre Descripcioacuten

i

Mensaje

Tipo

En el Anaacutelisis Orientado a Objetos se crea una especificacioacuteii del dominio del problema y de los requeriinientos desde la perspectiva de una clasificacioacuten por objetos y del entendimiento de los teacuterminos usados en el dominio del problema Una descomposicioacuten del dominio del problema involucra una identificacioacuten de conceptos atributos y asociaciones que son considerados importantes dentro del dominio El resultado puede ser expresado en un Modelo Corzcepttraf el cual es ilustrado en un conjunto de diagramas que definen conceptos (objetos) [LAR97]

312Modelo Conceptual

El modelo conceptual visto en la Figura 33 no es una descripcioacuten de componentes de software representa conceptos en el domino del problema en el mundo Teal [LAR97l

313Diagramas de clases

Por cuestiones dc espacio las clases de la arquitectura del sistema estaraacuten referidas en varios diagramas que de alguna manera estaacuten relacionados entre si

Una de las partes maacutes importantes del Ambiente Visual S3C es la estructura de clases ltCCraJicogt la cual se refiere al control de los diagramas eacutesta por su naturaleza podriacutea considerarse el nuacutecleo del sistema La manipulacioacuten y control de los diagramas estaacute definido en una estructura de clases organizada con el patroacuten de disentildeo Composite que se muestra en la Figura 34

25

Desarrollo de la herramienta

CRecursividadDS CMensajeDS CObjetoDS CDiagramaDS

I Cvisitor I

CApuntadorDS CDblClickDS CAsocAdjusterDS CSelectorDS

26

Desarrollo de la herramienta

n 32 Elementos de la arquitectura

Es necesario describir los elementos que dan soporte a la arquitectura del ambiente donde se implementaraacute el sistema en este caso Microsoft Visual (MV) C++ 6 El MV C++ es un marco de aplicacioacuten poderoso basado en Windows se integran ademaacutes del lenguaje C++ (compilador y enlazador) el programa de desarrollo de programas en lenguaje C para Windows (SDK) la Microsoft Foundation Class Library AppWizzard Classwizard AppStudio y WorkBencli

La Microsoft Foundation Class Library comprende una biblioteca de clases de C++ y es considerada como el nuacutecleo del MV C++

321Microsoft Foundation Class (MFC)

La libreriacutea Microsoft Foundation Class (MFC) es una interfaz orientada a objetos que tiene las siguientes metas de disentildeo

o

Reduccioacuten significante de esfuerzo al escribir una aplicacioacuten para Windows Velocidad de ejecucioacuten comparable a las APIrsquos del lenguaje C Miacutenimo tamantildeo de coacutedigo Capacidad para llamar cualquier funcioacuten de Windows en C directamente Faacutecil conversioacuten de aplicaciones existentes en C a C++ Faacutecil uso de APIrsquos de Windows con C++ como con C Faacutecil uso de complicadas caracteriacutesticas de abstracciones poderosas como ActiveX soporte para base de datos impresioacuten barras de herramientas y barras de estado El API de Windows en C++ si usa tan efectivamente como las caracteriacutesticas mismas del lenguaje C++

La mayoriacutea de las clases de la Libreriacutea de la Microsoft Foundation Class son derivadas de una clase base ltCObjectgt que es la raiacutez de la jerarquiacutea de clases ltCObjectgt da uacutetiles capacidades a las clases que derivan de ella

La jerarquiacutea que existe en las clases derivadas de ltCObjectgt es la siguiente

Arquitectura de Aplicacioacuten Excepciones Servicios de Archivos Arreglos Listas Mapas Servicios de Internet Sockets Sincronizacioacuten Soporte para base de datos D A 0

27

Desarrollo de la herramienta

i

r

Liacutenea de Comandos Menuacute Dibujo Graacutefico Dibujo Graacutefico de Objetos Soporte de Control Soporte de Ventanas

Soporte para base de datos ODBC

o Marco de Ventanas o Barras de control o Hojas de propiedades o Cajas de Dialogo o Vistas o Controles

322Arquitectura Documento Vista

Por defecto las aplicaciones creadas con la MFC usan un modelo de aplicacioacuten que separa los datos del programa de las vistas de interaccioacuten con el usuario En eacuteste modelo un objeto documento de MFC lee y escribe datos en un almacenamiento persistente Un objeto vista administra el despliegue de datos suministrando al usuario los datos para ser seleccionados o editados La vista le comunica al documento cualquier cambio en los datos La razoacuten maacutes conveniente para seguir este modelo es cuando se necesita muacuteltiples vistas del mismo documento (como en una hoja de caacutelculo y un graacutefico)

La arquitectura documentovista hace faacutecil el soporte de muacuteltiples vistas y muacuteltiples tipos de documentos asiacute como la divisioacuten de ventanas y otras caracteriacutesticas de interfaz de usuario Pero el corazoacuten de la arquitectura son cuatro clases (Mostradas en el aacuterbol de clases de la Figura 36)

ltCDocumerrtgt (o ltCOleDocuinentgt) - Se instancia un objeto de este tipo para almacenar y controlar los datos del programa ltCViewgt (o una de sus clases derivadas ltCScrotlViewgt ltCFormViewgt ltCEditView ltCRecordViewgt ltCDaoRecordView ltCtreeViewgt ltCListViewgt b ltCrichEditViewgt) - Un objeto es usado para desplegar los datos y administrar la interaccioacuten del usuario con los datos ltCFrameWndgt (o una de sus variantes) - Establece el marco sobre el que trabajaraacuten una o mas vistas de un documento ltCDocTemolategt (o ltCSingIeDocTemplategt o ltCMultiDocTemplategt) - Coordina la existencia de uno o maacutes documentos de un tipo dado y administra la correcta creacioacuten de los documentos vistas y objetos ventanas para cada tipo

i

28

Desarrollo de la herramienta

______________ 2 Wiew

I - - __ - ------a ________________

323Integrando Ambientes en Visual C t t

Las aplicaciones de Interfaz de Documento Uacutenico (SDI) soporta muacuteltiples tipos de documentos pero este soporte es para un solo objeto documento Debido a esta restriccioacuten y aunado a la necesidad de tener varios objetos documentos a la vez se determina la utilizacioacuten del modelo Interfaz de Muacuteltiples Documentos (MDI) indicado en la Figura 37

324Interfaz de Muacuteltiples Documentos (MDI)

Una aplicacioacuten de Interfaz de Muacuteltiples Documento (MDI) permite la creacioacuten de plantillas para el manejo de los documentos eacutesta plantilla tiene la forma

rn-pDocTemplate = new CMultiDocTernplate ( I DR-SCUMLTY PE RUNTIME-CLASS (CSCUMLDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CTheView))

AddDocTernplate ( rn-pDocTemplate )

Cada plantilla describe una relacion del tipo de documento con la vista asociada La definicioacuten de la plantilla para el ambiente que controla los diagramas de secuencias es la siguiente

29

Desarrollo de la herramienta c

m-pTernplateSeqDlag = new CMultiDocTernplate ( IDR-DS-SJCTYPE RUNTIME-CLASS (CSeqDiagDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CSeqDiagView) )

AddDocTernplate( rn-pTernplateSeqDiag )

Esta plantilla hace uso de la clase CCliildFrame que por defecto el ambiente Visual C++ construye y esto es debido a que no se requieren caracteriacutesticas extras en las ventanas de las que proporciona dicha clasc En un caso en el que se requiriera un comportamiento diferente de la vista tendriacutea que crearse una nueva clase con las caracteriacutesticas deseadas

Vista Documento

Vista

I- Vista Documento I [ Tip- F Vista

L Figura 37 Modelo Interfaz de Muacuteltiples Documentos (MDI)

Para integrar otro Ambiente que utilice otro tipo de documento es necesario definir otra plantilla de la misma forma mencionada Debe tomarse en cuenta los siguientes puntos

Es necesario definir el nombre (mqTemplateNOMBRE) El IDR del tipo que se requiere que sea el documento En la primera liacutenea RUNTIME CLASS debe indicar la clase ltCDocumentgt que desea La segunda liacutenea RUNTIME-CLASS soacutelo la cambia a otra clase si requiere de otro manipulador de ventanas de lo contrario deje que ltCChildFramegt se haga cargo

-

30

Desarrollo de la herramienta

En la uacuteltima liacutenea referente a RUNTIME-CLASS se debe indicar la clase ltCViewgt que desea usar Para finalizar se usa la instruccioacuten AddDocTernplate para finalizar la definicioacuten del template (mgTemplateNOMBRE)

325 Recursos Diaacutelogos Mertuacutes y Barras de Herrattriertias

Son varios los recursos con los que se puede contar al crear un proyecto en Microsoft Visual C++ Los diaacutelogos son un recurso disponible que son utilizados para visualizar ingresar yo modificar informacioacuten que se requiera En el Ambiente Visual que se desarrolla son varios los diaacutelogos que se utilizaraacuten y eacutestos se describen a continuacioacuten

El Diaacutelogo ldquoCaracteriacutesticas del Obietordquo (Figura 38) identifica el nombre del Objeto y la descripcioacuten del mismo Este diaacutelogo se muestra cuando se presiona doble clic sobre un objeto del diagrama

I Nombre

Desciipcion

Figura 38 Dialogo Caracteriacutesticas del Objeto

El Diaacutelogo ldquoMensaierdquo (Figura 39) muestra el nombre del mensaje que puede ser modificado ademaacutes se visualizan el Identificador del Mensaje el tipo de Mensaje asiacute tambieacuten el origen y destino del mensaje

31

Desarrollo de la herramienta

Nornbie delMensaje Edit

IDentificador del Mensaje Edil Tipo de Mensaje (Edil

Edit Objeto Origen

Objeto Destino IEdit

i25El A Figura 39 Dialogo Mensaje

El menuacute es otro de los recursos del que se puede disponer para organizar el ambiente que se estaacute creando Para eacuteste caso en particular no se hizo modificaciones al menuacute estaacutendar (Figura 310) que Visual C++ presenta Los cambios significativos son el manejo del tipo de documento para los Diagramas de Secuencias

Archivo Editar Yer VenLana AyGda

Figura 310 Menuacute de los Diagramas de Secuencias (estaacutendar)

Otro importante recurso del que uno se puede valer en Visual C++ es la barra de herramienta personalizada la cuaacutel es construida en el Editor de Recursos Se ha construido una barra (Figura 311) con los elementos graacuteficos de los Diagramas de Secuencia de UML

Figura 311 Barra de Herramientas de los Diagramas de Secuencias

Es recomendable que al utilizar barras de herramienta personalizada se defina en el tamantildeo estaacutendar ya que puede experimentar problemas al momento de ejecutar la aplicacioacuten

Ademaacutes puede usar la propiedad TBBS-CHECKGROUP en una barra de herramientas para establecer que los botones puedan quedar presionados hasta que un botoacuten diferente sea presionado No olvide que la numeracioacuten inicia con cero ( O )

vuriableToolBurSetButtonStyle(OTBBSCHECKGROUP)

32

Desarrollo de la herramienta

Prefijo ID IDC IDD IDP IDR IDS

326 Notacioacuten estaacutendar

Los nombres descriptivos de los recursos se asocian a un valor uacutenico Para una mayor claridad eacutestos nombres mantienen un prefijo que describe el tipo de recurso asociado (vea la Tabla 31) [MIC99]

Tipo de Recurso Comandos de Menuacute Controles y recursos Cuadros de diaacutelogo Cadenas de solicitud para cuadros de mensaje Menuacute principal barras de herramienta tabla aceleradora y el icono Cadenas

IDR IDD IDC ID

200 - 299 3000 - 3999 34000 - 34999

Estos son los rangos de valores establecidos para el proyecto S3C Si se utiliza el coacutedigo fuente y se planea agregar otro proyecto verifisue que no se invadan estos nuacutemeros para evitar problemas

Para facilitar auacuten maacutes los trabajos futuros se ha definido una estructura de carpetas (ver Figura 312) para incluir en cada una las Clases correspondientes a cada tesis en desarrollo

33

Desarrollo de la herramienta

ill ~~ -

-I SCUML classes + U A N T L R + U App + 0 ClassDiagrams + 0 Common + a Java

t $2 SequenceDiagiams

+ WarnierDiagrams

iJ PackageDiagrams

12 StaterChartDiagrams

+

- f Classview I Resourceview 1 FileView ]

~ ~

Figura 312 Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)

327Estructura de datos persistencia y recuperacioacuten

Existe una gran cantidad de tipos de datos estructuras clases y meacutetodos de los que se puede hacer uso para una mejor y maacutes faacutecil obtencioacuten de los resultados A continuacioacuten hago comentarios en tipos de datos y meacutetodos en los que podriacutea tener problemas

CTypedPtrList

AI usar este tipo de dato o alguno relacionado que le permita utilizar el meacutetodo ltCTvrgtedPtrListGetNextgt tenga especial precaucioacuten al usarlo ya que al devolver el valor requerido la variable POSITION usada no se queda apuntando a ese valor en particular salta al inmediato siguiente de la lista

Si se realiza una creacioacuten dinaacutemica con punteros para los elementos de una CTypedPtrList Despueacutes de haberlo agregado a la lista evite el delete para borrar esta Usted deseando liberar la memoria no lo haga ya que eliminara directamente el elemento de la lista

POSITION

Es un valor usado para denotar una posicioacuten de un elemento en una coleccioacuten Pero CUIDADO no se refiere a un iacutendice es una referencia (no consecutiva) de punteros muy diferente a un iacutendice

CString

Auacuten cuando el operador de comparacioacuten == (igual a) es permitido para ser utilizado en las cadenas evite su uso ya que en ocasiones aunque cuando la e

34

Desarrollo de la herramienta

compilacioacuten no indique error alguno en la ejecucioacuten no realizaraacute lo que se necesita Recomiendo que utilice CStringCompare ()

Para eliminar el contenido de un CString utilice CStringEmpty() ya que asignar a la cadena un ldquonrdquo podriacutea causarle problemas

Serializacioacuten

Una forma en que se puede guardar informacioacuten y recuperarla de manera eficaz es mediante la serializacioacuten de objetos La serializacioacuten es un proceso que permite escribir un objeto en un archivo y tambieacuten leerlo

Para que la serializacioacuten se lleve a cabo son necesarios tres objetos un objeto de tipo ltCFilegt que represente el archivo un objeto de tipo ltCArchivegt que ofrece el entorno para la serializacioacuten y la clase del objeto a ser serializado debe ser heredada de ltCObjectgt y sobrescribir el meacutetodo ltSerializegt para que se encuentre de tal forma en que pueda ser serializado (vea la Figura 313)

Objeto a ser serializado 1

1 CArchive

[f --=I- ---7 Archivoexi

u Figura 313 Serializacioacuten

328Patrones de disentildeo utilizados

Se ha planteado la definicioacuten de una arquitectura de clases utilizando patrones de disentildeo debido a que algunos de ellos hacen maacutes faacutecil la extensioacuten de la funcionalidad y mantenimiento

35

Desarrollo de la herramienta

El patroacuten Composite es utilizado para crear de manera uniforme el diagrama sobre el que se trabaja (ver Figura 34) manteniendo una jerarquiacutea de clases uniforme las clases maacutes bajas en la jerarquiacutea definen primitivas de objetos graacuteficos

Se aplica el patroacuten de disentildeo Iterator para hacer recorridos en listas de objetos para realizar diversas operaciones Otro patroacuten de disentildeo del que se hace uso es el Visilor (ver Figura 35)

Para otras actividades que se realizan podriacutea pensarse en que se deberiacutean aplicar otros patrones pero se han evitado algunos (como el patroacuten de disentildeo Builder) para evitar incrementar la complejidad en la arquitectura ya que ai mantener el modelo de la MFC de documentovista la funcionalidad del patroacuten de disentildeo Builder es faacutecilmente reemplazado si se hiciera Uso de eacuteste se aumentariacutea la complejidad excesivamente (nos llevariacutea a perdemos en ocasiones en el paso de mensajes entre clases) dantildeando la facilidad de la arquitectura

33 Diagrama de secuencias

Un Diagrama de Secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten escenario Oacute comportamiento se usan para definir el curso loacutegico de accioacuten de un posible camino a seguir en la resolucioacuten de un problema Seguacuten John Daniels [DANO2] ldquoel principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildean las interacciones de los objetosrdquo

Los Diagramas de Secuencias se utilizan en el modelado de la implementacioacuten de sistemas de software ademaacutes son aplicables en el modelado de requisitos para establecer las comunicaciones existentes entre actores yo clases del sistema Con eacutestos diagramas se logran hacer descripciones de los escenarios y los comportamientos del sistema Con los Diagramas de Secuencias es posible definir protocolos de comunicacioacuten con paso de mensajes ya que dan esa flexibilidad que se requiere Ademaacutes los Diagramas de Secuencias contienen informacioacuten suficiente para que puedan ser transformados a los diagramas de colaboracioacuten [RUM Ol][BOO Oil

331Ciclo de vida del software

Considerando cualquier modelo de ciclo de vida del software (en la figura 314 se muestra el Modelo de cascada) el aacutembito directo de eacuteste Ambiente Visual es en el disentildeo aunque tiene sus vertientes en la codificacioacuten y mantenimiento

36

Desarrollo de la herramienta

Diseno

Codificacibn

I I I I Mantenimiento I

igura 314 Modelo de cascada del ciclo de vida del software

34 Elementos atoacutemicos de la Gramaacutetica

Definicioacuten de los elementos atoacutemicos del lenguaje y su contenido

1 Actor- Representa roles de entidad externos al sistema con el que interactuacutea directamente Los actores pueden ser humanos dispositivos u otros sistemas

2 ClaseObjeto- Determina una Clase u Objeto participante en la interaccioacuten

3 Mensaje-Es una comunicacioacuten entre objetos que contiene informacioacuten Eacuteste se representa con la finalidad a que una accioacuten sea llevada a cabo

4 Mensaje con tiempo- Tiene la misma finalidad que el mensaje la diferencia es que con eacutel se representa un atributo de tiempo

5 Mensaje asiacutencrono Es un mensaje que ocurre en el tiempo de manera independiente a otros mensajes

6 Mensaje de destruccioacuten de objeto- Es un mensaje cuya finalidad es indicar la destruccioacuten del objeto destino

7 Mensaje de creacioacuten de objeto- Es un mensaje que indica la creacioacuten de un objeto

8 Llamada al mismo objeto (Recursividad)- Es usado para modelar llamadas recursivas en el que una operacioacuten es invocada por el mismo objeto

37

Desarrollo de la herramienta

9 Destruccioacuten del objeto (AutodestrucciOacuten)- Puede o no modelarse es representada con una X al final de la liacutenea de vida del objeto

Elementos aulomaacuteticos

1 Liacutenea de Vida- Representa la vida del objeto durante la interaccioacuten

2 Activacioacuten- Muestra el periacuteodo de tiempo en el cual el objeto alguna operacioacuten

341RepresentaciOacuten visual

Representacioacuten visual de los elementos atoacutemicos del lenguaje

Actor

_- A

Mensaje

Mensaje de Creacioacuten de

Objeto

ClaseObjeto

I

Mensaje de retorno

Mensaje de Destruccioacuten de

Objeto

abla 32 Element(

Activacioacuten

Mensaje con tiempo

Autodestruccioacuten

x

atoacutemicos del lengi

taacute realizz

Texto ===I (letra)+ (letra I

numero) letra= AZ I az numero = 09

I

Recursividad ~

I

i j e

io

38

u

Comentario

iexcl

Conector de Comentario

35 Gramaacutetica desarrollada

La gramaacutetica que se propone es una gramaacutetica visual del tipo relacional Una gramaacutetica relacional pertenece a las gramaacuteticas libres de contexto es una 6-iupla G (N C S R Attr P) donde

N es un conjunto finito de siacutembolos no terminales C es un conjunto de siacutembolos terminales S es un siacutembolo distinguido en N llamado siacutembolo inicial R es un conjunto finito de siacutembolos de relacioacuten Attr es un conjunto finito de siacutembolos de atributos P es un conjunto de producciones

Entonces definiendo nuestra gramaacutetica G (N C S R Attr P)

N = Diagrama GrupoClaseObjeto

S = Diagrama

R = mensaje mensajeTiempo mensajeRetomo mensajeAsincrono mensajecrea mensajeDestruye autodestruccioacuten recursividad

R

Attr = entrada salida entradacrea

39

Desarrollo de la herramienta

Definiendo la posicioacuten de los atributos en los elementos visuales

entradacrea ObetaClase

entrada

salida

P =

Diagrama I GrupoClaseObjeto (mensaje (mensajeRetorno

(salida 1) (entrada 2) ) (salida 2) (entrada 1) )

- Diagrama 0 GrupoClaseObjeto

(mensaje (mensaje (mensajeRetomo (mensajeRetomo (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entradacrea 2) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 1) ) (salida 1) (entrada 1) )

entrada

salida

40

Desarrollo de la herramienta

s

-

GrupoClaseObjeto - 1 1 I 2 (mensaje (mensaje (mensajeRetorno (mensajeRetorno (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entradacrea 2) ) (salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 1) ) (salida I ) (entrada I ) )

1 En las gramaacuteticas relacionales una produccioacuten estaacute acompantildeada de las posibles

relaciones que puedan generarse En la primera produccioacuten Diagrama produce a un Actor seguida de un GrupoClaseObjeto el Actor inicia la interaccioacuten con un mensaje y recibe el mensaje de retorno al finalizar la interaccioacuten La segunda y tercera produccioacuten son similares debido a que un GrupoClaseObjeto contiene dos ClaseObjeto que se relacionan de la misma forma

Existe un elemento de la gramaacutetica llamado Attr (Atributo) el cual define la parte de los elementos visuales donde se establecen las relaciones Se han determinado dos atributos (entrada y salida) que para nuestro propoacutesito estaraacuten establecidos en la liacutenea de vida de cada elemento visual (Actor y ClaseObjeto)

Los Comentarios y la Activacioacuten no se consideran en la gramaacutetica Los comentarios son libres de incluirse y relacionarse con cualquier elemento y relacioacuten mencionada anteriormente y la activacioacuten existe siempre que se presente un mensaje (o podriacutea omitirse) Estas consideraciones se realizaron para hacer auacuten maacutes faacutecil la gramaacutetica ya que si se trata de realizar un sistema las restricciones de estos elementos pueden mantenerse en el lenguaje de programacioacuten en el que se desarrolle el sistema

36

Precondiciones

El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias

1 El diagrama de Clases debe existir y estar completo 2 Debe existir un archivo con un diagrama de Warnier por cada diagrama de Clases y

con el mismo nombre de archivo (excepto la extensioacuten del archivo) 3 En el uacutenico diagrama de Warnier de cada Clase se deben modelar todos los meacutetodos

de la Clase 4 No realizar declaraciones de meacutetodos

41

Desarrollo de la herramienta

5 Debe existir un meacutetodo lsquomain()rsquo en el diagrama de Clases

Restricciones

Los meacutetodos deben mantener nombres distintos en las diferentes Clases

Metodologiacutea para la obtencioacuten automaacutetica de los Diagramas de Secuencias

1 Seleccionar el diagrama de Clases

2 Se construye una lista con los nombres de las Clases y los Meacutetodos

3 Se verifica si exista el meacutetodo lsquomain()rsquo en alguna Clase Se busca la existencia de una uacutenica Clase

a La Clase que contenga lsquomain()rsquo se va al inicio de la lista de Clases

b Si no existe lsquomain()rsquo SE TERMINA EL PROCESO

4 Se verifica la existencia de los archivos que contienen el Disentildeo Detallado de los meacutetodos en Wamier para cada una de las Clases si alguno falta SE TERMINA EL PROCESO

5 Se procesa cada uno de los modelos del Disentildeo Detallado de los Meacutetodos generando una lista de secuencias de llamadas por cada uno de los meacutetodos

6 Se verifica que cada llamada corresponda a alguacuten meacutetodo existente (del diagrama de Clases) De no existir ese meacutetodo la llamada entra a una estructura que

7 Se crea una lista de secuencia

a Se inicia con lsquomain()rsquo b Se recorre cada una de las llamadas de los meacutetodos c Se considera invaacutelido el caso de que un meacutetodo intente una llamada

recursiva al meacutetodo lsquomain()rsquo

8 Se muestra un diaacutelogo de resultados en el que se indican las llamadas que no se encnotraron definidas y que pueden ser Llamada a libreriacutea oacute Llamada Erroacutenea

42

Capiacutetulo 4

Prue6as y su6taaacuteos

En eacuteste capiacutetulo se da a conocer el detalle de las pruebas y de los resultados obtenidos Se describen los casos de prueba con los que se realizoacute la evaluacioacuten del sistema asiacute tambieacuten se presentan comentarios acerca de los resultados obtenidos

Pruebas y Resultados

41 Recursos teacutecnicos utilizados

Para llevar a cabo las pruebas al sistema S3C se utilizaron los siguientes equipos de Coacutemputo

Computadora de escritorio

256MB RAM Disco Duro 80G Monitor 17rdquo SAMSUNG

AMD Athlon XP 1600+ I4Ghz

Computadora de escritorio Intel Pentium 4 - 128MB RAM Disco Duro 40G Monitor 15rdquo i -

42 Descripcioacuten del plan de pruebas

Las pruebas establecen el Uacuteltimo paso desde donde es posible evaluar la calidad y descubrir los errores Las pruebas y la validacioacuten del software se utilizan para comprobar que el sistema cumple con las expectativas del usuario

En esta seccioacuten se describen los casos de prueba que se realizaron al prototipo de S3C en conjunto a la suite cenidet-UML Para cada uno de los casos se presenta el objetivo el procedimiento que se siguioacute para la prueba y se muestran los resultados obtenidos - _

Las pruebas a realizar son los siguientes

Caso 1 Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Caso 2 Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Wamier

Caso3 Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Wamier

Caso4 Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo 5

44

Pruebas y Resultados

43 Resultados

431 Caso 1

5 Y

IZ =

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoSirdquo 4 Seleccionar el archivo ldquoVENTASrdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 41 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

s3c iuevo Proyecto SCUM1

Diagrama de clases

lvendedor I L

3

salida

venta prod

4 venia-oferta vcntaprod =

salida 6

Figura 41 Resultado del caso de prueba 1

45

Pruebas y Resultados

432 Caso 2

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Warnier (almacenwar cajawar vendedorwar) que ya cxisten (del caso de prueba I )

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoNordquo 4 Agregar las siguientes Clases con los respectivos meacutetodos y atributos

a Claseldquovendedorrdquo Meacutetodos ldquoventa mainrdquo b Claseldquoalmacenrdquo Meacutetodos ldquoentrada salidardquo c Claseldquocajardquo Meacutetodos ldquoventagrodrdquo

5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 42 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

Diagrama de daseo lisgrama dcsccucncis

MOIDOC Anivo

venta prod

salida

1 Ycrdquo1a 2

I 4 vcrdquolD~o1cn venta prod gt

salida 6 i Figura 42 Resultado del caso de prueba 2

46

Pruebas y Resultados

r

433 Caso 3

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Warnier

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 43 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

5

Error al tratar de abrir el archivo A bZwar

Aceptar i

Faltan Archivos de Disentildeos Detallados de Meacutetodos 1 1 A No se puede crear el diagrama de secuencias

Figura 43 Resultado del caso de prueba 3

47

Pruebas y Resultados

434 Caso 4

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 44 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

lsquo I

~ _ i i _ l _ Repaado ~~ ~ ~ 6~ ampA Figura 44 Resultado del caso de prueba 4

48

Pruebas y Resultados

PRUEBA DESCNPCION CASO 1 Mostrar la funcionalidad del

Sistema S3C a partir de un

44 Anaacutelisis de Resultados

RESULTADOS Se comproboacute la correcta funcionalidad del Sistema S3C a partir de un diagrama

CASO 3

CASO4

I diagrama de Clases cxistcnte I de Clases existente CASO 2 I Mostrar la funcionalidad del I Sc comproboacute la corrccta funcionalidad

Sistema S3C a partir de un del Sistema S3C a partir de un diagrama diagrama de Clases que se de Clases que se construye al momento construye al momento Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el Secuencias si falta alguno de los diagrama de Secuencia si falta alguno diagramas de Warnier Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el secuencias si hace falta el meacutetodo diagrama de Secuencias al faltar el ldquomain ()rdquo meacutetodo ldquomain()rdquo

de los diagramas de Warnier

Los resultados obtenidos de cada uno de los casos establecidos demuestran que se validoacute la funcionalidad del prototipo con los requisitos definidos en el alcance de este proyecto

a lt

49

Conclusiones y Tru6ajos Futuros

Aquiacute se dan a conocer las conclusiones y se describen los posibles trabajos futuros para la continuacioacuten de eacuteste proyecto

F

51 Conclusiones

Conclusiones y trabajos futuros

Se ha creado un Ambiente Visual que permite obtener de forma automaacutetica los Diagramas de Secuencias en base a los diagramas de Clases y al disentildeo detallado de los meacutetodos descritos con diagramas de Warnier cumpliendo con los objetivos planteados para este trabajo

La tesis aporta principalmente La generacioacuten automaacutetica de los diagramas de secuencias y la eliminacioacuten de inconsistencias al mantener una validacioacuten directa de los diagramas de clases y los diagramas de Warnier que son utilizados

Esta validacioacuten es lograda a traveacutes del uso de la gramaacutetica visual relaciona1 que se ha definido (veacutease el capiacutetulo 3) Esta gramaacutetica visual establece reglas para la correcta construccioacuten de los diagramas de secuencias

P De esta manera se establece que la hipoacutetesis ldquoEs posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodosrdquo Es verdadera

52 Trabajos Futuros

Un Diagrama de Secuencias puede convertirse en un Diagrama de Colaboracioacuten por lo tanto un trabajo futuro es la construccioacuten automaacutetica de un Diagrama de Colaboracioacuten a partir de uno de Secuencias existente

Es posible calcular la meacutetrica de acoplamiento al tener un Diagrama de Secuencias construido

La Ingenieriacutea directa de un Diagrama de Secuencias estableciendo la validacioacuten en la construccioacuten de todos los elementos visuales que UML define

La propagacioacuten de las modificaciones de un Diagrama de Secuencias a los Diagramas de Clases y los Diagramas de Warnier

La modificacioacuten del coacutedigo fuente mediante los cambios establecidos en un Diagrama de Secuencias

51

[ALC03]

[BLA98]

[B0099]

[BOOOi]

[BR097]

[CHA90]

[DAN02]

[GLA02]

[HAC98]

[HER03]

4

Alcate1 Computer Associates International inc Electronic Data Systems Corporation Hewlett-Packard Company IBM Corporation I-Logix IntelliCorp Kabira Technologies Kennedy Carter Microsoft Corporation Object Management Group Oracle Corporation Project Technology Ptech Inc Rational Software Corporation Reich Technologies Softeam Taskon A S Telelogic Unisys Corporation ldquoOMG Unified Modeling Language Specificationrdquo Version 15 Unified Modeling Language 2003

Blaha Michael Rumbaugh James Premerlani William Eddy Frederick Lorensen William ldquoObject-oriented modeling and designrdquo Prentice Hall 484 Paacuteginas ISBN 0-13-629841-9 QA-769-03S-B53-19981998

Booch Grady Rumbaugh James Jacobson Ivar ldquoEl lenguaje unificado de modeladordquo Addison Wesley 432 Paacuteginas ISBN 84-7829-028-1 1999

Booch Grady Rumbaugh James Jacobson Ivar ldquoThe Unified Modeling Language User Guiderdquo Addison Wesley 2001

Brown David ldquoAn introduction to object-oriented analysis objects in plain Englishrdquo John Whiley amp Sons Inc 700 Paginas ISBN 0-471-1 1028-0 QA-769-035-B76-1997 1997

Chang Shi-Kuo ldquoVisual Languages and visual programmingrdquo Plenum Press 340 Paacuteginas ISBN 0-306-43428-8 QA-7665-V57-1990 1990

Daniels John ldquoModeling with a sense of purposerdquo Design - IEEE Software JanuaryEebmary 2002

Glasgow Universidad Reino Unido ldquoA UML Editor in Javardquo (lthttplstudentsdcsglaacuWstudentspainjfproject-reportproject-re port-htmV4thYearReporthtrnlgt 2002)

T Hackos JoAnn C Redish Janice ldquoUser and Task Analysis for Interface Designrdquo Wiley Computer Publishing 488 Paacuteginas ISBN QA-769-U83- H33-1998 1998

Hemaacutendez Velaacutezquez M ldquoIngenieriacutea inversa de coacutedigo fuente en C++ para la obtencioacuten de su disentildeordquo Tesis AT-379 (03-0334) 2003

Conceptos generales

[HIX93]

[JAC93]

[JAC99]

[JOY98]

[LAR97]

[MAR]

[MIC99]

[MIC02]

[MOU98]

Hix Deborah Hartson H Rex ldquoDeveloping user interfacesrdquo 381 Paacuteginas ISBN 0-471-57813-4 QA-769-U83-H59-1993 1993

Jacobson Ivar Christerson Magnus Jonsson Patrik Overgaard Gunnar ldquoObject oriented software engineeringrdquo Addison Wesley ISBN 0-20 1 - 54435-0 QA-7676-D47-J63-1993 1993

Jacobson Ivar Booch Grady Rumbaugh James ldquoEl proceso unificado de desarrollo de softwarerdquo Addison Wesley 438 Paacuteginas ISBN 84-7829-036- 2 1999

Joyanes Aguilar Luis ldquoProgramacioacuten orientada a objetosrdquo McGruw Hill ISBN 84-481-0590-7 1998

Larman Craig ldquoAplying UML and Patternsrdquo Prentice Hull 507 Paacuteginas ISBN 0-13-748880-7 QA-769-035-L37-1997 1997

Marriot Kim Meyer Bemd ldquoVisual Language Theoryrdquo Springer 381 Paacuteginas P-935-V567-1998 1998

Microsoft ldquoMicrosoft Visual C++ 6 manual del programadorrdquo McGraw Hill ISBN 84-481-2127-9 QA-7673-Cl53-23718-1999 1999

Microsoft ldquoVisiordquo (lthttpwwwmicrosoftcomofficevisiogt 2002)

B Mourao Luis X ldquoUniversal Modeling Language Part 11 UML Notation - Case Sequence and Collaboration Diagramsrdquo Lan Times Magazine (~httpwwwlantimescomltpartsdiscussdiscuss6Ohtm~) 1998

No Magic ldquoMagicDrawrdquo (lthttpwwwmagicdrawcomgt 2002)

Object Insight ldquoJvisionrdquo (lthttpwwwobject-insightcomgt 2002)

Rational Software Microsoft I Hewlett-Packard Oracle Sterling Software MCI Systemhouse Unisys ICON Computing IntelliCorp i-Logix IBM ObjectTime Platinum Technology Ptech Taskon Reich Technologies Sofieam ldquoUML Summaryrdquo Version 11 Unified Modeling Language 1997

Rational ldquoRational Roserdquo (lthttpwwwrationalcomproductosrosegt 2002)

Rikki Kirzner ldquoAnalysis Modeling and Design Tools Market Forecast and Analysis 2001-2005rdquo Bulletin Published Under Services Application Design and Construction Tools Application Development and Deployment Strategies Documento Nuacutemero 24809 Junio 2001

53

Conceptos generales

[RIM92] Rimrner Steve ldquoGraphical user interface programmingrdquo 423 Paacuteginas

1992

Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language reference manualrdquo Addison Wesley 550 Paacuteginas ISBN 0-201-

ISBN 0-8306-2475-9 ISBN 0-8306-2472-4 (pbk) QA-769-083-R55G

[RUM99]

30998-X QA-7676-D47-R85-1999 1999

[RUM299] Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language user guiderdquo Addisoiz Wesley 482 Paacuteginas ISBN 0-201 -57 168-4 QA-7676-D47-B66-1999 1999

[SMA02] SmartDraw ldquoSmartDrawrdquo (lthttpwwwsmartdrawcomgt 2002)

[SHU88] 9 - Shu Nun C ldquoVisual Programmingrdquo Van Nostrand Reinhold ISBN 0-422- 28014-9 ISBN 0-422-01 164-4 QA-7665-S55 1988

[THI90] Thimbleby Harold ldquoUser Interface Designrdquo Acm press 470 Paacuteginas ISBN 0-201 -41 61 8-2 QA-769U83-T772~- 1990 1990

[WENO2] Wences Diaz MF ldquoModelo de Ingenieriacutea Inversa para la obtencioacuten de disentildeo detallado basado en LEVISSrdquo Tesis (02-0014) 2002

54

Anexo A

Conampuracioacuten de Microsoft Vkua[C++ 6 O

Este anexo indica las configuraciones que se utilizaron para la compilacioacuten de SCUML y s3c

Configuracioacuten de Microsoft Visual c++ 60

Debido a la integracioacuten de los proyectos de InverSOODA e InverDDVi con S3C se cumplioacute con los requisitos previos de ambos proyectos

El compilador usado en el proyecto fue el Microsoft Visual C++ 60

Para el cumplimiento con la funcionalidad de InverSOODA se instaloacute el ANTLR la versioacuten 271 Se descargoacute del sitio l i l l ~ ~ ~ ~ ~ ~ t l ~ l ~ - ~ t - ~ la versioacuten mencionada en un archivo comprimido (en formato zip) Se colocoacute el paquete descomprimido en el directorio ldquoDIANTLR-271 I rdquo

Recomiendo ampliamente que el directorio principal de ANTLR se copie en el directorio raiacutez de cualquier unidad de disco debido a que experimenteacute problemas de compilacioacuten cuando ANTLR no se encontraba en el directorio raiacutez

Io015

Source Browser AlttF12 I u c Ersquo V I

Visual Component Mgnager

- - ~ ~ ~ ~~

P2 Registrar control

A Contenedor de prueba de controles ActiveX

A Usor de objetos OLE y COM

Buacutesqueda de errores

A Y++ MFC Iracer

Customize options

~ - q- ~ Macro

Eecord Quick Macro Cbl+ShiR+R Pay Quick Macro Ctrl+ShiR+P

En el menuacute Tools (Herramientas) seleccione el sub-menuacute Options ltopcionesgt

56

Configuracioacuten de Microsoft Visual C++ 60

En la siguiente ventana de diaacutelogo debe agregar la direccioacuten en donde se encuentra el ANTLR

Agregar la ruta del directorio de ANTLR hasta el subdirectorio

libcpp

Editor I Tabs I Debug I Compatibility 1 Build Dneclolies I a I Chow directories for - Platfolm -

- Directories I x ) 4 jWin32 -] llnclude files

m cancd I

57

Configuracioacuten de Microsoft Visual C t+ 60

Se ha creado una libreriacutea (anrlrliblib) de ANTLR la cual ya estaacute situada en el directorio del proyecto SCUML (ISCUML) y no debe ser movida o eliminada

I

Geneial 1 Debug I CC++ Link I Category

Output file name bebugSCUMLexe

Objectljibrary modules 4 anllrliblib

li Generate debug lnfo r Ignore all defaull lbaries D ~ i n k j n ~ ~ ~ t a n ~ r ~ e n e r ~ ~ ~ mapfile

r Enable psafilrng

Proiec1 Ootionn

pq Cancel 1 Libreriacutea de ANTLR que debe existir 1 I para que se compile correctamente

58

Anexo B

~ u iacute aacute raacutepida de uso deC Sistema S3C

5 Este anexo indica de forma raacutepida la manera de utilizar S3C para crear un diagrama de secuencias de forma automaacutetica

Guiacutea Raacutepida de uso del Sistema S3C i

Para indicar la creacioacuten de un diagrama de secuencias en forma automaacutetica se debe ir a la barra del costado izquierdo y presionar ldquoNuevo Proyecto SCUMLrdquo

I s3c I ~ Nuevo Proyecto SCUML ~ _ _ - I Diagrama de clases ~ Diagrama de secuencias 1 MDI DOC Activo

-

Apareceraacute un documento llamado ldquoSCUMLV en donde el simbolo corresponde a un numero consecutivo iniciando desde 1 (uno)

$ e Despueacutes se presiona ldquoDiagrama de clasesrdquo Habraacute que para indicarle al sistema si se requiere abrir un diagrama de clases existente o realizar uno nuevo

i

iquestAbrir un documento existente

No Cardquo~ear

AI presionar ldquoSirdquo se debe indicar cual es el archivo del diagrama de Clases en el cuadro de diaacutelogo siguiente

~~ - 11dMis documentos rsquo 2 M i P C i lsquo h s sitios de red

I

AI presionar ldquoNordquo en ldquoAbrir un documento existenterdquo se nos mostraraacute un documento vacio para crear un diagrama de clases

60

Guiacutea Raacutepida de uso del Sistema S3C

Para ambas opciones se requiere que los diagramas de Wamier ya se encuentren construidos Y para continuar el proccso se selecciona el documento ldquoSCUMLVrsquo creado al inicio y despueacutes presionar el botoacuten nombrado ldquoDiagrama de secuenciasrdquo localizado en la barra de hcrraiiiicntas del costado izquierdo

Ha iniciado el proceso de construccioacuten del diagrama de secuencias Si no existen errores al terminar el proceso se le mostraraacute un cuadro de diaacutelogo llamado ldquoResultadosrdquo en donde le mostraraacute las llamadas de las que no localizoacute su definicioacuten

- - -

Cancel 1 D e las siguientes llamadas es posible que esten mal escritas o peitenezcan a la libreiia del Lenguaie Verifique ya que no se encontraron sus definiciones

A continuacioacuten se mencionan los posibles errores que finalizan el proceso de la creacioacuten automaacutetica de los diagramas de secuencias en S3C

Cuando no exista un meacutetodo lsquomainrsquo definido en el diagrama de clases

No se encontro el meacutetodo lsquomain()rsquo que inicie la secuencia I A No se puede crear el diagrama de secuencias

p==amp=q

61

Guia Raacutepida de uso del Sistema S3C

Cuando se definan niultiples metodos lsquoinainrsquo en el diagrama de clases

Multiples meacutetodos lsquomainOlsquo Imposible decidir el inicio de secuencia

Aceptar i

Si un meacutetodo definido en Wamier realiza una llamada a lsquomainrsquo se cancelara el proceso

Llamada NO VALIDA al meacutetodo principal main

(iAcp-j(

4 i

CI Y rdquoldquoldquoI i 11 1-T

IZNTRO Gt INFORMACION

62

  • Tabla de Contenido
  • Listado de Figuras
  • Listado de Tablas
  • Notacioacuten
  • Introduccioacuten
  • Capitulo 1 Conceptos Generales
    • 11 Antecedentes
    • 12 Trabajos relacionados
      • 121 Tabla comparativa
        • 13 Definicioacuten del problema
        • 14 Objetivo de la Tesis
          • Objetivos especiacuteficos de la tesis
            • 15 Hipoacutetesis de investigacioacuten
            • 16 Alcances y limitaciones del trabajo de tesis
              • Capitulo 2 Marco Teoacuterico
                • 21 Modelado de sistemas de software
                • 22 Interfaz de usuario (Mecanismos de interaccioacuten)
                • 23 Lenguajes Visuales
                • 24 Programacioacuten orientada a objetos
                • 25 Lenguaje de Modelado Unificado (UML)
                  • Desarrollo de la herramienta
                    • 31 Disentildeo de la Arquitectura
                      • 311 Requisitos (Diagrama de Casos de uso)
                        • 312Modelo Conceptual
                        • 313Diagramas de clases
                        • 32 Elementos de la arquitectura
                          • 321 Microsoft Foundation Class (MFC)
                            • 322Arquitectura Documento Vista
                            • 323Integrando Ambientes en Visual c++
                              • 324 Interfaz de Muacuteltiples Documentos (MDI)
                                • 325Recursos Diaacutelogos Menus y Barras de Herramientas
                                  • 326 Notacioacuten estaacutendar
                                  • 327 Estructura de datos persistencia y recuperacioacuten
                                    • 328Patrones de disentildeo utilizados
                                      • 33 Diagrama de secuencias
                                        • 331Ciclo de vida del software
                                          • 34 Elementos atoacutemicos de la Gramaacutetica
                                            • 341 Representacioacuten visual
                                              • 35 Gramaacutetica desarrollada
                                              • 36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias
                                                  • Capitulo 4 Pruebas y Resultados
                                                    • 41 Recursos teacutecnicos utilizados
                                                    • 42 Descripcioacuten del plan de pruebas
                                                    • 43 Resultados
                                                      • 431 Caso
                                                      • 432 Caso2
                                                      • 433 Caso
                                                          • Conclusiones y trabajos futuros
                                                            • Trabajos futuros
                                                            • Referencias
                                                            • Anexo A Configuracioacuten de Microsoft Visual C+t
                                                              • Figura 11 - Arquitectura de la suite cenidet-UML
                                                              • Figura 21 -Programacioacuten Visual
                                                              • Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de
                                                              • Figura 32 -Diagrama de Casos de Uso para el S3C
                                                              • Figura 33 -Modelo Conceptual
                                                              • Figura 34 - Diagrama de Clases -Control del Diagrama -
                                                              • Figura 35 - Diagrama de Clases - Patroacuten Visitor -
                                                              • Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento
                                                              • Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)
                                                              • Figura 38 -Dialogo Caracteriacutesticas del Objeto
                                                              • Figura 39 -Dialogo Mensaje
                                                              • Figura 3 IO - Menuacute de los Diagramas de Secuencias (estaacutendar)
                                                              • Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias
                                                              • Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)
                                                              • Figura 313 - Serializacioacuten
                                                              • Figura 314 -Modelo de cascada del ciclo de vida del software
                                                              • Figura 41 - Resultado del caso de prueba
                                                              • Figura 42 -Resultado del caso de prueba
                                                              • Figura 43 -Resultado del caso de prueba
                                                              • Figura 44 -Resultado del caso de prueba
                                                              • Tabla 11 - Tabla comparativa
                                                              • Tabla 31 -Prefijos estaacutendar de identificadores
                                                              • Tabla 32 -Elementos atoacutemicos del lenguaje
                                                              • Tabla 41 - Resumen de los resultados de las pruebas realizadas

Tabla 11 - Tabla comparativa

Tabla 31 -Prefijos estaacutendar de identificadores

Tabla 32 -Elementos atoacutemicos del lenguaje

Tabla 41 - Resumen de los resultados de las pruebas realizadas

Listado de Tablas

Paacutegina

6 33

38 49

V

Notacioacuten

La siguiente es la notacioacuten de la que se haraacute uso

ltCObjectgt

ltGetDocunteiztgt

MiClase MiMetodo

9 Liacutenea de Coacutedigo

Mensaje

Clase de la MFC ( Microsoft Fundation Class)

Meacutetodo de una clase de la MFC

Clase desarrollada Meacutetodo de una clase desarrollada

Liacutenea o Bloque de coacutedigo

Elemento del Diagrama de Secuencia

vi

I Introduccioacuten

L~ tesis se enfoca hacia el desarrollo de sistemas de software centrados en el modelado mediante diagramas de secuencias definidos por el Lenguaje de Modelado Unificado (UML) La investigacioacuten y el producto de la tesis estaacuten inmersos en la etapa del disentildeo de sistemas de software

El producto (prototipo) de la tesis denominado S3C permite la obtencioacuten de diagramas de secuencias de UML tomando como base la informacioacuten de un diagrama de clases y de varios documentos modelados con diagramas de Wamier (disentildeo detallado de los meacutetodos)

Para la elaboracioacuten de los diagramas de clases se hace uso del ambiente existente InverSOODA [HER03] Y para el modelado de los documentos Wamier se ha tomado el ambiente InverDDVi [WEN02] Ambos ambientes visuales son productos de tesis anteriores y se han integrado en un solo prototipo denominado SCUML (Suite cenidet - UML)

(i

S3C realiza un proceso automaacutetico para la obtencioacuten de los diagramas de secuencias en este proceso solo se requiere indicar el diagrama de clases del que se basaraacute La construccioacuten de los diagramas de secuencias en S3C estaacute soportada con una gramaacutetica visual relacional El propoacutesito de la gramaacutetica es validar la construccioacuten de los diagramas de secuencias de UML

En el aacutembito de los diagramas de secuencias de UML no existen aplicaciones comerciales oacute proyectos educativos que se apoyen en una gramaacutetica visual para soportar la construccioacuten de los diagramas de secuencias y tampoco existen aplicaciones que permitan a partir de los diagramas de clases y del disentildeo detallado de los meacutetodos generar automaacuteticamente los diagramas de secuencias

3

Los temas relacionados a esta tesis son Modelado de Sistemas UML Interfaz de Usuario Programacioacuten Orientada a Objetos y Gramaacuteticas Visuales

El capiacutetulo 1 es de conceptos generales se dan a conocer los antecedentes del proyecto los trabajos relacionados hipoacutetesis alcances y limitaciones

En el capiacutetulo 2 se define el marco teoacuterico de la tesis se describen temas como Modelado de sistemas de software disentildeo de sistemas de software modelado visual lenguajes visuales programacioacuten orientada a objetos y lenguaje de modelado unificado

El capiacutetulo 3 describe el desarrollo del ambiente visual se detalla el modelo conceptual la arquitectura y sus elementos los diagramas de secuencias y la gramaacutetica visual relacional que se desarrolloacute

En el capiacutetulo 4 se muestran los casos de pruebas y los resultados obtenidos Y al final se establecen las conclusiones y se dan propuestas para algunos trabajos futuros 3

1

Capiacutetulo I

Conceptos generalis

En eacuteste capiacutetulo se dan a conocer los antecedentes del proyecto de tesis los trabajos relacionados el problema que resolveraacute la hipoacutetesis a comprobar los alcances y limitaciones

Conceptos generales

11 Antecedentes

Actualmente en el cenidet (Centro Nacional de Investigacioacuten y Desarrollo Tecnoloacutegico) se trabaja en la construccioacuten de un conjunto de ambientes visuales para dar soporte al desarrollo con diagramas que define el estaacutendar UML para elaborar sistemas de software de manera completa raacutepida y eficaz El ambiente de modelado principal se ha denominado suite cenidet-UML y su arquitectura general se muestra a continuacioacuten en la Figura 11

Arquitectura de la suite cenidet-UML

Figura 11 Arquitectura de la suite cenidet-UML

a El producto de software resultante de eacutesta tesis lleva por nombre S3C y como se indica en la figura 11 Las tesis directamente relacionadas son InverSOODA [HER03] e

InverDDVi [WEN02]

InverSOODA (Sistema Orientado a Objetos para Disentildeo y Anaacutelisis incluyendo Ingenieriacutea Inversa) es un Ambiente Visual que permite la elaboracioacuten de diagramas de clases de un sistema de software Los diagramas de clases son una vista estaacutetica y en ella se describe las relaciones que existen entre las entidades llamadas clases Cada una de las clases se divide en tres partes nombre de la clase meacutetodos y atributos Este ambiente permite generar el coacutedigo fuente en lenguaje C++ de un diagrama construido y tambieacuten aplicando la ingenieriacutea inversa es posible obtener un diagrama a partir de un coacutedigo en C++ existente

InverDDVi (Disentildeo Detallado Visual incluyendo Ingenieriacutea Inversa) es un Ambiente Visual cuyo objetivo es apoyar en la elaboracioacuten de diagramas de disentildeo detallado utilizando una notacioacuten basada en Warnier Los diagramas de Warnier sirven para describir una secuencia loacutegica de acciones y mediante su simbologiacutea se logra plasmar definiciones de meacutetodos llamadas a otros meacutetodos ciclos comparaciones lectura de informacioacuten y escritura de informacioacuten Este ambiente permite generar el coacutedigo fuente en C de un diagrama construido y tambieacuten aplicando la ingenieriacutea inversa se puede obtener un diagrama de Warnier a partir de un coacutedigo en C que ya exista

i

3

Conceptos generales

12 Trabajos relacionados

Rational Rose de Rafional

Una de las herramientas mas populares del mercado que utiliza la notacioacuten UML y tiene la capacidad de reingenieriacutea de software para integrar sistemas existentes capacidad de mezclar diferentes lenguajes dentro de un mismo modelo ademaacutes de ingenieriacutea inversa sobre los componentes COM (Component Object Model) ActiveX y Java y con soporte de las arquitecturas MicrosoWCOM y CORBAIDL (The Common Object Request Broker Architecture)

Con Rational Rose se puede trabajar en grupo con capacidades para modelar y visualizar procesos de negocios y requerimientos de sistemas Tiene soporte para generar esquemas objetos-relaciones de bases de datos para realizar anaacutelisis de datos Cuenta con el soporte para analizar sitios Web en ASP (Active Server Pages) y JSP (Java Server Pages) Ademaacutes soporta los lenguajes Java CC++ Visual CC++ [RAT02] 9

SI -

Visio de Microsoft

Visio Enterprise 2002 permite crear diferentes tipos de diagramas como son

1 Diagramas de flujo 2 Planos de oficinas 3 Diagramas de aacuterbol 4 Diagramas de organizacioacuten 5 Liacuteneas de tiempo 6 Mapas geograacuteficos y direccionales 7 Diagramas de sitios Web 8 Diagramas de red 9 Diagramas de UML

Tiene las siguientes caracteriacutesticas diagramacioacuten e importacioacuten de servicios de directorio reingenieria de bases de datos disentildeo y documentacioacuten de bases de datos diagramacioacuten de software ingenieriacutea directa e inversa de coacutedigo replicacioacuten exacta por medio de diagramas de equipos y configuraciones de red diagramacioacuten automatizada y ambiente colaborativo

Visio da un conjunto completo de herramientas de diagramacioacuten de redes para planear y documentar claramente las redes existentes Ademaacutes para crear esquemas eleacutectricos mecaacutenicos y de procesos pueden crearse diagramas complejos con facilidad y poco entrenamiento

A las aplicaciones existentes se les puede realizar la ingenieriacutea inversa para obtener el disentildeo y tambieacuten crear nuevos disentildeos Proporciona herramientas para crear diagramas de bases de datos y es posible realizar ingenieriacutea inversa de esquemas existentes en bases de datos cliente servidor como SQL Server IBM Oracle y otros [MIC02]

4

Conceptos generales

e JVision 21 de Object Insight

JVision permite en la ingenieriacutea directa la creacioacuten de clases variables y meacutetodos con lo cual genera plantillas de coacutedigo para programadores en Java Los diagramas se pueden exportar a HTML La documentacioacuten puede integrarse con JavaDoc de Sun JVision da el soporte para ingenieriacutea inversa para el lenguaje Java

Se pueden crear todos los diagramas definidos por UML en los diagramas de secuencias da la oportunidad de dibujar clases liacuteneas liacuteneas de tiempo de vida y marca de destruccioacuten de objetos ofrece ademaacutes el soporte para las acciones de llamada regresar valor enviar accioacuten crear accioacuten y eliminar accioacuten [OBJO2]

MagicDraw 6 de No Magic

Es una herramienta CASE con soporte para trabajo en grupo Esta disentildeado para analistas 6 de negocios analistas de software programadores ingenieros de calidad y

documentadores Esta aplicacioacuten provee la capacidad para crear los diagramas definidos por UML (soporta UML 14) Cuenta con el soporte de ingenieriacutea inversa y generacioacuten de coacutedigo para C++ C Java y CORBNIDL Tiene integracioacuten con NetBeans se actualiza automaacuteticamente disponible en aacuterabe portugueacutes franceacutes italiano ingles (US) alemaacuten espantildeol japoneacutes y coreano

Tiene la caracteriacutestica de soportar la adaptacioacuten de los elementos a colores que el usuario defina Los diagramas pueden exportarse a imaacutegenes JPG EMF WMF EPS y DXF En los diagramas de secuencia da oportunidad de definir roles textos notas mensajes de varios tipos al mismo objeto recursivo ademaacutes de la relacioacuten a las notas y las liacuteneas de vida Es posible guardar los diagramas como imaacutegenes de mapas de bits o vectores Mantiene ademaacutes una vista pequentildea a escala del diagrama completo [NoA402]

e

SmariDraw Professional Plus de SmariDraw

Todos los dibujos pueden agregarse en las aplicaciones de Microsoft como son Word Excel PowerPoint Contiene maacutes de 50000 (1000 en la versioacuten estaacutendar) formas predefinidas ejemplos y plantillas Los diagramas pueden ser exportados a imaacutegenes WMF BMP JPG GIF TIF y otros Incluye un convertidor de archivos de VISIO

Con esta herramienta es posible crear diagramas de flujo diagramas de bloque diagramas de flujos de datos diagramas de organizacioacuten aacuterboles de decisioacuten disentildeo de redes Gantt diagramas de flujo de procesos diagramas de administracioacuten de calidad diagramas eleacutectricos diagramas mecaacutenicos diagramas quiacutemicos liacuteneas de tiempo planes de espacio posters mapas formas y tambieacuten da soporte para UML es posible dibujar objetos actores activacioacuten de los objetos mensaje mensaje de retorno mensaje asiacutencrono mensaje con tiempo liacutenea de vida del objeto marca de destruccioacuten del objeto y ciclos (descrito con un rectaacutengulo y una condicioacuten de salida) [SMA02]

5

Conceptos generales

Producto Soporta Diagramas de UML Secuencias

Creacioacuten automaacutetica de diagramas de

El Rational Rose El Visio

Jvision

Magic D r a w

a a El Fl El a El El

I ~

I ~

I -

Ambiente de modelado de

a a SmartDraw El

Tabla I Tabla comparativa

Todas las herramientas descritas anteriormente cuentan con caracteriacutesticas sobresalientes para el disentildeo y modelado de sistemas de software pero ninguna de ellas genera automaacuteticamente los diagramas de secuencia con base en los diagramas de clases y el disentildeo detallado de los meacutetodos asiacute tambieacuten ninguna de ellas realiza un caacutelculo de los canales de comunicacioacuten abiertos entre las clases que conforman el sistema

iexcla la A UML Editor in Java

13 Definicioacuten del problema

El modelado de sistemas utilizando el estaacutendar de UML en diversos productos comerciales prototipos de laboratorio elaborados en universidades y centros de investigacioacuten atienden la perspectiva baacutesica de la abstraccioacuten general del modelo esto es documentar el modelo del sistema que se requiere sin atender puntos importantes tales como

La generacioacuten automaacutetica de los diagramas de secuencias La correccioacuten de inconsistencias en los diagramas al crearlos de forma separada

El

6

sistemas de software

secuencias utilizando diagramas de a a a

Conceptos generales

Se hace necesaria la creacioacuten de un ambiente visual que permita obtener de forma automaacutetica los diagramas de secuencias en base a los diagramas de clases y al disentildeo detallado de los meacutetodos para facilitar la documentacioacuten la generacioacuten de coacutedigo y el mantenimiento de los sistemas

La obtencioacuten de los diagramas de secuencias estaacute basada en los Diagramas de Clases definidos por UML que son construidos con la herramienta InverSOODA junto con el disentildeo detallado de los meacutetodos construidos con Diagramas de Wamier elaborados con la herramienta InverDDVi

En el estaacutendar UML para la construccioacuten de los diagramas no existe actualmente una sintaxis expliacutecita definida solo existe impliacutecitamente en el uso de los elementos del diagrama por lo que se ha descrito una gramaacutetica visual de tipo relaciona1 como soporte para la construccioacuten de los Diagramas de Secuencias

n ai 14 Objetivo de la Tesis

Construir un ambiente visual que permita al usuario obtener el diagrama de secuencias de manera automaacutetica

141 Objetivos especiacuteficos de la tesis Crear una gramaacutetica que soporte la construccioacuten del diagrama de secuencias Construir de forma automaacutetica el diagrama de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodos

15 Hipoacutetesis de investigacioacuten

Es posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodos

16 Alcances y limitaciones del trabajo de tesis

Los alcances de la tesis se especifican a continuacioacuten

Se elaboroacute la arquitectura del sistema Se definioacute la gramaacutetica de soporte Se desarrolloacute la interfaz en Visual C++ haciendo uso de las MFC Se interactuacutea con los diagramas de clases de InverSOODA Se interachiacutea con el disentildeo detallado de los meacutetodos realizados por InverDDVI Se genera el diagrama de secuencias de forma automaacutetica

7

Conceptos generales

Limitaciones de la tesis

0 No se genera coacutedigo

La investigacioacuten se limita a los diagramas de clases para la vista estaacutetica de los sistemas de software y a los diagramas de Warnier para la vista dinaacutemica de los meacutetodos El ambiente no trabaja en red

No se modifican los archivos de InverSOODA No se modifican los archivos de InverDDVI No se recuperan diagramas de secuencias a partir de coacutedigo legado

4

8

Capiacutetulo 2

Narc0 teoacuterico

En eacuteste capiacutetulo se describen los temas usados para el desarrollo de la tesis iquestQue son los modelos iquestEn que parte del proceso de Ingenieriacutea del Software se usan los modelos o el modelado Se estudia la interfaz de usuario los lenguajes visuales y las gramaacuteticas visuales Se describe el Lenguaje de Modelado Unificado (UML) ademaacutes de la programacioacuten orientada a objetos por ser este paradigma en donde se enfoca este trabajo

Marco teoacuterico

21 Modelado de sistemas de software

un modelo es una abstraccioacuten de algo con el propoacutesito de entenderlo antes de construirlo El modelo omite detalles no esenciales haciendo maacutes faacutecil su manipulacioacuten que la entidad original [BLA98] Un modelo es la simplificacioacuten de la realidad [RUM99] Los propoacutesitos de los modelos son

Probar una entidad fisica antes de construirla Establecer mejor comunicacioacuten con los clientes Visualizar el problema y el sistema desde una mejor perspectiva Reducir la complejidad [BLA98] Capturar y precisar requerimientos y conocimiento del dominio Pensar acerca del disentildeo del sistema Capturar decisiones de disentildeo en una fomia separada que cambia a partir de los requerimientos Generar productos Organizar buscar filtrar obtener examinar y editar informacioacuten acerca de un sistema Explorar muacuteltiples soluciones econoacutemicas Manejar sistemas complejos [RUM99]

El modelado es una probada y bien aceptada teacutecnica de Ingenieriacutea de Software [RUM99] El modelado es parte central de todas las actividades que conducen a la produccioacuten de buen software Se construyen modelos para comunicar la estructura deseada y revisar el comportamiento de nuestro sistema Se construyen modelos para visualizar y controlar la arquitectura del sistema Se construyen modelos para comprender mejor el sistema que estamos construyendo muchas veces descubriendo oportunidades para la simplificacioacuten y la reutilizacioacuten Se construyen modelos para controlar el riesgo [BOO99] La razoacuten fundamental por la que modelamos es porque nosotros construimos modelos que nos ayudan a entender mejor el sistema que estamos desarrollando [RUM99]

El modelado nos permite [RUM99] 1 Visualizar como es el sistema o como queremos que sea 2 Especificar la estructura del sistema 3 Plantear nuestras guiacuteas en la construccioacuten delsistema 4 Documentar las decisiones que hemos tomado

En las etapas del desarrollo del software el modelado es usado en el disentildeo el disentildeo del sistema es la primera etapa en donde se da la aproximacioacuten baacutesica de la solucioacuten al problema seleccionado ademaacutes se decide por la estructura (arquitectura del sistema) y el estilo de la solucioacuten

La arquitectura del sistema provee el contexto sobre el cual se tomaraacuten decisiones mas detalladas en las etapas subsecuentes del disentildeo [BLA98] En el disentildeo modelamos el sistema y encontramos su forma (incluida la arquitehra) para que soporte todos los 3 -

10

Marco teorico

i

4 -I

requisitos -incluyendo los requisitos no funcionales y otras restricciones- que se le suponen [JAC99] Los propoacutesitos del disentildeo son

Adquirir una comprensioacuten en profundidad de los aspectos relacionados con 10s requisitos no funcionales y restricciones relacionadas con los lenguajes de programacioacuten componentes reutilizables sistemas operativos tecnologiacuteas de distribucioacuten y concurrencia tecnologiacuteas de interfaz de usuario tecnologiacuteas de gestioacuten de transacciones etc Crear una entrada apropiada y un punto de partida para actividades de implementacioacuten subsiguientes capturando los requisitos o subsistemas individuales interfaces y clases Ser capaces de descomponer los trabajos de implementacioacuten en partes mas manejables que puedan ser llevadas a cabo por diferentes equipos de desarrollo teniendo en cuenta la posible concurrencia Capturar las interfaces entre los subsistemas Esto ayuda cuando reflexionamos sobre la arquitectura y cuando utilizamos interfaces como elementos de sincronizacioacuten entre diferentes equipos de desarrollo Ser capaces de visualizar y reflexionar sobre el disentildeo utilizando una notacioacuten comuacuten Crear una abstraccioacuten independiente de la implementacioacuten del sistema en el sentido de que la implementacioacuten es un refinamiento directo del disentildeo que rellena lo existente sin cambiar la estructura Esto permite la utilizacioacuten de tecnologiacuteas como la generacioacuten de coacutedigo y la ingenieriacutea de ida y vuelta entre el disentildeo y la implementacioacuten [JAC99]

22 Interfaz de usuario (Mecanismos de interaccioacuten)

El crecimiento de las computadoras personales vendidas en los ~ O rsquo S lanzoacute con fuerza el ldquofaacutecil de usarrdquo como una de las caracteriacutesticas mas importante de un producto de computadora

Las interfaces graacuteficas de usuario no son nuevas se pueden encontrar en las paredes de cuevas al sur de Francia en las piraacutemides de Egipto y en las paredes de muchas ciudades [iUM92] Para el usuario de un sistema interactivo la comunicacioacuten es tan importante como la computacioacuten Para los usuarios regularmente la interfaz es el sistema [HIX93]

Disentildeo de Interfaz Seguacuten Hackos [HAC98] las interfaces estaacuten en todo donde se trabaja con

o Controles en productos de hardware o Etiquetas y sentildeales en el hardware o Pequentildeas pantallas de cristal liquido en maacutequinas de cualquier tipo o Pantallas para aplicaciones de software para terminales de computadoras centrales

Marco teoacuterico

o pantallas para aplicaciones de software en computadoras Personales sistemas operativos como Windows OS2 DOS Macintosh U n b Y Otros

0 Paacuteginas de un sitio WEB 0 Sistemas de ayuda y manuales en-liacutenea 0 Tutoriales incrustados y otros tipos de soporte de funcionamiento O Esquemas de formas y otros documentos

una interfaz es el medio con el cual los usuarios interactuacutean con el producto 0

sistema para lograr SUS objetivos

Interfaz Usable

Para que una interfaz sea usable debe ser transparente y darles a los usuarios la capacidad de lograr cumplir sus metas de forma efectiva y eficiente

Los beneficios presentados en el uso de las interfaces de usuario [TH190] Disfrutar el sistema El usuario disfruta trabajar con un sistema que cuenta con una interfaz bien disentildeada y que le da la funcionalidad y acceso a los recursos de una manera clara y sencilla Proporciona nuevas habilidades Elimina al usuario concentrarse en acciones que la propia interfaz y el sistema hacen dando como resultado que el usuario solo se concentre en lo importante del trabajo Delegacioacuten de tareas La interfaz de usuario permite al usuario no conocer los detalles de la tarea esto es la computadora atiende los detalles de las tareas mientras que el usuario se concentra en asuntos de maacutes alto nivel Seguridad El usuario no necesita estar en lugarespeligrosos para hacer su trabajo

Se da la mayor posibilidad para que el usuario tenga acceso al conocimiento utilizando un sistema interactivo Haciendo las cosas a la primera Las tareas se ejecutan en un orden correcto definido lo que da como resultado un trabajo bien terminado sin necesidad de repetir evitando asiacute altos costos Computando LOS usuarios pueden calcular datos sin necesidad de conocer el proceso para obtener los resultados

Desarrollo

El disentildeo de interfaz es un negocio bastante dificil Eacuteste combina dos complicadas disciplinas psicologiacutea y ciencias de la computacioacuten Estas disciplinas tienen un fondo cultural muy diferente la psicologiacutea atiende a la gente (comprensioacuten y entendimiento) las ciencias computacionales a las maacutequinas (matemaacuteticas y precisioacuten) El disentildeo de las buenas interfaces requiere que estas dos perspectivas esteacuten unidas [THi90]

Hackos dice que las interfaces dan simplicidad y elegancia al trabajo necesario y a la vida e los usuarios Si no es obvio al usuario pero es raacutepida para aprender [HAC98] ademaacutes define caracteriacutesticas comunes de las interfaces usables

o Hacen que el flujo de trabajo sea familiar o confortable o Soportan el estilo de aprendizaje de los usuarios

12

Marco teoacuterico

Visualizacioacuten de Entrenamiento visual Para controlar Soportar interaccioncs Programar con informacioacuten visual visuales expresiones visuales

o Compatibles con los ambientes de trabajo de los usuarios o Se extienden sobre un concepto de disentildeo que es familiar al usuario o Tienen consistencia de presentacioacuten que los hace parecer maacutes confiable y faacuteciles de

aprender o Usan lenguaje y figuras familiares al usuario o faacuteciles de aprender

Datos o informacioacuten acerca de datos

23 Lenguajes Visuales

Los lenguajes visuales son un nuevo paradigma para expresar los sistemas computacionales Ellos ofrecen la posibilidad de manipular directamente los objetos Un lenguaje visual consiste de sentencias visuales Para lenguajes visuales basados en iacuteconos cada sentencia visual es un arreglo espacial de objetos O iacuteconos graacuteficos [CHA90]

Un lenguaje visual es concebido como una coleccioacuten de figuras obtenidas por un arreglo graacutefico de objetos en dos o maacutes dimensiones Los lenguajes visuales pueden ser modelados sintaacutecticamente a traveacutes de un vocabulario un conjunto de relaciones usadas para componer las figuras y un conjunto de reglas describiendo las figuras pertenecientes al lenguaje Los objetos graacuteficos de un vocabulario de un lenguaje visual se caracterizan por contar con un conjunto de atributos Los atributos de un objeto graacutefico pueden ser atributos graacuteficos atributos sintaacutecticos y atributos semaacutenticos [MAR98]

Un lenguaje de programacioacuten visual puede ser informalmente definido como un lenguaje el cual usa algunas representaciones visuales [SHV88]

Programa ylo Disentildeo de Lenguajes de programacioacuten visual ejecucioacuten software Diagramas iconos Formas

Programacioacuten Visual [SHU88]

Gramaacuteticas para la especificacioacuten de lenguajes visuales [MAR98]

a) Gramaacuteticas texfuales generalizadas Este tipo de gramaacutetica provee una adaptacioacuten apropiada de la concatenacioacuten de siacutembolos para dos dimensiones Su principal ventaja es que conservan los elementos teoacutericos de las gramaacuteticas textuales y los eficientes algoritmos de anaacutelisis de eacutestos uacuteltimos Su principal desventaja es que eacutestas gramaacuteticas no son tan poderosas y soacutelo pueden especificar clases restringidas de lenguajes visuales

13

Marco teorico

b) Meacutetodos basados en gramaacuteticas de grafos Un ejemplo de este tiPo de gramaacuteticas son las gramaacuteticas de red Las oraciones generadas con gramaacuteticas de red son grafos dirigidos con siacutembolos en los nodos Estos grafos son llamados redes Una produccioacuten de eacuteste tipo de gramaacuteticas es de la siguiente forma

a - t p E

donde a y p son redes y E es una forma de conectar a p cuando a es conectada a otra red anfitriona

La mayor desventaja es que las gramaacuteticas de red no han probado ser totalmente uacutetiles para la especificacioacuten de gramaacuteticas arbitrarias por la complejidad para rescribir grafos y al hecho de que no todo lenguaje visual estaacute compuesto exclusivamente por grafos

C) Gramaacuteticas de multiconjuntos de atributos En estas gramaacuteticas las producciones rescriben conjuntos o multiconjuntos de siacutembolos que tienen atributos con informacioacuten sobre geometriacutea o semaacutentica La reescritura se controla con restricciones sobre los atributos de los siacutembolos en el lado derecho de las producciones

Un ejemplo de eacutestas gramaacuteticas es la Gramaacutetica Coordinada que especifica notacioacuten matemaacutetica de dos dimensiones En esencia las producciones en una gramaacutetica coordinada n-coordinada libre del contexto tienen la siguiente forma

A -t a donde C F

Todos los siacutembolos de eacuteste tipo de gramaacutetica tienen n atributos geomeacutetricos A es un siacutembolo no terminal a es una cadena no vaciacutea de siacutembolos C es una restriccioacuten sobre los atributos de los siacutembolos en a y F es una expresioacuten que computa los atributos de los siacutembolos de A en teacuterminos de los atributos de los siacutembolos en a no importando el orden de los siacutembolos en a

d) Gramaacuteticas PosicionaZes Las gramaacuteticas posicionales son un formalismo para la definicioacuten e implementacioacuten de lenguajes visuales las gramaacuteticas posicionales extienden naturalmente a las gramaacuteticas libres de contexto Una gramaacutetica libre de contexto posicional PG es una six-tupla (N T S P POS PE) donde

N es un conjunto finito no vaciacuteo de siacutembolos no terminales T es un conjunto finito no vaciacuteo e siacutembolos terminales con N n T = $I S E N es el siacutembolo no terminal de inicio P es un conjunto finito de producciones POS es un conjunto finito de identificadores de relacioacuten binaria PE es un evaluador pictoacuterico

14

Marco teorico

Cada produccioacuten en P tiene la siguiente forma

A -+ X I R I X R2 X ~ I Rm1 xm A

e) Gramaacuteticas de Relacioacuten de siacutembolos Eacuteste es un formalismo sintaacutectico para describir un lenguaje visual donde cada oracioacuten dentro del lenguaje se representa como un conjunto de objetos visuales y un conjunto de relaciones entre objetos

El alfabeto de siacutembolos Vt y el conjunto de relaciones entre siacutembolos Vr una oracioacuten de relacioacuten de siacutembolos w sobre Vt y Vr es un par ( M R) donde

M es un conjunto de elementos-s (v i) con v E Vt y i es un nuacutemero natural R es un conjunto de elementos-r de la forma r (Xi Yj) con Xi Yj E M r E Vr y una relacioacuten r esta contenida entre Xi y Yj

Una gramaacutetica de relacioacuten de simbolos es el conjunto de seis elementos G = (Vn Vt Vr S P R) donde Vn es un conjunto de siacutembolos no terminales Vt es un conjunto de siacutembolos terminales Vr es un conjunto de relaciones entre siacutembolos S es el siacutembolo inicial y P es un conjunto de reglas de reescritura (producciones de elementos-s)

f) Gramaacuteticas relacionales Este tipo de gramaacutetica pertenecen a las gramaacuteticas libres de contexto

La gramaacutetica relaciona1 (RGrsquos) es una 6-tupla G (N C S R Attr P) donde

N C S R Attr P

es un conjunto finito de siacutembolos no terminales es un conjunto de siacutembolos terminales es un siacutembolo distinguido en N llamado siacutembolo inicial es un conjunto finito de siacutembolos de relacioacuten es un conjunto finito de siacutembolos de atributos es un conjunto de producciones de la forma A-gt apF donde A E N a E (nlo)+ Donde n E N cr E E

8 Es un conjunto de relaciones de la forma (r x y) donde r E R y xy son enteros que hacen referencia a un miembro de a y tambieacuten una expresioacuten de la forma (a i) donde a E Attr e i es un entero que hace referencia a un miembrode a

F Es un conjunto de declaraciones de asignacioacuten de caracteriacutesticas de la forma (a O)=x donde a E Attr y x es un entero que hace referencia a un miembro de a o a una expresioacuten de la forma (a i)

15

Marco teoacuterico

24 Programacioacuten orientada a objetos

L~~ meacutetodos orientados a objetos organizan la informacioacuten Y el procesamiento que manipula esta informacioacuten de acuerdo a los objetos delrsquomundo real que la informacioacuten describe [BRO97l

Beneficios de las teacutecnicas orientadas a objetos [BR097] Estabilidad del sistema Mantenibilidad Componentes reusables Confiabilidad Accesibilidad de los datos Participacioacuten del usuario

Seguacuten Graddy Booch la programacioacuten orientada a objetos es ldquoun meacutetodo de implementacioacuten en el que los programas se organizan como colecciones cooperativas de objetos cada uno de los cuales representan una instancia de alguna clase y cuyas clases son todas miembros de una jerarquiacutea de clases unidas mediante relaciones de herenciardquo [JOY 981

Programacioacuten orientada a objetos esencialmente significa programacioacuten usando objetos [JAC93] Los lenguajes orientados a objetos deben soportar los siguientes conceptos

Objetos Abstraccioacuten de datos Encapsulamiento Clases e Instancias Herencia entre clases Polimorfismo

Las propiedades fundamentales de la Programacioacuten Orientada a Objetos son

a Abstraccioacuten Son ideas conceptos y propiedades que se describen en forma general eliminando los detalles Es una estructura de datos y los meacutetodos que manipulan a esos datos

b Encapsulamiento Son las fronteras propias de un objeto bien definidas las cuales protegen los detalles de su representacioacuten interna

c Ocultacioacuten de la informacioacuten Es la propiedad en la que los objetos pueden hacer uso para impedir que otros objetos los usuarios o incluso los programadores conozcan coacutemo estaacute distribuida la informacioacuten

d Herencia Es la propiedad que tiene una clase para heredar atributos y comportamiento a otras clases

e Polirnorfismo Es la propiedad que permite que una entidad pueda cambiar a diferentes formas efectuaacutendose de manera dinaacutemica en tiempo de ejecucioacuten

16

Marco teoacuterico

t

Clases Es la especificacioacuten de una familia de objetos es la declaracioacuten de un tipo de objetos Tambieacuten se dice que una clase es la descripcioacuten de un conjunto de objetos con un comportamiento similar y que esta compuesta de Datos (o atributos) y Meacutetodos o (rutinas acciones operaciones)

Objeto Un objeto es una entidad en la cual se almacenan datos y los meacutetodos o funciones que controlan dichos datos Un objeto es una abstraccioacuten de alguna cosa del mundo real que contiene datos que lo describen y operaciones que solo tienen acceso a esos datos [BR097l Los elementos de los que esta conformado un objeto son

a Las relaciones permiten que el objeto se integre en la organizacioacuten b Las propiedades son los datos que caracterizan el estado de un objeto distinguiendo

asiacute a un objeto determinado de los restantes que forman parte de la misma organizacioacuten

c Los meacutetodos son las operaciones que pueden realizarse sobre la estructura del objeto es decir las acciones que cambian el estado de un objeto y que el objeto es capaz de ejecutar a traveacutes de mensajes y que tambieacuten pone a disposicioacuten de sus descendientes a traveacutes de la herencia

Mensajes Son solicitudes para que se lleve a cabo la operacioacuten indicada y se produzca un resultado

Las razones principales para introducir la tecnologiacutea de objetos son los beneficios de dicha tecnologiacutea

Aumento de la fiabilidad Aumento de la productividad del desarrollador Desarrollo maacutes raacutepido Mejor calidad maacutes alta

Incremento en escalabilidad Mejores estructuras de informacioacuten Incremento de adaptabilidad Reduccioacuten del coacutedigo fuente

Mantenimiento maacutes faacutecil y reduccioacuten de costo

Los elementos de reutilizacioacuten son las clases y objetos

25 Lenguaje de Modelado Unificado (UML)

UML (Unified Modeling Language por sus siglas en ingleacutes Lenguaje de Modelado Unificado) es un lenguaje de modelado visual de propoacutesito general que es utilizado para especificar visualizar construir y documentar las partes de un sistema de software El lenguaje estaacute basado en un pequentildeo nuacutemero de conceptos centrales que la mayoriacutea de los desarrolladores de tecnologiacutea orientada a objetos pueden aprender y aplicar faacutecilmente [RUM99]

17

Marco teoacuterico

y UML Pasado Presente y Futuro

L~~ lenguajes de modelado orientado a objetos aparecieron a mediados de 10s 70rsquos Varias teacutecnicas influenciaron estos lenguajes El nuacutemero de lenguajes de modelado incrementoacute desde menos de 10 hasta maacutes de 50 entre 1989 y 1994 Muchos modeladores teniacutean problemas para encontrar un lenguaje de modelado que satisficiera todas sus necesidades Notablemente aparecioacute Boochrsquo93 y la evolucioacuten continuoacute a OMT y Fusioacuten

OOSE (Object-Oriented Software Engineering) estaacute enfocado a la ingenieriacutea de negocios y anaacutelisis de requerimientos dando un excelente soporte orientado a casos de uso OMT-2 es especialmente expresivo para anaacutelisis y sistemas de informacioacuten de datos grandes Boochrsquo93 fue particularmente expresivo para el disentildeo y fases de construccioacuten de proyectos y popular para aplicaciones de ingenieriacutea intensiva

Grady Booch y Jim Rumbaugh iniciaron el desarrollo de UML en 1994 al unificar sus meacutetodos independientes Booch y OMT En 1995 Ivar Jacobson se unioacute a Racional eacutesta unioacuten logroacute que el meacutetodo OOSE se incorporara La unificacioacuten establecioacute que debiacutean activar el modelado de sistemas utilizando conceptos orientados a objeto asiacute como crear un lenguaje usable tanto para las maacutequinas como para los humanos

A

Muchas organizaciones se unieron al consorcio UML y dedicaron recursos al trabajo hacia el fortalecimiento de la definicioacuten de UML Esta colaboracioacuten produjo un lenguaje de modelado expresivo poderoso y generalmente aplicable En la forma actual de UML se espera que sea base de muchas herramientas incluidas las de modelado visual simulacioacuten y ambientes de desarrollo

R UML es abierto y no-propietario y aunque define un lenguaje preciso no es barrera para futuras mejoras en conceptos de modelado Se usan muchas teacutecnicas de punta pero se esperan teacutecnicas adicionales que influencien futuras versiones de UML puede ser extendido sin redefinir el nuacutecleo

c

Mientras el rehuacuteso basado en componentes se ha favorecido ampliamente cada vez mas esto no significa que las teacutecnicas basadas en componentes reemplazaraacuten las teacutecnicas orientadas a objetos Hay solo sutiles diferencias entre la semaacutentica de componentes y clases [ALC03]

Un opaco rendimiento caracterizoacute el mercado de anaacutelisis modelado y disentildeo en el 2000 en su transicioacuten de las viejas herramientas CASE (Computer Aided Software Engineering) a algo maacutes dinaacutemico y mejor adaptado para satisfacer las necesidades de los desarrolladores para el cambio raacutepido en los ambientes de negocio

El mercado de anaacutelisis modelado y disentildeo lograraacute obtener un crecimiento positivo en varios de los siguientes antildeos por varias razones El mercado seraacute manejado principalmente por la necesidad de desarrolladores a obtener aplicaciones para lanzarse al mercado raacutepidamente asiacute tambieacuten por el intereacutes creciente y uso de una nueva especie de herramienta y por el intereacutes creciente de los desarrolladores en usar UML reglas de negocios y adaptadores de componentes para construir aplicaciones [RIKUI]

z -

18

Marco teoacuterico

UML se ha hecho el estaacutendar para los desarrollos de modelado de negocios administracioacuten de requerimientos anaacutelisis y disentildeo programacioacuten y pruebas Los objetivos primarios de UML en el disentildeo [RAT97j

o Dar a los usuarios un lenguaje visual expresivo de modelado listo para usarse para que puedan desarrollar y cambiar los significados de sus modelos

o Suministrar mecanismos de extensibilidad y especializacioacuten para extender los conceptos centrales

o Ser independiente de lenguajes de programacioacuten particulares y procesos de desarrollo

o Impulsar el desarrollo de las herramientas Orientadas a Objeto en el mercado o Soportar conceptos de desarrollo de alto nivel como colaboracioacuten marcos de

componentes reutilizables patrones y componentes o Integrar las mejores praacutecticas

9 El aacutembito de UML

UML es un lenguaje para especificacioacuten construccioacuten visualizacioacuten y documentacioacuten de artefactos de un sistema de software UML es la fusioacuten de los conceptos de Booch OMT y OOSE El resultado es un simple comuacuten y ampliamente usado lenguaje de modelado para usuarios de estos y otros meacutetodos UML se enfoca en un lenguaje de modelado estaacutendar no en un proceso estaacutendar los autores de UML recomiendan un proceso de desarrollo manejado por casos de uso de arquitectura central iterativo e incremental [iiquest4T97l

Para la definicioacuten de sistemas de software en UML se definen diagramas Un diagrama es la representacioacuten graacutefica de un conjunto de elementos este se visualiza la mayoriacutea de las veces como un grafo conexo de nodos (elementos) y arcos (relaciones) Los diagramas se dibujan para visualizar un sistema desde diferentes perspectivas de forma que un diagrama es la proyeccioacuten de un sistema uumlML incluye nueve diagramas [B0099]

4 -

I Diagrama de clases 2 Diagrama de objetos 3 Diagrama de casos de uso 4 Diagrama de secuencias 5 Diagrama de colaboracioacuten 6 Diagrama de estados 7 Diagrama de actividades 8 Diagrama de componentes 9 Diagrama de despliegue

Diagramas de secuencias Un diagrama de secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten comportamiento

Un diagrama de secuencias muestra un conjunto de mensajes acomodados en una secuencia de tiempo eacuteste diagrama muestra la interaccioacuten en un esquema de dos - dimensiones [RUM99]

19

Marco teoacuterico

Y -

Un diagrama de secuencia es un diagrama de interaccioacuten que resalta la ordenacioacuten temporal de los mensajes Un diagrama de secuencia presenta un conjunto de objetos y los mensajes enviados y recibidos por ellos Los objetos suelen ser instancias (con nombre o sin nombres) de clases pero tambieacuten pueden representar instancias de otros elementos tales como colaboraciones componentes y nodos Los diagramas de secuencia se utilizan para describir la vista dinaacutemica de un sistema [B0099]

Usar los diagramas de secuencia es mostrar la secuencia que existe en un caso de uso [RUM 991

Los diagramas de secuencia tienen dos dimensiones Una dimensioacuten que representa el tiempo Otra dimensioacuten que representa los diferentes objetos que participan en la secuencia de eventos requeridos para completar el propoacutesito [MOuuml98]

El principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildea las interacciones de los objetos [DAN02]

20

Capiacutetulo 3

DesawoCCo de Ia herramienta

En este capiacutetulo se describe el desarrollo del Ambiente Visual Se describe el modelo conceptual del sistema la arquitectura asiacute como tambieacuten los elementos que componen la Arquitectura Se estudian los Diagramas de Secuencias de UML y algunos Patrones de Disentildeo de los que se hace uso para el mejor desarrollo del sistema Se describe a detalle la Gramaacutetica Visual Relaciona1 utilizada para el de Ambiente de desarrollo

I CENIOET 1FNTRO DE INFORMACION

Desarrollo de la herramienta

t i i

Actualmente existe en el cenidet un Ambiente Visual de Modelado de Clases llamado InverSOODA este Ambiente Visual tiene la capacidad de realizar la generacioacuten automaacutetica de coacutedigo de las clases en C++ a partir del modelo especificado Ademaacutes se puede realizar la Ingenieria Inversa de un coacutedigo legado para obtener el modelo de clases Aunado a este trabajo existe el Ambiente Visual denominado InverDDVi con el cual se puede realizar el Disentildeo Detallado de los Meacutetodos de las Clases con diagramas de Warnier Asiacute tambieacuten es posible obtener el modelo aplicando la Ingenieriacutea Inversa a un coacutedigo legado en C++

Ambos trabajos son retomados en este proyecto para la automatizacioacuten en la obtencioacuten de los Diagramas de Secuencias de UML La figura 31 muestra el modelo propuesto de ingenieriacutea directa

Extraer informacioacuten del diagrama de

rsquo rsquo

Diagrama de 11 clases I o

detallado de

detallado de

o meacutetodos

i ir---- Construir el

secuencias i

Modelo de Ingenieriacutea I directa automaacutetica

I

Figura 31 Modelo de Ingenieria Directa Autombtica de los Diagramas de Secuencias

Para la construccioacuten automaacutetica de un diagrama de secuencias se toma como base a un diagrama de Clases El modulo ldquoExtraer informacioacuten del diagrama de Clasesrdquo sirve para obtener el nombre y los meacutetodos descritos en cada uno de las clases que existan en el diagrama de Clases

22

Desarrollo de la herramienta

Con base en la informacioacuten que se tiene se abren los archivos correspondientes a los diagramas de Warnier El proceso que se emplea sobre cada uno los diagramas de Warnier llamado ldquoExtraer informacioacuten de los disentildeos detallados de los meacutetodosrdquo sirve para recopilar el conjunto de las llamadas de cada meacutetodo definido

En el siguiente paso (ldquoReconocer llamadas a meacutetodosrdquo) consiste en identificar si los meacutetodos que estaacuten descritos en los diagramas de Warnier tambieacuten lo estaacuten en el diagrama de Clases correspondiente

El paso ldquoConstruir los diagramas de secuencias automaacuteticamenterdquo realiza una validacioacuten de los meacutetodos definidos en los diagramas de Clases con los meacutetodos definidos en los diagramas de Warnier Este paso crea una estructura de datos con la secuencia de las llamadas y la recorre para crear los objetos y los mensajes en el diagrama de secuencias

AI terminar la creacioacuten automaacutetica del diagrama de secuencias se dispone de la r opcioacuten de guardar

31 Disentildeo de la Arquitectura

Para definir los procesos que el sistema va a realizar es necesario llevar a cabo un anaacutelisis de requisitos los cuales pueden ser expresados mediante diagramas de Casos de Uso Los Casos de Uso son una descripcioacuten textual narrativa de los procesos de un sistema

311Requisitos (Diagrama de Casos de uso)

Los casos de uso en realidad no son un artefacto de anaacutelisis orientado a objetos estos describen simplemente procesos y pueden ser igualmente efectivos en un proyecto tecnoloacutegico no orientado a objetos Son usados en un paso preliminar a la descripcioacuten de requerimientos de un sistema [LAR971 La Figura 32 muestra el diagrama de casos de uso que especifica al S3C

9

S3C (Diagramas de Secuencias)

usuario I Modelado de

I

Figura 32 Diagrama de Casos de Uso para el S3C

23

Desarrollo de la herramienta

Descripcioacuten de los Casos de Uso

Caso de Uso ldquoDiagramas de Secuenciasrdquo Se inicia cuando el actor ldquousuariordquo solicita la creacioacuten de un Diagrama de Secuencias Se establece la forma de la construccioacuten automaacutetica de los diagramas de secuencias de UML Se hace uso del Modelado de Clases y del Modelado del disentildeo detallado de los meacutetodos

Escenario de Eacutexito 1 Se obtiene la informacioacuten de las clases del modelado de clases 2 Se obtiene la informacioacuten del modelado del disentildeo detallado de los meacutetodos 3 Se realiza la construccioacuten automaacutetica de los diagramas de secuencias

1 En el modelo de clases no hay informacioacuten o estaacute incompleta 2 En el modelo del disentildeo detallado de los meacutetodos no hay informacioacuten o estaacute

incompleta

Escenario de Falla

Caso de Uso ldquoModelado de Clasesrdquo El diagrama de Clases se utiliza para obtener los nombres de clases y los nombres de los meacutetodos de cada clase

Escenario de Eacutexito 1 Se abre el modelo 2 Se procesa para obtener la informacioacuten de las clases (nombres de clases y nombres

de meacutetodos)

Escenano de Falla h 1 No se puede abrir el modelo J 2 El modelo esta vaciacuteo

Caso de Uso ldquoModelado del Disentildeo detallado 1 los meacutetodosrdquo El disentildeo detallado de los meacutetodos se realiza con diagramas de Warnier aquiacute se establecen las llamadas a funciones dentro del sistema y es aquiacute donde se identifica el dinamismo que se representaraacute en los diagramas de secuencias

Escenario de Eacutexito 1 Se abre el modelo 2 Se realiza la identificacioacuten de las llamadas existentes

Escenario de Falla 1 No se puede abrir el modelo 2 El modelo esta vaciacuteo

24

Desarrollo de la herramienta

Clase Objeto ni I Diagrama I n ____ Nombre Descripcioacuten

i

Mensaje

Tipo

En el Anaacutelisis Orientado a Objetos se crea una especificacioacuteii del dominio del problema y de los requeriinientos desde la perspectiva de una clasificacioacuten por objetos y del entendimiento de los teacuterminos usados en el dominio del problema Una descomposicioacuten del dominio del problema involucra una identificacioacuten de conceptos atributos y asociaciones que son considerados importantes dentro del dominio El resultado puede ser expresado en un Modelo Corzcepttraf el cual es ilustrado en un conjunto de diagramas que definen conceptos (objetos) [LAR97]

312Modelo Conceptual

El modelo conceptual visto en la Figura 33 no es una descripcioacuten de componentes de software representa conceptos en el domino del problema en el mundo Teal [LAR97l

313Diagramas de clases

Por cuestiones dc espacio las clases de la arquitectura del sistema estaraacuten referidas en varios diagramas que de alguna manera estaacuten relacionados entre si

Una de las partes maacutes importantes del Ambiente Visual S3C es la estructura de clases ltCCraJicogt la cual se refiere al control de los diagramas eacutesta por su naturaleza podriacutea considerarse el nuacutecleo del sistema La manipulacioacuten y control de los diagramas estaacute definido en una estructura de clases organizada con el patroacuten de disentildeo Composite que se muestra en la Figura 34

25

Desarrollo de la herramienta

CRecursividadDS CMensajeDS CObjetoDS CDiagramaDS

I Cvisitor I

CApuntadorDS CDblClickDS CAsocAdjusterDS CSelectorDS

26

Desarrollo de la herramienta

n 32 Elementos de la arquitectura

Es necesario describir los elementos que dan soporte a la arquitectura del ambiente donde se implementaraacute el sistema en este caso Microsoft Visual (MV) C++ 6 El MV C++ es un marco de aplicacioacuten poderoso basado en Windows se integran ademaacutes del lenguaje C++ (compilador y enlazador) el programa de desarrollo de programas en lenguaje C para Windows (SDK) la Microsoft Foundation Class Library AppWizzard Classwizard AppStudio y WorkBencli

La Microsoft Foundation Class Library comprende una biblioteca de clases de C++ y es considerada como el nuacutecleo del MV C++

321Microsoft Foundation Class (MFC)

La libreriacutea Microsoft Foundation Class (MFC) es una interfaz orientada a objetos que tiene las siguientes metas de disentildeo

o

Reduccioacuten significante de esfuerzo al escribir una aplicacioacuten para Windows Velocidad de ejecucioacuten comparable a las APIrsquos del lenguaje C Miacutenimo tamantildeo de coacutedigo Capacidad para llamar cualquier funcioacuten de Windows en C directamente Faacutecil conversioacuten de aplicaciones existentes en C a C++ Faacutecil uso de APIrsquos de Windows con C++ como con C Faacutecil uso de complicadas caracteriacutesticas de abstracciones poderosas como ActiveX soporte para base de datos impresioacuten barras de herramientas y barras de estado El API de Windows en C++ si usa tan efectivamente como las caracteriacutesticas mismas del lenguaje C++

La mayoriacutea de las clases de la Libreriacutea de la Microsoft Foundation Class son derivadas de una clase base ltCObjectgt que es la raiacutez de la jerarquiacutea de clases ltCObjectgt da uacutetiles capacidades a las clases que derivan de ella

La jerarquiacutea que existe en las clases derivadas de ltCObjectgt es la siguiente

Arquitectura de Aplicacioacuten Excepciones Servicios de Archivos Arreglos Listas Mapas Servicios de Internet Sockets Sincronizacioacuten Soporte para base de datos D A 0

27

Desarrollo de la herramienta

i

r

Liacutenea de Comandos Menuacute Dibujo Graacutefico Dibujo Graacutefico de Objetos Soporte de Control Soporte de Ventanas

Soporte para base de datos ODBC

o Marco de Ventanas o Barras de control o Hojas de propiedades o Cajas de Dialogo o Vistas o Controles

322Arquitectura Documento Vista

Por defecto las aplicaciones creadas con la MFC usan un modelo de aplicacioacuten que separa los datos del programa de las vistas de interaccioacuten con el usuario En eacuteste modelo un objeto documento de MFC lee y escribe datos en un almacenamiento persistente Un objeto vista administra el despliegue de datos suministrando al usuario los datos para ser seleccionados o editados La vista le comunica al documento cualquier cambio en los datos La razoacuten maacutes conveniente para seguir este modelo es cuando se necesita muacuteltiples vistas del mismo documento (como en una hoja de caacutelculo y un graacutefico)

La arquitectura documentovista hace faacutecil el soporte de muacuteltiples vistas y muacuteltiples tipos de documentos asiacute como la divisioacuten de ventanas y otras caracteriacutesticas de interfaz de usuario Pero el corazoacuten de la arquitectura son cuatro clases (Mostradas en el aacuterbol de clases de la Figura 36)

ltCDocumerrtgt (o ltCOleDocuinentgt) - Se instancia un objeto de este tipo para almacenar y controlar los datos del programa ltCViewgt (o una de sus clases derivadas ltCScrotlViewgt ltCFormViewgt ltCEditView ltCRecordViewgt ltCDaoRecordView ltCtreeViewgt ltCListViewgt b ltCrichEditViewgt) - Un objeto es usado para desplegar los datos y administrar la interaccioacuten del usuario con los datos ltCFrameWndgt (o una de sus variantes) - Establece el marco sobre el que trabajaraacuten una o mas vistas de un documento ltCDocTemolategt (o ltCSingIeDocTemplategt o ltCMultiDocTemplategt) - Coordina la existencia de uno o maacutes documentos de un tipo dado y administra la correcta creacioacuten de los documentos vistas y objetos ventanas para cada tipo

i

28

Desarrollo de la herramienta

______________ 2 Wiew

I - - __ - ------a ________________

323Integrando Ambientes en Visual C t t

Las aplicaciones de Interfaz de Documento Uacutenico (SDI) soporta muacuteltiples tipos de documentos pero este soporte es para un solo objeto documento Debido a esta restriccioacuten y aunado a la necesidad de tener varios objetos documentos a la vez se determina la utilizacioacuten del modelo Interfaz de Muacuteltiples Documentos (MDI) indicado en la Figura 37

324Interfaz de Muacuteltiples Documentos (MDI)

Una aplicacioacuten de Interfaz de Muacuteltiples Documento (MDI) permite la creacioacuten de plantillas para el manejo de los documentos eacutesta plantilla tiene la forma

rn-pDocTemplate = new CMultiDocTernplate ( I DR-SCUMLTY PE RUNTIME-CLASS (CSCUMLDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CTheView))

AddDocTernplate ( rn-pDocTemplate )

Cada plantilla describe una relacion del tipo de documento con la vista asociada La definicioacuten de la plantilla para el ambiente que controla los diagramas de secuencias es la siguiente

29

Desarrollo de la herramienta c

m-pTernplateSeqDlag = new CMultiDocTernplate ( IDR-DS-SJCTYPE RUNTIME-CLASS (CSeqDiagDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CSeqDiagView) )

AddDocTernplate( rn-pTernplateSeqDiag )

Esta plantilla hace uso de la clase CCliildFrame que por defecto el ambiente Visual C++ construye y esto es debido a que no se requieren caracteriacutesticas extras en las ventanas de las que proporciona dicha clasc En un caso en el que se requiriera un comportamiento diferente de la vista tendriacutea que crearse una nueva clase con las caracteriacutesticas deseadas

Vista Documento

Vista

I- Vista Documento I [ Tip- F Vista

L Figura 37 Modelo Interfaz de Muacuteltiples Documentos (MDI)

Para integrar otro Ambiente que utilice otro tipo de documento es necesario definir otra plantilla de la misma forma mencionada Debe tomarse en cuenta los siguientes puntos

Es necesario definir el nombre (mqTemplateNOMBRE) El IDR del tipo que se requiere que sea el documento En la primera liacutenea RUNTIME CLASS debe indicar la clase ltCDocumentgt que desea La segunda liacutenea RUNTIME-CLASS soacutelo la cambia a otra clase si requiere de otro manipulador de ventanas de lo contrario deje que ltCChildFramegt se haga cargo

-

30

Desarrollo de la herramienta

En la uacuteltima liacutenea referente a RUNTIME-CLASS se debe indicar la clase ltCViewgt que desea usar Para finalizar se usa la instruccioacuten AddDocTernplate para finalizar la definicioacuten del template (mgTemplateNOMBRE)

325 Recursos Diaacutelogos Mertuacutes y Barras de Herrattriertias

Son varios los recursos con los que se puede contar al crear un proyecto en Microsoft Visual C++ Los diaacutelogos son un recurso disponible que son utilizados para visualizar ingresar yo modificar informacioacuten que se requiera En el Ambiente Visual que se desarrolla son varios los diaacutelogos que se utilizaraacuten y eacutestos se describen a continuacioacuten

El Diaacutelogo ldquoCaracteriacutesticas del Obietordquo (Figura 38) identifica el nombre del Objeto y la descripcioacuten del mismo Este diaacutelogo se muestra cuando se presiona doble clic sobre un objeto del diagrama

I Nombre

Desciipcion

Figura 38 Dialogo Caracteriacutesticas del Objeto

El Diaacutelogo ldquoMensaierdquo (Figura 39) muestra el nombre del mensaje que puede ser modificado ademaacutes se visualizan el Identificador del Mensaje el tipo de Mensaje asiacute tambieacuten el origen y destino del mensaje

31

Desarrollo de la herramienta

Nornbie delMensaje Edit

IDentificador del Mensaje Edil Tipo de Mensaje (Edil

Edit Objeto Origen

Objeto Destino IEdit

i25El A Figura 39 Dialogo Mensaje

El menuacute es otro de los recursos del que se puede disponer para organizar el ambiente que se estaacute creando Para eacuteste caso en particular no se hizo modificaciones al menuacute estaacutendar (Figura 310) que Visual C++ presenta Los cambios significativos son el manejo del tipo de documento para los Diagramas de Secuencias

Archivo Editar Yer VenLana AyGda

Figura 310 Menuacute de los Diagramas de Secuencias (estaacutendar)

Otro importante recurso del que uno se puede valer en Visual C++ es la barra de herramienta personalizada la cuaacutel es construida en el Editor de Recursos Se ha construido una barra (Figura 311) con los elementos graacuteficos de los Diagramas de Secuencia de UML

Figura 311 Barra de Herramientas de los Diagramas de Secuencias

Es recomendable que al utilizar barras de herramienta personalizada se defina en el tamantildeo estaacutendar ya que puede experimentar problemas al momento de ejecutar la aplicacioacuten

Ademaacutes puede usar la propiedad TBBS-CHECKGROUP en una barra de herramientas para establecer que los botones puedan quedar presionados hasta que un botoacuten diferente sea presionado No olvide que la numeracioacuten inicia con cero ( O )

vuriableToolBurSetButtonStyle(OTBBSCHECKGROUP)

32

Desarrollo de la herramienta

Prefijo ID IDC IDD IDP IDR IDS

326 Notacioacuten estaacutendar

Los nombres descriptivos de los recursos se asocian a un valor uacutenico Para una mayor claridad eacutestos nombres mantienen un prefijo que describe el tipo de recurso asociado (vea la Tabla 31) [MIC99]

Tipo de Recurso Comandos de Menuacute Controles y recursos Cuadros de diaacutelogo Cadenas de solicitud para cuadros de mensaje Menuacute principal barras de herramienta tabla aceleradora y el icono Cadenas

IDR IDD IDC ID

200 - 299 3000 - 3999 34000 - 34999

Estos son los rangos de valores establecidos para el proyecto S3C Si se utiliza el coacutedigo fuente y se planea agregar otro proyecto verifisue que no se invadan estos nuacutemeros para evitar problemas

Para facilitar auacuten maacutes los trabajos futuros se ha definido una estructura de carpetas (ver Figura 312) para incluir en cada una las Clases correspondientes a cada tesis en desarrollo

33

Desarrollo de la herramienta

ill ~~ -

-I SCUML classes + U A N T L R + U App + 0 ClassDiagrams + 0 Common + a Java

t $2 SequenceDiagiams

+ WarnierDiagrams

iJ PackageDiagrams

12 StaterChartDiagrams

+

- f Classview I Resourceview 1 FileView ]

~ ~

Figura 312 Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)

327Estructura de datos persistencia y recuperacioacuten

Existe una gran cantidad de tipos de datos estructuras clases y meacutetodos de los que se puede hacer uso para una mejor y maacutes faacutecil obtencioacuten de los resultados A continuacioacuten hago comentarios en tipos de datos y meacutetodos en los que podriacutea tener problemas

CTypedPtrList

AI usar este tipo de dato o alguno relacionado que le permita utilizar el meacutetodo ltCTvrgtedPtrListGetNextgt tenga especial precaucioacuten al usarlo ya que al devolver el valor requerido la variable POSITION usada no se queda apuntando a ese valor en particular salta al inmediato siguiente de la lista

Si se realiza una creacioacuten dinaacutemica con punteros para los elementos de una CTypedPtrList Despueacutes de haberlo agregado a la lista evite el delete para borrar esta Usted deseando liberar la memoria no lo haga ya que eliminara directamente el elemento de la lista

POSITION

Es un valor usado para denotar una posicioacuten de un elemento en una coleccioacuten Pero CUIDADO no se refiere a un iacutendice es una referencia (no consecutiva) de punteros muy diferente a un iacutendice

CString

Auacuten cuando el operador de comparacioacuten == (igual a) es permitido para ser utilizado en las cadenas evite su uso ya que en ocasiones aunque cuando la e

34

Desarrollo de la herramienta

compilacioacuten no indique error alguno en la ejecucioacuten no realizaraacute lo que se necesita Recomiendo que utilice CStringCompare ()

Para eliminar el contenido de un CString utilice CStringEmpty() ya que asignar a la cadena un ldquonrdquo podriacutea causarle problemas

Serializacioacuten

Una forma en que se puede guardar informacioacuten y recuperarla de manera eficaz es mediante la serializacioacuten de objetos La serializacioacuten es un proceso que permite escribir un objeto en un archivo y tambieacuten leerlo

Para que la serializacioacuten se lleve a cabo son necesarios tres objetos un objeto de tipo ltCFilegt que represente el archivo un objeto de tipo ltCArchivegt que ofrece el entorno para la serializacioacuten y la clase del objeto a ser serializado debe ser heredada de ltCObjectgt y sobrescribir el meacutetodo ltSerializegt para que se encuentre de tal forma en que pueda ser serializado (vea la Figura 313)

Objeto a ser serializado 1

1 CArchive

[f --=I- ---7 Archivoexi

u Figura 313 Serializacioacuten

328Patrones de disentildeo utilizados

Se ha planteado la definicioacuten de una arquitectura de clases utilizando patrones de disentildeo debido a que algunos de ellos hacen maacutes faacutecil la extensioacuten de la funcionalidad y mantenimiento

35

Desarrollo de la herramienta

El patroacuten Composite es utilizado para crear de manera uniforme el diagrama sobre el que se trabaja (ver Figura 34) manteniendo una jerarquiacutea de clases uniforme las clases maacutes bajas en la jerarquiacutea definen primitivas de objetos graacuteficos

Se aplica el patroacuten de disentildeo Iterator para hacer recorridos en listas de objetos para realizar diversas operaciones Otro patroacuten de disentildeo del que se hace uso es el Visilor (ver Figura 35)

Para otras actividades que se realizan podriacutea pensarse en que se deberiacutean aplicar otros patrones pero se han evitado algunos (como el patroacuten de disentildeo Builder) para evitar incrementar la complejidad en la arquitectura ya que ai mantener el modelo de la MFC de documentovista la funcionalidad del patroacuten de disentildeo Builder es faacutecilmente reemplazado si se hiciera Uso de eacuteste se aumentariacutea la complejidad excesivamente (nos llevariacutea a perdemos en ocasiones en el paso de mensajes entre clases) dantildeando la facilidad de la arquitectura

33 Diagrama de secuencias

Un Diagrama de Secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten escenario Oacute comportamiento se usan para definir el curso loacutegico de accioacuten de un posible camino a seguir en la resolucioacuten de un problema Seguacuten John Daniels [DANO2] ldquoel principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildean las interacciones de los objetosrdquo

Los Diagramas de Secuencias se utilizan en el modelado de la implementacioacuten de sistemas de software ademaacutes son aplicables en el modelado de requisitos para establecer las comunicaciones existentes entre actores yo clases del sistema Con eacutestos diagramas se logran hacer descripciones de los escenarios y los comportamientos del sistema Con los Diagramas de Secuencias es posible definir protocolos de comunicacioacuten con paso de mensajes ya que dan esa flexibilidad que se requiere Ademaacutes los Diagramas de Secuencias contienen informacioacuten suficiente para que puedan ser transformados a los diagramas de colaboracioacuten [RUM Ol][BOO Oil

331Ciclo de vida del software

Considerando cualquier modelo de ciclo de vida del software (en la figura 314 se muestra el Modelo de cascada) el aacutembito directo de eacuteste Ambiente Visual es en el disentildeo aunque tiene sus vertientes en la codificacioacuten y mantenimiento

36

Desarrollo de la herramienta

Diseno

Codificacibn

I I I I Mantenimiento I

igura 314 Modelo de cascada del ciclo de vida del software

34 Elementos atoacutemicos de la Gramaacutetica

Definicioacuten de los elementos atoacutemicos del lenguaje y su contenido

1 Actor- Representa roles de entidad externos al sistema con el que interactuacutea directamente Los actores pueden ser humanos dispositivos u otros sistemas

2 ClaseObjeto- Determina una Clase u Objeto participante en la interaccioacuten

3 Mensaje-Es una comunicacioacuten entre objetos que contiene informacioacuten Eacuteste se representa con la finalidad a que una accioacuten sea llevada a cabo

4 Mensaje con tiempo- Tiene la misma finalidad que el mensaje la diferencia es que con eacutel se representa un atributo de tiempo

5 Mensaje asiacutencrono Es un mensaje que ocurre en el tiempo de manera independiente a otros mensajes

6 Mensaje de destruccioacuten de objeto- Es un mensaje cuya finalidad es indicar la destruccioacuten del objeto destino

7 Mensaje de creacioacuten de objeto- Es un mensaje que indica la creacioacuten de un objeto

8 Llamada al mismo objeto (Recursividad)- Es usado para modelar llamadas recursivas en el que una operacioacuten es invocada por el mismo objeto

37

Desarrollo de la herramienta

9 Destruccioacuten del objeto (AutodestrucciOacuten)- Puede o no modelarse es representada con una X al final de la liacutenea de vida del objeto

Elementos aulomaacuteticos

1 Liacutenea de Vida- Representa la vida del objeto durante la interaccioacuten

2 Activacioacuten- Muestra el periacuteodo de tiempo en el cual el objeto alguna operacioacuten

341RepresentaciOacuten visual

Representacioacuten visual de los elementos atoacutemicos del lenguaje

Actor

_- A

Mensaje

Mensaje de Creacioacuten de

Objeto

ClaseObjeto

I

Mensaje de retorno

Mensaje de Destruccioacuten de

Objeto

abla 32 Element(

Activacioacuten

Mensaje con tiempo

Autodestruccioacuten

x

atoacutemicos del lengi

taacute realizz

Texto ===I (letra)+ (letra I

numero) letra= AZ I az numero = 09

I

Recursividad ~

I

i j e

io

38

u

Comentario

iexcl

Conector de Comentario

35 Gramaacutetica desarrollada

La gramaacutetica que se propone es una gramaacutetica visual del tipo relacional Una gramaacutetica relacional pertenece a las gramaacuteticas libres de contexto es una 6-iupla G (N C S R Attr P) donde

N es un conjunto finito de siacutembolos no terminales C es un conjunto de siacutembolos terminales S es un siacutembolo distinguido en N llamado siacutembolo inicial R es un conjunto finito de siacutembolos de relacioacuten Attr es un conjunto finito de siacutembolos de atributos P es un conjunto de producciones

Entonces definiendo nuestra gramaacutetica G (N C S R Attr P)

N = Diagrama GrupoClaseObjeto

S = Diagrama

R = mensaje mensajeTiempo mensajeRetomo mensajeAsincrono mensajecrea mensajeDestruye autodestruccioacuten recursividad

R

Attr = entrada salida entradacrea

39

Desarrollo de la herramienta

Definiendo la posicioacuten de los atributos en los elementos visuales

entradacrea ObetaClase

entrada

salida

P =

Diagrama I GrupoClaseObjeto (mensaje (mensajeRetorno

(salida 1) (entrada 2) ) (salida 2) (entrada 1) )

- Diagrama 0 GrupoClaseObjeto

(mensaje (mensaje (mensajeRetomo (mensajeRetomo (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entradacrea 2) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 1) ) (salida 1) (entrada 1) )

entrada

salida

40

Desarrollo de la herramienta

s

-

GrupoClaseObjeto - 1 1 I 2 (mensaje (mensaje (mensajeRetorno (mensajeRetorno (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entradacrea 2) ) (salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 1) ) (salida I ) (entrada I ) )

1 En las gramaacuteticas relacionales una produccioacuten estaacute acompantildeada de las posibles

relaciones que puedan generarse En la primera produccioacuten Diagrama produce a un Actor seguida de un GrupoClaseObjeto el Actor inicia la interaccioacuten con un mensaje y recibe el mensaje de retorno al finalizar la interaccioacuten La segunda y tercera produccioacuten son similares debido a que un GrupoClaseObjeto contiene dos ClaseObjeto que se relacionan de la misma forma

Existe un elemento de la gramaacutetica llamado Attr (Atributo) el cual define la parte de los elementos visuales donde se establecen las relaciones Se han determinado dos atributos (entrada y salida) que para nuestro propoacutesito estaraacuten establecidos en la liacutenea de vida de cada elemento visual (Actor y ClaseObjeto)

Los Comentarios y la Activacioacuten no se consideran en la gramaacutetica Los comentarios son libres de incluirse y relacionarse con cualquier elemento y relacioacuten mencionada anteriormente y la activacioacuten existe siempre que se presente un mensaje (o podriacutea omitirse) Estas consideraciones se realizaron para hacer auacuten maacutes faacutecil la gramaacutetica ya que si se trata de realizar un sistema las restricciones de estos elementos pueden mantenerse en el lenguaje de programacioacuten en el que se desarrolle el sistema

36

Precondiciones

El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias

1 El diagrama de Clases debe existir y estar completo 2 Debe existir un archivo con un diagrama de Warnier por cada diagrama de Clases y

con el mismo nombre de archivo (excepto la extensioacuten del archivo) 3 En el uacutenico diagrama de Warnier de cada Clase se deben modelar todos los meacutetodos

de la Clase 4 No realizar declaraciones de meacutetodos

41

Desarrollo de la herramienta

5 Debe existir un meacutetodo lsquomain()rsquo en el diagrama de Clases

Restricciones

Los meacutetodos deben mantener nombres distintos en las diferentes Clases

Metodologiacutea para la obtencioacuten automaacutetica de los Diagramas de Secuencias

1 Seleccionar el diagrama de Clases

2 Se construye una lista con los nombres de las Clases y los Meacutetodos

3 Se verifica si exista el meacutetodo lsquomain()rsquo en alguna Clase Se busca la existencia de una uacutenica Clase

a La Clase que contenga lsquomain()rsquo se va al inicio de la lista de Clases

b Si no existe lsquomain()rsquo SE TERMINA EL PROCESO

4 Se verifica la existencia de los archivos que contienen el Disentildeo Detallado de los meacutetodos en Wamier para cada una de las Clases si alguno falta SE TERMINA EL PROCESO

5 Se procesa cada uno de los modelos del Disentildeo Detallado de los Meacutetodos generando una lista de secuencias de llamadas por cada uno de los meacutetodos

6 Se verifica que cada llamada corresponda a alguacuten meacutetodo existente (del diagrama de Clases) De no existir ese meacutetodo la llamada entra a una estructura que

7 Se crea una lista de secuencia

a Se inicia con lsquomain()rsquo b Se recorre cada una de las llamadas de los meacutetodos c Se considera invaacutelido el caso de que un meacutetodo intente una llamada

recursiva al meacutetodo lsquomain()rsquo

8 Se muestra un diaacutelogo de resultados en el que se indican las llamadas que no se encnotraron definidas y que pueden ser Llamada a libreriacutea oacute Llamada Erroacutenea

42

Capiacutetulo 4

Prue6as y su6taaacuteos

En eacuteste capiacutetulo se da a conocer el detalle de las pruebas y de los resultados obtenidos Se describen los casos de prueba con los que se realizoacute la evaluacioacuten del sistema asiacute tambieacuten se presentan comentarios acerca de los resultados obtenidos

Pruebas y Resultados

41 Recursos teacutecnicos utilizados

Para llevar a cabo las pruebas al sistema S3C se utilizaron los siguientes equipos de Coacutemputo

Computadora de escritorio

256MB RAM Disco Duro 80G Monitor 17rdquo SAMSUNG

AMD Athlon XP 1600+ I4Ghz

Computadora de escritorio Intel Pentium 4 - 128MB RAM Disco Duro 40G Monitor 15rdquo i -

42 Descripcioacuten del plan de pruebas

Las pruebas establecen el Uacuteltimo paso desde donde es posible evaluar la calidad y descubrir los errores Las pruebas y la validacioacuten del software se utilizan para comprobar que el sistema cumple con las expectativas del usuario

En esta seccioacuten se describen los casos de prueba que se realizaron al prototipo de S3C en conjunto a la suite cenidet-UML Para cada uno de los casos se presenta el objetivo el procedimiento que se siguioacute para la prueba y se muestran los resultados obtenidos - _

Las pruebas a realizar son los siguientes

Caso 1 Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Caso 2 Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Wamier

Caso3 Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Wamier

Caso4 Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo 5

44

Pruebas y Resultados

43 Resultados

431 Caso 1

5 Y

IZ =

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoSirdquo 4 Seleccionar el archivo ldquoVENTASrdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 41 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

s3c iuevo Proyecto SCUM1

Diagrama de clases

lvendedor I L

3

salida

venta prod

4 venia-oferta vcntaprod =

salida 6

Figura 41 Resultado del caso de prueba 1

45

Pruebas y Resultados

432 Caso 2

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Warnier (almacenwar cajawar vendedorwar) que ya cxisten (del caso de prueba I )

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoNordquo 4 Agregar las siguientes Clases con los respectivos meacutetodos y atributos

a Claseldquovendedorrdquo Meacutetodos ldquoventa mainrdquo b Claseldquoalmacenrdquo Meacutetodos ldquoentrada salidardquo c Claseldquocajardquo Meacutetodos ldquoventagrodrdquo

5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 42 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

Diagrama de daseo lisgrama dcsccucncis

MOIDOC Anivo

venta prod

salida

1 Ycrdquo1a 2

I 4 vcrdquolD~o1cn venta prod gt

salida 6 i Figura 42 Resultado del caso de prueba 2

46

Pruebas y Resultados

r

433 Caso 3

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Warnier

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 43 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

5

Error al tratar de abrir el archivo A bZwar

Aceptar i

Faltan Archivos de Disentildeos Detallados de Meacutetodos 1 1 A No se puede crear el diagrama de secuencias

Figura 43 Resultado del caso de prueba 3

47

Pruebas y Resultados

434 Caso 4

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 44 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

lsquo I

~ _ i i _ l _ Repaado ~~ ~ ~ 6~ ampA Figura 44 Resultado del caso de prueba 4

48

Pruebas y Resultados

PRUEBA DESCNPCION CASO 1 Mostrar la funcionalidad del

Sistema S3C a partir de un

44 Anaacutelisis de Resultados

RESULTADOS Se comproboacute la correcta funcionalidad del Sistema S3C a partir de un diagrama

CASO 3

CASO4

I diagrama de Clases cxistcnte I de Clases existente CASO 2 I Mostrar la funcionalidad del I Sc comproboacute la corrccta funcionalidad

Sistema S3C a partir de un del Sistema S3C a partir de un diagrama diagrama de Clases que se de Clases que se construye al momento construye al momento Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el Secuencias si falta alguno de los diagrama de Secuencia si falta alguno diagramas de Warnier Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el secuencias si hace falta el meacutetodo diagrama de Secuencias al faltar el ldquomain ()rdquo meacutetodo ldquomain()rdquo

de los diagramas de Warnier

Los resultados obtenidos de cada uno de los casos establecidos demuestran que se validoacute la funcionalidad del prototipo con los requisitos definidos en el alcance de este proyecto

a lt

49

Conclusiones y Tru6ajos Futuros

Aquiacute se dan a conocer las conclusiones y se describen los posibles trabajos futuros para la continuacioacuten de eacuteste proyecto

F

51 Conclusiones

Conclusiones y trabajos futuros

Se ha creado un Ambiente Visual que permite obtener de forma automaacutetica los Diagramas de Secuencias en base a los diagramas de Clases y al disentildeo detallado de los meacutetodos descritos con diagramas de Warnier cumpliendo con los objetivos planteados para este trabajo

La tesis aporta principalmente La generacioacuten automaacutetica de los diagramas de secuencias y la eliminacioacuten de inconsistencias al mantener una validacioacuten directa de los diagramas de clases y los diagramas de Warnier que son utilizados

Esta validacioacuten es lograda a traveacutes del uso de la gramaacutetica visual relaciona1 que se ha definido (veacutease el capiacutetulo 3) Esta gramaacutetica visual establece reglas para la correcta construccioacuten de los diagramas de secuencias

P De esta manera se establece que la hipoacutetesis ldquoEs posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodosrdquo Es verdadera

52 Trabajos Futuros

Un Diagrama de Secuencias puede convertirse en un Diagrama de Colaboracioacuten por lo tanto un trabajo futuro es la construccioacuten automaacutetica de un Diagrama de Colaboracioacuten a partir de uno de Secuencias existente

Es posible calcular la meacutetrica de acoplamiento al tener un Diagrama de Secuencias construido

La Ingenieriacutea directa de un Diagrama de Secuencias estableciendo la validacioacuten en la construccioacuten de todos los elementos visuales que UML define

La propagacioacuten de las modificaciones de un Diagrama de Secuencias a los Diagramas de Clases y los Diagramas de Warnier

La modificacioacuten del coacutedigo fuente mediante los cambios establecidos en un Diagrama de Secuencias

51

[ALC03]

[BLA98]

[B0099]

[BOOOi]

[BR097]

[CHA90]

[DAN02]

[GLA02]

[HAC98]

[HER03]

4

Alcate1 Computer Associates International inc Electronic Data Systems Corporation Hewlett-Packard Company IBM Corporation I-Logix IntelliCorp Kabira Technologies Kennedy Carter Microsoft Corporation Object Management Group Oracle Corporation Project Technology Ptech Inc Rational Software Corporation Reich Technologies Softeam Taskon A S Telelogic Unisys Corporation ldquoOMG Unified Modeling Language Specificationrdquo Version 15 Unified Modeling Language 2003

Blaha Michael Rumbaugh James Premerlani William Eddy Frederick Lorensen William ldquoObject-oriented modeling and designrdquo Prentice Hall 484 Paacuteginas ISBN 0-13-629841-9 QA-769-03S-B53-19981998

Booch Grady Rumbaugh James Jacobson Ivar ldquoEl lenguaje unificado de modeladordquo Addison Wesley 432 Paacuteginas ISBN 84-7829-028-1 1999

Booch Grady Rumbaugh James Jacobson Ivar ldquoThe Unified Modeling Language User Guiderdquo Addison Wesley 2001

Brown David ldquoAn introduction to object-oriented analysis objects in plain Englishrdquo John Whiley amp Sons Inc 700 Paginas ISBN 0-471-1 1028-0 QA-769-035-B76-1997 1997

Chang Shi-Kuo ldquoVisual Languages and visual programmingrdquo Plenum Press 340 Paacuteginas ISBN 0-306-43428-8 QA-7665-V57-1990 1990

Daniels John ldquoModeling with a sense of purposerdquo Design - IEEE Software JanuaryEebmary 2002

Glasgow Universidad Reino Unido ldquoA UML Editor in Javardquo (lthttplstudentsdcsglaacuWstudentspainjfproject-reportproject-re port-htmV4thYearReporthtrnlgt 2002)

T Hackos JoAnn C Redish Janice ldquoUser and Task Analysis for Interface Designrdquo Wiley Computer Publishing 488 Paacuteginas ISBN QA-769-U83- H33-1998 1998

Hemaacutendez Velaacutezquez M ldquoIngenieriacutea inversa de coacutedigo fuente en C++ para la obtencioacuten de su disentildeordquo Tesis AT-379 (03-0334) 2003

Conceptos generales

[HIX93]

[JAC93]

[JAC99]

[JOY98]

[LAR97]

[MAR]

[MIC99]

[MIC02]

[MOU98]

Hix Deborah Hartson H Rex ldquoDeveloping user interfacesrdquo 381 Paacuteginas ISBN 0-471-57813-4 QA-769-U83-H59-1993 1993

Jacobson Ivar Christerson Magnus Jonsson Patrik Overgaard Gunnar ldquoObject oriented software engineeringrdquo Addison Wesley ISBN 0-20 1 - 54435-0 QA-7676-D47-J63-1993 1993

Jacobson Ivar Booch Grady Rumbaugh James ldquoEl proceso unificado de desarrollo de softwarerdquo Addison Wesley 438 Paacuteginas ISBN 84-7829-036- 2 1999

Joyanes Aguilar Luis ldquoProgramacioacuten orientada a objetosrdquo McGruw Hill ISBN 84-481-0590-7 1998

Larman Craig ldquoAplying UML and Patternsrdquo Prentice Hull 507 Paacuteginas ISBN 0-13-748880-7 QA-769-035-L37-1997 1997

Marriot Kim Meyer Bemd ldquoVisual Language Theoryrdquo Springer 381 Paacuteginas P-935-V567-1998 1998

Microsoft ldquoMicrosoft Visual C++ 6 manual del programadorrdquo McGraw Hill ISBN 84-481-2127-9 QA-7673-Cl53-23718-1999 1999

Microsoft ldquoVisiordquo (lthttpwwwmicrosoftcomofficevisiogt 2002)

B Mourao Luis X ldquoUniversal Modeling Language Part 11 UML Notation - Case Sequence and Collaboration Diagramsrdquo Lan Times Magazine (~httpwwwlantimescomltpartsdiscussdiscuss6Ohtm~) 1998

No Magic ldquoMagicDrawrdquo (lthttpwwwmagicdrawcomgt 2002)

Object Insight ldquoJvisionrdquo (lthttpwwwobject-insightcomgt 2002)

Rational Software Microsoft I Hewlett-Packard Oracle Sterling Software MCI Systemhouse Unisys ICON Computing IntelliCorp i-Logix IBM ObjectTime Platinum Technology Ptech Taskon Reich Technologies Sofieam ldquoUML Summaryrdquo Version 11 Unified Modeling Language 1997

Rational ldquoRational Roserdquo (lthttpwwwrationalcomproductosrosegt 2002)

Rikki Kirzner ldquoAnalysis Modeling and Design Tools Market Forecast and Analysis 2001-2005rdquo Bulletin Published Under Services Application Design and Construction Tools Application Development and Deployment Strategies Documento Nuacutemero 24809 Junio 2001

53

Conceptos generales

[RIM92] Rimrner Steve ldquoGraphical user interface programmingrdquo 423 Paacuteginas

1992

Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language reference manualrdquo Addison Wesley 550 Paacuteginas ISBN 0-201-

ISBN 0-8306-2475-9 ISBN 0-8306-2472-4 (pbk) QA-769-083-R55G

[RUM99]

30998-X QA-7676-D47-R85-1999 1999

[RUM299] Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language user guiderdquo Addisoiz Wesley 482 Paacuteginas ISBN 0-201 -57 168-4 QA-7676-D47-B66-1999 1999

[SMA02] SmartDraw ldquoSmartDrawrdquo (lthttpwwwsmartdrawcomgt 2002)

[SHU88] 9 - Shu Nun C ldquoVisual Programmingrdquo Van Nostrand Reinhold ISBN 0-422- 28014-9 ISBN 0-422-01 164-4 QA-7665-S55 1988

[THI90] Thimbleby Harold ldquoUser Interface Designrdquo Acm press 470 Paacuteginas ISBN 0-201 -41 61 8-2 QA-769U83-T772~- 1990 1990

[WENO2] Wences Diaz MF ldquoModelo de Ingenieriacutea Inversa para la obtencioacuten de disentildeo detallado basado en LEVISSrdquo Tesis (02-0014) 2002

54

Anexo A

Conampuracioacuten de Microsoft Vkua[C++ 6 O

Este anexo indica las configuraciones que se utilizaron para la compilacioacuten de SCUML y s3c

Configuracioacuten de Microsoft Visual c++ 60

Debido a la integracioacuten de los proyectos de InverSOODA e InverDDVi con S3C se cumplioacute con los requisitos previos de ambos proyectos

El compilador usado en el proyecto fue el Microsoft Visual C++ 60

Para el cumplimiento con la funcionalidad de InverSOODA se instaloacute el ANTLR la versioacuten 271 Se descargoacute del sitio l i l l ~ ~ ~ ~ ~ ~ t l ~ l ~ - ~ t - ~ la versioacuten mencionada en un archivo comprimido (en formato zip) Se colocoacute el paquete descomprimido en el directorio ldquoDIANTLR-271 I rdquo

Recomiendo ampliamente que el directorio principal de ANTLR se copie en el directorio raiacutez de cualquier unidad de disco debido a que experimenteacute problemas de compilacioacuten cuando ANTLR no se encontraba en el directorio raiacutez

Io015

Source Browser AlttF12 I u c Ersquo V I

Visual Component Mgnager

- - ~ ~ ~ ~~

P2 Registrar control

A Contenedor de prueba de controles ActiveX

A Usor de objetos OLE y COM

Buacutesqueda de errores

A Y++ MFC Iracer

Customize options

~ - q- ~ Macro

Eecord Quick Macro Cbl+ShiR+R Pay Quick Macro Ctrl+ShiR+P

En el menuacute Tools (Herramientas) seleccione el sub-menuacute Options ltopcionesgt

56

Configuracioacuten de Microsoft Visual C++ 60

En la siguiente ventana de diaacutelogo debe agregar la direccioacuten en donde se encuentra el ANTLR

Agregar la ruta del directorio de ANTLR hasta el subdirectorio

libcpp

Editor I Tabs I Debug I Compatibility 1 Build Dneclolies I a I Chow directories for - Platfolm -

- Directories I x ) 4 jWin32 -] llnclude files

m cancd I

57

Configuracioacuten de Microsoft Visual C t+ 60

Se ha creado una libreriacutea (anrlrliblib) de ANTLR la cual ya estaacute situada en el directorio del proyecto SCUML (ISCUML) y no debe ser movida o eliminada

I

Geneial 1 Debug I CC++ Link I Category

Output file name bebugSCUMLexe

Objectljibrary modules 4 anllrliblib

li Generate debug lnfo r Ignore all defaull lbaries D ~ i n k j n ~ ~ ~ t a n ~ r ~ e n e r ~ ~ ~ mapfile

r Enable psafilrng

Proiec1 Ootionn

pq Cancel 1 Libreriacutea de ANTLR que debe existir 1 I para que se compile correctamente

58

Anexo B

~ u iacute aacute raacutepida de uso deC Sistema S3C

5 Este anexo indica de forma raacutepida la manera de utilizar S3C para crear un diagrama de secuencias de forma automaacutetica

Guiacutea Raacutepida de uso del Sistema S3C i

Para indicar la creacioacuten de un diagrama de secuencias en forma automaacutetica se debe ir a la barra del costado izquierdo y presionar ldquoNuevo Proyecto SCUMLrdquo

I s3c I ~ Nuevo Proyecto SCUML ~ _ _ - I Diagrama de clases ~ Diagrama de secuencias 1 MDI DOC Activo

-

Apareceraacute un documento llamado ldquoSCUMLV en donde el simbolo corresponde a un numero consecutivo iniciando desde 1 (uno)

$ e Despueacutes se presiona ldquoDiagrama de clasesrdquo Habraacute que para indicarle al sistema si se requiere abrir un diagrama de clases existente o realizar uno nuevo

i

iquestAbrir un documento existente

No Cardquo~ear

AI presionar ldquoSirdquo se debe indicar cual es el archivo del diagrama de Clases en el cuadro de diaacutelogo siguiente

~~ - 11dMis documentos rsquo 2 M i P C i lsquo h s sitios de red

I

AI presionar ldquoNordquo en ldquoAbrir un documento existenterdquo se nos mostraraacute un documento vacio para crear un diagrama de clases

60

Guiacutea Raacutepida de uso del Sistema S3C

Para ambas opciones se requiere que los diagramas de Wamier ya se encuentren construidos Y para continuar el proccso se selecciona el documento ldquoSCUMLVrsquo creado al inicio y despueacutes presionar el botoacuten nombrado ldquoDiagrama de secuenciasrdquo localizado en la barra de hcrraiiiicntas del costado izquierdo

Ha iniciado el proceso de construccioacuten del diagrama de secuencias Si no existen errores al terminar el proceso se le mostraraacute un cuadro de diaacutelogo llamado ldquoResultadosrdquo en donde le mostraraacute las llamadas de las que no localizoacute su definicioacuten

- - -

Cancel 1 D e las siguientes llamadas es posible que esten mal escritas o peitenezcan a la libreiia del Lenguaie Verifique ya que no se encontraron sus definiciones

A continuacioacuten se mencionan los posibles errores que finalizan el proceso de la creacioacuten automaacutetica de los diagramas de secuencias en S3C

Cuando no exista un meacutetodo lsquomainrsquo definido en el diagrama de clases

No se encontro el meacutetodo lsquomain()rsquo que inicie la secuencia I A No se puede crear el diagrama de secuencias

p==amp=q

61

Guia Raacutepida de uso del Sistema S3C

Cuando se definan niultiples metodos lsquoinainrsquo en el diagrama de clases

Multiples meacutetodos lsquomainOlsquo Imposible decidir el inicio de secuencia

Aceptar i

Si un meacutetodo definido en Wamier realiza una llamada a lsquomainrsquo se cancelara el proceso

Llamada NO VALIDA al meacutetodo principal main

(iAcp-j(

4 i

CI Y rdquoldquoldquoI i 11 1-T

IZNTRO Gt INFORMACION

62

  • Tabla de Contenido
  • Listado de Figuras
  • Listado de Tablas
  • Notacioacuten
  • Introduccioacuten
  • Capitulo 1 Conceptos Generales
    • 11 Antecedentes
    • 12 Trabajos relacionados
      • 121 Tabla comparativa
        • 13 Definicioacuten del problema
        • 14 Objetivo de la Tesis
          • Objetivos especiacuteficos de la tesis
            • 15 Hipoacutetesis de investigacioacuten
            • 16 Alcances y limitaciones del trabajo de tesis
              • Capitulo 2 Marco Teoacuterico
                • 21 Modelado de sistemas de software
                • 22 Interfaz de usuario (Mecanismos de interaccioacuten)
                • 23 Lenguajes Visuales
                • 24 Programacioacuten orientada a objetos
                • 25 Lenguaje de Modelado Unificado (UML)
                  • Desarrollo de la herramienta
                    • 31 Disentildeo de la Arquitectura
                      • 311 Requisitos (Diagrama de Casos de uso)
                        • 312Modelo Conceptual
                        • 313Diagramas de clases
                        • 32 Elementos de la arquitectura
                          • 321 Microsoft Foundation Class (MFC)
                            • 322Arquitectura Documento Vista
                            • 323Integrando Ambientes en Visual c++
                              • 324 Interfaz de Muacuteltiples Documentos (MDI)
                                • 325Recursos Diaacutelogos Menus y Barras de Herramientas
                                  • 326 Notacioacuten estaacutendar
                                  • 327 Estructura de datos persistencia y recuperacioacuten
                                    • 328Patrones de disentildeo utilizados
                                      • 33 Diagrama de secuencias
                                        • 331Ciclo de vida del software
                                          • 34 Elementos atoacutemicos de la Gramaacutetica
                                            • 341 Representacioacuten visual
                                              • 35 Gramaacutetica desarrollada
                                              • 36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias
                                                  • Capitulo 4 Pruebas y Resultados
                                                    • 41 Recursos teacutecnicos utilizados
                                                    • 42 Descripcioacuten del plan de pruebas
                                                    • 43 Resultados
                                                      • 431 Caso
                                                      • 432 Caso2
                                                      • 433 Caso
                                                          • Conclusiones y trabajos futuros
                                                            • Trabajos futuros
                                                            • Referencias
                                                            • Anexo A Configuracioacuten de Microsoft Visual C+t
                                                              • Figura 11 - Arquitectura de la suite cenidet-UML
                                                              • Figura 21 -Programacioacuten Visual
                                                              • Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de
                                                              • Figura 32 -Diagrama de Casos de Uso para el S3C
                                                              • Figura 33 -Modelo Conceptual
                                                              • Figura 34 - Diagrama de Clases -Control del Diagrama -
                                                              • Figura 35 - Diagrama de Clases - Patroacuten Visitor -
                                                              • Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento
                                                              • Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)
                                                              • Figura 38 -Dialogo Caracteriacutesticas del Objeto
                                                              • Figura 39 -Dialogo Mensaje
                                                              • Figura 3 IO - Menuacute de los Diagramas de Secuencias (estaacutendar)
                                                              • Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias
                                                              • Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)
                                                              • Figura 313 - Serializacioacuten
                                                              • Figura 314 -Modelo de cascada del ciclo de vida del software
                                                              • Figura 41 - Resultado del caso de prueba
                                                              • Figura 42 -Resultado del caso de prueba
                                                              • Figura 43 -Resultado del caso de prueba
                                                              • Figura 44 -Resultado del caso de prueba
                                                              • Tabla 11 - Tabla comparativa
                                                              • Tabla 31 -Prefijos estaacutendar de identificadores
                                                              • Tabla 32 -Elementos atoacutemicos del lenguaje
                                                              • Tabla 41 - Resumen de los resultados de las pruebas realizadas

Notacioacuten

La siguiente es la notacioacuten de la que se haraacute uso

ltCObjectgt

ltGetDocunteiztgt

MiClase MiMetodo

9 Liacutenea de Coacutedigo

Mensaje

Clase de la MFC ( Microsoft Fundation Class)

Meacutetodo de una clase de la MFC

Clase desarrollada Meacutetodo de una clase desarrollada

Liacutenea o Bloque de coacutedigo

Elemento del Diagrama de Secuencia

vi

I Introduccioacuten

L~ tesis se enfoca hacia el desarrollo de sistemas de software centrados en el modelado mediante diagramas de secuencias definidos por el Lenguaje de Modelado Unificado (UML) La investigacioacuten y el producto de la tesis estaacuten inmersos en la etapa del disentildeo de sistemas de software

El producto (prototipo) de la tesis denominado S3C permite la obtencioacuten de diagramas de secuencias de UML tomando como base la informacioacuten de un diagrama de clases y de varios documentos modelados con diagramas de Wamier (disentildeo detallado de los meacutetodos)

Para la elaboracioacuten de los diagramas de clases se hace uso del ambiente existente InverSOODA [HER03] Y para el modelado de los documentos Wamier se ha tomado el ambiente InverDDVi [WEN02] Ambos ambientes visuales son productos de tesis anteriores y se han integrado en un solo prototipo denominado SCUML (Suite cenidet - UML)

(i

S3C realiza un proceso automaacutetico para la obtencioacuten de los diagramas de secuencias en este proceso solo se requiere indicar el diagrama de clases del que se basaraacute La construccioacuten de los diagramas de secuencias en S3C estaacute soportada con una gramaacutetica visual relacional El propoacutesito de la gramaacutetica es validar la construccioacuten de los diagramas de secuencias de UML

En el aacutembito de los diagramas de secuencias de UML no existen aplicaciones comerciales oacute proyectos educativos que se apoyen en una gramaacutetica visual para soportar la construccioacuten de los diagramas de secuencias y tampoco existen aplicaciones que permitan a partir de los diagramas de clases y del disentildeo detallado de los meacutetodos generar automaacuteticamente los diagramas de secuencias

3

Los temas relacionados a esta tesis son Modelado de Sistemas UML Interfaz de Usuario Programacioacuten Orientada a Objetos y Gramaacuteticas Visuales

El capiacutetulo 1 es de conceptos generales se dan a conocer los antecedentes del proyecto los trabajos relacionados hipoacutetesis alcances y limitaciones

En el capiacutetulo 2 se define el marco teoacuterico de la tesis se describen temas como Modelado de sistemas de software disentildeo de sistemas de software modelado visual lenguajes visuales programacioacuten orientada a objetos y lenguaje de modelado unificado

El capiacutetulo 3 describe el desarrollo del ambiente visual se detalla el modelo conceptual la arquitectura y sus elementos los diagramas de secuencias y la gramaacutetica visual relacional que se desarrolloacute

En el capiacutetulo 4 se muestran los casos de pruebas y los resultados obtenidos Y al final se establecen las conclusiones y se dan propuestas para algunos trabajos futuros 3

1

Capiacutetulo I

Conceptos generalis

En eacuteste capiacutetulo se dan a conocer los antecedentes del proyecto de tesis los trabajos relacionados el problema que resolveraacute la hipoacutetesis a comprobar los alcances y limitaciones

Conceptos generales

11 Antecedentes

Actualmente en el cenidet (Centro Nacional de Investigacioacuten y Desarrollo Tecnoloacutegico) se trabaja en la construccioacuten de un conjunto de ambientes visuales para dar soporte al desarrollo con diagramas que define el estaacutendar UML para elaborar sistemas de software de manera completa raacutepida y eficaz El ambiente de modelado principal se ha denominado suite cenidet-UML y su arquitectura general se muestra a continuacioacuten en la Figura 11

Arquitectura de la suite cenidet-UML

Figura 11 Arquitectura de la suite cenidet-UML

a El producto de software resultante de eacutesta tesis lleva por nombre S3C y como se indica en la figura 11 Las tesis directamente relacionadas son InverSOODA [HER03] e

InverDDVi [WEN02]

InverSOODA (Sistema Orientado a Objetos para Disentildeo y Anaacutelisis incluyendo Ingenieriacutea Inversa) es un Ambiente Visual que permite la elaboracioacuten de diagramas de clases de un sistema de software Los diagramas de clases son una vista estaacutetica y en ella se describe las relaciones que existen entre las entidades llamadas clases Cada una de las clases se divide en tres partes nombre de la clase meacutetodos y atributos Este ambiente permite generar el coacutedigo fuente en lenguaje C++ de un diagrama construido y tambieacuten aplicando la ingenieriacutea inversa es posible obtener un diagrama a partir de un coacutedigo en C++ existente

InverDDVi (Disentildeo Detallado Visual incluyendo Ingenieriacutea Inversa) es un Ambiente Visual cuyo objetivo es apoyar en la elaboracioacuten de diagramas de disentildeo detallado utilizando una notacioacuten basada en Warnier Los diagramas de Warnier sirven para describir una secuencia loacutegica de acciones y mediante su simbologiacutea se logra plasmar definiciones de meacutetodos llamadas a otros meacutetodos ciclos comparaciones lectura de informacioacuten y escritura de informacioacuten Este ambiente permite generar el coacutedigo fuente en C de un diagrama construido y tambieacuten aplicando la ingenieriacutea inversa se puede obtener un diagrama de Warnier a partir de un coacutedigo en C que ya exista

i

3

Conceptos generales

12 Trabajos relacionados

Rational Rose de Rafional

Una de las herramientas mas populares del mercado que utiliza la notacioacuten UML y tiene la capacidad de reingenieriacutea de software para integrar sistemas existentes capacidad de mezclar diferentes lenguajes dentro de un mismo modelo ademaacutes de ingenieriacutea inversa sobre los componentes COM (Component Object Model) ActiveX y Java y con soporte de las arquitecturas MicrosoWCOM y CORBAIDL (The Common Object Request Broker Architecture)

Con Rational Rose se puede trabajar en grupo con capacidades para modelar y visualizar procesos de negocios y requerimientos de sistemas Tiene soporte para generar esquemas objetos-relaciones de bases de datos para realizar anaacutelisis de datos Cuenta con el soporte para analizar sitios Web en ASP (Active Server Pages) y JSP (Java Server Pages) Ademaacutes soporta los lenguajes Java CC++ Visual CC++ [RAT02] 9

SI -

Visio de Microsoft

Visio Enterprise 2002 permite crear diferentes tipos de diagramas como son

1 Diagramas de flujo 2 Planos de oficinas 3 Diagramas de aacuterbol 4 Diagramas de organizacioacuten 5 Liacuteneas de tiempo 6 Mapas geograacuteficos y direccionales 7 Diagramas de sitios Web 8 Diagramas de red 9 Diagramas de UML

Tiene las siguientes caracteriacutesticas diagramacioacuten e importacioacuten de servicios de directorio reingenieria de bases de datos disentildeo y documentacioacuten de bases de datos diagramacioacuten de software ingenieriacutea directa e inversa de coacutedigo replicacioacuten exacta por medio de diagramas de equipos y configuraciones de red diagramacioacuten automatizada y ambiente colaborativo

Visio da un conjunto completo de herramientas de diagramacioacuten de redes para planear y documentar claramente las redes existentes Ademaacutes para crear esquemas eleacutectricos mecaacutenicos y de procesos pueden crearse diagramas complejos con facilidad y poco entrenamiento

A las aplicaciones existentes se les puede realizar la ingenieriacutea inversa para obtener el disentildeo y tambieacuten crear nuevos disentildeos Proporciona herramientas para crear diagramas de bases de datos y es posible realizar ingenieriacutea inversa de esquemas existentes en bases de datos cliente servidor como SQL Server IBM Oracle y otros [MIC02]

4

Conceptos generales

e JVision 21 de Object Insight

JVision permite en la ingenieriacutea directa la creacioacuten de clases variables y meacutetodos con lo cual genera plantillas de coacutedigo para programadores en Java Los diagramas se pueden exportar a HTML La documentacioacuten puede integrarse con JavaDoc de Sun JVision da el soporte para ingenieriacutea inversa para el lenguaje Java

Se pueden crear todos los diagramas definidos por UML en los diagramas de secuencias da la oportunidad de dibujar clases liacuteneas liacuteneas de tiempo de vida y marca de destruccioacuten de objetos ofrece ademaacutes el soporte para las acciones de llamada regresar valor enviar accioacuten crear accioacuten y eliminar accioacuten [OBJO2]

MagicDraw 6 de No Magic

Es una herramienta CASE con soporte para trabajo en grupo Esta disentildeado para analistas 6 de negocios analistas de software programadores ingenieros de calidad y

documentadores Esta aplicacioacuten provee la capacidad para crear los diagramas definidos por UML (soporta UML 14) Cuenta con el soporte de ingenieriacutea inversa y generacioacuten de coacutedigo para C++ C Java y CORBNIDL Tiene integracioacuten con NetBeans se actualiza automaacuteticamente disponible en aacuterabe portugueacutes franceacutes italiano ingles (US) alemaacuten espantildeol japoneacutes y coreano

Tiene la caracteriacutestica de soportar la adaptacioacuten de los elementos a colores que el usuario defina Los diagramas pueden exportarse a imaacutegenes JPG EMF WMF EPS y DXF En los diagramas de secuencia da oportunidad de definir roles textos notas mensajes de varios tipos al mismo objeto recursivo ademaacutes de la relacioacuten a las notas y las liacuteneas de vida Es posible guardar los diagramas como imaacutegenes de mapas de bits o vectores Mantiene ademaacutes una vista pequentildea a escala del diagrama completo [NoA402]

e

SmariDraw Professional Plus de SmariDraw

Todos los dibujos pueden agregarse en las aplicaciones de Microsoft como son Word Excel PowerPoint Contiene maacutes de 50000 (1000 en la versioacuten estaacutendar) formas predefinidas ejemplos y plantillas Los diagramas pueden ser exportados a imaacutegenes WMF BMP JPG GIF TIF y otros Incluye un convertidor de archivos de VISIO

Con esta herramienta es posible crear diagramas de flujo diagramas de bloque diagramas de flujos de datos diagramas de organizacioacuten aacuterboles de decisioacuten disentildeo de redes Gantt diagramas de flujo de procesos diagramas de administracioacuten de calidad diagramas eleacutectricos diagramas mecaacutenicos diagramas quiacutemicos liacuteneas de tiempo planes de espacio posters mapas formas y tambieacuten da soporte para UML es posible dibujar objetos actores activacioacuten de los objetos mensaje mensaje de retorno mensaje asiacutencrono mensaje con tiempo liacutenea de vida del objeto marca de destruccioacuten del objeto y ciclos (descrito con un rectaacutengulo y una condicioacuten de salida) [SMA02]

5

Conceptos generales

Producto Soporta Diagramas de UML Secuencias

Creacioacuten automaacutetica de diagramas de

El Rational Rose El Visio

Jvision

Magic D r a w

a a El Fl El a El El

I ~

I ~

I -

Ambiente de modelado de

a a SmartDraw El

Tabla I Tabla comparativa

Todas las herramientas descritas anteriormente cuentan con caracteriacutesticas sobresalientes para el disentildeo y modelado de sistemas de software pero ninguna de ellas genera automaacuteticamente los diagramas de secuencia con base en los diagramas de clases y el disentildeo detallado de los meacutetodos asiacute tambieacuten ninguna de ellas realiza un caacutelculo de los canales de comunicacioacuten abiertos entre las clases que conforman el sistema

iexcla la A UML Editor in Java

13 Definicioacuten del problema

El modelado de sistemas utilizando el estaacutendar de UML en diversos productos comerciales prototipos de laboratorio elaborados en universidades y centros de investigacioacuten atienden la perspectiva baacutesica de la abstraccioacuten general del modelo esto es documentar el modelo del sistema que se requiere sin atender puntos importantes tales como

La generacioacuten automaacutetica de los diagramas de secuencias La correccioacuten de inconsistencias en los diagramas al crearlos de forma separada

El

6

sistemas de software

secuencias utilizando diagramas de a a a

Conceptos generales

Se hace necesaria la creacioacuten de un ambiente visual que permita obtener de forma automaacutetica los diagramas de secuencias en base a los diagramas de clases y al disentildeo detallado de los meacutetodos para facilitar la documentacioacuten la generacioacuten de coacutedigo y el mantenimiento de los sistemas

La obtencioacuten de los diagramas de secuencias estaacute basada en los Diagramas de Clases definidos por UML que son construidos con la herramienta InverSOODA junto con el disentildeo detallado de los meacutetodos construidos con Diagramas de Wamier elaborados con la herramienta InverDDVi

En el estaacutendar UML para la construccioacuten de los diagramas no existe actualmente una sintaxis expliacutecita definida solo existe impliacutecitamente en el uso de los elementos del diagrama por lo que se ha descrito una gramaacutetica visual de tipo relaciona1 como soporte para la construccioacuten de los Diagramas de Secuencias

n ai 14 Objetivo de la Tesis

Construir un ambiente visual que permita al usuario obtener el diagrama de secuencias de manera automaacutetica

141 Objetivos especiacuteficos de la tesis Crear una gramaacutetica que soporte la construccioacuten del diagrama de secuencias Construir de forma automaacutetica el diagrama de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodos

15 Hipoacutetesis de investigacioacuten

Es posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodos

16 Alcances y limitaciones del trabajo de tesis

Los alcances de la tesis se especifican a continuacioacuten

Se elaboroacute la arquitectura del sistema Se definioacute la gramaacutetica de soporte Se desarrolloacute la interfaz en Visual C++ haciendo uso de las MFC Se interactuacutea con los diagramas de clases de InverSOODA Se interachiacutea con el disentildeo detallado de los meacutetodos realizados por InverDDVI Se genera el diagrama de secuencias de forma automaacutetica

7

Conceptos generales

Limitaciones de la tesis

0 No se genera coacutedigo

La investigacioacuten se limita a los diagramas de clases para la vista estaacutetica de los sistemas de software y a los diagramas de Warnier para la vista dinaacutemica de los meacutetodos El ambiente no trabaja en red

No se modifican los archivos de InverSOODA No se modifican los archivos de InverDDVI No se recuperan diagramas de secuencias a partir de coacutedigo legado

4

8

Capiacutetulo 2

Narc0 teoacuterico

En eacuteste capiacutetulo se describen los temas usados para el desarrollo de la tesis iquestQue son los modelos iquestEn que parte del proceso de Ingenieriacutea del Software se usan los modelos o el modelado Se estudia la interfaz de usuario los lenguajes visuales y las gramaacuteticas visuales Se describe el Lenguaje de Modelado Unificado (UML) ademaacutes de la programacioacuten orientada a objetos por ser este paradigma en donde se enfoca este trabajo

Marco teoacuterico

21 Modelado de sistemas de software

un modelo es una abstraccioacuten de algo con el propoacutesito de entenderlo antes de construirlo El modelo omite detalles no esenciales haciendo maacutes faacutecil su manipulacioacuten que la entidad original [BLA98] Un modelo es la simplificacioacuten de la realidad [RUM99] Los propoacutesitos de los modelos son

Probar una entidad fisica antes de construirla Establecer mejor comunicacioacuten con los clientes Visualizar el problema y el sistema desde una mejor perspectiva Reducir la complejidad [BLA98] Capturar y precisar requerimientos y conocimiento del dominio Pensar acerca del disentildeo del sistema Capturar decisiones de disentildeo en una fomia separada que cambia a partir de los requerimientos Generar productos Organizar buscar filtrar obtener examinar y editar informacioacuten acerca de un sistema Explorar muacuteltiples soluciones econoacutemicas Manejar sistemas complejos [RUM99]

El modelado es una probada y bien aceptada teacutecnica de Ingenieriacutea de Software [RUM99] El modelado es parte central de todas las actividades que conducen a la produccioacuten de buen software Se construyen modelos para comunicar la estructura deseada y revisar el comportamiento de nuestro sistema Se construyen modelos para visualizar y controlar la arquitectura del sistema Se construyen modelos para comprender mejor el sistema que estamos construyendo muchas veces descubriendo oportunidades para la simplificacioacuten y la reutilizacioacuten Se construyen modelos para controlar el riesgo [BOO99] La razoacuten fundamental por la que modelamos es porque nosotros construimos modelos que nos ayudan a entender mejor el sistema que estamos desarrollando [RUM99]

El modelado nos permite [RUM99] 1 Visualizar como es el sistema o como queremos que sea 2 Especificar la estructura del sistema 3 Plantear nuestras guiacuteas en la construccioacuten delsistema 4 Documentar las decisiones que hemos tomado

En las etapas del desarrollo del software el modelado es usado en el disentildeo el disentildeo del sistema es la primera etapa en donde se da la aproximacioacuten baacutesica de la solucioacuten al problema seleccionado ademaacutes se decide por la estructura (arquitectura del sistema) y el estilo de la solucioacuten

La arquitectura del sistema provee el contexto sobre el cual se tomaraacuten decisiones mas detalladas en las etapas subsecuentes del disentildeo [BLA98] En el disentildeo modelamos el sistema y encontramos su forma (incluida la arquitehra) para que soporte todos los 3 -

10

Marco teorico

i

4 -I

requisitos -incluyendo los requisitos no funcionales y otras restricciones- que se le suponen [JAC99] Los propoacutesitos del disentildeo son

Adquirir una comprensioacuten en profundidad de los aspectos relacionados con 10s requisitos no funcionales y restricciones relacionadas con los lenguajes de programacioacuten componentes reutilizables sistemas operativos tecnologiacuteas de distribucioacuten y concurrencia tecnologiacuteas de interfaz de usuario tecnologiacuteas de gestioacuten de transacciones etc Crear una entrada apropiada y un punto de partida para actividades de implementacioacuten subsiguientes capturando los requisitos o subsistemas individuales interfaces y clases Ser capaces de descomponer los trabajos de implementacioacuten en partes mas manejables que puedan ser llevadas a cabo por diferentes equipos de desarrollo teniendo en cuenta la posible concurrencia Capturar las interfaces entre los subsistemas Esto ayuda cuando reflexionamos sobre la arquitectura y cuando utilizamos interfaces como elementos de sincronizacioacuten entre diferentes equipos de desarrollo Ser capaces de visualizar y reflexionar sobre el disentildeo utilizando una notacioacuten comuacuten Crear una abstraccioacuten independiente de la implementacioacuten del sistema en el sentido de que la implementacioacuten es un refinamiento directo del disentildeo que rellena lo existente sin cambiar la estructura Esto permite la utilizacioacuten de tecnologiacuteas como la generacioacuten de coacutedigo y la ingenieriacutea de ida y vuelta entre el disentildeo y la implementacioacuten [JAC99]

22 Interfaz de usuario (Mecanismos de interaccioacuten)

El crecimiento de las computadoras personales vendidas en los ~ O rsquo S lanzoacute con fuerza el ldquofaacutecil de usarrdquo como una de las caracteriacutesticas mas importante de un producto de computadora

Las interfaces graacuteficas de usuario no son nuevas se pueden encontrar en las paredes de cuevas al sur de Francia en las piraacutemides de Egipto y en las paredes de muchas ciudades [iUM92] Para el usuario de un sistema interactivo la comunicacioacuten es tan importante como la computacioacuten Para los usuarios regularmente la interfaz es el sistema [HIX93]

Disentildeo de Interfaz Seguacuten Hackos [HAC98] las interfaces estaacuten en todo donde se trabaja con

o Controles en productos de hardware o Etiquetas y sentildeales en el hardware o Pequentildeas pantallas de cristal liquido en maacutequinas de cualquier tipo o Pantallas para aplicaciones de software para terminales de computadoras centrales

Marco teoacuterico

o pantallas para aplicaciones de software en computadoras Personales sistemas operativos como Windows OS2 DOS Macintosh U n b Y Otros

0 Paacuteginas de un sitio WEB 0 Sistemas de ayuda y manuales en-liacutenea 0 Tutoriales incrustados y otros tipos de soporte de funcionamiento O Esquemas de formas y otros documentos

una interfaz es el medio con el cual los usuarios interactuacutean con el producto 0

sistema para lograr SUS objetivos

Interfaz Usable

Para que una interfaz sea usable debe ser transparente y darles a los usuarios la capacidad de lograr cumplir sus metas de forma efectiva y eficiente

Los beneficios presentados en el uso de las interfaces de usuario [TH190] Disfrutar el sistema El usuario disfruta trabajar con un sistema que cuenta con una interfaz bien disentildeada y que le da la funcionalidad y acceso a los recursos de una manera clara y sencilla Proporciona nuevas habilidades Elimina al usuario concentrarse en acciones que la propia interfaz y el sistema hacen dando como resultado que el usuario solo se concentre en lo importante del trabajo Delegacioacuten de tareas La interfaz de usuario permite al usuario no conocer los detalles de la tarea esto es la computadora atiende los detalles de las tareas mientras que el usuario se concentra en asuntos de maacutes alto nivel Seguridad El usuario no necesita estar en lugarespeligrosos para hacer su trabajo

Se da la mayor posibilidad para que el usuario tenga acceso al conocimiento utilizando un sistema interactivo Haciendo las cosas a la primera Las tareas se ejecutan en un orden correcto definido lo que da como resultado un trabajo bien terminado sin necesidad de repetir evitando asiacute altos costos Computando LOS usuarios pueden calcular datos sin necesidad de conocer el proceso para obtener los resultados

Desarrollo

El disentildeo de interfaz es un negocio bastante dificil Eacuteste combina dos complicadas disciplinas psicologiacutea y ciencias de la computacioacuten Estas disciplinas tienen un fondo cultural muy diferente la psicologiacutea atiende a la gente (comprensioacuten y entendimiento) las ciencias computacionales a las maacutequinas (matemaacuteticas y precisioacuten) El disentildeo de las buenas interfaces requiere que estas dos perspectivas esteacuten unidas [THi90]

Hackos dice que las interfaces dan simplicidad y elegancia al trabajo necesario y a la vida e los usuarios Si no es obvio al usuario pero es raacutepida para aprender [HAC98] ademaacutes define caracteriacutesticas comunes de las interfaces usables

o Hacen que el flujo de trabajo sea familiar o confortable o Soportan el estilo de aprendizaje de los usuarios

12

Marco teoacuterico

Visualizacioacuten de Entrenamiento visual Para controlar Soportar interaccioncs Programar con informacioacuten visual visuales expresiones visuales

o Compatibles con los ambientes de trabajo de los usuarios o Se extienden sobre un concepto de disentildeo que es familiar al usuario o Tienen consistencia de presentacioacuten que los hace parecer maacutes confiable y faacuteciles de

aprender o Usan lenguaje y figuras familiares al usuario o faacuteciles de aprender

Datos o informacioacuten acerca de datos

23 Lenguajes Visuales

Los lenguajes visuales son un nuevo paradigma para expresar los sistemas computacionales Ellos ofrecen la posibilidad de manipular directamente los objetos Un lenguaje visual consiste de sentencias visuales Para lenguajes visuales basados en iacuteconos cada sentencia visual es un arreglo espacial de objetos O iacuteconos graacuteficos [CHA90]

Un lenguaje visual es concebido como una coleccioacuten de figuras obtenidas por un arreglo graacutefico de objetos en dos o maacutes dimensiones Los lenguajes visuales pueden ser modelados sintaacutecticamente a traveacutes de un vocabulario un conjunto de relaciones usadas para componer las figuras y un conjunto de reglas describiendo las figuras pertenecientes al lenguaje Los objetos graacuteficos de un vocabulario de un lenguaje visual se caracterizan por contar con un conjunto de atributos Los atributos de un objeto graacutefico pueden ser atributos graacuteficos atributos sintaacutecticos y atributos semaacutenticos [MAR98]

Un lenguaje de programacioacuten visual puede ser informalmente definido como un lenguaje el cual usa algunas representaciones visuales [SHV88]

Programa ylo Disentildeo de Lenguajes de programacioacuten visual ejecucioacuten software Diagramas iconos Formas

Programacioacuten Visual [SHU88]

Gramaacuteticas para la especificacioacuten de lenguajes visuales [MAR98]

a) Gramaacuteticas texfuales generalizadas Este tipo de gramaacutetica provee una adaptacioacuten apropiada de la concatenacioacuten de siacutembolos para dos dimensiones Su principal ventaja es que conservan los elementos teoacutericos de las gramaacuteticas textuales y los eficientes algoritmos de anaacutelisis de eacutestos uacuteltimos Su principal desventaja es que eacutestas gramaacuteticas no son tan poderosas y soacutelo pueden especificar clases restringidas de lenguajes visuales

13

Marco teorico

b) Meacutetodos basados en gramaacuteticas de grafos Un ejemplo de este tiPo de gramaacuteticas son las gramaacuteticas de red Las oraciones generadas con gramaacuteticas de red son grafos dirigidos con siacutembolos en los nodos Estos grafos son llamados redes Una produccioacuten de eacuteste tipo de gramaacuteticas es de la siguiente forma

a - t p E

donde a y p son redes y E es una forma de conectar a p cuando a es conectada a otra red anfitriona

La mayor desventaja es que las gramaacuteticas de red no han probado ser totalmente uacutetiles para la especificacioacuten de gramaacuteticas arbitrarias por la complejidad para rescribir grafos y al hecho de que no todo lenguaje visual estaacute compuesto exclusivamente por grafos

C) Gramaacuteticas de multiconjuntos de atributos En estas gramaacuteticas las producciones rescriben conjuntos o multiconjuntos de siacutembolos que tienen atributos con informacioacuten sobre geometriacutea o semaacutentica La reescritura se controla con restricciones sobre los atributos de los siacutembolos en el lado derecho de las producciones

Un ejemplo de eacutestas gramaacuteticas es la Gramaacutetica Coordinada que especifica notacioacuten matemaacutetica de dos dimensiones En esencia las producciones en una gramaacutetica coordinada n-coordinada libre del contexto tienen la siguiente forma

A -t a donde C F

Todos los siacutembolos de eacuteste tipo de gramaacutetica tienen n atributos geomeacutetricos A es un siacutembolo no terminal a es una cadena no vaciacutea de siacutembolos C es una restriccioacuten sobre los atributos de los siacutembolos en a y F es una expresioacuten que computa los atributos de los siacutembolos de A en teacuterminos de los atributos de los siacutembolos en a no importando el orden de los siacutembolos en a

d) Gramaacuteticas PosicionaZes Las gramaacuteticas posicionales son un formalismo para la definicioacuten e implementacioacuten de lenguajes visuales las gramaacuteticas posicionales extienden naturalmente a las gramaacuteticas libres de contexto Una gramaacutetica libre de contexto posicional PG es una six-tupla (N T S P POS PE) donde

N es un conjunto finito no vaciacuteo de siacutembolos no terminales T es un conjunto finito no vaciacuteo e siacutembolos terminales con N n T = $I S E N es el siacutembolo no terminal de inicio P es un conjunto finito de producciones POS es un conjunto finito de identificadores de relacioacuten binaria PE es un evaluador pictoacuterico

14

Marco teorico

Cada produccioacuten en P tiene la siguiente forma

A -+ X I R I X R2 X ~ I Rm1 xm A

e) Gramaacuteticas de Relacioacuten de siacutembolos Eacuteste es un formalismo sintaacutectico para describir un lenguaje visual donde cada oracioacuten dentro del lenguaje se representa como un conjunto de objetos visuales y un conjunto de relaciones entre objetos

El alfabeto de siacutembolos Vt y el conjunto de relaciones entre siacutembolos Vr una oracioacuten de relacioacuten de siacutembolos w sobre Vt y Vr es un par ( M R) donde

M es un conjunto de elementos-s (v i) con v E Vt y i es un nuacutemero natural R es un conjunto de elementos-r de la forma r (Xi Yj) con Xi Yj E M r E Vr y una relacioacuten r esta contenida entre Xi y Yj

Una gramaacutetica de relacioacuten de simbolos es el conjunto de seis elementos G = (Vn Vt Vr S P R) donde Vn es un conjunto de siacutembolos no terminales Vt es un conjunto de siacutembolos terminales Vr es un conjunto de relaciones entre siacutembolos S es el siacutembolo inicial y P es un conjunto de reglas de reescritura (producciones de elementos-s)

f) Gramaacuteticas relacionales Este tipo de gramaacutetica pertenecen a las gramaacuteticas libres de contexto

La gramaacutetica relaciona1 (RGrsquos) es una 6-tupla G (N C S R Attr P) donde

N C S R Attr P

es un conjunto finito de siacutembolos no terminales es un conjunto de siacutembolos terminales es un siacutembolo distinguido en N llamado siacutembolo inicial es un conjunto finito de siacutembolos de relacioacuten es un conjunto finito de siacutembolos de atributos es un conjunto de producciones de la forma A-gt apF donde A E N a E (nlo)+ Donde n E N cr E E

8 Es un conjunto de relaciones de la forma (r x y) donde r E R y xy son enteros que hacen referencia a un miembro de a y tambieacuten una expresioacuten de la forma (a i) donde a E Attr e i es un entero que hace referencia a un miembrode a

F Es un conjunto de declaraciones de asignacioacuten de caracteriacutesticas de la forma (a O)=x donde a E Attr y x es un entero que hace referencia a un miembro de a o a una expresioacuten de la forma (a i)

15

Marco teoacuterico

24 Programacioacuten orientada a objetos

L~~ meacutetodos orientados a objetos organizan la informacioacuten Y el procesamiento que manipula esta informacioacuten de acuerdo a los objetos delrsquomundo real que la informacioacuten describe [BRO97l

Beneficios de las teacutecnicas orientadas a objetos [BR097] Estabilidad del sistema Mantenibilidad Componentes reusables Confiabilidad Accesibilidad de los datos Participacioacuten del usuario

Seguacuten Graddy Booch la programacioacuten orientada a objetos es ldquoun meacutetodo de implementacioacuten en el que los programas se organizan como colecciones cooperativas de objetos cada uno de los cuales representan una instancia de alguna clase y cuyas clases son todas miembros de una jerarquiacutea de clases unidas mediante relaciones de herenciardquo [JOY 981

Programacioacuten orientada a objetos esencialmente significa programacioacuten usando objetos [JAC93] Los lenguajes orientados a objetos deben soportar los siguientes conceptos

Objetos Abstraccioacuten de datos Encapsulamiento Clases e Instancias Herencia entre clases Polimorfismo

Las propiedades fundamentales de la Programacioacuten Orientada a Objetos son

a Abstraccioacuten Son ideas conceptos y propiedades que se describen en forma general eliminando los detalles Es una estructura de datos y los meacutetodos que manipulan a esos datos

b Encapsulamiento Son las fronteras propias de un objeto bien definidas las cuales protegen los detalles de su representacioacuten interna

c Ocultacioacuten de la informacioacuten Es la propiedad en la que los objetos pueden hacer uso para impedir que otros objetos los usuarios o incluso los programadores conozcan coacutemo estaacute distribuida la informacioacuten

d Herencia Es la propiedad que tiene una clase para heredar atributos y comportamiento a otras clases

e Polirnorfismo Es la propiedad que permite que una entidad pueda cambiar a diferentes formas efectuaacutendose de manera dinaacutemica en tiempo de ejecucioacuten

16

Marco teoacuterico

t

Clases Es la especificacioacuten de una familia de objetos es la declaracioacuten de un tipo de objetos Tambieacuten se dice que una clase es la descripcioacuten de un conjunto de objetos con un comportamiento similar y que esta compuesta de Datos (o atributos) y Meacutetodos o (rutinas acciones operaciones)

Objeto Un objeto es una entidad en la cual se almacenan datos y los meacutetodos o funciones que controlan dichos datos Un objeto es una abstraccioacuten de alguna cosa del mundo real que contiene datos que lo describen y operaciones que solo tienen acceso a esos datos [BR097l Los elementos de los que esta conformado un objeto son

a Las relaciones permiten que el objeto se integre en la organizacioacuten b Las propiedades son los datos que caracterizan el estado de un objeto distinguiendo

asiacute a un objeto determinado de los restantes que forman parte de la misma organizacioacuten

c Los meacutetodos son las operaciones que pueden realizarse sobre la estructura del objeto es decir las acciones que cambian el estado de un objeto y que el objeto es capaz de ejecutar a traveacutes de mensajes y que tambieacuten pone a disposicioacuten de sus descendientes a traveacutes de la herencia

Mensajes Son solicitudes para que se lleve a cabo la operacioacuten indicada y se produzca un resultado

Las razones principales para introducir la tecnologiacutea de objetos son los beneficios de dicha tecnologiacutea

Aumento de la fiabilidad Aumento de la productividad del desarrollador Desarrollo maacutes raacutepido Mejor calidad maacutes alta

Incremento en escalabilidad Mejores estructuras de informacioacuten Incremento de adaptabilidad Reduccioacuten del coacutedigo fuente

Mantenimiento maacutes faacutecil y reduccioacuten de costo

Los elementos de reutilizacioacuten son las clases y objetos

25 Lenguaje de Modelado Unificado (UML)

UML (Unified Modeling Language por sus siglas en ingleacutes Lenguaje de Modelado Unificado) es un lenguaje de modelado visual de propoacutesito general que es utilizado para especificar visualizar construir y documentar las partes de un sistema de software El lenguaje estaacute basado en un pequentildeo nuacutemero de conceptos centrales que la mayoriacutea de los desarrolladores de tecnologiacutea orientada a objetos pueden aprender y aplicar faacutecilmente [RUM99]

17

Marco teoacuterico

y UML Pasado Presente y Futuro

L~~ lenguajes de modelado orientado a objetos aparecieron a mediados de 10s 70rsquos Varias teacutecnicas influenciaron estos lenguajes El nuacutemero de lenguajes de modelado incrementoacute desde menos de 10 hasta maacutes de 50 entre 1989 y 1994 Muchos modeladores teniacutean problemas para encontrar un lenguaje de modelado que satisficiera todas sus necesidades Notablemente aparecioacute Boochrsquo93 y la evolucioacuten continuoacute a OMT y Fusioacuten

OOSE (Object-Oriented Software Engineering) estaacute enfocado a la ingenieriacutea de negocios y anaacutelisis de requerimientos dando un excelente soporte orientado a casos de uso OMT-2 es especialmente expresivo para anaacutelisis y sistemas de informacioacuten de datos grandes Boochrsquo93 fue particularmente expresivo para el disentildeo y fases de construccioacuten de proyectos y popular para aplicaciones de ingenieriacutea intensiva

Grady Booch y Jim Rumbaugh iniciaron el desarrollo de UML en 1994 al unificar sus meacutetodos independientes Booch y OMT En 1995 Ivar Jacobson se unioacute a Racional eacutesta unioacuten logroacute que el meacutetodo OOSE se incorporara La unificacioacuten establecioacute que debiacutean activar el modelado de sistemas utilizando conceptos orientados a objeto asiacute como crear un lenguaje usable tanto para las maacutequinas como para los humanos

A

Muchas organizaciones se unieron al consorcio UML y dedicaron recursos al trabajo hacia el fortalecimiento de la definicioacuten de UML Esta colaboracioacuten produjo un lenguaje de modelado expresivo poderoso y generalmente aplicable En la forma actual de UML se espera que sea base de muchas herramientas incluidas las de modelado visual simulacioacuten y ambientes de desarrollo

R UML es abierto y no-propietario y aunque define un lenguaje preciso no es barrera para futuras mejoras en conceptos de modelado Se usan muchas teacutecnicas de punta pero se esperan teacutecnicas adicionales que influencien futuras versiones de UML puede ser extendido sin redefinir el nuacutecleo

c

Mientras el rehuacuteso basado en componentes se ha favorecido ampliamente cada vez mas esto no significa que las teacutecnicas basadas en componentes reemplazaraacuten las teacutecnicas orientadas a objetos Hay solo sutiles diferencias entre la semaacutentica de componentes y clases [ALC03]

Un opaco rendimiento caracterizoacute el mercado de anaacutelisis modelado y disentildeo en el 2000 en su transicioacuten de las viejas herramientas CASE (Computer Aided Software Engineering) a algo maacutes dinaacutemico y mejor adaptado para satisfacer las necesidades de los desarrolladores para el cambio raacutepido en los ambientes de negocio

El mercado de anaacutelisis modelado y disentildeo lograraacute obtener un crecimiento positivo en varios de los siguientes antildeos por varias razones El mercado seraacute manejado principalmente por la necesidad de desarrolladores a obtener aplicaciones para lanzarse al mercado raacutepidamente asiacute tambieacuten por el intereacutes creciente y uso de una nueva especie de herramienta y por el intereacutes creciente de los desarrolladores en usar UML reglas de negocios y adaptadores de componentes para construir aplicaciones [RIKUI]

z -

18

Marco teoacuterico

UML se ha hecho el estaacutendar para los desarrollos de modelado de negocios administracioacuten de requerimientos anaacutelisis y disentildeo programacioacuten y pruebas Los objetivos primarios de UML en el disentildeo [RAT97j

o Dar a los usuarios un lenguaje visual expresivo de modelado listo para usarse para que puedan desarrollar y cambiar los significados de sus modelos

o Suministrar mecanismos de extensibilidad y especializacioacuten para extender los conceptos centrales

o Ser independiente de lenguajes de programacioacuten particulares y procesos de desarrollo

o Impulsar el desarrollo de las herramientas Orientadas a Objeto en el mercado o Soportar conceptos de desarrollo de alto nivel como colaboracioacuten marcos de

componentes reutilizables patrones y componentes o Integrar las mejores praacutecticas

9 El aacutembito de UML

UML es un lenguaje para especificacioacuten construccioacuten visualizacioacuten y documentacioacuten de artefactos de un sistema de software UML es la fusioacuten de los conceptos de Booch OMT y OOSE El resultado es un simple comuacuten y ampliamente usado lenguaje de modelado para usuarios de estos y otros meacutetodos UML se enfoca en un lenguaje de modelado estaacutendar no en un proceso estaacutendar los autores de UML recomiendan un proceso de desarrollo manejado por casos de uso de arquitectura central iterativo e incremental [iiquest4T97l

Para la definicioacuten de sistemas de software en UML se definen diagramas Un diagrama es la representacioacuten graacutefica de un conjunto de elementos este se visualiza la mayoriacutea de las veces como un grafo conexo de nodos (elementos) y arcos (relaciones) Los diagramas se dibujan para visualizar un sistema desde diferentes perspectivas de forma que un diagrama es la proyeccioacuten de un sistema uumlML incluye nueve diagramas [B0099]

4 -

I Diagrama de clases 2 Diagrama de objetos 3 Diagrama de casos de uso 4 Diagrama de secuencias 5 Diagrama de colaboracioacuten 6 Diagrama de estados 7 Diagrama de actividades 8 Diagrama de componentes 9 Diagrama de despliegue

Diagramas de secuencias Un diagrama de secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten comportamiento

Un diagrama de secuencias muestra un conjunto de mensajes acomodados en una secuencia de tiempo eacuteste diagrama muestra la interaccioacuten en un esquema de dos - dimensiones [RUM99]

19

Marco teoacuterico

Y -

Un diagrama de secuencia es un diagrama de interaccioacuten que resalta la ordenacioacuten temporal de los mensajes Un diagrama de secuencia presenta un conjunto de objetos y los mensajes enviados y recibidos por ellos Los objetos suelen ser instancias (con nombre o sin nombres) de clases pero tambieacuten pueden representar instancias de otros elementos tales como colaboraciones componentes y nodos Los diagramas de secuencia se utilizan para describir la vista dinaacutemica de un sistema [B0099]

Usar los diagramas de secuencia es mostrar la secuencia que existe en un caso de uso [RUM 991

Los diagramas de secuencia tienen dos dimensiones Una dimensioacuten que representa el tiempo Otra dimensioacuten que representa los diferentes objetos que participan en la secuencia de eventos requeridos para completar el propoacutesito [MOuuml98]

El principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildea las interacciones de los objetos [DAN02]

20

Capiacutetulo 3

DesawoCCo de Ia herramienta

En este capiacutetulo se describe el desarrollo del Ambiente Visual Se describe el modelo conceptual del sistema la arquitectura asiacute como tambieacuten los elementos que componen la Arquitectura Se estudian los Diagramas de Secuencias de UML y algunos Patrones de Disentildeo de los que se hace uso para el mejor desarrollo del sistema Se describe a detalle la Gramaacutetica Visual Relaciona1 utilizada para el de Ambiente de desarrollo

I CENIOET 1FNTRO DE INFORMACION

Desarrollo de la herramienta

t i i

Actualmente existe en el cenidet un Ambiente Visual de Modelado de Clases llamado InverSOODA este Ambiente Visual tiene la capacidad de realizar la generacioacuten automaacutetica de coacutedigo de las clases en C++ a partir del modelo especificado Ademaacutes se puede realizar la Ingenieria Inversa de un coacutedigo legado para obtener el modelo de clases Aunado a este trabajo existe el Ambiente Visual denominado InverDDVi con el cual se puede realizar el Disentildeo Detallado de los Meacutetodos de las Clases con diagramas de Warnier Asiacute tambieacuten es posible obtener el modelo aplicando la Ingenieriacutea Inversa a un coacutedigo legado en C++

Ambos trabajos son retomados en este proyecto para la automatizacioacuten en la obtencioacuten de los Diagramas de Secuencias de UML La figura 31 muestra el modelo propuesto de ingenieriacutea directa

Extraer informacioacuten del diagrama de

rsquo rsquo

Diagrama de 11 clases I o

detallado de

detallado de

o meacutetodos

i ir---- Construir el

secuencias i

Modelo de Ingenieriacutea I directa automaacutetica

I

Figura 31 Modelo de Ingenieria Directa Autombtica de los Diagramas de Secuencias

Para la construccioacuten automaacutetica de un diagrama de secuencias se toma como base a un diagrama de Clases El modulo ldquoExtraer informacioacuten del diagrama de Clasesrdquo sirve para obtener el nombre y los meacutetodos descritos en cada uno de las clases que existan en el diagrama de Clases

22

Desarrollo de la herramienta

Con base en la informacioacuten que se tiene se abren los archivos correspondientes a los diagramas de Warnier El proceso que se emplea sobre cada uno los diagramas de Warnier llamado ldquoExtraer informacioacuten de los disentildeos detallados de los meacutetodosrdquo sirve para recopilar el conjunto de las llamadas de cada meacutetodo definido

En el siguiente paso (ldquoReconocer llamadas a meacutetodosrdquo) consiste en identificar si los meacutetodos que estaacuten descritos en los diagramas de Warnier tambieacuten lo estaacuten en el diagrama de Clases correspondiente

El paso ldquoConstruir los diagramas de secuencias automaacuteticamenterdquo realiza una validacioacuten de los meacutetodos definidos en los diagramas de Clases con los meacutetodos definidos en los diagramas de Warnier Este paso crea una estructura de datos con la secuencia de las llamadas y la recorre para crear los objetos y los mensajes en el diagrama de secuencias

AI terminar la creacioacuten automaacutetica del diagrama de secuencias se dispone de la r opcioacuten de guardar

31 Disentildeo de la Arquitectura

Para definir los procesos que el sistema va a realizar es necesario llevar a cabo un anaacutelisis de requisitos los cuales pueden ser expresados mediante diagramas de Casos de Uso Los Casos de Uso son una descripcioacuten textual narrativa de los procesos de un sistema

311Requisitos (Diagrama de Casos de uso)

Los casos de uso en realidad no son un artefacto de anaacutelisis orientado a objetos estos describen simplemente procesos y pueden ser igualmente efectivos en un proyecto tecnoloacutegico no orientado a objetos Son usados en un paso preliminar a la descripcioacuten de requerimientos de un sistema [LAR971 La Figura 32 muestra el diagrama de casos de uso que especifica al S3C

9

S3C (Diagramas de Secuencias)

usuario I Modelado de

I

Figura 32 Diagrama de Casos de Uso para el S3C

23

Desarrollo de la herramienta

Descripcioacuten de los Casos de Uso

Caso de Uso ldquoDiagramas de Secuenciasrdquo Se inicia cuando el actor ldquousuariordquo solicita la creacioacuten de un Diagrama de Secuencias Se establece la forma de la construccioacuten automaacutetica de los diagramas de secuencias de UML Se hace uso del Modelado de Clases y del Modelado del disentildeo detallado de los meacutetodos

Escenario de Eacutexito 1 Se obtiene la informacioacuten de las clases del modelado de clases 2 Se obtiene la informacioacuten del modelado del disentildeo detallado de los meacutetodos 3 Se realiza la construccioacuten automaacutetica de los diagramas de secuencias

1 En el modelo de clases no hay informacioacuten o estaacute incompleta 2 En el modelo del disentildeo detallado de los meacutetodos no hay informacioacuten o estaacute

incompleta

Escenario de Falla

Caso de Uso ldquoModelado de Clasesrdquo El diagrama de Clases se utiliza para obtener los nombres de clases y los nombres de los meacutetodos de cada clase

Escenario de Eacutexito 1 Se abre el modelo 2 Se procesa para obtener la informacioacuten de las clases (nombres de clases y nombres

de meacutetodos)

Escenano de Falla h 1 No se puede abrir el modelo J 2 El modelo esta vaciacuteo

Caso de Uso ldquoModelado del Disentildeo detallado 1 los meacutetodosrdquo El disentildeo detallado de los meacutetodos se realiza con diagramas de Warnier aquiacute se establecen las llamadas a funciones dentro del sistema y es aquiacute donde se identifica el dinamismo que se representaraacute en los diagramas de secuencias

Escenario de Eacutexito 1 Se abre el modelo 2 Se realiza la identificacioacuten de las llamadas existentes

Escenario de Falla 1 No se puede abrir el modelo 2 El modelo esta vaciacuteo

24

Desarrollo de la herramienta

Clase Objeto ni I Diagrama I n ____ Nombre Descripcioacuten

i

Mensaje

Tipo

En el Anaacutelisis Orientado a Objetos se crea una especificacioacuteii del dominio del problema y de los requeriinientos desde la perspectiva de una clasificacioacuten por objetos y del entendimiento de los teacuterminos usados en el dominio del problema Una descomposicioacuten del dominio del problema involucra una identificacioacuten de conceptos atributos y asociaciones que son considerados importantes dentro del dominio El resultado puede ser expresado en un Modelo Corzcepttraf el cual es ilustrado en un conjunto de diagramas que definen conceptos (objetos) [LAR97]

312Modelo Conceptual

El modelo conceptual visto en la Figura 33 no es una descripcioacuten de componentes de software representa conceptos en el domino del problema en el mundo Teal [LAR97l

313Diagramas de clases

Por cuestiones dc espacio las clases de la arquitectura del sistema estaraacuten referidas en varios diagramas que de alguna manera estaacuten relacionados entre si

Una de las partes maacutes importantes del Ambiente Visual S3C es la estructura de clases ltCCraJicogt la cual se refiere al control de los diagramas eacutesta por su naturaleza podriacutea considerarse el nuacutecleo del sistema La manipulacioacuten y control de los diagramas estaacute definido en una estructura de clases organizada con el patroacuten de disentildeo Composite que se muestra en la Figura 34

25

Desarrollo de la herramienta

CRecursividadDS CMensajeDS CObjetoDS CDiagramaDS

I Cvisitor I

CApuntadorDS CDblClickDS CAsocAdjusterDS CSelectorDS

26

Desarrollo de la herramienta

n 32 Elementos de la arquitectura

Es necesario describir los elementos que dan soporte a la arquitectura del ambiente donde se implementaraacute el sistema en este caso Microsoft Visual (MV) C++ 6 El MV C++ es un marco de aplicacioacuten poderoso basado en Windows se integran ademaacutes del lenguaje C++ (compilador y enlazador) el programa de desarrollo de programas en lenguaje C para Windows (SDK) la Microsoft Foundation Class Library AppWizzard Classwizard AppStudio y WorkBencli

La Microsoft Foundation Class Library comprende una biblioteca de clases de C++ y es considerada como el nuacutecleo del MV C++

321Microsoft Foundation Class (MFC)

La libreriacutea Microsoft Foundation Class (MFC) es una interfaz orientada a objetos que tiene las siguientes metas de disentildeo

o

Reduccioacuten significante de esfuerzo al escribir una aplicacioacuten para Windows Velocidad de ejecucioacuten comparable a las APIrsquos del lenguaje C Miacutenimo tamantildeo de coacutedigo Capacidad para llamar cualquier funcioacuten de Windows en C directamente Faacutecil conversioacuten de aplicaciones existentes en C a C++ Faacutecil uso de APIrsquos de Windows con C++ como con C Faacutecil uso de complicadas caracteriacutesticas de abstracciones poderosas como ActiveX soporte para base de datos impresioacuten barras de herramientas y barras de estado El API de Windows en C++ si usa tan efectivamente como las caracteriacutesticas mismas del lenguaje C++

La mayoriacutea de las clases de la Libreriacutea de la Microsoft Foundation Class son derivadas de una clase base ltCObjectgt que es la raiacutez de la jerarquiacutea de clases ltCObjectgt da uacutetiles capacidades a las clases que derivan de ella

La jerarquiacutea que existe en las clases derivadas de ltCObjectgt es la siguiente

Arquitectura de Aplicacioacuten Excepciones Servicios de Archivos Arreglos Listas Mapas Servicios de Internet Sockets Sincronizacioacuten Soporte para base de datos D A 0

27

Desarrollo de la herramienta

i

r

Liacutenea de Comandos Menuacute Dibujo Graacutefico Dibujo Graacutefico de Objetos Soporte de Control Soporte de Ventanas

Soporte para base de datos ODBC

o Marco de Ventanas o Barras de control o Hojas de propiedades o Cajas de Dialogo o Vistas o Controles

322Arquitectura Documento Vista

Por defecto las aplicaciones creadas con la MFC usan un modelo de aplicacioacuten que separa los datos del programa de las vistas de interaccioacuten con el usuario En eacuteste modelo un objeto documento de MFC lee y escribe datos en un almacenamiento persistente Un objeto vista administra el despliegue de datos suministrando al usuario los datos para ser seleccionados o editados La vista le comunica al documento cualquier cambio en los datos La razoacuten maacutes conveniente para seguir este modelo es cuando se necesita muacuteltiples vistas del mismo documento (como en una hoja de caacutelculo y un graacutefico)

La arquitectura documentovista hace faacutecil el soporte de muacuteltiples vistas y muacuteltiples tipos de documentos asiacute como la divisioacuten de ventanas y otras caracteriacutesticas de interfaz de usuario Pero el corazoacuten de la arquitectura son cuatro clases (Mostradas en el aacuterbol de clases de la Figura 36)

ltCDocumerrtgt (o ltCOleDocuinentgt) - Se instancia un objeto de este tipo para almacenar y controlar los datos del programa ltCViewgt (o una de sus clases derivadas ltCScrotlViewgt ltCFormViewgt ltCEditView ltCRecordViewgt ltCDaoRecordView ltCtreeViewgt ltCListViewgt b ltCrichEditViewgt) - Un objeto es usado para desplegar los datos y administrar la interaccioacuten del usuario con los datos ltCFrameWndgt (o una de sus variantes) - Establece el marco sobre el que trabajaraacuten una o mas vistas de un documento ltCDocTemolategt (o ltCSingIeDocTemplategt o ltCMultiDocTemplategt) - Coordina la existencia de uno o maacutes documentos de un tipo dado y administra la correcta creacioacuten de los documentos vistas y objetos ventanas para cada tipo

i

28

Desarrollo de la herramienta

______________ 2 Wiew

I - - __ - ------a ________________

323Integrando Ambientes en Visual C t t

Las aplicaciones de Interfaz de Documento Uacutenico (SDI) soporta muacuteltiples tipos de documentos pero este soporte es para un solo objeto documento Debido a esta restriccioacuten y aunado a la necesidad de tener varios objetos documentos a la vez se determina la utilizacioacuten del modelo Interfaz de Muacuteltiples Documentos (MDI) indicado en la Figura 37

324Interfaz de Muacuteltiples Documentos (MDI)

Una aplicacioacuten de Interfaz de Muacuteltiples Documento (MDI) permite la creacioacuten de plantillas para el manejo de los documentos eacutesta plantilla tiene la forma

rn-pDocTemplate = new CMultiDocTernplate ( I DR-SCUMLTY PE RUNTIME-CLASS (CSCUMLDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CTheView))

AddDocTernplate ( rn-pDocTemplate )

Cada plantilla describe una relacion del tipo de documento con la vista asociada La definicioacuten de la plantilla para el ambiente que controla los diagramas de secuencias es la siguiente

29

Desarrollo de la herramienta c

m-pTernplateSeqDlag = new CMultiDocTernplate ( IDR-DS-SJCTYPE RUNTIME-CLASS (CSeqDiagDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CSeqDiagView) )

AddDocTernplate( rn-pTernplateSeqDiag )

Esta plantilla hace uso de la clase CCliildFrame que por defecto el ambiente Visual C++ construye y esto es debido a que no se requieren caracteriacutesticas extras en las ventanas de las que proporciona dicha clasc En un caso en el que se requiriera un comportamiento diferente de la vista tendriacutea que crearse una nueva clase con las caracteriacutesticas deseadas

Vista Documento

Vista

I- Vista Documento I [ Tip- F Vista

L Figura 37 Modelo Interfaz de Muacuteltiples Documentos (MDI)

Para integrar otro Ambiente que utilice otro tipo de documento es necesario definir otra plantilla de la misma forma mencionada Debe tomarse en cuenta los siguientes puntos

Es necesario definir el nombre (mqTemplateNOMBRE) El IDR del tipo que se requiere que sea el documento En la primera liacutenea RUNTIME CLASS debe indicar la clase ltCDocumentgt que desea La segunda liacutenea RUNTIME-CLASS soacutelo la cambia a otra clase si requiere de otro manipulador de ventanas de lo contrario deje que ltCChildFramegt se haga cargo

-

30

Desarrollo de la herramienta

En la uacuteltima liacutenea referente a RUNTIME-CLASS se debe indicar la clase ltCViewgt que desea usar Para finalizar se usa la instruccioacuten AddDocTernplate para finalizar la definicioacuten del template (mgTemplateNOMBRE)

325 Recursos Diaacutelogos Mertuacutes y Barras de Herrattriertias

Son varios los recursos con los que se puede contar al crear un proyecto en Microsoft Visual C++ Los diaacutelogos son un recurso disponible que son utilizados para visualizar ingresar yo modificar informacioacuten que se requiera En el Ambiente Visual que se desarrolla son varios los diaacutelogos que se utilizaraacuten y eacutestos se describen a continuacioacuten

El Diaacutelogo ldquoCaracteriacutesticas del Obietordquo (Figura 38) identifica el nombre del Objeto y la descripcioacuten del mismo Este diaacutelogo se muestra cuando se presiona doble clic sobre un objeto del diagrama

I Nombre

Desciipcion

Figura 38 Dialogo Caracteriacutesticas del Objeto

El Diaacutelogo ldquoMensaierdquo (Figura 39) muestra el nombre del mensaje que puede ser modificado ademaacutes se visualizan el Identificador del Mensaje el tipo de Mensaje asiacute tambieacuten el origen y destino del mensaje

31

Desarrollo de la herramienta

Nornbie delMensaje Edit

IDentificador del Mensaje Edil Tipo de Mensaje (Edil

Edit Objeto Origen

Objeto Destino IEdit

i25El A Figura 39 Dialogo Mensaje

El menuacute es otro de los recursos del que se puede disponer para organizar el ambiente que se estaacute creando Para eacuteste caso en particular no se hizo modificaciones al menuacute estaacutendar (Figura 310) que Visual C++ presenta Los cambios significativos son el manejo del tipo de documento para los Diagramas de Secuencias

Archivo Editar Yer VenLana AyGda

Figura 310 Menuacute de los Diagramas de Secuencias (estaacutendar)

Otro importante recurso del que uno se puede valer en Visual C++ es la barra de herramienta personalizada la cuaacutel es construida en el Editor de Recursos Se ha construido una barra (Figura 311) con los elementos graacuteficos de los Diagramas de Secuencia de UML

Figura 311 Barra de Herramientas de los Diagramas de Secuencias

Es recomendable que al utilizar barras de herramienta personalizada se defina en el tamantildeo estaacutendar ya que puede experimentar problemas al momento de ejecutar la aplicacioacuten

Ademaacutes puede usar la propiedad TBBS-CHECKGROUP en una barra de herramientas para establecer que los botones puedan quedar presionados hasta que un botoacuten diferente sea presionado No olvide que la numeracioacuten inicia con cero ( O )

vuriableToolBurSetButtonStyle(OTBBSCHECKGROUP)

32

Desarrollo de la herramienta

Prefijo ID IDC IDD IDP IDR IDS

326 Notacioacuten estaacutendar

Los nombres descriptivos de los recursos se asocian a un valor uacutenico Para una mayor claridad eacutestos nombres mantienen un prefijo que describe el tipo de recurso asociado (vea la Tabla 31) [MIC99]

Tipo de Recurso Comandos de Menuacute Controles y recursos Cuadros de diaacutelogo Cadenas de solicitud para cuadros de mensaje Menuacute principal barras de herramienta tabla aceleradora y el icono Cadenas

IDR IDD IDC ID

200 - 299 3000 - 3999 34000 - 34999

Estos son los rangos de valores establecidos para el proyecto S3C Si se utiliza el coacutedigo fuente y se planea agregar otro proyecto verifisue que no se invadan estos nuacutemeros para evitar problemas

Para facilitar auacuten maacutes los trabajos futuros se ha definido una estructura de carpetas (ver Figura 312) para incluir en cada una las Clases correspondientes a cada tesis en desarrollo

33

Desarrollo de la herramienta

ill ~~ -

-I SCUML classes + U A N T L R + U App + 0 ClassDiagrams + 0 Common + a Java

t $2 SequenceDiagiams

+ WarnierDiagrams

iJ PackageDiagrams

12 StaterChartDiagrams

+

- f Classview I Resourceview 1 FileView ]

~ ~

Figura 312 Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)

327Estructura de datos persistencia y recuperacioacuten

Existe una gran cantidad de tipos de datos estructuras clases y meacutetodos de los que se puede hacer uso para una mejor y maacutes faacutecil obtencioacuten de los resultados A continuacioacuten hago comentarios en tipos de datos y meacutetodos en los que podriacutea tener problemas

CTypedPtrList

AI usar este tipo de dato o alguno relacionado que le permita utilizar el meacutetodo ltCTvrgtedPtrListGetNextgt tenga especial precaucioacuten al usarlo ya que al devolver el valor requerido la variable POSITION usada no se queda apuntando a ese valor en particular salta al inmediato siguiente de la lista

Si se realiza una creacioacuten dinaacutemica con punteros para los elementos de una CTypedPtrList Despueacutes de haberlo agregado a la lista evite el delete para borrar esta Usted deseando liberar la memoria no lo haga ya que eliminara directamente el elemento de la lista

POSITION

Es un valor usado para denotar una posicioacuten de un elemento en una coleccioacuten Pero CUIDADO no se refiere a un iacutendice es una referencia (no consecutiva) de punteros muy diferente a un iacutendice

CString

Auacuten cuando el operador de comparacioacuten == (igual a) es permitido para ser utilizado en las cadenas evite su uso ya que en ocasiones aunque cuando la e

34

Desarrollo de la herramienta

compilacioacuten no indique error alguno en la ejecucioacuten no realizaraacute lo que se necesita Recomiendo que utilice CStringCompare ()

Para eliminar el contenido de un CString utilice CStringEmpty() ya que asignar a la cadena un ldquonrdquo podriacutea causarle problemas

Serializacioacuten

Una forma en que se puede guardar informacioacuten y recuperarla de manera eficaz es mediante la serializacioacuten de objetos La serializacioacuten es un proceso que permite escribir un objeto en un archivo y tambieacuten leerlo

Para que la serializacioacuten se lleve a cabo son necesarios tres objetos un objeto de tipo ltCFilegt que represente el archivo un objeto de tipo ltCArchivegt que ofrece el entorno para la serializacioacuten y la clase del objeto a ser serializado debe ser heredada de ltCObjectgt y sobrescribir el meacutetodo ltSerializegt para que se encuentre de tal forma en que pueda ser serializado (vea la Figura 313)

Objeto a ser serializado 1

1 CArchive

[f --=I- ---7 Archivoexi

u Figura 313 Serializacioacuten

328Patrones de disentildeo utilizados

Se ha planteado la definicioacuten de una arquitectura de clases utilizando patrones de disentildeo debido a que algunos de ellos hacen maacutes faacutecil la extensioacuten de la funcionalidad y mantenimiento

35

Desarrollo de la herramienta

El patroacuten Composite es utilizado para crear de manera uniforme el diagrama sobre el que se trabaja (ver Figura 34) manteniendo una jerarquiacutea de clases uniforme las clases maacutes bajas en la jerarquiacutea definen primitivas de objetos graacuteficos

Se aplica el patroacuten de disentildeo Iterator para hacer recorridos en listas de objetos para realizar diversas operaciones Otro patroacuten de disentildeo del que se hace uso es el Visilor (ver Figura 35)

Para otras actividades que se realizan podriacutea pensarse en que se deberiacutean aplicar otros patrones pero se han evitado algunos (como el patroacuten de disentildeo Builder) para evitar incrementar la complejidad en la arquitectura ya que ai mantener el modelo de la MFC de documentovista la funcionalidad del patroacuten de disentildeo Builder es faacutecilmente reemplazado si se hiciera Uso de eacuteste se aumentariacutea la complejidad excesivamente (nos llevariacutea a perdemos en ocasiones en el paso de mensajes entre clases) dantildeando la facilidad de la arquitectura

33 Diagrama de secuencias

Un Diagrama de Secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten escenario Oacute comportamiento se usan para definir el curso loacutegico de accioacuten de un posible camino a seguir en la resolucioacuten de un problema Seguacuten John Daniels [DANO2] ldquoel principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildean las interacciones de los objetosrdquo

Los Diagramas de Secuencias se utilizan en el modelado de la implementacioacuten de sistemas de software ademaacutes son aplicables en el modelado de requisitos para establecer las comunicaciones existentes entre actores yo clases del sistema Con eacutestos diagramas se logran hacer descripciones de los escenarios y los comportamientos del sistema Con los Diagramas de Secuencias es posible definir protocolos de comunicacioacuten con paso de mensajes ya que dan esa flexibilidad que se requiere Ademaacutes los Diagramas de Secuencias contienen informacioacuten suficiente para que puedan ser transformados a los diagramas de colaboracioacuten [RUM Ol][BOO Oil

331Ciclo de vida del software

Considerando cualquier modelo de ciclo de vida del software (en la figura 314 se muestra el Modelo de cascada) el aacutembito directo de eacuteste Ambiente Visual es en el disentildeo aunque tiene sus vertientes en la codificacioacuten y mantenimiento

36

Desarrollo de la herramienta

Diseno

Codificacibn

I I I I Mantenimiento I

igura 314 Modelo de cascada del ciclo de vida del software

34 Elementos atoacutemicos de la Gramaacutetica

Definicioacuten de los elementos atoacutemicos del lenguaje y su contenido

1 Actor- Representa roles de entidad externos al sistema con el que interactuacutea directamente Los actores pueden ser humanos dispositivos u otros sistemas

2 ClaseObjeto- Determina una Clase u Objeto participante en la interaccioacuten

3 Mensaje-Es una comunicacioacuten entre objetos que contiene informacioacuten Eacuteste se representa con la finalidad a que una accioacuten sea llevada a cabo

4 Mensaje con tiempo- Tiene la misma finalidad que el mensaje la diferencia es que con eacutel se representa un atributo de tiempo

5 Mensaje asiacutencrono Es un mensaje que ocurre en el tiempo de manera independiente a otros mensajes

6 Mensaje de destruccioacuten de objeto- Es un mensaje cuya finalidad es indicar la destruccioacuten del objeto destino

7 Mensaje de creacioacuten de objeto- Es un mensaje que indica la creacioacuten de un objeto

8 Llamada al mismo objeto (Recursividad)- Es usado para modelar llamadas recursivas en el que una operacioacuten es invocada por el mismo objeto

37

Desarrollo de la herramienta

9 Destruccioacuten del objeto (AutodestrucciOacuten)- Puede o no modelarse es representada con una X al final de la liacutenea de vida del objeto

Elementos aulomaacuteticos

1 Liacutenea de Vida- Representa la vida del objeto durante la interaccioacuten

2 Activacioacuten- Muestra el periacuteodo de tiempo en el cual el objeto alguna operacioacuten

341RepresentaciOacuten visual

Representacioacuten visual de los elementos atoacutemicos del lenguaje

Actor

_- A

Mensaje

Mensaje de Creacioacuten de

Objeto

ClaseObjeto

I

Mensaje de retorno

Mensaje de Destruccioacuten de

Objeto

abla 32 Element(

Activacioacuten

Mensaje con tiempo

Autodestruccioacuten

x

atoacutemicos del lengi

taacute realizz

Texto ===I (letra)+ (letra I

numero) letra= AZ I az numero = 09

I

Recursividad ~

I

i j e

io

38

u

Comentario

iexcl

Conector de Comentario

35 Gramaacutetica desarrollada

La gramaacutetica que se propone es una gramaacutetica visual del tipo relacional Una gramaacutetica relacional pertenece a las gramaacuteticas libres de contexto es una 6-iupla G (N C S R Attr P) donde

N es un conjunto finito de siacutembolos no terminales C es un conjunto de siacutembolos terminales S es un siacutembolo distinguido en N llamado siacutembolo inicial R es un conjunto finito de siacutembolos de relacioacuten Attr es un conjunto finito de siacutembolos de atributos P es un conjunto de producciones

Entonces definiendo nuestra gramaacutetica G (N C S R Attr P)

N = Diagrama GrupoClaseObjeto

S = Diagrama

R = mensaje mensajeTiempo mensajeRetomo mensajeAsincrono mensajecrea mensajeDestruye autodestruccioacuten recursividad

R

Attr = entrada salida entradacrea

39

Desarrollo de la herramienta

Definiendo la posicioacuten de los atributos en los elementos visuales

entradacrea ObetaClase

entrada

salida

P =

Diagrama I GrupoClaseObjeto (mensaje (mensajeRetorno

(salida 1) (entrada 2) ) (salida 2) (entrada 1) )

- Diagrama 0 GrupoClaseObjeto

(mensaje (mensaje (mensajeRetomo (mensajeRetomo (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entradacrea 2) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 1) ) (salida 1) (entrada 1) )

entrada

salida

40

Desarrollo de la herramienta

s

-

GrupoClaseObjeto - 1 1 I 2 (mensaje (mensaje (mensajeRetorno (mensajeRetorno (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entradacrea 2) ) (salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 1) ) (salida I ) (entrada I ) )

1 En las gramaacuteticas relacionales una produccioacuten estaacute acompantildeada de las posibles

relaciones que puedan generarse En la primera produccioacuten Diagrama produce a un Actor seguida de un GrupoClaseObjeto el Actor inicia la interaccioacuten con un mensaje y recibe el mensaje de retorno al finalizar la interaccioacuten La segunda y tercera produccioacuten son similares debido a que un GrupoClaseObjeto contiene dos ClaseObjeto que se relacionan de la misma forma

Existe un elemento de la gramaacutetica llamado Attr (Atributo) el cual define la parte de los elementos visuales donde se establecen las relaciones Se han determinado dos atributos (entrada y salida) que para nuestro propoacutesito estaraacuten establecidos en la liacutenea de vida de cada elemento visual (Actor y ClaseObjeto)

Los Comentarios y la Activacioacuten no se consideran en la gramaacutetica Los comentarios son libres de incluirse y relacionarse con cualquier elemento y relacioacuten mencionada anteriormente y la activacioacuten existe siempre que se presente un mensaje (o podriacutea omitirse) Estas consideraciones se realizaron para hacer auacuten maacutes faacutecil la gramaacutetica ya que si se trata de realizar un sistema las restricciones de estos elementos pueden mantenerse en el lenguaje de programacioacuten en el que se desarrolle el sistema

36

Precondiciones

El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias

1 El diagrama de Clases debe existir y estar completo 2 Debe existir un archivo con un diagrama de Warnier por cada diagrama de Clases y

con el mismo nombre de archivo (excepto la extensioacuten del archivo) 3 En el uacutenico diagrama de Warnier de cada Clase se deben modelar todos los meacutetodos

de la Clase 4 No realizar declaraciones de meacutetodos

41

Desarrollo de la herramienta

5 Debe existir un meacutetodo lsquomain()rsquo en el diagrama de Clases

Restricciones

Los meacutetodos deben mantener nombres distintos en las diferentes Clases

Metodologiacutea para la obtencioacuten automaacutetica de los Diagramas de Secuencias

1 Seleccionar el diagrama de Clases

2 Se construye una lista con los nombres de las Clases y los Meacutetodos

3 Se verifica si exista el meacutetodo lsquomain()rsquo en alguna Clase Se busca la existencia de una uacutenica Clase

a La Clase que contenga lsquomain()rsquo se va al inicio de la lista de Clases

b Si no existe lsquomain()rsquo SE TERMINA EL PROCESO

4 Se verifica la existencia de los archivos que contienen el Disentildeo Detallado de los meacutetodos en Wamier para cada una de las Clases si alguno falta SE TERMINA EL PROCESO

5 Se procesa cada uno de los modelos del Disentildeo Detallado de los Meacutetodos generando una lista de secuencias de llamadas por cada uno de los meacutetodos

6 Se verifica que cada llamada corresponda a alguacuten meacutetodo existente (del diagrama de Clases) De no existir ese meacutetodo la llamada entra a una estructura que

7 Se crea una lista de secuencia

a Se inicia con lsquomain()rsquo b Se recorre cada una de las llamadas de los meacutetodos c Se considera invaacutelido el caso de que un meacutetodo intente una llamada

recursiva al meacutetodo lsquomain()rsquo

8 Se muestra un diaacutelogo de resultados en el que se indican las llamadas que no se encnotraron definidas y que pueden ser Llamada a libreriacutea oacute Llamada Erroacutenea

42

Capiacutetulo 4

Prue6as y su6taaacuteos

En eacuteste capiacutetulo se da a conocer el detalle de las pruebas y de los resultados obtenidos Se describen los casos de prueba con los que se realizoacute la evaluacioacuten del sistema asiacute tambieacuten se presentan comentarios acerca de los resultados obtenidos

Pruebas y Resultados

41 Recursos teacutecnicos utilizados

Para llevar a cabo las pruebas al sistema S3C se utilizaron los siguientes equipos de Coacutemputo

Computadora de escritorio

256MB RAM Disco Duro 80G Monitor 17rdquo SAMSUNG

AMD Athlon XP 1600+ I4Ghz

Computadora de escritorio Intel Pentium 4 - 128MB RAM Disco Duro 40G Monitor 15rdquo i -

42 Descripcioacuten del plan de pruebas

Las pruebas establecen el Uacuteltimo paso desde donde es posible evaluar la calidad y descubrir los errores Las pruebas y la validacioacuten del software se utilizan para comprobar que el sistema cumple con las expectativas del usuario

En esta seccioacuten se describen los casos de prueba que se realizaron al prototipo de S3C en conjunto a la suite cenidet-UML Para cada uno de los casos se presenta el objetivo el procedimiento que se siguioacute para la prueba y se muestran los resultados obtenidos - _

Las pruebas a realizar son los siguientes

Caso 1 Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Caso 2 Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Wamier

Caso3 Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Wamier

Caso4 Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo 5

44

Pruebas y Resultados

43 Resultados

431 Caso 1

5 Y

IZ =

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoSirdquo 4 Seleccionar el archivo ldquoVENTASrdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 41 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

s3c iuevo Proyecto SCUM1

Diagrama de clases

lvendedor I L

3

salida

venta prod

4 venia-oferta vcntaprod =

salida 6

Figura 41 Resultado del caso de prueba 1

45

Pruebas y Resultados

432 Caso 2

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Warnier (almacenwar cajawar vendedorwar) que ya cxisten (del caso de prueba I )

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoNordquo 4 Agregar las siguientes Clases con los respectivos meacutetodos y atributos

a Claseldquovendedorrdquo Meacutetodos ldquoventa mainrdquo b Claseldquoalmacenrdquo Meacutetodos ldquoentrada salidardquo c Claseldquocajardquo Meacutetodos ldquoventagrodrdquo

5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 42 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

Diagrama de daseo lisgrama dcsccucncis

MOIDOC Anivo

venta prod

salida

1 Ycrdquo1a 2

I 4 vcrdquolD~o1cn venta prod gt

salida 6 i Figura 42 Resultado del caso de prueba 2

46

Pruebas y Resultados

r

433 Caso 3

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Warnier

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 43 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

5

Error al tratar de abrir el archivo A bZwar

Aceptar i

Faltan Archivos de Disentildeos Detallados de Meacutetodos 1 1 A No se puede crear el diagrama de secuencias

Figura 43 Resultado del caso de prueba 3

47

Pruebas y Resultados

434 Caso 4

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 44 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

lsquo I

~ _ i i _ l _ Repaado ~~ ~ ~ 6~ ampA Figura 44 Resultado del caso de prueba 4

48

Pruebas y Resultados

PRUEBA DESCNPCION CASO 1 Mostrar la funcionalidad del

Sistema S3C a partir de un

44 Anaacutelisis de Resultados

RESULTADOS Se comproboacute la correcta funcionalidad del Sistema S3C a partir de un diagrama

CASO 3

CASO4

I diagrama de Clases cxistcnte I de Clases existente CASO 2 I Mostrar la funcionalidad del I Sc comproboacute la corrccta funcionalidad

Sistema S3C a partir de un del Sistema S3C a partir de un diagrama diagrama de Clases que se de Clases que se construye al momento construye al momento Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el Secuencias si falta alguno de los diagrama de Secuencia si falta alguno diagramas de Warnier Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el secuencias si hace falta el meacutetodo diagrama de Secuencias al faltar el ldquomain ()rdquo meacutetodo ldquomain()rdquo

de los diagramas de Warnier

Los resultados obtenidos de cada uno de los casos establecidos demuestran que se validoacute la funcionalidad del prototipo con los requisitos definidos en el alcance de este proyecto

a lt

49

Conclusiones y Tru6ajos Futuros

Aquiacute se dan a conocer las conclusiones y se describen los posibles trabajos futuros para la continuacioacuten de eacuteste proyecto

F

51 Conclusiones

Conclusiones y trabajos futuros

Se ha creado un Ambiente Visual que permite obtener de forma automaacutetica los Diagramas de Secuencias en base a los diagramas de Clases y al disentildeo detallado de los meacutetodos descritos con diagramas de Warnier cumpliendo con los objetivos planteados para este trabajo

La tesis aporta principalmente La generacioacuten automaacutetica de los diagramas de secuencias y la eliminacioacuten de inconsistencias al mantener una validacioacuten directa de los diagramas de clases y los diagramas de Warnier que son utilizados

Esta validacioacuten es lograda a traveacutes del uso de la gramaacutetica visual relaciona1 que se ha definido (veacutease el capiacutetulo 3) Esta gramaacutetica visual establece reglas para la correcta construccioacuten de los diagramas de secuencias

P De esta manera se establece que la hipoacutetesis ldquoEs posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodosrdquo Es verdadera

52 Trabajos Futuros

Un Diagrama de Secuencias puede convertirse en un Diagrama de Colaboracioacuten por lo tanto un trabajo futuro es la construccioacuten automaacutetica de un Diagrama de Colaboracioacuten a partir de uno de Secuencias existente

Es posible calcular la meacutetrica de acoplamiento al tener un Diagrama de Secuencias construido

La Ingenieriacutea directa de un Diagrama de Secuencias estableciendo la validacioacuten en la construccioacuten de todos los elementos visuales que UML define

La propagacioacuten de las modificaciones de un Diagrama de Secuencias a los Diagramas de Clases y los Diagramas de Warnier

La modificacioacuten del coacutedigo fuente mediante los cambios establecidos en un Diagrama de Secuencias

51

[ALC03]

[BLA98]

[B0099]

[BOOOi]

[BR097]

[CHA90]

[DAN02]

[GLA02]

[HAC98]

[HER03]

4

Alcate1 Computer Associates International inc Electronic Data Systems Corporation Hewlett-Packard Company IBM Corporation I-Logix IntelliCorp Kabira Technologies Kennedy Carter Microsoft Corporation Object Management Group Oracle Corporation Project Technology Ptech Inc Rational Software Corporation Reich Technologies Softeam Taskon A S Telelogic Unisys Corporation ldquoOMG Unified Modeling Language Specificationrdquo Version 15 Unified Modeling Language 2003

Blaha Michael Rumbaugh James Premerlani William Eddy Frederick Lorensen William ldquoObject-oriented modeling and designrdquo Prentice Hall 484 Paacuteginas ISBN 0-13-629841-9 QA-769-03S-B53-19981998

Booch Grady Rumbaugh James Jacobson Ivar ldquoEl lenguaje unificado de modeladordquo Addison Wesley 432 Paacuteginas ISBN 84-7829-028-1 1999

Booch Grady Rumbaugh James Jacobson Ivar ldquoThe Unified Modeling Language User Guiderdquo Addison Wesley 2001

Brown David ldquoAn introduction to object-oriented analysis objects in plain Englishrdquo John Whiley amp Sons Inc 700 Paginas ISBN 0-471-1 1028-0 QA-769-035-B76-1997 1997

Chang Shi-Kuo ldquoVisual Languages and visual programmingrdquo Plenum Press 340 Paacuteginas ISBN 0-306-43428-8 QA-7665-V57-1990 1990

Daniels John ldquoModeling with a sense of purposerdquo Design - IEEE Software JanuaryEebmary 2002

Glasgow Universidad Reino Unido ldquoA UML Editor in Javardquo (lthttplstudentsdcsglaacuWstudentspainjfproject-reportproject-re port-htmV4thYearReporthtrnlgt 2002)

T Hackos JoAnn C Redish Janice ldquoUser and Task Analysis for Interface Designrdquo Wiley Computer Publishing 488 Paacuteginas ISBN QA-769-U83- H33-1998 1998

Hemaacutendez Velaacutezquez M ldquoIngenieriacutea inversa de coacutedigo fuente en C++ para la obtencioacuten de su disentildeordquo Tesis AT-379 (03-0334) 2003

Conceptos generales

[HIX93]

[JAC93]

[JAC99]

[JOY98]

[LAR97]

[MAR]

[MIC99]

[MIC02]

[MOU98]

Hix Deborah Hartson H Rex ldquoDeveloping user interfacesrdquo 381 Paacuteginas ISBN 0-471-57813-4 QA-769-U83-H59-1993 1993

Jacobson Ivar Christerson Magnus Jonsson Patrik Overgaard Gunnar ldquoObject oriented software engineeringrdquo Addison Wesley ISBN 0-20 1 - 54435-0 QA-7676-D47-J63-1993 1993

Jacobson Ivar Booch Grady Rumbaugh James ldquoEl proceso unificado de desarrollo de softwarerdquo Addison Wesley 438 Paacuteginas ISBN 84-7829-036- 2 1999

Joyanes Aguilar Luis ldquoProgramacioacuten orientada a objetosrdquo McGruw Hill ISBN 84-481-0590-7 1998

Larman Craig ldquoAplying UML and Patternsrdquo Prentice Hull 507 Paacuteginas ISBN 0-13-748880-7 QA-769-035-L37-1997 1997

Marriot Kim Meyer Bemd ldquoVisual Language Theoryrdquo Springer 381 Paacuteginas P-935-V567-1998 1998

Microsoft ldquoMicrosoft Visual C++ 6 manual del programadorrdquo McGraw Hill ISBN 84-481-2127-9 QA-7673-Cl53-23718-1999 1999

Microsoft ldquoVisiordquo (lthttpwwwmicrosoftcomofficevisiogt 2002)

B Mourao Luis X ldquoUniversal Modeling Language Part 11 UML Notation - Case Sequence and Collaboration Diagramsrdquo Lan Times Magazine (~httpwwwlantimescomltpartsdiscussdiscuss6Ohtm~) 1998

No Magic ldquoMagicDrawrdquo (lthttpwwwmagicdrawcomgt 2002)

Object Insight ldquoJvisionrdquo (lthttpwwwobject-insightcomgt 2002)

Rational Software Microsoft I Hewlett-Packard Oracle Sterling Software MCI Systemhouse Unisys ICON Computing IntelliCorp i-Logix IBM ObjectTime Platinum Technology Ptech Taskon Reich Technologies Sofieam ldquoUML Summaryrdquo Version 11 Unified Modeling Language 1997

Rational ldquoRational Roserdquo (lthttpwwwrationalcomproductosrosegt 2002)

Rikki Kirzner ldquoAnalysis Modeling and Design Tools Market Forecast and Analysis 2001-2005rdquo Bulletin Published Under Services Application Design and Construction Tools Application Development and Deployment Strategies Documento Nuacutemero 24809 Junio 2001

53

Conceptos generales

[RIM92] Rimrner Steve ldquoGraphical user interface programmingrdquo 423 Paacuteginas

1992

Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language reference manualrdquo Addison Wesley 550 Paacuteginas ISBN 0-201-

ISBN 0-8306-2475-9 ISBN 0-8306-2472-4 (pbk) QA-769-083-R55G

[RUM99]

30998-X QA-7676-D47-R85-1999 1999

[RUM299] Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language user guiderdquo Addisoiz Wesley 482 Paacuteginas ISBN 0-201 -57 168-4 QA-7676-D47-B66-1999 1999

[SMA02] SmartDraw ldquoSmartDrawrdquo (lthttpwwwsmartdrawcomgt 2002)

[SHU88] 9 - Shu Nun C ldquoVisual Programmingrdquo Van Nostrand Reinhold ISBN 0-422- 28014-9 ISBN 0-422-01 164-4 QA-7665-S55 1988

[THI90] Thimbleby Harold ldquoUser Interface Designrdquo Acm press 470 Paacuteginas ISBN 0-201 -41 61 8-2 QA-769U83-T772~- 1990 1990

[WENO2] Wences Diaz MF ldquoModelo de Ingenieriacutea Inversa para la obtencioacuten de disentildeo detallado basado en LEVISSrdquo Tesis (02-0014) 2002

54

Anexo A

Conampuracioacuten de Microsoft Vkua[C++ 6 O

Este anexo indica las configuraciones que se utilizaron para la compilacioacuten de SCUML y s3c

Configuracioacuten de Microsoft Visual c++ 60

Debido a la integracioacuten de los proyectos de InverSOODA e InverDDVi con S3C se cumplioacute con los requisitos previos de ambos proyectos

El compilador usado en el proyecto fue el Microsoft Visual C++ 60

Para el cumplimiento con la funcionalidad de InverSOODA se instaloacute el ANTLR la versioacuten 271 Se descargoacute del sitio l i l l ~ ~ ~ ~ ~ ~ t l ~ l ~ - ~ t - ~ la versioacuten mencionada en un archivo comprimido (en formato zip) Se colocoacute el paquete descomprimido en el directorio ldquoDIANTLR-271 I rdquo

Recomiendo ampliamente que el directorio principal de ANTLR se copie en el directorio raiacutez de cualquier unidad de disco debido a que experimenteacute problemas de compilacioacuten cuando ANTLR no se encontraba en el directorio raiacutez

Io015

Source Browser AlttF12 I u c Ersquo V I

Visual Component Mgnager

- - ~ ~ ~ ~~

P2 Registrar control

A Contenedor de prueba de controles ActiveX

A Usor de objetos OLE y COM

Buacutesqueda de errores

A Y++ MFC Iracer

Customize options

~ - q- ~ Macro

Eecord Quick Macro Cbl+ShiR+R Pay Quick Macro Ctrl+ShiR+P

En el menuacute Tools (Herramientas) seleccione el sub-menuacute Options ltopcionesgt

56

Configuracioacuten de Microsoft Visual C++ 60

En la siguiente ventana de diaacutelogo debe agregar la direccioacuten en donde se encuentra el ANTLR

Agregar la ruta del directorio de ANTLR hasta el subdirectorio

libcpp

Editor I Tabs I Debug I Compatibility 1 Build Dneclolies I a I Chow directories for - Platfolm -

- Directories I x ) 4 jWin32 -] llnclude files

m cancd I

57

Configuracioacuten de Microsoft Visual C t+ 60

Se ha creado una libreriacutea (anrlrliblib) de ANTLR la cual ya estaacute situada en el directorio del proyecto SCUML (ISCUML) y no debe ser movida o eliminada

I

Geneial 1 Debug I CC++ Link I Category

Output file name bebugSCUMLexe

Objectljibrary modules 4 anllrliblib

li Generate debug lnfo r Ignore all defaull lbaries D ~ i n k j n ~ ~ ~ t a n ~ r ~ e n e r ~ ~ ~ mapfile

r Enable psafilrng

Proiec1 Ootionn

pq Cancel 1 Libreriacutea de ANTLR que debe existir 1 I para que se compile correctamente

58

Anexo B

~ u iacute aacute raacutepida de uso deC Sistema S3C

5 Este anexo indica de forma raacutepida la manera de utilizar S3C para crear un diagrama de secuencias de forma automaacutetica

Guiacutea Raacutepida de uso del Sistema S3C i

Para indicar la creacioacuten de un diagrama de secuencias en forma automaacutetica se debe ir a la barra del costado izquierdo y presionar ldquoNuevo Proyecto SCUMLrdquo

I s3c I ~ Nuevo Proyecto SCUML ~ _ _ - I Diagrama de clases ~ Diagrama de secuencias 1 MDI DOC Activo

-

Apareceraacute un documento llamado ldquoSCUMLV en donde el simbolo corresponde a un numero consecutivo iniciando desde 1 (uno)

$ e Despueacutes se presiona ldquoDiagrama de clasesrdquo Habraacute que para indicarle al sistema si se requiere abrir un diagrama de clases existente o realizar uno nuevo

i

iquestAbrir un documento existente

No Cardquo~ear

AI presionar ldquoSirdquo se debe indicar cual es el archivo del diagrama de Clases en el cuadro de diaacutelogo siguiente

~~ - 11dMis documentos rsquo 2 M i P C i lsquo h s sitios de red

I

AI presionar ldquoNordquo en ldquoAbrir un documento existenterdquo se nos mostraraacute un documento vacio para crear un diagrama de clases

60

Guiacutea Raacutepida de uso del Sistema S3C

Para ambas opciones se requiere que los diagramas de Wamier ya se encuentren construidos Y para continuar el proccso se selecciona el documento ldquoSCUMLVrsquo creado al inicio y despueacutes presionar el botoacuten nombrado ldquoDiagrama de secuenciasrdquo localizado en la barra de hcrraiiiicntas del costado izquierdo

Ha iniciado el proceso de construccioacuten del diagrama de secuencias Si no existen errores al terminar el proceso se le mostraraacute un cuadro de diaacutelogo llamado ldquoResultadosrdquo en donde le mostraraacute las llamadas de las que no localizoacute su definicioacuten

- - -

Cancel 1 D e las siguientes llamadas es posible que esten mal escritas o peitenezcan a la libreiia del Lenguaie Verifique ya que no se encontraron sus definiciones

A continuacioacuten se mencionan los posibles errores que finalizan el proceso de la creacioacuten automaacutetica de los diagramas de secuencias en S3C

Cuando no exista un meacutetodo lsquomainrsquo definido en el diagrama de clases

No se encontro el meacutetodo lsquomain()rsquo que inicie la secuencia I A No se puede crear el diagrama de secuencias

p==amp=q

61

Guia Raacutepida de uso del Sistema S3C

Cuando se definan niultiples metodos lsquoinainrsquo en el diagrama de clases

Multiples meacutetodos lsquomainOlsquo Imposible decidir el inicio de secuencia

Aceptar i

Si un meacutetodo definido en Wamier realiza una llamada a lsquomainrsquo se cancelara el proceso

Llamada NO VALIDA al meacutetodo principal main

(iAcp-j(

4 i

CI Y rdquoldquoldquoI i 11 1-T

IZNTRO Gt INFORMACION

62

  • Tabla de Contenido
  • Listado de Figuras
  • Listado de Tablas
  • Notacioacuten
  • Introduccioacuten
  • Capitulo 1 Conceptos Generales
    • 11 Antecedentes
    • 12 Trabajos relacionados
      • 121 Tabla comparativa
        • 13 Definicioacuten del problema
        • 14 Objetivo de la Tesis
          • Objetivos especiacuteficos de la tesis
            • 15 Hipoacutetesis de investigacioacuten
            • 16 Alcances y limitaciones del trabajo de tesis
              • Capitulo 2 Marco Teoacuterico
                • 21 Modelado de sistemas de software
                • 22 Interfaz de usuario (Mecanismos de interaccioacuten)
                • 23 Lenguajes Visuales
                • 24 Programacioacuten orientada a objetos
                • 25 Lenguaje de Modelado Unificado (UML)
                  • Desarrollo de la herramienta
                    • 31 Disentildeo de la Arquitectura
                      • 311 Requisitos (Diagrama de Casos de uso)
                        • 312Modelo Conceptual
                        • 313Diagramas de clases
                        • 32 Elementos de la arquitectura
                          • 321 Microsoft Foundation Class (MFC)
                            • 322Arquitectura Documento Vista
                            • 323Integrando Ambientes en Visual c++
                              • 324 Interfaz de Muacuteltiples Documentos (MDI)
                                • 325Recursos Diaacutelogos Menus y Barras de Herramientas
                                  • 326 Notacioacuten estaacutendar
                                  • 327 Estructura de datos persistencia y recuperacioacuten
                                    • 328Patrones de disentildeo utilizados
                                      • 33 Diagrama de secuencias
                                        • 331Ciclo de vida del software
                                          • 34 Elementos atoacutemicos de la Gramaacutetica
                                            • 341 Representacioacuten visual
                                              • 35 Gramaacutetica desarrollada
                                              • 36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias
                                                  • Capitulo 4 Pruebas y Resultados
                                                    • 41 Recursos teacutecnicos utilizados
                                                    • 42 Descripcioacuten del plan de pruebas
                                                    • 43 Resultados
                                                      • 431 Caso
                                                      • 432 Caso2
                                                      • 433 Caso
                                                          • Conclusiones y trabajos futuros
                                                            • Trabajos futuros
                                                            • Referencias
                                                            • Anexo A Configuracioacuten de Microsoft Visual C+t
                                                              • Figura 11 - Arquitectura de la suite cenidet-UML
                                                              • Figura 21 -Programacioacuten Visual
                                                              • Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de
                                                              • Figura 32 -Diagrama de Casos de Uso para el S3C
                                                              • Figura 33 -Modelo Conceptual
                                                              • Figura 34 - Diagrama de Clases -Control del Diagrama -
                                                              • Figura 35 - Diagrama de Clases - Patroacuten Visitor -
                                                              • Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento
                                                              • Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)
                                                              • Figura 38 -Dialogo Caracteriacutesticas del Objeto
                                                              • Figura 39 -Dialogo Mensaje
                                                              • Figura 3 IO - Menuacute de los Diagramas de Secuencias (estaacutendar)
                                                              • Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias
                                                              • Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)
                                                              • Figura 313 - Serializacioacuten
                                                              • Figura 314 -Modelo de cascada del ciclo de vida del software
                                                              • Figura 41 - Resultado del caso de prueba
                                                              • Figura 42 -Resultado del caso de prueba
                                                              • Figura 43 -Resultado del caso de prueba
                                                              • Figura 44 -Resultado del caso de prueba
                                                              • Tabla 11 - Tabla comparativa
                                                              • Tabla 31 -Prefijos estaacutendar de identificadores
                                                              • Tabla 32 -Elementos atoacutemicos del lenguaje
                                                              • Tabla 41 - Resumen de los resultados de las pruebas realizadas

I Introduccioacuten

L~ tesis se enfoca hacia el desarrollo de sistemas de software centrados en el modelado mediante diagramas de secuencias definidos por el Lenguaje de Modelado Unificado (UML) La investigacioacuten y el producto de la tesis estaacuten inmersos en la etapa del disentildeo de sistemas de software

El producto (prototipo) de la tesis denominado S3C permite la obtencioacuten de diagramas de secuencias de UML tomando como base la informacioacuten de un diagrama de clases y de varios documentos modelados con diagramas de Wamier (disentildeo detallado de los meacutetodos)

Para la elaboracioacuten de los diagramas de clases se hace uso del ambiente existente InverSOODA [HER03] Y para el modelado de los documentos Wamier se ha tomado el ambiente InverDDVi [WEN02] Ambos ambientes visuales son productos de tesis anteriores y se han integrado en un solo prototipo denominado SCUML (Suite cenidet - UML)

(i

S3C realiza un proceso automaacutetico para la obtencioacuten de los diagramas de secuencias en este proceso solo se requiere indicar el diagrama de clases del que se basaraacute La construccioacuten de los diagramas de secuencias en S3C estaacute soportada con una gramaacutetica visual relacional El propoacutesito de la gramaacutetica es validar la construccioacuten de los diagramas de secuencias de UML

En el aacutembito de los diagramas de secuencias de UML no existen aplicaciones comerciales oacute proyectos educativos que se apoyen en una gramaacutetica visual para soportar la construccioacuten de los diagramas de secuencias y tampoco existen aplicaciones que permitan a partir de los diagramas de clases y del disentildeo detallado de los meacutetodos generar automaacuteticamente los diagramas de secuencias

3

Los temas relacionados a esta tesis son Modelado de Sistemas UML Interfaz de Usuario Programacioacuten Orientada a Objetos y Gramaacuteticas Visuales

El capiacutetulo 1 es de conceptos generales se dan a conocer los antecedentes del proyecto los trabajos relacionados hipoacutetesis alcances y limitaciones

En el capiacutetulo 2 se define el marco teoacuterico de la tesis se describen temas como Modelado de sistemas de software disentildeo de sistemas de software modelado visual lenguajes visuales programacioacuten orientada a objetos y lenguaje de modelado unificado

El capiacutetulo 3 describe el desarrollo del ambiente visual se detalla el modelo conceptual la arquitectura y sus elementos los diagramas de secuencias y la gramaacutetica visual relacional que se desarrolloacute

En el capiacutetulo 4 se muestran los casos de pruebas y los resultados obtenidos Y al final se establecen las conclusiones y se dan propuestas para algunos trabajos futuros 3

1

Capiacutetulo I

Conceptos generalis

En eacuteste capiacutetulo se dan a conocer los antecedentes del proyecto de tesis los trabajos relacionados el problema que resolveraacute la hipoacutetesis a comprobar los alcances y limitaciones

Conceptos generales

11 Antecedentes

Actualmente en el cenidet (Centro Nacional de Investigacioacuten y Desarrollo Tecnoloacutegico) se trabaja en la construccioacuten de un conjunto de ambientes visuales para dar soporte al desarrollo con diagramas que define el estaacutendar UML para elaborar sistemas de software de manera completa raacutepida y eficaz El ambiente de modelado principal se ha denominado suite cenidet-UML y su arquitectura general se muestra a continuacioacuten en la Figura 11

Arquitectura de la suite cenidet-UML

Figura 11 Arquitectura de la suite cenidet-UML

a El producto de software resultante de eacutesta tesis lleva por nombre S3C y como se indica en la figura 11 Las tesis directamente relacionadas son InverSOODA [HER03] e

InverDDVi [WEN02]

InverSOODA (Sistema Orientado a Objetos para Disentildeo y Anaacutelisis incluyendo Ingenieriacutea Inversa) es un Ambiente Visual que permite la elaboracioacuten de diagramas de clases de un sistema de software Los diagramas de clases son una vista estaacutetica y en ella se describe las relaciones que existen entre las entidades llamadas clases Cada una de las clases se divide en tres partes nombre de la clase meacutetodos y atributos Este ambiente permite generar el coacutedigo fuente en lenguaje C++ de un diagrama construido y tambieacuten aplicando la ingenieriacutea inversa es posible obtener un diagrama a partir de un coacutedigo en C++ existente

InverDDVi (Disentildeo Detallado Visual incluyendo Ingenieriacutea Inversa) es un Ambiente Visual cuyo objetivo es apoyar en la elaboracioacuten de diagramas de disentildeo detallado utilizando una notacioacuten basada en Warnier Los diagramas de Warnier sirven para describir una secuencia loacutegica de acciones y mediante su simbologiacutea se logra plasmar definiciones de meacutetodos llamadas a otros meacutetodos ciclos comparaciones lectura de informacioacuten y escritura de informacioacuten Este ambiente permite generar el coacutedigo fuente en C de un diagrama construido y tambieacuten aplicando la ingenieriacutea inversa se puede obtener un diagrama de Warnier a partir de un coacutedigo en C que ya exista

i

3

Conceptos generales

12 Trabajos relacionados

Rational Rose de Rafional

Una de las herramientas mas populares del mercado que utiliza la notacioacuten UML y tiene la capacidad de reingenieriacutea de software para integrar sistemas existentes capacidad de mezclar diferentes lenguajes dentro de un mismo modelo ademaacutes de ingenieriacutea inversa sobre los componentes COM (Component Object Model) ActiveX y Java y con soporte de las arquitecturas MicrosoWCOM y CORBAIDL (The Common Object Request Broker Architecture)

Con Rational Rose se puede trabajar en grupo con capacidades para modelar y visualizar procesos de negocios y requerimientos de sistemas Tiene soporte para generar esquemas objetos-relaciones de bases de datos para realizar anaacutelisis de datos Cuenta con el soporte para analizar sitios Web en ASP (Active Server Pages) y JSP (Java Server Pages) Ademaacutes soporta los lenguajes Java CC++ Visual CC++ [RAT02] 9

SI -

Visio de Microsoft

Visio Enterprise 2002 permite crear diferentes tipos de diagramas como son

1 Diagramas de flujo 2 Planos de oficinas 3 Diagramas de aacuterbol 4 Diagramas de organizacioacuten 5 Liacuteneas de tiempo 6 Mapas geograacuteficos y direccionales 7 Diagramas de sitios Web 8 Diagramas de red 9 Diagramas de UML

Tiene las siguientes caracteriacutesticas diagramacioacuten e importacioacuten de servicios de directorio reingenieria de bases de datos disentildeo y documentacioacuten de bases de datos diagramacioacuten de software ingenieriacutea directa e inversa de coacutedigo replicacioacuten exacta por medio de diagramas de equipos y configuraciones de red diagramacioacuten automatizada y ambiente colaborativo

Visio da un conjunto completo de herramientas de diagramacioacuten de redes para planear y documentar claramente las redes existentes Ademaacutes para crear esquemas eleacutectricos mecaacutenicos y de procesos pueden crearse diagramas complejos con facilidad y poco entrenamiento

A las aplicaciones existentes se les puede realizar la ingenieriacutea inversa para obtener el disentildeo y tambieacuten crear nuevos disentildeos Proporciona herramientas para crear diagramas de bases de datos y es posible realizar ingenieriacutea inversa de esquemas existentes en bases de datos cliente servidor como SQL Server IBM Oracle y otros [MIC02]

4

Conceptos generales

e JVision 21 de Object Insight

JVision permite en la ingenieriacutea directa la creacioacuten de clases variables y meacutetodos con lo cual genera plantillas de coacutedigo para programadores en Java Los diagramas se pueden exportar a HTML La documentacioacuten puede integrarse con JavaDoc de Sun JVision da el soporte para ingenieriacutea inversa para el lenguaje Java

Se pueden crear todos los diagramas definidos por UML en los diagramas de secuencias da la oportunidad de dibujar clases liacuteneas liacuteneas de tiempo de vida y marca de destruccioacuten de objetos ofrece ademaacutes el soporte para las acciones de llamada regresar valor enviar accioacuten crear accioacuten y eliminar accioacuten [OBJO2]

MagicDraw 6 de No Magic

Es una herramienta CASE con soporte para trabajo en grupo Esta disentildeado para analistas 6 de negocios analistas de software programadores ingenieros de calidad y

documentadores Esta aplicacioacuten provee la capacidad para crear los diagramas definidos por UML (soporta UML 14) Cuenta con el soporte de ingenieriacutea inversa y generacioacuten de coacutedigo para C++ C Java y CORBNIDL Tiene integracioacuten con NetBeans se actualiza automaacuteticamente disponible en aacuterabe portugueacutes franceacutes italiano ingles (US) alemaacuten espantildeol japoneacutes y coreano

Tiene la caracteriacutestica de soportar la adaptacioacuten de los elementos a colores que el usuario defina Los diagramas pueden exportarse a imaacutegenes JPG EMF WMF EPS y DXF En los diagramas de secuencia da oportunidad de definir roles textos notas mensajes de varios tipos al mismo objeto recursivo ademaacutes de la relacioacuten a las notas y las liacuteneas de vida Es posible guardar los diagramas como imaacutegenes de mapas de bits o vectores Mantiene ademaacutes una vista pequentildea a escala del diagrama completo [NoA402]

e

SmariDraw Professional Plus de SmariDraw

Todos los dibujos pueden agregarse en las aplicaciones de Microsoft como son Word Excel PowerPoint Contiene maacutes de 50000 (1000 en la versioacuten estaacutendar) formas predefinidas ejemplos y plantillas Los diagramas pueden ser exportados a imaacutegenes WMF BMP JPG GIF TIF y otros Incluye un convertidor de archivos de VISIO

Con esta herramienta es posible crear diagramas de flujo diagramas de bloque diagramas de flujos de datos diagramas de organizacioacuten aacuterboles de decisioacuten disentildeo de redes Gantt diagramas de flujo de procesos diagramas de administracioacuten de calidad diagramas eleacutectricos diagramas mecaacutenicos diagramas quiacutemicos liacuteneas de tiempo planes de espacio posters mapas formas y tambieacuten da soporte para UML es posible dibujar objetos actores activacioacuten de los objetos mensaje mensaje de retorno mensaje asiacutencrono mensaje con tiempo liacutenea de vida del objeto marca de destruccioacuten del objeto y ciclos (descrito con un rectaacutengulo y una condicioacuten de salida) [SMA02]

5

Conceptos generales

Producto Soporta Diagramas de UML Secuencias

Creacioacuten automaacutetica de diagramas de

El Rational Rose El Visio

Jvision

Magic D r a w

a a El Fl El a El El

I ~

I ~

I -

Ambiente de modelado de

a a SmartDraw El

Tabla I Tabla comparativa

Todas las herramientas descritas anteriormente cuentan con caracteriacutesticas sobresalientes para el disentildeo y modelado de sistemas de software pero ninguna de ellas genera automaacuteticamente los diagramas de secuencia con base en los diagramas de clases y el disentildeo detallado de los meacutetodos asiacute tambieacuten ninguna de ellas realiza un caacutelculo de los canales de comunicacioacuten abiertos entre las clases que conforman el sistema

iexcla la A UML Editor in Java

13 Definicioacuten del problema

El modelado de sistemas utilizando el estaacutendar de UML en diversos productos comerciales prototipos de laboratorio elaborados en universidades y centros de investigacioacuten atienden la perspectiva baacutesica de la abstraccioacuten general del modelo esto es documentar el modelo del sistema que se requiere sin atender puntos importantes tales como

La generacioacuten automaacutetica de los diagramas de secuencias La correccioacuten de inconsistencias en los diagramas al crearlos de forma separada

El

6

sistemas de software

secuencias utilizando diagramas de a a a

Conceptos generales

Se hace necesaria la creacioacuten de un ambiente visual que permita obtener de forma automaacutetica los diagramas de secuencias en base a los diagramas de clases y al disentildeo detallado de los meacutetodos para facilitar la documentacioacuten la generacioacuten de coacutedigo y el mantenimiento de los sistemas

La obtencioacuten de los diagramas de secuencias estaacute basada en los Diagramas de Clases definidos por UML que son construidos con la herramienta InverSOODA junto con el disentildeo detallado de los meacutetodos construidos con Diagramas de Wamier elaborados con la herramienta InverDDVi

En el estaacutendar UML para la construccioacuten de los diagramas no existe actualmente una sintaxis expliacutecita definida solo existe impliacutecitamente en el uso de los elementos del diagrama por lo que se ha descrito una gramaacutetica visual de tipo relaciona1 como soporte para la construccioacuten de los Diagramas de Secuencias

n ai 14 Objetivo de la Tesis

Construir un ambiente visual que permita al usuario obtener el diagrama de secuencias de manera automaacutetica

141 Objetivos especiacuteficos de la tesis Crear una gramaacutetica que soporte la construccioacuten del diagrama de secuencias Construir de forma automaacutetica el diagrama de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodos

15 Hipoacutetesis de investigacioacuten

Es posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodos

16 Alcances y limitaciones del trabajo de tesis

Los alcances de la tesis se especifican a continuacioacuten

Se elaboroacute la arquitectura del sistema Se definioacute la gramaacutetica de soporte Se desarrolloacute la interfaz en Visual C++ haciendo uso de las MFC Se interactuacutea con los diagramas de clases de InverSOODA Se interachiacutea con el disentildeo detallado de los meacutetodos realizados por InverDDVI Se genera el diagrama de secuencias de forma automaacutetica

7

Conceptos generales

Limitaciones de la tesis

0 No se genera coacutedigo

La investigacioacuten se limita a los diagramas de clases para la vista estaacutetica de los sistemas de software y a los diagramas de Warnier para la vista dinaacutemica de los meacutetodos El ambiente no trabaja en red

No se modifican los archivos de InverSOODA No se modifican los archivos de InverDDVI No se recuperan diagramas de secuencias a partir de coacutedigo legado

4

8

Capiacutetulo 2

Narc0 teoacuterico

En eacuteste capiacutetulo se describen los temas usados para el desarrollo de la tesis iquestQue son los modelos iquestEn que parte del proceso de Ingenieriacutea del Software se usan los modelos o el modelado Se estudia la interfaz de usuario los lenguajes visuales y las gramaacuteticas visuales Se describe el Lenguaje de Modelado Unificado (UML) ademaacutes de la programacioacuten orientada a objetos por ser este paradigma en donde se enfoca este trabajo

Marco teoacuterico

21 Modelado de sistemas de software

un modelo es una abstraccioacuten de algo con el propoacutesito de entenderlo antes de construirlo El modelo omite detalles no esenciales haciendo maacutes faacutecil su manipulacioacuten que la entidad original [BLA98] Un modelo es la simplificacioacuten de la realidad [RUM99] Los propoacutesitos de los modelos son

Probar una entidad fisica antes de construirla Establecer mejor comunicacioacuten con los clientes Visualizar el problema y el sistema desde una mejor perspectiva Reducir la complejidad [BLA98] Capturar y precisar requerimientos y conocimiento del dominio Pensar acerca del disentildeo del sistema Capturar decisiones de disentildeo en una fomia separada que cambia a partir de los requerimientos Generar productos Organizar buscar filtrar obtener examinar y editar informacioacuten acerca de un sistema Explorar muacuteltiples soluciones econoacutemicas Manejar sistemas complejos [RUM99]

El modelado es una probada y bien aceptada teacutecnica de Ingenieriacutea de Software [RUM99] El modelado es parte central de todas las actividades que conducen a la produccioacuten de buen software Se construyen modelos para comunicar la estructura deseada y revisar el comportamiento de nuestro sistema Se construyen modelos para visualizar y controlar la arquitectura del sistema Se construyen modelos para comprender mejor el sistema que estamos construyendo muchas veces descubriendo oportunidades para la simplificacioacuten y la reutilizacioacuten Se construyen modelos para controlar el riesgo [BOO99] La razoacuten fundamental por la que modelamos es porque nosotros construimos modelos que nos ayudan a entender mejor el sistema que estamos desarrollando [RUM99]

El modelado nos permite [RUM99] 1 Visualizar como es el sistema o como queremos que sea 2 Especificar la estructura del sistema 3 Plantear nuestras guiacuteas en la construccioacuten delsistema 4 Documentar las decisiones que hemos tomado

En las etapas del desarrollo del software el modelado es usado en el disentildeo el disentildeo del sistema es la primera etapa en donde se da la aproximacioacuten baacutesica de la solucioacuten al problema seleccionado ademaacutes se decide por la estructura (arquitectura del sistema) y el estilo de la solucioacuten

La arquitectura del sistema provee el contexto sobre el cual se tomaraacuten decisiones mas detalladas en las etapas subsecuentes del disentildeo [BLA98] En el disentildeo modelamos el sistema y encontramos su forma (incluida la arquitehra) para que soporte todos los 3 -

10

Marco teorico

i

4 -I

requisitos -incluyendo los requisitos no funcionales y otras restricciones- que se le suponen [JAC99] Los propoacutesitos del disentildeo son

Adquirir una comprensioacuten en profundidad de los aspectos relacionados con 10s requisitos no funcionales y restricciones relacionadas con los lenguajes de programacioacuten componentes reutilizables sistemas operativos tecnologiacuteas de distribucioacuten y concurrencia tecnologiacuteas de interfaz de usuario tecnologiacuteas de gestioacuten de transacciones etc Crear una entrada apropiada y un punto de partida para actividades de implementacioacuten subsiguientes capturando los requisitos o subsistemas individuales interfaces y clases Ser capaces de descomponer los trabajos de implementacioacuten en partes mas manejables que puedan ser llevadas a cabo por diferentes equipos de desarrollo teniendo en cuenta la posible concurrencia Capturar las interfaces entre los subsistemas Esto ayuda cuando reflexionamos sobre la arquitectura y cuando utilizamos interfaces como elementos de sincronizacioacuten entre diferentes equipos de desarrollo Ser capaces de visualizar y reflexionar sobre el disentildeo utilizando una notacioacuten comuacuten Crear una abstraccioacuten independiente de la implementacioacuten del sistema en el sentido de que la implementacioacuten es un refinamiento directo del disentildeo que rellena lo existente sin cambiar la estructura Esto permite la utilizacioacuten de tecnologiacuteas como la generacioacuten de coacutedigo y la ingenieriacutea de ida y vuelta entre el disentildeo y la implementacioacuten [JAC99]

22 Interfaz de usuario (Mecanismos de interaccioacuten)

El crecimiento de las computadoras personales vendidas en los ~ O rsquo S lanzoacute con fuerza el ldquofaacutecil de usarrdquo como una de las caracteriacutesticas mas importante de un producto de computadora

Las interfaces graacuteficas de usuario no son nuevas se pueden encontrar en las paredes de cuevas al sur de Francia en las piraacutemides de Egipto y en las paredes de muchas ciudades [iUM92] Para el usuario de un sistema interactivo la comunicacioacuten es tan importante como la computacioacuten Para los usuarios regularmente la interfaz es el sistema [HIX93]

Disentildeo de Interfaz Seguacuten Hackos [HAC98] las interfaces estaacuten en todo donde se trabaja con

o Controles en productos de hardware o Etiquetas y sentildeales en el hardware o Pequentildeas pantallas de cristal liquido en maacutequinas de cualquier tipo o Pantallas para aplicaciones de software para terminales de computadoras centrales

Marco teoacuterico

o pantallas para aplicaciones de software en computadoras Personales sistemas operativos como Windows OS2 DOS Macintosh U n b Y Otros

0 Paacuteginas de un sitio WEB 0 Sistemas de ayuda y manuales en-liacutenea 0 Tutoriales incrustados y otros tipos de soporte de funcionamiento O Esquemas de formas y otros documentos

una interfaz es el medio con el cual los usuarios interactuacutean con el producto 0

sistema para lograr SUS objetivos

Interfaz Usable

Para que una interfaz sea usable debe ser transparente y darles a los usuarios la capacidad de lograr cumplir sus metas de forma efectiva y eficiente

Los beneficios presentados en el uso de las interfaces de usuario [TH190] Disfrutar el sistema El usuario disfruta trabajar con un sistema que cuenta con una interfaz bien disentildeada y que le da la funcionalidad y acceso a los recursos de una manera clara y sencilla Proporciona nuevas habilidades Elimina al usuario concentrarse en acciones que la propia interfaz y el sistema hacen dando como resultado que el usuario solo se concentre en lo importante del trabajo Delegacioacuten de tareas La interfaz de usuario permite al usuario no conocer los detalles de la tarea esto es la computadora atiende los detalles de las tareas mientras que el usuario se concentra en asuntos de maacutes alto nivel Seguridad El usuario no necesita estar en lugarespeligrosos para hacer su trabajo

Se da la mayor posibilidad para que el usuario tenga acceso al conocimiento utilizando un sistema interactivo Haciendo las cosas a la primera Las tareas se ejecutan en un orden correcto definido lo que da como resultado un trabajo bien terminado sin necesidad de repetir evitando asiacute altos costos Computando LOS usuarios pueden calcular datos sin necesidad de conocer el proceso para obtener los resultados

Desarrollo

El disentildeo de interfaz es un negocio bastante dificil Eacuteste combina dos complicadas disciplinas psicologiacutea y ciencias de la computacioacuten Estas disciplinas tienen un fondo cultural muy diferente la psicologiacutea atiende a la gente (comprensioacuten y entendimiento) las ciencias computacionales a las maacutequinas (matemaacuteticas y precisioacuten) El disentildeo de las buenas interfaces requiere que estas dos perspectivas esteacuten unidas [THi90]

Hackos dice que las interfaces dan simplicidad y elegancia al trabajo necesario y a la vida e los usuarios Si no es obvio al usuario pero es raacutepida para aprender [HAC98] ademaacutes define caracteriacutesticas comunes de las interfaces usables

o Hacen que el flujo de trabajo sea familiar o confortable o Soportan el estilo de aprendizaje de los usuarios

12

Marco teoacuterico

Visualizacioacuten de Entrenamiento visual Para controlar Soportar interaccioncs Programar con informacioacuten visual visuales expresiones visuales

o Compatibles con los ambientes de trabajo de los usuarios o Se extienden sobre un concepto de disentildeo que es familiar al usuario o Tienen consistencia de presentacioacuten que los hace parecer maacutes confiable y faacuteciles de

aprender o Usan lenguaje y figuras familiares al usuario o faacuteciles de aprender

Datos o informacioacuten acerca de datos

23 Lenguajes Visuales

Los lenguajes visuales son un nuevo paradigma para expresar los sistemas computacionales Ellos ofrecen la posibilidad de manipular directamente los objetos Un lenguaje visual consiste de sentencias visuales Para lenguajes visuales basados en iacuteconos cada sentencia visual es un arreglo espacial de objetos O iacuteconos graacuteficos [CHA90]

Un lenguaje visual es concebido como una coleccioacuten de figuras obtenidas por un arreglo graacutefico de objetos en dos o maacutes dimensiones Los lenguajes visuales pueden ser modelados sintaacutecticamente a traveacutes de un vocabulario un conjunto de relaciones usadas para componer las figuras y un conjunto de reglas describiendo las figuras pertenecientes al lenguaje Los objetos graacuteficos de un vocabulario de un lenguaje visual se caracterizan por contar con un conjunto de atributos Los atributos de un objeto graacutefico pueden ser atributos graacuteficos atributos sintaacutecticos y atributos semaacutenticos [MAR98]

Un lenguaje de programacioacuten visual puede ser informalmente definido como un lenguaje el cual usa algunas representaciones visuales [SHV88]

Programa ylo Disentildeo de Lenguajes de programacioacuten visual ejecucioacuten software Diagramas iconos Formas

Programacioacuten Visual [SHU88]

Gramaacuteticas para la especificacioacuten de lenguajes visuales [MAR98]

a) Gramaacuteticas texfuales generalizadas Este tipo de gramaacutetica provee una adaptacioacuten apropiada de la concatenacioacuten de siacutembolos para dos dimensiones Su principal ventaja es que conservan los elementos teoacutericos de las gramaacuteticas textuales y los eficientes algoritmos de anaacutelisis de eacutestos uacuteltimos Su principal desventaja es que eacutestas gramaacuteticas no son tan poderosas y soacutelo pueden especificar clases restringidas de lenguajes visuales

13

Marco teorico

b) Meacutetodos basados en gramaacuteticas de grafos Un ejemplo de este tiPo de gramaacuteticas son las gramaacuteticas de red Las oraciones generadas con gramaacuteticas de red son grafos dirigidos con siacutembolos en los nodos Estos grafos son llamados redes Una produccioacuten de eacuteste tipo de gramaacuteticas es de la siguiente forma

a - t p E

donde a y p son redes y E es una forma de conectar a p cuando a es conectada a otra red anfitriona

La mayor desventaja es que las gramaacuteticas de red no han probado ser totalmente uacutetiles para la especificacioacuten de gramaacuteticas arbitrarias por la complejidad para rescribir grafos y al hecho de que no todo lenguaje visual estaacute compuesto exclusivamente por grafos

C) Gramaacuteticas de multiconjuntos de atributos En estas gramaacuteticas las producciones rescriben conjuntos o multiconjuntos de siacutembolos que tienen atributos con informacioacuten sobre geometriacutea o semaacutentica La reescritura se controla con restricciones sobre los atributos de los siacutembolos en el lado derecho de las producciones

Un ejemplo de eacutestas gramaacuteticas es la Gramaacutetica Coordinada que especifica notacioacuten matemaacutetica de dos dimensiones En esencia las producciones en una gramaacutetica coordinada n-coordinada libre del contexto tienen la siguiente forma

A -t a donde C F

Todos los siacutembolos de eacuteste tipo de gramaacutetica tienen n atributos geomeacutetricos A es un siacutembolo no terminal a es una cadena no vaciacutea de siacutembolos C es una restriccioacuten sobre los atributos de los siacutembolos en a y F es una expresioacuten que computa los atributos de los siacutembolos de A en teacuterminos de los atributos de los siacutembolos en a no importando el orden de los siacutembolos en a

d) Gramaacuteticas PosicionaZes Las gramaacuteticas posicionales son un formalismo para la definicioacuten e implementacioacuten de lenguajes visuales las gramaacuteticas posicionales extienden naturalmente a las gramaacuteticas libres de contexto Una gramaacutetica libre de contexto posicional PG es una six-tupla (N T S P POS PE) donde

N es un conjunto finito no vaciacuteo de siacutembolos no terminales T es un conjunto finito no vaciacuteo e siacutembolos terminales con N n T = $I S E N es el siacutembolo no terminal de inicio P es un conjunto finito de producciones POS es un conjunto finito de identificadores de relacioacuten binaria PE es un evaluador pictoacuterico

14

Marco teorico

Cada produccioacuten en P tiene la siguiente forma

A -+ X I R I X R2 X ~ I Rm1 xm A

e) Gramaacuteticas de Relacioacuten de siacutembolos Eacuteste es un formalismo sintaacutectico para describir un lenguaje visual donde cada oracioacuten dentro del lenguaje se representa como un conjunto de objetos visuales y un conjunto de relaciones entre objetos

El alfabeto de siacutembolos Vt y el conjunto de relaciones entre siacutembolos Vr una oracioacuten de relacioacuten de siacutembolos w sobre Vt y Vr es un par ( M R) donde

M es un conjunto de elementos-s (v i) con v E Vt y i es un nuacutemero natural R es un conjunto de elementos-r de la forma r (Xi Yj) con Xi Yj E M r E Vr y una relacioacuten r esta contenida entre Xi y Yj

Una gramaacutetica de relacioacuten de simbolos es el conjunto de seis elementos G = (Vn Vt Vr S P R) donde Vn es un conjunto de siacutembolos no terminales Vt es un conjunto de siacutembolos terminales Vr es un conjunto de relaciones entre siacutembolos S es el siacutembolo inicial y P es un conjunto de reglas de reescritura (producciones de elementos-s)

f) Gramaacuteticas relacionales Este tipo de gramaacutetica pertenecen a las gramaacuteticas libres de contexto

La gramaacutetica relaciona1 (RGrsquos) es una 6-tupla G (N C S R Attr P) donde

N C S R Attr P

es un conjunto finito de siacutembolos no terminales es un conjunto de siacutembolos terminales es un siacutembolo distinguido en N llamado siacutembolo inicial es un conjunto finito de siacutembolos de relacioacuten es un conjunto finito de siacutembolos de atributos es un conjunto de producciones de la forma A-gt apF donde A E N a E (nlo)+ Donde n E N cr E E

8 Es un conjunto de relaciones de la forma (r x y) donde r E R y xy son enteros que hacen referencia a un miembro de a y tambieacuten una expresioacuten de la forma (a i) donde a E Attr e i es un entero que hace referencia a un miembrode a

F Es un conjunto de declaraciones de asignacioacuten de caracteriacutesticas de la forma (a O)=x donde a E Attr y x es un entero que hace referencia a un miembro de a o a una expresioacuten de la forma (a i)

15

Marco teoacuterico

24 Programacioacuten orientada a objetos

L~~ meacutetodos orientados a objetos organizan la informacioacuten Y el procesamiento que manipula esta informacioacuten de acuerdo a los objetos delrsquomundo real que la informacioacuten describe [BRO97l

Beneficios de las teacutecnicas orientadas a objetos [BR097] Estabilidad del sistema Mantenibilidad Componentes reusables Confiabilidad Accesibilidad de los datos Participacioacuten del usuario

Seguacuten Graddy Booch la programacioacuten orientada a objetos es ldquoun meacutetodo de implementacioacuten en el que los programas se organizan como colecciones cooperativas de objetos cada uno de los cuales representan una instancia de alguna clase y cuyas clases son todas miembros de una jerarquiacutea de clases unidas mediante relaciones de herenciardquo [JOY 981

Programacioacuten orientada a objetos esencialmente significa programacioacuten usando objetos [JAC93] Los lenguajes orientados a objetos deben soportar los siguientes conceptos

Objetos Abstraccioacuten de datos Encapsulamiento Clases e Instancias Herencia entre clases Polimorfismo

Las propiedades fundamentales de la Programacioacuten Orientada a Objetos son

a Abstraccioacuten Son ideas conceptos y propiedades que se describen en forma general eliminando los detalles Es una estructura de datos y los meacutetodos que manipulan a esos datos

b Encapsulamiento Son las fronteras propias de un objeto bien definidas las cuales protegen los detalles de su representacioacuten interna

c Ocultacioacuten de la informacioacuten Es la propiedad en la que los objetos pueden hacer uso para impedir que otros objetos los usuarios o incluso los programadores conozcan coacutemo estaacute distribuida la informacioacuten

d Herencia Es la propiedad que tiene una clase para heredar atributos y comportamiento a otras clases

e Polirnorfismo Es la propiedad que permite que una entidad pueda cambiar a diferentes formas efectuaacutendose de manera dinaacutemica en tiempo de ejecucioacuten

16

Marco teoacuterico

t

Clases Es la especificacioacuten de una familia de objetos es la declaracioacuten de un tipo de objetos Tambieacuten se dice que una clase es la descripcioacuten de un conjunto de objetos con un comportamiento similar y que esta compuesta de Datos (o atributos) y Meacutetodos o (rutinas acciones operaciones)

Objeto Un objeto es una entidad en la cual se almacenan datos y los meacutetodos o funciones que controlan dichos datos Un objeto es una abstraccioacuten de alguna cosa del mundo real que contiene datos que lo describen y operaciones que solo tienen acceso a esos datos [BR097l Los elementos de los que esta conformado un objeto son

a Las relaciones permiten que el objeto se integre en la organizacioacuten b Las propiedades son los datos que caracterizan el estado de un objeto distinguiendo

asiacute a un objeto determinado de los restantes que forman parte de la misma organizacioacuten

c Los meacutetodos son las operaciones que pueden realizarse sobre la estructura del objeto es decir las acciones que cambian el estado de un objeto y que el objeto es capaz de ejecutar a traveacutes de mensajes y que tambieacuten pone a disposicioacuten de sus descendientes a traveacutes de la herencia

Mensajes Son solicitudes para que se lleve a cabo la operacioacuten indicada y se produzca un resultado

Las razones principales para introducir la tecnologiacutea de objetos son los beneficios de dicha tecnologiacutea

Aumento de la fiabilidad Aumento de la productividad del desarrollador Desarrollo maacutes raacutepido Mejor calidad maacutes alta

Incremento en escalabilidad Mejores estructuras de informacioacuten Incremento de adaptabilidad Reduccioacuten del coacutedigo fuente

Mantenimiento maacutes faacutecil y reduccioacuten de costo

Los elementos de reutilizacioacuten son las clases y objetos

25 Lenguaje de Modelado Unificado (UML)

UML (Unified Modeling Language por sus siglas en ingleacutes Lenguaje de Modelado Unificado) es un lenguaje de modelado visual de propoacutesito general que es utilizado para especificar visualizar construir y documentar las partes de un sistema de software El lenguaje estaacute basado en un pequentildeo nuacutemero de conceptos centrales que la mayoriacutea de los desarrolladores de tecnologiacutea orientada a objetos pueden aprender y aplicar faacutecilmente [RUM99]

17

Marco teoacuterico

y UML Pasado Presente y Futuro

L~~ lenguajes de modelado orientado a objetos aparecieron a mediados de 10s 70rsquos Varias teacutecnicas influenciaron estos lenguajes El nuacutemero de lenguajes de modelado incrementoacute desde menos de 10 hasta maacutes de 50 entre 1989 y 1994 Muchos modeladores teniacutean problemas para encontrar un lenguaje de modelado que satisficiera todas sus necesidades Notablemente aparecioacute Boochrsquo93 y la evolucioacuten continuoacute a OMT y Fusioacuten

OOSE (Object-Oriented Software Engineering) estaacute enfocado a la ingenieriacutea de negocios y anaacutelisis de requerimientos dando un excelente soporte orientado a casos de uso OMT-2 es especialmente expresivo para anaacutelisis y sistemas de informacioacuten de datos grandes Boochrsquo93 fue particularmente expresivo para el disentildeo y fases de construccioacuten de proyectos y popular para aplicaciones de ingenieriacutea intensiva

Grady Booch y Jim Rumbaugh iniciaron el desarrollo de UML en 1994 al unificar sus meacutetodos independientes Booch y OMT En 1995 Ivar Jacobson se unioacute a Racional eacutesta unioacuten logroacute que el meacutetodo OOSE se incorporara La unificacioacuten establecioacute que debiacutean activar el modelado de sistemas utilizando conceptos orientados a objeto asiacute como crear un lenguaje usable tanto para las maacutequinas como para los humanos

A

Muchas organizaciones se unieron al consorcio UML y dedicaron recursos al trabajo hacia el fortalecimiento de la definicioacuten de UML Esta colaboracioacuten produjo un lenguaje de modelado expresivo poderoso y generalmente aplicable En la forma actual de UML se espera que sea base de muchas herramientas incluidas las de modelado visual simulacioacuten y ambientes de desarrollo

R UML es abierto y no-propietario y aunque define un lenguaje preciso no es barrera para futuras mejoras en conceptos de modelado Se usan muchas teacutecnicas de punta pero se esperan teacutecnicas adicionales que influencien futuras versiones de UML puede ser extendido sin redefinir el nuacutecleo

c

Mientras el rehuacuteso basado en componentes se ha favorecido ampliamente cada vez mas esto no significa que las teacutecnicas basadas en componentes reemplazaraacuten las teacutecnicas orientadas a objetos Hay solo sutiles diferencias entre la semaacutentica de componentes y clases [ALC03]

Un opaco rendimiento caracterizoacute el mercado de anaacutelisis modelado y disentildeo en el 2000 en su transicioacuten de las viejas herramientas CASE (Computer Aided Software Engineering) a algo maacutes dinaacutemico y mejor adaptado para satisfacer las necesidades de los desarrolladores para el cambio raacutepido en los ambientes de negocio

El mercado de anaacutelisis modelado y disentildeo lograraacute obtener un crecimiento positivo en varios de los siguientes antildeos por varias razones El mercado seraacute manejado principalmente por la necesidad de desarrolladores a obtener aplicaciones para lanzarse al mercado raacutepidamente asiacute tambieacuten por el intereacutes creciente y uso de una nueva especie de herramienta y por el intereacutes creciente de los desarrolladores en usar UML reglas de negocios y adaptadores de componentes para construir aplicaciones [RIKUI]

z -

18

Marco teoacuterico

UML se ha hecho el estaacutendar para los desarrollos de modelado de negocios administracioacuten de requerimientos anaacutelisis y disentildeo programacioacuten y pruebas Los objetivos primarios de UML en el disentildeo [RAT97j

o Dar a los usuarios un lenguaje visual expresivo de modelado listo para usarse para que puedan desarrollar y cambiar los significados de sus modelos

o Suministrar mecanismos de extensibilidad y especializacioacuten para extender los conceptos centrales

o Ser independiente de lenguajes de programacioacuten particulares y procesos de desarrollo

o Impulsar el desarrollo de las herramientas Orientadas a Objeto en el mercado o Soportar conceptos de desarrollo de alto nivel como colaboracioacuten marcos de

componentes reutilizables patrones y componentes o Integrar las mejores praacutecticas

9 El aacutembito de UML

UML es un lenguaje para especificacioacuten construccioacuten visualizacioacuten y documentacioacuten de artefactos de un sistema de software UML es la fusioacuten de los conceptos de Booch OMT y OOSE El resultado es un simple comuacuten y ampliamente usado lenguaje de modelado para usuarios de estos y otros meacutetodos UML se enfoca en un lenguaje de modelado estaacutendar no en un proceso estaacutendar los autores de UML recomiendan un proceso de desarrollo manejado por casos de uso de arquitectura central iterativo e incremental [iiquest4T97l

Para la definicioacuten de sistemas de software en UML se definen diagramas Un diagrama es la representacioacuten graacutefica de un conjunto de elementos este se visualiza la mayoriacutea de las veces como un grafo conexo de nodos (elementos) y arcos (relaciones) Los diagramas se dibujan para visualizar un sistema desde diferentes perspectivas de forma que un diagrama es la proyeccioacuten de un sistema uumlML incluye nueve diagramas [B0099]

4 -

I Diagrama de clases 2 Diagrama de objetos 3 Diagrama de casos de uso 4 Diagrama de secuencias 5 Diagrama de colaboracioacuten 6 Diagrama de estados 7 Diagrama de actividades 8 Diagrama de componentes 9 Diagrama de despliegue

Diagramas de secuencias Un diagrama de secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten comportamiento

Un diagrama de secuencias muestra un conjunto de mensajes acomodados en una secuencia de tiempo eacuteste diagrama muestra la interaccioacuten en un esquema de dos - dimensiones [RUM99]

19

Marco teoacuterico

Y -

Un diagrama de secuencia es un diagrama de interaccioacuten que resalta la ordenacioacuten temporal de los mensajes Un diagrama de secuencia presenta un conjunto de objetos y los mensajes enviados y recibidos por ellos Los objetos suelen ser instancias (con nombre o sin nombres) de clases pero tambieacuten pueden representar instancias de otros elementos tales como colaboraciones componentes y nodos Los diagramas de secuencia se utilizan para describir la vista dinaacutemica de un sistema [B0099]

Usar los diagramas de secuencia es mostrar la secuencia que existe en un caso de uso [RUM 991

Los diagramas de secuencia tienen dos dimensiones Una dimensioacuten que representa el tiempo Otra dimensioacuten que representa los diferentes objetos que participan en la secuencia de eventos requeridos para completar el propoacutesito [MOuuml98]

El principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildea las interacciones de los objetos [DAN02]

20

Capiacutetulo 3

DesawoCCo de Ia herramienta

En este capiacutetulo se describe el desarrollo del Ambiente Visual Se describe el modelo conceptual del sistema la arquitectura asiacute como tambieacuten los elementos que componen la Arquitectura Se estudian los Diagramas de Secuencias de UML y algunos Patrones de Disentildeo de los que se hace uso para el mejor desarrollo del sistema Se describe a detalle la Gramaacutetica Visual Relaciona1 utilizada para el de Ambiente de desarrollo

I CENIOET 1FNTRO DE INFORMACION

Desarrollo de la herramienta

t i i

Actualmente existe en el cenidet un Ambiente Visual de Modelado de Clases llamado InverSOODA este Ambiente Visual tiene la capacidad de realizar la generacioacuten automaacutetica de coacutedigo de las clases en C++ a partir del modelo especificado Ademaacutes se puede realizar la Ingenieria Inversa de un coacutedigo legado para obtener el modelo de clases Aunado a este trabajo existe el Ambiente Visual denominado InverDDVi con el cual se puede realizar el Disentildeo Detallado de los Meacutetodos de las Clases con diagramas de Warnier Asiacute tambieacuten es posible obtener el modelo aplicando la Ingenieriacutea Inversa a un coacutedigo legado en C++

Ambos trabajos son retomados en este proyecto para la automatizacioacuten en la obtencioacuten de los Diagramas de Secuencias de UML La figura 31 muestra el modelo propuesto de ingenieriacutea directa

Extraer informacioacuten del diagrama de

rsquo rsquo

Diagrama de 11 clases I o

detallado de

detallado de

o meacutetodos

i ir---- Construir el

secuencias i

Modelo de Ingenieriacutea I directa automaacutetica

I

Figura 31 Modelo de Ingenieria Directa Autombtica de los Diagramas de Secuencias

Para la construccioacuten automaacutetica de un diagrama de secuencias se toma como base a un diagrama de Clases El modulo ldquoExtraer informacioacuten del diagrama de Clasesrdquo sirve para obtener el nombre y los meacutetodos descritos en cada uno de las clases que existan en el diagrama de Clases

22

Desarrollo de la herramienta

Con base en la informacioacuten que se tiene se abren los archivos correspondientes a los diagramas de Warnier El proceso que se emplea sobre cada uno los diagramas de Warnier llamado ldquoExtraer informacioacuten de los disentildeos detallados de los meacutetodosrdquo sirve para recopilar el conjunto de las llamadas de cada meacutetodo definido

En el siguiente paso (ldquoReconocer llamadas a meacutetodosrdquo) consiste en identificar si los meacutetodos que estaacuten descritos en los diagramas de Warnier tambieacuten lo estaacuten en el diagrama de Clases correspondiente

El paso ldquoConstruir los diagramas de secuencias automaacuteticamenterdquo realiza una validacioacuten de los meacutetodos definidos en los diagramas de Clases con los meacutetodos definidos en los diagramas de Warnier Este paso crea una estructura de datos con la secuencia de las llamadas y la recorre para crear los objetos y los mensajes en el diagrama de secuencias

AI terminar la creacioacuten automaacutetica del diagrama de secuencias se dispone de la r opcioacuten de guardar

31 Disentildeo de la Arquitectura

Para definir los procesos que el sistema va a realizar es necesario llevar a cabo un anaacutelisis de requisitos los cuales pueden ser expresados mediante diagramas de Casos de Uso Los Casos de Uso son una descripcioacuten textual narrativa de los procesos de un sistema

311Requisitos (Diagrama de Casos de uso)

Los casos de uso en realidad no son un artefacto de anaacutelisis orientado a objetos estos describen simplemente procesos y pueden ser igualmente efectivos en un proyecto tecnoloacutegico no orientado a objetos Son usados en un paso preliminar a la descripcioacuten de requerimientos de un sistema [LAR971 La Figura 32 muestra el diagrama de casos de uso que especifica al S3C

9

S3C (Diagramas de Secuencias)

usuario I Modelado de

I

Figura 32 Diagrama de Casos de Uso para el S3C

23

Desarrollo de la herramienta

Descripcioacuten de los Casos de Uso

Caso de Uso ldquoDiagramas de Secuenciasrdquo Se inicia cuando el actor ldquousuariordquo solicita la creacioacuten de un Diagrama de Secuencias Se establece la forma de la construccioacuten automaacutetica de los diagramas de secuencias de UML Se hace uso del Modelado de Clases y del Modelado del disentildeo detallado de los meacutetodos

Escenario de Eacutexito 1 Se obtiene la informacioacuten de las clases del modelado de clases 2 Se obtiene la informacioacuten del modelado del disentildeo detallado de los meacutetodos 3 Se realiza la construccioacuten automaacutetica de los diagramas de secuencias

1 En el modelo de clases no hay informacioacuten o estaacute incompleta 2 En el modelo del disentildeo detallado de los meacutetodos no hay informacioacuten o estaacute

incompleta

Escenario de Falla

Caso de Uso ldquoModelado de Clasesrdquo El diagrama de Clases se utiliza para obtener los nombres de clases y los nombres de los meacutetodos de cada clase

Escenario de Eacutexito 1 Se abre el modelo 2 Se procesa para obtener la informacioacuten de las clases (nombres de clases y nombres

de meacutetodos)

Escenano de Falla h 1 No se puede abrir el modelo J 2 El modelo esta vaciacuteo

Caso de Uso ldquoModelado del Disentildeo detallado 1 los meacutetodosrdquo El disentildeo detallado de los meacutetodos se realiza con diagramas de Warnier aquiacute se establecen las llamadas a funciones dentro del sistema y es aquiacute donde se identifica el dinamismo que se representaraacute en los diagramas de secuencias

Escenario de Eacutexito 1 Se abre el modelo 2 Se realiza la identificacioacuten de las llamadas existentes

Escenario de Falla 1 No se puede abrir el modelo 2 El modelo esta vaciacuteo

24

Desarrollo de la herramienta

Clase Objeto ni I Diagrama I n ____ Nombre Descripcioacuten

i

Mensaje

Tipo

En el Anaacutelisis Orientado a Objetos se crea una especificacioacuteii del dominio del problema y de los requeriinientos desde la perspectiva de una clasificacioacuten por objetos y del entendimiento de los teacuterminos usados en el dominio del problema Una descomposicioacuten del dominio del problema involucra una identificacioacuten de conceptos atributos y asociaciones que son considerados importantes dentro del dominio El resultado puede ser expresado en un Modelo Corzcepttraf el cual es ilustrado en un conjunto de diagramas que definen conceptos (objetos) [LAR97]

312Modelo Conceptual

El modelo conceptual visto en la Figura 33 no es una descripcioacuten de componentes de software representa conceptos en el domino del problema en el mundo Teal [LAR97l

313Diagramas de clases

Por cuestiones dc espacio las clases de la arquitectura del sistema estaraacuten referidas en varios diagramas que de alguna manera estaacuten relacionados entre si

Una de las partes maacutes importantes del Ambiente Visual S3C es la estructura de clases ltCCraJicogt la cual se refiere al control de los diagramas eacutesta por su naturaleza podriacutea considerarse el nuacutecleo del sistema La manipulacioacuten y control de los diagramas estaacute definido en una estructura de clases organizada con el patroacuten de disentildeo Composite que se muestra en la Figura 34

25

Desarrollo de la herramienta

CRecursividadDS CMensajeDS CObjetoDS CDiagramaDS

I Cvisitor I

CApuntadorDS CDblClickDS CAsocAdjusterDS CSelectorDS

26

Desarrollo de la herramienta

n 32 Elementos de la arquitectura

Es necesario describir los elementos que dan soporte a la arquitectura del ambiente donde se implementaraacute el sistema en este caso Microsoft Visual (MV) C++ 6 El MV C++ es un marco de aplicacioacuten poderoso basado en Windows se integran ademaacutes del lenguaje C++ (compilador y enlazador) el programa de desarrollo de programas en lenguaje C para Windows (SDK) la Microsoft Foundation Class Library AppWizzard Classwizard AppStudio y WorkBencli

La Microsoft Foundation Class Library comprende una biblioteca de clases de C++ y es considerada como el nuacutecleo del MV C++

321Microsoft Foundation Class (MFC)

La libreriacutea Microsoft Foundation Class (MFC) es una interfaz orientada a objetos que tiene las siguientes metas de disentildeo

o

Reduccioacuten significante de esfuerzo al escribir una aplicacioacuten para Windows Velocidad de ejecucioacuten comparable a las APIrsquos del lenguaje C Miacutenimo tamantildeo de coacutedigo Capacidad para llamar cualquier funcioacuten de Windows en C directamente Faacutecil conversioacuten de aplicaciones existentes en C a C++ Faacutecil uso de APIrsquos de Windows con C++ como con C Faacutecil uso de complicadas caracteriacutesticas de abstracciones poderosas como ActiveX soporte para base de datos impresioacuten barras de herramientas y barras de estado El API de Windows en C++ si usa tan efectivamente como las caracteriacutesticas mismas del lenguaje C++

La mayoriacutea de las clases de la Libreriacutea de la Microsoft Foundation Class son derivadas de una clase base ltCObjectgt que es la raiacutez de la jerarquiacutea de clases ltCObjectgt da uacutetiles capacidades a las clases que derivan de ella

La jerarquiacutea que existe en las clases derivadas de ltCObjectgt es la siguiente

Arquitectura de Aplicacioacuten Excepciones Servicios de Archivos Arreglos Listas Mapas Servicios de Internet Sockets Sincronizacioacuten Soporte para base de datos D A 0

27

Desarrollo de la herramienta

i

r

Liacutenea de Comandos Menuacute Dibujo Graacutefico Dibujo Graacutefico de Objetos Soporte de Control Soporte de Ventanas

Soporte para base de datos ODBC

o Marco de Ventanas o Barras de control o Hojas de propiedades o Cajas de Dialogo o Vistas o Controles

322Arquitectura Documento Vista

Por defecto las aplicaciones creadas con la MFC usan un modelo de aplicacioacuten que separa los datos del programa de las vistas de interaccioacuten con el usuario En eacuteste modelo un objeto documento de MFC lee y escribe datos en un almacenamiento persistente Un objeto vista administra el despliegue de datos suministrando al usuario los datos para ser seleccionados o editados La vista le comunica al documento cualquier cambio en los datos La razoacuten maacutes conveniente para seguir este modelo es cuando se necesita muacuteltiples vistas del mismo documento (como en una hoja de caacutelculo y un graacutefico)

La arquitectura documentovista hace faacutecil el soporte de muacuteltiples vistas y muacuteltiples tipos de documentos asiacute como la divisioacuten de ventanas y otras caracteriacutesticas de interfaz de usuario Pero el corazoacuten de la arquitectura son cuatro clases (Mostradas en el aacuterbol de clases de la Figura 36)

ltCDocumerrtgt (o ltCOleDocuinentgt) - Se instancia un objeto de este tipo para almacenar y controlar los datos del programa ltCViewgt (o una de sus clases derivadas ltCScrotlViewgt ltCFormViewgt ltCEditView ltCRecordViewgt ltCDaoRecordView ltCtreeViewgt ltCListViewgt b ltCrichEditViewgt) - Un objeto es usado para desplegar los datos y administrar la interaccioacuten del usuario con los datos ltCFrameWndgt (o una de sus variantes) - Establece el marco sobre el que trabajaraacuten una o mas vistas de un documento ltCDocTemolategt (o ltCSingIeDocTemplategt o ltCMultiDocTemplategt) - Coordina la existencia de uno o maacutes documentos de un tipo dado y administra la correcta creacioacuten de los documentos vistas y objetos ventanas para cada tipo

i

28

Desarrollo de la herramienta

______________ 2 Wiew

I - - __ - ------a ________________

323Integrando Ambientes en Visual C t t

Las aplicaciones de Interfaz de Documento Uacutenico (SDI) soporta muacuteltiples tipos de documentos pero este soporte es para un solo objeto documento Debido a esta restriccioacuten y aunado a la necesidad de tener varios objetos documentos a la vez se determina la utilizacioacuten del modelo Interfaz de Muacuteltiples Documentos (MDI) indicado en la Figura 37

324Interfaz de Muacuteltiples Documentos (MDI)

Una aplicacioacuten de Interfaz de Muacuteltiples Documento (MDI) permite la creacioacuten de plantillas para el manejo de los documentos eacutesta plantilla tiene la forma

rn-pDocTemplate = new CMultiDocTernplate ( I DR-SCUMLTY PE RUNTIME-CLASS (CSCUMLDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CTheView))

AddDocTernplate ( rn-pDocTemplate )

Cada plantilla describe una relacion del tipo de documento con la vista asociada La definicioacuten de la plantilla para el ambiente que controla los diagramas de secuencias es la siguiente

29

Desarrollo de la herramienta c

m-pTernplateSeqDlag = new CMultiDocTernplate ( IDR-DS-SJCTYPE RUNTIME-CLASS (CSeqDiagDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CSeqDiagView) )

AddDocTernplate( rn-pTernplateSeqDiag )

Esta plantilla hace uso de la clase CCliildFrame que por defecto el ambiente Visual C++ construye y esto es debido a que no se requieren caracteriacutesticas extras en las ventanas de las que proporciona dicha clasc En un caso en el que se requiriera un comportamiento diferente de la vista tendriacutea que crearse una nueva clase con las caracteriacutesticas deseadas

Vista Documento

Vista

I- Vista Documento I [ Tip- F Vista

L Figura 37 Modelo Interfaz de Muacuteltiples Documentos (MDI)

Para integrar otro Ambiente que utilice otro tipo de documento es necesario definir otra plantilla de la misma forma mencionada Debe tomarse en cuenta los siguientes puntos

Es necesario definir el nombre (mqTemplateNOMBRE) El IDR del tipo que se requiere que sea el documento En la primera liacutenea RUNTIME CLASS debe indicar la clase ltCDocumentgt que desea La segunda liacutenea RUNTIME-CLASS soacutelo la cambia a otra clase si requiere de otro manipulador de ventanas de lo contrario deje que ltCChildFramegt se haga cargo

-

30

Desarrollo de la herramienta

En la uacuteltima liacutenea referente a RUNTIME-CLASS se debe indicar la clase ltCViewgt que desea usar Para finalizar se usa la instruccioacuten AddDocTernplate para finalizar la definicioacuten del template (mgTemplateNOMBRE)

325 Recursos Diaacutelogos Mertuacutes y Barras de Herrattriertias

Son varios los recursos con los que se puede contar al crear un proyecto en Microsoft Visual C++ Los diaacutelogos son un recurso disponible que son utilizados para visualizar ingresar yo modificar informacioacuten que se requiera En el Ambiente Visual que se desarrolla son varios los diaacutelogos que se utilizaraacuten y eacutestos se describen a continuacioacuten

El Diaacutelogo ldquoCaracteriacutesticas del Obietordquo (Figura 38) identifica el nombre del Objeto y la descripcioacuten del mismo Este diaacutelogo se muestra cuando se presiona doble clic sobre un objeto del diagrama

I Nombre

Desciipcion

Figura 38 Dialogo Caracteriacutesticas del Objeto

El Diaacutelogo ldquoMensaierdquo (Figura 39) muestra el nombre del mensaje que puede ser modificado ademaacutes se visualizan el Identificador del Mensaje el tipo de Mensaje asiacute tambieacuten el origen y destino del mensaje

31

Desarrollo de la herramienta

Nornbie delMensaje Edit

IDentificador del Mensaje Edil Tipo de Mensaje (Edil

Edit Objeto Origen

Objeto Destino IEdit

i25El A Figura 39 Dialogo Mensaje

El menuacute es otro de los recursos del que se puede disponer para organizar el ambiente que se estaacute creando Para eacuteste caso en particular no se hizo modificaciones al menuacute estaacutendar (Figura 310) que Visual C++ presenta Los cambios significativos son el manejo del tipo de documento para los Diagramas de Secuencias

Archivo Editar Yer VenLana AyGda

Figura 310 Menuacute de los Diagramas de Secuencias (estaacutendar)

Otro importante recurso del que uno se puede valer en Visual C++ es la barra de herramienta personalizada la cuaacutel es construida en el Editor de Recursos Se ha construido una barra (Figura 311) con los elementos graacuteficos de los Diagramas de Secuencia de UML

Figura 311 Barra de Herramientas de los Diagramas de Secuencias

Es recomendable que al utilizar barras de herramienta personalizada se defina en el tamantildeo estaacutendar ya que puede experimentar problemas al momento de ejecutar la aplicacioacuten

Ademaacutes puede usar la propiedad TBBS-CHECKGROUP en una barra de herramientas para establecer que los botones puedan quedar presionados hasta que un botoacuten diferente sea presionado No olvide que la numeracioacuten inicia con cero ( O )

vuriableToolBurSetButtonStyle(OTBBSCHECKGROUP)

32

Desarrollo de la herramienta

Prefijo ID IDC IDD IDP IDR IDS

326 Notacioacuten estaacutendar

Los nombres descriptivos de los recursos se asocian a un valor uacutenico Para una mayor claridad eacutestos nombres mantienen un prefijo que describe el tipo de recurso asociado (vea la Tabla 31) [MIC99]

Tipo de Recurso Comandos de Menuacute Controles y recursos Cuadros de diaacutelogo Cadenas de solicitud para cuadros de mensaje Menuacute principal barras de herramienta tabla aceleradora y el icono Cadenas

IDR IDD IDC ID

200 - 299 3000 - 3999 34000 - 34999

Estos son los rangos de valores establecidos para el proyecto S3C Si se utiliza el coacutedigo fuente y se planea agregar otro proyecto verifisue que no se invadan estos nuacutemeros para evitar problemas

Para facilitar auacuten maacutes los trabajos futuros se ha definido una estructura de carpetas (ver Figura 312) para incluir en cada una las Clases correspondientes a cada tesis en desarrollo

33

Desarrollo de la herramienta

ill ~~ -

-I SCUML classes + U A N T L R + U App + 0 ClassDiagrams + 0 Common + a Java

t $2 SequenceDiagiams

+ WarnierDiagrams

iJ PackageDiagrams

12 StaterChartDiagrams

+

- f Classview I Resourceview 1 FileView ]

~ ~

Figura 312 Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)

327Estructura de datos persistencia y recuperacioacuten

Existe una gran cantidad de tipos de datos estructuras clases y meacutetodos de los que se puede hacer uso para una mejor y maacutes faacutecil obtencioacuten de los resultados A continuacioacuten hago comentarios en tipos de datos y meacutetodos en los que podriacutea tener problemas

CTypedPtrList

AI usar este tipo de dato o alguno relacionado que le permita utilizar el meacutetodo ltCTvrgtedPtrListGetNextgt tenga especial precaucioacuten al usarlo ya que al devolver el valor requerido la variable POSITION usada no se queda apuntando a ese valor en particular salta al inmediato siguiente de la lista

Si se realiza una creacioacuten dinaacutemica con punteros para los elementos de una CTypedPtrList Despueacutes de haberlo agregado a la lista evite el delete para borrar esta Usted deseando liberar la memoria no lo haga ya que eliminara directamente el elemento de la lista

POSITION

Es un valor usado para denotar una posicioacuten de un elemento en una coleccioacuten Pero CUIDADO no se refiere a un iacutendice es una referencia (no consecutiva) de punteros muy diferente a un iacutendice

CString

Auacuten cuando el operador de comparacioacuten == (igual a) es permitido para ser utilizado en las cadenas evite su uso ya que en ocasiones aunque cuando la e

34

Desarrollo de la herramienta

compilacioacuten no indique error alguno en la ejecucioacuten no realizaraacute lo que se necesita Recomiendo que utilice CStringCompare ()

Para eliminar el contenido de un CString utilice CStringEmpty() ya que asignar a la cadena un ldquonrdquo podriacutea causarle problemas

Serializacioacuten

Una forma en que se puede guardar informacioacuten y recuperarla de manera eficaz es mediante la serializacioacuten de objetos La serializacioacuten es un proceso que permite escribir un objeto en un archivo y tambieacuten leerlo

Para que la serializacioacuten se lleve a cabo son necesarios tres objetos un objeto de tipo ltCFilegt que represente el archivo un objeto de tipo ltCArchivegt que ofrece el entorno para la serializacioacuten y la clase del objeto a ser serializado debe ser heredada de ltCObjectgt y sobrescribir el meacutetodo ltSerializegt para que se encuentre de tal forma en que pueda ser serializado (vea la Figura 313)

Objeto a ser serializado 1

1 CArchive

[f --=I- ---7 Archivoexi

u Figura 313 Serializacioacuten

328Patrones de disentildeo utilizados

Se ha planteado la definicioacuten de una arquitectura de clases utilizando patrones de disentildeo debido a que algunos de ellos hacen maacutes faacutecil la extensioacuten de la funcionalidad y mantenimiento

35

Desarrollo de la herramienta

El patroacuten Composite es utilizado para crear de manera uniforme el diagrama sobre el que se trabaja (ver Figura 34) manteniendo una jerarquiacutea de clases uniforme las clases maacutes bajas en la jerarquiacutea definen primitivas de objetos graacuteficos

Se aplica el patroacuten de disentildeo Iterator para hacer recorridos en listas de objetos para realizar diversas operaciones Otro patroacuten de disentildeo del que se hace uso es el Visilor (ver Figura 35)

Para otras actividades que se realizan podriacutea pensarse en que se deberiacutean aplicar otros patrones pero se han evitado algunos (como el patroacuten de disentildeo Builder) para evitar incrementar la complejidad en la arquitectura ya que ai mantener el modelo de la MFC de documentovista la funcionalidad del patroacuten de disentildeo Builder es faacutecilmente reemplazado si se hiciera Uso de eacuteste se aumentariacutea la complejidad excesivamente (nos llevariacutea a perdemos en ocasiones en el paso de mensajes entre clases) dantildeando la facilidad de la arquitectura

33 Diagrama de secuencias

Un Diagrama de Secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten escenario Oacute comportamiento se usan para definir el curso loacutegico de accioacuten de un posible camino a seguir en la resolucioacuten de un problema Seguacuten John Daniels [DANO2] ldquoel principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildean las interacciones de los objetosrdquo

Los Diagramas de Secuencias se utilizan en el modelado de la implementacioacuten de sistemas de software ademaacutes son aplicables en el modelado de requisitos para establecer las comunicaciones existentes entre actores yo clases del sistema Con eacutestos diagramas se logran hacer descripciones de los escenarios y los comportamientos del sistema Con los Diagramas de Secuencias es posible definir protocolos de comunicacioacuten con paso de mensajes ya que dan esa flexibilidad que se requiere Ademaacutes los Diagramas de Secuencias contienen informacioacuten suficiente para que puedan ser transformados a los diagramas de colaboracioacuten [RUM Ol][BOO Oil

331Ciclo de vida del software

Considerando cualquier modelo de ciclo de vida del software (en la figura 314 se muestra el Modelo de cascada) el aacutembito directo de eacuteste Ambiente Visual es en el disentildeo aunque tiene sus vertientes en la codificacioacuten y mantenimiento

36

Desarrollo de la herramienta

Diseno

Codificacibn

I I I I Mantenimiento I

igura 314 Modelo de cascada del ciclo de vida del software

34 Elementos atoacutemicos de la Gramaacutetica

Definicioacuten de los elementos atoacutemicos del lenguaje y su contenido

1 Actor- Representa roles de entidad externos al sistema con el que interactuacutea directamente Los actores pueden ser humanos dispositivos u otros sistemas

2 ClaseObjeto- Determina una Clase u Objeto participante en la interaccioacuten

3 Mensaje-Es una comunicacioacuten entre objetos que contiene informacioacuten Eacuteste se representa con la finalidad a que una accioacuten sea llevada a cabo

4 Mensaje con tiempo- Tiene la misma finalidad que el mensaje la diferencia es que con eacutel se representa un atributo de tiempo

5 Mensaje asiacutencrono Es un mensaje que ocurre en el tiempo de manera independiente a otros mensajes

6 Mensaje de destruccioacuten de objeto- Es un mensaje cuya finalidad es indicar la destruccioacuten del objeto destino

7 Mensaje de creacioacuten de objeto- Es un mensaje que indica la creacioacuten de un objeto

8 Llamada al mismo objeto (Recursividad)- Es usado para modelar llamadas recursivas en el que una operacioacuten es invocada por el mismo objeto

37

Desarrollo de la herramienta

9 Destruccioacuten del objeto (AutodestrucciOacuten)- Puede o no modelarse es representada con una X al final de la liacutenea de vida del objeto

Elementos aulomaacuteticos

1 Liacutenea de Vida- Representa la vida del objeto durante la interaccioacuten

2 Activacioacuten- Muestra el periacuteodo de tiempo en el cual el objeto alguna operacioacuten

341RepresentaciOacuten visual

Representacioacuten visual de los elementos atoacutemicos del lenguaje

Actor

_- A

Mensaje

Mensaje de Creacioacuten de

Objeto

ClaseObjeto

I

Mensaje de retorno

Mensaje de Destruccioacuten de

Objeto

abla 32 Element(

Activacioacuten

Mensaje con tiempo

Autodestruccioacuten

x

atoacutemicos del lengi

taacute realizz

Texto ===I (letra)+ (letra I

numero) letra= AZ I az numero = 09

I

Recursividad ~

I

i j e

io

38

u

Comentario

iexcl

Conector de Comentario

35 Gramaacutetica desarrollada

La gramaacutetica que se propone es una gramaacutetica visual del tipo relacional Una gramaacutetica relacional pertenece a las gramaacuteticas libres de contexto es una 6-iupla G (N C S R Attr P) donde

N es un conjunto finito de siacutembolos no terminales C es un conjunto de siacutembolos terminales S es un siacutembolo distinguido en N llamado siacutembolo inicial R es un conjunto finito de siacutembolos de relacioacuten Attr es un conjunto finito de siacutembolos de atributos P es un conjunto de producciones

Entonces definiendo nuestra gramaacutetica G (N C S R Attr P)

N = Diagrama GrupoClaseObjeto

S = Diagrama

R = mensaje mensajeTiempo mensajeRetomo mensajeAsincrono mensajecrea mensajeDestruye autodestruccioacuten recursividad

R

Attr = entrada salida entradacrea

39

Desarrollo de la herramienta

Definiendo la posicioacuten de los atributos en los elementos visuales

entradacrea ObetaClase

entrada

salida

P =

Diagrama I GrupoClaseObjeto (mensaje (mensajeRetorno

(salida 1) (entrada 2) ) (salida 2) (entrada 1) )

- Diagrama 0 GrupoClaseObjeto

(mensaje (mensaje (mensajeRetomo (mensajeRetomo (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entradacrea 2) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 1) ) (salida 1) (entrada 1) )

entrada

salida

40

Desarrollo de la herramienta

s

-

GrupoClaseObjeto - 1 1 I 2 (mensaje (mensaje (mensajeRetorno (mensajeRetorno (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entradacrea 2) ) (salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 1) ) (salida I ) (entrada I ) )

1 En las gramaacuteticas relacionales una produccioacuten estaacute acompantildeada de las posibles

relaciones que puedan generarse En la primera produccioacuten Diagrama produce a un Actor seguida de un GrupoClaseObjeto el Actor inicia la interaccioacuten con un mensaje y recibe el mensaje de retorno al finalizar la interaccioacuten La segunda y tercera produccioacuten son similares debido a que un GrupoClaseObjeto contiene dos ClaseObjeto que se relacionan de la misma forma

Existe un elemento de la gramaacutetica llamado Attr (Atributo) el cual define la parte de los elementos visuales donde se establecen las relaciones Se han determinado dos atributos (entrada y salida) que para nuestro propoacutesito estaraacuten establecidos en la liacutenea de vida de cada elemento visual (Actor y ClaseObjeto)

Los Comentarios y la Activacioacuten no se consideran en la gramaacutetica Los comentarios son libres de incluirse y relacionarse con cualquier elemento y relacioacuten mencionada anteriormente y la activacioacuten existe siempre que se presente un mensaje (o podriacutea omitirse) Estas consideraciones se realizaron para hacer auacuten maacutes faacutecil la gramaacutetica ya que si se trata de realizar un sistema las restricciones de estos elementos pueden mantenerse en el lenguaje de programacioacuten en el que se desarrolle el sistema

36

Precondiciones

El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias

1 El diagrama de Clases debe existir y estar completo 2 Debe existir un archivo con un diagrama de Warnier por cada diagrama de Clases y

con el mismo nombre de archivo (excepto la extensioacuten del archivo) 3 En el uacutenico diagrama de Warnier de cada Clase se deben modelar todos los meacutetodos

de la Clase 4 No realizar declaraciones de meacutetodos

41

Desarrollo de la herramienta

5 Debe existir un meacutetodo lsquomain()rsquo en el diagrama de Clases

Restricciones

Los meacutetodos deben mantener nombres distintos en las diferentes Clases

Metodologiacutea para la obtencioacuten automaacutetica de los Diagramas de Secuencias

1 Seleccionar el diagrama de Clases

2 Se construye una lista con los nombres de las Clases y los Meacutetodos

3 Se verifica si exista el meacutetodo lsquomain()rsquo en alguna Clase Se busca la existencia de una uacutenica Clase

a La Clase que contenga lsquomain()rsquo se va al inicio de la lista de Clases

b Si no existe lsquomain()rsquo SE TERMINA EL PROCESO

4 Se verifica la existencia de los archivos que contienen el Disentildeo Detallado de los meacutetodos en Wamier para cada una de las Clases si alguno falta SE TERMINA EL PROCESO

5 Se procesa cada uno de los modelos del Disentildeo Detallado de los Meacutetodos generando una lista de secuencias de llamadas por cada uno de los meacutetodos

6 Se verifica que cada llamada corresponda a alguacuten meacutetodo existente (del diagrama de Clases) De no existir ese meacutetodo la llamada entra a una estructura que

7 Se crea una lista de secuencia

a Se inicia con lsquomain()rsquo b Se recorre cada una de las llamadas de los meacutetodos c Se considera invaacutelido el caso de que un meacutetodo intente una llamada

recursiva al meacutetodo lsquomain()rsquo

8 Se muestra un diaacutelogo de resultados en el que se indican las llamadas que no se encnotraron definidas y que pueden ser Llamada a libreriacutea oacute Llamada Erroacutenea

42

Capiacutetulo 4

Prue6as y su6taaacuteos

En eacuteste capiacutetulo se da a conocer el detalle de las pruebas y de los resultados obtenidos Se describen los casos de prueba con los que se realizoacute la evaluacioacuten del sistema asiacute tambieacuten se presentan comentarios acerca de los resultados obtenidos

Pruebas y Resultados

41 Recursos teacutecnicos utilizados

Para llevar a cabo las pruebas al sistema S3C se utilizaron los siguientes equipos de Coacutemputo

Computadora de escritorio

256MB RAM Disco Duro 80G Monitor 17rdquo SAMSUNG

AMD Athlon XP 1600+ I4Ghz

Computadora de escritorio Intel Pentium 4 - 128MB RAM Disco Duro 40G Monitor 15rdquo i -

42 Descripcioacuten del plan de pruebas

Las pruebas establecen el Uacuteltimo paso desde donde es posible evaluar la calidad y descubrir los errores Las pruebas y la validacioacuten del software se utilizan para comprobar que el sistema cumple con las expectativas del usuario

En esta seccioacuten se describen los casos de prueba que se realizaron al prototipo de S3C en conjunto a la suite cenidet-UML Para cada uno de los casos se presenta el objetivo el procedimiento que se siguioacute para la prueba y se muestran los resultados obtenidos - _

Las pruebas a realizar son los siguientes

Caso 1 Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Caso 2 Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Wamier

Caso3 Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Wamier

Caso4 Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo 5

44

Pruebas y Resultados

43 Resultados

431 Caso 1

5 Y

IZ =

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoSirdquo 4 Seleccionar el archivo ldquoVENTASrdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 41 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

s3c iuevo Proyecto SCUM1

Diagrama de clases

lvendedor I L

3

salida

venta prod

4 venia-oferta vcntaprod =

salida 6

Figura 41 Resultado del caso de prueba 1

45

Pruebas y Resultados

432 Caso 2

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Warnier (almacenwar cajawar vendedorwar) que ya cxisten (del caso de prueba I )

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoNordquo 4 Agregar las siguientes Clases con los respectivos meacutetodos y atributos

a Claseldquovendedorrdquo Meacutetodos ldquoventa mainrdquo b Claseldquoalmacenrdquo Meacutetodos ldquoentrada salidardquo c Claseldquocajardquo Meacutetodos ldquoventagrodrdquo

5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 42 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

Diagrama de daseo lisgrama dcsccucncis

MOIDOC Anivo

venta prod

salida

1 Ycrdquo1a 2

I 4 vcrdquolD~o1cn venta prod gt

salida 6 i Figura 42 Resultado del caso de prueba 2

46

Pruebas y Resultados

r

433 Caso 3

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Warnier

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 43 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

5

Error al tratar de abrir el archivo A bZwar

Aceptar i

Faltan Archivos de Disentildeos Detallados de Meacutetodos 1 1 A No se puede crear el diagrama de secuencias

Figura 43 Resultado del caso de prueba 3

47

Pruebas y Resultados

434 Caso 4

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 44 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

lsquo I

~ _ i i _ l _ Repaado ~~ ~ ~ 6~ ampA Figura 44 Resultado del caso de prueba 4

48

Pruebas y Resultados

PRUEBA DESCNPCION CASO 1 Mostrar la funcionalidad del

Sistema S3C a partir de un

44 Anaacutelisis de Resultados

RESULTADOS Se comproboacute la correcta funcionalidad del Sistema S3C a partir de un diagrama

CASO 3

CASO4

I diagrama de Clases cxistcnte I de Clases existente CASO 2 I Mostrar la funcionalidad del I Sc comproboacute la corrccta funcionalidad

Sistema S3C a partir de un del Sistema S3C a partir de un diagrama diagrama de Clases que se de Clases que se construye al momento construye al momento Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el Secuencias si falta alguno de los diagrama de Secuencia si falta alguno diagramas de Warnier Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el secuencias si hace falta el meacutetodo diagrama de Secuencias al faltar el ldquomain ()rdquo meacutetodo ldquomain()rdquo

de los diagramas de Warnier

Los resultados obtenidos de cada uno de los casos establecidos demuestran que se validoacute la funcionalidad del prototipo con los requisitos definidos en el alcance de este proyecto

a lt

49

Conclusiones y Tru6ajos Futuros

Aquiacute se dan a conocer las conclusiones y se describen los posibles trabajos futuros para la continuacioacuten de eacuteste proyecto

F

51 Conclusiones

Conclusiones y trabajos futuros

Se ha creado un Ambiente Visual que permite obtener de forma automaacutetica los Diagramas de Secuencias en base a los diagramas de Clases y al disentildeo detallado de los meacutetodos descritos con diagramas de Warnier cumpliendo con los objetivos planteados para este trabajo

La tesis aporta principalmente La generacioacuten automaacutetica de los diagramas de secuencias y la eliminacioacuten de inconsistencias al mantener una validacioacuten directa de los diagramas de clases y los diagramas de Warnier que son utilizados

Esta validacioacuten es lograda a traveacutes del uso de la gramaacutetica visual relaciona1 que se ha definido (veacutease el capiacutetulo 3) Esta gramaacutetica visual establece reglas para la correcta construccioacuten de los diagramas de secuencias

P De esta manera se establece que la hipoacutetesis ldquoEs posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodosrdquo Es verdadera

52 Trabajos Futuros

Un Diagrama de Secuencias puede convertirse en un Diagrama de Colaboracioacuten por lo tanto un trabajo futuro es la construccioacuten automaacutetica de un Diagrama de Colaboracioacuten a partir de uno de Secuencias existente

Es posible calcular la meacutetrica de acoplamiento al tener un Diagrama de Secuencias construido

La Ingenieriacutea directa de un Diagrama de Secuencias estableciendo la validacioacuten en la construccioacuten de todos los elementos visuales que UML define

La propagacioacuten de las modificaciones de un Diagrama de Secuencias a los Diagramas de Clases y los Diagramas de Warnier

La modificacioacuten del coacutedigo fuente mediante los cambios establecidos en un Diagrama de Secuencias

51

[ALC03]

[BLA98]

[B0099]

[BOOOi]

[BR097]

[CHA90]

[DAN02]

[GLA02]

[HAC98]

[HER03]

4

Alcate1 Computer Associates International inc Electronic Data Systems Corporation Hewlett-Packard Company IBM Corporation I-Logix IntelliCorp Kabira Technologies Kennedy Carter Microsoft Corporation Object Management Group Oracle Corporation Project Technology Ptech Inc Rational Software Corporation Reich Technologies Softeam Taskon A S Telelogic Unisys Corporation ldquoOMG Unified Modeling Language Specificationrdquo Version 15 Unified Modeling Language 2003

Blaha Michael Rumbaugh James Premerlani William Eddy Frederick Lorensen William ldquoObject-oriented modeling and designrdquo Prentice Hall 484 Paacuteginas ISBN 0-13-629841-9 QA-769-03S-B53-19981998

Booch Grady Rumbaugh James Jacobson Ivar ldquoEl lenguaje unificado de modeladordquo Addison Wesley 432 Paacuteginas ISBN 84-7829-028-1 1999

Booch Grady Rumbaugh James Jacobson Ivar ldquoThe Unified Modeling Language User Guiderdquo Addison Wesley 2001

Brown David ldquoAn introduction to object-oriented analysis objects in plain Englishrdquo John Whiley amp Sons Inc 700 Paginas ISBN 0-471-1 1028-0 QA-769-035-B76-1997 1997

Chang Shi-Kuo ldquoVisual Languages and visual programmingrdquo Plenum Press 340 Paacuteginas ISBN 0-306-43428-8 QA-7665-V57-1990 1990

Daniels John ldquoModeling with a sense of purposerdquo Design - IEEE Software JanuaryEebmary 2002

Glasgow Universidad Reino Unido ldquoA UML Editor in Javardquo (lthttplstudentsdcsglaacuWstudentspainjfproject-reportproject-re port-htmV4thYearReporthtrnlgt 2002)

T Hackos JoAnn C Redish Janice ldquoUser and Task Analysis for Interface Designrdquo Wiley Computer Publishing 488 Paacuteginas ISBN QA-769-U83- H33-1998 1998

Hemaacutendez Velaacutezquez M ldquoIngenieriacutea inversa de coacutedigo fuente en C++ para la obtencioacuten de su disentildeordquo Tesis AT-379 (03-0334) 2003

Conceptos generales

[HIX93]

[JAC93]

[JAC99]

[JOY98]

[LAR97]

[MAR]

[MIC99]

[MIC02]

[MOU98]

Hix Deborah Hartson H Rex ldquoDeveloping user interfacesrdquo 381 Paacuteginas ISBN 0-471-57813-4 QA-769-U83-H59-1993 1993

Jacobson Ivar Christerson Magnus Jonsson Patrik Overgaard Gunnar ldquoObject oriented software engineeringrdquo Addison Wesley ISBN 0-20 1 - 54435-0 QA-7676-D47-J63-1993 1993

Jacobson Ivar Booch Grady Rumbaugh James ldquoEl proceso unificado de desarrollo de softwarerdquo Addison Wesley 438 Paacuteginas ISBN 84-7829-036- 2 1999

Joyanes Aguilar Luis ldquoProgramacioacuten orientada a objetosrdquo McGruw Hill ISBN 84-481-0590-7 1998

Larman Craig ldquoAplying UML and Patternsrdquo Prentice Hull 507 Paacuteginas ISBN 0-13-748880-7 QA-769-035-L37-1997 1997

Marriot Kim Meyer Bemd ldquoVisual Language Theoryrdquo Springer 381 Paacuteginas P-935-V567-1998 1998

Microsoft ldquoMicrosoft Visual C++ 6 manual del programadorrdquo McGraw Hill ISBN 84-481-2127-9 QA-7673-Cl53-23718-1999 1999

Microsoft ldquoVisiordquo (lthttpwwwmicrosoftcomofficevisiogt 2002)

B Mourao Luis X ldquoUniversal Modeling Language Part 11 UML Notation - Case Sequence and Collaboration Diagramsrdquo Lan Times Magazine (~httpwwwlantimescomltpartsdiscussdiscuss6Ohtm~) 1998

No Magic ldquoMagicDrawrdquo (lthttpwwwmagicdrawcomgt 2002)

Object Insight ldquoJvisionrdquo (lthttpwwwobject-insightcomgt 2002)

Rational Software Microsoft I Hewlett-Packard Oracle Sterling Software MCI Systemhouse Unisys ICON Computing IntelliCorp i-Logix IBM ObjectTime Platinum Technology Ptech Taskon Reich Technologies Sofieam ldquoUML Summaryrdquo Version 11 Unified Modeling Language 1997

Rational ldquoRational Roserdquo (lthttpwwwrationalcomproductosrosegt 2002)

Rikki Kirzner ldquoAnalysis Modeling and Design Tools Market Forecast and Analysis 2001-2005rdquo Bulletin Published Under Services Application Design and Construction Tools Application Development and Deployment Strategies Documento Nuacutemero 24809 Junio 2001

53

Conceptos generales

[RIM92] Rimrner Steve ldquoGraphical user interface programmingrdquo 423 Paacuteginas

1992

Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language reference manualrdquo Addison Wesley 550 Paacuteginas ISBN 0-201-

ISBN 0-8306-2475-9 ISBN 0-8306-2472-4 (pbk) QA-769-083-R55G

[RUM99]

30998-X QA-7676-D47-R85-1999 1999

[RUM299] Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language user guiderdquo Addisoiz Wesley 482 Paacuteginas ISBN 0-201 -57 168-4 QA-7676-D47-B66-1999 1999

[SMA02] SmartDraw ldquoSmartDrawrdquo (lthttpwwwsmartdrawcomgt 2002)

[SHU88] 9 - Shu Nun C ldquoVisual Programmingrdquo Van Nostrand Reinhold ISBN 0-422- 28014-9 ISBN 0-422-01 164-4 QA-7665-S55 1988

[THI90] Thimbleby Harold ldquoUser Interface Designrdquo Acm press 470 Paacuteginas ISBN 0-201 -41 61 8-2 QA-769U83-T772~- 1990 1990

[WENO2] Wences Diaz MF ldquoModelo de Ingenieriacutea Inversa para la obtencioacuten de disentildeo detallado basado en LEVISSrdquo Tesis (02-0014) 2002

54

Anexo A

Conampuracioacuten de Microsoft Vkua[C++ 6 O

Este anexo indica las configuraciones que se utilizaron para la compilacioacuten de SCUML y s3c

Configuracioacuten de Microsoft Visual c++ 60

Debido a la integracioacuten de los proyectos de InverSOODA e InverDDVi con S3C se cumplioacute con los requisitos previos de ambos proyectos

El compilador usado en el proyecto fue el Microsoft Visual C++ 60

Para el cumplimiento con la funcionalidad de InverSOODA se instaloacute el ANTLR la versioacuten 271 Se descargoacute del sitio l i l l ~ ~ ~ ~ ~ ~ t l ~ l ~ - ~ t - ~ la versioacuten mencionada en un archivo comprimido (en formato zip) Se colocoacute el paquete descomprimido en el directorio ldquoDIANTLR-271 I rdquo

Recomiendo ampliamente que el directorio principal de ANTLR se copie en el directorio raiacutez de cualquier unidad de disco debido a que experimenteacute problemas de compilacioacuten cuando ANTLR no se encontraba en el directorio raiacutez

Io015

Source Browser AlttF12 I u c Ersquo V I

Visual Component Mgnager

- - ~ ~ ~ ~~

P2 Registrar control

A Contenedor de prueba de controles ActiveX

A Usor de objetos OLE y COM

Buacutesqueda de errores

A Y++ MFC Iracer

Customize options

~ - q- ~ Macro

Eecord Quick Macro Cbl+ShiR+R Pay Quick Macro Ctrl+ShiR+P

En el menuacute Tools (Herramientas) seleccione el sub-menuacute Options ltopcionesgt

56

Configuracioacuten de Microsoft Visual C++ 60

En la siguiente ventana de diaacutelogo debe agregar la direccioacuten en donde se encuentra el ANTLR

Agregar la ruta del directorio de ANTLR hasta el subdirectorio

libcpp

Editor I Tabs I Debug I Compatibility 1 Build Dneclolies I a I Chow directories for - Platfolm -

- Directories I x ) 4 jWin32 -] llnclude files

m cancd I

57

Configuracioacuten de Microsoft Visual C t+ 60

Se ha creado una libreriacutea (anrlrliblib) de ANTLR la cual ya estaacute situada en el directorio del proyecto SCUML (ISCUML) y no debe ser movida o eliminada

I

Geneial 1 Debug I CC++ Link I Category

Output file name bebugSCUMLexe

Objectljibrary modules 4 anllrliblib

li Generate debug lnfo r Ignore all defaull lbaries D ~ i n k j n ~ ~ ~ t a n ~ r ~ e n e r ~ ~ ~ mapfile

r Enable psafilrng

Proiec1 Ootionn

pq Cancel 1 Libreriacutea de ANTLR que debe existir 1 I para que se compile correctamente

58

Anexo B

~ u iacute aacute raacutepida de uso deC Sistema S3C

5 Este anexo indica de forma raacutepida la manera de utilizar S3C para crear un diagrama de secuencias de forma automaacutetica

Guiacutea Raacutepida de uso del Sistema S3C i

Para indicar la creacioacuten de un diagrama de secuencias en forma automaacutetica se debe ir a la barra del costado izquierdo y presionar ldquoNuevo Proyecto SCUMLrdquo

I s3c I ~ Nuevo Proyecto SCUML ~ _ _ - I Diagrama de clases ~ Diagrama de secuencias 1 MDI DOC Activo

-

Apareceraacute un documento llamado ldquoSCUMLV en donde el simbolo corresponde a un numero consecutivo iniciando desde 1 (uno)

$ e Despueacutes se presiona ldquoDiagrama de clasesrdquo Habraacute que para indicarle al sistema si se requiere abrir un diagrama de clases existente o realizar uno nuevo

i

iquestAbrir un documento existente

No Cardquo~ear

AI presionar ldquoSirdquo se debe indicar cual es el archivo del diagrama de Clases en el cuadro de diaacutelogo siguiente

~~ - 11dMis documentos rsquo 2 M i P C i lsquo h s sitios de red

I

AI presionar ldquoNordquo en ldquoAbrir un documento existenterdquo se nos mostraraacute un documento vacio para crear un diagrama de clases

60

Guiacutea Raacutepida de uso del Sistema S3C

Para ambas opciones se requiere que los diagramas de Wamier ya se encuentren construidos Y para continuar el proccso se selecciona el documento ldquoSCUMLVrsquo creado al inicio y despueacutes presionar el botoacuten nombrado ldquoDiagrama de secuenciasrdquo localizado en la barra de hcrraiiiicntas del costado izquierdo

Ha iniciado el proceso de construccioacuten del diagrama de secuencias Si no existen errores al terminar el proceso se le mostraraacute un cuadro de diaacutelogo llamado ldquoResultadosrdquo en donde le mostraraacute las llamadas de las que no localizoacute su definicioacuten

- - -

Cancel 1 D e las siguientes llamadas es posible que esten mal escritas o peitenezcan a la libreiia del Lenguaie Verifique ya que no se encontraron sus definiciones

A continuacioacuten se mencionan los posibles errores que finalizan el proceso de la creacioacuten automaacutetica de los diagramas de secuencias en S3C

Cuando no exista un meacutetodo lsquomainrsquo definido en el diagrama de clases

No se encontro el meacutetodo lsquomain()rsquo que inicie la secuencia I A No se puede crear el diagrama de secuencias

p==amp=q

61

Guia Raacutepida de uso del Sistema S3C

Cuando se definan niultiples metodos lsquoinainrsquo en el diagrama de clases

Multiples meacutetodos lsquomainOlsquo Imposible decidir el inicio de secuencia

Aceptar i

Si un meacutetodo definido en Wamier realiza una llamada a lsquomainrsquo se cancelara el proceso

Llamada NO VALIDA al meacutetodo principal main

(iAcp-j(

4 i

CI Y rdquoldquoldquoI i 11 1-T

IZNTRO Gt INFORMACION

62

  • Tabla de Contenido
  • Listado de Figuras
  • Listado de Tablas
  • Notacioacuten
  • Introduccioacuten
  • Capitulo 1 Conceptos Generales
    • 11 Antecedentes
    • 12 Trabajos relacionados
      • 121 Tabla comparativa
        • 13 Definicioacuten del problema
        • 14 Objetivo de la Tesis
          • Objetivos especiacuteficos de la tesis
            • 15 Hipoacutetesis de investigacioacuten
            • 16 Alcances y limitaciones del trabajo de tesis
              • Capitulo 2 Marco Teoacuterico
                • 21 Modelado de sistemas de software
                • 22 Interfaz de usuario (Mecanismos de interaccioacuten)
                • 23 Lenguajes Visuales
                • 24 Programacioacuten orientada a objetos
                • 25 Lenguaje de Modelado Unificado (UML)
                  • Desarrollo de la herramienta
                    • 31 Disentildeo de la Arquitectura
                      • 311 Requisitos (Diagrama de Casos de uso)
                        • 312Modelo Conceptual
                        • 313Diagramas de clases
                        • 32 Elementos de la arquitectura
                          • 321 Microsoft Foundation Class (MFC)
                            • 322Arquitectura Documento Vista
                            • 323Integrando Ambientes en Visual c++
                              • 324 Interfaz de Muacuteltiples Documentos (MDI)
                                • 325Recursos Diaacutelogos Menus y Barras de Herramientas
                                  • 326 Notacioacuten estaacutendar
                                  • 327 Estructura de datos persistencia y recuperacioacuten
                                    • 328Patrones de disentildeo utilizados
                                      • 33 Diagrama de secuencias
                                        • 331Ciclo de vida del software
                                          • 34 Elementos atoacutemicos de la Gramaacutetica
                                            • 341 Representacioacuten visual
                                              • 35 Gramaacutetica desarrollada
                                              • 36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias
                                                  • Capitulo 4 Pruebas y Resultados
                                                    • 41 Recursos teacutecnicos utilizados
                                                    • 42 Descripcioacuten del plan de pruebas
                                                    • 43 Resultados
                                                      • 431 Caso
                                                      • 432 Caso2
                                                      • 433 Caso
                                                          • Conclusiones y trabajos futuros
                                                            • Trabajos futuros
                                                            • Referencias
                                                            • Anexo A Configuracioacuten de Microsoft Visual C+t
                                                              • Figura 11 - Arquitectura de la suite cenidet-UML
                                                              • Figura 21 -Programacioacuten Visual
                                                              • Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de
                                                              • Figura 32 -Diagrama de Casos de Uso para el S3C
                                                              • Figura 33 -Modelo Conceptual
                                                              • Figura 34 - Diagrama de Clases -Control del Diagrama -
                                                              • Figura 35 - Diagrama de Clases - Patroacuten Visitor -
                                                              • Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento
                                                              • Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)
                                                              • Figura 38 -Dialogo Caracteriacutesticas del Objeto
                                                              • Figura 39 -Dialogo Mensaje
                                                              • Figura 3 IO - Menuacute de los Diagramas de Secuencias (estaacutendar)
                                                              • Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias
                                                              • Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)
                                                              • Figura 313 - Serializacioacuten
                                                              • Figura 314 -Modelo de cascada del ciclo de vida del software
                                                              • Figura 41 - Resultado del caso de prueba
                                                              • Figura 42 -Resultado del caso de prueba
                                                              • Figura 43 -Resultado del caso de prueba
                                                              • Figura 44 -Resultado del caso de prueba
                                                              • Tabla 11 - Tabla comparativa
                                                              • Tabla 31 -Prefijos estaacutendar de identificadores
                                                              • Tabla 32 -Elementos atoacutemicos del lenguaje
                                                              • Tabla 41 - Resumen de los resultados de las pruebas realizadas

Capiacutetulo I

Conceptos generalis

En eacuteste capiacutetulo se dan a conocer los antecedentes del proyecto de tesis los trabajos relacionados el problema que resolveraacute la hipoacutetesis a comprobar los alcances y limitaciones

Conceptos generales

11 Antecedentes

Actualmente en el cenidet (Centro Nacional de Investigacioacuten y Desarrollo Tecnoloacutegico) se trabaja en la construccioacuten de un conjunto de ambientes visuales para dar soporte al desarrollo con diagramas que define el estaacutendar UML para elaborar sistemas de software de manera completa raacutepida y eficaz El ambiente de modelado principal se ha denominado suite cenidet-UML y su arquitectura general se muestra a continuacioacuten en la Figura 11

Arquitectura de la suite cenidet-UML

Figura 11 Arquitectura de la suite cenidet-UML

a El producto de software resultante de eacutesta tesis lleva por nombre S3C y como se indica en la figura 11 Las tesis directamente relacionadas son InverSOODA [HER03] e

InverDDVi [WEN02]

InverSOODA (Sistema Orientado a Objetos para Disentildeo y Anaacutelisis incluyendo Ingenieriacutea Inversa) es un Ambiente Visual que permite la elaboracioacuten de diagramas de clases de un sistema de software Los diagramas de clases son una vista estaacutetica y en ella se describe las relaciones que existen entre las entidades llamadas clases Cada una de las clases se divide en tres partes nombre de la clase meacutetodos y atributos Este ambiente permite generar el coacutedigo fuente en lenguaje C++ de un diagrama construido y tambieacuten aplicando la ingenieriacutea inversa es posible obtener un diagrama a partir de un coacutedigo en C++ existente

InverDDVi (Disentildeo Detallado Visual incluyendo Ingenieriacutea Inversa) es un Ambiente Visual cuyo objetivo es apoyar en la elaboracioacuten de diagramas de disentildeo detallado utilizando una notacioacuten basada en Warnier Los diagramas de Warnier sirven para describir una secuencia loacutegica de acciones y mediante su simbologiacutea se logra plasmar definiciones de meacutetodos llamadas a otros meacutetodos ciclos comparaciones lectura de informacioacuten y escritura de informacioacuten Este ambiente permite generar el coacutedigo fuente en C de un diagrama construido y tambieacuten aplicando la ingenieriacutea inversa se puede obtener un diagrama de Warnier a partir de un coacutedigo en C que ya exista

i

3

Conceptos generales

12 Trabajos relacionados

Rational Rose de Rafional

Una de las herramientas mas populares del mercado que utiliza la notacioacuten UML y tiene la capacidad de reingenieriacutea de software para integrar sistemas existentes capacidad de mezclar diferentes lenguajes dentro de un mismo modelo ademaacutes de ingenieriacutea inversa sobre los componentes COM (Component Object Model) ActiveX y Java y con soporte de las arquitecturas MicrosoWCOM y CORBAIDL (The Common Object Request Broker Architecture)

Con Rational Rose se puede trabajar en grupo con capacidades para modelar y visualizar procesos de negocios y requerimientos de sistemas Tiene soporte para generar esquemas objetos-relaciones de bases de datos para realizar anaacutelisis de datos Cuenta con el soporte para analizar sitios Web en ASP (Active Server Pages) y JSP (Java Server Pages) Ademaacutes soporta los lenguajes Java CC++ Visual CC++ [RAT02] 9

SI -

Visio de Microsoft

Visio Enterprise 2002 permite crear diferentes tipos de diagramas como son

1 Diagramas de flujo 2 Planos de oficinas 3 Diagramas de aacuterbol 4 Diagramas de organizacioacuten 5 Liacuteneas de tiempo 6 Mapas geograacuteficos y direccionales 7 Diagramas de sitios Web 8 Diagramas de red 9 Diagramas de UML

Tiene las siguientes caracteriacutesticas diagramacioacuten e importacioacuten de servicios de directorio reingenieria de bases de datos disentildeo y documentacioacuten de bases de datos diagramacioacuten de software ingenieriacutea directa e inversa de coacutedigo replicacioacuten exacta por medio de diagramas de equipos y configuraciones de red diagramacioacuten automatizada y ambiente colaborativo

Visio da un conjunto completo de herramientas de diagramacioacuten de redes para planear y documentar claramente las redes existentes Ademaacutes para crear esquemas eleacutectricos mecaacutenicos y de procesos pueden crearse diagramas complejos con facilidad y poco entrenamiento

A las aplicaciones existentes se les puede realizar la ingenieriacutea inversa para obtener el disentildeo y tambieacuten crear nuevos disentildeos Proporciona herramientas para crear diagramas de bases de datos y es posible realizar ingenieriacutea inversa de esquemas existentes en bases de datos cliente servidor como SQL Server IBM Oracle y otros [MIC02]

4

Conceptos generales

e JVision 21 de Object Insight

JVision permite en la ingenieriacutea directa la creacioacuten de clases variables y meacutetodos con lo cual genera plantillas de coacutedigo para programadores en Java Los diagramas se pueden exportar a HTML La documentacioacuten puede integrarse con JavaDoc de Sun JVision da el soporte para ingenieriacutea inversa para el lenguaje Java

Se pueden crear todos los diagramas definidos por UML en los diagramas de secuencias da la oportunidad de dibujar clases liacuteneas liacuteneas de tiempo de vida y marca de destruccioacuten de objetos ofrece ademaacutes el soporte para las acciones de llamada regresar valor enviar accioacuten crear accioacuten y eliminar accioacuten [OBJO2]

MagicDraw 6 de No Magic

Es una herramienta CASE con soporte para trabajo en grupo Esta disentildeado para analistas 6 de negocios analistas de software programadores ingenieros de calidad y

documentadores Esta aplicacioacuten provee la capacidad para crear los diagramas definidos por UML (soporta UML 14) Cuenta con el soporte de ingenieriacutea inversa y generacioacuten de coacutedigo para C++ C Java y CORBNIDL Tiene integracioacuten con NetBeans se actualiza automaacuteticamente disponible en aacuterabe portugueacutes franceacutes italiano ingles (US) alemaacuten espantildeol japoneacutes y coreano

Tiene la caracteriacutestica de soportar la adaptacioacuten de los elementos a colores que el usuario defina Los diagramas pueden exportarse a imaacutegenes JPG EMF WMF EPS y DXF En los diagramas de secuencia da oportunidad de definir roles textos notas mensajes de varios tipos al mismo objeto recursivo ademaacutes de la relacioacuten a las notas y las liacuteneas de vida Es posible guardar los diagramas como imaacutegenes de mapas de bits o vectores Mantiene ademaacutes una vista pequentildea a escala del diagrama completo [NoA402]

e

SmariDraw Professional Plus de SmariDraw

Todos los dibujos pueden agregarse en las aplicaciones de Microsoft como son Word Excel PowerPoint Contiene maacutes de 50000 (1000 en la versioacuten estaacutendar) formas predefinidas ejemplos y plantillas Los diagramas pueden ser exportados a imaacutegenes WMF BMP JPG GIF TIF y otros Incluye un convertidor de archivos de VISIO

Con esta herramienta es posible crear diagramas de flujo diagramas de bloque diagramas de flujos de datos diagramas de organizacioacuten aacuterboles de decisioacuten disentildeo de redes Gantt diagramas de flujo de procesos diagramas de administracioacuten de calidad diagramas eleacutectricos diagramas mecaacutenicos diagramas quiacutemicos liacuteneas de tiempo planes de espacio posters mapas formas y tambieacuten da soporte para UML es posible dibujar objetos actores activacioacuten de los objetos mensaje mensaje de retorno mensaje asiacutencrono mensaje con tiempo liacutenea de vida del objeto marca de destruccioacuten del objeto y ciclos (descrito con un rectaacutengulo y una condicioacuten de salida) [SMA02]

5

Conceptos generales

Producto Soporta Diagramas de UML Secuencias

Creacioacuten automaacutetica de diagramas de

El Rational Rose El Visio

Jvision

Magic D r a w

a a El Fl El a El El

I ~

I ~

I -

Ambiente de modelado de

a a SmartDraw El

Tabla I Tabla comparativa

Todas las herramientas descritas anteriormente cuentan con caracteriacutesticas sobresalientes para el disentildeo y modelado de sistemas de software pero ninguna de ellas genera automaacuteticamente los diagramas de secuencia con base en los diagramas de clases y el disentildeo detallado de los meacutetodos asiacute tambieacuten ninguna de ellas realiza un caacutelculo de los canales de comunicacioacuten abiertos entre las clases que conforman el sistema

iexcla la A UML Editor in Java

13 Definicioacuten del problema

El modelado de sistemas utilizando el estaacutendar de UML en diversos productos comerciales prototipos de laboratorio elaborados en universidades y centros de investigacioacuten atienden la perspectiva baacutesica de la abstraccioacuten general del modelo esto es documentar el modelo del sistema que se requiere sin atender puntos importantes tales como

La generacioacuten automaacutetica de los diagramas de secuencias La correccioacuten de inconsistencias en los diagramas al crearlos de forma separada

El

6

sistemas de software

secuencias utilizando diagramas de a a a

Conceptos generales

Se hace necesaria la creacioacuten de un ambiente visual que permita obtener de forma automaacutetica los diagramas de secuencias en base a los diagramas de clases y al disentildeo detallado de los meacutetodos para facilitar la documentacioacuten la generacioacuten de coacutedigo y el mantenimiento de los sistemas

La obtencioacuten de los diagramas de secuencias estaacute basada en los Diagramas de Clases definidos por UML que son construidos con la herramienta InverSOODA junto con el disentildeo detallado de los meacutetodos construidos con Diagramas de Wamier elaborados con la herramienta InverDDVi

En el estaacutendar UML para la construccioacuten de los diagramas no existe actualmente una sintaxis expliacutecita definida solo existe impliacutecitamente en el uso de los elementos del diagrama por lo que se ha descrito una gramaacutetica visual de tipo relaciona1 como soporte para la construccioacuten de los Diagramas de Secuencias

n ai 14 Objetivo de la Tesis

Construir un ambiente visual que permita al usuario obtener el diagrama de secuencias de manera automaacutetica

141 Objetivos especiacuteficos de la tesis Crear una gramaacutetica que soporte la construccioacuten del diagrama de secuencias Construir de forma automaacutetica el diagrama de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodos

15 Hipoacutetesis de investigacioacuten

Es posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodos

16 Alcances y limitaciones del trabajo de tesis

Los alcances de la tesis se especifican a continuacioacuten

Se elaboroacute la arquitectura del sistema Se definioacute la gramaacutetica de soporte Se desarrolloacute la interfaz en Visual C++ haciendo uso de las MFC Se interactuacutea con los diagramas de clases de InverSOODA Se interachiacutea con el disentildeo detallado de los meacutetodos realizados por InverDDVI Se genera el diagrama de secuencias de forma automaacutetica

7

Conceptos generales

Limitaciones de la tesis

0 No se genera coacutedigo

La investigacioacuten se limita a los diagramas de clases para la vista estaacutetica de los sistemas de software y a los diagramas de Warnier para la vista dinaacutemica de los meacutetodos El ambiente no trabaja en red

No se modifican los archivos de InverSOODA No se modifican los archivos de InverDDVI No se recuperan diagramas de secuencias a partir de coacutedigo legado

4

8

Capiacutetulo 2

Narc0 teoacuterico

En eacuteste capiacutetulo se describen los temas usados para el desarrollo de la tesis iquestQue son los modelos iquestEn que parte del proceso de Ingenieriacutea del Software se usan los modelos o el modelado Se estudia la interfaz de usuario los lenguajes visuales y las gramaacuteticas visuales Se describe el Lenguaje de Modelado Unificado (UML) ademaacutes de la programacioacuten orientada a objetos por ser este paradigma en donde se enfoca este trabajo

Marco teoacuterico

21 Modelado de sistemas de software

un modelo es una abstraccioacuten de algo con el propoacutesito de entenderlo antes de construirlo El modelo omite detalles no esenciales haciendo maacutes faacutecil su manipulacioacuten que la entidad original [BLA98] Un modelo es la simplificacioacuten de la realidad [RUM99] Los propoacutesitos de los modelos son

Probar una entidad fisica antes de construirla Establecer mejor comunicacioacuten con los clientes Visualizar el problema y el sistema desde una mejor perspectiva Reducir la complejidad [BLA98] Capturar y precisar requerimientos y conocimiento del dominio Pensar acerca del disentildeo del sistema Capturar decisiones de disentildeo en una fomia separada que cambia a partir de los requerimientos Generar productos Organizar buscar filtrar obtener examinar y editar informacioacuten acerca de un sistema Explorar muacuteltiples soluciones econoacutemicas Manejar sistemas complejos [RUM99]

El modelado es una probada y bien aceptada teacutecnica de Ingenieriacutea de Software [RUM99] El modelado es parte central de todas las actividades que conducen a la produccioacuten de buen software Se construyen modelos para comunicar la estructura deseada y revisar el comportamiento de nuestro sistema Se construyen modelos para visualizar y controlar la arquitectura del sistema Se construyen modelos para comprender mejor el sistema que estamos construyendo muchas veces descubriendo oportunidades para la simplificacioacuten y la reutilizacioacuten Se construyen modelos para controlar el riesgo [BOO99] La razoacuten fundamental por la que modelamos es porque nosotros construimos modelos que nos ayudan a entender mejor el sistema que estamos desarrollando [RUM99]

El modelado nos permite [RUM99] 1 Visualizar como es el sistema o como queremos que sea 2 Especificar la estructura del sistema 3 Plantear nuestras guiacuteas en la construccioacuten delsistema 4 Documentar las decisiones que hemos tomado

En las etapas del desarrollo del software el modelado es usado en el disentildeo el disentildeo del sistema es la primera etapa en donde se da la aproximacioacuten baacutesica de la solucioacuten al problema seleccionado ademaacutes se decide por la estructura (arquitectura del sistema) y el estilo de la solucioacuten

La arquitectura del sistema provee el contexto sobre el cual se tomaraacuten decisiones mas detalladas en las etapas subsecuentes del disentildeo [BLA98] En el disentildeo modelamos el sistema y encontramos su forma (incluida la arquitehra) para que soporte todos los 3 -

10

Marco teorico

i

4 -I

requisitos -incluyendo los requisitos no funcionales y otras restricciones- que se le suponen [JAC99] Los propoacutesitos del disentildeo son

Adquirir una comprensioacuten en profundidad de los aspectos relacionados con 10s requisitos no funcionales y restricciones relacionadas con los lenguajes de programacioacuten componentes reutilizables sistemas operativos tecnologiacuteas de distribucioacuten y concurrencia tecnologiacuteas de interfaz de usuario tecnologiacuteas de gestioacuten de transacciones etc Crear una entrada apropiada y un punto de partida para actividades de implementacioacuten subsiguientes capturando los requisitos o subsistemas individuales interfaces y clases Ser capaces de descomponer los trabajos de implementacioacuten en partes mas manejables que puedan ser llevadas a cabo por diferentes equipos de desarrollo teniendo en cuenta la posible concurrencia Capturar las interfaces entre los subsistemas Esto ayuda cuando reflexionamos sobre la arquitectura y cuando utilizamos interfaces como elementos de sincronizacioacuten entre diferentes equipos de desarrollo Ser capaces de visualizar y reflexionar sobre el disentildeo utilizando una notacioacuten comuacuten Crear una abstraccioacuten independiente de la implementacioacuten del sistema en el sentido de que la implementacioacuten es un refinamiento directo del disentildeo que rellena lo existente sin cambiar la estructura Esto permite la utilizacioacuten de tecnologiacuteas como la generacioacuten de coacutedigo y la ingenieriacutea de ida y vuelta entre el disentildeo y la implementacioacuten [JAC99]

22 Interfaz de usuario (Mecanismos de interaccioacuten)

El crecimiento de las computadoras personales vendidas en los ~ O rsquo S lanzoacute con fuerza el ldquofaacutecil de usarrdquo como una de las caracteriacutesticas mas importante de un producto de computadora

Las interfaces graacuteficas de usuario no son nuevas se pueden encontrar en las paredes de cuevas al sur de Francia en las piraacutemides de Egipto y en las paredes de muchas ciudades [iUM92] Para el usuario de un sistema interactivo la comunicacioacuten es tan importante como la computacioacuten Para los usuarios regularmente la interfaz es el sistema [HIX93]

Disentildeo de Interfaz Seguacuten Hackos [HAC98] las interfaces estaacuten en todo donde se trabaja con

o Controles en productos de hardware o Etiquetas y sentildeales en el hardware o Pequentildeas pantallas de cristal liquido en maacutequinas de cualquier tipo o Pantallas para aplicaciones de software para terminales de computadoras centrales

Marco teoacuterico

o pantallas para aplicaciones de software en computadoras Personales sistemas operativos como Windows OS2 DOS Macintosh U n b Y Otros

0 Paacuteginas de un sitio WEB 0 Sistemas de ayuda y manuales en-liacutenea 0 Tutoriales incrustados y otros tipos de soporte de funcionamiento O Esquemas de formas y otros documentos

una interfaz es el medio con el cual los usuarios interactuacutean con el producto 0

sistema para lograr SUS objetivos

Interfaz Usable

Para que una interfaz sea usable debe ser transparente y darles a los usuarios la capacidad de lograr cumplir sus metas de forma efectiva y eficiente

Los beneficios presentados en el uso de las interfaces de usuario [TH190] Disfrutar el sistema El usuario disfruta trabajar con un sistema que cuenta con una interfaz bien disentildeada y que le da la funcionalidad y acceso a los recursos de una manera clara y sencilla Proporciona nuevas habilidades Elimina al usuario concentrarse en acciones que la propia interfaz y el sistema hacen dando como resultado que el usuario solo se concentre en lo importante del trabajo Delegacioacuten de tareas La interfaz de usuario permite al usuario no conocer los detalles de la tarea esto es la computadora atiende los detalles de las tareas mientras que el usuario se concentra en asuntos de maacutes alto nivel Seguridad El usuario no necesita estar en lugarespeligrosos para hacer su trabajo

Se da la mayor posibilidad para que el usuario tenga acceso al conocimiento utilizando un sistema interactivo Haciendo las cosas a la primera Las tareas se ejecutan en un orden correcto definido lo que da como resultado un trabajo bien terminado sin necesidad de repetir evitando asiacute altos costos Computando LOS usuarios pueden calcular datos sin necesidad de conocer el proceso para obtener los resultados

Desarrollo

El disentildeo de interfaz es un negocio bastante dificil Eacuteste combina dos complicadas disciplinas psicologiacutea y ciencias de la computacioacuten Estas disciplinas tienen un fondo cultural muy diferente la psicologiacutea atiende a la gente (comprensioacuten y entendimiento) las ciencias computacionales a las maacutequinas (matemaacuteticas y precisioacuten) El disentildeo de las buenas interfaces requiere que estas dos perspectivas esteacuten unidas [THi90]

Hackos dice que las interfaces dan simplicidad y elegancia al trabajo necesario y a la vida e los usuarios Si no es obvio al usuario pero es raacutepida para aprender [HAC98] ademaacutes define caracteriacutesticas comunes de las interfaces usables

o Hacen que el flujo de trabajo sea familiar o confortable o Soportan el estilo de aprendizaje de los usuarios

12

Marco teoacuterico

Visualizacioacuten de Entrenamiento visual Para controlar Soportar interaccioncs Programar con informacioacuten visual visuales expresiones visuales

o Compatibles con los ambientes de trabajo de los usuarios o Se extienden sobre un concepto de disentildeo que es familiar al usuario o Tienen consistencia de presentacioacuten que los hace parecer maacutes confiable y faacuteciles de

aprender o Usan lenguaje y figuras familiares al usuario o faacuteciles de aprender

Datos o informacioacuten acerca de datos

23 Lenguajes Visuales

Los lenguajes visuales son un nuevo paradigma para expresar los sistemas computacionales Ellos ofrecen la posibilidad de manipular directamente los objetos Un lenguaje visual consiste de sentencias visuales Para lenguajes visuales basados en iacuteconos cada sentencia visual es un arreglo espacial de objetos O iacuteconos graacuteficos [CHA90]

Un lenguaje visual es concebido como una coleccioacuten de figuras obtenidas por un arreglo graacutefico de objetos en dos o maacutes dimensiones Los lenguajes visuales pueden ser modelados sintaacutecticamente a traveacutes de un vocabulario un conjunto de relaciones usadas para componer las figuras y un conjunto de reglas describiendo las figuras pertenecientes al lenguaje Los objetos graacuteficos de un vocabulario de un lenguaje visual se caracterizan por contar con un conjunto de atributos Los atributos de un objeto graacutefico pueden ser atributos graacuteficos atributos sintaacutecticos y atributos semaacutenticos [MAR98]

Un lenguaje de programacioacuten visual puede ser informalmente definido como un lenguaje el cual usa algunas representaciones visuales [SHV88]

Programa ylo Disentildeo de Lenguajes de programacioacuten visual ejecucioacuten software Diagramas iconos Formas

Programacioacuten Visual [SHU88]

Gramaacuteticas para la especificacioacuten de lenguajes visuales [MAR98]

a) Gramaacuteticas texfuales generalizadas Este tipo de gramaacutetica provee una adaptacioacuten apropiada de la concatenacioacuten de siacutembolos para dos dimensiones Su principal ventaja es que conservan los elementos teoacutericos de las gramaacuteticas textuales y los eficientes algoritmos de anaacutelisis de eacutestos uacuteltimos Su principal desventaja es que eacutestas gramaacuteticas no son tan poderosas y soacutelo pueden especificar clases restringidas de lenguajes visuales

13

Marco teorico

b) Meacutetodos basados en gramaacuteticas de grafos Un ejemplo de este tiPo de gramaacuteticas son las gramaacuteticas de red Las oraciones generadas con gramaacuteticas de red son grafos dirigidos con siacutembolos en los nodos Estos grafos son llamados redes Una produccioacuten de eacuteste tipo de gramaacuteticas es de la siguiente forma

a - t p E

donde a y p son redes y E es una forma de conectar a p cuando a es conectada a otra red anfitriona

La mayor desventaja es que las gramaacuteticas de red no han probado ser totalmente uacutetiles para la especificacioacuten de gramaacuteticas arbitrarias por la complejidad para rescribir grafos y al hecho de que no todo lenguaje visual estaacute compuesto exclusivamente por grafos

C) Gramaacuteticas de multiconjuntos de atributos En estas gramaacuteticas las producciones rescriben conjuntos o multiconjuntos de siacutembolos que tienen atributos con informacioacuten sobre geometriacutea o semaacutentica La reescritura se controla con restricciones sobre los atributos de los siacutembolos en el lado derecho de las producciones

Un ejemplo de eacutestas gramaacuteticas es la Gramaacutetica Coordinada que especifica notacioacuten matemaacutetica de dos dimensiones En esencia las producciones en una gramaacutetica coordinada n-coordinada libre del contexto tienen la siguiente forma

A -t a donde C F

Todos los siacutembolos de eacuteste tipo de gramaacutetica tienen n atributos geomeacutetricos A es un siacutembolo no terminal a es una cadena no vaciacutea de siacutembolos C es una restriccioacuten sobre los atributos de los siacutembolos en a y F es una expresioacuten que computa los atributos de los siacutembolos de A en teacuterminos de los atributos de los siacutembolos en a no importando el orden de los siacutembolos en a

d) Gramaacuteticas PosicionaZes Las gramaacuteticas posicionales son un formalismo para la definicioacuten e implementacioacuten de lenguajes visuales las gramaacuteticas posicionales extienden naturalmente a las gramaacuteticas libres de contexto Una gramaacutetica libre de contexto posicional PG es una six-tupla (N T S P POS PE) donde

N es un conjunto finito no vaciacuteo de siacutembolos no terminales T es un conjunto finito no vaciacuteo e siacutembolos terminales con N n T = $I S E N es el siacutembolo no terminal de inicio P es un conjunto finito de producciones POS es un conjunto finito de identificadores de relacioacuten binaria PE es un evaluador pictoacuterico

14

Marco teorico

Cada produccioacuten en P tiene la siguiente forma

A -+ X I R I X R2 X ~ I Rm1 xm A

e) Gramaacuteticas de Relacioacuten de siacutembolos Eacuteste es un formalismo sintaacutectico para describir un lenguaje visual donde cada oracioacuten dentro del lenguaje se representa como un conjunto de objetos visuales y un conjunto de relaciones entre objetos

El alfabeto de siacutembolos Vt y el conjunto de relaciones entre siacutembolos Vr una oracioacuten de relacioacuten de siacutembolos w sobre Vt y Vr es un par ( M R) donde

M es un conjunto de elementos-s (v i) con v E Vt y i es un nuacutemero natural R es un conjunto de elementos-r de la forma r (Xi Yj) con Xi Yj E M r E Vr y una relacioacuten r esta contenida entre Xi y Yj

Una gramaacutetica de relacioacuten de simbolos es el conjunto de seis elementos G = (Vn Vt Vr S P R) donde Vn es un conjunto de siacutembolos no terminales Vt es un conjunto de siacutembolos terminales Vr es un conjunto de relaciones entre siacutembolos S es el siacutembolo inicial y P es un conjunto de reglas de reescritura (producciones de elementos-s)

f) Gramaacuteticas relacionales Este tipo de gramaacutetica pertenecen a las gramaacuteticas libres de contexto

La gramaacutetica relaciona1 (RGrsquos) es una 6-tupla G (N C S R Attr P) donde

N C S R Attr P

es un conjunto finito de siacutembolos no terminales es un conjunto de siacutembolos terminales es un siacutembolo distinguido en N llamado siacutembolo inicial es un conjunto finito de siacutembolos de relacioacuten es un conjunto finito de siacutembolos de atributos es un conjunto de producciones de la forma A-gt apF donde A E N a E (nlo)+ Donde n E N cr E E

8 Es un conjunto de relaciones de la forma (r x y) donde r E R y xy son enteros que hacen referencia a un miembro de a y tambieacuten una expresioacuten de la forma (a i) donde a E Attr e i es un entero que hace referencia a un miembrode a

F Es un conjunto de declaraciones de asignacioacuten de caracteriacutesticas de la forma (a O)=x donde a E Attr y x es un entero que hace referencia a un miembro de a o a una expresioacuten de la forma (a i)

15

Marco teoacuterico

24 Programacioacuten orientada a objetos

L~~ meacutetodos orientados a objetos organizan la informacioacuten Y el procesamiento que manipula esta informacioacuten de acuerdo a los objetos delrsquomundo real que la informacioacuten describe [BRO97l

Beneficios de las teacutecnicas orientadas a objetos [BR097] Estabilidad del sistema Mantenibilidad Componentes reusables Confiabilidad Accesibilidad de los datos Participacioacuten del usuario

Seguacuten Graddy Booch la programacioacuten orientada a objetos es ldquoun meacutetodo de implementacioacuten en el que los programas se organizan como colecciones cooperativas de objetos cada uno de los cuales representan una instancia de alguna clase y cuyas clases son todas miembros de una jerarquiacutea de clases unidas mediante relaciones de herenciardquo [JOY 981

Programacioacuten orientada a objetos esencialmente significa programacioacuten usando objetos [JAC93] Los lenguajes orientados a objetos deben soportar los siguientes conceptos

Objetos Abstraccioacuten de datos Encapsulamiento Clases e Instancias Herencia entre clases Polimorfismo

Las propiedades fundamentales de la Programacioacuten Orientada a Objetos son

a Abstraccioacuten Son ideas conceptos y propiedades que se describen en forma general eliminando los detalles Es una estructura de datos y los meacutetodos que manipulan a esos datos

b Encapsulamiento Son las fronteras propias de un objeto bien definidas las cuales protegen los detalles de su representacioacuten interna

c Ocultacioacuten de la informacioacuten Es la propiedad en la que los objetos pueden hacer uso para impedir que otros objetos los usuarios o incluso los programadores conozcan coacutemo estaacute distribuida la informacioacuten

d Herencia Es la propiedad que tiene una clase para heredar atributos y comportamiento a otras clases

e Polirnorfismo Es la propiedad que permite que una entidad pueda cambiar a diferentes formas efectuaacutendose de manera dinaacutemica en tiempo de ejecucioacuten

16

Marco teoacuterico

t

Clases Es la especificacioacuten de una familia de objetos es la declaracioacuten de un tipo de objetos Tambieacuten se dice que una clase es la descripcioacuten de un conjunto de objetos con un comportamiento similar y que esta compuesta de Datos (o atributos) y Meacutetodos o (rutinas acciones operaciones)

Objeto Un objeto es una entidad en la cual se almacenan datos y los meacutetodos o funciones que controlan dichos datos Un objeto es una abstraccioacuten de alguna cosa del mundo real que contiene datos que lo describen y operaciones que solo tienen acceso a esos datos [BR097l Los elementos de los que esta conformado un objeto son

a Las relaciones permiten que el objeto se integre en la organizacioacuten b Las propiedades son los datos que caracterizan el estado de un objeto distinguiendo

asiacute a un objeto determinado de los restantes que forman parte de la misma organizacioacuten

c Los meacutetodos son las operaciones que pueden realizarse sobre la estructura del objeto es decir las acciones que cambian el estado de un objeto y que el objeto es capaz de ejecutar a traveacutes de mensajes y que tambieacuten pone a disposicioacuten de sus descendientes a traveacutes de la herencia

Mensajes Son solicitudes para que se lleve a cabo la operacioacuten indicada y se produzca un resultado

Las razones principales para introducir la tecnologiacutea de objetos son los beneficios de dicha tecnologiacutea

Aumento de la fiabilidad Aumento de la productividad del desarrollador Desarrollo maacutes raacutepido Mejor calidad maacutes alta

Incremento en escalabilidad Mejores estructuras de informacioacuten Incremento de adaptabilidad Reduccioacuten del coacutedigo fuente

Mantenimiento maacutes faacutecil y reduccioacuten de costo

Los elementos de reutilizacioacuten son las clases y objetos

25 Lenguaje de Modelado Unificado (UML)

UML (Unified Modeling Language por sus siglas en ingleacutes Lenguaje de Modelado Unificado) es un lenguaje de modelado visual de propoacutesito general que es utilizado para especificar visualizar construir y documentar las partes de un sistema de software El lenguaje estaacute basado en un pequentildeo nuacutemero de conceptos centrales que la mayoriacutea de los desarrolladores de tecnologiacutea orientada a objetos pueden aprender y aplicar faacutecilmente [RUM99]

17

Marco teoacuterico

y UML Pasado Presente y Futuro

L~~ lenguajes de modelado orientado a objetos aparecieron a mediados de 10s 70rsquos Varias teacutecnicas influenciaron estos lenguajes El nuacutemero de lenguajes de modelado incrementoacute desde menos de 10 hasta maacutes de 50 entre 1989 y 1994 Muchos modeladores teniacutean problemas para encontrar un lenguaje de modelado que satisficiera todas sus necesidades Notablemente aparecioacute Boochrsquo93 y la evolucioacuten continuoacute a OMT y Fusioacuten

OOSE (Object-Oriented Software Engineering) estaacute enfocado a la ingenieriacutea de negocios y anaacutelisis de requerimientos dando un excelente soporte orientado a casos de uso OMT-2 es especialmente expresivo para anaacutelisis y sistemas de informacioacuten de datos grandes Boochrsquo93 fue particularmente expresivo para el disentildeo y fases de construccioacuten de proyectos y popular para aplicaciones de ingenieriacutea intensiva

Grady Booch y Jim Rumbaugh iniciaron el desarrollo de UML en 1994 al unificar sus meacutetodos independientes Booch y OMT En 1995 Ivar Jacobson se unioacute a Racional eacutesta unioacuten logroacute que el meacutetodo OOSE se incorporara La unificacioacuten establecioacute que debiacutean activar el modelado de sistemas utilizando conceptos orientados a objeto asiacute como crear un lenguaje usable tanto para las maacutequinas como para los humanos

A

Muchas organizaciones se unieron al consorcio UML y dedicaron recursos al trabajo hacia el fortalecimiento de la definicioacuten de UML Esta colaboracioacuten produjo un lenguaje de modelado expresivo poderoso y generalmente aplicable En la forma actual de UML se espera que sea base de muchas herramientas incluidas las de modelado visual simulacioacuten y ambientes de desarrollo

R UML es abierto y no-propietario y aunque define un lenguaje preciso no es barrera para futuras mejoras en conceptos de modelado Se usan muchas teacutecnicas de punta pero se esperan teacutecnicas adicionales que influencien futuras versiones de UML puede ser extendido sin redefinir el nuacutecleo

c

Mientras el rehuacuteso basado en componentes se ha favorecido ampliamente cada vez mas esto no significa que las teacutecnicas basadas en componentes reemplazaraacuten las teacutecnicas orientadas a objetos Hay solo sutiles diferencias entre la semaacutentica de componentes y clases [ALC03]

Un opaco rendimiento caracterizoacute el mercado de anaacutelisis modelado y disentildeo en el 2000 en su transicioacuten de las viejas herramientas CASE (Computer Aided Software Engineering) a algo maacutes dinaacutemico y mejor adaptado para satisfacer las necesidades de los desarrolladores para el cambio raacutepido en los ambientes de negocio

El mercado de anaacutelisis modelado y disentildeo lograraacute obtener un crecimiento positivo en varios de los siguientes antildeos por varias razones El mercado seraacute manejado principalmente por la necesidad de desarrolladores a obtener aplicaciones para lanzarse al mercado raacutepidamente asiacute tambieacuten por el intereacutes creciente y uso de una nueva especie de herramienta y por el intereacutes creciente de los desarrolladores en usar UML reglas de negocios y adaptadores de componentes para construir aplicaciones [RIKUI]

z -

18

Marco teoacuterico

UML se ha hecho el estaacutendar para los desarrollos de modelado de negocios administracioacuten de requerimientos anaacutelisis y disentildeo programacioacuten y pruebas Los objetivos primarios de UML en el disentildeo [RAT97j

o Dar a los usuarios un lenguaje visual expresivo de modelado listo para usarse para que puedan desarrollar y cambiar los significados de sus modelos

o Suministrar mecanismos de extensibilidad y especializacioacuten para extender los conceptos centrales

o Ser independiente de lenguajes de programacioacuten particulares y procesos de desarrollo

o Impulsar el desarrollo de las herramientas Orientadas a Objeto en el mercado o Soportar conceptos de desarrollo de alto nivel como colaboracioacuten marcos de

componentes reutilizables patrones y componentes o Integrar las mejores praacutecticas

9 El aacutembito de UML

UML es un lenguaje para especificacioacuten construccioacuten visualizacioacuten y documentacioacuten de artefactos de un sistema de software UML es la fusioacuten de los conceptos de Booch OMT y OOSE El resultado es un simple comuacuten y ampliamente usado lenguaje de modelado para usuarios de estos y otros meacutetodos UML se enfoca en un lenguaje de modelado estaacutendar no en un proceso estaacutendar los autores de UML recomiendan un proceso de desarrollo manejado por casos de uso de arquitectura central iterativo e incremental [iiquest4T97l

Para la definicioacuten de sistemas de software en UML se definen diagramas Un diagrama es la representacioacuten graacutefica de un conjunto de elementos este se visualiza la mayoriacutea de las veces como un grafo conexo de nodos (elementos) y arcos (relaciones) Los diagramas se dibujan para visualizar un sistema desde diferentes perspectivas de forma que un diagrama es la proyeccioacuten de un sistema uumlML incluye nueve diagramas [B0099]

4 -

I Diagrama de clases 2 Diagrama de objetos 3 Diagrama de casos de uso 4 Diagrama de secuencias 5 Diagrama de colaboracioacuten 6 Diagrama de estados 7 Diagrama de actividades 8 Diagrama de componentes 9 Diagrama de despliegue

Diagramas de secuencias Un diagrama de secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten comportamiento

Un diagrama de secuencias muestra un conjunto de mensajes acomodados en una secuencia de tiempo eacuteste diagrama muestra la interaccioacuten en un esquema de dos - dimensiones [RUM99]

19

Marco teoacuterico

Y -

Un diagrama de secuencia es un diagrama de interaccioacuten que resalta la ordenacioacuten temporal de los mensajes Un diagrama de secuencia presenta un conjunto de objetos y los mensajes enviados y recibidos por ellos Los objetos suelen ser instancias (con nombre o sin nombres) de clases pero tambieacuten pueden representar instancias de otros elementos tales como colaboraciones componentes y nodos Los diagramas de secuencia se utilizan para describir la vista dinaacutemica de un sistema [B0099]

Usar los diagramas de secuencia es mostrar la secuencia que existe en un caso de uso [RUM 991

Los diagramas de secuencia tienen dos dimensiones Una dimensioacuten que representa el tiempo Otra dimensioacuten que representa los diferentes objetos que participan en la secuencia de eventos requeridos para completar el propoacutesito [MOuuml98]

El principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildea las interacciones de los objetos [DAN02]

20

Capiacutetulo 3

DesawoCCo de Ia herramienta

En este capiacutetulo se describe el desarrollo del Ambiente Visual Se describe el modelo conceptual del sistema la arquitectura asiacute como tambieacuten los elementos que componen la Arquitectura Se estudian los Diagramas de Secuencias de UML y algunos Patrones de Disentildeo de los que se hace uso para el mejor desarrollo del sistema Se describe a detalle la Gramaacutetica Visual Relaciona1 utilizada para el de Ambiente de desarrollo

I CENIOET 1FNTRO DE INFORMACION

Desarrollo de la herramienta

t i i

Actualmente existe en el cenidet un Ambiente Visual de Modelado de Clases llamado InverSOODA este Ambiente Visual tiene la capacidad de realizar la generacioacuten automaacutetica de coacutedigo de las clases en C++ a partir del modelo especificado Ademaacutes se puede realizar la Ingenieria Inversa de un coacutedigo legado para obtener el modelo de clases Aunado a este trabajo existe el Ambiente Visual denominado InverDDVi con el cual se puede realizar el Disentildeo Detallado de los Meacutetodos de las Clases con diagramas de Warnier Asiacute tambieacuten es posible obtener el modelo aplicando la Ingenieriacutea Inversa a un coacutedigo legado en C++

Ambos trabajos son retomados en este proyecto para la automatizacioacuten en la obtencioacuten de los Diagramas de Secuencias de UML La figura 31 muestra el modelo propuesto de ingenieriacutea directa

Extraer informacioacuten del diagrama de

rsquo rsquo

Diagrama de 11 clases I o

detallado de

detallado de

o meacutetodos

i ir---- Construir el

secuencias i

Modelo de Ingenieriacutea I directa automaacutetica

I

Figura 31 Modelo de Ingenieria Directa Autombtica de los Diagramas de Secuencias

Para la construccioacuten automaacutetica de un diagrama de secuencias se toma como base a un diagrama de Clases El modulo ldquoExtraer informacioacuten del diagrama de Clasesrdquo sirve para obtener el nombre y los meacutetodos descritos en cada uno de las clases que existan en el diagrama de Clases

22

Desarrollo de la herramienta

Con base en la informacioacuten que se tiene se abren los archivos correspondientes a los diagramas de Warnier El proceso que se emplea sobre cada uno los diagramas de Warnier llamado ldquoExtraer informacioacuten de los disentildeos detallados de los meacutetodosrdquo sirve para recopilar el conjunto de las llamadas de cada meacutetodo definido

En el siguiente paso (ldquoReconocer llamadas a meacutetodosrdquo) consiste en identificar si los meacutetodos que estaacuten descritos en los diagramas de Warnier tambieacuten lo estaacuten en el diagrama de Clases correspondiente

El paso ldquoConstruir los diagramas de secuencias automaacuteticamenterdquo realiza una validacioacuten de los meacutetodos definidos en los diagramas de Clases con los meacutetodos definidos en los diagramas de Warnier Este paso crea una estructura de datos con la secuencia de las llamadas y la recorre para crear los objetos y los mensajes en el diagrama de secuencias

AI terminar la creacioacuten automaacutetica del diagrama de secuencias se dispone de la r opcioacuten de guardar

31 Disentildeo de la Arquitectura

Para definir los procesos que el sistema va a realizar es necesario llevar a cabo un anaacutelisis de requisitos los cuales pueden ser expresados mediante diagramas de Casos de Uso Los Casos de Uso son una descripcioacuten textual narrativa de los procesos de un sistema

311Requisitos (Diagrama de Casos de uso)

Los casos de uso en realidad no son un artefacto de anaacutelisis orientado a objetos estos describen simplemente procesos y pueden ser igualmente efectivos en un proyecto tecnoloacutegico no orientado a objetos Son usados en un paso preliminar a la descripcioacuten de requerimientos de un sistema [LAR971 La Figura 32 muestra el diagrama de casos de uso que especifica al S3C

9

S3C (Diagramas de Secuencias)

usuario I Modelado de

I

Figura 32 Diagrama de Casos de Uso para el S3C

23

Desarrollo de la herramienta

Descripcioacuten de los Casos de Uso

Caso de Uso ldquoDiagramas de Secuenciasrdquo Se inicia cuando el actor ldquousuariordquo solicita la creacioacuten de un Diagrama de Secuencias Se establece la forma de la construccioacuten automaacutetica de los diagramas de secuencias de UML Se hace uso del Modelado de Clases y del Modelado del disentildeo detallado de los meacutetodos

Escenario de Eacutexito 1 Se obtiene la informacioacuten de las clases del modelado de clases 2 Se obtiene la informacioacuten del modelado del disentildeo detallado de los meacutetodos 3 Se realiza la construccioacuten automaacutetica de los diagramas de secuencias

1 En el modelo de clases no hay informacioacuten o estaacute incompleta 2 En el modelo del disentildeo detallado de los meacutetodos no hay informacioacuten o estaacute

incompleta

Escenario de Falla

Caso de Uso ldquoModelado de Clasesrdquo El diagrama de Clases se utiliza para obtener los nombres de clases y los nombres de los meacutetodos de cada clase

Escenario de Eacutexito 1 Se abre el modelo 2 Se procesa para obtener la informacioacuten de las clases (nombres de clases y nombres

de meacutetodos)

Escenano de Falla h 1 No se puede abrir el modelo J 2 El modelo esta vaciacuteo

Caso de Uso ldquoModelado del Disentildeo detallado 1 los meacutetodosrdquo El disentildeo detallado de los meacutetodos se realiza con diagramas de Warnier aquiacute se establecen las llamadas a funciones dentro del sistema y es aquiacute donde se identifica el dinamismo que se representaraacute en los diagramas de secuencias

Escenario de Eacutexito 1 Se abre el modelo 2 Se realiza la identificacioacuten de las llamadas existentes

Escenario de Falla 1 No se puede abrir el modelo 2 El modelo esta vaciacuteo

24

Desarrollo de la herramienta

Clase Objeto ni I Diagrama I n ____ Nombre Descripcioacuten

i

Mensaje

Tipo

En el Anaacutelisis Orientado a Objetos se crea una especificacioacuteii del dominio del problema y de los requeriinientos desde la perspectiva de una clasificacioacuten por objetos y del entendimiento de los teacuterminos usados en el dominio del problema Una descomposicioacuten del dominio del problema involucra una identificacioacuten de conceptos atributos y asociaciones que son considerados importantes dentro del dominio El resultado puede ser expresado en un Modelo Corzcepttraf el cual es ilustrado en un conjunto de diagramas que definen conceptos (objetos) [LAR97]

312Modelo Conceptual

El modelo conceptual visto en la Figura 33 no es una descripcioacuten de componentes de software representa conceptos en el domino del problema en el mundo Teal [LAR97l

313Diagramas de clases

Por cuestiones dc espacio las clases de la arquitectura del sistema estaraacuten referidas en varios diagramas que de alguna manera estaacuten relacionados entre si

Una de las partes maacutes importantes del Ambiente Visual S3C es la estructura de clases ltCCraJicogt la cual se refiere al control de los diagramas eacutesta por su naturaleza podriacutea considerarse el nuacutecleo del sistema La manipulacioacuten y control de los diagramas estaacute definido en una estructura de clases organizada con el patroacuten de disentildeo Composite que se muestra en la Figura 34

25

Desarrollo de la herramienta

CRecursividadDS CMensajeDS CObjetoDS CDiagramaDS

I Cvisitor I

CApuntadorDS CDblClickDS CAsocAdjusterDS CSelectorDS

26

Desarrollo de la herramienta

n 32 Elementos de la arquitectura

Es necesario describir los elementos que dan soporte a la arquitectura del ambiente donde se implementaraacute el sistema en este caso Microsoft Visual (MV) C++ 6 El MV C++ es un marco de aplicacioacuten poderoso basado en Windows se integran ademaacutes del lenguaje C++ (compilador y enlazador) el programa de desarrollo de programas en lenguaje C para Windows (SDK) la Microsoft Foundation Class Library AppWizzard Classwizard AppStudio y WorkBencli

La Microsoft Foundation Class Library comprende una biblioteca de clases de C++ y es considerada como el nuacutecleo del MV C++

321Microsoft Foundation Class (MFC)

La libreriacutea Microsoft Foundation Class (MFC) es una interfaz orientada a objetos que tiene las siguientes metas de disentildeo

o

Reduccioacuten significante de esfuerzo al escribir una aplicacioacuten para Windows Velocidad de ejecucioacuten comparable a las APIrsquos del lenguaje C Miacutenimo tamantildeo de coacutedigo Capacidad para llamar cualquier funcioacuten de Windows en C directamente Faacutecil conversioacuten de aplicaciones existentes en C a C++ Faacutecil uso de APIrsquos de Windows con C++ como con C Faacutecil uso de complicadas caracteriacutesticas de abstracciones poderosas como ActiveX soporte para base de datos impresioacuten barras de herramientas y barras de estado El API de Windows en C++ si usa tan efectivamente como las caracteriacutesticas mismas del lenguaje C++

La mayoriacutea de las clases de la Libreriacutea de la Microsoft Foundation Class son derivadas de una clase base ltCObjectgt que es la raiacutez de la jerarquiacutea de clases ltCObjectgt da uacutetiles capacidades a las clases que derivan de ella

La jerarquiacutea que existe en las clases derivadas de ltCObjectgt es la siguiente

Arquitectura de Aplicacioacuten Excepciones Servicios de Archivos Arreglos Listas Mapas Servicios de Internet Sockets Sincronizacioacuten Soporte para base de datos D A 0

27

Desarrollo de la herramienta

i

r

Liacutenea de Comandos Menuacute Dibujo Graacutefico Dibujo Graacutefico de Objetos Soporte de Control Soporte de Ventanas

Soporte para base de datos ODBC

o Marco de Ventanas o Barras de control o Hojas de propiedades o Cajas de Dialogo o Vistas o Controles

322Arquitectura Documento Vista

Por defecto las aplicaciones creadas con la MFC usan un modelo de aplicacioacuten que separa los datos del programa de las vistas de interaccioacuten con el usuario En eacuteste modelo un objeto documento de MFC lee y escribe datos en un almacenamiento persistente Un objeto vista administra el despliegue de datos suministrando al usuario los datos para ser seleccionados o editados La vista le comunica al documento cualquier cambio en los datos La razoacuten maacutes conveniente para seguir este modelo es cuando se necesita muacuteltiples vistas del mismo documento (como en una hoja de caacutelculo y un graacutefico)

La arquitectura documentovista hace faacutecil el soporte de muacuteltiples vistas y muacuteltiples tipos de documentos asiacute como la divisioacuten de ventanas y otras caracteriacutesticas de interfaz de usuario Pero el corazoacuten de la arquitectura son cuatro clases (Mostradas en el aacuterbol de clases de la Figura 36)

ltCDocumerrtgt (o ltCOleDocuinentgt) - Se instancia un objeto de este tipo para almacenar y controlar los datos del programa ltCViewgt (o una de sus clases derivadas ltCScrotlViewgt ltCFormViewgt ltCEditView ltCRecordViewgt ltCDaoRecordView ltCtreeViewgt ltCListViewgt b ltCrichEditViewgt) - Un objeto es usado para desplegar los datos y administrar la interaccioacuten del usuario con los datos ltCFrameWndgt (o una de sus variantes) - Establece el marco sobre el que trabajaraacuten una o mas vistas de un documento ltCDocTemolategt (o ltCSingIeDocTemplategt o ltCMultiDocTemplategt) - Coordina la existencia de uno o maacutes documentos de un tipo dado y administra la correcta creacioacuten de los documentos vistas y objetos ventanas para cada tipo

i

28

Desarrollo de la herramienta

______________ 2 Wiew

I - - __ - ------a ________________

323Integrando Ambientes en Visual C t t

Las aplicaciones de Interfaz de Documento Uacutenico (SDI) soporta muacuteltiples tipos de documentos pero este soporte es para un solo objeto documento Debido a esta restriccioacuten y aunado a la necesidad de tener varios objetos documentos a la vez se determina la utilizacioacuten del modelo Interfaz de Muacuteltiples Documentos (MDI) indicado en la Figura 37

324Interfaz de Muacuteltiples Documentos (MDI)

Una aplicacioacuten de Interfaz de Muacuteltiples Documento (MDI) permite la creacioacuten de plantillas para el manejo de los documentos eacutesta plantilla tiene la forma

rn-pDocTemplate = new CMultiDocTernplate ( I DR-SCUMLTY PE RUNTIME-CLASS (CSCUMLDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CTheView))

AddDocTernplate ( rn-pDocTemplate )

Cada plantilla describe una relacion del tipo de documento con la vista asociada La definicioacuten de la plantilla para el ambiente que controla los diagramas de secuencias es la siguiente

29

Desarrollo de la herramienta c

m-pTernplateSeqDlag = new CMultiDocTernplate ( IDR-DS-SJCTYPE RUNTIME-CLASS (CSeqDiagDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CSeqDiagView) )

AddDocTernplate( rn-pTernplateSeqDiag )

Esta plantilla hace uso de la clase CCliildFrame que por defecto el ambiente Visual C++ construye y esto es debido a que no se requieren caracteriacutesticas extras en las ventanas de las que proporciona dicha clasc En un caso en el que se requiriera un comportamiento diferente de la vista tendriacutea que crearse una nueva clase con las caracteriacutesticas deseadas

Vista Documento

Vista

I- Vista Documento I [ Tip- F Vista

L Figura 37 Modelo Interfaz de Muacuteltiples Documentos (MDI)

Para integrar otro Ambiente que utilice otro tipo de documento es necesario definir otra plantilla de la misma forma mencionada Debe tomarse en cuenta los siguientes puntos

Es necesario definir el nombre (mqTemplateNOMBRE) El IDR del tipo que se requiere que sea el documento En la primera liacutenea RUNTIME CLASS debe indicar la clase ltCDocumentgt que desea La segunda liacutenea RUNTIME-CLASS soacutelo la cambia a otra clase si requiere de otro manipulador de ventanas de lo contrario deje que ltCChildFramegt se haga cargo

-

30

Desarrollo de la herramienta

En la uacuteltima liacutenea referente a RUNTIME-CLASS se debe indicar la clase ltCViewgt que desea usar Para finalizar se usa la instruccioacuten AddDocTernplate para finalizar la definicioacuten del template (mgTemplateNOMBRE)

325 Recursos Diaacutelogos Mertuacutes y Barras de Herrattriertias

Son varios los recursos con los que se puede contar al crear un proyecto en Microsoft Visual C++ Los diaacutelogos son un recurso disponible que son utilizados para visualizar ingresar yo modificar informacioacuten que se requiera En el Ambiente Visual que se desarrolla son varios los diaacutelogos que se utilizaraacuten y eacutestos se describen a continuacioacuten

El Diaacutelogo ldquoCaracteriacutesticas del Obietordquo (Figura 38) identifica el nombre del Objeto y la descripcioacuten del mismo Este diaacutelogo se muestra cuando se presiona doble clic sobre un objeto del diagrama

I Nombre

Desciipcion

Figura 38 Dialogo Caracteriacutesticas del Objeto

El Diaacutelogo ldquoMensaierdquo (Figura 39) muestra el nombre del mensaje que puede ser modificado ademaacutes se visualizan el Identificador del Mensaje el tipo de Mensaje asiacute tambieacuten el origen y destino del mensaje

31

Desarrollo de la herramienta

Nornbie delMensaje Edit

IDentificador del Mensaje Edil Tipo de Mensaje (Edil

Edit Objeto Origen

Objeto Destino IEdit

i25El A Figura 39 Dialogo Mensaje

El menuacute es otro de los recursos del que se puede disponer para organizar el ambiente que se estaacute creando Para eacuteste caso en particular no se hizo modificaciones al menuacute estaacutendar (Figura 310) que Visual C++ presenta Los cambios significativos son el manejo del tipo de documento para los Diagramas de Secuencias

Archivo Editar Yer VenLana AyGda

Figura 310 Menuacute de los Diagramas de Secuencias (estaacutendar)

Otro importante recurso del que uno se puede valer en Visual C++ es la barra de herramienta personalizada la cuaacutel es construida en el Editor de Recursos Se ha construido una barra (Figura 311) con los elementos graacuteficos de los Diagramas de Secuencia de UML

Figura 311 Barra de Herramientas de los Diagramas de Secuencias

Es recomendable que al utilizar barras de herramienta personalizada se defina en el tamantildeo estaacutendar ya que puede experimentar problemas al momento de ejecutar la aplicacioacuten

Ademaacutes puede usar la propiedad TBBS-CHECKGROUP en una barra de herramientas para establecer que los botones puedan quedar presionados hasta que un botoacuten diferente sea presionado No olvide que la numeracioacuten inicia con cero ( O )

vuriableToolBurSetButtonStyle(OTBBSCHECKGROUP)

32

Desarrollo de la herramienta

Prefijo ID IDC IDD IDP IDR IDS

326 Notacioacuten estaacutendar

Los nombres descriptivos de los recursos se asocian a un valor uacutenico Para una mayor claridad eacutestos nombres mantienen un prefijo que describe el tipo de recurso asociado (vea la Tabla 31) [MIC99]

Tipo de Recurso Comandos de Menuacute Controles y recursos Cuadros de diaacutelogo Cadenas de solicitud para cuadros de mensaje Menuacute principal barras de herramienta tabla aceleradora y el icono Cadenas

IDR IDD IDC ID

200 - 299 3000 - 3999 34000 - 34999

Estos son los rangos de valores establecidos para el proyecto S3C Si se utiliza el coacutedigo fuente y se planea agregar otro proyecto verifisue que no se invadan estos nuacutemeros para evitar problemas

Para facilitar auacuten maacutes los trabajos futuros se ha definido una estructura de carpetas (ver Figura 312) para incluir en cada una las Clases correspondientes a cada tesis en desarrollo

33

Desarrollo de la herramienta

ill ~~ -

-I SCUML classes + U A N T L R + U App + 0 ClassDiagrams + 0 Common + a Java

t $2 SequenceDiagiams

+ WarnierDiagrams

iJ PackageDiagrams

12 StaterChartDiagrams

+

- f Classview I Resourceview 1 FileView ]

~ ~

Figura 312 Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)

327Estructura de datos persistencia y recuperacioacuten

Existe una gran cantidad de tipos de datos estructuras clases y meacutetodos de los que se puede hacer uso para una mejor y maacutes faacutecil obtencioacuten de los resultados A continuacioacuten hago comentarios en tipos de datos y meacutetodos en los que podriacutea tener problemas

CTypedPtrList

AI usar este tipo de dato o alguno relacionado que le permita utilizar el meacutetodo ltCTvrgtedPtrListGetNextgt tenga especial precaucioacuten al usarlo ya que al devolver el valor requerido la variable POSITION usada no se queda apuntando a ese valor en particular salta al inmediato siguiente de la lista

Si se realiza una creacioacuten dinaacutemica con punteros para los elementos de una CTypedPtrList Despueacutes de haberlo agregado a la lista evite el delete para borrar esta Usted deseando liberar la memoria no lo haga ya que eliminara directamente el elemento de la lista

POSITION

Es un valor usado para denotar una posicioacuten de un elemento en una coleccioacuten Pero CUIDADO no se refiere a un iacutendice es una referencia (no consecutiva) de punteros muy diferente a un iacutendice

CString

Auacuten cuando el operador de comparacioacuten == (igual a) es permitido para ser utilizado en las cadenas evite su uso ya que en ocasiones aunque cuando la e

34

Desarrollo de la herramienta

compilacioacuten no indique error alguno en la ejecucioacuten no realizaraacute lo que se necesita Recomiendo que utilice CStringCompare ()

Para eliminar el contenido de un CString utilice CStringEmpty() ya que asignar a la cadena un ldquonrdquo podriacutea causarle problemas

Serializacioacuten

Una forma en que se puede guardar informacioacuten y recuperarla de manera eficaz es mediante la serializacioacuten de objetos La serializacioacuten es un proceso que permite escribir un objeto en un archivo y tambieacuten leerlo

Para que la serializacioacuten se lleve a cabo son necesarios tres objetos un objeto de tipo ltCFilegt que represente el archivo un objeto de tipo ltCArchivegt que ofrece el entorno para la serializacioacuten y la clase del objeto a ser serializado debe ser heredada de ltCObjectgt y sobrescribir el meacutetodo ltSerializegt para que se encuentre de tal forma en que pueda ser serializado (vea la Figura 313)

Objeto a ser serializado 1

1 CArchive

[f --=I- ---7 Archivoexi

u Figura 313 Serializacioacuten

328Patrones de disentildeo utilizados

Se ha planteado la definicioacuten de una arquitectura de clases utilizando patrones de disentildeo debido a que algunos de ellos hacen maacutes faacutecil la extensioacuten de la funcionalidad y mantenimiento

35

Desarrollo de la herramienta

El patroacuten Composite es utilizado para crear de manera uniforme el diagrama sobre el que se trabaja (ver Figura 34) manteniendo una jerarquiacutea de clases uniforme las clases maacutes bajas en la jerarquiacutea definen primitivas de objetos graacuteficos

Se aplica el patroacuten de disentildeo Iterator para hacer recorridos en listas de objetos para realizar diversas operaciones Otro patroacuten de disentildeo del que se hace uso es el Visilor (ver Figura 35)

Para otras actividades que se realizan podriacutea pensarse en que se deberiacutean aplicar otros patrones pero se han evitado algunos (como el patroacuten de disentildeo Builder) para evitar incrementar la complejidad en la arquitectura ya que ai mantener el modelo de la MFC de documentovista la funcionalidad del patroacuten de disentildeo Builder es faacutecilmente reemplazado si se hiciera Uso de eacuteste se aumentariacutea la complejidad excesivamente (nos llevariacutea a perdemos en ocasiones en el paso de mensajes entre clases) dantildeando la facilidad de la arquitectura

33 Diagrama de secuencias

Un Diagrama de Secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten escenario Oacute comportamiento se usan para definir el curso loacutegico de accioacuten de un posible camino a seguir en la resolucioacuten de un problema Seguacuten John Daniels [DANO2] ldquoel principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildean las interacciones de los objetosrdquo

Los Diagramas de Secuencias se utilizan en el modelado de la implementacioacuten de sistemas de software ademaacutes son aplicables en el modelado de requisitos para establecer las comunicaciones existentes entre actores yo clases del sistema Con eacutestos diagramas se logran hacer descripciones de los escenarios y los comportamientos del sistema Con los Diagramas de Secuencias es posible definir protocolos de comunicacioacuten con paso de mensajes ya que dan esa flexibilidad que se requiere Ademaacutes los Diagramas de Secuencias contienen informacioacuten suficiente para que puedan ser transformados a los diagramas de colaboracioacuten [RUM Ol][BOO Oil

331Ciclo de vida del software

Considerando cualquier modelo de ciclo de vida del software (en la figura 314 se muestra el Modelo de cascada) el aacutembito directo de eacuteste Ambiente Visual es en el disentildeo aunque tiene sus vertientes en la codificacioacuten y mantenimiento

36

Desarrollo de la herramienta

Diseno

Codificacibn

I I I I Mantenimiento I

igura 314 Modelo de cascada del ciclo de vida del software

34 Elementos atoacutemicos de la Gramaacutetica

Definicioacuten de los elementos atoacutemicos del lenguaje y su contenido

1 Actor- Representa roles de entidad externos al sistema con el que interactuacutea directamente Los actores pueden ser humanos dispositivos u otros sistemas

2 ClaseObjeto- Determina una Clase u Objeto participante en la interaccioacuten

3 Mensaje-Es una comunicacioacuten entre objetos que contiene informacioacuten Eacuteste se representa con la finalidad a que una accioacuten sea llevada a cabo

4 Mensaje con tiempo- Tiene la misma finalidad que el mensaje la diferencia es que con eacutel se representa un atributo de tiempo

5 Mensaje asiacutencrono Es un mensaje que ocurre en el tiempo de manera independiente a otros mensajes

6 Mensaje de destruccioacuten de objeto- Es un mensaje cuya finalidad es indicar la destruccioacuten del objeto destino

7 Mensaje de creacioacuten de objeto- Es un mensaje que indica la creacioacuten de un objeto

8 Llamada al mismo objeto (Recursividad)- Es usado para modelar llamadas recursivas en el que una operacioacuten es invocada por el mismo objeto

37

Desarrollo de la herramienta

9 Destruccioacuten del objeto (AutodestrucciOacuten)- Puede o no modelarse es representada con una X al final de la liacutenea de vida del objeto

Elementos aulomaacuteticos

1 Liacutenea de Vida- Representa la vida del objeto durante la interaccioacuten

2 Activacioacuten- Muestra el periacuteodo de tiempo en el cual el objeto alguna operacioacuten

341RepresentaciOacuten visual

Representacioacuten visual de los elementos atoacutemicos del lenguaje

Actor

_- A

Mensaje

Mensaje de Creacioacuten de

Objeto

ClaseObjeto

I

Mensaje de retorno

Mensaje de Destruccioacuten de

Objeto

abla 32 Element(

Activacioacuten

Mensaje con tiempo

Autodestruccioacuten

x

atoacutemicos del lengi

taacute realizz

Texto ===I (letra)+ (letra I

numero) letra= AZ I az numero = 09

I

Recursividad ~

I

i j e

io

38

u

Comentario

iexcl

Conector de Comentario

35 Gramaacutetica desarrollada

La gramaacutetica que se propone es una gramaacutetica visual del tipo relacional Una gramaacutetica relacional pertenece a las gramaacuteticas libres de contexto es una 6-iupla G (N C S R Attr P) donde

N es un conjunto finito de siacutembolos no terminales C es un conjunto de siacutembolos terminales S es un siacutembolo distinguido en N llamado siacutembolo inicial R es un conjunto finito de siacutembolos de relacioacuten Attr es un conjunto finito de siacutembolos de atributos P es un conjunto de producciones

Entonces definiendo nuestra gramaacutetica G (N C S R Attr P)

N = Diagrama GrupoClaseObjeto

S = Diagrama

R = mensaje mensajeTiempo mensajeRetomo mensajeAsincrono mensajecrea mensajeDestruye autodestruccioacuten recursividad

R

Attr = entrada salida entradacrea

39

Desarrollo de la herramienta

Definiendo la posicioacuten de los atributos en los elementos visuales

entradacrea ObetaClase

entrada

salida

P =

Diagrama I GrupoClaseObjeto (mensaje (mensajeRetorno

(salida 1) (entrada 2) ) (salida 2) (entrada 1) )

- Diagrama 0 GrupoClaseObjeto

(mensaje (mensaje (mensajeRetomo (mensajeRetomo (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entradacrea 2) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 1) ) (salida 1) (entrada 1) )

entrada

salida

40

Desarrollo de la herramienta

s

-

GrupoClaseObjeto - 1 1 I 2 (mensaje (mensaje (mensajeRetorno (mensajeRetorno (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entradacrea 2) ) (salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 1) ) (salida I ) (entrada I ) )

1 En las gramaacuteticas relacionales una produccioacuten estaacute acompantildeada de las posibles

relaciones que puedan generarse En la primera produccioacuten Diagrama produce a un Actor seguida de un GrupoClaseObjeto el Actor inicia la interaccioacuten con un mensaje y recibe el mensaje de retorno al finalizar la interaccioacuten La segunda y tercera produccioacuten son similares debido a que un GrupoClaseObjeto contiene dos ClaseObjeto que se relacionan de la misma forma

Existe un elemento de la gramaacutetica llamado Attr (Atributo) el cual define la parte de los elementos visuales donde se establecen las relaciones Se han determinado dos atributos (entrada y salida) que para nuestro propoacutesito estaraacuten establecidos en la liacutenea de vida de cada elemento visual (Actor y ClaseObjeto)

Los Comentarios y la Activacioacuten no se consideran en la gramaacutetica Los comentarios son libres de incluirse y relacionarse con cualquier elemento y relacioacuten mencionada anteriormente y la activacioacuten existe siempre que se presente un mensaje (o podriacutea omitirse) Estas consideraciones se realizaron para hacer auacuten maacutes faacutecil la gramaacutetica ya que si se trata de realizar un sistema las restricciones de estos elementos pueden mantenerse en el lenguaje de programacioacuten en el que se desarrolle el sistema

36

Precondiciones

El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias

1 El diagrama de Clases debe existir y estar completo 2 Debe existir un archivo con un diagrama de Warnier por cada diagrama de Clases y

con el mismo nombre de archivo (excepto la extensioacuten del archivo) 3 En el uacutenico diagrama de Warnier de cada Clase se deben modelar todos los meacutetodos

de la Clase 4 No realizar declaraciones de meacutetodos

41

Desarrollo de la herramienta

5 Debe existir un meacutetodo lsquomain()rsquo en el diagrama de Clases

Restricciones

Los meacutetodos deben mantener nombres distintos en las diferentes Clases

Metodologiacutea para la obtencioacuten automaacutetica de los Diagramas de Secuencias

1 Seleccionar el diagrama de Clases

2 Se construye una lista con los nombres de las Clases y los Meacutetodos

3 Se verifica si exista el meacutetodo lsquomain()rsquo en alguna Clase Se busca la existencia de una uacutenica Clase

a La Clase que contenga lsquomain()rsquo se va al inicio de la lista de Clases

b Si no existe lsquomain()rsquo SE TERMINA EL PROCESO

4 Se verifica la existencia de los archivos que contienen el Disentildeo Detallado de los meacutetodos en Wamier para cada una de las Clases si alguno falta SE TERMINA EL PROCESO

5 Se procesa cada uno de los modelos del Disentildeo Detallado de los Meacutetodos generando una lista de secuencias de llamadas por cada uno de los meacutetodos

6 Se verifica que cada llamada corresponda a alguacuten meacutetodo existente (del diagrama de Clases) De no existir ese meacutetodo la llamada entra a una estructura que

7 Se crea una lista de secuencia

a Se inicia con lsquomain()rsquo b Se recorre cada una de las llamadas de los meacutetodos c Se considera invaacutelido el caso de que un meacutetodo intente una llamada

recursiva al meacutetodo lsquomain()rsquo

8 Se muestra un diaacutelogo de resultados en el que se indican las llamadas que no se encnotraron definidas y que pueden ser Llamada a libreriacutea oacute Llamada Erroacutenea

42

Capiacutetulo 4

Prue6as y su6taaacuteos

En eacuteste capiacutetulo se da a conocer el detalle de las pruebas y de los resultados obtenidos Se describen los casos de prueba con los que se realizoacute la evaluacioacuten del sistema asiacute tambieacuten se presentan comentarios acerca de los resultados obtenidos

Pruebas y Resultados

41 Recursos teacutecnicos utilizados

Para llevar a cabo las pruebas al sistema S3C se utilizaron los siguientes equipos de Coacutemputo

Computadora de escritorio

256MB RAM Disco Duro 80G Monitor 17rdquo SAMSUNG

AMD Athlon XP 1600+ I4Ghz

Computadora de escritorio Intel Pentium 4 - 128MB RAM Disco Duro 40G Monitor 15rdquo i -

42 Descripcioacuten del plan de pruebas

Las pruebas establecen el Uacuteltimo paso desde donde es posible evaluar la calidad y descubrir los errores Las pruebas y la validacioacuten del software se utilizan para comprobar que el sistema cumple con las expectativas del usuario

En esta seccioacuten se describen los casos de prueba que se realizaron al prototipo de S3C en conjunto a la suite cenidet-UML Para cada uno de los casos se presenta el objetivo el procedimiento que se siguioacute para la prueba y se muestran los resultados obtenidos - _

Las pruebas a realizar son los siguientes

Caso 1 Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Caso 2 Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Wamier

Caso3 Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Wamier

Caso4 Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo 5

44

Pruebas y Resultados

43 Resultados

431 Caso 1

5 Y

IZ =

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoSirdquo 4 Seleccionar el archivo ldquoVENTASrdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 41 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

s3c iuevo Proyecto SCUM1

Diagrama de clases

lvendedor I L

3

salida

venta prod

4 venia-oferta vcntaprod =

salida 6

Figura 41 Resultado del caso de prueba 1

45

Pruebas y Resultados

432 Caso 2

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Warnier (almacenwar cajawar vendedorwar) que ya cxisten (del caso de prueba I )

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoNordquo 4 Agregar las siguientes Clases con los respectivos meacutetodos y atributos

a Claseldquovendedorrdquo Meacutetodos ldquoventa mainrdquo b Claseldquoalmacenrdquo Meacutetodos ldquoentrada salidardquo c Claseldquocajardquo Meacutetodos ldquoventagrodrdquo

5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 42 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

Diagrama de daseo lisgrama dcsccucncis

MOIDOC Anivo

venta prod

salida

1 Ycrdquo1a 2

I 4 vcrdquolD~o1cn venta prod gt

salida 6 i Figura 42 Resultado del caso de prueba 2

46

Pruebas y Resultados

r

433 Caso 3

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Warnier

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 43 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

5

Error al tratar de abrir el archivo A bZwar

Aceptar i

Faltan Archivos de Disentildeos Detallados de Meacutetodos 1 1 A No se puede crear el diagrama de secuencias

Figura 43 Resultado del caso de prueba 3

47

Pruebas y Resultados

434 Caso 4

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 44 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

lsquo I

~ _ i i _ l _ Repaado ~~ ~ ~ 6~ ampA Figura 44 Resultado del caso de prueba 4

48

Pruebas y Resultados

PRUEBA DESCNPCION CASO 1 Mostrar la funcionalidad del

Sistema S3C a partir de un

44 Anaacutelisis de Resultados

RESULTADOS Se comproboacute la correcta funcionalidad del Sistema S3C a partir de un diagrama

CASO 3

CASO4

I diagrama de Clases cxistcnte I de Clases existente CASO 2 I Mostrar la funcionalidad del I Sc comproboacute la corrccta funcionalidad

Sistema S3C a partir de un del Sistema S3C a partir de un diagrama diagrama de Clases que se de Clases que se construye al momento construye al momento Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el Secuencias si falta alguno de los diagrama de Secuencia si falta alguno diagramas de Warnier Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el secuencias si hace falta el meacutetodo diagrama de Secuencias al faltar el ldquomain ()rdquo meacutetodo ldquomain()rdquo

de los diagramas de Warnier

Los resultados obtenidos de cada uno de los casos establecidos demuestran que se validoacute la funcionalidad del prototipo con los requisitos definidos en el alcance de este proyecto

a lt

49

Conclusiones y Tru6ajos Futuros

Aquiacute se dan a conocer las conclusiones y se describen los posibles trabajos futuros para la continuacioacuten de eacuteste proyecto

F

51 Conclusiones

Conclusiones y trabajos futuros

Se ha creado un Ambiente Visual que permite obtener de forma automaacutetica los Diagramas de Secuencias en base a los diagramas de Clases y al disentildeo detallado de los meacutetodos descritos con diagramas de Warnier cumpliendo con los objetivos planteados para este trabajo

La tesis aporta principalmente La generacioacuten automaacutetica de los diagramas de secuencias y la eliminacioacuten de inconsistencias al mantener una validacioacuten directa de los diagramas de clases y los diagramas de Warnier que son utilizados

Esta validacioacuten es lograda a traveacutes del uso de la gramaacutetica visual relaciona1 que se ha definido (veacutease el capiacutetulo 3) Esta gramaacutetica visual establece reglas para la correcta construccioacuten de los diagramas de secuencias

P De esta manera se establece que la hipoacutetesis ldquoEs posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodosrdquo Es verdadera

52 Trabajos Futuros

Un Diagrama de Secuencias puede convertirse en un Diagrama de Colaboracioacuten por lo tanto un trabajo futuro es la construccioacuten automaacutetica de un Diagrama de Colaboracioacuten a partir de uno de Secuencias existente

Es posible calcular la meacutetrica de acoplamiento al tener un Diagrama de Secuencias construido

La Ingenieriacutea directa de un Diagrama de Secuencias estableciendo la validacioacuten en la construccioacuten de todos los elementos visuales que UML define

La propagacioacuten de las modificaciones de un Diagrama de Secuencias a los Diagramas de Clases y los Diagramas de Warnier

La modificacioacuten del coacutedigo fuente mediante los cambios establecidos en un Diagrama de Secuencias

51

[ALC03]

[BLA98]

[B0099]

[BOOOi]

[BR097]

[CHA90]

[DAN02]

[GLA02]

[HAC98]

[HER03]

4

Alcate1 Computer Associates International inc Electronic Data Systems Corporation Hewlett-Packard Company IBM Corporation I-Logix IntelliCorp Kabira Technologies Kennedy Carter Microsoft Corporation Object Management Group Oracle Corporation Project Technology Ptech Inc Rational Software Corporation Reich Technologies Softeam Taskon A S Telelogic Unisys Corporation ldquoOMG Unified Modeling Language Specificationrdquo Version 15 Unified Modeling Language 2003

Blaha Michael Rumbaugh James Premerlani William Eddy Frederick Lorensen William ldquoObject-oriented modeling and designrdquo Prentice Hall 484 Paacuteginas ISBN 0-13-629841-9 QA-769-03S-B53-19981998

Booch Grady Rumbaugh James Jacobson Ivar ldquoEl lenguaje unificado de modeladordquo Addison Wesley 432 Paacuteginas ISBN 84-7829-028-1 1999

Booch Grady Rumbaugh James Jacobson Ivar ldquoThe Unified Modeling Language User Guiderdquo Addison Wesley 2001

Brown David ldquoAn introduction to object-oriented analysis objects in plain Englishrdquo John Whiley amp Sons Inc 700 Paginas ISBN 0-471-1 1028-0 QA-769-035-B76-1997 1997

Chang Shi-Kuo ldquoVisual Languages and visual programmingrdquo Plenum Press 340 Paacuteginas ISBN 0-306-43428-8 QA-7665-V57-1990 1990

Daniels John ldquoModeling with a sense of purposerdquo Design - IEEE Software JanuaryEebmary 2002

Glasgow Universidad Reino Unido ldquoA UML Editor in Javardquo (lthttplstudentsdcsglaacuWstudentspainjfproject-reportproject-re port-htmV4thYearReporthtrnlgt 2002)

T Hackos JoAnn C Redish Janice ldquoUser and Task Analysis for Interface Designrdquo Wiley Computer Publishing 488 Paacuteginas ISBN QA-769-U83- H33-1998 1998

Hemaacutendez Velaacutezquez M ldquoIngenieriacutea inversa de coacutedigo fuente en C++ para la obtencioacuten de su disentildeordquo Tesis AT-379 (03-0334) 2003

Conceptos generales

[HIX93]

[JAC93]

[JAC99]

[JOY98]

[LAR97]

[MAR]

[MIC99]

[MIC02]

[MOU98]

Hix Deborah Hartson H Rex ldquoDeveloping user interfacesrdquo 381 Paacuteginas ISBN 0-471-57813-4 QA-769-U83-H59-1993 1993

Jacobson Ivar Christerson Magnus Jonsson Patrik Overgaard Gunnar ldquoObject oriented software engineeringrdquo Addison Wesley ISBN 0-20 1 - 54435-0 QA-7676-D47-J63-1993 1993

Jacobson Ivar Booch Grady Rumbaugh James ldquoEl proceso unificado de desarrollo de softwarerdquo Addison Wesley 438 Paacuteginas ISBN 84-7829-036- 2 1999

Joyanes Aguilar Luis ldquoProgramacioacuten orientada a objetosrdquo McGruw Hill ISBN 84-481-0590-7 1998

Larman Craig ldquoAplying UML and Patternsrdquo Prentice Hull 507 Paacuteginas ISBN 0-13-748880-7 QA-769-035-L37-1997 1997

Marriot Kim Meyer Bemd ldquoVisual Language Theoryrdquo Springer 381 Paacuteginas P-935-V567-1998 1998

Microsoft ldquoMicrosoft Visual C++ 6 manual del programadorrdquo McGraw Hill ISBN 84-481-2127-9 QA-7673-Cl53-23718-1999 1999

Microsoft ldquoVisiordquo (lthttpwwwmicrosoftcomofficevisiogt 2002)

B Mourao Luis X ldquoUniversal Modeling Language Part 11 UML Notation - Case Sequence and Collaboration Diagramsrdquo Lan Times Magazine (~httpwwwlantimescomltpartsdiscussdiscuss6Ohtm~) 1998

No Magic ldquoMagicDrawrdquo (lthttpwwwmagicdrawcomgt 2002)

Object Insight ldquoJvisionrdquo (lthttpwwwobject-insightcomgt 2002)

Rational Software Microsoft I Hewlett-Packard Oracle Sterling Software MCI Systemhouse Unisys ICON Computing IntelliCorp i-Logix IBM ObjectTime Platinum Technology Ptech Taskon Reich Technologies Sofieam ldquoUML Summaryrdquo Version 11 Unified Modeling Language 1997

Rational ldquoRational Roserdquo (lthttpwwwrationalcomproductosrosegt 2002)

Rikki Kirzner ldquoAnalysis Modeling and Design Tools Market Forecast and Analysis 2001-2005rdquo Bulletin Published Under Services Application Design and Construction Tools Application Development and Deployment Strategies Documento Nuacutemero 24809 Junio 2001

53

Conceptos generales

[RIM92] Rimrner Steve ldquoGraphical user interface programmingrdquo 423 Paacuteginas

1992

Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language reference manualrdquo Addison Wesley 550 Paacuteginas ISBN 0-201-

ISBN 0-8306-2475-9 ISBN 0-8306-2472-4 (pbk) QA-769-083-R55G

[RUM99]

30998-X QA-7676-D47-R85-1999 1999

[RUM299] Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language user guiderdquo Addisoiz Wesley 482 Paacuteginas ISBN 0-201 -57 168-4 QA-7676-D47-B66-1999 1999

[SMA02] SmartDraw ldquoSmartDrawrdquo (lthttpwwwsmartdrawcomgt 2002)

[SHU88] 9 - Shu Nun C ldquoVisual Programmingrdquo Van Nostrand Reinhold ISBN 0-422- 28014-9 ISBN 0-422-01 164-4 QA-7665-S55 1988

[THI90] Thimbleby Harold ldquoUser Interface Designrdquo Acm press 470 Paacuteginas ISBN 0-201 -41 61 8-2 QA-769U83-T772~- 1990 1990

[WENO2] Wences Diaz MF ldquoModelo de Ingenieriacutea Inversa para la obtencioacuten de disentildeo detallado basado en LEVISSrdquo Tesis (02-0014) 2002

54

Anexo A

Conampuracioacuten de Microsoft Vkua[C++ 6 O

Este anexo indica las configuraciones que se utilizaron para la compilacioacuten de SCUML y s3c

Configuracioacuten de Microsoft Visual c++ 60

Debido a la integracioacuten de los proyectos de InverSOODA e InverDDVi con S3C se cumplioacute con los requisitos previos de ambos proyectos

El compilador usado en el proyecto fue el Microsoft Visual C++ 60

Para el cumplimiento con la funcionalidad de InverSOODA se instaloacute el ANTLR la versioacuten 271 Se descargoacute del sitio l i l l ~ ~ ~ ~ ~ ~ t l ~ l ~ - ~ t - ~ la versioacuten mencionada en un archivo comprimido (en formato zip) Se colocoacute el paquete descomprimido en el directorio ldquoDIANTLR-271 I rdquo

Recomiendo ampliamente que el directorio principal de ANTLR se copie en el directorio raiacutez de cualquier unidad de disco debido a que experimenteacute problemas de compilacioacuten cuando ANTLR no se encontraba en el directorio raiacutez

Io015

Source Browser AlttF12 I u c Ersquo V I

Visual Component Mgnager

- - ~ ~ ~ ~~

P2 Registrar control

A Contenedor de prueba de controles ActiveX

A Usor de objetos OLE y COM

Buacutesqueda de errores

A Y++ MFC Iracer

Customize options

~ - q- ~ Macro

Eecord Quick Macro Cbl+ShiR+R Pay Quick Macro Ctrl+ShiR+P

En el menuacute Tools (Herramientas) seleccione el sub-menuacute Options ltopcionesgt

56

Configuracioacuten de Microsoft Visual C++ 60

En la siguiente ventana de diaacutelogo debe agregar la direccioacuten en donde se encuentra el ANTLR

Agregar la ruta del directorio de ANTLR hasta el subdirectorio

libcpp

Editor I Tabs I Debug I Compatibility 1 Build Dneclolies I a I Chow directories for - Platfolm -

- Directories I x ) 4 jWin32 -] llnclude files

m cancd I

57

Configuracioacuten de Microsoft Visual C t+ 60

Se ha creado una libreriacutea (anrlrliblib) de ANTLR la cual ya estaacute situada en el directorio del proyecto SCUML (ISCUML) y no debe ser movida o eliminada

I

Geneial 1 Debug I CC++ Link I Category

Output file name bebugSCUMLexe

Objectljibrary modules 4 anllrliblib

li Generate debug lnfo r Ignore all defaull lbaries D ~ i n k j n ~ ~ ~ t a n ~ r ~ e n e r ~ ~ ~ mapfile

r Enable psafilrng

Proiec1 Ootionn

pq Cancel 1 Libreriacutea de ANTLR que debe existir 1 I para que se compile correctamente

58

Anexo B

~ u iacute aacute raacutepida de uso deC Sistema S3C

5 Este anexo indica de forma raacutepida la manera de utilizar S3C para crear un diagrama de secuencias de forma automaacutetica

Guiacutea Raacutepida de uso del Sistema S3C i

Para indicar la creacioacuten de un diagrama de secuencias en forma automaacutetica se debe ir a la barra del costado izquierdo y presionar ldquoNuevo Proyecto SCUMLrdquo

I s3c I ~ Nuevo Proyecto SCUML ~ _ _ - I Diagrama de clases ~ Diagrama de secuencias 1 MDI DOC Activo

-

Apareceraacute un documento llamado ldquoSCUMLV en donde el simbolo corresponde a un numero consecutivo iniciando desde 1 (uno)

$ e Despueacutes se presiona ldquoDiagrama de clasesrdquo Habraacute que para indicarle al sistema si se requiere abrir un diagrama de clases existente o realizar uno nuevo

i

iquestAbrir un documento existente

No Cardquo~ear

AI presionar ldquoSirdquo se debe indicar cual es el archivo del diagrama de Clases en el cuadro de diaacutelogo siguiente

~~ - 11dMis documentos rsquo 2 M i P C i lsquo h s sitios de red

I

AI presionar ldquoNordquo en ldquoAbrir un documento existenterdquo se nos mostraraacute un documento vacio para crear un diagrama de clases

60

Guiacutea Raacutepida de uso del Sistema S3C

Para ambas opciones se requiere que los diagramas de Wamier ya se encuentren construidos Y para continuar el proccso se selecciona el documento ldquoSCUMLVrsquo creado al inicio y despueacutes presionar el botoacuten nombrado ldquoDiagrama de secuenciasrdquo localizado en la barra de hcrraiiiicntas del costado izquierdo

Ha iniciado el proceso de construccioacuten del diagrama de secuencias Si no existen errores al terminar el proceso se le mostraraacute un cuadro de diaacutelogo llamado ldquoResultadosrdquo en donde le mostraraacute las llamadas de las que no localizoacute su definicioacuten

- - -

Cancel 1 D e las siguientes llamadas es posible que esten mal escritas o peitenezcan a la libreiia del Lenguaie Verifique ya que no se encontraron sus definiciones

A continuacioacuten se mencionan los posibles errores que finalizan el proceso de la creacioacuten automaacutetica de los diagramas de secuencias en S3C

Cuando no exista un meacutetodo lsquomainrsquo definido en el diagrama de clases

No se encontro el meacutetodo lsquomain()rsquo que inicie la secuencia I A No se puede crear el diagrama de secuencias

p==amp=q

61

Guia Raacutepida de uso del Sistema S3C

Cuando se definan niultiples metodos lsquoinainrsquo en el diagrama de clases

Multiples meacutetodos lsquomainOlsquo Imposible decidir el inicio de secuencia

Aceptar i

Si un meacutetodo definido en Wamier realiza una llamada a lsquomainrsquo se cancelara el proceso

Llamada NO VALIDA al meacutetodo principal main

(iAcp-j(

4 i

CI Y rdquoldquoldquoI i 11 1-T

IZNTRO Gt INFORMACION

62

  • Tabla de Contenido
  • Listado de Figuras
  • Listado de Tablas
  • Notacioacuten
  • Introduccioacuten
  • Capitulo 1 Conceptos Generales
    • 11 Antecedentes
    • 12 Trabajos relacionados
      • 121 Tabla comparativa
        • 13 Definicioacuten del problema
        • 14 Objetivo de la Tesis
          • Objetivos especiacuteficos de la tesis
            • 15 Hipoacutetesis de investigacioacuten
            • 16 Alcances y limitaciones del trabajo de tesis
              • Capitulo 2 Marco Teoacuterico
                • 21 Modelado de sistemas de software
                • 22 Interfaz de usuario (Mecanismos de interaccioacuten)
                • 23 Lenguajes Visuales
                • 24 Programacioacuten orientada a objetos
                • 25 Lenguaje de Modelado Unificado (UML)
                  • Desarrollo de la herramienta
                    • 31 Disentildeo de la Arquitectura
                      • 311 Requisitos (Diagrama de Casos de uso)
                        • 312Modelo Conceptual
                        • 313Diagramas de clases
                        • 32 Elementos de la arquitectura
                          • 321 Microsoft Foundation Class (MFC)
                            • 322Arquitectura Documento Vista
                            • 323Integrando Ambientes en Visual c++
                              • 324 Interfaz de Muacuteltiples Documentos (MDI)
                                • 325Recursos Diaacutelogos Menus y Barras de Herramientas
                                  • 326 Notacioacuten estaacutendar
                                  • 327 Estructura de datos persistencia y recuperacioacuten
                                    • 328Patrones de disentildeo utilizados
                                      • 33 Diagrama de secuencias
                                        • 331Ciclo de vida del software
                                          • 34 Elementos atoacutemicos de la Gramaacutetica
                                            • 341 Representacioacuten visual
                                              • 35 Gramaacutetica desarrollada
                                              • 36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias
                                                  • Capitulo 4 Pruebas y Resultados
                                                    • 41 Recursos teacutecnicos utilizados
                                                    • 42 Descripcioacuten del plan de pruebas
                                                    • 43 Resultados
                                                      • 431 Caso
                                                      • 432 Caso2
                                                      • 433 Caso
                                                          • Conclusiones y trabajos futuros
                                                            • Trabajos futuros
                                                            • Referencias
                                                            • Anexo A Configuracioacuten de Microsoft Visual C+t
                                                              • Figura 11 - Arquitectura de la suite cenidet-UML
                                                              • Figura 21 -Programacioacuten Visual
                                                              • Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de
                                                              • Figura 32 -Diagrama de Casos de Uso para el S3C
                                                              • Figura 33 -Modelo Conceptual
                                                              • Figura 34 - Diagrama de Clases -Control del Diagrama -
                                                              • Figura 35 - Diagrama de Clases - Patroacuten Visitor -
                                                              • Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento
                                                              • Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)
                                                              • Figura 38 -Dialogo Caracteriacutesticas del Objeto
                                                              • Figura 39 -Dialogo Mensaje
                                                              • Figura 3 IO - Menuacute de los Diagramas de Secuencias (estaacutendar)
                                                              • Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias
                                                              • Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)
                                                              • Figura 313 - Serializacioacuten
                                                              • Figura 314 -Modelo de cascada del ciclo de vida del software
                                                              • Figura 41 - Resultado del caso de prueba
                                                              • Figura 42 -Resultado del caso de prueba
                                                              • Figura 43 -Resultado del caso de prueba
                                                              • Figura 44 -Resultado del caso de prueba
                                                              • Tabla 11 - Tabla comparativa
                                                              • Tabla 31 -Prefijos estaacutendar de identificadores
                                                              • Tabla 32 -Elementos atoacutemicos del lenguaje
                                                              • Tabla 41 - Resumen de los resultados de las pruebas realizadas

Conceptos generales

11 Antecedentes

Actualmente en el cenidet (Centro Nacional de Investigacioacuten y Desarrollo Tecnoloacutegico) se trabaja en la construccioacuten de un conjunto de ambientes visuales para dar soporte al desarrollo con diagramas que define el estaacutendar UML para elaborar sistemas de software de manera completa raacutepida y eficaz El ambiente de modelado principal se ha denominado suite cenidet-UML y su arquitectura general se muestra a continuacioacuten en la Figura 11

Arquitectura de la suite cenidet-UML

Figura 11 Arquitectura de la suite cenidet-UML

a El producto de software resultante de eacutesta tesis lleva por nombre S3C y como se indica en la figura 11 Las tesis directamente relacionadas son InverSOODA [HER03] e

InverDDVi [WEN02]

InverSOODA (Sistema Orientado a Objetos para Disentildeo y Anaacutelisis incluyendo Ingenieriacutea Inversa) es un Ambiente Visual que permite la elaboracioacuten de diagramas de clases de un sistema de software Los diagramas de clases son una vista estaacutetica y en ella se describe las relaciones que existen entre las entidades llamadas clases Cada una de las clases se divide en tres partes nombre de la clase meacutetodos y atributos Este ambiente permite generar el coacutedigo fuente en lenguaje C++ de un diagrama construido y tambieacuten aplicando la ingenieriacutea inversa es posible obtener un diagrama a partir de un coacutedigo en C++ existente

InverDDVi (Disentildeo Detallado Visual incluyendo Ingenieriacutea Inversa) es un Ambiente Visual cuyo objetivo es apoyar en la elaboracioacuten de diagramas de disentildeo detallado utilizando una notacioacuten basada en Warnier Los diagramas de Warnier sirven para describir una secuencia loacutegica de acciones y mediante su simbologiacutea se logra plasmar definiciones de meacutetodos llamadas a otros meacutetodos ciclos comparaciones lectura de informacioacuten y escritura de informacioacuten Este ambiente permite generar el coacutedigo fuente en C de un diagrama construido y tambieacuten aplicando la ingenieriacutea inversa se puede obtener un diagrama de Warnier a partir de un coacutedigo en C que ya exista

i

3

Conceptos generales

12 Trabajos relacionados

Rational Rose de Rafional

Una de las herramientas mas populares del mercado que utiliza la notacioacuten UML y tiene la capacidad de reingenieriacutea de software para integrar sistemas existentes capacidad de mezclar diferentes lenguajes dentro de un mismo modelo ademaacutes de ingenieriacutea inversa sobre los componentes COM (Component Object Model) ActiveX y Java y con soporte de las arquitecturas MicrosoWCOM y CORBAIDL (The Common Object Request Broker Architecture)

Con Rational Rose se puede trabajar en grupo con capacidades para modelar y visualizar procesos de negocios y requerimientos de sistemas Tiene soporte para generar esquemas objetos-relaciones de bases de datos para realizar anaacutelisis de datos Cuenta con el soporte para analizar sitios Web en ASP (Active Server Pages) y JSP (Java Server Pages) Ademaacutes soporta los lenguajes Java CC++ Visual CC++ [RAT02] 9

SI -

Visio de Microsoft

Visio Enterprise 2002 permite crear diferentes tipos de diagramas como son

1 Diagramas de flujo 2 Planos de oficinas 3 Diagramas de aacuterbol 4 Diagramas de organizacioacuten 5 Liacuteneas de tiempo 6 Mapas geograacuteficos y direccionales 7 Diagramas de sitios Web 8 Diagramas de red 9 Diagramas de UML

Tiene las siguientes caracteriacutesticas diagramacioacuten e importacioacuten de servicios de directorio reingenieria de bases de datos disentildeo y documentacioacuten de bases de datos diagramacioacuten de software ingenieriacutea directa e inversa de coacutedigo replicacioacuten exacta por medio de diagramas de equipos y configuraciones de red diagramacioacuten automatizada y ambiente colaborativo

Visio da un conjunto completo de herramientas de diagramacioacuten de redes para planear y documentar claramente las redes existentes Ademaacutes para crear esquemas eleacutectricos mecaacutenicos y de procesos pueden crearse diagramas complejos con facilidad y poco entrenamiento

A las aplicaciones existentes se les puede realizar la ingenieriacutea inversa para obtener el disentildeo y tambieacuten crear nuevos disentildeos Proporciona herramientas para crear diagramas de bases de datos y es posible realizar ingenieriacutea inversa de esquemas existentes en bases de datos cliente servidor como SQL Server IBM Oracle y otros [MIC02]

4

Conceptos generales

e JVision 21 de Object Insight

JVision permite en la ingenieriacutea directa la creacioacuten de clases variables y meacutetodos con lo cual genera plantillas de coacutedigo para programadores en Java Los diagramas se pueden exportar a HTML La documentacioacuten puede integrarse con JavaDoc de Sun JVision da el soporte para ingenieriacutea inversa para el lenguaje Java

Se pueden crear todos los diagramas definidos por UML en los diagramas de secuencias da la oportunidad de dibujar clases liacuteneas liacuteneas de tiempo de vida y marca de destruccioacuten de objetos ofrece ademaacutes el soporte para las acciones de llamada regresar valor enviar accioacuten crear accioacuten y eliminar accioacuten [OBJO2]

MagicDraw 6 de No Magic

Es una herramienta CASE con soporte para trabajo en grupo Esta disentildeado para analistas 6 de negocios analistas de software programadores ingenieros de calidad y

documentadores Esta aplicacioacuten provee la capacidad para crear los diagramas definidos por UML (soporta UML 14) Cuenta con el soporte de ingenieriacutea inversa y generacioacuten de coacutedigo para C++ C Java y CORBNIDL Tiene integracioacuten con NetBeans se actualiza automaacuteticamente disponible en aacuterabe portugueacutes franceacutes italiano ingles (US) alemaacuten espantildeol japoneacutes y coreano

Tiene la caracteriacutestica de soportar la adaptacioacuten de los elementos a colores que el usuario defina Los diagramas pueden exportarse a imaacutegenes JPG EMF WMF EPS y DXF En los diagramas de secuencia da oportunidad de definir roles textos notas mensajes de varios tipos al mismo objeto recursivo ademaacutes de la relacioacuten a las notas y las liacuteneas de vida Es posible guardar los diagramas como imaacutegenes de mapas de bits o vectores Mantiene ademaacutes una vista pequentildea a escala del diagrama completo [NoA402]

e

SmariDraw Professional Plus de SmariDraw

Todos los dibujos pueden agregarse en las aplicaciones de Microsoft como son Word Excel PowerPoint Contiene maacutes de 50000 (1000 en la versioacuten estaacutendar) formas predefinidas ejemplos y plantillas Los diagramas pueden ser exportados a imaacutegenes WMF BMP JPG GIF TIF y otros Incluye un convertidor de archivos de VISIO

Con esta herramienta es posible crear diagramas de flujo diagramas de bloque diagramas de flujos de datos diagramas de organizacioacuten aacuterboles de decisioacuten disentildeo de redes Gantt diagramas de flujo de procesos diagramas de administracioacuten de calidad diagramas eleacutectricos diagramas mecaacutenicos diagramas quiacutemicos liacuteneas de tiempo planes de espacio posters mapas formas y tambieacuten da soporte para UML es posible dibujar objetos actores activacioacuten de los objetos mensaje mensaje de retorno mensaje asiacutencrono mensaje con tiempo liacutenea de vida del objeto marca de destruccioacuten del objeto y ciclos (descrito con un rectaacutengulo y una condicioacuten de salida) [SMA02]

5

Conceptos generales

Producto Soporta Diagramas de UML Secuencias

Creacioacuten automaacutetica de diagramas de

El Rational Rose El Visio

Jvision

Magic D r a w

a a El Fl El a El El

I ~

I ~

I -

Ambiente de modelado de

a a SmartDraw El

Tabla I Tabla comparativa

Todas las herramientas descritas anteriormente cuentan con caracteriacutesticas sobresalientes para el disentildeo y modelado de sistemas de software pero ninguna de ellas genera automaacuteticamente los diagramas de secuencia con base en los diagramas de clases y el disentildeo detallado de los meacutetodos asiacute tambieacuten ninguna de ellas realiza un caacutelculo de los canales de comunicacioacuten abiertos entre las clases que conforman el sistema

iexcla la A UML Editor in Java

13 Definicioacuten del problema

El modelado de sistemas utilizando el estaacutendar de UML en diversos productos comerciales prototipos de laboratorio elaborados en universidades y centros de investigacioacuten atienden la perspectiva baacutesica de la abstraccioacuten general del modelo esto es documentar el modelo del sistema que se requiere sin atender puntos importantes tales como

La generacioacuten automaacutetica de los diagramas de secuencias La correccioacuten de inconsistencias en los diagramas al crearlos de forma separada

El

6

sistemas de software

secuencias utilizando diagramas de a a a

Conceptos generales

Se hace necesaria la creacioacuten de un ambiente visual que permita obtener de forma automaacutetica los diagramas de secuencias en base a los diagramas de clases y al disentildeo detallado de los meacutetodos para facilitar la documentacioacuten la generacioacuten de coacutedigo y el mantenimiento de los sistemas

La obtencioacuten de los diagramas de secuencias estaacute basada en los Diagramas de Clases definidos por UML que son construidos con la herramienta InverSOODA junto con el disentildeo detallado de los meacutetodos construidos con Diagramas de Wamier elaborados con la herramienta InverDDVi

En el estaacutendar UML para la construccioacuten de los diagramas no existe actualmente una sintaxis expliacutecita definida solo existe impliacutecitamente en el uso de los elementos del diagrama por lo que se ha descrito una gramaacutetica visual de tipo relaciona1 como soporte para la construccioacuten de los Diagramas de Secuencias

n ai 14 Objetivo de la Tesis

Construir un ambiente visual que permita al usuario obtener el diagrama de secuencias de manera automaacutetica

141 Objetivos especiacuteficos de la tesis Crear una gramaacutetica que soporte la construccioacuten del diagrama de secuencias Construir de forma automaacutetica el diagrama de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodos

15 Hipoacutetesis de investigacioacuten

Es posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodos

16 Alcances y limitaciones del trabajo de tesis

Los alcances de la tesis se especifican a continuacioacuten

Se elaboroacute la arquitectura del sistema Se definioacute la gramaacutetica de soporte Se desarrolloacute la interfaz en Visual C++ haciendo uso de las MFC Se interactuacutea con los diagramas de clases de InverSOODA Se interachiacutea con el disentildeo detallado de los meacutetodos realizados por InverDDVI Se genera el diagrama de secuencias de forma automaacutetica

7

Conceptos generales

Limitaciones de la tesis

0 No se genera coacutedigo

La investigacioacuten se limita a los diagramas de clases para la vista estaacutetica de los sistemas de software y a los diagramas de Warnier para la vista dinaacutemica de los meacutetodos El ambiente no trabaja en red

No se modifican los archivos de InverSOODA No se modifican los archivos de InverDDVI No se recuperan diagramas de secuencias a partir de coacutedigo legado

4

8

Capiacutetulo 2

Narc0 teoacuterico

En eacuteste capiacutetulo se describen los temas usados para el desarrollo de la tesis iquestQue son los modelos iquestEn que parte del proceso de Ingenieriacutea del Software se usan los modelos o el modelado Se estudia la interfaz de usuario los lenguajes visuales y las gramaacuteticas visuales Se describe el Lenguaje de Modelado Unificado (UML) ademaacutes de la programacioacuten orientada a objetos por ser este paradigma en donde se enfoca este trabajo

Marco teoacuterico

21 Modelado de sistemas de software

un modelo es una abstraccioacuten de algo con el propoacutesito de entenderlo antes de construirlo El modelo omite detalles no esenciales haciendo maacutes faacutecil su manipulacioacuten que la entidad original [BLA98] Un modelo es la simplificacioacuten de la realidad [RUM99] Los propoacutesitos de los modelos son

Probar una entidad fisica antes de construirla Establecer mejor comunicacioacuten con los clientes Visualizar el problema y el sistema desde una mejor perspectiva Reducir la complejidad [BLA98] Capturar y precisar requerimientos y conocimiento del dominio Pensar acerca del disentildeo del sistema Capturar decisiones de disentildeo en una fomia separada que cambia a partir de los requerimientos Generar productos Organizar buscar filtrar obtener examinar y editar informacioacuten acerca de un sistema Explorar muacuteltiples soluciones econoacutemicas Manejar sistemas complejos [RUM99]

El modelado es una probada y bien aceptada teacutecnica de Ingenieriacutea de Software [RUM99] El modelado es parte central de todas las actividades que conducen a la produccioacuten de buen software Se construyen modelos para comunicar la estructura deseada y revisar el comportamiento de nuestro sistema Se construyen modelos para visualizar y controlar la arquitectura del sistema Se construyen modelos para comprender mejor el sistema que estamos construyendo muchas veces descubriendo oportunidades para la simplificacioacuten y la reutilizacioacuten Se construyen modelos para controlar el riesgo [BOO99] La razoacuten fundamental por la que modelamos es porque nosotros construimos modelos que nos ayudan a entender mejor el sistema que estamos desarrollando [RUM99]

El modelado nos permite [RUM99] 1 Visualizar como es el sistema o como queremos que sea 2 Especificar la estructura del sistema 3 Plantear nuestras guiacuteas en la construccioacuten delsistema 4 Documentar las decisiones que hemos tomado

En las etapas del desarrollo del software el modelado es usado en el disentildeo el disentildeo del sistema es la primera etapa en donde se da la aproximacioacuten baacutesica de la solucioacuten al problema seleccionado ademaacutes se decide por la estructura (arquitectura del sistema) y el estilo de la solucioacuten

La arquitectura del sistema provee el contexto sobre el cual se tomaraacuten decisiones mas detalladas en las etapas subsecuentes del disentildeo [BLA98] En el disentildeo modelamos el sistema y encontramos su forma (incluida la arquitehra) para que soporte todos los 3 -

10

Marco teorico

i

4 -I

requisitos -incluyendo los requisitos no funcionales y otras restricciones- que se le suponen [JAC99] Los propoacutesitos del disentildeo son

Adquirir una comprensioacuten en profundidad de los aspectos relacionados con 10s requisitos no funcionales y restricciones relacionadas con los lenguajes de programacioacuten componentes reutilizables sistemas operativos tecnologiacuteas de distribucioacuten y concurrencia tecnologiacuteas de interfaz de usuario tecnologiacuteas de gestioacuten de transacciones etc Crear una entrada apropiada y un punto de partida para actividades de implementacioacuten subsiguientes capturando los requisitos o subsistemas individuales interfaces y clases Ser capaces de descomponer los trabajos de implementacioacuten en partes mas manejables que puedan ser llevadas a cabo por diferentes equipos de desarrollo teniendo en cuenta la posible concurrencia Capturar las interfaces entre los subsistemas Esto ayuda cuando reflexionamos sobre la arquitectura y cuando utilizamos interfaces como elementos de sincronizacioacuten entre diferentes equipos de desarrollo Ser capaces de visualizar y reflexionar sobre el disentildeo utilizando una notacioacuten comuacuten Crear una abstraccioacuten independiente de la implementacioacuten del sistema en el sentido de que la implementacioacuten es un refinamiento directo del disentildeo que rellena lo existente sin cambiar la estructura Esto permite la utilizacioacuten de tecnologiacuteas como la generacioacuten de coacutedigo y la ingenieriacutea de ida y vuelta entre el disentildeo y la implementacioacuten [JAC99]

22 Interfaz de usuario (Mecanismos de interaccioacuten)

El crecimiento de las computadoras personales vendidas en los ~ O rsquo S lanzoacute con fuerza el ldquofaacutecil de usarrdquo como una de las caracteriacutesticas mas importante de un producto de computadora

Las interfaces graacuteficas de usuario no son nuevas se pueden encontrar en las paredes de cuevas al sur de Francia en las piraacutemides de Egipto y en las paredes de muchas ciudades [iUM92] Para el usuario de un sistema interactivo la comunicacioacuten es tan importante como la computacioacuten Para los usuarios regularmente la interfaz es el sistema [HIX93]

Disentildeo de Interfaz Seguacuten Hackos [HAC98] las interfaces estaacuten en todo donde se trabaja con

o Controles en productos de hardware o Etiquetas y sentildeales en el hardware o Pequentildeas pantallas de cristal liquido en maacutequinas de cualquier tipo o Pantallas para aplicaciones de software para terminales de computadoras centrales

Marco teoacuterico

o pantallas para aplicaciones de software en computadoras Personales sistemas operativos como Windows OS2 DOS Macintosh U n b Y Otros

0 Paacuteginas de un sitio WEB 0 Sistemas de ayuda y manuales en-liacutenea 0 Tutoriales incrustados y otros tipos de soporte de funcionamiento O Esquemas de formas y otros documentos

una interfaz es el medio con el cual los usuarios interactuacutean con el producto 0

sistema para lograr SUS objetivos

Interfaz Usable

Para que una interfaz sea usable debe ser transparente y darles a los usuarios la capacidad de lograr cumplir sus metas de forma efectiva y eficiente

Los beneficios presentados en el uso de las interfaces de usuario [TH190] Disfrutar el sistema El usuario disfruta trabajar con un sistema que cuenta con una interfaz bien disentildeada y que le da la funcionalidad y acceso a los recursos de una manera clara y sencilla Proporciona nuevas habilidades Elimina al usuario concentrarse en acciones que la propia interfaz y el sistema hacen dando como resultado que el usuario solo se concentre en lo importante del trabajo Delegacioacuten de tareas La interfaz de usuario permite al usuario no conocer los detalles de la tarea esto es la computadora atiende los detalles de las tareas mientras que el usuario se concentra en asuntos de maacutes alto nivel Seguridad El usuario no necesita estar en lugarespeligrosos para hacer su trabajo

Se da la mayor posibilidad para que el usuario tenga acceso al conocimiento utilizando un sistema interactivo Haciendo las cosas a la primera Las tareas se ejecutan en un orden correcto definido lo que da como resultado un trabajo bien terminado sin necesidad de repetir evitando asiacute altos costos Computando LOS usuarios pueden calcular datos sin necesidad de conocer el proceso para obtener los resultados

Desarrollo

El disentildeo de interfaz es un negocio bastante dificil Eacuteste combina dos complicadas disciplinas psicologiacutea y ciencias de la computacioacuten Estas disciplinas tienen un fondo cultural muy diferente la psicologiacutea atiende a la gente (comprensioacuten y entendimiento) las ciencias computacionales a las maacutequinas (matemaacuteticas y precisioacuten) El disentildeo de las buenas interfaces requiere que estas dos perspectivas esteacuten unidas [THi90]

Hackos dice que las interfaces dan simplicidad y elegancia al trabajo necesario y a la vida e los usuarios Si no es obvio al usuario pero es raacutepida para aprender [HAC98] ademaacutes define caracteriacutesticas comunes de las interfaces usables

o Hacen que el flujo de trabajo sea familiar o confortable o Soportan el estilo de aprendizaje de los usuarios

12

Marco teoacuterico

Visualizacioacuten de Entrenamiento visual Para controlar Soportar interaccioncs Programar con informacioacuten visual visuales expresiones visuales

o Compatibles con los ambientes de trabajo de los usuarios o Se extienden sobre un concepto de disentildeo que es familiar al usuario o Tienen consistencia de presentacioacuten que los hace parecer maacutes confiable y faacuteciles de

aprender o Usan lenguaje y figuras familiares al usuario o faacuteciles de aprender

Datos o informacioacuten acerca de datos

23 Lenguajes Visuales

Los lenguajes visuales son un nuevo paradigma para expresar los sistemas computacionales Ellos ofrecen la posibilidad de manipular directamente los objetos Un lenguaje visual consiste de sentencias visuales Para lenguajes visuales basados en iacuteconos cada sentencia visual es un arreglo espacial de objetos O iacuteconos graacuteficos [CHA90]

Un lenguaje visual es concebido como una coleccioacuten de figuras obtenidas por un arreglo graacutefico de objetos en dos o maacutes dimensiones Los lenguajes visuales pueden ser modelados sintaacutecticamente a traveacutes de un vocabulario un conjunto de relaciones usadas para componer las figuras y un conjunto de reglas describiendo las figuras pertenecientes al lenguaje Los objetos graacuteficos de un vocabulario de un lenguaje visual se caracterizan por contar con un conjunto de atributos Los atributos de un objeto graacutefico pueden ser atributos graacuteficos atributos sintaacutecticos y atributos semaacutenticos [MAR98]

Un lenguaje de programacioacuten visual puede ser informalmente definido como un lenguaje el cual usa algunas representaciones visuales [SHV88]

Programa ylo Disentildeo de Lenguajes de programacioacuten visual ejecucioacuten software Diagramas iconos Formas

Programacioacuten Visual [SHU88]

Gramaacuteticas para la especificacioacuten de lenguajes visuales [MAR98]

a) Gramaacuteticas texfuales generalizadas Este tipo de gramaacutetica provee una adaptacioacuten apropiada de la concatenacioacuten de siacutembolos para dos dimensiones Su principal ventaja es que conservan los elementos teoacutericos de las gramaacuteticas textuales y los eficientes algoritmos de anaacutelisis de eacutestos uacuteltimos Su principal desventaja es que eacutestas gramaacuteticas no son tan poderosas y soacutelo pueden especificar clases restringidas de lenguajes visuales

13

Marco teorico

b) Meacutetodos basados en gramaacuteticas de grafos Un ejemplo de este tiPo de gramaacuteticas son las gramaacuteticas de red Las oraciones generadas con gramaacuteticas de red son grafos dirigidos con siacutembolos en los nodos Estos grafos son llamados redes Una produccioacuten de eacuteste tipo de gramaacuteticas es de la siguiente forma

a - t p E

donde a y p son redes y E es una forma de conectar a p cuando a es conectada a otra red anfitriona

La mayor desventaja es que las gramaacuteticas de red no han probado ser totalmente uacutetiles para la especificacioacuten de gramaacuteticas arbitrarias por la complejidad para rescribir grafos y al hecho de que no todo lenguaje visual estaacute compuesto exclusivamente por grafos

C) Gramaacuteticas de multiconjuntos de atributos En estas gramaacuteticas las producciones rescriben conjuntos o multiconjuntos de siacutembolos que tienen atributos con informacioacuten sobre geometriacutea o semaacutentica La reescritura se controla con restricciones sobre los atributos de los siacutembolos en el lado derecho de las producciones

Un ejemplo de eacutestas gramaacuteticas es la Gramaacutetica Coordinada que especifica notacioacuten matemaacutetica de dos dimensiones En esencia las producciones en una gramaacutetica coordinada n-coordinada libre del contexto tienen la siguiente forma

A -t a donde C F

Todos los siacutembolos de eacuteste tipo de gramaacutetica tienen n atributos geomeacutetricos A es un siacutembolo no terminal a es una cadena no vaciacutea de siacutembolos C es una restriccioacuten sobre los atributos de los siacutembolos en a y F es una expresioacuten que computa los atributos de los siacutembolos de A en teacuterminos de los atributos de los siacutembolos en a no importando el orden de los siacutembolos en a

d) Gramaacuteticas PosicionaZes Las gramaacuteticas posicionales son un formalismo para la definicioacuten e implementacioacuten de lenguajes visuales las gramaacuteticas posicionales extienden naturalmente a las gramaacuteticas libres de contexto Una gramaacutetica libre de contexto posicional PG es una six-tupla (N T S P POS PE) donde

N es un conjunto finito no vaciacuteo de siacutembolos no terminales T es un conjunto finito no vaciacuteo e siacutembolos terminales con N n T = $I S E N es el siacutembolo no terminal de inicio P es un conjunto finito de producciones POS es un conjunto finito de identificadores de relacioacuten binaria PE es un evaluador pictoacuterico

14

Marco teorico

Cada produccioacuten en P tiene la siguiente forma

A -+ X I R I X R2 X ~ I Rm1 xm A

e) Gramaacuteticas de Relacioacuten de siacutembolos Eacuteste es un formalismo sintaacutectico para describir un lenguaje visual donde cada oracioacuten dentro del lenguaje se representa como un conjunto de objetos visuales y un conjunto de relaciones entre objetos

El alfabeto de siacutembolos Vt y el conjunto de relaciones entre siacutembolos Vr una oracioacuten de relacioacuten de siacutembolos w sobre Vt y Vr es un par ( M R) donde

M es un conjunto de elementos-s (v i) con v E Vt y i es un nuacutemero natural R es un conjunto de elementos-r de la forma r (Xi Yj) con Xi Yj E M r E Vr y una relacioacuten r esta contenida entre Xi y Yj

Una gramaacutetica de relacioacuten de simbolos es el conjunto de seis elementos G = (Vn Vt Vr S P R) donde Vn es un conjunto de siacutembolos no terminales Vt es un conjunto de siacutembolos terminales Vr es un conjunto de relaciones entre siacutembolos S es el siacutembolo inicial y P es un conjunto de reglas de reescritura (producciones de elementos-s)

f) Gramaacuteticas relacionales Este tipo de gramaacutetica pertenecen a las gramaacuteticas libres de contexto

La gramaacutetica relaciona1 (RGrsquos) es una 6-tupla G (N C S R Attr P) donde

N C S R Attr P

es un conjunto finito de siacutembolos no terminales es un conjunto de siacutembolos terminales es un siacutembolo distinguido en N llamado siacutembolo inicial es un conjunto finito de siacutembolos de relacioacuten es un conjunto finito de siacutembolos de atributos es un conjunto de producciones de la forma A-gt apF donde A E N a E (nlo)+ Donde n E N cr E E

8 Es un conjunto de relaciones de la forma (r x y) donde r E R y xy son enteros que hacen referencia a un miembro de a y tambieacuten una expresioacuten de la forma (a i) donde a E Attr e i es un entero que hace referencia a un miembrode a

F Es un conjunto de declaraciones de asignacioacuten de caracteriacutesticas de la forma (a O)=x donde a E Attr y x es un entero que hace referencia a un miembro de a o a una expresioacuten de la forma (a i)

15

Marco teoacuterico

24 Programacioacuten orientada a objetos

L~~ meacutetodos orientados a objetos organizan la informacioacuten Y el procesamiento que manipula esta informacioacuten de acuerdo a los objetos delrsquomundo real que la informacioacuten describe [BRO97l

Beneficios de las teacutecnicas orientadas a objetos [BR097] Estabilidad del sistema Mantenibilidad Componentes reusables Confiabilidad Accesibilidad de los datos Participacioacuten del usuario

Seguacuten Graddy Booch la programacioacuten orientada a objetos es ldquoun meacutetodo de implementacioacuten en el que los programas se organizan como colecciones cooperativas de objetos cada uno de los cuales representan una instancia de alguna clase y cuyas clases son todas miembros de una jerarquiacutea de clases unidas mediante relaciones de herenciardquo [JOY 981

Programacioacuten orientada a objetos esencialmente significa programacioacuten usando objetos [JAC93] Los lenguajes orientados a objetos deben soportar los siguientes conceptos

Objetos Abstraccioacuten de datos Encapsulamiento Clases e Instancias Herencia entre clases Polimorfismo

Las propiedades fundamentales de la Programacioacuten Orientada a Objetos son

a Abstraccioacuten Son ideas conceptos y propiedades que se describen en forma general eliminando los detalles Es una estructura de datos y los meacutetodos que manipulan a esos datos

b Encapsulamiento Son las fronteras propias de un objeto bien definidas las cuales protegen los detalles de su representacioacuten interna

c Ocultacioacuten de la informacioacuten Es la propiedad en la que los objetos pueden hacer uso para impedir que otros objetos los usuarios o incluso los programadores conozcan coacutemo estaacute distribuida la informacioacuten

d Herencia Es la propiedad que tiene una clase para heredar atributos y comportamiento a otras clases

e Polirnorfismo Es la propiedad que permite que una entidad pueda cambiar a diferentes formas efectuaacutendose de manera dinaacutemica en tiempo de ejecucioacuten

16

Marco teoacuterico

t

Clases Es la especificacioacuten de una familia de objetos es la declaracioacuten de un tipo de objetos Tambieacuten se dice que una clase es la descripcioacuten de un conjunto de objetos con un comportamiento similar y que esta compuesta de Datos (o atributos) y Meacutetodos o (rutinas acciones operaciones)

Objeto Un objeto es una entidad en la cual se almacenan datos y los meacutetodos o funciones que controlan dichos datos Un objeto es una abstraccioacuten de alguna cosa del mundo real que contiene datos que lo describen y operaciones que solo tienen acceso a esos datos [BR097l Los elementos de los que esta conformado un objeto son

a Las relaciones permiten que el objeto se integre en la organizacioacuten b Las propiedades son los datos que caracterizan el estado de un objeto distinguiendo

asiacute a un objeto determinado de los restantes que forman parte de la misma organizacioacuten

c Los meacutetodos son las operaciones que pueden realizarse sobre la estructura del objeto es decir las acciones que cambian el estado de un objeto y que el objeto es capaz de ejecutar a traveacutes de mensajes y que tambieacuten pone a disposicioacuten de sus descendientes a traveacutes de la herencia

Mensajes Son solicitudes para que se lleve a cabo la operacioacuten indicada y se produzca un resultado

Las razones principales para introducir la tecnologiacutea de objetos son los beneficios de dicha tecnologiacutea

Aumento de la fiabilidad Aumento de la productividad del desarrollador Desarrollo maacutes raacutepido Mejor calidad maacutes alta

Incremento en escalabilidad Mejores estructuras de informacioacuten Incremento de adaptabilidad Reduccioacuten del coacutedigo fuente

Mantenimiento maacutes faacutecil y reduccioacuten de costo

Los elementos de reutilizacioacuten son las clases y objetos

25 Lenguaje de Modelado Unificado (UML)

UML (Unified Modeling Language por sus siglas en ingleacutes Lenguaje de Modelado Unificado) es un lenguaje de modelado visual de propoacutesito general que es utilizado para especificar visualizar construir y documentar las partes de un sistema de software El lenguaje estaacute basado en un pequentildeo nuacutemero de conceptos centrales que la mayoriacutea de los desarrolladores de tecnologiacutea orientada a objetos pueden aprender y aplicar faacutecilmente [RUM99]

17

Marco teoacuterico

y UML Pasado Presente y Futuro

L~~ lenguajes de modelado orientado a objetos aparecieron a mediados de 10s 70rsquos Varias teacutecnicas influenciaron estos lenguajes El nuacutemero de lenguajes de modelado incrementoacute desde menos de 10 hasta maacutes de 50 entre 1989 y 1994 Muchos modeladores teniacutean problemas para encontrar un lenguaje de modelado que satisficiera todas sus necesidades Notablemente aparecioacute Boochrsquo93 y la evolucioacuten continuoacute a OMT y Fusioacuten

OOSE (Object-Oriented Software Engineering) estaacute enfocado a la ingenieriacutea de negocios y anaacutelisis de requerimientos dando un excelente soporte orientado a casos de uso OMT-2 es especialmente expresivo para anaacutelisis y sistemas de informacioacuten de datos grandes Boochrsquo93 fue particularmente expresivo para el disentildeo y fases de construccioacuten de proyectos y popular para aplicaciones de ingenieriacutea intensiva

Grady Booch y Jim Rumbaugh iniciaron el desarrollo de UML en 1994 al unificar sus meacutetodos independientes Booch y OMT En 1995 Ivar Jacobson se unioacute a Racional eacutesta unioacuten logroacute que el meacutetodo OOSE se incorporara La unificacioacuten establecioacute que debiacutean activar el modelado de sistemas utilizando conceptos orientados a objeto asiacute como crear un lenguaje usable tanto para las maacutequinas como para los humanos

A

Muchas organizaciones se unieron al consorcio UML y dedicaron recursos al trabajo hacia el fortalecimiento de la definicioacuten de UML Esta colaboracioacuten produjo un lenguaje de modelado expresivo poderoso y generalmente aplicable En la forma actual de UML se espera que sea base de muchas herramientas incluidas las de modelado visual simulacioacuten y ambientes de desarrollo

R UML es abierto y no-propietario y aunque define un lenguaje preciso no es barrera para futuras mejoras en conceptos de modelado Se usan muchas teacutecnicas de punta pero se esperan teacutecnicas adicionales que influencien futuras versiones de UML puede ser extendido sin redefinir el nuacutecleo

c

Mientras el rehuacuteso basado en componentes se ha favorecido ampliamente cada vez mas esto no significa que las teacutecnicas basadas en componentes reemplazaraacuten las teacutecnicas orientadas a objetos Hay solo sutiles diferencias entre la semaacutentica de componentes y clases [ALC03]

Un opaco rendimiento caracterizoacute el mercado de anaacutelisis modelado y disentildeo en el 2000 en su transicioacuten de las viejas herramientas CASE (Computer Aided Software Engineering) a algo maacutes dinaacutemico y mejor adaptado para satisfacer las necesidades de los desarrolladores para el cambio raacutepido en los ambientes de negocio

El mercado de anaacutelisis modelado y disentildeo lograraacute obtener un crecimiento positivo en varios de los siguientes antildeos por varias razones El mercado seraacute manejado principalmente por la necesidad de desarrolladores a obtener aplicaciones para lanzarse al mercado raacutepidamente asiacute tambieacuten por el intereacutes creciente y uso de una nueva especie de herramienta y por el intereacutes creciente de los desarrolladores en usar UML reglas de negocios y adaptadores de componentes para construir aplicaciones [RIKUI]

z -

18

Marco teoacuterico

UML se ha hecho el estaacutendar para los desarrollos de modelado de negocios administracioacuten de requerimientos anaacutelisis y disentildeo programacioacuten y pruebas Los objetivos primarios de UML en el disentildeo [RAT97j

o Dar a los usuarios un lenguaje visual expresivo de modelado listo para usarse para que puedan desarrollar y cambiar los significados de sus modelos

o Suministrar mecanismos de extensibilidad y especializacioacuten para extender los conceptos centrales

o Ser independiente de lenguajes de programacioacuten particulares y procesos de desarrollo

o Impulsar el desarrollo de las herramientas Orientadas a Objeto en el mercado o Soportar conceptos de desarrollo de alto nivel como colaboracioacuten marcos de

componentes reutilizables patrones y componentes o Integrar las mejores praacutecticas

9 El aacutembito de UML

UML es un lenguaje para especificacioacuten construccioacuten visualizacioacuten y documentacioacuten de artefactos de un sistema de software UML es la fusioacuten de los conceptos de Booch OMT y OOSE El resultado es un simple comuacuten y ampliamente usado lenguaje de modelado para usuarios de estos y otros meacutetodos UML se enfoca en un lenguaje de modelado estaacutendar no en un proceso estaacutendar los autores de UML recomiendan un proceso de desarrollo manejado por casos de uso de arquitectura central iterativo e incremental [iiquest4T97l

Para la definicioacuten de sistemas de software en UML se definen diagramas Un diagrama es la representacioacuten graacutefica de un conjunto de elementos este se visualiza la mayoriacutea de las veces como un grafo conexo de nodos (elementos) y arcos (relaciones) Los diagramas se dibujan para visualizar un sistema desde diferentes perspectivas de forma que un diagrama es la proyeccioacuten de un sistema uumlML incluye nueve diagramas [B0099]

4 -

I Diagrama de clases 2 Diagrama de objetos 3 Diagrama de casos de uso 4 Diagrama de secuencias 5 Diagrama de colaboracioacuten 6 Diagrama de estados 7 Diagrama de actividades 8 Diagrama de componentes 9 Diagrama de despliegue

Diagramas de secuencias Un diagrama de secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten comportamiento

Un diagrama de secuencias muestra un conjunto de mensajes acomodados en una secuencia de tiempo eacuteste diagrama muestra la interaccioacuten en un esquema de dos - dimensiones [RUM99]

19

Marco teoacuterico

Y -

Un diagrama de secuencia es un diagrama de interaccioacuten que resalta la ordenacioacuten temporal de los mensajes Un diagrama de secuencia presenta un conjunto de objetos y los mensajes enviados y recibidos por ellos Los objetos suelen ser instancias (con nombre o sin nombres) de clases pero tambieacuten pueden representar instancias de otros elementos tales como colaboraciones componentes y nodos Los diagramas de secuencia se utilizan para describir la vista dinaacutemica de un sistema [B0099]

Usar los diagramas de secuencia es mostrar la secuencia que existe en un caso de uso [RUM 991

Los diagramas de secuencia tienen dos dimensiones Una dimensioacuten que representa el tiempo Otra dimensioacuten que representa los diferentes objetos que participan en la secuencia de eventos requeridos para completar el propoacutesito [MOuuml98]

El principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildea las interacciones de los objetos [DAN02]

20

Capiacutetulo 3

DesawoCCo de Ia herramienta

En este capiacutetulo se describe el desarrollo del Ambiente Visual Se describe el modelo conceptual del sistema la arquitectura asiacute como tambieacuten los elementos que componen la Arquitectura Se estudian los Diagramas de Secuencias de UML y algunos Patrones de Disentildeo de los que se hace uso para el mejor desarrollo del sistema Se describe a detalle la Gramaacutetica Visual Relaciona1 utilizada para el de Ambiente de desarrollo

I CENIOET 1FNTRO DE INFORMACION

Desarrollo de la herramienta

t i i

Actualmente existe en el cenidet un Ambiente Visual de Modelado de Clases llamado InverSOODA este Ambiente Visual tiene la capacidad de realizar la generacioacuten automaacutetica de coacutedigo de las clases en C++ a partir del modelo especificado Ademaacutes se puede realizar la Ingenieria Inversa de un coacutedigo legado para obtener el modelo de clases Aunado a este trabajo existe el Ambiente Visual denominado InverDDVi con el cual se puede realizar el Disentildeo Detallado de los Meacutetodos de las Clases con diagramas de Warnier Asiacute tambieacuten es posible obtener el modelo aplicando la Ingenieriacutea Inversa a un coacutedigo legado en C++

Ambos trabajos son retomados en este proyecto para la automatizacioacuten en la obtencioacuten de los Diagramas de Secuencias de UML La figura 31 muestra el modelo propuesto de ingenieriacutea directa

Extraer informacioacuten del diagrama de

rsquo rsquo

Diagrama de 11 clases I o

detallado de

detallado de

o meacutetodos

i ir---- Construir el

secuencias i

Modelo de Ingenieriacutea I directa automaacutetica

I

Figura 31 Modelo de Ingenieria Directa Autombtica de los Diagramas de Secuencias

Para la construccioacuten automaacutetica de un diagrama de secuencias se toma como base a un diagrama de Clases El modulo ldquoExtraer informacioacuten del diagrama de Clasesrdquo sirve para obtener el nombre y los meacutetodos descritos en cada uno de las clases que existan en el diagrama de Clases

22

Desarrollo de la herramienta

Con base en la informacioacuten que se tiene se abren los archivos correspondientes a los diagramas de Warnier El proceso que se emplea sobre cada uno los diagramas de Warnier llamado ldquoExtraer informacioacuten de los disentildeos detallados de los meacutetodosrdquo sirve para recopilar el conjunto de las llamadas de cada meacutetodo definido

En el siguiente paso (ldquoReconocer llamadas a meacutetodosrdquo) consiste en identificar si los meacutetodos que estaacuten descritos en los diagramas de Warnier tambieacuten lo estaacuten en el diagrama de Clases correspondiente

El paso ldquoConstruir los diagramas de secuencias automaacuteticamenterdquo realiza una validacioacuten de los meacutetodos definidos en los diagramas de Clases con los meacutetodos definidos en los diagramas de Warnier Este paso crea una estructura de datos con la secuencia de las llamadas y la recorre para crear los objetos y los mensajes en el diagrama de secuencias

AI terminar la creacioacuten automaacutetica del diagrama de secuencias se dispone de la r opcioacuten de guardar

31 Disentildeo de la Arquitectura

Para definir los procesos que el sistema va a realizar es necesario llevar a cabo un anaacutelisis de requisitos los cuales pueden ser expresados mediante diagramas de Casos de Uso Los Casos de Uso son una descripcioacuten textual narrativa de los procesos de un sistema

311Requisitos (Diagrama de Casos de uso)

Los casos de uso en realidad no son un artefacto de anaacutelisis orientado a objetos estos describen simplemente procesos y pueden ser igualmente efectivos en un proyecto tecnoloacutegico no orientado a objetos Son usados en un paso preliminar a la descripcioacuten de requerimientos de un sistema [LAR971 La Figura 32 muestra el diagrama de casos de uso que especifica al S3C

9

S3C (Diagramas de Secuencias)

usuario I Modelado de

I

Figura 32 Diagrama de Casos de Uso para el S3C

23

Desarrollo de la herramienta

Descripcioacuten de los Casos de Uso

Caso de Uso ldquoDiagramas de Secuenciasrdquo Se inicia cuando el actor ldquousuariordquo solicita la creacioacuten de un Diagrama de Secuencias Se establece la forma de la construccioacuten automaacutetica de los diagramas de secuencias de UML Se hace uso del Modelado de Clases y del Modelado del disentildeo detallado de los meacutetodos

Escenario de Eacutexito 1 Se obtiene la informacioacuten de las clases del modelado de clases 2 Se obtiene la informacioacuten del modelado del disentildeo detallado de los meacutetodos 3 Se realiza la construccioacuten automaacutetica de los diagramas de secuencias

1 En el modelo de clases no hay informacioacuten o estaacute incompleta 2 En el modelo del disentildeo detallado de los meacutetodos no hay informacioacuten o estaacute

incompleta

Escenario de Falla

Caso de Uso ldquoModelado de Clasesrdquo El diagrama de Clases se utiliza para obtener los nombres de clases y los nombres de los meacutetodos de cada clase

Escenario de Eacutexito 1 Se abre el modelo 2 Se procesa para obtener la informacioacuten de las clases (nombres de clases y nombres

de meacutetodos)

Escenano de Falla h 1 No se puede abrir el modelo J 2 El modelo esta vaciacuteo

Caso de Uso ldquoModelado del Disentildeo detallado 1 los meacutetodosrdquo El disentildeo detallado de los meacutetodos se realiza con diagramas de Warnier aquiacute se establecen las llamadas a funciones dentro del sistema y es aquiacute donde se identifica el dinamismo que se representaraacute en los diagramas de secuencias

Escenario de Eacutexito 1 Se abre el modelo 2 Se realiza la identificacioacuten de las llamadas existentes

Escenario de Falla 1 No se puede abrir el modelo 2 El modelo esta vaciacuteo

24

Desarrollo de la herramienta

Clase Objeto ni I Diagrama I n ____ Nombre Descripcioacuten

i

Mensaje

Tipo

En el Anaacutelisis Orientado a Objetos se crea una especificacioacuteii del dominio del problema y de los requeriinientos desde la perspectiva de una clasificacioacuten por objetos y del entendimiento de los teacuterminos usados en el dominio del problema Una descomposicioacuten del dominio del problema involucra una identificacioacuten de conceptos atributos y asociaciones que son considerados importantes dentro del dominio El resultado puede ser expresado en un Modelo Corzcepttraf el cual es ilustrado en un conjunto de diagramas que definen conceptos (objetos) [LAR97]

312Modelo Conceptual

El modelo conceptual visto en la Figura 33 no es una descripcioacuten de componentes de software representa conceptos en el domino del problema en el mundo Teal [LAR97l

313Diagramas de clases

Por cuestiones dc espacio las clases de la arquitectura del sistema estaraacuten referidas en varios diagramas que de alguna manera estaacuten relacionados entre si

Una de las partes maacutes importantes del Ambiente Visual S3C es la estructura de clases ltCCraJicogt la cual se refiere al control de los diagramas eacutesta por su naturaleza podriacutea considerarse el nuacutecleo del sistema La manipulacioacuten y control de los diagramas estaacute definido en una estructura de clases organizada con el patroacuten de disentildeo Composite que se muestra en la Figura 34

25

Desarrollo de la herramienta

CRecursividadDS CMensajeDS CObjetoDS CDiagramaDS

I Cvisitor I

CApuntadorDS CDblClickDS CAsocAdjusterDS CSelectorDS

26

Desarrollo de la herramienta

n 32 Elementos de la arquitectura

Es necesario describir los elementos que dan soporte a la arquitectura del ambiente donde se implementaraacute el sistema en este caso Microsoft Visual (MV) C++ 6 El MV C++ es un marco de aplicacioacuten poderoso basado en Windows se integran ademaacutes del lenguaje C++ (compilador y enlazador) el programa de desarrollo de programas en lenguaje C para Windows (SDK) la Microsoft Foundation Class Library AppWizzard Classwizard AppStudio y WorkBencli

La Microsoft Foundation Class Library comprende una biblioteca de clases de C++ y es considerada como el nuacutecleo del MV C++

321Microsoft Foundation Class (MFC)

La libreriacutea Microsoft Foundation Class (MFC) es una interfaz orientada a objetos que tiene las siguientes metas de disentildeo

o

Reduccioacuten significante de esfuerzo al escribir una aplicacioacuten para Windows Velocidad de ejecucioacuten comparable a las APIrsquos del lenguaje C Miacutenimo tamantildeo de coacutedigo Capacidad para llamar cualquier funcioacuten de Windows en C directamente Faacutecil conversioacuten de aplicaciones existentes en C a C++ Faacutecil uso de APIrsquos de Windows con C++ como con C Faacutecil uso de complicadas caracteriacutesticas de abstracciones poderosas como ActiveX soporte para base de datos impresioacuten barras de herramientas y barras de estado El API de Windows en C++ si usa tan efectivamente como las caracteriacutesticas mismas del lenguaje C++

La mayoriacutea de las clases de la Libreriacutea de la Microsoft Foundation Class son derivadas de una clase base ltCObjectgt que es la raiacutez de la jerarquiacutea de clases ltCObjectgt da uacutetiles capacidades a las clases que derivan de ella

La jerarquiacutea que existe en las clases derivadas de ltCObjectgt es la siguiente

Arquitectura de Aplicacioacuten Excepciones Servicios de Archivos Arreglos Listas Mapas Servicios de Internet Sockets Sincronizacioacuten Soporte para base de datos D A 0

27

Desarrollo de la herramienta

i

r

Liacutenea de Comandos Menuacute Dibujo Graacutefico Dibujo Graacutefico de Objetos Soporte de Control Soporte de Ventanas

Soporte para base de datos ODBC

o Marco de Ventanas o Barras de control o Hojas de propiedades o Cajas de Dialogo o Vistas o Controles

322Arquitectura Documento Vista

Por defecto las aplicaciones creadas con la MFC usan un modelo de aplicacioacuten que separa los datos del programa de las vistas de interaccioacuten con el usuario En eacuteste modelo un objeto documento de MFC lee y escribe datos en un almacenamiento persistente Un objeto vista administra el despliegue de datos suministrando al usuario los datos para ser seleccionados o editados La vista le comunica al documento cualquier cambio en los datos La razoacuten maacutes conveniente para seguir este modelo es cuando se necesita muacuteltiples vistas del mismo documento (como en una hoja de caacutelculo y un graacutefico)

La arquitectura documentovista hace faacutecil el soporte de muacuteltiples vistas y muacuteltiples tipos de documentos asiacute como la divisioacuten de ventanas y otras caracteriacutesticas de interfaz de usuario Pero el corazoacuten de la arquitectura son cuatro clases (Mostradas en el aacuterbol de clases de la Figura 36)

ltCDocumerrtgt (o ltCOleDocuinentgt) - Se instancia un objeto de este tipo para almacenar y controlar los datos del programa ltCViewgt (o una de sus clases derivadas ltCScrotlViewgt ltCFormViewgt ltCEditView ltCRecordViewgt ltCDaoRecordView ltCtreeViewgt ltCListViewgt b ltCrichEditViewgt) - Un objeto es usado para desplegar los datos y administrar la interaccioacuten del usuario con los datos ltCFrameWndgt (o una de sus variantes) - Establece el marco sobre el que trabajaraacuten una o mas vistas de un documento ltCDocTemolategt (o ltCSingIeDocTemplategt o ltCMultiDocTemplategt) - Coordina la existencia de uno o maacutes documentos de un tipo dado y administra la correcta creacioacuten de los documentos vistas y objetos ventanas para cada tipo

i

28

Desarrollo de la herramienta

______________ 2 Wiew

I - - __ - ------a ________________

323Integrando Ambientes en Visual C t t

Las aplicaciones de Interfaz de Documento Uacutenico (SDI) soporta muacuteltiples tipos de documentos pero este soporte es para un solo objeto documento Debido a esta restriccioacuten y aunado a la necesidad de tener varios objetos documentos a la vez se determina la utilizacioacuten del modelo Interfaz de Muacuteltiples Documentos (MDI) indicado en la Figura 37

324Interfaz de Muacuteltiples Documentos (MDI)

Una aplicacioacuten de Interfaz de Muacuteltiples Documento (MDI) permite la creacioacuten de plantillas para el manejo de los documentos eacutesta plantilla tiene la forma

rn-pDocTemplate = new CMultiDocTernplate ( I DR-SCUMLTY PE RUNTIME-CLASS (CSCUMLDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CTheView))

AddDocTernplate ( rn-pDocTemplate )

Cada plantilla describe una relacion del tipo de documento con la vista asociada La definicioacuten de la plantilla para el ambiente que controla los diagramas de secuencias es la siguiente

29

Desarrollo de la herramienta c

m-pTernplateSeqDlag = new CMultiDocTernplate ( IDR-DS-SJCTYPE RUNTIME-CLASS (CSeqDiagDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CSeqDiagView) )

AddDocTernplate( rn-pTernplateSeqDiag )

Esta plantilla hace uso de la clase CCliildFrame que por defecto el ambiente Visual C++ construye y esto es debido a que no se requieren caracteriacutesticas extras en las ventanas de las que proporciona dicha clasc En un caso en el que se requiriera un comportamiento diferente de la vista tendriacutea que crearse una nueva clase con las caracteriacutesticas deseadas

Vista Documento

Vista

I- Vista Documento I [ Tip- F Vista

L Figura 37 Modelo Interfaz de Muacuteltiples Documentos (MDI)

Para integrar otro Ambiente que utilice otro tipo de documento es necesario definir otra plantilla de la misma forma mencionada Debe tomarse en cuenta los siguientes puntos

Es necesario definir el nombre (mqTemplateNOMBRE) El IDR del tipo que se requiere que sea el documento En la primera liacutenea RUNTIME CLASS debe indicar la clase ltCDocumentgt que desea La segunda liacutenea RUNTIME-CLASS soacutelo la cambia a otra clase si requiere de otro manipulador de ventanas de lo contrario deje que ltCChildFramegt se haga cargo

-

30

Desarrollo de la herramienta

En la uacuteltima liacutenea referente a RUNTIME-CLASS se debe indicar la clase ltCViewgt que desea usar Para finalizar se usa la instruccioacuten AddDocTernplate para finalizar la definicioacuten del template (mgTemplateNOMBRE)

325 Recursos Diaacutelogos Mertuacutes y Barras de Herrattriertias

Son varios los recursos con los que se puede contar al crear un proyecto en Microsoft Visual C++ Los diaacutelogos son un recurso disponible que son utilizados para visualizar ingresar yo modificar informacioacuten que se requiera En el Ambiente Visual que se desarrolla son varios los diaacutelogos que se utilizaraacuten y eacutestos se describen a continuacioacuten

El Diaacutelogo ldquoCaracteriacutesticas del Obietordquo (Figura 38) identifica el nombre del Objeto y la descripcioacuten del mismo Este diaacutelogo se muestra cuando se presiona doble clic sobre un objeto del diagrama

I Nombre

Desciipcion

Figura 38 Dialogo Caracteriacutesticas del Objeto

El Diaacutelogo ldquoMensaierdquo (Figura 39) muestra el nombre del mensaje que puede ser modificado ademaacutes se visualizan el Identificador del Mensaje el tipo de Mensaje asiacute tambieacuten el origen y destino del mensaje

31

Desarrollo de la herramienta

Nornbie delMensaje Edit

IDentificador del Mensaje Edil Tipo de Mensaje (Edil

Edit Objeto Origen

Objeto Destino IEdit

i25El A Figura 39 Dialogo Mensaje

El menuacute es otro de los recursos del que se puede disponer para organizar el ambiente que se estaacute creando Para eacuteste caso en particular no se hizo modificaciones al menuacute estaacutendar (Figura 310) que Visual C++ presenta Los cambios significativos son el manejo del tipo de documento para los Diagramas de Secuencias

Archivo Editar Yer VenLana AyGda

Figura 310 Menuacute de los Diagramas de Secuencias (estaacutendar)

Otro importante recurso del que uno se puede valer en Visual C++ es la barra de herramienta personalizada la cuaacutel es construida en el Editor de Recursos Se ha construido una barra (Figura 311) con los elementos graacuteficos de los Diagramas de Secuencia de UML

Figura 311 Barra de Herramientas de los Diagramas de Secuencias

Es recomendable que al utilizar barras de herramienta personalizada se defina en el tamantildeo estaacutendar ya que puede experimentar problemas al momento de ejecutar la aplicacioacuten

Ademaacutes puede usar la propiedad TBBS-CHECKGROUP en una barra de herramientas para establecer que los botones puedan quedar presionados hasta que un botoacuten diferente sea presionado No olvide que la numeracioacuten inicia con cero ( O )

vuriableToolBurSetButtonStyle(OTBBSCHECKGROUP)

32

Desarrollo de la herramienta

Prefijo ID IDC IDD IDP IDR IDS

326 Notacioacuten estaacutendar

Los nombres descriptivos de los recursos se asocian a un valor uacutenico Para una mayor claridad eacutestos nombres mantienen un prefijo que describe el tipo de recurso asociado (vea la Tabla 31) [MIC99]

Tipo de Recurso Comandos de Menuacute Controles y recursos Cuadros de diaacutelogo Cadenas de solicitud para cuadros de mensaje Menuacute principal barras de herramienta tabla aceleradora y el icono Cadenas

IDR IDD IDC ID

200 - 299 3000 - 3999 34000 - 34999

Estos son los rangos de valores establecidos para el proyecto S3C Si se utiliza el coacutedigo fuente y se planea agregar otro proyecto verifisue que no se invadan estos nuacutemeros para evitar problemas

Para facilitar auacuten maacutes los trabajos futuros se ha definido una estructura de carpetas (ver Figura 312) para incluir en cada una las Clases correspondientes a cada tesis en desarrollo

33

Desarrollo de la herramienta

ill ~~ -

-I SCUML classes + U A N T L R + U App + 0 ClassDiagrams + 0 Common + a Java

t $2 SequenceDiagiams

+ WarnierDiagrams

iJ PackageDiagrams

12 StaterChartDiagrams

+

- f Classview I Resourceview 1 FileView ]

~ ~

Figura 312 Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)

327Estructura de datos persistencia y recuperacioacuten

Existe una gran cantidad de tipos de datos estructuras clases y meacutetodos de los que se puede hacer uso para una mejor y maacutes faacutecil obtencioacuten de los resultados A continuacioacuten hago comentarios en tipos de datos y meacutetodos en los que podriacutea tener problemas

CTypedPtrList

AI usar este tipo de dato o alguno relacionado que le permita utilizar el meacutetodo ltCTvrgtedPtrListGetNextgt tenga especial precaucioacuten al usarlo ya que al devolver el valor requerido la variable POSITION usada no se queda apuntando a ese valor en particular salta al inmediato siguiente de la lista

Si se realiza una creacioacuten dinaacutemica con punteros para los elementos de una CTypedPtrList Despueacutes de haberlo agregado a la lista evite el delete para borrar esta Usted deseando liberar la memoria no lo haga ya que eliminara directamente el elemento de la lista

POSITION

Es un valor usado para denotar una posicioacuten de un elemento en una coleccioacuten Pero CUIDADO no se refiere a un iacutendice es una referencia (no consecutiva) de punteros muy diferente a un iacutendice

CString

Auacuten cuando el operador de comparacioacuten == (igual a) es permitido para ser utilizado en las cadenas evite su uso ya que en ocasiones aunque cuando la e

34

Desarrollo de la herramienta

compilacioacuten no indique error alguno en la ejecucioacuten no realizaraacute lo que se necesita Recomiendo que utilice CStringCompare ()

Para eliminar el contenido de un CString utilice CStringEmpty() ya que asignar a la cadena un ldquonrdquo podriacutea causarle problemas

Serializacioacuten

Una forma en que se puede guardar informacioacuten y recuperarla de manera eficaz es mediante la serializacioacuten de objetos La serializacioacuten es un proceso que permite escribir un objeto en un archivo y tambieacuten leerlo

Para que la serializacioacuten se lleve a cabo son necesarios tres objetos un objeto de tipo ltCFilegt que represente el archivo un objeto de tipo ltCArchivegt que ofrece el entorno para la serializacioacuten y la clase del objeto a ser serializado debe ser heredada de ltCObjectgt y sobrescribir el meacutetodo ltSerializegt para que se encuentre de tal forma en que pueda ser serializado (vea la Figura 313)

Objeto a ser serializado 1

1 CArchive

[f --=I- ---7 Archivoexi

u Figura 313 Serializacioacuten

328Patrones de disentildeo utilizados

Se ha planteado la definicioacuten de una arquitectura de clases utilizando patrones de disentildeo debido a que algunos de ellos hacen maacutes faacutecil la extensioacuten de la funcionalidad y mantenimiento

35

Desarrollo de la herramienta

El patroacuten Composite es utilizado para crear de manera uniforme el diagrama sobre el que se trabaja (ver Figura 34) manteniendo una jerarquiacutea de clases uniforme las clases maacutes bajas en la jerarquiacutea definen primitivas de objetos graacuteficos

Se aplica el patroacuten de disentildeo Iterator para hacer recorridos en listas de objetos para realizar diversas operaciones Otro patroacuten de disentildeo del que se hace uso es el Visilor (ver Figura 35)

Para otras actividades que se realizan podriacutea pensarse en que se deberiacutean aplicar otros patrones pero se han evitado algunos (como el patroacuten de disentildeo Builder) para evitar incrementar la complejidad en la arquitectura ya que ai mantener el modelo de la MFC de documentovista la funcionalidad del patroacuten de disentildeo Builder es faacutecilmente reemplazado si se hiciera Uso de eacuteste se aumentariacutea la complejidad excesivamente (nos llevariacutea a perdemos en ocasiones en el paso de mensajes entre clases) dantildeando la facilidad de la arquitectura

33 Diagrama de secuencias

Un Diagrama de Secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten escenario Oacute comportamiento se usan para definir el curso loacutegico de accioacuten de un posible camino a seguir en la resolucioacuten de un problema Seguacuten John Daniels [DANO2] ldquoel principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildean las interacciones de los objetosrdquo

Los Diagramas de Secuencias se utilizan en el modelado de la implementacioacuten de sistemas de software ademaacutes son aplicables en el modelado de requisitos para establecer las comunicaciones existentes entre actores yo clases del sistema Con eacutestos diagramas se logran hacer descripciones de los escenarios y los comportamientos del sistema Con los Diagramas de Secuencias es posible definir protocolos de comunicacioacuten con paso de mensajes ya que dan esa flexibilidad que se requiere Ademaacutes los Diagramas de Secuencias contienen informacioacuten suficiente para que puedan ser transformados a los diagramas de colaboracioacuten [RUM Ol][BOO Oil

331Ciclo de vida del software

Considerando cualquier modelo de ciclo de vida del software (en la figura 314 se muestra el Modelo de cascada) el aacutembito directo de eacuteste Ambiente Visual es en el disentildeo aunque tiene sus vertientes en la codificacioacuten y mantenimiento

36

Desarrollo de la herramienta

Diseno

Codificacibn

I I I I Mantenimiento I

igura 314 Modelo de cascada del ciclo de vida del software

34 Elementos atoacutemicos de la Gramaacutetica

Definicioacuten de los elementos atoacutemicos del lenguaje y su contenido

1 Actor- Representa roles de entidad externos al sistema con el que interactuacutea directamente Los actores pueden ser humanos dispositivos u otros sistemas

2 ClaseObjeto- Determina una Clase u Objeto participante en la interaccioacuten

3 Mensaje-Es una comunicacioacuten entre objetos que contiene informacioacuten Eacuteste se representa con la finalidad a que una accioacuten sea llevada a cabo

4 Mensaje con tiempo- Tiene la misma finalidad que el mensaje la diferencia es que con eacutel se representa un atributo de tiempo

5 Mensaje asiacutencrono Es un mensaje que ocurre en el tiempo de manera independiente a otros mensajes

6 Mensaje de destruccioacuten de objeto- Es un mensaje cuya finalidad es indicar la destruccioacuten del objeto destino

7 Mensaje de creacioacuten de objeto- Es un mensaje que indica la creacioacuten de un objeto

8 Llamada al mismo objeto (Recursividad)- Es usado para modelar llamadas recursivas en el que una operacioacuten es invocada por el mismo objeto

37

Desarrollo de la herramienta

9 Destruccioacuten del objeto (AutodestrucciOacuten)- Puede o no modelarse es representada con una X al final de la liacutenea de vida del objeto

Elementos aulomaacuteticos

1 Liacutenea de Vida- Representa la vida del objeto durante la interaccioacuten

2 Activacioacuten- Muestra el periacuteodo de tiempo en el cual el objeto alguna operacioacuten

341RepresentaciOacuten visual

Representacioacuten visual de los elementos atoacutemicos del lenguaje

Actor

_- A

Mensaje

Mensaje de Creacioacuten de

Objeto

ClaseObjeto

I

Mensaje de retorno

Mensaje de Destruccioacuten de

Objeto

abla 32 Element(

Activacioacuten

Mensaje con tiempo

Autodestruccioacuten

x

atoacutemicos del lengi

taacute realizz

Texto ===I (letra)+ (letra I

numero) letra= AZ I az numero = 09

I

Recursividad ~

I

i j e

io

38

u

Comentario

iexcl

Conector de Comentario

35 Gramaacutetica desarrollada

La gramaacutetica que se propone es una gramaacutetica visual del tipo relacional Una gramaacutetica relacional pertenece a las gramaacuteticas libres de contexto es una 6-iupla G (N C S R Attr P) donde

N es un conjunto finito de siacutembolos no terminales C es un conjunto de siacutembolos terminales S es un siacutembolo distinguido en N llamado siacutembolo inicial R es un conjunto finito de siacutembolos de relacioacuten Attr es un conjunto finito de siacutembolos de atributos P es un conjunto de producciones

Entonces definiendo nuestra gramaacutetica G (N C S R Attr P)

N = Diagrama GrupoClaseObjeto

S = Diagrama

R = mensaje mensajeTiempo mensajeRetomo mensajeAsincrono mensajecrea mensajeDestruye autodestruccioacuten recursividad

R

Attr = entrada salida entradacrea

39

Desarrollo de la herramienta

Definiendo la posicioacuten de los atributos en los elementos visuales

entradacrea ObetaClase

entrada

salida

P =

Diagrama I GrupoClaseObjeto (mensaje (mensajeRetorno

(salida 1) (entrada 2) ) (salida 2) (entrada 1) )

- Diagrama 0 GrupoClaseObjeto

(mensaje (mensaje (mensajeRetomo (mensajeRetomo (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entradacrea 2) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 1) ) (salida 1) (entrada 1) )

entrada

salida

40

Desarrollo de la herramienta

s

-

GrupoClaseObjeto - 1 1 I 2 (mensaje (mensaje (mensajeRetorno (mensajeRetorno (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entradacrea 2) ) (salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 1) ) (salida I ) (entrada I ) )

1 En las gramaacuteticas relacionales una produccioacuten estaacute acompantildeada de las posibles

relaciones que puedan generarse En la primera produccioacuten Diagrama produce a un Actor seguida de un GrupoClaseObjeto el Actor inicia la interaccioacuten con un mensaje y recibe el mensaje de retorno al finalizar la interaccioacuten La segunda y tercera produccioacuten son similares debido a que un GrupoClaseObjeto contiene dos ClaseObjeto que se relacionan de la misma forma

Existe un elemento de la gramaacutetica llamado Attr (Atributo) el cual define la parte de los elementos visuales donde se establecen las relaciones Se han determinado dos atributos (entrada y salida) que para nuestro propoacutesito estaraacuten establecidos en la liacutenea de vida de cada elemento visual (Actor y ClaseObjeto)

Los Comentarios y la Activacioacuten no se consideran en la gramaacutetica Los comentarios son libres de incluirse y relacionarse con cualquier elemento y relacioacuten mencionada anteriormente y la activacioacuten existe siempre que se presente un mensaje (o podriacutea omitirse) Estas consideraciones se realizaron para hacer auacuten maacutes faacutecil la gramaacutetica ya que si se trata de realizar un sistema las restricciones de estos elementos pueden mantenerse en el lenguaje de programacioacuten en el que se desarrolle el sistema

36

Precondiciones

El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias

1 El diagrama de Clases debe existir y estar completo 2 Debe existir un archivo con un diagrama de Warnier por cada diagrama de Clases y

con el mismo nombre de archivo (excepto la extensioacuten del archivo) 3 En el uacutenico diagrama de Warnier de cada Clase se deben modelar todos los meacutetodos

de la Clase 4 No realizar declaraciones de meacutetodos

41

Desarrollo de la herramienta

5 Debe existir un meacutetodo lsquomain()rsquo en el diagrama de Clases

Restricciones

Los meacutetodos deben mantener nombres distintos en las diferentes Clases

Metodologiacutea para la obtencioacuten automaacutetica de los Diagramas de Secuencias

1 Seleccionar el diagrama de Clases

2 Se construye una lista con los nombres de las Clases y los Meacutetodos

3 Se verifica si exista el meacutetodo lsquomain()rsquo en alguna Clase Se busca la existencia de una uacutenica Clase

a La Clase que contenga lsquomain()rsquo se va al inicio de la lista de Clases

b Si no existe lsquomain()rsquo SE TERMINA EL PROCESO

4 Se verifica la existencia de los archivos que contienen el Disentildeo Detallado de los meacutetodos en Wamier para cada una de las Clases si alguno falta SE TERMINA EL PROCESO

5 Se procesa cada uno de los modelos del Disentildeo Detallado de los Meacutetodos generando una lista de secuencias de llamadas por cada uno de los meacutetodos

6 Se verifica que cada llamada corresponda a alguacuten meacutetodo existente (del diagrama de Clases) De no existir ese meacutetodo la llamada entra a una estructura que

7 Se crea una lista de secuencia

a Se inicia con lsquomain()rsquo b Se recorre cada una de las llamadas de los meacutetodos c Se considera invaacutelido el caso de que un meacutetodo intente una llamada

recursiva al meacutetodo lsquomain()rsquo

8 Se muestra un diaacutelogo de resultados en el que se indican las llamadas que no se encnotraron definidas y que pueden ser Llamada a libreriacutea oacute Llamada Erroacutenea

42

Capiacutetulo 4

Prue6as y su6taaacuteos

En eacuteste capiacutetulo se da a conocer el detalle de las pruebas y de los resultados obtenidos Se describen los casos de prueba con los que se realizoacute la evaluacioacuten del sistema asiacute tambieacuten se presentan comentarios acerca de los resultados obtenidos

Pruebas y Resultados

41 Recursos teacutecnicos utilizados

Para llevar a cabo las pruebas al sistema S3C se utilizaron los siguientes equipos de Coacutemputo

Computadora de escritorio

256MB RAM Disco Duro 80G Monitor 17rdquo SAMSUNG

AMD Athlon XP 1600+ I4Ghz

Computadora de escritorio Intel Pentium 4 - 128MB RAM Disco Duro 40G Monitor 15rdquo i -

42 Descripcioacuten del plan de pruebas

Las pruebas establecen el Uacuteltimo paso desde donde es posible evaluar la calidad y descubrir los errores Las pruebas y la validacioacuten del software se utilizan para comprobar que el sistema cumple con las expectativas del usuario

En esta seccioacuten se describen los casos de prueba que se realizaron al prototipo de S3C en conjunto a la suite cenidet-UML Para cada uno de los casos se presenta el objetivo el procedimiento que se siguioacute para la prueba y se muestran los resultados obtenidos - _

Las pruebas a realizar son los siguientes

Caso 1 Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Caso 2 Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Wamier

Caso3 Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Wamier

Caso4 Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo 5

44

Pruebas y Resultados

43 Resultados

431 Caso 1

5 Y

IZ =

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoSirdquo 4 Seleccionar el archivo ldquoVENTASrdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 41 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

s3c iuevo Proyecto SCUM1

Diagrama de clases

lvendedor I L

3

salida

venta prod

4 venia-oferta vcntaprod =

salida 6

Figura 41 Resultado del caso de prueba 1

45

Pruebas y Resultados

432 Caso 2

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Warnier (almacenwar cajawar vendedorwar) que ya cxisten (del caso de prueba I )

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoNordquo 4 Agregar las siguientes Clases con los respectivos meacutetodos y atributos

a Claseldquovendedorrdquo Meacutetodos ldquoventa mainrdquo b Claseldquoalmacenrdquo Meacutetodos ldquoentrada salidardquo c Claseldquocajardquo Meacutetodos ldquoventagrodrdquo

5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 42 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

Diagrama de daseo lisgrama dcsccucncis

MOIDOC Anivo

venta prod

salida

1 Ycrdquo1a 2

I 4 vcrdquolD~o1cn venta prod gt

salida 6 i Figura 42 Resultado del caso de prueba 2

46

Pruebas y Resultados

r

433 Caso 3

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Warnier

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 43 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

5

Error al tratar de abrir el archivo A bZwar

Aceptar i

Faltan Archivos de Disentildeos Detallados de Meacutetodos 1 1 A No se puede crear el diagrama de secuencias

Figura 43 Resultado del caso de prueba 3

47

Pruebas y Resultados

434 Caso 4

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 44 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

lsquo I

~ _ i i _ l _ Repaado ~~ ~ ~ 6~ ampA Figura 44 Resultado del caso de prueba 4

48

Pruebas y Resultados

PRUEBA DESCNPCION CASO 1 Mostrar la funcionalidad del

Sistema S3C a partir de un

44 Anaacutelisis de Resultados

RESULTADOS Se comproboacute la correcta funcionalidad del Sistema S3C a partir de un diagrama

CASO 3

CASO4

I diagrama de Clases cxistcnte I de Clases existente CASO 2 I Mostrar la funcionalidad del I Sc comproboacute la corrccta funcionalidad

Sistema S3C a partir de un del Sistema S3C a partir de un diagrama diagrama de Clases que se de Clases que se construye al momento construye al momento Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el Secuencias si falta alguno de los diagrama de Secuencia si falta alguno diagramas de Warnier Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el secuencias si hace falta el meacutetodo diagrama de Secuencias al faltar el ldquomain ()rdquo meacutetodo ldquomain()rdquo

de los diagramas de Warnier

Los resultados obtenidos de cada uno de los casos establecidos demuestran que se validoacute la funcionalidad del prototipo con los requisitos definidos en el alcance de este proyecto

a lt

49

Conclusiones y Tru6ajos Futuros

Aquiacute se dan a conocer las conclusiones y se describen los posibles trabajos futuros para la continuacioacuten de eacuteste proyecto

F

51 Conclusiones

Conclusiones y trabajos futuros

Se ha creado un Ambiente Visual que permite obtener de forma automaacutetica los Diagramas de Secuencias en base a los diagramas de Clases y al disentildeo detallado de los meacutetodos descritos con diagramas de Warnier cumpliendo con los objetivos planteados para este trabajo

La tesis aporta principalmente La generacioacuten automaacutetica de los diagramas de secuencias y la eliminacioacuten de inconsistencias al mantener una validacioacuten directa de los diagramas de clases y los diagramas de Warnier que son utilizados

Esta validacioacuten es lograda a traveacutes del uso de la gramaacutetica visual relaciona1 que se ha definido (veacutease el capiacutetulo 3) Esta gramaacutetica visual establece reglas para la correcta construccioacuten de los diagramas de secuencias

P De esta manera se establece que la hipoacutetesis ldquoEs posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodosrdquo Es verdadera

52 Trabajos Futuros

Un Diagrama de Secuencias puede convertirse en un Diagrama de Colaboracioacuten por lo tanto un trabajo futuro es la construccioacuten automaacutetica de un Diagrama de Colaboracioacuten a partir de uno de Secuencias existente

Es posible calcular la meacutetrica de acoplamiento al tener un Diagrama de Secuencias construido

La Ingenieriacutea directa de un Diagrama de Secuencias estableciendo la validacioacuten en la construccioacuten de todos los elementos visuales que UML define

La propagacioacuten de las modificaciones de un Diagrama de Secuencias a los Diagramas de Clases y los Diagramas de Warnier

La modificacioacuten del coacutedigo fuente mediante los cambios establecidos en un Diagrama de Secuencias

51

[ALC03]

[BLA98]

[B0099]

[BOOOi]

[BR097]

[CHA90]

[DAN02]

[GLA02]

[HAC98]

[HER03]

4

Alcate1 Computer Associates International inc Electronic Data Systems Corporation Hewlett-Packard Company IBM Corporation I-Logix IntelliCorp Kabira Technologies Kennedy Carter Microsoft Corporation Object Management Group Oracle Corporation Project Technology Ptech Inc Rational Software Corporation Reich Technologies Softeam Taskon A S Telelogic Unisys Corporation ldquoOMG Unified Modeling Language Specificationrdquo Version 15 Unified Modeling Language 2003

Blaha Michael Rumbaugh James Premerlani William Eddy Frederick Lorensen William ldquoObject-oriented modeling and designrdquo Prentice Hall 484 Paacuteginas ISBN 0-13-629841-9 QA-769-03S-B53-19981998

Booch Grady Rumbaugh James Jacobson Ivar ldquoEl lenguaje unificado de modeladordquo Addison Wesley 432 Paacuteginas ISBN 84-7829-028-1 1999

Booch Grady Rumbaugh James Jacobson Ivar ldquoThe Unified Modeling Language User Guiderdquo Addison Wesley 2001

Brown David ldquoAn introduction to object-oriented analysis objects in plain Englishrdquo John Whiley amp Sons Inc 700 Paginas ISBN 0-471-1 1028-0 QA-769-035-B76-1997 1997

Chang Shi-Kuo ldquoVisual Languages and visual programmingrdquo Plenum Press 340 Paacuteginas ISBN 0-306-43428-8 QA-7665-V57-1990 1990

Daniels John ldquoModeling with a sense of purposerdquo Design - IEEE Software JanuaryEebmary 2002

Glasgow Universidad Reino Unido ldquoA UML Editor in Javardquo (lthttplstudentsdcsglaacuWstudentspainjfproject-reportproject-re port-htmV4thYearReporthtrnlgt 2002)

T Hackos JoAnn C Redish Janice ldquoUser and Task Analysis for Interface Designrdquo Wiley Computer Publishing 488 Paacuteginas ISBN QA-769-U83- H33-1998 1998

Hemaacutendez Velaacutezquez M ldquoIngenieriacutea inversa de coacutedigo fuente en C++ para la obtencioacuten de su disentildeordquo Tesis AT-379 (03-0334) 2003

Conceptos generales

[HIX93]

[JAC93]

[JAC99]

[JOY98]

[LAR97]

[MAR]

[MIC99]

[MIC02]

[MOU98]

Hix Deborah Hartson H Rex ldquoDeveloping user interfacesrdquo 381 Paacuteginas ISBN 0-471-57813-4 QA-769-U83-H59-1993 1993

Jacobson Ivar Christerson Magnus Jonsson Patrik Overgaard Gunnar ldquoObject oriented software engineeringrdquo Addison Wesley ISBN 0-20 1 - 54435-0 QA-7676-D47-J63-1993 1993

Jacobson Ivar Booch Grady Rumbaugh James ldquoEl proceso unificado de desarrollo de softwarerdquo Addison Wesley 438 Paacuteginas ISBN 84-7829-036- 2 1999

Joyanes Aguilar Luis ldquoProgramacioacuten orientada a objetosrdquo McGruw Hill ISBN 84-481-0590-7 1998

Larman Craig ldquoAplying UML and Patternsrdquo Prentice Hull 507 Paacuteginas ISBN 0-13-748880-7 QA-769-035-L37-1997 1997

Marriot Kim Meyer Bemd ldquoVisual Language Theoryrdquo Springer 381 Paacuteginas P-935-V567-1998 1998

Microsoft ldquoMicrosoft Visual C++ 6 manual del programadorrdquo McGraw Hill ISBN 84-481-2127-9 QA-7673-Cl53-23718-1999 1999

Microsoft ldquoVisiordquo (lthttpwwwmicrosoftcomofficevisiogt 2002)

B Mourao Luis X ldquoUniversal Modeling Language Part 11 UML Notation - Case Sequence and Collaboration Diagramsrdquo Lan Times Magazine (~httpwwwlantimescomltpartsdiscussdiscuss6Ohtm~) 1998

No Magic ldquoMagicDrawrdquo (lthttpwwwmagicdrawcomgt 2002)

Object Insight ldquoJvisionrdquo (lthttpwwwobject-insightcomgt 2002)

Rational Software Microsoft I Hewlett-Packard Oracle Sterling Software MCI Systemhouse Unisys ICON Computing IntelliCorp i-Logix IBM ObjectTime Platinum Technology Ptech Taskon Reich Technologies Sofieam ldquoUML Summaryrdquo Version 11 Unified Modeling Language 1997

Rational ldquoRational Roserdquo (lthttpwwwrationalcomproductosrosegt 2002)

Rikki Kirzner ldquoAnalysis Modeling and Design Tools Market Forecast and Analysis 2001-2005rdquo Bulletin Published Under Services Application Design and Construction Tools Application Development and Deployment Strategies Documento Nuacutemero 24809 Junio 2001

53

Conceptos generales

[RIM92] Rimrner Steve ldquoGraphical user interface programmingrdquo 423 Paacuteginas

1992

Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language reference manualrdquo Addison Wesley 550 Paacuteginas ISBN 0-201-

ISBN 0-8306-2475-9 ISBN 0-8306-2472-4 (pbk) QA-769-083-R55G

[RUM99]

30998-X QA-7676-D47-R85-1999 1999

[RUM299] Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language user guiderdquo Addisoiz Wesley 482 Paacuteginas ISBN 0-201 -57 168-4 QA-7676-D47-B66-1999 1999

[SMA02] SmartDraw ldquoSmartDrawrdquo (lthttpwwwsmartdrawcomgt 2002)

[SHU88] 9 - Shu Nun C ldquoVisual Programmingrdquo Van Nostrand Reinhold ISBN 0-422- 28014-9 ISBN 0-422-01 164-4 QA-7665-S55 1988

[THI90] Thimbleby Harold ldquoUser Interface Designrdquo Acm press 470 Paacuteginas ISBN 0-201 -41 61 8-2 QA-769U83-T772~- 1990 1990

[WENO2] Wences Diaz MF ldquoModelo de Ingenieriacutea Inversa para la obtencioacuten de disentildeo detallado basado en LEVISSrdquo Tesis (02-0014) 2002

54

Anexo A

Conampuracioacuten de Microsoft Vkua[C++ 6 O

Este anexo indica las configuraciones que se utilizaron para la compilacioacuten de SCUML y s3c

Configuracioacuten de Microsoft Visual c++ 60

Debido a la integracioacuten de los proyectos de InverSOODA e InverDDVi con S3C se cumplioacute con los requisitos previos de ambos proyectos

El compilador usado en el proyecto fue el Microsoft Visual C++ 60

Para el cumplimiento con la funcionalidad de InverSOODA se instaloacute el ANTLR la versioacuten 271 Se descargoacute del sitio l i l l ~ ~ ~ ~ ~ ~ t l ~ l ~ - ~ t - ~ la versioacuten mencionada en un archivo comprimido (en formato zip) Se colocoacute el paquete descomprimido en el directorio ldquoDIANTLR-271 I rdquo

Recomiendo ampliamente que el directorio principal de ANTLR se copie en el directorio raiacutez de cualquier unidad de disco debido a que experimenteacute problemas de compilacioacuten cuando ANTLR no se encontraba en el directorio raiacutez

Io015

Source Browser AlttF12 I u c Ersquo V I

Visual Component Mgnager

- - ~ ~ ~ ~~

P2 Registrar control

A Contenedor de prueba de controles ActiveX

A Usor de objetos OLE y COM

Buacutesqueda de errores

A Y++ MFC Iracer

Customize options

~ - q- ~ Macro

Eecord Quick Macro Cbl+ShiR+R Pay Quick Macro Ctrl+ShiR+P

En el menuacute Tools (Herramientas) seleccione el sub-menuacute Options ltopcionesgt

56

Configuracioacuten de Microsoft Visual C++ 60

En la siguiente ventana de diaacutelogo debe agregar la direccioacuten en donde se encuentra el ANTLR

Agregar la ruta del directorio de ANTLR hasta el subdirectorio

libcpp

Editor I Tabs I Debug I Compatibility 1 Build Dneclolies I a I Chow directories for - Platfolm -

- Directories I x ) 4 jWin32 -] llnclude files

m cancd I

57

Configuracioacuten de Microsoft Visual C t+ 60

Se ha creado una libreriacutea (anrlrliblib) de ANTLR la cual ya estaacute situada en el directorio del proyecto SCUML (ISCUML) y no debe ser movida o eliminada

I

Geneial 1 Debug I CC++ Link I Category

Output file name bebugSCUMLexe

Objectljibrary modules 4 anllrliblib

li Generate debug lnfo r Ignore all defaull lbaries D ~ i n k j n ~ ~ ~ t a n ~ r ~ e n e r ~ ~ ~ mapfile

r Enable psafilrng

Proiec1 Ootionn

pq Cancel 1 Libreriacutea de ANTLR que debe existir 1 I para que se compile correctamente

58

Anexo B

~ u iacute aacute raacutepida de uso deC Sistema S3C

5 Este anexo indica de forma raacutepida la manera de utilizar S3C para crear un diagrama de secuencias de forma automaacutetica

Guiacutea Raacutepida de uso del Sistema S3C i

Para indicar la creacioacuten de un diagrama de secuencias en forma automaacutetica se debe ir a la barra del costado izquierdo y presionar ldquoNuevo Proyecto SCUMLrdquo

I s3c I ~ Nuevo Proyecto SCUML ~ _ _ - I Diagrama de clases ~ Diagrama de secuencias 1 MDI DOC Activo

-

Apareceraacute un documento llamado ldquoSCUMLV en donde el simbolo corresponde a un numero consecutivo iniciando desde 1 (uno)

$ e Despueacutes se presiona ldquoDiagrama de clasesrdquo Habraacute que para indicarle al sistema si se requiere abrir un diagrama de clases existente o realizar uno nuevo

i

iquestAbrir un documento existente

No Cardquo~ear

AI presionar ldquoSirdquo se debe indicar cual es el archivo del diagrama de Clases en el cuadro de diaacutelogo siguiente

~~ - 11dMis documentos rsquo 2 M i P C i lsquo h s sitios de red

I

AI presionar ldquoNordquo en ldquoAbrir un documento existenterdquo se nos mostraraacute un documento vacio para crear un diagrama de clases

60

Guiacutea Raacutepida de uso del Sistema S3C

Para ambas opciones se requiere que los diagramas de Wamier ya se encuentren construidos Y para continuar el proccso se selecciona el documento ldquoSCUMLVrsquo creado al inicio y despueacutes presionar el botoacuten nombrado ldquoDiagrama de secuenciasrdquo localizado en la barra de hcrraiiiicntas del costado izquierdo

Ha iniciado el proceso de construccioacuten del diagrama de secuencias Si no existen errores al terminar el proceso se le mostraraacute un cuadro de diaacutelogo llamado ldquoResultadosrdquo en donde le mostraraacute las llamadas de las que no localizoacute su definicioacuten

- - -

Cancel 1 D e las siguientes llamadas es posible que esten mal escritas o peitenezcan a la libreiia del Lenguaie Verifique ya que no se encontraron sus definiciones

A continuacioacuten se mencionan los posibles errores que finalizan el proceso de la creacioacuten automaacutetica de los diagramas de secuencias en S3C

Cuando no exista un meacutetodo lsquomainrsquo definido en el diagrama de clases

No se encontro el meacutetodo lsquomain()rsquo que inicie la secuencia I A No se puede crear el diagrama de secuencias

p==amp=q

61

Guia Raacutepida de uso del Sistema S3C

Cuando se definan niultiples metodos lsquoinainrsquo en el diagrama de clases

Multiples meacutetodos lsquomainOlsquo Imposible decidir el inicio de secuencia

Aceptar i

Si un meacutetodo definido en Wamier realiza una llamada a lsquomainrsquo se cancelara el proceso

Llamada NO VALIDA al meacutetodo principal main

(iAcp-j(

4 i

CI Y rdquoldquoldquoI i 11 1-T

IZNTRO Gt INFORMACION

62

  • Tabla de Contenido
  • Listado de Figuras
  • Listado de Tablas
  • Notacioacuten
  • Introduccioacuten
  • Capitulo 1 Conceptos Generales
    • 11 Antecedentes
    • 12 Trabajos relacionados
      • 121 Tabla comparativa
        • 13 Definicioacuten del problema
        • 14 Objetivo de la Tesis
          • Objetivos especiacuteficos de la tesis
            • 15 Hipoacutetesis de investigacioacuten
            • 16 Alcances y limitaciones del trabajo de tesis
              • Capitulo 2 Marco Teoacuterico
                • 21 Modelado de sistemas de software
                • 22 Interfaz de usuario (Mecanismos de interaccioacuten)
                • 23 Lenguajes Visuales
                • 24 Programacioacuten orientada a objetos
                • 25 Lenguaje de Modelado Unificado (UML)
                  • Desarrollo de la herramienta
                    • 31 Disentildeo de la Arquitectura
                      • 311 Requisitos (Diagrama de Casos de uso)
                        • 312Modelo Conceptual
                        • 313Diagramas de clases
                        • 32 Elementos de la arquitectura
                          • 321 Microsoft Foundation Class (MFC)
                            • 322Arquitectura Documento Vista
                            • 323Integrando Ambientes en Visual c++
                              • 324 Interfaz de Muacuteltiples Documentos (MDI)
                                • 325Recursos Diaacutelogos Menus y Barras de Herramientas
                                  • 326 Notacioacuten estaacutendar
                                  • 327 Estructura de datos persistencia y recuperacioacuten
                                    • 328Patrones de disentildeo utilizados
                                      • 33 Diagrama de secuencias
                                        • 331Ciclo de vida del software
                                          • 34 Elementos atoacutemicos de la Gramaacutetica
                                            • 341 Representacioacuten visual
                                              • 35 Gramaacutetica desarrollada
                                              • 36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias
                                                  • Capitulo 4 Pruebas y Resultados
                                                    • 41 Recursos teacutecnicos utilizados
                                                    • 42 Descripcioacuten del plan de pruebas
                                                    • 43 Resultados
                                                      • 431 Caso
                                                      • 432 Caso2
                                                      • 433 Caso
                                                          • Conclusiones y trabajos futuros
                                                            • Trabajos futuros
                                                            • Referencias
                                                            • Anexo A Configuracioacuten de Microsoft Visual C+t
                                                              • Figura 11 - Arquitectura de la suite cenidet-UML
                                                              • Figura 21 -Programacioacuten Visual
                                                              • Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de
                                                              • Figura 32 -Diagrama de Casos de Uso para el S3C
                                                              • Figura 33 -Modelo Conceptual
                                                              • Figura 34 - Diagrama de Clases -Control del Diagrama -
                                                              • Figura 35 - Diagrama de Clases - Patroacuten Visitor -
                                                              • Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento
                                                              • Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)
                                                              • Figura 38 -Dialogo Caracteriacutesticas del Objeto
                                                              • Figura 39 -Dialogo Mensaje
                                                              • Figura 3 IO - Menuacute de los Diagramas de Secuencias (estaacutendar)
                                                              • Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias
                                                              • Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)
                                                              • Figura 313 - Serializacioacuten
                                                              • Figura 314 -Modelo de cascada del ciclo de vida del software
                                                              • Figura 41 - Resultado del caso de prueba
                                                              • Figura 42 -Resultado del caso de prueba
                                                              • Figura 43 -Resultado del caso de prueba
                                                              • Figura 44 -Resultado del caso de prueba
                                                              • Tabla 11 - Tabla comparativa
                                                              • Tabla 31 -Prefijos estaacutendar de identificadores
                                                              • Tabla 32 -Elementos atoacutemicos del lenguaje
                                                              • Tabla 41 - Resumen de los resultados de las pruebas realizadas

Conceptos generales

12 Trabajos relacionados

Rational Rose de Rafional

Una de las herramientas mas populares del mercado que utiliza la notacioacuten UML y tiene la capacidad de reingenieriacutea de software para integrar sistemas existentes capacidad de mezclar diferentes lenguajes dentro de un mismo modelo ademaacutes de ingenieriacutea inversa sobre los componentes COM (Component Object Model) ActiveX y Java y con soporte de las arquitecturas MicrosoWCOM y CORBAIDL (The Common Object Request Broker Architecture)

Con Rational Rose se puede trabajar en grupo con capacidades para modelar y visualizar procesos de negocios y requerimientos de sistemas Tiene soporte para generar esquemas objetos-relaciones de bases de datos para realizar anaacutelisis de datos Cuenta con el soporte para analizar sitios Web en ASP (Active Server Pages) y JSP (Java Server Pages) Ademaacutes soporta los lenguajes Java CC++ Visual CC++ [RAT02] 9

SI -

Visio de Microsoft

Visio Enterprise 2002 permite crear diferentes tipos de diagramas como son

1 Diagramas de flujo 2 Planos de oficinas 3 Diagramas de aacuterbol 4 Diagramas de organizacioacuten 5 Liacuteneas de tiempo 6 Mapas geograacuteficos y direccionales 7 Diagramas de sitios Web 8 Diagramas de red 9 Diagramas de UML

Tiene las siguientes caracteriacutesticas diagramacioacuten e importacioacuten de servicios de directorio reingenieria de bases de datos disentildeo y documentacioacuten de bases de datos diagramacioacuten de software ingenieriacutea directa e inversa de coacutedigo replicacioacuten exacta por medio de diagramas de equipos y configuraciones de red diagramacioacuten automatizada y ambiente colaborativo

Visio da un conjunto completo de herramientas de diagramacioacuten de redes para planear y documentar claramente las redes existentes Ademaacutes para crear esquemas eleacutectricos mecaacutenicos y de procesos pueden crearse diagramas complejos con facilidad y poco entrenamiento

A las aplicaciones existentes se les puede realizar la ingenieriacutea inversa para obtener el disentildeo y tambieacuten crear nuevos disentildeos Proporciona herramientas para crear diagramas de bases de datos y es posible realizar ingenieriacutea inversa de esquemas existentes en bases de datos cliente servidor como SQL Server IBM Oracle y otros [MIC02]

4

Conceptos generales

e JVision 21 de Object Insight

JVision permite en la ingenieriacutea directa la creacioacuten de clases variables y meacutetodos con lo cual genera plantillas de coacutedigo para programadores en Java Los diagramas se pueden exportar a HTML La documentacioacuten puede integrarse con JavaDoc de Sun JVision da el soporte para ingenieriacutea inversa para el lenguaje Java

Se pueden crear todos los diagramas definidos por UML en los diagramas de secuencias da la oportunidad de dibujar clases liacuteneas liacuteneas de tiempo de vida y marca de destruccioacuten de objetos ofrece ademaacutes el soporte para las acciones de llamada regresar valor enviar accioacuten crear accioacuten y eliminar accioacuten [OBJO2]

MagicDraw 6 de No Magic

Es una herramienta CASE con soporte para trabajo en grupo Esta disentildeado para analistas 6 de negocios analistas de software programadores ingenieros de calidad y

documentadores Esta aplicacioacuten provee la capacidad para crear los diagramas definidos por UML (soporta UML 14) Cuenta con el soporte de ingenieriacutea inversa y generacioacuten de coacutedigo para C++ C Java y CORBNIDL Tiene integracioacuten con NetBeans se actualiza automaacuteticamente disponible en aacuterabe portugueacutes franceacutes italiano ingles (US) alemaacuten espantildeol japoneacutes y coreano

Tiene la caracteriacutestica de soportar la adaptacioacuten de los elementos a colores que el usuario defina Los diagramas pueden exportarse a imaacutegenes JPG EMF WMF EPS y DXF En los diagramas de secuencia da oportunidad de definir roles textos notas mensajes de varios tipos al mismo objeto recursivo ademaacutes de la relacioacuten a las notas y las liacuteneas de vida Es posible guardar los diagramas como imaacutegenes de mapas de bits o vectores Mantiene ademaacutes una vista pequentildea a escala del diagrama completo [NoA402]

e

SmariDraw Professional Plus de SmariDraw

Todos los dibujos pueden agregarse en las aplicaciones de Microsoft como son Word Excel PowerPoint Contiene maacutes de 50000 (1000 en la versioacuten estaacutendar) formas predefinidas ejemplos y plantillas Los diagramas pueden ser exportados a imaacutegenes WMF BMP JPG GIF TIF y otros Incluye un convertidor de archivos de VISIO

Con esta herramienta es posible crear diagramas de flujo diagramas de bloque diagramas de flujos de datos diagramas de organizacioacuten aacuterboles de decisioacuten disentildeo de redes Gantt diagramas de flujo de procesos diagramas de administracioacuten de calidad diagramas eleacutectricos diagramas mecaacutenicos diagramas quiacutemicos liacuteneas de tiempo planes de espacio posters mapas formas y tambieacuten da soporte para UML es posible dibujar objetos actores activacioacuten de los objetos mensaje mensaje de retorno mensaje asiacutencrono mensaje con tiempo liacutenea de vida del objeto marca de destruccioacuten del objeto y ciclos (descrito con un rectaacutengulo y una condicioacuten de salida) [SMA02]

5

Conceptos generales

Producto Soporta Diagramas de UML Secuencias

Creacioacuten automaacutetica de diagramas de

El Rational Rose El Visio

Jvision

Magic D r a w

a a El Fl El a El El

I ~

I ~

I -

Ambiente de modelado de

a a SmartDraw El

Tabla I Tabla comparativa

Todas las herramientas descritas anteriormente cuentan con caracteriacutesticas sobresalientes para el disentildeo y modelado de sistemas de software pero ninguna de ellas genera automaacuteticamente los diagramas de secuencia con base en los diagramas de clases y el disentildeo detallado de los meacutetodos asiacute tambieacuten ninguna de ellas realiza un caacutelculo de los canales de comunicacioacuten abiertos entre las clases que conforman el sistema

iexcla la A UML Editor in Java

13 Definicioacuten del problema

El modelado de sistemas utilizando el estaacutendar de UML en diversos productos comerciales prototipos de laboratorio elaborados en universidades y centros de investigacioacuten atienden la perspectiva baacutesica de la abstraccioacuten general del modelo esto es documentar el modelo del sistema que se requiere sin atender puntos importantes tales como

La generacioacuten automaacutetica de los diagramas de secuencias La correccioacuten de inconsistencias en los diagramas al crearlos de forma separada

El

6

sistemas de software

secuencias utilizando diagramas de a a a

Conceptos generales

Se hace necesaria la creacioacuten de un ambiente visual que permita obtener de forma automaacutetica los diagramas de secuencias en base a los diagramas de clases y al disentildeo detallado de los meacutetodos para facilitar la documentacioacuten la generacioacuten de coacutedigo y el mantenimiento de los sistemas

La obtencioacuten de los diagramas de secuencias estaacute basada en los Diagramas de Clases definidos por UML que son construidos con la herramienta InverSOODA junto con el disentildeo detallado de los meacutetodos construidos con Diagramas de Wamier elaborados con la herramienta InverDDVi

En el estaacutendar UML para la construccioacuten de los diagramas no existe actualmente una sintaxis expliacutecita definida solo existe impliacutecitamente en el uso de los elementos del diagrama por lo que se ha descrito una gramaacutetica visual de tipo relaciona1 como soporte para la construccioacuten de los Diagramas de Secuencias

n ai 14 Objetivo de la Tesis

Construir un ambiente visual que permita al usuario obtener el diagrama de secuencias de manera automaacutetica

141 Objetivos especiacuteficos de la tesis Crear una gramaacutetica que soporte la construccioacuten del diagrama de secuencias Construir de forma automaacutetica el diagrama de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodos

15 Hipoacutetesis de investigacioacuten

Es posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodos

16 Alcances y limitaciones del trabajo de tesis

Los alcances de la tesis se especifican a continuacioacuten

Se elaboroacute la arquitectura del sistema Se definioacute la gramaacutetica de soporte Se desarrolloacute la interfaz en Visual C++ haciendo uso de las MFC Se interactuacutea con los diagramas de clases de InverSOODA Se interachiacutea con el disentildeo detallado de los meacutetodos realizados por InverDDVI Se genera el diagrama de secuencias de forma automaacutetica

7

Conceptos generales

Limitaciones de la tesis

0 No se genera coacutedigo

La investigacioacuten se limita a los diagramas de clases para la vista estaacutetica de los sistemas de software y a los diagramas de Warnier para la vista dinaacutemica de los meacutetodos El ambiente no trabaja en red

No se modifican los archivos de InverSOODA No se modifican los archivos de InverDDVI No se recuperan diagramas de secuencias a partir de coacutedigo legado

4

8

Capiacutetulo 2

Narc0 teoacuterico

En eacuteste capiacutetulo se describen los temas usados para el desarrollo de la tesis iquestQue son los modelos iquestEn que parte del proceso de Ingenieriacutea del Software se usan los modelos o el modelado Se estudia la interfaz de usuario los lenguajes visuales y las gramaacuteticas visuales Se describe el Lenguaje de Modelado Unificado (UML) ademaacutes de la programacioacuten orientada a objetos por ser este paradigma en donde se enfoca este trabajo

Marco teoacuterico

21 Modelado de sistemas de software

un modelo es una abstraccioacuten de algo con el propoacutesito de entenderlo antes de construirlo El modelo omite detalles no esenciales haciendo maacutes faacutecil su manipulacioacuten que la entidad original [BLA98] Un modelo es la simplificacioacuten de la realidad [RUM99] Los propoacutesitos de los modelos son

Probar una entidad fisica antes de construirla Establecer mejor comunicacioacuten con los clientes Visualizar el problema y el sistema desde una mejor perspectiva Reducir la complejidad [BLA98] Capturar y precisar requerimientos y conocimiento del dominio Pensar acerca del disentildeo del sistema Capturar decisiones de disentildeo en una fomia separada que cambia a partir de los requerimientos Generar productos Organizar buscar filtrar obtener examinar y editar informacioacuten acerca de un sistema Explorar muacuteltiples soluciones econoacutemicas Manejar sistemas complejos [RUM99]

El modelado es una probada y bien aceptada teacutecnica de Ingenieriacutea de Software [RUM99] El modelado es parte central de todas las actividades que conducen a la produccioacuten de buen software Se construyen modelos para comunicar la estructura deseada y revisar el comportamiento de nuestro sistema Se construyen modelos para visualizar y controlar la arquitectura del sistema Se construyen modelos para comprender mejor el sistema que estamos construyendo muchas veces descubriendo oportunidades para la simplificacioacuten y la reutilizacioacuten Se construyen modelos para controlar el riesgo [BOO99] La razoacuten fundamental por la que modelamos es porque nosotros construimos modelos que nos ayudan a entender mejor el sistema que estamos desarrollando [RUM99]

El modelado nos permite [RUM99] 1 Visualizar como es el sistema o como queremos que sea 2 Especificar la estructura del sistema 3 Plantear nuestras guiacuteas en la construccioacuten delsistema 4 Documentar las decisiones que hemos tomado

En las etapas del desarrollo del software el modelado es usado en el disentildeo el disentildeo del sistema es la primera etapa en donde se da la aproximacioacuten baacutesica de la solucioacuten al problema seleccionado ademaacutes se decide por la estructura (arquitectura del sistema) y el estilo de la solucioacuten

La arquitectura del sistema provee el contexto sobre el cual se tomaraacuten decisiones mas detalladas en las etapas subsecuentes del disentildeo [BLA98] En el disentildeo modelamos el sistema y encontramos su forma (incluida la arquitehra) para que soporte todos los 3 -

10

Marco teorico

i

4 -I

requisitos -incluyendo los requisitos no funcionales y otras restricciones- que se le suponen [JAC99] Los propoacutesitos del disentildeo son

Adquirir una comprensioacuten en profundidad de los aspectos relacionados con 10s requisitos no funcionales y restricciones relacionadas con los lenguajes de programacioacuten componentes reutilizables sistemas operativos tecnologiacuteas de distribucioacuten y concurrencia tecnologiacuteas de interfaz de usuario tecnologiacuteas de gestioacuten de transacciones etc Crear una entrada apropiada y un punto de partida para actividades de implementacioacuten subsiguientes capturando los requisitos o subsistemas individuales interfaces y clases Ser capaces de descomponer los trabajos de implementacioacuten en partes mas manejables que puedan ser llevadas a cabo por diferentes equipos de desarrollo teniendo en cuenta la posible concurrencia Capturar las interfaces entre los subsistemas Esto ayuda cuando reflexionamos sobre la arquitectura y cuando utilizamos interfaces como elementos de sincronizacioacuten entre diferentes equipos de desarrollo Ser capaces de visualizar y reflexionar sobre el disentildeo utilizando una notacioacuten comuacuten Crear una abstraccioacuten independiente de la implementacioacuten del sistema en el sentido de que la implementacioacuten es un refinamiento directo del disentildeo que rellena lo existente sin cambiar la estructura Esto permite la utilizacioacuten de tecnologiacuteas como la generacioacuten de coacutedigo y la ingenieriacutea de ida y vuelta entre el disentildeo y la implementacioacuten [JAC99]

22 Interfaz de usuario (Mecanismos de interaccioacuten)

El crecimiento de las computadoras personales vendidas en los ~ O rsquo S lanzoacute con fuerza el ldquofaacutecil de usarrdquo como una de las caracteriacutesticas mas importante de un producto de computadora

Las interfaces graacuteficas de usuario no son nuevas se pueden encontrar en las paredes de cuevas al sur de Francia en las piraacutemides de Egipto y en las paredes de muchas ciudades [iUM92] Para el usuario de un sistema interactivo la comunicacioacuten es tan importante como la computacioacuten Para los usuarios regularmente la interfaz es el sistema [HIX93]

Disentildeo de Interfaz Seguacuten Hackos [HAC98] las interfaces estaacuten en todo donde se trabaja con

o Controles en productos de hardware o Etiquetas y sentildeales en el hardware o Pequentildeas pantallas de cristal liquido en maacutequinas de cualquier tipo o Pantallas para aplicaciones de software para terminales de computadoras centrales

Marco teoacuterico

o pantallas para aplicaciones de software en computadoras Personales sistemas operativos como Windows OS2 DOS Macintosh U n b Y Otros

0 Paacuteginas de un sitio WEB 0 Sistemas de ayuda y manuales en-liacutenea 0 Tutoriales incrustados y otros tipos de soporte de funcionamiento O Esquemas de formas y otros documentos

una interfaz es el medio con el cual los usuarios interactuacutean con el producto 0

sistema para lograr SUS objetivos

Interfaz Usable

Para que una interfaz sea usable debe ser transparente y darles a los usuarios la capacidad de lograr cumplir sus metas de forma efectiva y eficiente

Los beneficios presentados en el uso de las interfaces de usuario [TH190] Disfrutar el sistema El usuario disfruta trabajar con un sistema que cuenta con una interfaz bien disentildeada y que le da la funcionalidad y acceso a los recursos de una manera clara y sencilla Proporciona nuevas habilidades Elimina al usuario concentrarse en acciones que la propia interfaz y el sistema hacen dando como resultado que el usuario solo se concentre en lo importante del trabajo Delegacioacuten de tareas La interfaz de usuario permite al usuario no conocer los detalles de la tarea esto es la computadora atiende los detalles de las tareas mientras que el usuario se concentra en asuntos de maacutes alto nivel Seguridad El usuario no necesita estar en lugarespeligrosos para hacer su trabajo

Se da la mayor posibilidad para que el usuario tenga acceso al conocimiento utilizando un sistema interactivo Haciendo las cosas a la primera Las tareas se ejecutan en un orden correcto definido lo que da como resultado un trabajo bien terminado sin necesidad de repetir evitando asiacute altos costos Computando LOS usuarios pueden calcular datos sin necesidad de conocer el proceso para obtener los resultados

Desarrollo

El disentildeo de interfaz es un negocio bastante dificil Eacuteste combina dos complicadas disciplinas psicologiacutea y ciencias de la computacioacuten Estas disciplinas tienen un fondo cultural muy diferente la psicologiacutea atiende a la gente (comprensioacuten y entendimiento) las ciencias computacionales a las maacutequinas (matemaacuteticas y precisioacuten) El disentildeo de las buenas interfaces requiere que estas dos perspectivas esteacuten unidas [THi90]

Hackos dice que las interfaces dan simplicidad y elegancia al trabajo necesario y a la vida e los usuarios Si no es obvio al usuario pero es raacutepida para aprender [HAC98] ademaacutes define caracteriacutesticas comunes de las interfaces usables

o Hacen que el flujo de trabajo sea familiar o confortable o Soportan el estilo de aprendizaje de los usuarios

12

Marco teoacuterico

Visualizacioacuten de Entrenamiento visual Para controlar Soportar interaccioncs Programar con informacioacuten visual visuales expresiones visuales

o Compatibles con los ambientes de trabajo de los usuarios o Se extienden sobre un concepto de disentildeo que es familiar al usuario o Tienen consistencia de presentacioacuten que los hace parecer maacutes confiable y faacuteciles de

aprender o Usan lenguaje y figuras familiares al usuario o faacuteciles de aprender

Datos o informacioacuten acerca de datos

23 Lenguajes Visuales

Los lenguajes visuales son un nuevo paradigma para expresar los sistemas computacionales Ellos ofrecen la posibilidad de manipular directamente los objetos Un lenguaje visual consiste de sentencias visuales Para lenguajes visuales basados en iacuteconos cada sentencia visual es un arreglo espacial de objetos O iacuteconos graacuteficos [CHA90]

Un lenguaje visual es concebido como una coleccioacuten de figuras obtenidas por un arreglo graacutefico de objetos en dos o maacutes dimensiones Los lenguajes visuales pueden ser modelados sintaacutecticamente a traveacutes de un vocabulario un conjunto de relaciones usadas para componer las figuras y un conjunto de reglas describiendo las figuras pertenecientes al lenguaje Los objetos graacuteficos de un vocabulario de un lenguaje visual se caracterizan por contar con un conjunto de atributos Los atributos de un objeto graacutefico pueden ser atributos graacuteficos atributos sintaacutecticos y atributos semaacutenticos [MAR98]

Un lenguaje de programacioacuten visual puede ser informalmente definido como un lenguaje el cual usa algunas representaciones visuales [SHV88]

Programa ylo Disentildeo de Lenguajes de programacioacuten visual ejecucioacuten software Diagramas iconos Formas

Programacioacuten Visual [SHU88]

Gramaacuteticas para la especificacioacuten de lenguajes visuales [MAR98]

a) Gramaacuteticas texfuales generalizadas Este tipo de gramaacutetica provee una adaptacioacuten apropiada de la concatenacioacuten de siacutembolos para dos dimensiones Su principal ventaja es que conservan los elementos teoacutericos de las gramaacuteticas textuales y los eficientes algoritmos de anaacutelisis de eacutestos uacuteltimos Su principal desventaja es que eacutestas gramaacuteticas no son tan poderosas y soacutelo pueden especificar clases restringidas de lenguajes visuales

13

Marco teorico

b) Meacutetodos basados en gramaacuteticas de grafos Un ejemplo de este tiPo de gramaacuteticas son las gramaacuteticas de red Las oraciones generadas con gramaacuteticas de red son grafos dirigidos con siacutembolos en los nodos Estos grafos son llamados redes Una produccioacuten de eacuteste tipo de gramaacuteticas es de la siguiente forma

a - t p E

donde a y p son redes y E es una forma de conectar a p cuando a es conectada a otra red anfitriona

La mayor desventaja es que las gramaacuteticas de red no han probado ser totalmente uacutetiles para la especificacioacuten de gramaacuteticas arbitrarias por la complejidad para rescribir grafos y al hecho de que no todo lenguaje visual estaacute compuesto exclusivamente por grafos

C) Gramaacuteticas de multiconjuntos de atributos En estas gramaacuteticas las producciones rescriben conjuntos o multiconjuntos de siacutembolos que tienen atributos con informacioacuten sobre geometriacutea o semaacutentica La reescritura se controla con restricciones sobre los atributos de los siacutembolos en el lado derecho de las producciones

Un ejemplo de eacutestas gramaacuteticas es la Gramaacutetica Coordinada que especifica notacioacuten matemaacutetica de dos dimensiones En esencia las producciones en una gramaacutetica coordinada n-coordinada libre del contexto tienen la siguiente forma

A -t a donde C F

Todos los siacutembolos de eacuteste tipo de gramaacutetica tienen n atributos geomeacutetricos A es un siacutembolo no terminal a es una cadena no vaciacutea de siacutembolos C es una restriccioacuten sobre los atributos de los siacutembolos en a y F es una expresioacuten que computa los atributos de los siacutembolos de A en teacuterminos de los atributos de los siacutembolos en a no importando el orden de los siacutembolos en a

d) Gramaacuteticas PosicionaZes Las gramaacuteticas posicionales son un formalismo para la definicioacuten e implementacioacuten de lenguajes visuales las gramaacuteticas posicionales extienden naturalmente a las gramaacuteticas libres de contexto Una gramaacutetica libre de contexto posicional PG es una six-tupla (N T S P POS PE) donde

N es un conjunto finito no vaciacuteo de siacutembolos no terminales T es un conjunto finito no vaciacuteo e siacutembolos terminales con N n T = $I S E N es el siacutembolo no terminal de inicio P es un conjunto finito de producciones POS es un conjunto finito de identificadores de relacioacuten binaria PE es un evaluador pictoacuterico

14

Marco teorico

Cada produccioacuten en P tiene la siguiente forma

A -+ X I R I X R2 X ~ I Rm1 xm A

e) Gramaacuteticas de Relacioacuten de siacutembolos Eacuteste es un formalismo sintaacutectico para describir un lenguaje visual donde cada oracioacuten dentro del lenguaje se representa como un conjunto de objetos visuales y un conjunto de relaciones entre objetos

El alfabeto de siacutembolos Vt y el conjunto de relaciones entre siacutembolos Vr una oracioacuten de relacioacuten de siacutembolos w sobre Vt y Vr es un par ( M R) donde

M es un conjunto de elementos-s (v i) con v E Vt y i es un nuacutemero natural R es un conjunto de elementos-r de la forma r (Xi Yj) con Xi Yj E M r E Vr y una relacioacuten r esta contenida entre Xi y Yj

Una gramaacutetica de relacioacuten de simbolos es el conjunto de seis elementos G = (Vn Vt Vr S P R) donde Vn es un conjunto de siacutembolos no terminales Vt es un conjunto de siacutembolos terminales Vr es un conjunto de relaciones entre siacutembolos S es el siacutembolo inicial y P es un conjunto de reglas de reescritura (producciones de elementos-s)

f) Gramaacuteticas relacionales Este tipo de gramaacutetica pertenecen a las gramaacuteticas libres de contexto

La gramaacutetica relaciona1 (RGrsquos) es una 6-tupla G (N C S R Attr P) donde

N C S R Attr P

es un conjunto finito de siacutembolos no terminales es un conjunto de siacutembolos terminales es un siacutembolo distinguido en N llamado siacutembolo inicial es un conjunto finito de siacutembolos de relacioacuten es un conjunto finito de siacutembolos de atributos es un conjunto de producciones de la forma A-gt apF donde A E N a E (nlo)+ Donde n E N cr E E

8 Es un conjunto de relaciones de la forma (r x y) donde r E R y xy son enteros que hacen referencia a un miembro de a y tambieacuten una expresioacuten de la forma (a i) donde a E Attr e i es un entero que hace referencia a un miembrode a

F Es un conjunto de declaraciones de asignacioacuten de caracteriacutesticas de la forma (a O)=x donde a E Attr y x es un entero que hace referencia a un miembro de a o a una expresioacuten de la forma (a i)

15

Marco teoacuterico

24 Programacioacuten orientada a objetos

L~~ meacutetodos orientados a objetos organizan la informacioacuten Y el procesamiento que manipula esta informacioacuten de acuerdo a los objetos delrsquomundo real que la informacioacuten describe [BRO97l

Beneficios de las teacutecnicas orientadas a objetos [BR097] Estabilidad del sistema Mantenibilidad Componentes reusables Confiabilidad Accesibilidad de los datos Participacioacuten del usuario

Seguacuten Graddy Booch la programacioacuten orientada a objetos es ldquoun meacutetodo de implementacioacuten en el que los programas se organizan como colecciones cooperativas de objetos cada uno de los cuales representan una instancia de alguna clase y cuyas clases son todas miembros de una jerarquiacutea de clases unidas mediante relaciones de herenciardquo [JOY 981

Programacioacuten orientada a objetos esencialmente significa programacioacuten usando objetos [JAC93] Los lenguajes orientados a objetos deben soportar los siguientes conceptos

Objetos Abstraccioacuten de datos Encapsulamiento Clases e Instancias Herencia entre clases Polimorfismo

Las propiedades fundamentales de la Programacioacuten Orientada a Objetos son

a Abstraccioacuten Son ideas conceptos y propiedades que se describen en forma general eliminando los detalles Es una estructura de datos y los meacutetodos que manipulan a esos datos

b Encapsulamiento Son las fronteras propias de un objeto bien definidas las cuales protegen los detalles de su representacioacuten interna

c Ocultacioacuten de la informacioacuten Es la propiedad en la que los objetos pueden hacer uso para impedir que otros objetos los usuarios o incluso los programadores conozcan coacutemo estaacute distribuida la informacioacuten

d Herencia Es la propiedad que tiene una clase para heredar atributos y comportamiento a otras clases

e Polirnorfismo Es la propiedad que permite que una entidad pueda cambiar a diferentes formas efectuaacutendose de manera dinaacutemica en tiempo de ejecucioacuten

16

Marco teoacuterico

t

Clases Es la especificacioacuten de una familia de objetos es la declaracioacuten de un tipo de objetos Tambieacuten se dice que una clase es la descripcioacuten de un conjunto de objetos con un comportamiento similar y que esta compuesta de Datos (o atributos) y Meacutetodos o (rutinas acciones operaciones)

Objeto Un objeto es una entidad en la cual se almacenan datos y los meacutetodos o funciones que controlan dichos datos Un objeto es una abstraccioacuten de alguna cosa del mundo real que contiene datos que lo describen y operaciones que solo tienen acceso a esos datos [BR097l Los elementos de los que esta conformado un objeto son

a Las relaciones permiten que el objeto se integre en la organizacioacuten b Las propiedades son los datos que caracterizan el estado de un objeto distinguiendo

asiacute a un objeto determinado de los restantes que forman parte de la misma organizacioacuten

c Los meacutetodos son las operaciones que pueden realizarse sobre la estructura del objeto es decir las acciones que cambian el estado de un objeto y que el objeto es capaz de ejecutar a traveacutes de mensajes y que tambieacuten pone a disposicioacuten de sus descendientes a traveacutes de la herencia

Mensajes Son solicitudes para que se lleve a cabo la operacioacuten indicada y se produzca un resultado

Las razones principales para introducir la tecnologiacutea de objetos son los beneficios de dicha tecnologiacutea

Aumento de la fiabilidad Aumento de la productividad del desarrollador Desarrollo maacutes raacutepido Mejor calidad maacutes alta

Incremento en escalabilidad Mejores estructuras de informacioacuten Incremento de adaptabilidad Reduccioacuten del coacutedigo fuente

Mantenimiento maacutes faacutecil y reduccioacuten de costo

Los elementos de reutilizacioacuten son las clases y objetos

25 Lenguaje de Modelado Unificado (UML)

UML (Unified Modeling Language por sus siglas en ingleacutes Lenguaje de Modelado Unificado) es un lenguaje de modelado visual de propoacutesito general que es utilizado para especificar visualizar construir y documentar las partes de un sistema de software El lenguaje estaacute basado en un pequentildeo nuacutemero de conceptos centrales que la mayoriacutea de los desarrolladores de tecnologiacutea orientada a objetos pueden aprender y aplicar faacutecilmente [RUM99]

17

Marco teoacuterico

y UML Pasado Presente y Futuro

L~~ lenguajes de modelado orientado a objetos aparecieron a mediados de 10s 70rsquos Varias teacutecnicas influenciaron estos lenguajes El nuacutemero de lenguajes de modelado incrementoacute desde menos de 10 hasta maacutes de 50 entre 1989 y 1994 Muchos modeladores teniacutean problemas para encontrar un lenguaje de modelado que satisficiera todas sus necesidades Notablemente aparecioacute Boochrsquo93 y la evolucioacuten continuoacute a OMT y Fusioacuten

OOSE (Object-Oriented Software Engineering) estaacute enfocado a la ingenieriacutea de negocios y anaacutelisis de requerimientos dando un excelente soporte orientado a casos de uso OMT-2 es especialmente expresivo para anaacutelisis y sistemas de informacioacuten de datos grandes Boochrsquo93 fue particularmente expresivo para el disentildeo y fases de construccioacuten de proyectos y popular para aplicaciones de ingenieriacutea intensiva

Grady Booch y Jim Rumbaugh iniciaron el desarrollo de UML en 1994 al unificar sus meacutetodos independientes Booch y OMT En 1995 Ivar Jacobson se unioacute a Racional eacutesta unioacuten logroacute que el meacutetodo OOSE se incorporara La unificacioacuten establecioacute que debiacutean activar el modelado de sistemas utilizando conceptos orientados a objeto asiacute como crear un lenguaje usable tanto para las maacutequinas como para los humanos

A

Muchas organizaciones se unieron al consorcio UML y dedicaron recursos al trabajo hacia el fortalecimiento de la definicioacuten de UML Esta colaboracioacuten produjo un lenguaje de modelado expresivo poderoso y generalmente aplicable En la forma actual de UML se espera que sea base de muchas herramientas incluidas las de modelado visual simulacioacuten y ambientes de desarrollo

R UML es abierto y no-propietario y aunque define un lenguaje preciso no es barrera para futuras mejoras en conceptos de modelado Se usan muchas teacutecnicas de punta pero se esperan teacutecnicas adicionales que influencien futuras versiones de UML puede ser extendido sin redefinir el nuacutecleo

c

Mientras el rehuacuteso basado en componentes se ha favorecido ampliamente cada vez mas esto no significa que las teacutecnicas basadas en componentes reemplazaraacuten las teacutecnicas orientadas a objetos Hay solo sutiles diferencias entre la semaacutentica de componentes y clases [ALC03]

Un opaco rendimiento caracterizoacute el mercado de anaacutelisis modelado y disentildeo en el 2000 en su transicioacuten de las viejas herramientas CASE (Computer Aided Software Engineering) a algo maacutes dinaacutemico y mejor adaptado para satisfacer las necesidades de los desarrolladores para el cambio raacutepido en los ambientes de negocio

El mercado de anaacutelisis modelado y disentildeo lograraacute obtener un crecimiento positivo en varios de los siguientes antildeos por varias razones El mercado seraacute manejado principalmente por la necesidad de desarrolladores a obtener aplicaciones para lanzarse al mercado raacutepidamente asiacute tambieacuten por el intereacutes creciente y uso de una nueva especie de herramienta y por el intereacutes creciente de los desarrolladores en usar UML reglas de negocios y adaptadores de componentes para construir aplicaciones [RIKUI]

z -

18

Marco teoacuterico

UML se ha hecho el estaacutendar para los desarrollos de modelado de negocios administracioacuten de requerimientos anaacutelisis y disentildeo programacioacuten y pruebas Los objetivos primarios de UML en el disentildeo [RAT97j

o Dar a los usuarios un lenguaje visual expresivo de modelado listo para usarse para que puedan desarrollar y cambiar los significados de sus modelos

o Suministrar mecanismos de extensibilidad y especializacioacuten para extender los conceptos centrales

o Ser independiente de lenguajes de programacioacuten particulares y procesos de desarrollo

o Impulsar el desarrollo de las herramientas Orientadas a Objeto en el mercado o Soportar conceptos de desarrollo de alto nivel como colaboracioacuten marcos de

componentes reutilizables patrones y componentes o Integrar las mejores praacutecticas

9 El aacutembito de UML

UML es un lenguaje para especificacioacuten construccioacuten visualizacioacuten y documentacioacuten de artefactos de un sistema de software UML es la fusioacuten de los conceptos de Booch OMT y OOSE El resultado es un simple comuacuten y ampliamente usado lenguaje de modelado para usuarios de estos y otros meacutetodos UML se enfoca en un lenguaje de modelado estaacutendar no en un proceso estaacutendar los autores de UML recomiendan un proceso de desarrollo manejado por casos de uso de arquitectura central iterativo e incremental [iiquest4T97l

Para la definicioacuten de sistemas de software en UML se definen diagramas Un diagrama es la representacioacuten graacutefica de un conjunto de elementos este se visualiza la mayoriacutea de las veces como un grafo conexo de nodos (elementos) y arcos (relaciones) Los diagramas se dibujan para visualizar un sistema desde diferentes perspectivas de forma que un diagrama es la proyeccioacuten de un sistema uumlML incluye nueve diagramas [B0099]

4 -

I Diagrama de clases 2 Diagrama de objetos 3 Diagrama de casos de uso 4 Diagrama de secuencias 5 Diagrama de colaboracioacuten 6 Diagrama de estados 7 Diagrama de actividades 8 Diagrama de componentes 9 Diagrama de despliegue

Diagramas de secuencias Un diagrama de secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten comportamiento

Un diagrama de secuencias muestra un conjunto de mensajes acomodados en una secuencia de tiempo eacuteste diagrama muestra la interaccioacuten en un esquema de dos - dimensiones [RUM99]

19

Marco teoacuterico

Y -

Un diagrama de secuencia es un diagrama de interaccioacuten que resalta la ordenacioacuten temporal de los mensajes Un diagrama de secuencia presenta un conjunto de objetos y los mensajes enviados y recibidos por ellos Los objetos suelen ser instancias (con nombre o sin nombres) de clases pero tambieacuten pueden representar instancias de otros elementos tales como colaboraciones componentes y nodos Los diagramas de secuencia se utilizan para describir la vista dinaacutemica de un sistema [B0099]

Usar los diagramas de secuencia es mostrar la secuencia que existe en un caso de uso [RUM 991

Los diagramas de secuencia tienen dos dimensiones Una dimensioacuten que representa el tiempo Otra dimensioacuten que representa los diferentes objetos que participan en la secuencia de eventos requeridos para completar el propoacutesito [MOuuml98]

El principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildea las interacciones de los objetos [DAN02]

20

Capiacutetulo 3

DesawoCCo de Ia herramienta

En este capiacutetulo se describe el desarrollo del Ambiente Visual Se describe el modelo conceptual del sistema la arquitectura asiacute como tambieacuten los elementos que componen la Arquitectura Se estudian los Diagramas de Secuencias de UML y algunos Patrones de Disentildeo de los que se hace uso para el mejor desarrollo del sistema Se describe a detalle la Gramaacutetica Visual Relaciona1 utilizada para el de Ambiente de desarrollo

I CENIOET 1FNTRO DE INFORMACION

Desarrollo de la herramienta

t i i

Actualmente existe en el cenidet un Ambiente Visual de Modelado de Clases llamado InverSOODA este Ambiente Visual tiene la capacidad de realizar la generacioacuten automaacutetica de coacutedigo de las clases en C++ a partir del modelo especificado Ademaacutes se puede realizar la Ingenieria Inversa de un coacutedigo legado para obtener el modelo de clases Aunado a este trabajo existe el Ambiente Visual denominado InverDDVi con el cual se puede realizar el Disentildeo Detallado de los Meacutetodos de las Clases con diagramas de Warnier Asiacute tambieacuten es posible obtener el modelo aplicando la Ingenieriacutea Inversa a un coacutedigo legado en C++

Ambos trabajos son retomados en este proyecto para la automatizacioacuten en la obtencioacuten de los Diagramas de Secuencias de UML La figura 31 muestra el modelo propuesto de ingenieriacutea directa

Extraer informacioacuten del diagrama de

rsquo rsquo

Diagrama de 11 clases I o

detallado de

detallado de

o meacutetodos

i ir---- Construir el

secuencias i

Modelo de Ingenieriacutea I directa automaacutetica

I

Figura 31 Modelo de Ingenieria Directa Autombtica de los Diagramas de Secuencias

Para la construccioacuten automaacutetica de un diagrama de secuencias se toma como base a un diagrama de Clases El modulo ldquoExtraer informacioacuten del diagrama de Clasesrdquo sirve para obtener el nombre y los meacutetodos descritos en cada uno de las clases que existan en el diagrama de Clases

22

Desarrollo de la herramienta

Con base en la informacioacuten que se tiene se abren los archivos correspondientes a los diagramas de Warnier El proceso que se emplea sobre cada uno los diagramas de Warnier llamado ldquoExtraer informacioacuten de los disentildeos detallados de los meacutetodosrdquo sirve para recopilar el conjunto de las llamadas de cada meacutetodo definido

En el siguiente paso (ldquoReconocer llamadas a meacutetodosrdquo) consiste en identificar si los meacutetodos que estaacuten descritos en los diagramas de Warnier tambieacuten lo estaacuten en el diagrama de Clases correspondiente

El paso ldquoConstruir los diagramas de secuencias automaacuteticamenterdquo realiza una validacioacuten de los meacutetodos definidos en los diagramas de Clases con los meacutetodos definidos en los diagramas de Warnier Este paso crea una estructura de datos con la secuencia de las llamadas y la recorre para crear los objetos y los mensajes en el diagrama de secuencias

AI terminar la creacioacuten automaacutetica del diagrama de secuencias se dispone de la r opcioacuten de guardar

31 Disentildeo de la Arquitectura

Para definir los procesos que el sistema va a realizar es necesario llevar a cabo un anaacutelisis de requisitos los cuales pueden ser expresados mediante diagramas de Casos de Uso Los Casos de Uso son una descripcioacuten textual narrativa de los procesos de un sistema

311Requisitos (Diagrama de Casos de uso)

Los casos de uso en realidad no son un artefacto de anaacutelisis orientado a objetos estos describen simplemente procesos y pueden ser igualmente efectivos en un proyecto tecnoloacutegico no orientado a objetos Son usados en un paso preliminar a la descripcioacuten de requerimientos de un sistema [LAR971 La Figura 32 muestra el diagrama de casos de uso que especifica al S3C

9

S3C (Diagramas de Secuencias)

usuario I Modelado de

I

Figura 32 Diagrama de Casos de Uso para el S3C

23

Desarrollo de la herramienta

Descripcioacuten de los Casos de Uso

Caso de Uso ldquoDiagramas de Secuenciasrdquo Se inicia cuando el actor ldquousuariordquo solicita la creacioacuten de un Diagrama de Secuencias Se establece la forma de la construccioacuten automaacutetica de los diagramas de secuencias de UML Se hace uso del Modelado de Clases y del Modelado del disentildeo detallado de los meacutetodos

Escenario de Eacutexito 1 Se obtiene la informacioacuten de las clases del modelado de clases 2 Se obtiene la informacioacuten del modelado del disentildeo detallado de los meacutetodos 3 Se realiza la construccioacuten automaacutetica de los diagramas de secuencias

1 En el modelo de clases no hay informacioacuten o estaacute incompleta 2 En el modelo del disentildeo detallado de los meacutetodos no hay informacioacuten o estaacute

incompleta

Escenario de Falla

Caso de Uso ldquoModelado de Clasesrdquo El diagrama de Clases se utiliza para obtener los nombres de clases y los nombres de los meacutetodos de cada clase

Escenario de Eacutexito 1 Se abre el modelo 2 Se procesa para obtener la informacioacuten de las clases (nombres de clases y nombres

de meacutetodos)

Escenano de Falla h 1 No se puede abrir el modelo J 2 El modelo esta vaciacuteo

Caso de Uso ldquoModelado del Disentildeo detallado 1 los meacutetodosrdquo El disentildeo detallado de los meacutetodos se realiza con diagramas de Warnier aquiacute se establecen las llamadas a funciones dentro del sistema y es aquiacute donde se identifica el dinamismo que se representaraacute en los diagramas de secuencias

Escenario de Eacutexito 1 Se abre el modelo 2 Se realiza la identificacioacuten de las llamadas existentes

Escenario de Falla 1 No se puede abrir el modelo 2 El modelo esta vaciacuteo

24

Desarrollo de la herramienta

Clase Objeto ni I Diagrama I n ____ Nombre Descripcioacuten

i

Mensaje

Tipo

En el Anaacutelisis Orientado a Objetos se crea una especificacioacuteii del dominio del problema y de los requeriinientos desde la perspectiva de una clasificacioacuten por objetos y del entendimiento de los teacuterminos usados en el dominio del problema Una descomposicioacuten del dominio del problema involucra una identificacioacuten de conceptos atributos y asociaciones que son considerados importantes dentro del dominio El resultado puede ser expresado en un Modelo Corzcepttraf el cual es ilustrado en un conjunto de diagramas que definen conceptos (objetos) [LAR97]

312Modelo Conceptual

El modelo conceptual visto en la Figura 33 no es una descripcioacuten de componentes de software representa conceptos en el domino del problema en el mundo Teal [LAR97l

313Diagramas de clases

Por cuestiones dc espacio las clases de la arquitectura del sistema estaraacuten referidas en varios diagramas que de alguna manera estaacuten relacionados entre si

Una de las partes maacutes importantes del Ambiente Visual S3C es la estructura de clases ltCCraJicogt la cual se refiere al control de los diagramas eacutesta por su naturaleza podriacutea considerarse el nuacutecleo del sistema La manipulacioacuten y control de los diagramas estaacute definido en una estructura de clases organizada con el patroacuten de disentildeo Composite que se muestra en la Figura 34

25

Desarrollo de la herramienta

CRecursividadDS CMensajeDS CObjetoDS CDiagramaDS

I Cvisitor I

CApuntadorDS CDblClickDS CAsocAdjusterDS CSelectorDS

26

Desarrollo de la herramienta

n 32 Elementos de la arquitectura

Es necesario describir los elementos que dan soporte a la arquitectura del ambiente donde se implementaraacute el sistema en este caso Microsoft Visual (MV) C++ 6 El MV C++ es un marco de aplicacioacuten poderoso basado en Windows se integran ademaacutes del lenguaje C++ (compilador y enlazador) el programa de desarrollo de programas en lenguaje C para Windows (SDK) la Microsoft Foundation Class Library AppWizzard Classwizard AppStudio y WorkBencli

La Microsoft Foundation Class Library comprende una biblioteca de clases de C++ y es considerada como el nuacutecleo del MV C++

321Microsoft Foundation Class (MFC)

La libreriacutea Microsoft Foundation Class (MFC) es una interfaz orientada a objetos que tiene las siguientes metas de disentildeo

o

Reduccioacuten significante de esfuerzo al escribir una aplicacioacuten para Windows Velocidad de ejecucioacuten comparable a las APIrsquos del lenguaje C Miacutenimo tamantildeo de coacutedigo Capacidad para llamar cualquier funcioacuten de Windows en C directamente Faacutecil conversioacuten de aplicaciones existentes en C a C++ Faacutecil uso de APIrsquos de Windows con C++ como con C Faacutecil uso de complicadas caracteriacutesticas de abstracciones poderosas como ActiveX soporte para base de datos impresioacuten barras de herramientas y barras de estado El API de Windows en C++ si usa tan efectivamente como las caracteriacutesticas mismas del lenguaje C++

La mayoriacutea de las clases de la Libreriacutea de la Microsoft Foundation Class son derivadas de una clase base ltCObjectgt que es la raiacutez de la jerarquiacutea de clases ltCObjectgt da uacutetiles capacidades a las clases que derivan de ella

La jerarquiacutea que existe en las clases derivadas de ltCObjectgt es la siguiente

Arquitectura de Aplicacioacuten Excepciones Servicios de Archivos Arreglos Listas Mapas Servicios de Internet Sockets Sincronizacioacuten Soporte para base de datos D A 0

27

Desarrollo de la herramienta

i

r

Liacutenea de Comandos Menuacute Dibujo Graacutefico Dibujo Graacutefico de Objetos Soporte de Control Soporte de Ventanas

Soporte para base de datos ODBC

o Marco de Ventanas o Barras de control o Hojas de propiedades o Cajas de Dialogo o Vistas o Controles

322Arquitectura Documento Vista

Por defecto las aplicaciones creadas con la MFC usan un modelo de aplicacioacuten que separa los datos del programa de las vistas de interaccioacuten con el usuario En eacuteste modelo un objeto documento de MFC lee y escribe datos en un almacenamiento persistente Un objeto vista administra el despliegue de datos suministrando al usuario los datos para ser seleccionados o editados La vista le comunica al documento cualquier cambio en los datos La razoacuten maacutes conveniente para seguir este modelo es cuando se necesita muacuteltiples vistas del mismo documento (como en una hoja de caacutelculo y un graacutefico)

La arquitectura documentovista hace faacutecil el soporte de muacuteltiples vistas y muacuteltiples tipos de documentos asiacute como la divisioacuten de ventanas y otras caracteriacutesticas de interfaz de usuario Pero el corazoacuten de la arquitectura son cuatro clases (Mostradas en el aacuterbol de clases de la Figura 36)

ltCDocumerrtgt (o ltCOleDocuinentgt) - Se instancia un objeto de este tipo para almacenar y controlar los datos del programa ltCViewgt (o una de sus clases derivadas ltCScrotlViewgt ltCFormViewgt ltCEditView ltCRecordViewgt ltCDaoRecordView ltCtreeViewgt ltCListViewgt b ltCrichEditViewgt) - Un objeto es usado para desplegar los datos y administrar la interaccioacuten del usuario con los datos ltCFrameWndgt (o una de sus variantes) - Establece el marco sobre el que trabajaraacuten una o mas vistas de un documento ltCDocTemolategt (o ltCSingIeDocTemplategt o ltCMultiDocTemplategt) - Coordina la existencia de uno o maacutes documentos de un tipo dado y administra la correcta creacioacuten de los documentos vistas y objetos ventanas para cada tipo

i

28

Desarrollo de la herramienta

______________ 2 Wiew

I - - __ - ------a ________________

323Integrando Ambientes en Visual C t t

Las aplicaciones de Interfaz de Documento Uacutenico (SDI) soporta muacuteltiples tipos de documentos pero este soporte es para un solo objeto documento Debido a esta restriccioacuten y aunado a la necesidad de tener varios objetos documentos a la vez se determina la utilizacioacuten del modelo Interfaz de Muacuteltiples Documentos (MDI) indicado en la Figura 37

324Interfaz de Muacuteltiples Documentos (MDI)

Una aplicacioacuten de Interfaz de Muacuteltiples Documento (MDI) permite la creacioacuten de plantillas para el manejo de los documentos eacutesta plantilla tiene la forma

rn-pDocTemplate = new CMultiDocTernplate ( I DR-SCUMLTY PE RUNTIME-CLASS (CSCUMLDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CTheView))

AddDocTernplate ( rn-pDocTemplate )

Cada plantilla describe una relacion del tipo de documento con la vista asociada La definicioacuten de la plantilla para el ambiente que controla los diagramas de secuencias es la siguiente

29

Desarrollo de la herramienta c

m-pTernplateSeqDlag = new CMultiDocTernplate ( IDR-DS-SJCTYPE RUNTIME-CLASS (CSeqDiagDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CSeqDiagView) )

AddDocTernplate( rn-pTernplateSeqDiag )

Esta plantilla hace uso de la clase CCliildFrame que por defecto el ambiente Visual C++ construye y esto es debido a que no se requieren caracteriacutesticas extras en las ventanas de las que proporciona dicha clasc En un caso en el que se requiriera un comportamiento diferente de la vista tendriacutea que crearse una nueva clase con las caracteriacutesticas deseadas

Vista Documento

Vista

I- Vista Documento I [ Tip- F Vista

L Figura 37 Modelo Interfaz de Muacuteltiples Documentos (MDI)

Para integrar otro Ambiente que utilice otro tipo de documento es necesario definir otra plantilla de la misma forma mencionada Debe tomarse en cuenta los siguientes puntos

Es necesario definir el nombre (mqTemplateNOMBRE) El IDR del tipo que se requiere que sea el documento En la primera liacutenea RUNTIME CLASS debe indicar la clase ltCDocumentgt que desea La segunda liacutenea RUNTIME-CLASS soacutelo la cambia a otra clase si requiere de otro manipulador de ventanas de lo contrario deje que ltCChildFramegt se haga cargo

-

30

Desarrollo de la herramienta

En la uacuteltima liacutenea referente a RUNTIME-CLASS se debe indicar la clase ltCViewgt que desea usar Para finalizar se usa la instruccioacuten AddDocTernplate para finalizar la definicioacuten del template (mgTemplateNOMBRE)

325 Recursos Diaacutelogos Mertuacutes y Barras de Herrattriertias

Son varios los recursos con los que se puede contar al crear un proyecto en Microsoft Visual C++ Los diaacutelogos son un recurso disponible que son utilizados para visualizar ingresar yo modificar informacioacuten que se requiera En el Ambiente Visual que se desarrolla son varios los diaacutelogos que se utilizaraacuten y eacutestos se describen a continuacioacuten

El Diaacutelogo ldquoCaracteriacutesticas del Obietordquo (Figura 38) identifica el nombre del Objeto y la descripcioacuten del mismo Este diaacutelogo se muestra cuando se presiona doble clic sobre un objeto del diagrama

I Nombre

Desciipcion

Figura 38 Dialogo Caracteriacutesticas del Objeto

El Diaacutelogo ldquoMensaierdquo (Figura 39) muestra el nombre del mensaje que puede ser modificado ademaacutes se visualizan el Identificador del Mensaje el tipo de Mensaje asiacute tambieacuten el origen y destino del mensaje

31

Desarrollo de la herramienta

Nornbie delMensaje Edit

IDentificador del Mensaje Edil Tipo de Mensaje (Edil

Edit Objeto Origen

Objeto Destino IEdit

i25El A Figura 39 Dialogo Mensaje

El menuacute es otro de los recursos del que se puede disponer para organizar el ambiente que se estaacute creando Para eacuteste caso en particular no se hizo modificaciones al menuacute estaacutendar (Figura 310) que Visual C++ presenta Los cambios significativos son el manejo del tipo de documento para los Diagramas de Secuencias

Archivo Editar Yer VenLana AyGda

Figura 310 Menuacute de los Diagramas de Secuencias (estaacutendar)

Otro importante recurso del que uno se puede valer en Visual C++ es la barra de herramienta personalizada la cuaacutel es construida en el Editor de Recursos Se ha construido una barra (Figura 311) con los elementos graacuteficos de los Diagramas de Secuencia de UML

Figura 311 Barra de Herramientas de los Diagramas de Secuencias

Es recomendable que al utilizar barras de herramienta personalizada se defina en el tamantildeo estaacutendar ya que puede experimentar problemas al momento de ejecutar la aplicacioacuten

Ademaacutes puede usar la propiedad TBBS-CHECKGROUP en una barra de herramientas para establecer que los botones puedan quedar presionados hasta que un botoacuten diferente sea presionado No olvide que la numeracioacuten inicia con cero ( O )

vuriableToolBurSetButtonStyle(OTBBSCHECKGROUP)

32

Desarrollo de la herramienta

Prefijo ID IDC IDD IDP IDR IDS

326 Notacioacuten estaacutendar

Los nombres descriptivos de los recursos se asocian a un valor uacutenico Para una mayor claridad eacutestos nombres mantienen un prefijo que describe el tipo de recurso asociado (vea la Tabla 31) [MIC99]

Tipo de Recurso Comandos de Menuacute Controles y recursos Cuadros de diaacutelogo Cadenas de solicitud para cuadros de mensaje Menuacute principal barras de herramienta tabla aceleradora y el icono Cadenas

IDR IDD IDC ID

200 - 299 3000 - 3999 34000 - 34999

Estos son los rangos de valores establecidos para el proyecto S3C Si se utiliza el coacutedigo fuente y se planea agregar otro proyecto verifisue que no se invadan estos nuacutemeros para evitar problemas

Para facilitar auacuten maacutes los trabajos futuros se ha definido una estructura de carpetas (ver Figura 312) para incluir en cada una las Clases correspondientes a cada tesis en desarrollo

33

Desarrollo de la herramienta

ill ~~ -

-I SCUML classes + U A N T L R + U App + 0 ClassDiagrams + 0 Common + a Java

t $2 SequenceDiagiams

+ WarnierDiagrams

iJ PackageDiagrams

12 StaterChartDiagrams

+

- f Classview I Resourceview 1 FileView ]

~ ~

Figura 312 Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)

327Estructura de datos persistencia y recuperacioacuten

Existe una gran cantidad de tipos de datos estructuras clases y meacutetodos de los que se puede hacer uso para una mejor y maacutes faacutecil obtencioacuten de los resultados A continuacioacuten hago comentarios en tipos de datos y meacutetodos en los que podriacutea tener problemas

CTypedPtrList

AI usar este tipo de dato o alguno relacionado que le permita utilizar el meacutetodo ltCTvrgtedPtrListGetNextgt tenga especial precaucioacuten al usarlo ya que al devolver el valor requerido la variable POSITION usada no se queda apuntando a ese valor en particular salta al inmediato siguiente de la lista

Si se realiza una creacioacuten dinaacutemica con punteros para los elementos de una CTypedPtrList Despueacutes de haberlo agregado a la lista evite el delete para borrar esta Usted deseando liberar la memoria no lo haga ya que eliminara directamente el elemento de la lista

POSITION

Es un valor usado para denotar una posicioacuten de un elemento en una coleccioacuten Pero CUIDADO no se refiere a un iacutendice es una referencia (no consecutiva) de punteros muy diferente a un iacutendice

CString

Auacuten cuando el operador de comparacioacuten == (igual a) es permitido para ser utilizado en las cadenas evite su uso ya que en ocasiones aunque cuando la e

34

Desarrollo de la herramienta

compilacioacuten no indique error alguno en la ejecucioacuten no realizaraacute lo que se necesita Recomiendo que utilice CStringCompare ()

Para eliminar el contenido de un CString utilice CStringEmpty() ya que asignar a la cadena un ldquonrdquo podriacutea causarle problemas

Serializacioacuten

Una forma en que se puede guardar informacioacuten y recuperarla de manera eficaz es mediante la serializacioacuten de objetos La serializacioacuten es un proceso que permite escribir un objeto en un archivo y tambieacuten leerlo

Para que la serializacioacuten se lleve a cabo son necesarios tres objetos un objeto de tipo ltCFilegt que represente el archivo un objeto de tipo ltCArchivegt que ofrece el entorno para la serializacioacuten y la clase del objeto a ser serializado debe ser heredada de ltCObjectgt y sobrescribir el meacutetodo ltSerializegt para que se encuentre de tal forma en que pueda ser serializado (vea la Figura 313)

Objeto a ser serializado 1

1 CArchive

[f --=I- ---7 Archivoexi

u Figura 313 Serializacioacuten

328Patrones de disentildeo utilizados

Se ha planteado la definicioacuten de una arquitectura de clases utilizando patrones de disentildeo debido a que algunos de ellos hacen maacutes faacutecil la extensioacuten de la funcionalidad y mantenimiento

35

Desarrollo de la herramienta

El patroacuten Composite es utilizado para crear de manera uniforme el diagrama sobre el que se trabaja (ver Figura 34) manteniendo una jerarquiacutea de clases uniforme las clases maacutes bajas en la jerarquiacutea definen primitivas de objetos graacuteficos

Se aplica el patroacuten de disentildeo Iterator para hacer recorridos en listas de objetos para realizar diversas operaciones Otro patroacuten de disentildeo del que se hace uso es el Visilor (ver Figura 35)

Para otras actividades que se realizan podriacutea pensarse en que se deberiacutean aplicar otros patrones pero se han evitado algunos (como el patroacuten de disentildeo Builder) para evitar incrementar la complejidad en la arquitectura ya que ai mantener el modelo de la MFC de documentovista la funcionalidad del patroacuten de disentildeo Builder es faacutecilmente reemplazado si se hiciera Uso de eacuteste se aumentariacutea la complejidad excesivamente (nos llevariacutea a perdemos en ocasiones en el paso de mensajes entre clases) dantildeando la facilidad de la arquitectura

33 Diagrama de secuencias

Un Diagrama de Secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten escenario Oacute comportamiento se usan para definir el curso loacutegico de accioacuten de un posible camino a seguir en la resolucioacuten de un problema Seguacuten John Daniels [DANO2] ldquoel principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildean las interacciones de los objetosrdquo

Los Diagramas de Secuencias se utilizan en el modelado de la implementacioacuten de sistemas de software ademaacutes son aplicables en el modelado de requisitos para establecer las comunicaciones existentes entre actores yo clases del sistema Con eacutestos diagramas se logran hacer descripciones de los escenarios y los comportamientos del sistema Con los Diagramas de Secuencias es posible definir protocolos de comunicacioacuten con paso de mensajes ya que dan esa flexibilidad que se requiere Ademaacutes los Diagramas de Secuencias contienen informacioacuten suficiente para que puedan ser transformados a los diagramas de colaboracioacuten [RUM Ol][BOO Oil

331Ciclo de vida del software

Considerando cualquier modelo de ciclo de vida del software (en la figura 314 se muestra el Modelo de cascada) el aacutembito directo de eacuteste Ambiente Visual es en el disentildeo aunque tiene sus vertientes en la codificacioacuten y mantenimiento

36

Desarrollo de la herramienta

Diseno

Codificacibn

I I I I Mantenimiento I

igura 314 Modelo de cascada del ciclo de vida del software

34 Elementos atoacutemicos de la Gramaacutetica

Definicioacuten de los elementos atoacutemicos del lenguaje y su contenido

1 Actor- Representa roles de entidad externos al sistema con el que interactuacutea directamente Los actores pueden ser humanos dispositivos u otros sistemas

2 ClaseObjeto- Determina una Clase u Objeto participante en la interaccioacuten

3 Mensaje-Es una comunicacioacuten entre objetos que contiene informacioacuten Eacuteste se representa con la finalidad a que una accioacuten sea llevada a cabo

4 Mensaje con tiempo- Tiene la misma finalidad que el mensaje la diferencia es que con eacutel se representa un atributo de tiempo

5 Mensaje asiacutencrono Es un mensaje que ocurre en el tiempo de manera independiente a otros mensajes

6 Mensaje de destruccioacuten de objeto- Es un mensaje cuya finalidad es indicar la destruccioacuten del objeto destino

7 Mensaje de creacioacuten de objeto- Es un mensaje que indica la creacioacuten de un objeto

8 Llamada al mismo objeto (Recursividad)- Es usado para modelar llamadas recursivas en el que una operacioacuten es invocada por el mismo objeto

37

Desarrollo de la herramienta

9 Destruccioacuten del objeto (AutodestrucciOacuten)- Puede o no modelarse es representada con una X al final de la liacutenea de vida del objeto

Elementos aulomaacuteticos

1 Liacutenea de Vida- Representa la vida del objeto durante la interaccioacuten

2 Activacioacuten- Muestra el periacuteodo de tiempo en el cual el objeto alguna operacioacuten

341RepresentaciOacuten visual

Representacioacuten visual de los elementos atoacutemicos del lenguaje

Actor

_- A

Mensaje

Mensaje de Creacioacuten de

Objeto

ClaseObjeto

I

Mensaje de retorno

Mensaje de Destruccioacuten de

Objeto

abla 32 Element(

Activacioacuten

Mensaje con tiempo

Autodestruccioacuten

x

atoacutemicos del lengi

taacute realizz

Texto ===I (letra)+ (letra I

numero) letra= AZ I az numero = 09

I

Recursividad ~

I

i j e

io

38

u

Comentario

iexcl

Conector de Comentario

35 Gramaacutetica desarrollada

La gramaacutetica que se propone es una gramaacutetica visual del tipo relacional Una gramaacutetica relacional pertenece a las gramaacuteticas libres de contexto es una 6-iupla G (N C S R Attr P) donde

N es un conjunto finito de siacutembolos no terminales C es un conjunto de siacutembolos terminales S es un siacutembolo distinguido en N llamado siacutembolo inicial R es un conjunto finito de siacutembolos de relacioacuten Attr es un conjunto finito de siacutembolos de atributos P es un conjunto de producciones

Entonces definiendo nuestra gramaacutetica G (N C S R Attr P)

N = Diagrama GrupoClaseObjeto

S = Diagrama

R = mensaje mensajeTiempo mensajeRetomo mensajeAsincrono mensajecrea mensajeDestruye autodestruccioacuten recursividad

R

Attr = entrada salida entradacrea

39

Desarrollo de la herramienta

Definiendo la posicioacuten de los atributos en los elementos visuales

entradacrea ObetaClase

entrada

salida

P =

Diagrama I GrupoClaseObjeto (mensaje (mensajeRetorno

(salida 1) (entrada 2) ) (salida 2) (entrada 1) )

- Diagrama 0 GrupoClaseObjeto

(mensaje (mensaje (mensajeRetomo (mensajeRetomo (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entradacrea 2) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 1) ) (salida 1) (entrada 1) )

entrada

salida

40

Desarrollo de la herramienta

s

-

GrupoClaseObjeto - 1 1 I 2 (mensaje (mensaje (mensajeRetorno (mensajeRetorno (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entradacrea 2) ) (salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 1) ) (salida I ) (entrada I ) )

1 En las gramaacuteticas relacionales una produccioacuten estaacute acompantildeada de las posibles

relaciones que puedan generarse En la primera produccioacuten Diagrama produce a un Actor seguida de un GrupoClaseObjeto el Actor inicia la interaccioacuten con un mensaje y recibe el mensaje de retorno al finalizar la interaccioacuten La segunda y tercera produccioacuten son similares debido a que un GrupoClaseObjeto contiene dos ClaseObjeto que se relacionan de la misma forma

Existe un elemento de la gramaacutetica llamado Attr (Atributo) el cual define la parte de los elementos visuales donde se establecen las relaciones Se han determinado dos atributos (entrada y salida) que para nuestro propoacutesito estaraacuten establecidos en la liacutenea de vida de cada elemento visual (Actor y ClaseObjeto)

Los Comentarios y la Activacioacuten no se consideran en la gramaacutetica Los comentarios son libres de incluirse y relacionarse con cualquier elemento y relacioacuten mencionada anteriormente y la activacioacuten existe siempre que se presente un mensaje (o podriacutea omitirse) Estas consideraciones se realizaron para hacer auacuten maacutes faacutecil la gramaacutetica ya que si se trata de realizar un sistema las restricciones de estos elementos pueden mantenerse en el lenguaje de programacioacuten en el que se desarrolle el sistema

36

Precondiciones

El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias

1 El diagrama de Clases debe existir y estar completo 2 Debe existir un archivo con un diagrama de Warnier por cada diagrama de Clases y

con el mismo nombre de archivo (excepto la extensioacuten del archivo) 3 En el uacutenico diagrama de Warnier de cada Clase se deben modelar todos los meacutetodos

de la Clase 4 No realizar declaraciones de meacutetodos

41

Desarrollo de la herramienta

5 Debe existir un meacutetodo lsquomain()rsquo en el diagrama de Clases

Restricciones

Los meacutetodos deben mantener nombres distintos en las diferentes Clases

Metodologiacutea para la obtencioacuten automaacutetica de los Diagramas de Secuencias

1 Seleccionar el diagrama de Clases

2 Se construye una lista con los nombres de las Clases y los Meacutetodos

3 Se verifica si exista el meacutetodo lsquomain()rsquo en alguna Clase Se busca la existencia de una uacutenica Clase

a La Clase que contenga lsquomain()rsquo se va al inicio de la lista de Clases

b Si no existe lsquomain()rsquo SE TERMINA EL PROCESO

4 Se verifica la existencia de los archivos que contienen el Disentildeo Detallado de los meacutetodos en Wamier para cada una de las Clases si alguno falta SE TERMINA EL PROCESO

5 Se procesa cada uno de los modelos del Disentildeo Detallado de los Meacutetodos generando una lista de secuencias de llamadas por cada uno de los meacutetodos

6 Se verifica que cada llamada corresponda a alguacuten meacutetodo existente (del diagrama de Clases) De no existir ese meacutetodo la llamada entra a una estructura que

7 Se crea una lista de secuencia

a Se inicia con lsquomain()rsquo b Se recorre cada una de las llamadas de los meacutetodos c Se considera invaacutelido el caso de que un meacutetodo intente una llamada

recursiva al meacutetodo lsquomain()rsquo

8 Se muestra un diaacutelogo de resultados en el que se indican las llamadas que no se encnotraron definidas y que pueden ser Llamada a libreriacutea oacute Llamada Erroacutenea

42

Capiacutetulo 4

Prue6as y su6taaacuteos

En eacuteste capiacutetulo se da a conocer el detalle de las pruebas y de los resultados obtenidos Se describen los casos de prueba con los que se realizoacute la evaluacioacuten del sistema asiacute tambieacuten se presentan comentarios acerca de los resultados obtenidos

Pruebas y Resultados

41 Recursos teacutecnicos utilizados

Para llevar a cabo las pruebas al sistema S3C se utilizaron los siguientes equipos de Coacutemputo

Computadora de escritorio

256MB RAM Disco Duro 80G Monitor 17rdquo SAMSUNG

AMD Athlon XP 1600+ I4Ghz

Computadora de escritorio Intel Pentium 4 - 128MB RAM Disco Duro 40G Monitor 15rdquo i -

42 Descripcioacuten del plan de pruebas

Las pruebas establecen el Uacuteltimo paso desde donde es posible evaluar la calidad y descubrir los errores Las pruebas y la validacioacuten del software se utilizan para comprobar que el sistema cumple con las expectativas del usuario

En esta seccioacuten se describen los casos de prueba que se realizaron al prototipo de S3C en conjunto a la suite cenidet-UML Para cada uno de los casos se presenta el objetivo el procedimiento que se siguioacute para la prueba y se muestran los resultados obtenidos - _

Las pruebas a realizar son los siguientes

Caso 1 Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Caso 2 Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Wamier

Caso3 Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Wamier

Caso4 Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo 5

44

Pruebas y Resultados

43 Resultados

431 Caso 1

5 Y

IZ =

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoSirdquo 4 Seleccionar el archivo ldquoVENTASrdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 41 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

s3c iuevo Proyecto SCUM1

Diagrama de clases

lvendedor I L

3

salida

venta prod

4 venia-oferta vcntaprod =

salida 6

Figura 41 Resultado del caso de prueba 1

45

Pruebas y Resultados

432 Caso 2

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Warnier (almacenwar cajawar vendedorwar) que ya cxisten (del caso de prueba I )

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoNordquo 4 Agregar las siguientes Clases con los respectivos meacutetodos y atributos

a Claseldquovendedorrdquo Meacutetodos ldquoventa mainrdquo b Claseldquoalmacenrdquo Meacutetodos ldquoentrada salidardquo c Claseldquocajardquo Meacutetodos ldquoventagrodrdquo

5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 42 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

Diagrama de daseo lisgrama dcsccucncis

MOIDOC Anivo

venta prod

salida

1 Ycrdquo1a 2

I 4 vcrdquolD~o1cn venta prod gt

salida 6 i Figura 42 Resultado del caso de prueba 2

46

Pruebas y Resultados

r

433 Caso 3

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Warnier

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 43 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

5

Error al tratar de abrir el archivo A bZwar

Aceptar i

Faltan Archivos de Disentildeos Detallados de Meacutetodos 1 1 A No se puede crear el diagrama de secuencias

Figura 43 Resultado del caso de prueba 3

47

Pruebas y Resultados

434 Caso 4

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 44 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

lsquo I

~ _ i i _ l _ Repaado ~~ ~ ~ 6~ ampA Figura 44 Resultado del caso de prueba 4

48

Pruebas y Resultados

PRUEBA DESCNPCION CASO 1 Mostrar la funcionalidad del

Sistema S3C a partir de un

44 Anaacutelisis de Resultados

RESULTADOS Se comproboacute la correcta funcionalidad del Sistema S3C a partir de un diagrama

CASO 3

CASO4

I diagrama de Clases cxistcnte I de Clases existente CASO 2 I Mostrar la funcionalidad del I Sc comproboacute la corrccta funcionalidad

Sistema S3C a partir de un del Sistema S3C a partir de un diagrama diagrama de Clases que se de Clases que se construye al momento construye al momento Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el Secuencias si falta alguno de los diagrama de Secuencia si falta alguno diagramas de Warnier Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el secuencias si hace falta el meacutetodo diagrama de Secuencias al faltar el ldquomain ()rdquo meacutetodo ldquomain()rdquo

de los diagramas de Warnier

Los resultados obtenidos de cada uno de los casos establecidos demuestran que se validoacute la funcionalidad del prototipo con los requisitos definidos en el alcance de este proyecto

a lt

49

Conclusiones y Tru6ajos Futuros

Aquiacute se dan a conocer las conclusiones y se describen los posibles trabajos futuros para la continuacioacuten de eacuteste proyecto

F

51 Conclusiones

Conclusiones y trabajos futuros

Se ha creado un Ambiente Visual que permite obtener de forma automaacutetica los Diagramas de Secuencias en base a los diagramas de Clases y al disentildeo detallado de los meacutetodos descritos con diagramas de Warnier cumpliendo con los objetivos planteados para este trabajo

La tesis aporta principalmente La generacioacuten automaacutetica de los diagramas de secuencias y la eliminacioacuten de inconsistencias al mantener una validacioacuten directa de los diagramas de clases y los diagramas de Warnier que son utilizados

Esta validacioacuten es lograda a traveacutes del uso de la gramaacutetica visual relaciona1 que se ha definido (veacutease el capiacutetulo 3) Esta gramaacutetica visual establece reglas para la correcta construccioacuten de los diagramas de secuencias

P De esta manera se establece que la hipoacutetesis ldquoEs posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodosrdquo Es verdadera

52 Trabajos Futuros

Un Diagrama de Secuencias puede convertirse en un Diagrama de Colaboracioacuten por lo tanto un trabajo futuro es la construccioacuten automaacutetica de un Diagrama de Colaboracioacuten a partir de uno de Secuencias existente

Es posible calcular la meacutetrica de acoplamiento al tener un Diagrama de Secuencias construido

La Ingenieriacutea directa de un Diagrama de Secuencias estableciendo la validacioacuten en la construccioacuten de todos los elementos visuales que UML define

La propagacioacuten de las modificaciones de un Diagrama de Secuencias a los Diagramas de Clases y los Diagramas de Warnier

La modificacioacuten del coacutedigo fuente mediante los cambios establecidos en un Diagrama de Secuencias

51

[ALC03]

[BLA98]

[B0099]

[BOOOi]

[BR097]

[CHA90]

[DAN02]

[GLA02]

[HAC98]

[HER03]

4

Alcate1 Computer Associates International inc Electronic Data Systems Corporation Hewlett-Packard Company IBM Corporation I-Logix IntelliCorp Kabira Technologies Kennedy Carter Microsoft Corporation Object Management Group Oracle Corporation Project Technology Ptech Inc Rational Software Corporation Reich Technologies Softeam Taskon A S Telelogic Unisys Corporation ldquoOMG Unified Modeling Language Specificationrdquo Version 15 Unified Modeling Language 2003

Blaha Michael Rumbaugh James Premerlani William Eddy Frederick Lorensen William ldquoObject-oriented modeling and designrdquo Prentice Hall 484 Paacuteginas ISBN 0-13-629841-9 QA-769-03S-B53-19981998

Booch Grady Rumbaugh James Jacobson Ivar ldquoEl lenguaje unificado de modeladordquo Addison Wesley 432 Paacuteginas ISBN 84-7829-028-1 1999

Booch Grady Rumbaugh James Jacobson Ivar ldquoThe Unified Modeling Language User Guiderdquo Addison Wesley 2001

Brown David ldquoAn introduction to object-oriented analysis objects in plain Englishrdquo John Whiley amp Sons Inc 700 Paginas ISBN 0-471-1 1028-0 QA-769-035-B76-1997 1997

Chang Shi-Kuo ldquoVisual Languages and visual programmingrdquo Plenum Press 340 Paacuteginas ISBN 0-306-43428-8 QA-7665-V57-1990 1990

Daniels John ldquoModeling with a sense of purposerdquo Design - IEEE Software JanuaryEebmary 2002

Glasgow Universidad Reino Unido ldquoA UML Editor in Javardquo (lthttplstudentsdcsglaacuWstudentspainjfproject-reportproject-re port-htmV4thYearReporthtrnlgt 2002)

T Hackos JoAnn C Redish Janice ldquoUser and Task Analysis for Interface Designrdquo Wiley Computer Publishing 488 Paacuteginas ISBN QA-769-U83- H33-1998 1998

Hemaacutendez Velaacutezquez M ldquoIngenieriacutea inversa de coacutedigo fuente en C++ para la obtencioacuten de su disentildeordquo Tesis AT-379 (03-0334) 2003

Conceptos generales

[HIX93]

[JAC93]

[JAC99]

[JOY98]

[LAR97]

[MAR]

[MIC99]

[MIC02]

[MOU98]

Hix Deborah Hartson H Rex ldquoDeveloping user interfacesrdquo 381 Paacuteginas ISBN 0-471-57813-4 QA-769-U83-H59-1993 1993

Jacobson Ivar Christerson Magnus Jonsson Patrik Overgaard Gunnar ldquoObject oriented software engineeringrdquo Addison Wesley ISBN 0-20 1 - 54435-0 QA-7676-D47-J63-1993 1993

Jacobson Ivar Booch Grady Rumbaugh James ldquoEl proceso unificado de desarrollo de softwarerdquo Addison Wesley 438 Paacuteginas ISBN 84-7829-036- 2 1999

Joyanes Aguilar Luis ldquoProgramacioacuten orientada a objetosrdquo McGruw Hill ISBN 84-481-0590-7 1998

Larman Craig ldquoAplying UML and Patternsrdquo Prentice Hull 507 Paacuteginas ISBN 0-13-748880-7 QA-769-035-L37-1997 1997

Marriot Kim Meyer Bemd ldquoVisual Language Theoryrdquo Springer 381 Paacuteginas P-935-V567-1998 1998

Microsoft ldquoMicrosoft Visual C++ 6 manual del programadorrdquo McGraw Hill ISBN 84-481-2127-9 QA-7673-Cl53-23718-1999 1999

Microsoft ldquoVisiordquo (lthttpwwwmicrosoftcomofficevisiogt 2002)

B Mourao Luis X ldquoUniversal Modeling Language Part 11 UML Notation - Case Sequence and Collaboration Diagramsrdquo Lan Times Magazine (~httpwwwlantimescomltpartsdiscussdiscuss6Ohtm~) 1998

No Magic ldquoMagicDrawrdquo (lthttpwwwmagicdrawcomgt 2002)

Object Insight ldquoJvisionrdquo (lthttpwwwobject-insightcomgt 2002)

Rational Software Microsoft I Hewlett-Packard Oracle Sterling Software MCI Systemhouse Unisys ICON Computing IntelliCorp i-Logix IBM ObjectTime Platinum Technology Ptech Taskon Reich Technologies Sofieam ldquoUML Summaryrdquo Version 11 Unified Modeling Language 1997

Rational ldquoRational Roserdquo (lthttpwwwrationalcomproductosrosegt 2002)

Rikki Kirzner ldquoAnalysis Modeling and Design Tools Market Forecast and Analysis 2001-2005rdquo Bulletin Published Under Services Application Design and Construction Tools Application Development and Deployment Strategies Documento Nuacutemero 24809 Junio 2001

53

Conceptos generales

[RIM92] Rimrner Steve ldquoGraphical user interface programmingrdquo 423 Paacuteginas

1992

Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language reference manualrdquo Addison Wesley 550 Paacuteginas ISBN 0-201-

ISBN 0-8306-2475-9 ISBN 0-8306-2472-4 (pbk) QA-769-083-R55G

[RUM99]

30998-X QA-7676-D47-R85-1999 1999

[RUM299] Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language user guiderdquo Addisoiz Wesley 482 Paacuteginas ISBN 0-201 -57 168-4 QA-7676-D47-B66-1999 1999

[SMA02] SmartDraw ldquoSmartDrawrdquo (lthttpwwwsmartdrawcomgt 2002)

[SHU88] 9 - Shu Nun C ldquoVisual Programmingrdquo Van Nostrand Reinhold ISBN 0-422- 28014-9 ISBN 0-422-01 164-4 QA-7665-S55 1988

[THI90] Thimbleby Harold ldquoUser Interface Designrdquo Acm press 470 Paacuteginas ISBN 0-201 -41 61 8-2 QA-769U83-T772~- 1990 1990

[WENO2] Wences Diaz MF ldquoModelo de Ingenieriacutea Inversa para la obtencioacuten de disentildeo detallado basado en LEVISSrdquo Tesis (02-0014) 2002

54

Anexo A

Conampuracioacuten de Microsoft Vkua[C++ 6 O

Este anexo indica las configuraciones que se utilizaron para la compilacioacuten de SCUML y s3c

Configuracioacuten de Microsoft Visual c++ 60

Debido a la integracioacuten de los proyectos de InverSOODA e InverDDVi con S3C se cumplioacute con los requisitos previos de ambos proyectos

El compilador usado en el proyecto fue el Microsoft Visual C++ 60

Para el cumplimiento con la funcionalidad de InverSOODA se instaloacute el ANTLR la versioacuten 271 Se descargoacute del sitio l i l l ~ ~ ~ ~ ~ ~ t l ~ l ~ - ~ t - ~ la versioacuten mencionada en un archivo comprimido (en formato zip) Se colocoacute el paquete descomprimido en el directorio ldquoDIANTLR-271 I rdquo

Recomiendo ampliamente que el directorio principal de ANTLR se copie en el directorio raiacutez de cualquier unidad de disco debido a que experimenteacute problemas de compilacioacuten cuando ANTLR no se encontraba en el directorio raiacutez

Io015

Source Browser AlttF12 I u c Ersquo V I

Visual Component Mgnager

- - ~ ~ ~ ~~

P2 Registrar control

A Contenedor de prueba de controles ActiveX

A Usor de objetos OLE y COM

Buacutesqueda de errores

A Y++ MFC Iracer

Customize options

~ - q- ~ Macro

Eecord Quick Macro Cbl+ShiR+R Pay Quick Macro Ctrl+ShiR+P

En el menuacute Tools (Herramientas) seleccione el sub-menuacute Options ltopcionesgt

56

Configuracioacuten de Microsoft Visual C++ 60

En la siguiente ventana de diaacutelogo debe agregar la direccioacuten en donde se encuentra el ANTLR

Agregar la ruta del directorio de ANTLR hasta el subdirectorio

libcpp

Editor I Tabs I Debug I Compatibility 1 Build Dneclolies I a I Chow directories for - Platfolm -

- Directories I x ) 4 jWin32 -] llnclude files

m cancd I

57

Configuracioacuten de Microsoft Visual C t+ 60

Se ha creado una libreriacutea (anrlrliblib) de ANTLR la cual ya estaacute situada en el directorio del proyecto SCUML (ISCUML) y no debe ser movida o eliminada

I

Geneial 1 Debug I CC++ Link I Category

Output file name bebugSCUMLexe

Objectljibrary modules 4 anllrliblib

li Generate debug lnfo r Ignore all defaull lbaries D ~ i n k j n ~ ~ ~ t a n ~ r ~ e n e r ~ ~ ~ mapfile

r Enable psafilrng

Proiec1 Ootionn

pq Cancel 1 Libreriacutea de ANTLR que debe existir 1 I para que se compile correctamente

58

Anexo B

~ u iacute aacute raacutepida de uso deC Sistema S3C

5 Este anexo indica de forma raacutepida la manera de utilizar S3C para crear un diagrama de secuencias de forma automaacutetica

Guiacutea Raacutepida de uso del Sistema S3C i

Para indicar la creacioacuten de un diagrama de secuencias en forma automaacutetica se debe ir a la barra del costado izquierdo y presionar ldquoNuevo Proyecto SCUMLrdquo

I s3c I ~ Nuevo Proyecto SCUML ~ _ _ - I Diagrama de clases ~ Diagrama de secuencias 1 MDI DOC Activo

-

Apareceraacute un documento llamado ldquoSCUMLV en donde el simbolo corresponde a un numero consecutivo iniciando desde 1 (uno)

$ e Despueacutes se presiona ldquoDiagrama de clasesrdquo Habraacute que para indicarle al sistema si se requiere abrir un diagrama de clases existente o realizar uno nuevo

i

iquestAbrir un documento existente

No Cardquo~ear

AI presionar ldquoSirdquo se debe indicar cual es el archivo del diagrama de Clases en el cuadro de diaacutelogo siguiente

~~ - 11dMis documentos rsquo 2 M i P C i lsquo h s sitios de red

I

AI presionar ldquoNordquo en ldquoAbrir un documento existenterdquo se nos mostraraacute un documento vacio para crear un diagrama de clases

60

Guiacutea Raacutepida de uso del Sistema S3C

Para ambas opciones se requiere que los diagramas de Wamier ya se encuentren construidos Y para continuar el proccso se selecciona el documento ldquoSCUMLVrsquo creado al inicio y despueacutes presionar el botoacuten nombrado ldquoDiagrama de secuenciasrdquo localizado en la barra de hcrraiiiicntas del costado izquierdo

Ha iniciado el proceso de construccioacuten del diagrama de secuencias Si no existen errores al terminar el proceso se le mostraraacute un cuadro de diaacutelogo llamado ldquoResultadosrdquo en donde le mostraraacute las llamadas de las que no localizoacute su definicioacuten

- - -

Cancel 1 D e las siguientes llamadas es posible que esten mal escritas o peitenezcan a la libreiia del Lenguaie Verifique ya que no se encontraron sus definiciones

A continuacioacuten se mencionan los posibles errores que finalizan el proceso de la creacioacuten automaacutetica de los diagramas de secuencias en S3C

Cuando no exista un meacutetodo lsquomainrsquo definido en el diagrama de clases

No se encontro el meacutetodo lsquomain()rsquo que inicie la secuencia I A No se puede crear el diagrama de secuencias

p==amp=q

61

Guia Raacutepida de uso del Sistema S3C

Cuando se definan niultiples metodos lsquoinainrsquo en el diagrama de clases

Multiples meacutetodos lsquomainOlsquo Imposible decidir el inicio de secuencia

Aceptar i

Si un meacutetodo definido en Wamier realiza una llamada a lsquomainrsquo se cancelara el proceso

Llamada NO VALIDA al meacutetodo principal main

(iAcp-j(

4 i

CI Y rdquoldquoldquoI i 11 1-T

IZNTRO Gt INFORMACION

62

  • Tabla de Contenido
  • Listado de Figuras
  • Listado de Tablas
  • Notacioacuten
  • Introduccioacuten
  • Capitulo 1 Conceptos Generales
    • 11 Antecedentes
    • 12 Trabajos relacionados
      • 121 Tabla comparativa
        • 13 Definicioacuten del problema
        • 14 Objetivo de la Tesis
          • Objetivos especiacuteficos de la tesis
            • 15 Hipoacutetesis de investigacioacuten
            • 16 Alcances y limitaciones del trabajo de tesis
              • Capitulo 2 Marco Teoacuterico
                • 21 Modelado de sistemas de software
                • 22 Interfaz de usuario (Mecanismos de interaccioacuten)
                • 23 Lenguajes Visuales
                • 24 Programacioacuten orientada a objetos
                • 25 Lenguaje de Modelado Unificado (UML)
                  • Desarrollo de la herramienta
                    • 31 Disentildeo de la Arquitectura
                      • 311 Requisitos (Diagrama de Casos de uso)
                        • 312Modelo Conceptual
                        • 313Diagramas de clases
                        • 32 Elementos de la arquitectura
                          • 321 Microsoft Foundation Class (MFC)
                            • 322Arquitectura Documento Vista
                            • 323Integrando Ambientes en Visual c++
                              • 324 Interfaz de Muacuteltiples Documentos (MDI)
                                • 325Recursos Diaacutelogos Menus y Barras de Herramientas
                                  • 326 Notacioacuten estaacutendar
                                  • 327 Estructura de datos persistencia y recuperacioacuten
                                    • 328Patrones de disentildeo utilizados
                                      • 33 Diagrama de secuencias
                                        • 331Ciclo de vida del software
                                          • 34 Elementos atoacutemicos de la Gramaacutetica
                                            • 341 Representacioacuten visual
                                              • 35 Gramaacutetica desarrollada
                                              • 36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias
                                                  • Capitulo 4 Pruebas y Resultados
                                                    • 41 Recursos teacutecnicos utilizados
                                                    • 42 Descripcioacuten del plan de pruebas
                                                    • 43 Resultados
                                                      • 431 Caso
                                                      • 432 Caso2
                                                      • 433 Caso
                                                          • Conclusiones y trabajos futuros
                                                            • Trabajos futuros
                                                            • Referencias
                                                            • Anexo A Configuracioacuten de Microsoft Visual C+t
                                                              • Figura 11 - Arquitectura de la suite cenidet-UML
                                                              • Figura 21 -Programacioacuten Visual
                                                              • Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de
                                                              • Figura 32 -Diagrama de Casos de Uso para el S3C
                                                              • Figura 33 -Modelo Conceptual
                                                              • Figura 34 - Diagrama de Clases -Control del Diagrama -
                                                              • Figura 35 - Diagrama de Clases - Patroacuten Visitor -
                                                              • Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento
                                                              • Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)
                                                              • Figura 38 -Dialogo Caracteriacutesticas del Objeto
                                                              • Figura 39 -Dialogo Mensaje
                                                              • Figura 3 IO - Menuacute de los Diagramas de Secuencias (estaacutendar)
                                                              • Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias
                                                              • Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)
                                                              • Figura 313 - Serializacioacuten
                                                              • Figura 314 -Modelo de cascada del ciclo de vida del software
                                                              • Figura 41 - Resultado del caso de prueba
                                                              • Figura 42 -Resultado del caso de prueba
                                                              • Figura 43 -Resultado del caso de prueba
                                                              • Figura 44 -Resultado del caso de prueba
                                                              • Tabla 11 - Tabla comparativa
                                                              • Tabla 31 -Prefijos estaacutendar de identificadores
                                                              • Tabla 32 -Elementos atoacutemicos del lenguaje
                                                              • Tabla 41 - Resumen de los resultados de las pruebas realizadas

Conceptos generales

e JVision 21 de Object Insight

JVision permite en la ingenieriacutea directa la creacioacuten de clases variables y meacutetodos con lo cual genera plantillas de coacutedigo para programadores en Java Los diagramas se pueden exportar a HTML La documentacioacuten puede integrarse con JavaDoc de Sun JVision da el soporte para ingenieriacutea inversa para el lenguaje Java

Se pueden crear todos los diagramas definidos por UML en los diagramas de secuencias da la oportunidad de dibujar clases liacuteneas liacuteneas de tiempo de vida y marca de destruccioacuten de objetos ofrece ademaacutes el soporte para las acciones de llamada regresar valor enviar accioacuten crear accioacuten y eliminar accioacuten [OBJO2]

MagicDraw 6 de No Magic

Es una herramienta CASE con soporte para trabajo en grupo Esta disentildeado para analistas 6 de negocios analistas de software programadores ingenieros de calidad y

documentadores Esta aplicacioacuten provee la capacidad para crear los diagramas definidos por UML (soporta UML 14) Cuenta con el soporte de ingenieriacutea inversa y generacioacuten de coacutedigo para C++ C Java y CORBNIDL Tiene integracioacuten con NetBeans se actualiza automaacuteticamente disponible en aacuterabe portugueacutes franceacutes italiano ingles (US) alemaacuten espantildeol japoneacutes y coreano

Tiene la caracteriacutestica de soportar la adaptacioacuten de los elementos a colores que el usuario defina Los diagramas pueden exportarse a imaacutegenes JPG EMF WMF EPS y DXF En los diagramas de secuencia da oportunidad de definir roles textos notas mensajes de varios tipos al mismo objeto recursivo ademaacutes de la relacioacuten a las notas y las liacuteneas de vida Es posible guardar los diagramas como imaacutegenes de mapas de bits o vectores Mantiene ademaacutes una vista pequentildea a escala del diagrama completo [NoA402]

e

SmariDraw Professional Plus de SmariDraw

Todos los dibujos pueden agregarse en las aplicaciones de Microsoft como son Word Excel PowerPoint Contiene maacutes de 50000 (1000 en la versioacuten estaacutendar) formas predefinidas ejemplos y plantillas Los diagramas pueden ser exportados a imaacutegenes WMF BMP JPG GIF TIF y otros Incluye un convertidor de archivos de VISIO

Con esta herramienta es posible crear diagramas de flujo diagramas de bloque diagramas de flujos de datos diagramas de organizacioacuten aacuterboles de decisioacuten disentildeo de redes Gantt diagramas de flujo de procesos diagramas de administracioacuten de calidad diagramas eleacutectricos diagramas mecaacutenicos diagramas quiacutemicos liacuteneas de tiempo planes de espacio posters mapas formas y tambieacuten da soporte para UML es posible dibujar objetos actores activacioacuten de los objetos mensaje mensaje de retorno mensaje asiacutencrono mensaje con tiempo liacutenea de vida del objeto marca de destruccioacuten del objeto y ciclos (descrito con un rectaacutengulo y una condicioacuten de salida) [SMA02]

5

Conceptos generales

Producto Soporta Diagramas de UML Secuencias

Creacioacuten automaacutetica de diagramas de

El Rational Rose El Visio

Jvision

Magic D r a w

a a El Fl El a El El

I ~

I ~

I -

Ambiente de modelado de

a a SmartDraw El

Tabla I Tabla comparativa

Todas las herramientas descritas anteriormente cuentan con caracteriacutesticas sobresalientes para el disentildeo y modelado de sistemas de software pero ninguna de ellas genera automaacuteticamente los diagramas de secuencia con base en los diagramas de clases y el disentildeo detallado de los meacutetodos asiacute tambieacuten ninguna de ellas realiza un caacutelculo de los canales de comunicacioacuten abiertos entre las clases que conforman el sistema

iexcla la A UML Editor in Java

13 Definicioacuten del problema

El modelado de sistemas utilizando el estaacutendar de UML en diversos productos comerciales prototipos de laboratorio elaborados en universidades y centros de investigacioacuten atienden la perspectiva baacutesica de la abstraccioacuten general del modelo esto es documentar el modelo del sistema que se requiere sin atender puntos importantes tales como

La generacioacuten automaacutetica de los diagramas de secuencias La correccioacuten de inconsistencias en los diagramas al crearlos de forma separada

El

6

sistemas de software

secuencias utilizando diagramas de a a a

Conceptos generales

Se hace necesaria la creacioacuten de un ambiente visual que permita obtener de forma automaacutetica los diagramas de secuencias en base a los diagramas de clases y al disentildeo detallado de los meacutetodos para facilitar la documentacioacuten la generacioacuten de coacutedigo y el mantenimiento de los sistemas

La obtencioacuten de los diagramas de secuencias estaacute basada en los Diagramas de Clases definidos por UML que son construidos con la herramienta InverSOODA junto con el disentildeo detallado de los meacutetodos construidos con Diagramas de Wamier elaborados con la herramienta InverDDVi

En el estaacutendar UML para la construccioacuten de los diagramas no existe actualmente una sintaxis expliacutecita definida solo existe impliacutecitamente en el uso de los elementos del diagrama por lo que se ha descrito una gramaacutetica visual de tipo relaciona1 como soporte para la construccioacuten de los Diagramas de Secuencias

n ai 14 Objetivo de la Tesis

Construir un ambiente visual que permita al usuario obtener el diagrama de secuencias de manera automaacutetica

141 Objetivos especiacuteficos de la tesis Crear una gramaacutetica que soporte la construccioacuten del diagrama de secuencias Construir de forma automaacutetica el diagrama de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodos

15 Hipoacutetesis de investigacioacuten

Es posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodos

16 Alcances y limitaciones del trabajo de tesis

Los alcances de la tesis se especifican a continuacioacuten

Se elaboroacute la arquitectura del sistema Se definioacute la gramaacutetica de soporte Se desarrolloacute la interfaz en Visual C++ haciendo uso de las MFC Se interactuacutea con los diagramas de clases de InverSOODA Se interachiacutea con el disentildeo detallado de los meacutetodos realizados por InverDDVI Se genera el diagrama de secuencias de forma automaacutetica

7

Conceptos generales

Limitaciones de la tesis

0 No se genera coacutedigo

La investigacioacuten se limita a los diagramas de clases para la vista estaacutetica de los sistemas de software y a los diagramas de Warnier para la vista dinaacutemica de los meacutetodos El ambiente no trabaja en red

No se modifican los archivos de InverSOODA No se modifican los archivos de InverDDVI No se recuperan diagramas de secuencias a partir de coacutedigo legado

4

8

Capiacutetulo 2

Narc0 teoacuterico

En eacuteste capiacutetulo se describen los temas usados para el desarrollo de la tesis iquestQue son los modelos iquestEn que parte del proceso de Ingenieriacutea del Software se usan los modelos o el modelado Se estudia la interfaz de usuario los lenguajes visuales y las gramaacuteticas visuales Se describe el Lenguaje de Modelado Unificado (UML) ademaacutes de la programacioacuten orientada a objetos por ser este paradigma en donde se enfoca este trabajo

Marco teoacuterico

21 Modelado de sistemas de software

un modelo es una abstraccioacuten de algo con el propoacutesito de entenderlo antes de construirlo El modelo omite detalles no esenciales haciendo maacutes faacutecil su manipulacioacuten que la entidad original [BLA98] Un modelo es la simplificacioacuten de la realidad [RUM99] Los propoacutesitos de los modelos son

Probar una entidad fisica antes de construirla Establecer mejor comunicacioacuten con los clientes Visualizar el problema y el sistema desde una mejor perspectiva Reducir la complejidad [BLA98] Capturar y precisar requerimientos y conocimiento del dominio Pensar acerca del disentildeo del sistema Capturar decisiones de disentildeo en una fomia separada que cambia a partir de los requerimientos Generar productos Organizar buscar filtrar obtener examinar y editar informacioacuten acerca de un sistema Explorar muacuteltiples soluciones econoacutemicas Manejar sistemas complejos [RUM99]

El modelado es una probada y bien aceptada teacutecnica de Ingenieriacutea de Software [RUM99] El modelado es parte central de todas las actividades que conducen a la produccioacuten de buen software Se construyen modelos para comunicar la estructura deseada y revisar el comportamiento de nuestro sistema Se construyen modelos para visualizar y controlar la arquitectura del sistema Se construyen modelos para comprender mejor el sistema que estamos construyendo muchas veces descubriendo oportunidades para la simplificacioacuten y la reutilizacioacuten Se construyen modelos para controlar el riesgo [BOO99] La razoacuten fundamental por la que modelamos es porque nosotros construimos modelos que nos ayudan a entender mejor el sistema que estamos desarrollando [RUM99]

El modelado nos permite [RUM99] 1 Visualizar como es el sistema o como queremos que sea 2 Especificar la estructura del sistema 3 Plantear nuestras guiacuteas en la construccioacuten delsistema 4 Documentar las decisiones que hemos tomado

En las etapas del desarrollo del software el modelado es usado en el disentildeo el disentildeo del sistema es la primera etapa en donde se da la aproximacioacuten baacutesica de la solucioacuten al problema seleccionado ademaacutes se decide por la estructura (arquitectura del sistema) y el estilo de la solucioacuten

La arquitectura del sistema provee el contexto sobre el cual se tomaraacuten decisiones mas detalladas en las etapas subsecuentes del disentildeo [BLA98] En el disentildeo modelamos el sistema y encontramos su forma (incluida la arquitehra) para que soporte todos los 3 -

10

Marco teorico

i

4 -I

requisitos -incluyendo los requisitos no funcionales y otras restricciones- que se le suponen [JAC99] Los propoacutesitos del disentildeo son

Adquirir una comprensioacuten en profundidad de los aspectos relacionados con 10s requisitos no funcionales y restricciones relacionadas con los lenguajes de programacioacuten componentes reutilizables sistemas operativos tecnologiacuteas de distribucioacuten y concurrencia tecnologiacuteas de interfaz de usuario tecnologiacuteas de gestioacuten de transacciones etc Crear una entrada apropiada y un punto de partida para actividades de implementacioacuten subsiguientes capturando los requisitos o subsistemas individuales interfaces y clases Ser capaces de descomponer los trabajos de implementacioacuten en partes mas manejables que puedan ser llevadas a cabo por diferentes equipos de desarrollo teniendo en cuenta la posible concurrencia Capturar las interfaces entre los subsistemas Esto ayuda cuando reflexionamos sobre la arquitectura y cuando utilizamos interfaces como elementos de sincronizacioacuten entre diferentes equipos de desarrollo Ser capaces de visualizar y reflexionar sobre el disentildeo utilizando una notacioacuten comuacuten Crear una abstraccioacuten independiente de la implementacioacuten del sistema en el sentido de que la implementacioacuten es un refinamiento directo del disentildeo que rellena lo existente sin cambiar la estructura Esto permite la utilizacioacuten de tecnologiacuteas como la generacioacuten de coacutedigo y la ingenieriacutea de ida y vuelta entre el disentildeo y la implementacioacuten [JAC99]

22 Interfaz de usuario (Mecanismos de interaccioacuten)

El crecimiento de las computadoras personales vendidas en los ~ O rsquo S lanzoacute con fuerza el ldquofaacutecil de usarrdquo como una de las caracteriacutesticas mas importante de un producto de computadora

Las interfaces graacuteficas de usuario no son nuevas se pueden encontrar en las paredes de cuevas al sur de Francia en las piraacutemides de Egipto y en las paredes de muchas ciudades [iUM92] Para el usuario de un sistema interactivo la comunicacioacuten es tan importante como la computacioacuten Para los usuarios regularmente la interfaz es el sistema [HIX93]

Disentildeo de Interfaz Seguacuten Hackos [HAC98] las interfaces estaacuten en todo donde se trabaja con

o Controles en productos de hardware o Etiquetas y sentildeales en el hardware o Pequentildeas pantallas de cristal liquido en maacutequinas de cualquier tipo o Pantallas para aplicaciones de software para terminales de computadoras centrales

Marco teoacuterico

o pantallas para aplicaciones de software en computadoras Personales sistemas operativos como Windows OS2 DOS Macintosh U n b Y Otros

0 Paacuteginas de un sitio WEB 0 Sistemas de ayuda y manuales en-liacutenea 0 Tutoriales incrustados y otros tipos de soporte de funcionamiento O Esquemas de formas y otros documentos

una interfaz es el medio con el cual los usuarios interactuacutean con el producto 0

sistema para lograr SUS objetivos

Interfaz Usable

Para que una interfaz sea usable debe ser transparente y darles a los usuarios la capacidad de lograr cumplir sus metas de forma efectiva y eficiente

Los beneficios presentados en el uso de las interfaces de usuario [TH190] Disfrutar el sistema El usuario disfruta trabajar con un sistema que cuenta con una interfaz bien disentildeada y que le da la funcionalidad y acceso a los recursos de una manera clara y sencilla Proporciona nuevas habilidades Elimina al usuario concentrarse en acciones que la propia interfaz y el sistema hacen dando como resultado que el usuario solo se concentre en lo importante del trabajo Delegacioacuten de tareas La interfaz de usuario permite al usuario no conocer los detalles de la tarea esto es la computadora atiende los detalles de las tareas mientras que el usuario se concentra en asuntos de maacutes alto nivel Seguridad El usuario no necesita estar en lugarespeligrosos para hacer su trabajo

Se da la mayor posibilidad para que el usuario tenga acceso al conocimiento utilizando un sistema interactivo Haciendo las cosas a la primera Las tareas se ejecutan en un orden correcto definido lo que da como resultado un trabajo bien terminado sin necesidad de repetir evitando asiacute altos costos Computando LOS usuarios pueden calcular datos sin necesidad de conocer el proceso para obtener los resultados

Desarrollo

El disentildeo de interfaz es un negocio bastante dificil Eacuteste combina dos complicadas disciplinas psicologiacutea y ciencias de la computacioacuten Estas disciplinas tienen un fondo cultural muy diferente la psicologiacutea atiende a la gente (comprensioacuten y entendimiento) las ciencias computacionales a las maacutequinas (matemaacuteticas y precisioacuten) El disentildeo de las buenas interfaces requiere que estas dos perspectivas esteacuten unidas [THi90]

Hackos dice que las interfaces dan simplicidad y elegancia al trabajo necesario y a la vida e los usuarios Si no es obvio al usuario pero es raacutepida para aprender [HAC98] ademaacutes define caracteriacutesticas comunes de las interfaces usables

o Hacen que el flujo de trabajo sea familiar o confortable o Soportan el estilo de aprendizaje de los usuarios

12

Marco teoacuterico

Visualizacioacuten de Entrenamiento visual Para controlar Soportar interaccioncs Programar con informacioacuten visual visuales expresiones visuales

o Compatibles con los ambientes de trabajo de los usuarios o Se extienden sobre un concepto de disentildeo que es familiar al usuario o Tienen consistencia de presentacioacuten que los hace parecer maacutes confiable y faacuteciles de

aprender o Usan lenguaje y figuras familiares al usuario o faacuteciles de aprender

Datos o informacioacuten acerca de datos

23 Lenguajes Visuales

Los lenguajes visuales son un nuevo paradigma para expresar los sistemas computacionales Ellos ofrecen la posibilidad de manipular directamente los objetos Un lenguaje visual consiste de sentencias visuales Para lenguajes visuales basados en iacuteconos cada sentencia visual es un arreglo espacial de objetos O iacuteconos graacuteficos [CHA90]

Un lenguaje visual es concebido como una coleccioacuten de figuras obtenidas por un arreglo graacutefico de objetos en dos o maacutes dimensiones Los lenguajes visuales pueden ser modelados sintaacutecticamente a traveacutes de un vocabulario un conjunto de relaciones usadas para componer las figuras y un conjunto de reglas describiendo las figuras pertenecientes al lenguaje Los objetos graacuteficos de un vocabulario de un lenguaje visual se caracterizan por contar con un conjunto de atributos Los atributos de un objeto graacutefico pueden ser atributos graacuteficos atributos sintaacutecticos y atributos semaacutenticos [MAR98]

Un lenguaje de programacioacuten visual puede ser informalmente definido como un lenguaje el cual usa algunas representaciones visuales [SHV88]

Programa ylo Disentildeo de Lenguajes de programacioacuten visual ejecucioacuten software Diagramas iconos Formas

Programacioacuten Visual [SHU88]

Gramaacuteticas para la especificacioacuten de lenguajes visuales [MAR98]

a) Gramaacuteticas texfuales generalizadas Este tipo de gramaacutetica provee una adaptacioacuten apropiada de la concatenacioacuten de siacutembolos para dos dimensiones Su principal ventaja es que conservan los elementos teoacutericos de las gramaacuteticas textuales y los eficientes algoritmos de anaacutelisis de eacutestos uacuteltimos Su principal desventaja es que eacutestas gramaacuteticas no son tan poderosas y soacutelo pueden especificar clases restringidas de lenguajes visuales

13

Marco teorico

b) Meacutetodos basados en gramaacuteticas de grafos Un ejemplo de este tiPo de gramaacuteticas son las gramaacuteticas de red Las oraciones generadas con gramaacuteticas de red son grafos dirigidos con siacutembolos en los nodos Estos grafos son llamados redes Una produccioacuten de eacuteste tipo de gramaacuteticas es de la siguiente forma

a - t p E

donde a y p son redes y E es una forma de conectar a p cuando a es conectada a otra red anfitriona

La mayor desventaja es que las gramaacuteticas de red no han probado ser totalmente uacutetiles para la especificacioacuten de gramaacuteticas arbitrarias por la complejidad para rescribir grafos y al hecho de que no todo lenguaje visual estaacute compuesto exclusivamente por grafos

C) Gramaacuteticas de multiconjuntos de atributos En estas gramaacuteticas las producciones rescriben conjuntos o multiconjuntos de siacutembolos que tienen atributos con informacioacuten sobre geometriacutea o semaacutentica La reescritura se controla con restricciones sobre los atributos de los siacutembolos en el lado derecho de las producciones

Un ejemplo de eacutestas gramaacuteticas es la Gramaacutetica Coordinada que especifica notacioacuten matemaacutetica de dos dimensiones En esencia las producciones en una gramaacutetica coordinada n-coordinada libre del contexto tienen la siguiente forma

A -t a donde C F

Todos los siacutembolos de eacuteste tipo de gramaacutetica tienen n atributos geomeacutetricos A es un siacutembolo no terminal a es una cadena no vaciacutea de siacutembolos C es una restriccioacuten sobre los atributos de los siacutembolos en a y F es una expresioacuten que computa los atributos de los siacutembolos de A en teacuterminos de los atributos de los siacutembolos en a no importando el orden de los siacutembolos en a

d) Gramaacuteticas PosicionaZes Las gramaacuteticas posicionales son un formalismo para la definicioacuten e implementacioacuten de lenguajes visuales las gramaacuteticas posicionales extienden naturalmente a las gramaacuteticas libres de contexto Una gramaacutetica libre de contexto posicional PG es una six-tupla (N T S P POS PE) donde

N es un conjunto finito no vaciacuteo de siacutembolos no terminales T es un conjunto finito no vaciacuteo e siacutembolos terminales con N n T = $I S E N es el siacutembolo no terminal de inicio P es un conjunto finito de producciones POS es un conjunto finito de identificadores de relacioacuten binaria PE es un evaluador pictoacuterico

14

Marco teorico

Cada produccioacuten en P tiene la siguiente forma

A -+ X I R I X R2 X ~ I Rm1 xm A

e) Gramaacuteticas de Relacioacuten de siacutembolos Eacuteste es un formalismo sintaacutectico para describir un lenguaje visual donde cada oracioacuten dentro del lenguaje se representa como un conjunto de objetos visuales y un conjunto de relaciones entre objetos

El alfabeto de siacutembolos Vt y el conjunto de relaciones entre siacutembolos Vr una oracioacuten de relacioacuten de siacutembolos w sobre Vt y Vr es un par ( M R) donde

M es un conjunto de elementos-s (v i) con v E Vt y i es un nuacutemero natural R es un conjunto de elementos-r de la forma r (Xi Yj) con Xi Yj E M r E Vr y una relacioacuten r esta contenida entre Xi y Yj

Una gramaacutetica de relacioacuten de simbolos es el conjunto de seis elementos G = (Vn Vt Vr S P R) donde Vn es un conjunto de siacutembolos no terminales Vt es un conjunto de siacutembolos terminales Vr es un conjunto de relaciones entre siacutembolos S es el siacutembolo inicial y P es un conjunto de reglas de reescritura (producciones de elementos-s)

f) Gramaacuteticas relacionales Este tipo de gramaacutetica pertenecen a las gramaacuteticas libres de contexto

La gramaacutetica relaciona1 (RGrsquos) es una 6-tupla G (N C S R Attr P) donde

N C S R Attr P

es un conjunto finito de siacutembolos no terminales es un conjunto de siacutembolos terminales es un siacutembolo distinguido en N llamado siacutembolo inicial es un conjunto finito de siacutembolos de relacioacuten es un conjunto finito de siacutembolos de atributos es un conjunto de producciones de la forma A-gt apF donde A E N a E (nlo)+ Donde n E N cr E E

8 Es un conjunto de relaciones de la forma (r x y) donde r E R y xy son enteros que hacen referencia a un miembro de a y tambieacuten una expresioacuten de la forma (a i) donde a E Attr e i es un entero que hace referencia a un miembrode a

F Es un conjunto de declaraciones de asignacioacuten de caracteriacutesticas de la forma (a O)=x donde a E Attr y x es un entero que hace referencia a un miembro de a o a una expresioacuten de la forma (a i)

15

Marco teoacuterico

24 Programacioacuten orientada a objetos

L~~ meacutetodos orientados a objetos organizan la informacioacuten Y el procesamiento que manipula esta informacioacuten de acuerdo a los objetos delrsquomundo real que la informacioacuten describe [BRO97l

Beneficios de las teacutecnicas orientadas a objetos [BR097] Estabilidad del sistema Mantenibilidad Componentes reusables Confiabilidad Accesibilidad de los datos Participacioacuten del usuario

Seguacuten Graddy Booch la programacioacuten orientada a objetos es ldquoun meacutetodo de implementacioacuten en el que los programas se organizan como colecciones cooperativas de objetos cada uno de los cuales representan una instancia de alguna clase y cuyas clases son todas miembros de una jerarquiacutea de clases unidas mediante relaciones de herenciardquo [JOY 981

Programacioacuten orientada a objetos esencialmente significa programacioacuten usando objetos [JAC93] Los lenguajes orientados a objetos deben soportar los siguientes conceptos

Objetos Abstraccioacuten de datos Encapsulamiento Clases e Instancias Herencia entre clases Polimorfismo

Las propiedades fundamentales de la Programacioacuten Orientada a Objetos son

a Abstraccioacuten Son ideas conceptos y propiedades que se describen en forma general eliminando los detalles Es una estructura de datos y los meacutetodos que manipulan a esos datos

b Encapsulamiento Son las fronteras propias de un objeto bien definidas las cuales protegen los detalles de su representacioacuten interna

c Ocultacioacuten de la informacioacuten Es la propiedad en la que los objetos pueden hacer uso para impedir que otros objetos los usuarios o incluso los programadores conozcan coacutemo estaacute distribuida la informacioacuten

d Herencia Es la propiedad que tiene una clase para heredar atributos y comportamiento a otras clases

e Polirnorfismo Es la propiedad que permite que una entidad pueda cambiar a diferentes formas efectuaacutendose de manera dinaacutemica en tiempo de ejecucioacuten

16

Marco teoacuterico

t

Clases Es la especificacioacuten de una familia de objetos es la declaracioacuten de un tipo de objetos Tambieacuten se dice que una clase es la descripcioacuten de un conjunto de objetos con un comportamiento similar y que esta compuesta de Datos (o atributos) y Meacutetodos o (rutinas acciones operaciones)

Objeto Un objeto es una entidad en la cual se almacenan datos y los meacutetodos o funciones que controlan dichos datos Un objeto es una abstraccioacuten de alguna cosa del mundo real que contiene datos que lo describen y operaciones que solo tienen acceso a esos datos [BR097l Los elementos de los que esta conformado un objeto son

a Las relaciones permiten que el objeto se integre en la organizacioacuten b Las propiedades son los datos que caracterizan el estado de un objeto distinguiendo

asiacute a un objeto determinado de los restantes que forman parte de la misma organizacioacuten

c Los meacutetodos son las operaciones que pueden realizarse sobre la estructura del objeto es decir las acciones que cambian el estado de un objeto y que el objeto es capaz de ejecutar a traveacutes de mensajes y que tambieacuten pone a disposicioacuten de sus descendientes a traveacutes de la herencia

Mensajes Son solicitudes para que se lleve a cabo la operacioacuten indicada y se produzca un resultado

Las razones principales para introducir la tecnologiacutea de objetos son los beneficios de dicha tecnologiacutea

Aumento de la fiabilidad Aumento de la productividad del desarrollador Desarrollo maacutes raacutepido Mejor calidad maacutes alta

Incremento en escalabilidad Mejores estructuras de informacioacuten Incremento de adaptabilidad Reduccioacuten del coacutedigo fuente

Mantenimiento maacutes faacutecil y reduccioacuten de costo

Los elementos de reutilizacioacuten son las clases y objetos

25 Lenguaje de Modelado Unificado (UML)

UML (Unified Modeling Language por sus siglas en ingleacutes Lenguaje de Modelado Unificado) es un lenguaje de modelado visual de propoacutesito general que es utilizado para especificar visualizar construir y documentar las partes de un sistema de software El lenguaje estaacute basado en un pequentildeo nuacutemero de conceptos centrales que la mayoriacutea de los desarrolladores de tecnologiacutea orientada a objetos pueden aprender y aplicar faacutecilmente [RUM99]

17

Marco teoacuterico

y UML Pasado Presente y Futuro

L~~ lenguajes de modelado orientado a objetos aparecieron a mediados de 10s 70rsquos Varias teacutecnicas influenciaron estos lenguajes El nuacutemero de lenguajes de modelado incrementoacute desde menos de 10 hasta maacutes de 50 entre 1989 y 1994 Muchos modeladores teniacutean problemas para encontrar un lenguaje de modelado que satisficiera todas sus necesidades Notablemente aparecioacute Boochrsquo93 y la evolucioacuten continuoacute a OMT y Fusioacuten

OOSE (Object-Oriented Software Engineering) estaacute enfocado a la ingenieriacutea de negocios y anaacutelisis de requerimientos dando un excelente soporte orientado a casos de uso OMT-2 es especialmente expresivo para anaacutelisis y sistemas de informacioacuten de datos grandes Boochrsquo93 fue particularmente expresivo para el disentildeo y fases de construccioacuten de proyectos y popular para aplicaciones de ingenieriacutea intensiva

Grady Booch y Jim Rumbaugh iniciaron el desarrollo de UML en 1994 al unificar sus meacutetodos independientes Booch y OMT En 1995 Ivar Jacobson se unioacute a Racional eacutesta unioacuten logroacute que el meacutetodo OOSE se incorporara La unificacioacuten establecioacute que debiacutean activar el modelado de sistemas utilizando conceptos orientados a objeto asiacute como crear un lenguaje usable tanto para las maacutequinas como para los humanos

A

Muchas organizaciones se unieron al consorcio UML y dedicaron recursos al trabajo hacia el fortalecimiento de la definicioacuten de UML Esta colaboracioacuten produjo un lenguaje de modelado expresivo poderoso y generalmente aplicable En la forma actual de UML se espera que sea base de muchas herramientas incluidas las de modelado visual simulacioacuten y ambientes de desarrollo

R UML es abierto y no-propietario y aunque define un lenguaje preciso no es barrera para futuras mejoras en conceptos de modelado Se usan muchas teacutecnicas de punta pero se esperan teacutecnicas adicionales que influencien futuras versiones de UML puede ser extendido sin redefinir el nuacutecleo

c

Mientras el rehuacuteso basado en componentes se ha favorecido ampliamente cada vez mas esto no significa que las teacutecnicas basadas en componentes reemplazaraacuten las teacutecnicas orientadas a objetos Hay solo sutiles diferencias entre la semaacutentica de componentes y clases [ALC03]

Un opaco rendimiento caracterizoacute el mercado de anaacutelisis modelado y disentildeo en el 2000 en su transicioacuten de las viejas herramientas CASE (Computer Aided Software Engineering) a algo maacutes dinaacutemico y mejor adaptado para satisfacer las necesidades de los desarrolladores para el cambio raacutepido en los ambientes de negocio

El mercado de anaacutelisis modelado y disentildeo lograraacute obtener un crecimiento positivo en varios de los siguientes antildeos por varias razones El mercado seraacute manejado principalmente por la necesidad de desarrolladores a obtener aplicaciones para lanzarse al mercado raacutepidamente asiacute tambieacuten por el intereacutes creciente y uso de una nueva especie de herramienta y por el intereacutes creciente de los desarrolladores en usar UML reglas de negocios y adaptadores de componentes para construir aplicaciones [RIKUI]

z -

18

Marco teoacuterico

UML se ha hecho el estaacutendar para los desarrollos de modelado de negocios administracioacuten de requerimientos anaacutelisis y disentildeo programacioacuten y pruebas Los objetivos primarios de UML en el disentildeo [RAT97j

o Dar a los usuarios un lenguaje visual expresivo de modelado listo para usarse para que puedan desarrollar y cambiar los significados de sus modelos

o Suministrar mecanismos de extensibilidad y especializacioacuten para extender los conceptos centrales

o Ser independiente de lenguajes de programacioacuten particulares y procesos de desarrollo

o Impulsar el desarrollo de las herramientas Orientadas a Objeto en el mercado o Soportar conceptos de desarrollo de alto nivel como colaboracioacuten marcos de

componentes reutilizables patrones y componentes o Integrar las mejores praacutecticas

9 El aacutembito de UML

UML es un lenguaje para especificacioacuten construccioacuten visualizacioacuten y documentacioacuten de artefactos de un sistema de software UML es la fusioacuten de los conceptos de Booch OMT y OOSE El resultado es un simple comuacuten y ampliamente usado lenguaje de modelado para usuarios de estos y otros meacutetodos UML se enfoca en un lenguaje de modelado estaacutendar no en un proceso estaacutendar los autores de UML recomiendan un proceso de desarrollo manejado por casos de uso de arquitectura central iterativo e incremental [iiquest4T97l

Para la definicioacuten de sistemas de software en UML se definen diagramas Un diagrama es la representacioacuten graacutefica de un conjunto de elementos este se visualiza la mayoriacutea de las veces como un grafo conexo de nodos (elementos) y arcos (relaciones) Los diagramas se dibujan para visualizar un sistema desde diferentes perspectivas de forma que un diagrama es la proyeccioacuten de un sistema uumlML incluye nueve diagramas [B0099]

4 -

I Diagrama de clases 2 Diagrama de objetos 3 Diagrama de casos de uso 4 Diagrama de secuencias 5 Diagrama de colaboracioacuten 6 Diagrama de estados 7 Diagrama de actividades 8 Diagrama de componentes 9 Diagrama de despliegue

Diagramas de secuencias Un diagrama de secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten comportamiento

Un diagrama de secuencias muestra un conjunto de mensajes acomodados en una secuencia de tiempo eacuteste diagrama muestra la interaccioacuten en un esquema de dos - dimensiones [RUM99]

19

Marco teoacuterico

Y -

Un diagrama de secuencia es un diagrama de interaccioacuten que resalta la ordenacioacuten temporal de los mensajes Un diagrama de secuencia presenta un conjunto de objetos y los mensajes enviados y recibidos por ellos Los objetos suelen ser instancias (con nombre o sin nombres) de clases pero tambieacuten pueden representar instancias de otros elementos tales como colaboraciones componentes y nodos Los diagramas de secuencia se utilizan para describir la vista dinaacutemica de un sistema [B0099]

Usar los diagramas de secuencia es mostrar la secuencia que existe en un caso de uso [RUM 991

Los diagramas de secuencia tienen dos dimensiones Una dimensioacuten que representa el tiempo Otra dimensioacuten que representa los diferentes objetos que participan en la secuencia de eventos requeridos para completar el propoacutesito [MOuuml98]

El principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildea las interacciones de los objetos [DAN02]

20

Capiacutetulo 3

DesawoCCo de Ia herramienta

En este capiacutetulo se describe el desarrollo del Ambiente Visual Se describe el modelo conceptual del sistema la arquitectura asiacute como tambieacuten los elementos que componen la Arquitectura Se estudian los Diagramas de Secuencias de UML y algunos Patrones de Disentildeo de los que se hace uso para el mejor desarrollo del sistema Se describe a detalle la Gramaacutetica Visual Relaciona1 utilizada para el de Ambiente de desarrollo

I CENIOET 1FNTRO DE INFORMACION

Desarrollo de la herramienta

t i i

Actualmente existe en el cenidet un Ambiente Visual de Modelado de Clases llamado InverSOODA este Ambiente Visual tiene la capacidad de realizar la generacioacuten automaacutetica de coacutedigo de las clases en C++ a partir del modelo especificado Ademaacutes se puede realizar la Ingenieria Inversa de un coacutedigo legado para obtener el modelo de clases Aunado a este trabajo existe el Ambiente Visual denominado InverDDVi con el cual se puede realizar el Disentildeo Detallado de los Meacutetodos de las Clases con diagramas de Warnier Asiacute tambieacuten es posible obtener el modelo aplicando la Ingenieriacutea Inversa a un coacutedigo legado en C++

Ambos trabajos son retomados en este proyecto para la automatizacioacuten en la obtencioacuten de los Diagramas de Secuencias de UML La figura 31 muestra el modelo propuesto de ingenieriacutea directa

Extraer informacioacuten del diagrama de

rsquo rsquo

Diagrama de 11 clases I o

detallado de

detallado de

o meacutetodos

i ir---- Construir el

secuencias i

Modelo de Ingenieriacutea I directa automaacutetica

I

Figura 31 Modelo de Ingenieria Directa Autombtica de los Diagramas de Secuencias

Para la construccioacuten automaacutetica de un diagrama de secuencias se toma como base a un diagrama de Clases El modulo ldquoExtraer informacioacuten del diagrama de Clasesrdquo sirve para obtener el nombre y los meacutetodos descritos en cada uno de las clases que existan en el diagrama de Clases

22

Desarrollo de la herramienta

Con base en la informacioacuten que se tiene se abren los archivos correspondientes a los diagramas de Warnier El proceso que se emplea sobre cada uno los diagramas de Warnier llamado ldquoExtraer informacioacuten de los disentildeos detallados de los meacutetodosrdquo sirve para recopilar el conjunto de las llamadas de cada meacutetodo definido

En el siguiente paso (ldquoReconocer llamadas a meacutetodosrdquo) consiste en identificar si los meacutetodos que estaacuten descritos en los diagramas de Warnier tambieacuten lo estaacuten en el diagrama de Clases correspondiente

El paso ldquoConstruir los diagramas de secuencias automaacuteticamenterdquo realiza una validacioacuten de los meacutetodos definidos en los diagramas de Clases con los meacutetodos definidos en los diagramas de Warnier Este paso crea una estructura de datos con la secuencia de las llamadas y la recorre para crear los objetos y los mensajes en el diagrama de secuencias

AI terminar la creacioacuten automaacutetica del diagrama de secuencias se dispone de la r opcioacuten de guardar

31 Disentildeo de la Arquitectura

Para definir los procesos que el sistema va a realizar es necesario llevar a cabo un anaacutelisis de requisitos los cuales pueden ser expresados mediante diagramas de Casos de Uso Los Casos de Uso son una descripcioacuten textual narrativa de los procesos de un sistema

311Requisitos (Diagrama de Casos de uso)

Los casos de uso en realidad no son un artefacto de anaacutelisis orientado a objetos estos describen simplemente procesos y pueden ser igualmente efectivos en un proyecto tecnoloacutegico no orientado a objetos Son usados en un paso preliminar a la descripcioacuten de requerimientos de un sistema [LAR971 La Figura 32 muestra el diagrama de casos de uso que especifica al S3C

9

S3C (Diagramas de Secuencias)

usuario I Modelado de

I

Figura 32 Diagrama de Casos de Uso para el S3C

23

Desarrollo de la herramienta

Descripcioacuten de los Casos de Uso

Caso de Uso ldquoDiagramas de Secuenciasrdquo Se inicia cuando el actor ldquousuariordquo solicita la creacioacuten de un Diagrama de Secuencias Se establece la forma de la construccioacuten automaacutetica de los diagramas de secuencias de UML Se hace uso del Modelado de Clases y del Modelado del disentildeo detallado de los meacutetodos

Escenario de Eacutexito 1 Se obtiene la informacioacuten de las clases del modelado de clases 2 Se obtiene la informacioacuten del modelado del disentildeo detallado de los meacutetodos 3 Se realiza la construccioacuten automaacutetica de los diagramas de secuencias

1 En el modelo de clases no hay informacioacuten o estaacute incompleta 2 En el modelo del disentildeo detallado de los meacutetodos no hay informacioacuten o estaacute

incompleta

Escenario de Falla

Caso de Uso ldquoModelado de Clasesrdquo El diagrama de Clases se utiliza para obtener los nombres de clases y los nombres de los meacutetodos de cada clase

Escenario de Eacutexito 1 Se abre el modelo 2 Se procesa para obtener la informacioacuten de las clases (nombres de clases y nombres

de meacutetodos)

Escenano de Falla h 1 No se puede abrir el modelo J 2 El modelo esta vaciacuteo

Caso de Uso ldquoModelado del Disentildeo detallado 1 los meacutetodosrdquo El disentildeo detallado de los meacutetodos se realiza con diagramas de Warnier aquiacute se establecen las llamadas a funciones dentro del sistema y es aquiacute donde se identifica el dinamismo que se representaraacute en los diagramas de secuencias

Escenario de Eacutexito 1 Se abre el modelo 2 Se realiza la identificacioacuten de las llamadas existentes

Escenario de Falla 1 No se puede abrir el modelo 2 El modelo esta vaciacuteo

24

Desarrollo de la herramienta

Clase Objeto ni I Diagrama I n ____ Nombre Descripcioacuten

i

Mensaje

Tipo

En el Anaacutelisis Orientado a Objetos se crea una especificacioacuteii del dominio del problema y de los requeriinientos desde la perspectiva de una clasificacioacuten por objetos y del entendimiento de los teacuterminos usados en el dominio del problema Una descomposicioacuten del dominio del problema involucra una identificacioacuten de conceptos atributos y asociaciones que son considerados importantes dentro del dominio El resultado puede ser expresado en un Modelo Corzcepttraf el cual es ilustrado en un conjunto de diagramas que definen conceptos (objetos) [LAR97]

312Modelo Conceptual

El modelo conceptual visto en la Figura 33 no es una descripcioacuten de componentes de software representa conceptos en el domino del problema en el mundo Teal [LAR97l

313Diagramas de clases

Por cuestiones dc espacio las clases de la arquitectura del sistema estaraacuten referidas en varios diagramas que de alguna manera estaacuten relacionados entre si

Una de las partes maacutes importantes del Ambiente Visual S3C es la estructura de clases ltCCraJicogt la cual se refiere al control de los diagramas eacutesta por su naturaleza podriacutea considerarse el nuacutecleo del sistema La manipulacioacuten y control de los diagramas estaacute definido en una estructura de clases organizada con el patroacuten de disentildeo Composite que se muestra en la Figura 34

25

Desarrollo de la herramienta

CRecursividadDS CMensajeDS CObjetoDS CDiagramaDS

I Cvisitor I

CApuntadorDS CDblClickDS CAsocAdjusterDS CSelectorDS

26

Desarrollo de la herramienta

n 32 Elementos de la arquitectura

Es necesario describir los elementos que dan soporte a la arquitectura del ambiente donde se implementaraacute el sistema en este caso Microsoft Visual (MV) C++ 6 El MV C++ es un marco de aplicacioacuten poderoso basado en Windows se integran ademaacutes del lenguaje C++ (compilador y enlazador) el programa de desarrollo de programas en lenguaje C para Windows (SDK) la Microsoft Foundation Class Library AppWizzard Classwizard AppStudio y WorkBencli

La Microsoft Foundation Class Library comprende una biblioteca de clases de C++ y es considerada como el nuacutecleo del MV C++

321Microsoft Foundation Class (MFC)

La libreriacutea Microsoft Foundation Class (MFC) es una interfaz orientada a objetos que tiene las siguientes metas de disentildeo

o

Reduccioacuten significante de esfuerzo al escribir una aplicacioacuten para Windows Velocidad de ejecucioacuten comparable a las APIrsquos del lenguaje C Miacutenimo tamantildeo de coacutedigo Capacidad para llamar cualquier funcioacuten de Windows en C directamente Faacutecil conversioacuten de aplicaciones existentes en C a C++ Faacutecil uso de APIrsquos de Windows con C++ como con C Faacutecil uso de complicadas caracteriacutesticas de abstracciones poderosas como ActiveX soporte para base de datos impresioacuten barras de herramientas y barras de estado El API de Windows en C++ si usa tan efectivamente como las caracteriacutesticas mismas del lenguaje C++

La mayoriacutea de las clases de la Libreriacutea de la Microsoft Foundation Class son derivadas de una clase base ltCObjectgt que es la raiacutez de la jerarquiacutea de clases ltCObjectgt da uacutetiles capacidades a las clases que derivan de ella

La jerarquiacutea que existe en las clases derivadas de ltCObjectgt es la siguiente

Arquitectura de Aplicacioacuten Excepciones Servicios de Archivos Arreglos Listas Mapas Servicios de Internet Sockets Sincronizacioacuten Soporte para base de datos D A 0

27

Desarrollo de la herramienta

i

r

Liacutenea de Comandos Menuacute Dibujo Graacutefico Dibujo Graacutefico de Objetos Soporte de Control Soporte de Ventanas

Soporte para base de datos ODBC

o Marco de Ventanas o Barras de control o Hojas de propiedades o Cajas de Dialogo o Vistas o Controles

322Arquitectura Documento Vista

Por defecto las aplicaciones creadas con la MFC usan un modelo de aplicacioacuten que separa los datos del programa de las vistas de interaccioacuten con el usuario En eacuteste modelo un objeto documento de MFC lee y escribe datos en un almacenamiento persistente Un objeto vista administra el despliegue de datos suministrando al usuario los datos para ser seleccionados o editados La vista le comunica al documento cualquier cambio en los datos La razoacuten maacutes conveniente para seguir este modelo es cuando se necesita muacuteltiples vistas del mismo documento (como en una hoja de caacutelculo y un graacutefico)

La arquitectura documentovista hace faacutecil el soporte de muacuteltiples vistas y muacuteltiples tipos de documentos asiacute como la divisioacuten de ventanas y otras caracteriacutesticas de interfaz de usuario Pero el corazoacuten de la arquitectura son cuatro clases (Mostradas en el aacuterbol de clases de la Figura 36)

ltCDocumerrtgt (o ltCOleDocuinentgt) - Se instancia un objeto de este tipo para almacenar y controlar los datos del programa ltCViewgt (o una de sus clases derivadas ltCScrotlViewgt ltCFormViewgt ltCEditView ltCRecordViewgt ltCDaoRecordView ltCtreeViewgt ltCListViewgt b ltCrichEditViewgt) - Un objeto es usado para desplegar los datos y administrar la interaccioacuten del usuario con los datos ltCFrameWndgt (o una de sus variantes) - Establece el marco sobre el que trabajaraacuten una o mas vistas de un documento ltCDocTemolategt (o ltCSingIeDocTemplategt o ltCMultiDocTemplategt) - Coordina la existencia de uno o maacutes documentos de un tipo dado y administra la correcta creacioacuten de los documentos vistas y objetos ventanas para cada tipo

i

28

Desarrollo de la herramienta

______________ 2 Wiew

I - - __ - ------a ________________

323Integrando Ambientes en Visual C t t

Las aplicaciones de Interfaz de Documento Uacutenico (SDI) soporta muacuteltiples tipos de documentos pero este soporte es para un solo objeto documento Debido a esta restriccioacuten y aunado a la necesidad de tener varios objetos documentos a la vez se determina la utilizacioacuten del modelo Interfaz de Muacuteltiples Documentos (MDI) indicado en la Figura 37

324Interfaz de Muacuteltiples Documentos (MDI)

Una aplicacioacuten de Interfaz de Muacuteltiples Documento (MDI) permite la creacioacuten de plantillas para el manejo de los documentos eacutesta plantilla tiene la forma

rn-pDocTemplate = new CMultiDocTernplate ( I DR-SCUMLTY PE RUNTIME-CLASS (CSCUMLDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CTheView))

AddDocTernplate ( rn-pDocTemplate )

Cada plantilla describe una relacion del tipo de documento con la vista asociada La definicioacuten de la plantilla para el ambiente que controla los diagramas de secuencias es la siguiente

29

Desarrollo de la herramienta c

m-pTernplateSeqDlag = new CMultiDocTernplate ( IDR-DS-SJCTYPE RUNTIME-CLASS (CSeqDiagDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CSeqDiagView) )

AddDocTernplate( rn-pTernplateSeqDiag )

Esta plantilla hace uso de la clase CCliildFrame que por defecto el ambiente Visual C++ construye y esto es debido a que no se requieren caracteriacutesticas extras en las ventanas de las que proporciona dicha clasc En un caso en el que se requiriera un comportamiento diferente de la vista tendriacutea que crearse una nueva clase con las caracteriacutesticas deseadas

Vista Documento

Vista

I- Vista Documento I [ Tip- F Vista

L Figura 37 Modelo Interfaz de Muacuteltiples Documentos (MDI)

Para integrar otro Ambiente que utilice otro tipo de documento es necesario definir otra plantilla de la misma forma mencionada Debe tomarse en cuenta los siguientes puntos

Es necesario definir el nombre (mqTemplateNOMBRE) El IDR del tipo que se requiere que sea el documento En la primera liacutenea RUNTIME CLASS debe indicar la clase ltCDocumentgt que desea La segunda liacutenea RUNTIME-CLASS soacutelo la cambia a otra clase si requiere de otro manipulador de ventanas de lo contrario deje que ltCChildFramegt se haga cargo

-

30

Desarrollo de la herramienta

En la uacuteltima liacutenea referente a RUNTIME-CLASS se debe indicar la clase ltCViewgt que desea usar Para finalizar se usa la instruccioacuten AddDocTernplate para finalizar la definicioacuten del template (mgTemplateNOMBRE)

325 Recursos Diaacutelogos Mertuacutes y Barras de Herrattriertias

Son varios los recursos con los que se puede contar al crear un proyecto en Microsoft Visual C++ Los diaacutelogos son un recurso disponible que son utilizados para visualizar ingresar yo modificar informacioacuten que se requiera En el Ambiente Visual que se desarrolla son varios los diaacutelogos que se utilizaraacuten y eacutestos se describen a continuacioacuten

El Diaacutelogo ldquoCaracteriacutesticas del Obietordquo (Figura 38) identifica el nombre del Objeto y la descripcioacuten del mismo Este diaacutelogo se muestra cuando se presiona doble clic sobre un objeto del diagrama

I Nombre

Desciipcion

Figura 38 Dialogo Caracteriacutesticas del Objeto

El Diaacutelogo ldquoMensaierdquo (Figura 39) muestra el nombre del mensaje que puede ser modificado ademaacutes se visualizan el Identificador del Mensaje el tipo de Mensaje asiacute tambieacuten el origen y destino del mensaje

31

Desarrollo de la herramienta

Nornbie delMensaje Edit

IDentificador del Mensaje Edil Tipo de Mensaje (Edil

Edit Objeto Origen

Objeto Destino IEdit

i25El A Figura 39 Dialogo Mensaje

El menuacute es otro de los recursos del que se puede disponer para organizar el ambiente que se estaacute creando Para eacuteste caso en particular no se hizo modificaciones al menuacute estaacutendar (Figura 310) que Visual C++ presenta Los cambios significativos son el manejo del tipo de documento para los Diagramas de Secuencias

Archivo Editar Yer VenLana AyGda

Figura 310 Menuacute de los Diagramas de Secuencias (estaacutendar)

Otro importante recurso del que uno se puede valer en Visual C++ es la barra de herramienta personalizada la cuaacutel es construida en el Editor de Recursos Se ha construido una barra (Figura 311) con los elementos graacuteficos de los Diagramas de Secuencia de UML

Figura 311 Barra de Herramientas de los Diagramas de Secuencias

Es recomendable que al utilizar barras de herramienta personalizada se defina en el tamantildeo estaacutendar ya que puede experimentar problemas al momento de ejecutar la aplicacioacuten

Ademaacutes puede usar la propiedad TBBS-CHECKGROUP en una barra de herramientas para establecer que los botones puedan quedar presionados hasta que un botoacuten diferente sea presionado No olvide que la numeracioacuten inicia con cero ( O )

vuriableToolBurSetButtonStyle(OTBBSCHECKGROUP)

32

Desarrollo de la herramienta

Prefijo ID IDC IDD IDP IDR IDS

326 Notacioacuten estaacutendar

Los nombres descriptivos de los recursos se asocian a un valor uacutenico Para una mayor claridad eacutestos nombres mantienen un prefijo que describe el tipo de recurso asociado (vea la Tabla 31) [MIC99]

Tipo de Recurso Comandos de Menuacute Controles y recursos Cuadros de diaacutelogo Cadenas de solicitud para cuadros de mensaje Menuacute principal barras de herramienta tabla aceleradora y el icono Cadenas

IDR IDD IDC ID

200 - 299 3000 - 3999 34000 - 34999

Estos son los rangos de valores establecidos para el proyecto S3C Si se utiliza el coacutedigo fuente y se planea agregar otro proyecto verifisue que no se invadan estos nuacutemeros para evitar problemas

Para facilitar auacuten maacutes los trabajos futuros se ha definido una estructura de carpetas (ver Figura 312) para incluir en cada una las Clases correspondientes a cada tesis en desarrollo

33

Desarrollo de la herramienta

ill ~~ -

-I SCUML classes + U A N T L R + U App + 0 ClassDiagrams + 0 Common + a Java

t $2 SequenceDiagiams

+ WarnierDiagrams

iJ PackageDiagrams

12 StaterChartDiagrams

+

- f Classview I Resourceview 1 FileView ]

~ ~

Figura 312 Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)

327Estructura de datos persistencia y recuperacioacuten

Existe una gran cantidad de tipos de datos estructuras clases y meacutetodos de los que se puede hacer uso para una mejor y maacutes faacutecil obtencioacuten de los resultados A continuacioacuten hago comentarios en tipos de datos y meacutetodos en los que podriacutea tener problemas

CTypedPtrList

AI usar este tipo de dato o alguno relacionado que le permita utilizar el meacutetodo ltCTvrgtedPtrListGetNextgt tenga especial precaucioacuten al usarlo ya que al devolver el valor requerido la variable POSITION usada no se queda apuntando a ese valor en particular salta al inmediato siguiente de la lista

Si se realiza una creacioacuten dinaacutemica con punteros para los elementos de una CTypedPtrList Despueacutes de haberlo agregado a la lista evite el delete para borrar esta Usted deseando liberar la memoria no lo haga ya que eliminara directamente el elemento de la lista

POSITION

Es un valor usado para denotar una posicioacuten de un elemento en una coleccioacuten Pero CUIDADO no se refiere a un iacutendice es una referencia (no consecutiva) de punteros muy diferente a un iacutendice

CString

Auacuten cuando el operador de comparacioacuten == (igual a) es permitido para ser utilizado en las cadenas evite su uso ya que en ocasiones aunque cuando la e

34

Desarrollo de la herramienta

compilacioacuten no indique error alguno en la ejecucioacuten no realizaraacute lo que se necesita Recomiendo que utilice CStringCompare ()

Para eliminar el contenido de un CString utilice CStringEmpty() ya que asignar a la cadena un ldquonrdquo podriacutea causarle problemas

Serializacioacuten

Una forma en que se puede guardar informacioacuten y recuperarla de manera eficaz es mediante la serializacioacuten de objetos La serializacioacuten es un proceso que permite escribir un objeto en un archivo y tambieacuten leerlo

Para que la serializacioacuten se lleve a cabo son necesarios tres objetos un objeto de tipo ltCFilegt que represente el archivo un objeto de tipo ltCArchivegt que ofrece el entorno para la serializacioacuten y la clase del objeto a ser serializado debe ser heredada de ltCObjectgt y sobrescribir el meacutetodo ltSerializegt para que se encuentre de tal forma en que pueda ser serializado (vea la Figura 313)

Objeto a ser serializado 1

1 CArchive

[f --=I- ---7 Archivoexi

u Figura 313 Serializacioacuten

328Patrones de disentildeo utilizados

Se ha planteado la definicioacuten de una arquitectura de clases utilizando patrones de disentildeo debido a que algunos de ellos hacen maacutes faacutecil la extensioacuten de la funcionalidad y mantenimiento

35

Desarrollo de la herramienta

El patroacuten Composite es utilizado para crear de manera uniforme el diagrama sobre el que se trabaja (ver Figura 34) manteniendo una jerarquiacutea de clases uniforme las clases maacutes bajas en la jerarquiacutea definen primitivas de objetos graacuteficos

Se aplica el patroacuten de disentildeo Iterator para hacer recorridos en listas de objetos para realizar diversas operaciones Otro patroacuten de disentildeo del que se hace uso es el Visilor (ver Figura 35)

Para otras actividades que se realizan podriacutea pensarse en que se deberiacutean aplicar otros patrones pero se han evitado algunos (como el patroacuten de disentildeo Builder) para evitar incrementar la complejidad en la arquitectura ya que ai mantener el modelo de la MFC de documentovista la funcionalidad del patroacuten de disentildeo Builder es faacutecilmente reemplazado si se hiciera Uso de eacuteste se aumentariacutea la complejidad excesivamente (nos llevariacutea a perdemos en ocasiones en el paso de mensajes entre clases) dantildeando la facilidad de la arquitectura

33 Diagrama de secuencias

Un Diagrama de Secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten escenario Oacute comportamiento se usan para definir el curso loacutegico de accioacuten de un posible camino a seguir en la resolucioacuten de un problema Seguacuten John Daniels [DANO2] ldquoel principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildean las interacciones de los objetosrdquo

Los Diagramas de Secuencias se utilizan en el modelado de la implementacioacuten de sistemas de software ademaacutes son aplicables en el modelado de requisitos para establecer las comunicaciones existentes entre actores yo clases del sistema Con eacutestos diagramas se logran hacer descripciones de los escenarios y los comportamientos del sistema Con los Diagramas de Secuencias es posible definir protocolos de comunicacioacuten con paso de mensajes ya que dan esa flexibilidad que se requiere Ademaacutes los Diagramas de Secuencias contienen informacioacuten suficiente para que puedan ser transformados a los diagramas de colaboracioacuten [RUM Ol][BOO Oil

331Ciclo de vida del software

Considerando cualquier modelo de ciclo de vida del software (en la figura 314 se muestra el Modelo de cascada) el aacutembito directo de eacuteste Ambiente Visual es en el disentildeo aunque tiene sus vertientes en la codificacioacuten y mantenimiento

36

Desarrollo de la herramienta

Diseno

Codificacibn

I I I I Mantenimiento I

igura 314 Modelo de cascada del ciclo de vida del software

34 Elementos atoacutemicos de la Gramaacutetica

Definicioacuten de los elementos atoacutemicos del lenguaje y su contenido

1 Actor- Representa roles de entidad externos al sistema con el que interactuacutea directamente Los actores pueden ser humanos dispositivos u otros sistemas

2 ClaseObjeto- Determina una Clase u Objeto participante en la interaccioacuten

3 Mensaje-Es una comunicacioacuten entre objetos que contiene informacioacuten Eacuteste se representa con la finalidad a que una accioacuten sea llevada a cabo

4 Mensaje con tiempo- Tiene la misma finalidad que el mensaje la diferencia es que con eacutel se representa un atributo de tiempo

5 Mensaje asiacutencrono Es un mensaje que ocurre en el tiempo de manera independiente a otros mensajes

6 Mensaje de destruccioacuten de objeto- Es un mensaje cuya finalidad es indicar la destruccioacuten del objeto destino

7 Mensaje de creacioacuten de objeto- Es un mensaje que indica la creacioacuten de un objeto

8 Llamada al mismo objeto (Recursividad)- Es usado para modelar llamadas recursivas en el que una operacioacuten es invocada por el mismo objeto

37

Desarrollo de la herramienta

9 Destruccioacuten del objeto (AutodestrucciOacuten)- Puede o no modelarse es representada con una X al final de la liacutenea de vida del objeto

Elementos aulomaacuteticos

1 Liacutenea de Vida- Representa la vida del objeto durante la interaccioacuten

2 Activacioacuten- Muestra el periacuteodo de tiempo en el cual el objeto alguna operacioacuten

341RepresentaciOacuten visual

Representacioacuten visual de los elementos atoacutemicos del lenguaje

Actor

_- A

Mensaje

Mensaje de Creacioacuten de

Objeto

ClaseObjeto

I

Mensaje de retorno

Mensaje de Destruccioacuten de

Objeto

abla 32 Element(

Activacioacuten

Mensaje con tiempo

Autodestruccioacuten

x

atoacutemicos del lengi

taacute realizz

Texto ===I (letra)+ (letra I

numero) letra= AZ I az numero = 09

I

Recursividad ~

I

i j e

io

38

u

Comentario

iexcl

Conector de Comentario

35 Gramaacutetica desarrollada

La gramaacutetica que se propone es una gramaacutetica visual del tipo relacional Una gramaacutetica relacional pertenece a las gramaacuteticas libres de contexto es una 6-iupla G (N C S R Attr P) donde

N es un conjunto finito de siacutembolos no terminales C es un conjunto de siacutembolos terminales S es un siacutembolo distinguido en N llamado siacutembolo inicial R es un conjunto finito de siacutembolos de relacioacuten Attr es un conjunto finito de siacutembolos de atributos P es un conjunto de producciones

Entonces definiendo nuestra gramaacutetica G (N C S R Attr P)

N = Diagrama GrupoClaseObjeto

S = Diagrama

R = mensaje mensajeTiempo mensajeRetomo mensajeAsincrono mensajecrea mensajeDestruye autodestruccioacuten recursividad

R

Attr = entrada salida entradacrea

39

Desarrollo de la herramienta

Definiendo la posicioacuten de los atributos en los elementos visuales

entradacrea ObetaClase

entrada

salida

P =

Diagrama I GrupoClaseObjeto (mensaje (mensajeRetorno

(salida 1) (entrada 2) ) (salida 2) (entrada 1) )

- Diagrama 0 GrupoClaseObjeto

(mensaje (mensaje (mensajeRetomo (mensajeRetomo (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entradacrea 2) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 1) ) (salida 1) (entrada 1) )

entrada

salida

40

Desarrollo de la herramienta

s

-

GrupoClaseObjeto - 1 1 I 2 (mensaje (mensaje (mensajeRetorno (mensajeRetorno (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entradacrea 2) ) (salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 1) ) (salida I ) (entrada I ) )

1 En las gramaacuteticas relacionales una produccioacuten estaacute acompantildeada de las posibles

relaciones que puedan generarse En la primera produccioacuten Diagrama produce a un Actor seguida de un GrupoClaseObjeto el Actor inicia la interaccioacuten con un mensaje y recibe el mensaje de retorno al finalizar la interaccioacuten La segunda y tercera produccioacuten son similares debido a que un GrupoClaseObjeto contiene dos ClaseObjeto que se relacionan de la misma forma

Existe un elemento de la gramaacutetica llamado Attr (Atributo) el cual define la parte de los elementos visuales donde se establecen las relaciones Se han determinado dos atributos (entrada y salida) que para nuestro propoacutesito estaraacuten establecidos en la liacutenea de vida de cada elemento visual (Actor y ClaseObjeto)

Los Comentarios y la Activacioacuten no se consideran en la gramaacutetica Los comentarios son libres de incluirse y relacionarse con cualquier elemento y relacioacuten mencionada anteriormente y la activacioacuten existe siempre que se presente un mensaje (o podriacutea omitirse) Estas consideraciones se realizaron para hacer auacuten maacutes faacutecil la gramaacutetica ya que si se trata de realizar un sistema las restricciones de estos elementos pueden mantenerse en el lenguaje de programacioacuten en el que se desarrolle el sistema

36

Precondiciones

El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias

1 El diagrama de Clases debe existir y estar completo 2 Debe existir un archivo con un diagrama de Warnier por cada diagrama de Clases y

con el mismo nombre de archivo (excepto la extensioacuten del archivo) 3 En el uacutenico diagrama de Warnier de cada Clase se deben modelar todos los meacutetodos

de la Clase 4 No realizar declaraciones de meacutetodos

41

Desarrollo de la herramienta

5 Debe existir un meacutetodo lsquomain()rsquo en el diagrama de Clases

Restricciones

Los meacutetodos deben mantener nombres distintos en las diferentes Clases

Metodologiacutea para la obtencioacuten automaacutetica de los Diagramas de Secuencias

1 Seleccionar el diagrama de Clases

2 Se construye una lista con los nombres de las Clases y los Meacutetodos

3 Se verifica si exista el meacutetodo lsquomain()rsquo en alguna Clase Se busca la existencia de una uacutenica Clase

a La Clase que contenga lsquomain()rsquo se va al inicio de la lista de Clases

b Si no existe lsquomain()rsquo SE TERMINA EL PROCESO

4 Se verifica la existencia de los archivos que contienen el Disentildeo Detallado de los meacutetodos en Wamier para cada una de las Clases si alguno falta SE TERMINA EL PROCESO

5 Se procesa cada uno de los modelos del Disentildeo Detallado de los Meacutetodos generando una lista de secuencias de llamadas por cada uno de los meacutetodos

6 Se verifica que cada llamada corresponda a alguacuten meacutetodo existente (del diagrama de Clases) De no existir ese meacutetodo la llamada entra a una estructura que

7 Se crea una lista de secuencia

a Se inicia con lsquomain()rsquo b Se recorre cada una de las llamadas de los meacutetodos c Se considera invaacutelido el caso de que un meacutetodo intente una llamada

recursiva al meacutetodo lsquomain()rsquo

8 Se muestra un diaacutelogo de resultados en el que se indican las llamadas que no se encnotraron definidas y que pueden ser Llamada a libreriacutea oacute Llamada Erroacutenea

42

Capiacutetulo 4

Prue6as y su6taaacuteos

En eacuteste capiacutetulo se da a conocer el detalle de las pruebas y de los resultados obtenidos Se describen los casos de prueba con los que se realizoacute la evaluacioacuten del sistema asiacute tambieacuten se presentan comentarios acerca de los resultados obtenidos

Pruebas y Resultados

41 Recursos teacutecnicos utilizados

Para llevar a cabo las pruebas al sistema S3C se utilizaron los siguientes equipos de Coacutemputo

Computadora de escritorio

256MB RAM Disco Duro 80G Monitor 17rdquo SAMSUNG

AMD Athlon XP 1600+ I4Ghz

Computadora de escritorio Intel Pentium 4 - 128MB RAM Disco Duro 40G Monitor 15rdquo i -

42 Descripcioacuten del plan de pruebas

Las pruebas establecen el Uacuteltimo paso desde donde es posible evaluar la calidad y descubrir los errores Las pruebas y la validacioacuten del software se utilizan para comprobar que el sistema cumple con las expectativas del usuario

En esta seccioacuten se describen los casos de prueba que se realizaron al prototipo de S3C en conjunto a la suite cenidet-UML Para cada uno de los casos se presenta el objetivo el procedimiento que se siguioacute para la prueba y se muestran los resultados obtenidos - _

Las pruebas a realizar son los siguientes

Caso 1 Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Caso 2 Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Wamier

Caso3 Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Wamier

Caso4 Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo 5

44

Pruebas y Resultados

43 Resultados

431 Caso 1

5 Y

IZ =

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoSirdquo 4 Seleccionar el archivo ldquoVENTASrdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 41 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

s3c iuevo Proyecto SCUM1

Diagrama de clases

lvendedor I L

3

salida

venta prod

4 venia-oferta vcntaprod =

salida 6

Figura 41 Resultado del caso de prueba 1

45

Pruebas y Resultados

432 Caso 2

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Warnier (almacenwar cajawar vendedorwar) que ya cxisten (del caso de prueba I )

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoNordquo 4 Agregar las siguientes Clases con los respectivos meacutetodos y atributos

a Claseldquovendedorrdquo Meacutetodos ldquoventa mainrdquo b Claseldquoalmacenrdquo Meacutetodos ldquoentrada salidardquo c Claseldquocajardquo Meacutetodos ldquoventagrodrdquo

5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 42 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

Diagrama de daseo lisgrama dcsccucncis

MOIDOC Anivo

venta prod

salida

1 Ycrdquo1a 2

I 4 vcrdquolD~o1cn venta prod gt

salida 6 i Figura 42 Resultado del caso de prueba 2

46

Pruebas y Resultados

r

433 Caso 3

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Warnier

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 43 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

5

Error al tratar de abrir el archivo A bZwar

Aceptar i

Faltan Archivos de Disentildeos Detallados de Meacutetodos 1 1 A No se puede crear el diagrama de secuencias

Figura 43 Resultado del caso de prueba 3

47

Pruebas y Resultados

434 Caso 4

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 44 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

lsquo I

~ _ i i _ l _ Repaado ~~ ~ ~ 6~ ampA Figura 44 Resultado del caso de prueba 4

48

Pruebas y Resultados

PRUEBA DESCNPCION CASO 1 Mostrar la funcionalidad del

Sistema S3C a partir de un

44 Anaacutelisis de Resultados

RESULTADOS Se comproboacute la correcta funcionalidad del Sistema S3C a partir de un diagrama

CASO 3

CASO4

I diagrama de Clases cxistcnte I de Clases existente CASO 2 I Mostrar la funcionalidad del I Sc comproboacute la corrccta funcionalidad

Sistema S3C a partir de un del Sistema S3C a partir de un diagrama diagrama de Clases que se de Clases que se construye al momento construye al momento Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el Secuencias si falta alguno de los diagrama de Secuencia si falta alguno diagramas de Warnier Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el secuencias si hace falta el meacutetodo diagrama de Secuencias al faltar el ldquomain ()rdquo meacutetodo ldquomain()rdquo

de los diagramas de Warnier

Los resultados obtenidos de cada uno de los casos establecidos demuestran que se validoacute la funcionalidad del prototipo con los requisitos definidos en el alcance de este proyecto

a lt

49

Conclusiones y Tru6ajos Futuros

Aquiacute se dan a conocer las conclusiones y se describen los posibles trabajos futuros para la continuacioacuten de eacuteste proyecto

F

51 Conclusiones

Conclusiones y trabajos futuros

Se ha creado un Ambiente Visual que permite obtener de forma automaacutetica los Diagramas de Secuencias en base a los diagramas de Clases y al disentildeo detallado de los meacutetodos descritos con diagramas de Warnier cumpliendo con los objetivos planteados para este trabajo

La tesis aporta principalmente La generacioacuten automaacutetica de los diagramas de secuencias y la eliminacioacuten de inconsistencias al mantener una validacioacuten directa de los diagramas de clases y los diagramas de Warnier que son utilizados

Esta validacioacuten es lograda a traveacutes del uso de la gramaacutetica visual relaciona1 que se ha definido (veacutease el capiacutetulo 3) Esta gramaacutetica visual establece reglas para la correcta construccioacuten de los diagramas de secuencias

P De esta manera se establece que la hipoacutetesis ldquoEs posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodosrdquo Es verdadera

52 Trabajos Futuros

Un Diagrama de Secuencias puede convertirse en un Diagrama de Colaboracioacuten por lo tanto un trabajo futuro es la construccioacuten automaacutetica de un Diagrama de Colaboracioacuten a partir de uno de Secuencias existente

Es posible calcular la meacutetrica de acoplamiento al tener un Diagrama de Secuencias construido

La Ingenieriacutea directa de un Diagrama de Secuencias estableciendo la validacioacuten en la construccioacuten de todos los elementos visuales que UML define

La propagacioacuten de las modificaciones de un Diagrama de Secuencias a los Diagramas de Clases y los Diagramas de Warnier

La modificacioacuten del coacutedigo fuente mediante los cambios establecidos en un Diagrama de Secuencias

51

[ALC03]

[BLA98]

[B0099]

[BOOOi]

[BR097]

[CHA90]

[DAN02]

[GLA02]

[HAC98]

[HER03]

4

Alcate1 Computer Associates International inc Electronic Data Systems Corporation Hewlett-Packard Company IBM Corporation I-Logix IntelliCorp Kabira Technologies Kennedy Carter Microsoft Corporation Object Management Group Oracle Corporation Project Technology Ptech Inc Rational Software Corporation Reich Technologies Softeam Taskon A S Telelogic Unisys Corporation ldquoOMG Unified Modeling Language Specificationrdquo Version 15 Unified Modeling Language 2003

Blaha Michael Rumbaugh James Premerlani William Eddy Frederick Lorensen William ldquoObject-oriented modeling and designrdquo Prentice Hall 484 Paacuteginas ISBN 0-13-629841-9 QA-769-03S-B53-19981998

Booch Grady Rumbaugh James Jacobson Ivar ldquoEl lenguaje unificado de modeladordquo Addison Wesley 432 Paacuteginas ISBN 84-7829-028-1 1999

Booch Grady Rumbaugh James Jacobson Ivar ldquoThe Unified Modeling Language User Guiderdquo Addison Wesley 2001

Brown David ldquoAn introduction to object-oriented analysis objects in plain Englishrdquo John Whiley amp Sons Inc 700 Paginas ISBN 0-471-1 1028-0 QA-769-035-B76-1997 1997

Chang Shi-Kuo ldquoVisual Languages and visual programmingrdquo Plenum Press 340 Paacuteginas ISBN 0-306-43428-8 QA-7665-V57-1990 1990

Daniels John ldquoModeling with a sense of purposerdquo Design - IEEE Software JanuaryEebmary 2002

Glasgow Universidad Reino Unido ldquoA UML Editor in Javardquo (lthttplstudentsdcsglaacuWstudentspainjfproject-reportproject-re port-htmV4thYearReporthtrnlgt 2002)

T Hackos JoAnn C Redish Janice ldquoUser and Task Analysis for Interface Designrdquo Wiley Computer Publishing 488 Paacuteginas ISBN QA-769-U83- H33-1998 1998

Hemaacutendez Velaacutezquez M ldquoIngenieriacutea inversa de coacutedigo fuente en C++ para la obtencioacuten de su disentildeordquo Tesis AT-379 (03-0334) 2003

Conceptos generales

[HIX93]

[JAC93]

[JAC99]

[JOY98]

[LAR97]

[MAR]

[MIC99]

[MIC02]

[MOU98]

Hix Deborah Hartson H Rex ldquoDeveloping user interfacesrdquo 381 Paacuteginas ISBN 0-471-57813-4 QA-769-U83-H59-1993 1993

Jacobson Ivar Christerson Magnus Jonsson Patrik Overgaard Gunnar ldquoObject oriented software engineeringrdquo Addison Wesley ISBN 0-20 1 - 54435-0 QA-7676-D47-J63-1993 1993

Jacobson Ivar Booch Grady Rumbaugh James ldquoEl proceso unificado de desarrollo de softwarerdquo Addison Wesley 438 Paacuteginas ISBN 84-7829-036- 2 1999

Joyanes Aguilar Luis ldquoProgramacioacuten orientada a objetosrdquo McGruw Hill ISBN 84-481-0590-7 1998

Larman Craig ldquoAplying UML and Patternsrdquo Prentice Hull 507 Paacuteginas ISBN 0-13-748880-7 QA-769-035-L37-1997 1997

Marriot Kim Meyer Bemd ldquoVisual Language Theoryrdquo Springer 381 Paacuteginas P-935-V567-1998 1998

Microsoft ldquoMicrosoft Visual C++ 6 manual del programadorrdquo McGraw Hill ISBN 84-481-2127-9 QA-7673-Cl53-23718-1999 1999

Microsoft ldquoVisiordquo (lthttpwwwmicrosoftcomofficevisiogt 2002)

B Mourao Luis X ldquoUniversal Modeling Language Part 11 UML Notation - Case Sequence and Collaboration Diagramsrdquo Lan Times Magazine (~httpwwwlantimescomltpartsdiscussdiscuss6Ohtm~) 1998

No Magic ldquoMagicDrawrdquo (lthttpwwwmagicdrawcomgt 2002)

Object Insight ldquoJvisionrdquo (lthttpwwwobject-insightcomgt 2002)

Rational Software Microsoft I Hewlett-Packard Oracle Sterling Software MCI Systemhouse Unisys ICON Computing IntelliCorp i-Logix IBM ObjectTime Platinum Technology Ptech Taskon Reich Technologies Sofieam ldquoUML Summaryrdquo Version 11 Unified Modeling Language 1997

Rational ldquoRational Roserdquo (lthttpwwwrationalcomproductosrosegt 2002)

Rikki Kirzner ldquoAnalysis Modeling and Design Tools Market Forecast and Analysis 2001-2005rdquo Bulletin Published Under Services Application Design and Construction Tools Application Development and Deployment Strategies Documento Nuacutemero 24809 Junio 2001

53

Conceptos generales

[RIM92] Rimrner Steve ldquoGraphical user interface programmingrdquo 423 Paacuteginas

1992

Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language reference manualrdquo Addison Wesley 550 Paacuteginas ISBN 0-201-

ISBN 0-8306-2475-9 ISBN 0-8306-2472-4 (pbk) QA-769-083-R55G

[RUM99]

30998-X QA-7676-D47-R85-1999 1999

[RUM299] Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language user guiderdquo Addisoiz Wesley 482 Paacuteginas ISBN 0-201 -57 168-4 QA-7676-D47-B66-1999 1999

[SMA02] SmartDraw ldquoSmartDrawrdquo (lthttpwwwsmartdrawcomgt 2002)

[SHU88] 9 - Shu Nun C ldquoVisual Programmingrdquo Van Nostrand Reinhold ISBN 0-422- 28014-9 ISBN 0-422-01 164-4 QA-7665-S55 1988

[THI90] Thimbleby Harold ldquoUser Interface Designrdquo Acm press 470 Paacuteginas ISBN 0-201 -41 61 8-2 QA-769U83-T772~- 1990 1990

[WENO2] Wences Diaz MF ldquoModelo de Ingenieriacutea Inversa para la obtencioacuten de disentildeo detallado basado en LEVISSrdquo Tesis (02-0014) 2002

54

Anexo A

Conampuracioacuten de Microsoft Vkua[C++ 6 O

Este anexo indica las configuraciones que se utilizaron para la compilacioacuten de SCUML y s3c

Configuracioacuten de Microsoft Visual c++ 60

Debido a la integracioacuten de los proyectos de InverSOODA e InverDDVi con S3C se cumplioacute con los requisitos previos de ambos proyectos

El compilador usado en el proyecto fue el Microsoft Visual C++ 60

Para el cumplimiento con la funcionalidad de InverSOODA se instaloacute el ANTLR la versioacuten 271 Se descargoacute del sitio l i l l ~ ~ ~ ~ ~ ~ t l ~ l ~ - ~ t - ~ la versioacuten mencionada en un archivo comprimido (en formato zip) Se colocoacute el paquete descomprimido en el directorio ldquoDIANTLR-271 I rdquo

Recomiendo ampliamente que el directorio principal de ANTLR se copie en el directorio raiacutez de cualquier unidad de disco debido a que experimenteacute problemas de compilacioacuten cuando ANTLR no se encontraba en el directorio raiacutez

Io015

Source Browser AlttF12 I u c Ersquo V I

Visual Component Mgnager

- - ~ ~ ~ ~~

P2 Registrar control

A Contenedor de prueba de controles ActiveX

A Usor de objetos OLE y COM

Buacutesqueda de errores

A Y++ MFC Iracer

Customize options

~ - q- ~ Macro

Eecord Quick Macro Cbl+ShiR+R Pay Quick Macro Ctrl+ShiR+P

En el menuacute Tools (Herramientas) seleccione el sub-menuacute Options ltopcionesgt

56

Configuracioacuten de Microsoft Visual C++ 60

En la siguiente ventana de diaacutelogo debe agregar la direccioacuten en donde se encuentra el ANTLR

Agregar la ruta del directorio de ANTLR hasta el subdirectorio

libcpp

Editor I Tabs I Debug I Compatibility 1 Build Dneclolies I a I Chow directories for - Platfolm -

- Directories I x ) 4 jWin32 -] llnclude files

m cancd I

57

Configuracioacuten de Microsoft Visual C t+ 60

Se ha creado una libreriacutea (anrlrliblib) de ANTLR la cual ya estaacute situada en el directorio del proyecto SCUML (ISCUML) y no debe ser movida o eliminada

I

Geneial 1 Debug I CC++ Link I Category

Output file name bebugSCUMLexe

Objectljibrary modules 4 anllrliblib

li Generate debug lnfo r Ignore all defaull lbaries D ~ i n k j n ~ ~ ~ t a n ~ r ~ e n e r ~ ~ ~ mapfile

r Enable psafilrng

Proiec1 Ootionn

pq Cancel 1 Libreriacutea de ANTLR que debe existir 1 I para que se compile correctamente

58

Anexo B

~ u iacute aacute raacutepida de uso deC Sistema S3C

5 Este anexo indica de forma raacutepida la manera de utilizar S3C para crear un diagrama de secuencias de forma automaacutetica

Guiacutea Raacutepida de uso del Sistema S3C i

Para indicar la creacioacuten de un diagrama de secuencias en forma automaacutetica se debe ir a la barra del costado izquierdo y presionar ldquoNuevo Proyecto SCUMLrdquo

I s3c I ~ Nuevo Proyecto SCUML ~ _ _ - I Diagrama de clases ~ Diagrama de secuencias 1 MDI DOC Activo

-

Apareceraacute un documento llamado ldquoSCUMLV en donde el simbolo corresponde a un numero consecutivo iniciando desde 1 (uno)

$ e Despueacutes se presiona ldquoDiagrama de clasesrdquo Habraacute que para indicarle al sistema si se requiere abrir un diagrama de clases existente o realizar uno nuevo

i

iquestAbrir un documento existente

No Cardquo~ear

AI presionar ldquoSirdquo se debe indicar cual es el archivo del diagrama de Clases en el cuadro de diaacutelogo siguiente

~~ - 11dMis documentos rsquo 2 M i P C i lsquo h s sitios de red

I

AI presionar ldquoNordquo en ldquoAbrir un documento existenterdquo se nos mostraraacute un documento vacio para crear un diagrama de clases

60

Guiacutea Raacutepida de uso del Sistema S3C

Para ambas opciones se requiere que los diagramas de Wamier ya se encuentren construidos Y para continuar el proccso se selecciona el documento ldquoSCUMLVrsquo creado al inicio y despueacutes presionar el botoacuten nombrado ldquoDiagrama de secuenciasrdquo localizado en la barra de hcrraiiiicntas del costado izquierdo

Ha iniciado el proceso de construccioacuten del diagrama de secuencias Si no existen errores al terminar el proceso se le mostraraacute un cuadro de diaacutelogo llamado ldquoResultadosrdquo en donde le mostraraacute las llamadas de las que no localizoacute su definicioacuten

- - -

Cancel 1 D e las siguientes llamadas es posible que esten mal escritas o peitenezcan a la libreiia del Lenguaie Verifique ya que no se encontraron sus definiciones

A continuacioacuten se mencionan los posibles errores que finalizan el proceso de la creacioacuten automaacutetica de los diagramas de secuencias en S3C

Cuando no exista un meacutetodo lsquomainrsquo definido en el diagrama de clases

No se encontro el meacutetodo lsquomain()rsquo que inicie la secuencia I A No se puede crear el diagrama de secuencias

p==amp=q

61

Guia Raacutepida de uso del Sistema S3C

Cuando se definan niultiples metodos lsquoinainrsquo en el diagrama de clases

Multiples meacutetodos lsquomainOlsquo Imposible decidir el inicio de secuencia

Aceptar i

Si un meacutetodo definido en Wamier realiza una llamada a lsquomainrsquo se cancelara el proceso

Llamada NO VALIDA al meacutetodo principal main

(iAcp-j(

4 i

CI Y rdquoldquoldquoI i 11 1-T

IZNTRO Gt INFORMACION

62

  • Tabla de Contenido
  • Listado de Figuras
  • Listado de Tablas
  • Notacioacuten
  • Introduccioacuten
  • Capitulo 1 Conceptos Generales
    • 11 Antecedentes
    • 12 Trabajos relacionados
      • 121 Tabla comparativa
        • 13 Definicioacuten del problema
        • 14 Objetivo de la Tesis
          • Objetivos especiacuteficos de la tesis
            • 15 Hipoacutetesis de investigacioacuten
            • 16 Alcances y limitaciones del trabajo de tesis
              • Capitulo 2 Marco Teoacuterico
                • 21 Modelado de sistemas de software
                • 22 Interfaz de usuario (Mecanismos de interaccioacuten)
                • 23 Lenguajes Visuales
                • 24 Programacioacuten orientada a objetos
                • 25 Lenguaje de Modelado Unificado (UML)
                  • Desarrollo de la herramienta
                    • 31 Disentildeo de la Arquitectura
                      • 311 Requisitos (Diagrama de Casos de uso)
                        • 312Modelo Conceptual
                        • 313Diagramas de clases
                        • 32 Elementos de la arquitectura
                          • 321 Microsoft Foundation Class (MFC)
                            • 322Arquitectura Documento Vista
                            • 323Integrando Ambientes en Visual c++
                              • 324 Interfaz de Muacuteltiples Documentos (MDI)
                                • 325Recursos Diaacutelogos Menus y Barras de Herramientas
                                  • 326 Notacioacuten estaacutendar
                                  • 327 Estructura de datos persistencia y recuperacioacuten
                                    • 328Patrones de disentildeo utilizados
                                      • 33 Diagrama de secuencias
                                        • 331Ciclo de vida del software
                                          • 34 Elementos atoacutemicos de la Gramaacutetica
                                            • 341 Representacioacuten visual
                                              • 35 Gramaacutetica desarrollada
                                              • 36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias
                                                  • Capitulo 4 Pruebas y Resultados
                                                    • 41 Recursos teacutecnicos utilizados
                                                    • 42 Descripcioacuten del plan de pruebas
                                                    • 43 Resultados
                                                      • 431 Caso
                                                      • 432 Caso2
                                                      • 433 Caso
                                                          • Conclusiones y trabajos futuros
                                                            • Trabajos futuros
                                                            • Referencias
                                                            • Anexo A Configuracioacuten de Microsoft Visual C+t
                                                              • Figura 11 - Arquitectura de la suite cenidet-UML
                                                              • Figura 21 -Programacioacuten Visual
                                                              • Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de
                                                              • Figura 32 -Diagrama de Casos de Uso para el S3C
                                                              • Figura 33 -Modelo Conceptual
                                                              • Figura 34 - Diagrama de Clases -Control del Diagrama -
                                                              • Figura 35 - Diagrama de Clases - Patroacuten Visitor -
                                                              • Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento
                                                              • Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)
                                                              • Figura 38 -Dialogo Caracteriacutesticas del Objeto
                                                              • Figura 39 -Dialogo Mensaje
                                                              • Figura 3 IO - Menuacute de los Diagramas de Secuencias (estaacutendar)
                                                              • Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias
                                                              • Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)
                                                              • Figura 313 - Serializacioacuten
                                                              • Figura 314 -Modelo de cascada del ciclo de vida del software
                                                              • Figura 41 - Resultado del caso de prueba
                                                              • Figura 42 -Resultado del caso de prueba
                                                              • Figura 43 -Resultado del caso de prueba
                                                              • Figura 44 -Resultado del caso de prueba
                                                              • Tabla 11 - Tabla comparativa
                                                              • Tabla 31 -Prefijos estaacutendar de identificadores
                                                              • Tabla 32 -Elementos atoacutemicos del lenguaje
                                                              • Tabla 41 - Resumen de los resultados de las pruebas realizadas

Conceptos generales

Producto Soporta Diagramas de UML Secuencias

Creacioacuten automaacutetica de diagramas de

El Rational Rose El Visio

Jvision

Magic D r a w

a a El Fl El a El El

I ~

I ~

I -

Ambiente de modelado de

a a SmartDraw El

Tabla I Tabla comparativa

Todas las herramientas descritas anteriormente cuentan con caracteriacutesticas sobresalientes para el disentildeo y modelado de sistemas de software pero ninguna de ellas genera automaacuteticamente los diagramas de secuencia con base en los diagramas de clases y el disentildeo detallado de los meacutetodos asiacute tambieacuten ninguna de ellas realiza un caacutelculo de los canales de comunicacioacuten abiertos entre las clases que conforman el sistema

iexcla la A UML Editor in Java

13 Definicioacuten del problema

El modelado de sistemas utilizando el estaacutendar de UML en diversos productos comerciales prototipos de laboratorio elaborados en universidades y centros de investigacioacuten atienden la perspectiva baacutesica de la abstraccioacuten general del modelo esto es documentar el modelo del sistema que se requiere sin atender puntos importantes tales como

La generacioacuten automaacutetica de los diagramas de secuencias La correccioacuten de inconsistencias en los diagramas al crearlos de forma separada

El

6

sistemas de software

secuencias utilizando diagramas de a a a

Conceptos generales

Se hace necesaria la creacioacuten de un ambiente visual que permita obtener de forma automaacutetica los diagramas de secuencias en base a los diagramas de clases y al disentildeo detallado de los meacutetodos para facilitar la documentacioacuten la generacioacuten de coacutedigo y el mantenimiento de los sistemas

La obtencioacuten de los diagramas de secuencias estaacute basada en los Diagramas de Clases definidos por UML que son construidos con la herramienta InverSOODA junto con el disentildeo detallado de los meacutetodos construidos con Diagramas de Wamier elaborados con la herramienta InverDDVi

En el estaacutendar UML para la construccioacuten de los diagramas no existe actualmente una sintaxis expliacutecita definida solo existe impliacutecitamente en el uso de los elementos del diagrama por lo que se ha descrito una gramaacutetica visual de tipo relaciona1 como soporte para la construccioacuten de los Diagramas de Secuencias

n ai 14 Objetivo de la Tesis

Construir un ambiente visual que permita al usuario obtener el diagrama de secuencias de manera automaacutetica

141 Objetivos especiacuteficos de la tesis Crear una gramaacutetica que soporte la construccioacuten del diagrama de secuencias Construir de forma automaacutetica el diagrama de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodos

15 Hipoacutetesis de investigacioacuten

Es posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodos

16 Alcances y limitaciones del trabajo de tesis

Los alcances de la tesis se especifican a continuacioacuten

Se elaboroacute la arquitectura del sistema Se definioacute la gramaacutetica de soporte Se desarrolloacute la interfaz en Visual C++ haciendo uso de las MFC Se interactuacutea con los diagramas de clases de InverSOODA Se interachiacutea con el disentildeo detallado de los meacutetodos realizados por InverDDVI Se genera el diagrama de secuencias de forma automaacutetica

7

Conceptos generales

Limitaciones de la tesis

0 No se genera coacutedigo

La investigacioacuten se limita a los diagramas de clases para la vista estaacutetica de los sistemas de software y a los diagramas de Warnier para la vista dinaacutemica de los meacutetodos El ambiente no trabaja en red

No se modifican los archivos de InverSOODA No se modifican los archivos de InverDDVI No se recuperan diagramas de secuencias a partir de coacutedigo legado

4

8

Capiacutetulo 2

Narc0 teoacuterico

En eacuteste capiacutetulo se describen los temas usados para el desarrollo de la tesis iquestQue son los modelos iquestEn que parte del proceso de Ingenieriacutea del Software se usan los modelos o el modelado Se estudia la interfaz de usuario los lenguajes visuales y las gramaacuteticas visuales Se describe el Lenguaje de Modelado Unificado (UML) ademaacutes de la programacioacuten orientada a objetos por ser este paradigma en donde se enfoca este trabajo

Marco teoacuterico

21 Modelado de sistemas de software

un modelo es una abstraccioacuten de algo con el propoacutesito de entenderlo antes de construirlo El modelo omite detalles no esenciales haciendo maacutes faacutecil su manipulacioacuten que la entidad original [BLA98] Un modelo es la simplificacioacuten de la realidad [RUM99] Los propoacutesitos de los modelos son

Probar una entidad fisica antes de construirla Establecer mejor comunicacioacuten con los clientes Visualizar el problema y el sistema desde una mejor perspectiva Reducir la complejidad [BLA98] Capturar y precisar requerimientos y conocimiento del dominio Pensar acerca del disentildeo del sistema Capturar decisiones de disentildeo en una fomia separada que cambia a partir de los requerimientos Generar productos Organizar buscar filtrar obtener examinar y editar informacioacuten acerca de un sistema Explorar muacuteltiples soluciones econoacutemicas Manejar sistemas complejos [RUM99]

El modelado es una probada y bien aceptada teacutecnica de Ingenieriacutea de Software [RUM99] El modelado es parte central de todas las actividades que conducen a la produccioacuten de buen software Se construyen modelos para comunicar la estructura deseada y revisar el comportamiento de nuestro sistema Se construyen modelos para visualizar y controlar la arquitectura del sistema Se construyen modelos para comprender mejor el sistema que estamos construyendo muchas veces descubriendo oportunidades para la simplificacioacuten y la reutilizacioacuten Se construyen modelos para controlar el riesgo [BOO99] La razoacuten fundamental por la que modelamos es porque nosotros construimos modelos que nos ayudan a entender mejor el sistema que estamos desarrollando [RUM99]

El modelado nos permite [RUM99] 1 Visualizar como es el sistema o como queremos que sea 2 Especificar la estructura del sistema 3 Plantear nuestras guiacuteas en la construccioacuten delsistema 4 Documentar las decisiones que hemos tomado

En las etapas del desarrollo del software el modelado es usado en el disentildeo el disentildeo del sistema es la primera etapa en donde se da la aproximacioacuten baacutesica de la solucioacuten al problema seleccionado ademaacutes se decide por la estructura (arquitectura del sistema) y el estilo de la solucioacuten

La arquitectura del sistema provee el contexto sobre el cual se tomaraacuten decisiones mas detalladas en las etapas subsecuentes del disentildeo [BLA98] En el disentildeo modelamos el sistema y encontramos su forma (incluida la arquitehra) para que soporte todos los 3 -

10

Marco teorico

i

4 -I

requisitos -incluyendo los requisitos no funcionales y otras restricciones- que se le suponen [JAC99] Los propoacutesitos del disentildeo son

Adquirir una comprensioacuten en profundidad de los aspectos relacionados con 10s requisitos no funcionales y restricciones relacionadas con los lenguajes de programacioacuten componentes reutilizables sistemas operativos tecnologiacuteas de distribucioacuten y concurrencia tecnologiacuteas de interfaz de usuario tecnologiacuteas de gestioacuten de transacciones etc Crear una entrada apropiada y un punto de partida para actividades de implementacioacuten subsiguientes capturando los requisitos o subsistemas individuales interfaces y clases Ser capaces de descomponer los trabajos de implementacioacuten en partes mas manejables que puedan ser llevadas a cabo por diferentes equipos de desarrollo teniendo en cuenta la posible concurrencia Capturar las interfaces entre los subsistemas Esto ayuda cuando reflexionamos sobre la arquitectura y cuando utilizamos interfaces como elementos de sincronizacioacuten entre diferentes equipos de desarrollo Ser capaces de visualizar y reflexionar sobre el disentildeo utilizando una notacioacuten comuacuten Crear una abstraccioacuten independiente de la implementacioacuten del sistema en el sentido de que la implementacioacuten es un refinamiento directo del disentildeo que rellena lo existente sin cambiar la estructura Esto permite la utilizacioacuten de tecnologiacuteas como la generacioacuten de coacutedigo y la ingenieriacutea de ida y vuelta entre el disentildeo y la implementacioacuten [JAC99]

22 Interfaz de usuario (Mecanismos de interaccioacuten)

El crecimiento de las computadoras personales vendidas en los ~ O rsquo S lanzoacute con fuerza el ldquofaacutecil de usarrdquo como una de las caracteriacutesticas mas importante de un producto de computadora

Las interfaces graacuteficas de usuario no son nuevas se pueden encontrar en las paredes de cuevas al sur de Francia en las piraacutemides de Egipto y en las paredes de muchas ciudades [iUM92] Para el usuario de un sistema interactivo la comunicacioacuten es tan importante como la computacioacuten Para los usuarios regularmente la interfaz es el sistema [HIX93]

Disentildeo de Interfaz Seguacuten Hackos [HAC98] las interfaces estaacuten en todo donde se trabaja con

o Controles en productos de hardware o Etiquetas y sentildeales en el hardware o Pequentildeas pantallas de cristal liquido en maacutequinas de cualquier tipo o Pantallas para aplicaciones de software para terminales de computadoras centrales

Marco teoacuterico

o pantallas para aplicaciones de software en computadoras Personales sistemas operativos como Windows OS2 DOS Macintosh U n b Y Otros

0 Paacuteginas de un sitio WEB 0 Sistemas de ayuda y manuales en-liacutenea 0 Tutoriales incrustados y otros tipos de soporte de funcionamiento O Esquemas de formas y otros documentos

una interfaz es el medio con el cual los usuarios interactuacutean con el producto 0

sistema para lograr SUS objetivos

Interfaz Usable

Para que una interfaz sea usable debe ser transparente y darles a los usuarios la capacidad de lograr cumplir sus metas de forma efectiva y eficiente

Los beneficios presentados en el uso de las interfaces de usuario [TH190] Disfrutar el sistema El usuario disfruta trabajar con un sistema que cuenta con una interfaz bien disentildeada y que le da la funcionalidad y acceso a los recursos de una manera clara y sencilla Proporciona nuevas habilidades Elimina al usuario concentrarse en acciones que la propia interfaz y el sistema hacen dando como resultado que el usuario solo se concentre en lo importante del trabajo Delegacioacuten de tareas La interfaz de usuario permite al usuario no conocer los detalles de la tarea esto es la computadora atiende los detalles de las tareas mientras que el usuario se concentra en asuntos de maacutes alto nivel Seguridad El usuario no necesita estar en lugarespeligrosos para hacer su trabajo

Se da la mayor posibilidad para que el usuario tenga acceso al conocimiento utilizando un sistema interactivo Haciendo las cosas a la primera Las tareas se ejecutan en un orden correcto definido lo que da como resultado un trabajo bien terminado sin necesidad de repetir evitando asiacute altos costos Computando LOS usuarios pueden calcular datos sin necesidad de conocer el proceso para obtener los resultados

Desarrollo

El disentildeo de interfaz es un negocio bastante dificil Eacuteste combina dos complicadas disciplinas psicologiacutea y ciencias de la computacioacuten Estas disciplinas tienen un fondo cultural muy diferente la psicologiacutea atiende a la gente (comprensioacuten y entendimiento) las ciencias computacionales a las maacutequinas (matemaacuteticas y precisioacuten) El disentildeo de las buenas interfaces requiere que estas dos perspectivas esteacuten unidas [THi90]

Hackos dice que las interfaces dan simplicidad y elegancia al trabajo necesario y a la vida e los usuarios Si no es obvio al usuario pero es raacutepida para aprender [HAC98] ademaacutes define caracteriacutesticas comunes de las interfaces usables

o Hacen que el flujo de trabajo sea familiar o confortable o Soportan el estilo de aprendizaje de los usuarios

12

Marco teoacuterico

Visualizacioacuten de Entrenamiento visual Para controlar Soportar interaccioncs Programar con informacioacuten visual visuales expresiones visuales

o Compatibles con los ambientes de trabajo de los usuarios o Se extienden sobre un concepto de disentildeo que es familiar al usuario o Tienen consistencia de presentacioacuten que los hace parecer maacutes confiable y faacuteciles de

aprender o Usan lenguaje y figuras familiares al usuario o faacuteciles de aprender

Datos o informacioacuten acerca de datos

23 Lenguajes Visuales

Los lenguajes visuales son un nuevo paradigma para expresar los sistemas computacionales Ellos ofrecen la posibilidad de manipular directamente los objetos Un lenguaje visual consiste de sentencias visuales Para lenguajes visuales basados en iacuteconos cada sentencia visual es un arreglo espacial de objetos O iacuteconos graacuteficos [CHA90]

Un lenguaje visual es concebido como una coleccioacuten de figuras obtenidas por un arreglo graacutefico de objetos en dos o maacutes dimensiones Los lenguajes visuales pueden ser modelados sintaacutecticamente a traveacutes de un vocabulario un conjunto de relaciones usadas para componer las figuras y un conjunto de reglas describiendo las figuras pertenecientes al lenguaje Los objetos graacuteficos de un vocabulario de un lenguaje visual se caracterizan por contar con un conjunto de atributos Los atributos de un objeto graacutefico pueden ser atributos graacuteficos atributos sintaacutecticos y atributos semaacutenticos [MAR98]

Un lenguaje de programacioacuten visual puede ser informalmente definido como un lenguaje el cual usa algunas representaciones visuales [SHV88]

Programa ylo Disentildeo de Lenguajes de programacioacuten visual ejecucioacuten software Diagramas iconos Formas

Programacioacuten Visual [SHU88]

Gramaacuteticas para la especificacioacuten de lenguajes visuales [MAR98]

a) Gramaacuteticas texfuales generalizadas Este tipo de gramaacutetica provee una adaptacioacuten apropiada de la concatenacioacuten de siacutembolos para dos dimensiones Su principal ventaja es que conservan los elementos teoacutericos de las gramaacuteticas textuales y los eficientes algoritmos de anaacutelisis de eacutestos uacuteltimos Su principal desventaja es que eacutestas gramaacuteticas no son tan poderosas y soacutelo pueden especificar clases restringidas de lenguajes visuales

13

Marco teorico

b) Meacutetodos basados en gramaacuteticas de grafos Un ejemplo de este tiPo de gramaacuteticas son las gramaacuteticas de red Las oraciones generadas con gramaacuteticas de red son grafos dirigidos con siacutembolos en los nodos Estos grafos son llamados redes Una produccioacuten de eacuteste tipo de gramaacuteticas es de la siguiente forma

a - t p E

donde a y p son redes y E es una forma de conectar a p cuando a es conectada a otra red anfitriona

La mayor desventaja es que las gramaacuteticas de red no han probado ser totalmente uacutetiles para la especificacioacuten de gramaacuteticas arbitrarias por la complejidad para rescribir grafos y al hecho de que no todo lenguaje visual estaacute compuesto exclusivamente por grafos

C) Gramaacuteticas de multiconjuntos de atributos En estas gramaacuteticas las producciones rescriben conjuntos o multiconjuntos de siacutembolos que tienen atributos con informacioacuten sobre geometriacutea o semaacutentica La reescritura se controla con restricciones sobre los atributos de los siacutembolos en el lado derecho de las producciones

Un ejemplo de eacutestas gramaacuteticas es la Gramaacutetica Coordinada que especifica notacioacuten matemaacutetica de dos dimensiones En esencia las producciones en una gramaacutetica coordinada n-coordinada libre del contexto tienen la siguiente forma

A -t a donde C F

Todos los siacutembolos de eacuteste tipo de gramaacutetica tienen n atributos geomeacutetricos A es un siacutembolo no terminal a es una cadena no vaciacutea de siacutembolos C es una restriccioacuten sobre los atributos de los siacutembolos en a y F es una expresioacuten que computa los atributos de los siacutembolos de A en teacuterminos de los atributos de los siacutembolos en a no importando el orden de los siacutembolos en a

d) Gramaacuteticas PosicionaZes Las gramaacuteticas posicionales son un formalismo para la definicioacuten e implementacioacuten de lenguajes visuales las gramaacuteticas posicionales extienden naturalmente a las gramaacuteticas libres de contexto Una gramaacutetica libre de contexto posicional PG es una six-tupla (N T S P POS PE) donde

N es un conjunto finito no vaciacuteo de siacutembolos no terminales T es un conjunto finito no vaciacuteo e siacutembolos terminales con N n T = $I S E N es el siacutembolo no terminal de inicio P es un conjunto finito de producciones POS es un conjunto finito de identificadores de relacioacuten binaria PE es un evaluador pictoacuterico

14

Marco teorico

Cada produccioacuten en P tiene la siguiente forma

A -+ X I R I X R2 X ~ I Rm1 xm A

e) Gramaacuteticas de Relacioacuten de siacutembolos Eacuteste es un formalismo sintaacutectico para describir un lenguaje visual donde cada oracioacuten dentro del lenguaje se representa como un conjunto de objetos visuales y un conjunto de relaciones entre objetos

El alfabeto de siacutembolos Vt y el conjunto de relaciones entre siacutembolos Vr una oracioacuten de relacioacuten de siacutembolos w sobre Vt y Vr es un par ( M R) donde

M es un conjunto de elementos-s (v i) con v E Vt y i es un nuacutemero natural R es un conjunto de elementos-r de la forma r (Xi Yj) con Xi Yj E M r E Vr y una relacioacuten r esta contenida entre Xi y Yj

Una gramaacutetica de relacioacuten de simbolos es el conjunto de seis elementos G = (Vn Vt Vr S P R) donde Vn es un conjunto de siacutembolos no terminales Vt es un conjunto de siacutembolos terminales Vr es un conjunto de relaciones entre siacutembolos S es el siacutembolo inicial y P es un conjunto de reglas de reescritura (producciones de elementos-s)

f) Gramaacuteticas relacionales Este tipo de gramaacutetica pertenecen a las gramaacuteticas libres de contexto

La gramaacutetica relaciona1 (RGrsquos) es una 6-tupla G (N C S R Attr P) donde

N C S R Attr P

es un conjunto finito de siacutembolos no terminales es un conjunto de siacutembolos terminales es un siacutembolo distinguido en N llamado siacutembolo inicial es un conjunto finito de siacutembolos de relacioacuten es un conjunto finito de siacutembolos de atributos es un conjunto de producciones de la forma A-gt apF donde A E N a E (nlo)+ Donde n E N cr E E

8 Es un conjunto de relaciones de la forma (r x y) donde r E R y xy son enteros que hacen referencia a un miembro de a y tambieacuten una expresioacuten de la forma (a i) donde a E Attr e i es un entero que hace referencia a un miembrode a

F Es un conjunto de declaraciones de asignacioacuten de caracteriacutesticas de la forma (a O)=x donde a E Attr y x es un entero que hace referencia a un miembro de a o a una expresioacuten de la forma (a i)

15

Marco teoacuterico

24 Programacioacuten orientada a objetos

L~~ meacutetodos orientados a objetos organizan la informacioacuten Y el procesamiento que manipula esta informacioacuten de acuerdo a los objetos delrsquomundo real que la informacioacuten describe [BRO97l

Beneficios de las teacutecnicas orientadas a objetos [BR097] Estabilidad del sistema Mantenibilidad Componentes reusables Confiabilidad Accesibilidad de los datos Participacioacuten del usuario

Seguacuten Graddy Booch la programacioacuten orientada a objetos es ldquoun meacutetodo de implementacioacuten en el que los programas se organizan como colecciones cooperativas de objetos cada uno de los cuales representan una instancia de alguna clase y cuyas clases son todas miembros de una jerarquiacutea de clases unidas mediante relaciones de herenciardquo [JOY 981

Programacioacuten orientada a objetos esencialmente significa programacioacuten usando objetos [JAC93] Los lenguajes orientados a objetos deben soportar los siguientes conceptos

Objetos Abstraccioacuten de datos Encapsulamiento Clases e Instancias Herencia entre clases Polimorfismo

Las propiedades fundamentales de la Programacioacuten Orientada a Objetos son

a Abstraccioacuten Son ideas conceptos y propiedades que se describen en forma general eliminando los detalles Es una estructura de datos y los meacutetodos que manipulan a esos datos

b Encapsulamiento Son las fronteras propias de un objeto bien definidas las cuales protegen los detalles de su representacioacuten interna

c Ocultacioacuten de la informacioacuten Es la propiedad en la que los objetos pueden hacer uso para impedir que otros objetos los usuarios o incluso los programadores conozcan coacutemo estaacute distribuida la informacioacuten

d Herencia Es la propiedad que tiene una clase para heredar atributos y comportamiento a otras clases

e Polirnorfismo Es la propiedad que permite que una entidad pueda cambiar a diferentes formas efectuaacutendose de manera dinaacutemica en tiempo de ejecucioacuten

16

Marco teoacuterico

t

Clases Es la especificacioacuten de una familia de objetos es la declaracioacuten de un tipo de objetos Tambieacuten se dice que una clase es la descripcioacuten de un conjunto de objetos con un comportamiento similar y que esta compuesta de Datos (o atributos) y Meacutetodos o (rutinas acciones operaciones)

Objeto Un objeto es una entidad en la cual se almacenan datos y los meacutetodos o funciones que controlan dichos datos Un objeto es una abstraccioacuten de alguna cosa del mundo real que contiene datos que lo describen y operaciones que solo tienen acceso a esos datos [BR097l Los elementos de los que esta conformado un objeto son

a Las relaciones permiten que el objeto se integre en la organizacioacuten b Las propiedades son los datos que caracterizan el estado de un objeto distinguiendo

asiacute a un objeto determinado de los restantes que forman parte de la misma organizacioacuten

c Los meacutetodos son las operaciones que pueden realizarse sobre la estructura del objeto es decir las acciones que cambian el estado de un objeto y que el objeto es capaz de ejecutar a traveacutes de mensajes y que tambieacuten pone a disposicioacuten de sus descendientes a traveacutes de la herencia

Mensajes Son solicitudes para que se lleve a cabo la operacioacuten indicada y se produzca un resultado

Las razones principales para introducir la tecnologiacutea de objetos son los beneficios de dicha tecnologiacutea

Aumento de la fiabilidad Aumento de la productividad del desarrollador Desarrollo maacutes raacutepido Mejor calidad maacutes alta

Incremento en escalabilidad Mejores estructuras de informacioacuten Incremento de adaptabilidad Reduccioacuten del coacutedigo fuente

Mantenimiento maacutes faacutecil y reduccioacuten de costo

Los elementos de reutilizacioacuten son las clases y objetos

25 Lenguaje de Modelado Unificado (UML)

UML (Unified Modeling Language por sus siglas en ingleacutes Lenguaje de Modelado Unificado) es un lenguaje de modelado visual de propoacutesito general que es utilizado para especificar visualizar construir y documentar las partes de un sistema de software El lenguaje estaacute basado en un pequentildeo nuacutemero de conceptos centrales que la mayoriacutea de los desarrolladores de tecnologiacutea orientada a objetos pueden aprender y aplicar faacutecilmente [RUM99]

17

Marco teoacuterico

y UML Pasado Presente y Futuro

L~~ lenguajes de modelado orientado a objetos aparecieron a mediados de 10s 70rsquos Varias teacutecnicas influenciaron estos lenguajes El nuacutemero de lenguajes de modelado incrementoacute desde menos de 10 hasta maacutes de 50 entre 1989 y 1994 Muchos modeladores teniacutean problemas para encontrar un lenguaje de modelado que satisficiera todas sus necesidades Notablemente aparecioacute Boochrsquo93 y la evolucioacuten continuoacute a OMT y Fusioacuten

OOSE (Object-Oriented Software Engineering) estaacute enfocado a la ingenieriacutea de negocios y anaacutelisis de requerimientos dando un excelente soporte orientado a casos de uso OMT-2 es especialmente expresivo para anaacutelisis y sistemas de informacioacuten de datos grandes Boochrsquo93 fue particularmente expresivo para el disentildeo y fases de construccioacuten de proyectos y popular para aplicaciones de ingenieriacutea intensiva

Grady Booch y Jim Rumbaugh iniciaron el desarrollo de UML en 1994 al unificar sus meacutetodos independientes Booch y OMT En 1995 Ivar Jacobson se unioacute a Racional eacutesta unioacuten logroacute que el meacutetodo OOSE se incorporara La unificacioacuten establecioacute que debiacutean activar el modelado de sistemas utilizando conceptos orientados a objeto asiacute como crear un lenguaje usable tanto para las maacutequinas como para los humanos

A

Muchas organizaciones se unieron al consorcio UML y dedicaron recursos al trabajo hacia el fortalecimiento de la definicioacuten de UML Esta colaboracioacuten produjo un lenguaje de modelado expresivo poderoso y generalmente aplicable En la forma actual de UML se espera que sea base de muchas herramientas incluidas las de modelado visual simulacioacuten y ambientes de desarrollo

R UML es abierto y no-propietario y aunque define un lenguaje preciso no es barrera para futuras mejoras en conceptos de modelado Se usan muchas teacutecnicas de punta pero se esperan teacutecnicas adicionales que influencien futuras versiones de UML puede ser extendido sin redefinir el nuacutecleo

c

Mientras el rehuacuteso basado en componentes se ha favorecido ampliamente cada vez mas esto no significa que las teacutecnicas basadas en componentes reemplazaraacuten las teacutecnicas orientadas a objetos Hay solo sutiles diferencias entre la semaacutentica de componentes y clases [ALC03]

Un opaco rendimiento caracterizoacute el mercado de anaacutelisis modelado y disentildeo en el 2000 en su transicioacuten de las viejas herramientas CASE (Computer Aided Software Engineering) a algo maacutes dinaacutemico y mejor adaptado para satisfacer las necesidades de los desarrolladores para el cambio raacutepido en los ambientes de negocio

El mercado de anaacutelisis modelado y disentildeo lograraacute obtener un crecimiento positivo en varios de los siguientes antildeos por varias razones El mercado seraacute manejado principalmente por la necesidad de desarrolladores a obtener aplicaciones para lanzarse al mercado raacutepidamente asiacute tambieacuten por el intereacutes creciente y uso de una nueva especie de herramienta y por el intereacutes creciente de los desarrolladores en usar UML reglas de negocios y adaptadores de componentes para construir aplicaciones [RIKUI]

z -

18

Marco teoacuterico

UML se ha hecho el estaacutendar para los desarrollos de modelado de negocios administracioacuten de requerimientos anaacutelisis y disentildeo programacioacuten y pruebas Los objetivos primarios de UML en el disentildeo [RAT97j

o Dar a los usuarios un lenguaje visual expresivo de modelado listo para usarse para que puedan desarrollar y cambiar los significados de sus modelos

o Suministrar mecanismos de extensibilidad y especializacioacuten para extender los conceptos centrales

o Ser independiente de lenguajes de programacioacuten particulares y procesos de desarrollo

o Impulsar el desarrollo de las herramientas Orientadas a Objeto en el mercado o Soportar conceptos de desarrollo de alto nivel como colaboracioacuten marcos de

componentes reutilizables patrones y componentes o Integrar las mejores praacutecticas

9 El aacutembito de UML

UML es un lenguaje para especificacioacuten construccioacuten visualizacioacuten y documentacioacuten de artefactos de un sistema de software UML es la fusioacuten de los conceptos de Booch OMT y OOSE El resultado es un simple comuacuten y ampliamente usado lenguaje de modelado para usuarios de estos y otros meacutetodos UML se enfoca en un lenguaje de modelado estaacutendar no en un proceso estaacutendar los autores de UML recomiendan un proceso de desarrollo manejado por casos de uso de arquitectura central iterativo e incremental [iiquest4T97l

Para la definicioacuten de sistemas de software en UML se definen diagramas Un diagrama es la representacioacuten graacutefica de un conjunto de elementos este se visualiza la mayoriacutea de las veces como un grafo conexo de nodos (elementos) y arcos (relaciones) Los diagramas se dibujan para visualizar un sistema desde diferentes perspectivas de forma que un diagrama es la proyeccioacuten de un sistema uumlML incluye nueve diagramas [B0099]

4 -

I Diagrama de clases 2 Diagrama de objetos 3 Diagrama de casos de uso 4 Diagrama de secuencias 5 Diagrama de colaboracioacuten 6 Diagrama de estados 7 Diagrama de actividades 8 Diagrama de componentes 9 Diagrama de despliegue

Diagramas de secuencias Un diagrama de secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten comportamiento

Un diagrama de secuencias muestra un conjunto de mensajes acomodados en una secuencia de tiempo eacuteste diagrama muestra la interaccioacuten en un esquema de dos - dimensiones [RUM99]

19

Marco teoacuterico

Y -

Un diagrama de secuencia es un diagrama de interaccioacuten que resalta la ordenacioacuten temporal de los mensajes Un diagrama de secuencia presenta un conjunto de objetos y los mensajes enviados y recibidos por ellos Los objetos suelen ser instancias (con nombre o sin nombres) de clases pero tambieacuten pueden representar instancias de otros elementos tales como colaboraciones componentes y nodos Los diagramas de secuencia se utilizan para describir la vista dinaacutemica de un sistema [B0099]

Usar los diagramas de secuencia es mostrar la secuencia que existe en un caso de uso [RUM 991

Los diagramas de secuencia tienen dos dimensiones Una dimensioacuten que representa el tiempo Otra dimensioacuten que representa los diferentes objetos que participan en la secuencia de eventos requeridos para completar el propoacutesito [MOuuml98]

El principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildea las interacciones de los objetos [DAN02]

20

Capiacutetulo 3

DesawoCCo de Ia herramienta

En este capiacutetulo se describe el desarrollo del Ambiente Visual Se describe el modelo conceptual del sistema la arquitectura asiacute como tambieacuten los elementos que componen la Arquitectura Se estudian los Diagramas de Secuencias de UML y algunos Patrones de Disentildeo de los que se hace uso para el mejor desarrollo del sistema Se describe a detalle la Gramaacutetica Visual Relaciona1 utilizada para el de Ambiente de desarrollo

I CENIOET 1FNTRO DE INFORMACION

Desarrollo de la herramienta

t i i

Actualmente existe en el cenidet un Ambiente Visual de Modelado de Clases llamado InverSOODA este Ambiente Visual tiene la capacidad de realizar la generacioacuten automaacutetica de coacutedigo de las clases en C++ a partir del modelo especificado Ademaacutes se puede realizar la Ingenieria Inversa de un coacutedigo legado para obtener el modelo de clases Aunado a este trabajo existe el Ambiente Visual denominado InverDDVi con el cual se puede realizar el Disentildeo Detallado de los Meacutetodos de las Clases con diagramas de Warnier Asiacute tambieacuten es posible obtener el modelo aplicando la Ingenieriacutea Inversa a un coacutedigo legado en C++

Ambos trabajos son retomados en este proyecto para la automatizacioacuten en la obtencioacuten de los Diagramas de Secuencias de UML La figura 31 muestra el modelo propuesto de ingenieriacutea directa

Extraer informacioacuten del diagrama de

rsquo rsquo

Diagrama de 11 clases I o

detallado de

detallado de

o meacutetodos

i ir---- Construir el

secuencias i

Modelo de Ingenieriacutea I directa automaacutetica

I

Figura 31 Modelo de Ingenieria Directa Autombtica de los Diagramas de Secuencias

Para la construccioacuten automaacutetica de un diagrama de secuencias se toma como base a un diagrama de Clases El modulo ldquoExtraer informacioacuten del diagrama de Clasesrdquo sirve para obtener el nombre y los meacutetodos descritos en cada uno de las clases que existan en el diagrama de Clases

22

Desarrollo de la herramienta

Con base en la informacioacuten que se tiene se abren los archivos correspondientes a los diagramas de Warnier El proceso que se emplea sobre cada uno los diagramas de Warnier llamado ldquoExtraer informacioacuten de los disentildeos detallados de los meacutetodosrdquo sirve para recopilar el conjunto de las llamadas de cada meacutetodo definido

En el siguiente paso (ldquoReconocer llamadas a meacutetodosrdquo) consiste en identificar si los meacutetodos que estaacuten descritos en los diagramas de Warnier tambieacuten lo estaacuten en el diagrama de Clases correspondiente

El paso ldquoConstruir los diagramas de secuencias automaacuteticamenterdquo realiza una validacioacuten de los meacutetodos definidos en los diagramas de Clases con los meacutetodos definidos en los diagramas de Warnier Este paso crea una estructura de datos con la secuencia de las llamadas y la recorre para crear los objetos y los mensajes en el diagrama de secuencias

AI terminar la creacioacuten automaacutetica del diagrama de secuencias se dispone de la r opcioacuten de guardar

31 Disentildeo de la Arquitectura

Para definir los procesos que el sistema va a realizar es necesario llevar a cabo un anaacutelisis de requisitos los cuales pueden ser expresados mediante diagramas de Casos de Uso Los Casos de Uso son una descripcioacuten textual narrativa de los procesos de un sistema

311Requisitos (Diagrama de Casos de uso)

Los casos de uso en realidad no son un artefacto de anaacutelisis orientado a objetos estos describen simplemente procesos y pueden ser igualmente efectivos en un proyecto tecnoloacutegico no orientado a objetos Son usados en un paso preliminar a la descripcioacuten de requerimientos de un sistema [LAR971 La Figura 32 muestra el diagrama de casos de uso que especifica al S3C

9

S3C (Diagramas de Secuencias)

usuario I Modelado de

I

Figura 32 Diagrama de Casos de Uso para el S3C

23

Desarrollo de la herramienta

Descripcioacuten de los Casos de Uso

Caso de Uso ldquoDiagramas de Secuenciasrdquo Se inicia cuando el actor ldquousuariordquo solicita la creacioacuten de un Diagrama de Secuencias Se establece la forma de la construccioacuten automaacutetica de los diagramas de secuencias de UML Se hace uso del Modelado de Clases y del Modelado del disentildeo detallado de los meacutetodos

Escenario de Eacutexito 1 Se obtiene la informacioacuten de las clases del modelado de clases 2 Se obtiene la informacioacuten del modelado del disentildeo detallado de los meacutetodos 3 Se realiza la construccioacuten automaacutetica de los diagramas de secuencias

1 En el modelo de clases no hay informacioacuten o estaacute incompleta 2 En el modelo del disentildeo detallado de los meacutetodos no hay informacioacuten o estaacute

incompleta

Escenario de Falla

Caso de Uso ldquoModelado de Clasesrdquo El diagrama de Clases se utiliza para obtener los nombres de clases y los nombres de los meacutetodos de cada clase

Escenario de Eacutexito 1 Se abre el modelo 2 Se procesa para obtener la informacioacuten de las clases (nombres de clases y nombres

de meacutetodos)

Escenano de Falla h 1 No se puede abrir el modelo J 2 El modelo esta vaciacuteo

Caso de Uso ldquoModelado del Disentildeo detallado 1 los meacutetodosrdquo El disentildeo detallado de los meacutetodos se realiza con diagramas de Warnier aquiacute se establecen las llamadas a funciones dentro del sistema y es aquiacute donde se identifica el dinamismo que se representaraacute en los diagramas de secuencias

Escenario de Eacutexito 1 Se abre el modelo 2 Se realiza la identificacioacuten de las llamadas existentes

Escenario de Falla 1 No se puede abrir el modelo 2 El modelo esta vaciacuteo

24

Desarrollo de la herramienta

Clase Objeto ni I Diagrama I n ____ Nombre Descripcioacuten

i

Mensaje

Tipo

En el Anaacutelisis Orientado a Objetos se crea una especificacioacuteii del dominio del problema y de los requeriinientos desde la perspectiva de una clasificacioacuten por objetos y del entendimiento de los teacuterminos usados en el dominio del problema Una descomposicioacuten del dominio del problema involucra una identificacioacuten de conceptos atributos y asociaciones que son considerados importantes dentro del dominio El resultado puede ser expresado en un Modelo Corzcepttraf el cual es ilustrado en un conjunto de diagramas que definen conceptos (objetos) [LAR97]

312Modelo Conceptual

El modelo conceptual visto en la Figura 33 no es una descripcioacuten de componentes de software representa conceptos en el domino del problema en el mundo Teal [LAR97l

313Diagramas de clases

Por cuestiones dc espacio las clases de la arquitectura del sistema estaraacuten referidas en varios diagramas que de alguna manera estaacuten relacionados entre si

Una de las partes maacutes importantes del Ambiente Visual S3C es la estructura de clases ltCCraJicogt la cual se refiere al control de los diagramas eacutesta por su naturaleza podriacutea considerarse el nuacutecleo del sistema La manipulacioacuten y control de los diagramas estaacute definido en una estructura de clases organizada con el patroacuten de disentildeo Composite que se muestra en la Figura 34

25

Desarrollo de la herramienta

CRecursividadDS CMensajeDS CObjetoDS CDiagramaDS

I Cvisitor I

CApuntadorDS CDblClickDS CAsocAdjusterDS CSelectorDS

26

Desarrollo de la herramienta

n 32 Elementos de la arquitectura

Es necesario describir los elementos que dan soporte a la arquitectura del ambiente donde se implementaraacute el sistema en este caso Microsoft Visual (MV) C++ 6 El MV C++ es un marco de aplicacioacuten poderoso basado en Windows se integran ademaacutes del lenguaje C++ (compilador y enlazador) el programa de desarrollo de programas en lenguaje C para Windows (SDK) la Microsoft Foundation Class Library AppWizzard Classwizard AppStudio y WorkBencli

La Microsoft Foundation Class Library comprende una biblioteca de clases de C++ y es considerada como el nuacutecleo del MV C++

321Microsoft Foundation Class (MFC)

La libreriacutea Microsoft Foundation Class (MFC) es una interfaz orientada a objetos que tiene las siguientes metas de disentildeo

o

Reduccioacuten significante de esfuerzo al escribir una aplicacioacuten para Windows Velocidad de ejecucioacuten comparable a las APIrsquos del lenguaje C Miacutenimo tamantildeo de coacutedigo Capacidad para llamar cualquier funcioacuten de Windows en C directamente Faacutecil conversioacuten de aplicaciones existentes en C a C++ Faacutecil uso de APIrsquos de Windows con C++ como con C Faacutecil uso de complicadas caracteriacutesticas de abstracciones poderosas como ActiveX soporte para base de datos impresioacuten barras de herramientas y barras de estado El API de Windows en C++ si usa tan efectivamente como las caracteriacutesticas mismas del lenguaje C++

La mayoriacutea de las clases de la Libreriacutea de la Microsoft Foundation Class son derivadas de una clase base ltCObjectgt que es la raiacutez de la jerarquiacutea de clases ltCObjectgt da uacutetiles capacidades a las clases que derivan de ella

La jerarquiacutea que existe en las clases derivadas de ltCObjectgt es la siguiente

Arquitectura de Aplicacioacuten Excepciones Servicios de Archivos Arreglos Listas Mapas Servicios de Internet Sockets Sincronizacioacuten Soporte para base de datos D A 0

27

Desarrollo de la herramienta

i

r

Liacutenea de Comandos Menuacute Dibujo Graacutefico Dibujo Graacutefico de Objetos Soporte de Control Soporte de Ventanas

Soporte para base de datos ODBC

o Marco de Ventanas o Barras de control o Hojas de propiedades o Cajas de Dialogo o Vistas o Controles

322Arquitectura Documento Vista

Por defecto las aplicaciones creadas con la MFC usan un modelo de aplicacioacuten que separa los datos del programa de las vistas de interaccioacuten con el usuario En eacuteste modelo un objeto documento de MFC lee y escribe datos en un almacenamiento persistente Un objeto vista administra el despliegue de datos suministrando al usuario los datos para ser seleccionados o editados La vista le comunica al documento cualquier cambio en los datos La razoacuten maacutes conveniente para seguir este modelo es cuando se necesita muacuteltiples vistas del mismo documento (como en una hoja de caacutelculo y un graacutefico)

La arquitectura documentovista hace faacutecil el soporte de muacuteltiples vistas y muacuteltiples tipos de documentos asiacute como la divisioacuten de ventanas y otras caracteriacutesticas de interfaz de usuario Pero el corazoacuten de la arquitectura son cuatro clases (Mostradas en el aacuterbol de clases de la Figura 36)

ltCDocumerrtgt (o ltCOleDocuinentgt) - Se instancia un objeto de este tipo para almacenar y controlar los datos del programa ltCViewgt (o una de sus clases derivadas ltCScrotlViewgt ltCFormViewgt ltCEditView ltCRecordViewgt ltCDaoRecordView ltCtreeViewgt ltCListViewgt b ltCrichEditViewgt) - Un objeto es usado para desplegar los datos y administrar la interaccioacuten del usuario con los datos ltCFrameWndgt (o una de sus variantes) - Establece el marco sobre el que trabajaraacuten una o mas vistas de un documento ltCDocTemolategt (o ltCSingIeDocTemplategt o ltCMultiDocTemplategt) - Coordina la existencia de uno o maacutes documentos de un tipo dado y administra la correcta creacioacuten de los documentos vistas y objetos ventanas para cada tipo

i

28

Desarrollo de la herramienta

______________ 2 Wiew

I - - __ - ------a ________________

323Integrando Ambientes en Visual C t t

Las aplicaciones de Interfaz de Documento Uacutenico (SDI) soporta muacuteltiples tipos de documentos pero este soporte es para un solo objeto documento Debido a esta restriccioacuten y aunado a la necesidad de tener varios objetos documentos a la vez se determina la utilizacioacuten del modelo Interfaz de Muacuteltiples Documentos (MDI) indicado en la Figura 37

324Interfaz de Muacuteltiples Documentos (MDI)

Una aplicacioacuten de Interfaz de Muacuteltiples Documento (MDI) permite la creacioacuten de plantillas para el manejo de los documentos eacutesta plantilla tiene la forma

rn-pDocTemplate = new CMultiDocTernplate ( I DR-SCUMLTY PE RUNTIME-CLASS (CSCUMLDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CTheView))

AddDocTernplate ( rn-pDocTemplate )

Cada plantilla describe una relacion del tipo de documento con la vista asociada La definicioacuten de la plantilla para el ambiente que controla los diagramas de secuencias es la siguiente

29

Desarrollo de la herramienta c

m-pTernplateSeqDlag = new CMultiDocTernplate ( IDR-DS-SJCTYPE RUNTIME-CLASS (CSeqDiagDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CSeqDiagView) )

AddDocTernplate( rn-pTernplateSeqDiag )

Esta plantilla hace uso de la clase CCliildFrame que por defecto el ambiente Visual C++ construye y esto es debido a que no se requieren caracteriacutesticas extras en las ventanas de las que proporciona dicha clasc En un caso en el que se requiriera un comportamiento diferente de la vista tendriacutea que crearse una nueva clase con las caracteriacutesticas deseadas

Vista Documento

Vista

I- Vista Documento I [ Tip- F Vista

L Figura 37 Modelo Interfaz de Muacuteltiples Documentos (MDI)

Para integrar otro Ambiente que utilice otro tipo de documento es necesario definir otra plantilla de la misma forma mencionada Debe tomarse en cuenta los siguientes puntos

Es necesario definir el nombre (mqTemplateNOMBRE) El IDR del tipo que se requiere que sea el documento En la primera liacutenea RUNTIME CLASS debe indicar la clase ltCDocumentgt que desea La segunda liacutenea RUNTIME-CLASS soacutelo la cambia a otra clase si requiere de otro manipulador de ventanas de lo contrario deje que ltCChildFramegt se haga cargo

-

30

Desarrollo de la herramienta

En la uacuteltima liacutenea referente a RUNTIME-CLASS se debe indicar la clase ltCViewgt que desea usar Para finalizar se usa la instruccioacuten AddDocTernplate para finalizar la definicioacuten del template (mgTemplateNOMBRE)

325 Recursos Diaacutelogos Mertuacutes y Barras de Herrattriertias

Son varios los recursos con los que se puede contar al crear un proyecto en Microsoft Visual C++ Los diaacutelogos son un recurso disponible que son utilizados para visualizar ingresar yo modificar informacioacuten que se requiera En el Ambiente Visual que se desarrolla son varios los diaacutelogos que se utilizaraacuten y eacutestos se describen a continuacioacuten

El Diaacutelogo ldquoCaracteriacutesticas del Obietordquo (Figura 38) identifica el nombre del Objeto y la descripcioacuten del mismo Este diaacutelogo se muestra cuando se presiona doble clic sobre un objeto del diagrama

I Nombre

Desciipcion

Figura 38 Dialogo Caracteriacutesticas del Objeto

El Diaacutelogo ldquoMensaierdquo (Figura 39) muestra el nombre del mensaje que puede ser modificado ademaacutes se visualizan el Identificador del Mensaje el tipo de Mensaje asiacute tambieacuten el origen y destino del mensaje

31

Desarrollo de la herramienta

Nornbie delMensaje Edit

IDentificador del Mensaje Edil Tipo de Mensaje (Edil

Edit Objeto Origen

Objeto Destino IEdit

i25El A Figura 39 Dialogo Mensaje

El menuacute es otro de los recursos del que se puede disponer para organizar el ambiente que se estaacute creando Para eacuteste caso en particular no se hizo modificaciones al menuacute estaacutendar (Figura 310) que Visual C++ presenta Los cambios significativos son el manejo del tipo de documento para los Diagramas de Secuencias

Archivo Editar Yer VenLana AyGda

Figura 310 Menuacute de los Diagramas de Secuencias (estaacutendar)

Otro importante recurso del que uno se puede valer en Visual C++ es la barra de herramienta personalizada la cuaacutel es construida en el Editor de Recursos Se ha construido una barra (Figura 311) con los elementos graacuteficos de los Diagramas de Secuencia de UML

Figura 311 Barra de Herramientas de los Diagramas de Secuencias

Es recomendable que al utilizar barras de herramienta personalizada se defina en el tamantildeo estaacutendar ya que puede experimentar problemas al momento de ejecutar la aplicacioacuten

Ademaacutes puede usar la propiedad TBBS-CHECKGROUP en una barra de herramientas para establecer que los botones puedan quedar presionados hasta que un botoacuten diferente sea presionado No olvide que la numeracioacuten inicia con cero ( O )

vuriableToolBurSetButtonStyle(OTBBSCHECKGROUP)

32

Desarrollo de la herramienta

Prefijo ID IDC IDD IDP IDR IDS

326 Notacioacuten estaacutendar

Los nombres descriptivos de los recursos se asocian a un valor uacutenico Para una mayor claridad eacutestos nombres mantienen un prefijo que describe el tipo de recurso asociado (vea la Tabla 31) [MIC99]

Tipo de Recurso Comandos de Menuacute Controles y recursos Cuadros de diaacutelogo Cadenas de solicitud para cuadros de mensaje Menuacute principal barras de herramienta tabla aceleradora y el icono Cadenas

IDR IDD IDC ID

200 - 299 3000 - 3999 34000 - 34999

Estos son los rangos de valores establecidos para el proyecto S3C Si se utiliza el coacutedigo fuente y se planea agregar otro proyecto verifisue que no se invadan estos nuacutemeros para evitar problemas

Para facilitar auacuten maacutes los trabajos futuros se ha definido una estructura de carpetas (ver Figura 312) para incluir en cada una las Clases correspondientes a cada tesis en desarrollo

33

Desarrollo de la herramienta

ill ~~ -

-I SCUML classes + U A N T L R + U App + 0 ClassDiagrams + 0 Common + a Java

t $2 SequenceDiagiams

+ WarnierDiagrams

iJ PackageDiagrams

12 StaterChartDiagrams

+

- f Classview I Resourceview 1 FileView ]

~ ~

Figura 312 Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)

327Estructura de datos persistencia y recuperacioacuten

Existe una gran cantidad de tipos de datos estructuras clases y meacutetodos de los que se puede hacer uso para una mejor y maacutes faacutecil obtencioacuten de los resultados A continuacioacuten hago comentarios en tipos de datos y meacutetodos en los que podriacutea tener problemas

CTypedPtrList

AI usar este tipo de dato o alguno relacionado que le permita utilizar el meacutetodo ltCTvrgtedPtrListGetNextgt tenga especial precaucioacuten al usarlo ya que al devolver el valor requerido la variable POSITION usada no se queda apuntando a ese valor en particular salta al inmediato siguiente de la lista

Si se realiza una creacioacuten dinaacutemica con punteros para los elementos de una CTypedPtrList Despueacutes de haberlo agregado a la lista evite el delete para borrar esta Usted deseando liberar la memoria no lo haga ya que eliminara directamente el elemento de la lista

POSITION

Es un valor usado para denotar una posicioacuten de un elemento en una coleccioacuten Pero CUIDADO no se refiere a un iacutendice es una referencia (no consecutiva) de punteros muy diferente a un iacutendice

CString

Auacuten cuando el operador de comparacioacuten == (igual a) es permitido para ser utilizado en las cadenas evite su uso ya que en ocasiones aunque cuando la e

34

Desarrollo de la herramienta

compilacioacuten no indique error alguno en la ejecucioacuten no realizaraacute lo que se necesita Recomiendo que utilice CStringCompare ()

Para eliminar el contenido de un CString utilice CStringEmpty() ya que asignar a la cadena un ldquonrdquo podriacutea causarle problemas

Serializacioacuten

Una forma en que se puede guardar informacioacuten y recuperarla de manera eficaz es mediante la serializacioacuten de objetos La serializacioacuten es un proceso que permite escribir un objeto en un archivo y tambieacuten leerlo

Para que la serializacioacuten se lleve a cabo son necesarios tres objetos un objeto de tipo ltCFilegt que represente el archivo un objeto de tipo ltCArchivegt que ofrece el entorno para la serializacioacuten y la clase del objeto a ser serializado debe ser heredada de ltCObjectgt y sobrescribir el meacutetodo ltSerializegt para que se encuentre de tal forma en que pueda ser serializado (vea la Figura 313)

Objeto a ser serializado 1

1 CArchive

[f --=I- ---7 Archivoexi

u Figura 313 Serializacioacuten

328Patrones de disentildeo utilizados

Se ha planteado la definicioacuten de una arquitectura de clases utilizando patrones de disentildeo debido a que algunos de ellos hacen maacutes faacutecil la extensioacuten de la funcionalidad y mantenimiento

35

Desarrollo de la herramienta

El patroacuten Composite es utilizado para crear de manera uniforme el diagrama sobre el que se trabaja (ver Figura 34) manteniendo una jerarquiacutea de clases uniforme las clases maacutes bajas en la jerarquiacutea definen primitivas de objetos graacuteficos

Se aplica el patroacuten de disentildeo Iterator para hacer recorridos en listas de objetos para realizar diversas operaciones Otro patroacuten de disentildeo del que se hace uso es el Visilor (ver Figura 35)

Para otras actividades que se realizan podriacutea pensarse en que se deberiacutean aplicar otros patrones pero se han evitado algunos (como el patroacuten de disentildeo Builder) para evitar incrementar la complejidad en la arquitectura ya que ai mantener el modelo de la MFC de documentovista la funcionalidad del patroacuten de disentildeo Builder es faacutecilmente reemplazado si se hiciera Uso de eacuteste se aumentariacutea la complejidad excesivamente (nos llevariacutea a perdemos en ocasiones en el paso de mensajes entre clases) dantildeando la facilidad de la arquitectura

33 Diagrama de secuencias

Un Diagrama de Secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten escenario Oacute comportamiento se usan para definir el curso loacutegico de accioacuten de un posible camino a seguir en la resolucioacuten de un problema Seguacuten John Daniels [DANO2] ldquoel principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildean las interacciones de los objetosrdquo

Los Diagramas de Secuencias se utilizan en el modelado de la implementacioacuten de sistemas de software ademaacutes son aplicables en el modelado de requisitos para establecer las comunicaciones existentes entre actores yo clases del sistema Con eacutestos diagramas se logran hacer descripciones de los escenarios y los comportamientos del sistema Con los Diagramas de Secuencias es posible definir protocolos de comunicacioacuten con paso de mensajes ya que dan esa flexibilidad que se requiere Ademaacutes los Diagramas de Secuencias contienen informacioacuten suficiente para que puedan ser transformados a los diagramas de colaboracioacuten [RUM Ol][BOO Oil

331Ciclo de vida del software

Considerando cualquier modelo de ciclo de vida del software (en la figura 314 se muestra el Modelo de cascada) el aacutembito directo de eacuteste Ambiente Visual es en el disentildeo aunque tiene sus vertientes en la codificacioacuten y mantenimiento

36

Desarrollo de la herramienta

Diseno

Codificacibn

I I I I Mantenimiento I

igura 314 Modelo de cascada del ciclo de vida del software

34 Elementos atoacutemicos de la Gramaacutetica

Definicioacuten de los elementos atoacutemicos del lenguaje y su contenido

1 Actor- Representa roles de entidad externos al sistema con el que interactuacutea directamente Los actores pueden ser humanos dispositivos u otros sistemas

2 ClaseObjeto- Determina una Clase u Objeto participante en la interaccioacuten

3 Mensaje-Es una comunicacioacuten entre objetos que contiene informacioacuten Eacuteste se representa con la finalidad a que una accioacuten sea llevada a cabo

4 Mensaje con tiempo- Tiene la misma finalidad que el mensaje la diferencia es que con eacutel se representa un atributo de tiempo

5 Mensaje asiacutencrono Es un mensaje que ocurre en el tiempo de manera independiente a otros mensajes

6 Mensaje de destruccioacuten de objeto- Es un mensaje cuya finalidad es indicar la destruccioacuten del objeto destino

7 Mensaje de creacioacuten de objeto- Es un mensaje que indica la creacioacuten de un objeto

8 Llamada al mismo objeto (Recursividad)- Es usado para modelar llamadas recursivas en el que una operacioacuten es invocada por el mismo objeto

37

Desarrollo de la herramienta

9 Destruccioacuten del objeto (AutodestrucciOacuten)- Puede o no modelarse es representada con una X al final de la liacutenea de vida del objeto

Elementos aulomaacuteticos

1 Liacutenea de Vida- Representa la vida del objeto durante la interaccioacuten

2 Activacioacuten- Muestra el periacuteodo de tiempo en el cual el objeto alguna operacioacuten

341RepresentaciOacuten visual

Representacioacuten visual de los elementos atoacutemicos del lenguaje

Actor

_- A

Mensaje

Mensaje de Creacioacuten de

Objeto

ClaseObjeto

I

Mensaje de retorno

Mensaje de Destruccioacuten de

Objeto

abla 32 Element(

Activacioacuten

Mensaje con tiempo

Autodestruccioacuten

x

atoacutemicos del lengi

taacute realizz

Texto ===I (letra)+ (letra I

numero) letra= AZ I az numero = 09

I

Recursividad ~

I

i j e

io

38

u

Comentario

iexcl

Conector de Comentario

35 Gramaacutetica desarrollada

La gramaacutetica que se propone es una gramaacutetica visual del tipo relacional Una gramaacutetica relacional pertenece a las gramaacuteticas libres de contexto es una 6-iupla G (N C S R Attr P) donde

N es un conjunto finito de siacutembolos no terminales C es un conjunto de siacutembolos terminales S es un siacutembolo distinguido en N llamado siacutembolo inicial R es un conjunto finito de siacutembolos de relacioacuten Attr es un conjunto finito de siacutembolos de atributos P es un conjunto de producciones

Entonces definiendo nuestra gramaacutetica G (N C S R Attr P)

N = Diagrama GrupoClaseObjeto

S = Diagrama

R = mensaje mensajeTiempo mensajeRetomo mensajeAsincrono mensajecrea mensajeDestruye autodestruccioacuten recursividad

R

Attr = entrada salida entradacrea

39

Desarrollo de la herramienta

Definiendo la posicioacuten de los atributos en los elementos visuales

entradacrea ObetaClase

entrada

salida

P =

Diagrama I GrupoClaseObjeto (mensaje (mensajeRetorno

(salida 1) (entrada 2) ) (salida 2) (entrada 1) )

- Diagrama 0 GrupoClaseObjeto

(mensaje (mensaje (mensajeRetomo (mensajeRetomo (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entradacrea 2) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 1) ) (salida 1) (entrada 1) )

entrada

salida

40

Desarrollo de la herramienta

s

-

GrupoClaseObjeto - 1 1 I 2 (mensaje (mensaje (mensajeRetorno (mensajeRetorno (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entradacrea 2) ) (salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 1) ) (salida I ) (entrada I ) )

1 En las gramaacuteticas relacionales una produccioacuten estaacute acompantildeada de las posibles

relaciones que puedan generarse En la primera produccioacuten Diagrama produce a un Actor seguida de un GrupoClaseObjeto el Actor inicia la interaccioacuten con un mensaje y recibe el mensaje de retorno al finalizar la interaccioacuten La segunda y tercera produccioacuten son similares debido a que un GrupoClaseObjeto contiene dos ClaseObjeto que se relacionan de la misma forma

Existe un elemento de la gramaacutetica llamado Attr (Atributo) el cual define la parte de los elementos visuales donde se establecen las relaciones Se han determinado dos atributos (entrada y salida) que para nuestro propoacutesito estaraacuten establecidos en la liacutenea de vida de cada elemento visual (Actor y ClaseObjeto)

Los Comentarios y la Activacioacuten no se consideran en la gramaacutetica Los comentarios son libres de incluirse y relacionarse con cualquier elemento y relacioacuten mencionada anteriormente y la activacioacuten existe siempre que se presente un mensaje (o podriacutea omitirse) Estas consideraciones se realizaron para hacer auacuten maacutes faacutecil la gramaacutetica ya que si se trata de realizar un sistema las restricciones de estos elementos pueden mantenerse en el lenguaje de programacioacuten en el que se desarrolle el sistema

36

Precondiciones

El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias

1 El diagrama de Clases debe existir y estar completo 2 Debe existir un archivo con un diagrama de Warnier por cada diagrama de Clases y

con el mismo nombre de archivo (excepto la extensioacuten del archivo) 3 En el uacutenico diagrama de Warnier de cada Clase se deben modelar todos los meacutetodos

de la Clase 4 No realizar declaraciones de meacutetodos

41

Desarrollo de la herramienta

5 Debe existir un meacutetodo lsquomain()rsquo en el diagrama de Clases

Restricciones

Los meacutetodos deben mantener nombres distintos en las diferentes Clases

Metodologiacutea para la obtencioacuten automaacutetica de los Diagramas de Secuencias

1 Seleccionar el diagrama de Clases

2 Se construye una lista con los nombres de las Clases y los Meacutetodos

3 Se verifica si exista el meacutetodo lsquomain()rsquo en alguna Clase Se busca la existencia de una uacutenica Clase

a La Clase que contenga lsquomain()rsquo se va al inicio de la lista de Clases

b Si no existe lsquomain()rsquo SE TERMINA EL PROCESO

4 Se verifica la existencia de los archivos que contienen el Disentildeo Detallado de los meacutetodos en Wamier para cada una de las Clases si alguno falta SE TERMINA EL PROCESO

5 Se procesa cada uno de los modelos del Disentildeo Detallado de los Meacutetodos generando una lista de secuencias de llamadas por cada uno de los meacutetodos

6 Se verifica que cada llamada corresponda a alguacuten meacutetodo existente (del diagrama de Clases) De no existir ese meacutetodo la llamada entra a una estructura que

7 Se crea una lista de secuencia

a Se inicia con lsquomain()rsquo b Se recorre cada una de las llamadas de los meacutetodos c Se considera invaacutelido el caso de que un meacutetodo intente una llamada

recursiva al meacutetodo lsquomain()rsquo

8 Se muestra un diaacutelogo de resultados en el que se indican las llamadas que no se encnotraron definidas y que pueden ser Llamada a libreriacutea oacute Llamada Erroacutenea

42

Capiacutetulo 4

Prue6as y su6taaacuteos

En eacuteste capiacutetulo se da a conocer el detalle de las pruebas y de los resultados obtenidos Se describen los casos de prueba con los que se realizoacute la evaluacioacuten del sistema asiacute tambieacuten se presentan comentarios acerca de los resultados obtenidos

Pruebas y Resultados

41 Recursos teacutecnicos utilizados

Para llevar a cabo las pruebas al sistema S3C se utilizaron los siguientes equipos de Coacutemputo

Computadora de escritorio

256MB RAM Disco Duro 80G Monitor 17rdquo SAMSUNG

AMD Athlon XP 1600+ I4Ghz

Computadora de escritorio Intel Pentium 4 - 128MB RAM Disco Duro 40G Monitor 15rdquo i -

42 Descripcioacuten del plan de pruebas

Las pruebas establecen el Uacuteltimo paso desde donde es posible evaluar la calidad y descubrir los errores Las pruebas y la validacioacuten del software se utilizan para comprobar que el sistema cumple con las expectativas del usuario

En esta seccioacuten se describen los casos de prueba que se realizaron al prototipo de S3C en conjunto a la suite cenidet-UML Para cada uno de los casos se presenta el objetivo el procedimiento que se siguioacute para la prueba y se muestran los resultados obtenidos - _

Las pruebas a realizar son los siguientes

Caso 1 Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Caso 2 Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Wamier

Caso3 Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Wamier

Caso4 Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo 5

44

Pruebas y Resultados

43 Resultados

431 Caso 1

5 Y

IZ =

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoSirdquo 4 Seleccionar el archivo ldquoVENTASrdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 41 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

s3c iuevo Proyecto SCUM1

Diagrama de clases

lvendedor I L

3

salida

venta prod

4 venia-oferta vcntaprod =

salida 6

Figura 41 Resultado del caso de prueba 1

45

Pruebas y Resultados

432 Caso 2

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Warnier (almacenwar cajawar vendedorwar) que ya cxisten (del caso de prueba I )

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoNordquo 4 Agregar las siguientes Clases con los respectivos meacutetodos y atributos

a Claseldquovendedorrdquo Meacutetodos ldquoventa mainrdquo b Claseldquoalmacenrdquo Meacutetodos ldquoentrada salidardquo c Claseldquocajardquo Meacutetodos ldquoventagrodrdquo

5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 42 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

Diagrama de daseo lisgrama dcsccucncis

MOIDOC Anivo

venta prod

salida

1 Ycrdquo1a 2

I 4 vcrdquolD~o1cn venta prod gt

salida 6 i Figura 42 Resultado del caso de prueba 2

46

Pruebas y Resultados

r

433 Caso 3

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Warnier

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 43 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

5

Error al tratar de abrir el archivo A bZwar

Aceptar i

Faltan Archivos de Disentildeos Detallados de Meacutetodos 1 1 A No se puede crear el diagrama de secuencias

Figura 43 Resultado del caso de prueba 3

47

Pruebas y Resultados

434 Caso 4

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 44 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

lsquo I

~ _ i i _ l _ Repaado ~~ ~ ~ 6~ ampA Figura 44 Resultado del caso de prueba 4

48

Pruebas y Resultados

PRUEBA DESCNPCION CASO 1 Mostrar la funcionalidad del

Sistema S3C a partir de un

44 Anaacutelisis de Resultados

RESULTADOS Se comproboacute la correcta funcionalidad del Sistema S3C a partir de un diagrama

CASO 3

CASO4

I diagrama de Clases cxistcnte I de Clases existente CASO 2 I Mostrar la funcionalidad del I Sc comproboacute la corrccta funcionalidad

Sistema S3C a partir de un del Sistema S3C a partir de un diagrama diagrama de Clases que se de Clases que se construye al momento construye al momento Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el Secuencias si falta alguno de los diagrama de Secuencia si falta alguno diagramas de Warnier Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el secuencias si hace falta el meacutetodo diagrama de Secuencias al faltar el ldquomain ()rdquo meacutetodo ldquomain()rdquo

de los diagramas de Warnier

Los resultados obtenidos de cada uno de los casos establecidos demuestran que se validoacute la funcionalidad del prototipo con los requisitos definidos en el alcance de este proyecto

a lt

49

Conclusiones y Tru6ajos Futuros

Aquiacute se dan a conocer las conclusiones y se describen los posibles trabajos futuros para la continuacioacuten de eacuteste proyecto

F

51 Conclusiones

Conclusiones y trabajos futuros

Se ha creado un Ambiente Visual que permite obtener de forma automaacutetica los Diagramas de Secuencias en base a los diagramas de Clases y al disentildeo detallado de los meacutetodos descritos con diagramas de Warnier cumpliendo con los objetivos planteados para este trabajo

La tesis aporta principalmente La generacioacuten automaacutetica de los diagramas de secuencias y la eliminacioacuten de inconsistencias al mantener una validacioacuten directa de los diagramas de clases y los diagramas de Warnier que son utilizados

Esta validacioacuten es lograda a traveacutes del uso de la gramaacutetica visual relaciona1 que se ha definido (veacutease el capiacutetulo 3) Esta gramaacutetica visual establece reglas para la correcta construccioacuten de los diagramas de secuencias

P De esta manera se establece que la hipoacutetesis ldquoEs posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodosrdquo Es verdadera

52 Trabajos Futuros

Un Diagrama de Secuencias puede convertirse en un Diagrama de Colaboracioacuten por lo tanto un trabajo futuro es la construccioacuten automaacutetica de un Diagrama de Colaboracioacuten a partir de uno de Secuencias existente

Es posible calcular la meacutetrica de acoplamiento al tener un Diagrama de Secuencias construido

La Ingenieriacutea directa de un Diagrama de Secuencias estableciendo la validacioacuten en la construccioacuten de todos los elementos visuales que UML define

La propagacioacuten de las modificaciones de un Diagrama de Secuencias a los Diagramas de Clases y los Diagramas de Warnier

La modificacioacuten del coacutedigo fuente mediante los cambios establecidos en un Diagrama de Secuencias

51

[ALC03]

[BLA98]

[B0099]

[BOOOi]

[BR097]

[CHA90]

[DAN02]

[GLA02]

[HAC98]

[HER03]

4

Alcate1 Computer Associates International inc Electronic Data Systems Corporation Hewlett-Packard Company IBM Corporation I-Logix IntelliCorp Kabira Technologies Kennedy Carter Microsoft Corporation Object Management Group Oracle Corporation Project Technology Ptech Inc Rational Software Corporation Reich Technologies Softeam Taskon A S Telelogic Unisys Corporation ldquoOMG Unified Modeling Language Specificationrdquo Version 15 Unified Modeling Language 2003

Blaha Michael Rumbaugh James Premerlani William Eddy Frederick Lorensen William ldquoObject-oriented modeling and designrdquo Prentice Hall 484 Paacuteginas ISBN 0-13-629841-9 QA-769-03S-B53-19981998

Booch Grady Rumbaugh James Jacobson Ivar ldquoEl lenguaje unificado de modeladordquo Addison Wesley 432 Paacuteginas ISBN 84-7829-028-1 1999

Booch Grady Rumbaugh James Jacobson Ivar ldquoThe Unified Modeling Language User Guiderdquo Addison Wesley 2001

Brown David ldquoAn introduction to object-oriented analysis objects in plain Englishrdquo John Whiley amp Sons Inc 700 Paginas ISBN 0-471-1 1028-0 QA-769-035-B76-1997 1997

Chang Shi-Kuo ldquoVisual Languages and visual programmingrdquo Plenum Press 340 Paacuteginas ISBN 0-306-43428-8 QA-7665-V57-1990 1990

Daniels John ldquoModeling with a sense of purposerdquo Design - IEEE Software JanuaryEebmary 2002

Glasgow Universidad Reino Unido ldquoA UML Editor in Javardquo (lthttplstudentsdcsglaacuWstudentspainjfproject-reportproject-re port-htmV4thYearReporthtrnlgt 2002)

T Hackos JoAnn C Redish Janice ldquoUser and Task Analysis for Interface Designrdquo Wiley Computer Publishing 488 Paacuteginas ISBN QA-769-U83- H33-1998 1998

Hemaacutendez Velaacutezquez M ldquoIngenieriacutea inversa de coacutedigo fuente en C++ para la obtencioacuten de su disentildeordquo Tesis AT-379 (03-0334) 2003

Conceptos generales

[HIX93]

[JAC93]

[JAC99]

[JOY98]

[LAR97]

[MAR]

[MIC99]

[MIC02]

[MOU98]

Hix Deborah Hartson H Rex ldquoDeveloping user interfacesrdquo 381 Paacuteginas ISBN 0-471-57813-4 QA-769-U83-H59-1993 1993

Jacobson Ivar Christerson Magnus Jonsson Patrik Overgaard Gunnar ldquoObject oriented software engineeringrdquo Addison Wesley ISBN 0-20 1 - 54435-0 QA-7676-D47-J63-1993 1993

Jacobson Ivar Booch Grady Rumbaugh James ldquoEl proceso unificado de desarrollo de softwarerdquo Addison Wesley 438 Paacuteginas ISBN 84-7829-036- 2 1999

Joyanes Aguilar Luis ldquoProgramacioacuten orientada a objetosrdquo McGruw Hill ISBN 84-481-0590-7 1998

Larman Craig ldquoAplying UML and Patternsrdquo Prentice Hull 507 Paacuteginas ISBN 0-13-748880-7 QA-769-035-L37-1997 1997

Marriot Kim Meyer Bemd ldquoVisual Language Theoryrdquo Springer 381 Paacuteginas P-935-V567-1998 1998

Microsoft ldquoMicrosoft Visual C++ 6 manual del programadorrdquo McGraw Hill ISBN 84-481-2127-9 QA-7673-Cl53-23718-1999 1999

Microsoft ldquoVisiordquo (lthttpwwwmicrosoftcomofficevisiogt 2002)

B Mourao Luis X ldquoUniversal Modeling Language Part 11 UML Notation - Case Sequence and Collaboration Diagramsrdquo Lan Times Magazine (~httpwwwlantimescomltpartsdiscussdiscuss6Ohtm~) 1998

No Magic ldquoMagicDrawrdquo (lthttpwwwmagicdrawcomgt 2002)

Object Insight ldquoJvisionrdquo (lthttpwwwobject-insightcomgt 2002)

Rational Software Microsoft I Hewlett-Packard Oracle Sterling Software MCI Systemhouse Unisys ICON Computing IntelliCorp i-Logix IBM ObjectTime Platinum Technology Ptech Taskon Reich Technologies Sofieam ldquoUML Summaryrdquo Version 11 Unified Modeling Language 1997

Rational ldquoRational Roserdquo (lthttpwwwrationalcomproductosrosegt 2002)

Rikki Kirzner ldquoAnalysis Modeling and Design Tools Market Forecast and Analysis 2001-2005rdquo Bulletin Published Under Services Application Design and Construction Tools Application Development and Deployment Strategies Documento Nuacutemero 24809 Junio 2001

53

Conceptos generales

[RIM92] Rimrner Steve ldquoGraphical user interface programmingrdquo 423 Paacuteginas

1992

Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language reference manualrdquo Addison Wesley 550 Paacuteginas ISBN 0-201-

ISBN 0-8306-2475-9 ISBN 0-8306-2472-4 (pbk) QA-769-083-R55G

[RUM99]

30998-X QA-7676-D47-R85-1999 1999

[RUM299] Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language user guiderdquo Addisoiz Wesley 482 Paacuteginas ISBN 0-201 -57 168-4 QA-7676-D47-B66-1999 1999

[SMA02] SmartDraw ldquoSmartDrawrdquo (lthttpwwwsmartdrawcomgt 2002)

[SHU88] 9 - Shu Nun C ldquoVisual Programmingrdquo Van Nostrand Reinhold ISBN 0-422- 28014-9 ISBN 0-422-01 164-4 QA-7665-S55 1988

[THI90] Thimbleby Harold ldquoUser Interface Designrdquo Acm press 470 Paacuteginas ISBN 0-201 -41 61 8-2 QA-769U83-T772~- 1990 1990

[WENO2] Wences Diaz MF ldquoModelo de Ingenieriacutea Inversa para la obtencioacuten de disentildeo detallado basado en LEVISSrdquo Tesis (02-0014) 2002

54

Anexo A

Conampuracioacuten de Microsoft Vkua[C++ 6 O

Este anexo indica las configuraciones que se utilizaron para la compilacioacuten de SCUML y s3c

Configuracioacuten de Microsoft Visual c++ 60

Debido a la integracioacuten de los proyectos de InverSOODA e InverDDVi con S3C se cumplioacute con los requisitos previos de ambos proyectos

El compilador usado en el proyecto fue el Microsoft Visual C++ 60

Para el cumplimiento con la funcionalidad de InverSOODA se instaloacute el ANTLR la versioacuten 271 Se descargoacute del sitio l i l l ~ ~ ~ ~ ~ ~ t l ~ l ~ - ~ t - ~ la versioacuten mencionada en un archivo comprimido (en formato zip) Se colocoacute el paquete descomprimido en el directorio ldquoDIANTLR-271 I rdquo

Recomiendo ampliamente que el directorio principal de ANTLR se copie en el directorio raiacutez de cualquier unidad de disco debido a que experimenteacute problemas de compilacioacuten cuando ANTLR no se encontraba en el directorio raiacutez

Io015

Source Browser AlttF12 I u c Ersquo V I

Visual Component Mgnager

- - ~ ~ ~ ~~

P2 Registrar control

A Contenedor de prueba de controles ActiveX

A Usor de objetos OLE y COM

Buacutesqueda de errores

A Y++ MFC Iracer

Customize options

~ - q- ~ Macro

Eecord Quick Macro Cbl+ShiR+R Pay Quick Macro Ctrl+ShiR+P

En el menuacute Tools (Herramientas) seleccione el sub-menuacute Options ltopcionesgt

56

Configuracioacuten de Microsoft Visual C++ 60

En la siguiente ventana de diaacutelogo debe agregar la direccioacuten en donde se encuentra el ANTLR

Agregar la ruta del directorio de ANTLR hasta el subdirectorio

libcpp

Editor I Tabs I Debug I Compatibility 1 Build Dneclolies I a I Chow directories for - Platfolm -

- Directories I x ) 4 jWin32 -] llnclude files

m cancd I

57

Configuracioacuten de Microsoft Visual C t+ 60

Se ha creado una libreriacutea (anrlrliblib) de ANTLR la cual ya estaacute situada en el directorio del proyecto SCUML (ISCUML) y no debe ser movida o eliminada

I

Geneial 1 Debug I CC++ Link I Category

Output file name bebugSCUMLexe

Objectljibrary modules 4 anllrliblib

li Generate debug lnfo r Ignore all defaull lbaries D ~ i n k j n ~ ~ ~ t a n ~ r ~ e n e r ~ ~ ~ mapfile

r Enable psafilrng

Proiec1 Ootionn

pq Cancel 1 Libreriacutea de ANTLR que debe existir 1 I para que se compile correctamente

58

Anexo B

~ u iacute aacute raacutepida de uso deC Sistema S3C

5 Este anexo indica de forma raacutepida la manera de utilizar S3C para crear un diagrama de secuencias de forma automaacutetica

Guiacutea Raacutepida de uso del Sistema S3C i

Para indicar la creacioacuten de un diagrama de secuencias en forma automaacutetica se debe ir a la barra del costado izquierdo y presionar ldquoNuevo Proyecto SCUMLrdquo

I s3c I ~ Nuevo Proyecto SCUML ~ _ _ - I Diagrama de clases ~ Diagrama de secuencias 1 MDI DOC Activo

-

Apareceraacute un documento llamado ldquoSCUMLV en donde el simbolo corresponde a un numero consecutivo iniciando desde 1 (uno)

$ e Despueacutes se presiona ldquoDiagrama de clasesrdquo Habraacute que para indicarle al sistema si se requiere abrir un diagrama de clases existente o realizar uno nuevo

i

iquestAbrir un documento existente

No Cardquo~ear

AI presionar ldquoSirdquo se debe indicar cual es el archivo del diagrama de Clases en el cuadro de diaacutelogo siguiente

~~ - 11dMis documentos rsquo 2 M i P C i lsquo h s sitios de red

I

AI presionar ldquoNordquo en ldquoAbrir un documento existenterdquo se nos mostraraacute un documento vacio para crear un diagrama de clases

60

Guiacutea Raacutepida de uso del Sistema S3C

Para ambas opciones se requiere que los diagramas de Wamier ya se encuentren construidos Y para continuar el proccso se selecciona el documento ldquoSCUMLVrsquo creado al inicio y despueacutes presionar el botoacuten nombrado ldquoDiagrama de secuenciasrdquo localizado en la barra de hcrraiiiicntas del costado izquierdo

Ha iniciado el proceso de construccioacuten del diagrama de secuencias Si no existen errores al terminar el proceso se le mostraraacute un cuadro de diaacutelogo llamado ldquoResultadosrdquo en donde le mostraraacute las llamadas de las que no localizoacute su definicioacuten

- - -

Cancel 1 D e las siguientes llamadas es posible que esten mal escritas o peitenezcan a la libreiia del Lenguaie Verifique ya que no se encontraron sus definiciones

A continuacioacuten se mencionan los posibles errores que finalizan el proceso de la creacioacuten automaacutetica de los diagramas de secuencias en S3C

Cuando no exista un meacutetodo lsquomainrsquo definido en el diagrama de clases

No se encontro el meacutetodo lsquomain()rsquo que inicie la secuencia I A No se puede crear el diagrama de secuencias

p==amp=q

61

Guia Raacutepida de uso del Sistema S3C

Cuando se definan niultiples metodos lsquoinainrsquo en el diagrama de clases

Multiples meacutetodos lsquomainOlsquo Imposible decidir el inicio de secuencia

Aceptar i

Si un meacutetodo definido en Wamier realiza una llamada a lsquomainrsquo se cancelara el proceso

Llamada NO VALIDA al meacutetodo principal main

(iAcp-j(

4 i

CI Y rdquoldquoldquoI i 11 1-T

IZNTRO Gt INFORMACION

62

  • Tabla de Contenido
  • Listado de Figuras
  • Listado de Tablas
  • Notacioacuten
  • Introduccioacuten
  • Capitulo 1 Conceptos Generales
    • 11 Antecedentes
    • 12 Trabajos relacionados
      • 121 Tabla comparativa
        • 13 Definicioacuten del problema
        • 14 Objetivo de la Tesis
          • Objetivos especiacuteficos de la tesis
            • 15 Hipoacutetesis de investigacioacuten
            • 16 Alcances y limitaciones del trabajo de tesis
              • Capitulo 2 Marco Teoacuterico
                • 21 Modelado de sistemas de software
                • 22 Interfaz de usuario (Mecanismos de interaccioacuten)
                • 23 Lenguajes Visuales
                • 24 Programacioacuten orientada a objetos
                • 25 Lenguaje de Modelado Unificado (UML)
                  • Desarrollo de la herramienta
                    • 31 Disentildeo de la Arquitectura
                      • 311 Requisitos (Diagrama de Casos de uso)
                        • 312Modelo Conceptual
                        • 313Diagramas de clases
                        • 32 Elementos de la arquitectura
                          • 321 Microsoft Foundation Class (MFC)
                            • 322Arquitectura Documento Vista
                            • 323Integrando Ambientes en Visual c++
                              • 324 Interfaz de Muacuteltiples Documentos (MDI)
                                • 325Recursos Diaacutelogos Menus y Barras de Herramientas
                                  • 326 Notacioacuten estaacutendar
                                  • 327 Estructura de datos persistencia y recuperacioacuten
                                    • 328Patrones de disentildeo utilizados
                                      • 33 Diagrama de secuencias
                                        • 331Ciclo de vida del software
                                          • 34 Elementos atoacutemicos de la Gramaacutetica
                                            • 341 Representacioacuten visual
                                              • 35 Gramaacutetica desarrollada
                                              • 36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias
                                                  • Capitulo 4 Pruebas y Resultados
                                                    • 41 Recursos teacutecnicos utilizados
                                                    • 42 Descripcioacuten del plan de pruebas
                                                    • 43 Resultados
                                                      • 431 Caso
                                                      • 432 Caso2
                                                      • 433 Caso
                                                          • Conclusiones y trabajos futuros
                                                            • Trabajos futuros
                                                            • Referencias
                                                            • Anexo A Configuracioacuten de Microsoft Visual C+t
                                                              • Figura 11 - Arquitectura de la suite cenidet-UML
                                                              • Figura 21 -Programacioacuten Visual
                                                              • Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de
                                                              • Figura 32 -Diagrama de Casos de Uso para el S3C
                                                              • Figura 33 -Modelo Conceptual
                                                              • Figura 34 - Diagrama de Clases -Control del Diagrama -
                                                              • Figura 35 - Diagrama de Clases - Patroacuten Visitor -
                                                              • Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento
                                                              • Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)
                                                              • Figura 38 -Dialogo Caracteriacutesticas del Objeto
                                                              • Figura 39 -Dialogo Mensaje
                                                              • Figura 3 IO - Menuacute de los Diagramas de Secuencias (estaacutendar)
                                                              • Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias
                                                              • Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)
                                                              • Figura 313 - Serializacioacuten
                                                              • Figura 314 -Modelo de cascada del ciclo de vida del software
                                                              • Figura 41 - Resultado del caso de prueba
                                                              • Figura 42 -Resultado del caso de prueba
                                                              • Figura 43 -Resultado del caso de prueba
                                                              • Figura 44 -Resultado del caso de prueba
                                                              • Tabla 11 - Tabla comparativa
                                                              • Tabla 31 -Prefijos estaacutendar de identificadores
                                                              • Tabla 32 -Elementos atoacutemicos del lenguaje
                                                              • Tabla 41 - Resumen de los resultados de las pruebas realizadas

Conceptos generales

Se hace necesaria la creacioacuten de un ambiente visual que permita obtener de forma automaacutetica los diagramas de secuencias en base a los diagramas de clases y al disentildeo detallado de los meacutetodos para facilitar la documentacioacuten la generacioacuten de coacutedigo y el mantenimiento de los sistemas

La obtencioacuten de los diagramas de secuencias estaacute basada en los Diagramas de Clases definidos por UML que son construidos con la herramienta InverSOODA junto con el disentildeo detallado de los meacutetodos construidos con Diagramas de Wamier elaborados con la herramienta InverDDVi

En el estaacutendar UML para la construccioacuten de los diagramas no existe actualmente una sintaxis expliacutecita definida solo existe impliacutecitamente en el uso de los elementos del diagrama por lo que se ha descrito una gramaacutetica visual de tipo relaciona1 como soporte para la construccioacuten de los Diagramas de Secuencias

n ai 14 Objetivo de la Tesis

Construir un ambiente visual que permita al usuario obtener el diagrama de secuencias de manera automaacutetica

141 Objetivos especiacuteficos de la tesis Crear una gramaacutetica que soporte la construccioacuten del diagrama de secuencias Construir de forma automaacutetica el diagrama de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodos

15 Hipoacutetesis de investigacioacuten

Es posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodos

16 Alcances y limitaciones del trabajo de tesis

Los alcances de la tesis se especifican a continuacioacuten

Se elaboroacute la arquitectura del sistema Se definioacute la gramaacutetica de soporte Se desarrolloacute la interfaz en Visual C++ haciendo uso de las MFC Se interactuacutea con los diagramas de clases de InverSOODA Se interachiacutea con el disentildeo detallado de los meacutetodos realizados por InverDDVI Se genera el diagrama de secuencias de forma automaacutetica

7

Conceptos generales

Limitaciones de la tesis

0 No se genera coacutedigo

La investigacioacuten se limita a los diagramas de clases para la vista estaacutetica de los sistemas de software y a los diagramas de Warnier para la vista dinaacutemica de los meacutetodos El ambiente no trabaja en red

No se modifican los archivos de InverSOODA No se modifican los archivos de InverDDVI No se recuperan diagramas de secuencias a partir de coacutedigo legado

4

8

Capiacutetulo 2

Narc0 teoacuterico

En eacuteste capiacutetulo se describen los temas usados para el desarrollo de la tesis iquestQue son los modelos iquestEn que parte del proceso de Ingenieriacutea del Software se usan los modelos o el modelado Se estudia la interfaz de usuario los lenguajes visuales y las gramaacuteticas visuales Se describe el Lenguaje de Modelado Unificado (UML) ademaacutes de la programacioacuten orientada a objetos por ser este paradigma en donde se enfoca este trabajo

Marco teoacuterico

21 Modelado de sistemas de software

un modelo es una abstraccioacuten de algo con el propoacutesito de entenderlo antes de construirlo El modelo omite detalles no esenciales haciendo maacutes faacutecil su manipulacioacuten que la entidad original [BLA98] Un modelo es la simplificacioacuten de la realidad [RUM99] Los propoacutesitos de los modelos son

Probar una entidad fisica antes de construirla Establecer mejor comunicacioacuten con los clientes Visualizar el problema y el sistema desde una mejor perspectiva Reducir la complejidad [BLA98] Capturar y precisar requerimientos y conocimiento del dominio Pensar acerca del disentildeo del sistema Capturar decisiones de disentildeo en una fomia separada que cambia a partir de los requerimientos Generar productos Organizar buscar filtrar obtener examinar y editar informacioacuten acerca de un sistema Explorar muacuteltiples soluciones econoacutemicas Manejar sistemas complejos [RUM99]

El modelado es una probada y bien aceptada teacutecnica de Ingenieriacutea de Software [RUM99] El modelado es parte central de todas las actividades que conducen a la produccioacuten de buen software Se construyen modelos para comunicar la estructura deseada y revisar el comportamiento de nuestro sistema Se construyen modelos para visualizar y controlar la arquitectura del sistema Se construyen modelos para comprender mejor el sistema que estamos construyendo muchas veces descubriendo oportunidades para la simplificacioacuten y la reutilizacioacuten Se construyen modelos para controlar el riesgo [BOO99] La razoacuten fundamental por la que modelamos es porque nosotros construimos modelos que nos ayudan a entender mejor el sistema que estamos desarrollando [RUM99]

El modelado nos permite [RUM99] 1 Visualizar como es el sistema o como queremos que sea 2 Especificar la estructura del sistema 3 Plantear nuestras guiacuteas en la construccioacuten delsistema 4 Documentar las decisiones que hemos tomado

En las etapas del desarrollo del software el modelado es usado en el disentildeo el disentildeo del sistema es la primera etapa en donde se da la aproximacioacuten baacutesica de la solucioacuten al problema seleccionado ademaacutes se decide por la estructura (arquitectura del sistema) y el estilo de la solucioacuten

La arquitectura del sistema provee el contexto sobre el cual se tomaraacuten decisiones mas detalladas en las etapas subsecuentes del disentildeo [BLA98] En el disentildeo modelamos el sistema y encontramos su forma (incluida la arquitehra) para que soporte todos los 3 -

10

Marco teorico

i

4 -I

requisitos -incluyendo los requisitos no funcionales y otras restricciones- que se le suponen [JAC99] Los propoacutesitos del disentildeo son

Adquirir una comprensioacuten en profundidad de los aspectos relacionados con 10s requisitos no funcionales y restricciones relacionadas con los lenguajes de programacioacuten componentes reutilizables sistemas operativos tecnologiacuteas de distribucioacuten y concurrencia tecnologiacuteas de interfaz de usuario tecnologiacuteas de gestioacuten de transacciones etc Crear una entrada apropiada y un punto de partida para actividades de implementacioacuten subsiguientes capturando los requisitos o subsistemas individuales interfaces y clases Ser capaces de descomponer los trabajos de implementacioacuten en partes mas manejables que puedan ser llevadas a cabo por diferentes equipos de desarrollo teniendo en cuenta la posible concurrencia Capturar las interfaces entre los subsistemas Esto ayuda cuando reflexionamos sobre la arquitectura y cuando utilizamos interfaces como elementos de sincronizacioacuten entre diferentes equipos de desarrollo Ser capaces de visualizar y reflexionar sobre el disentildeo utilizando una notacioacuten comuacuten Crear una abstraccioacuten independiente de la implementacioacuten del sistema en el sentido de que la implementacioacuten es un refinamiento directo del disentildeo que rellena lo existente sin cambiar la estructura Esto permite la utilizacioacuten de tecnologiacuteas como la generacioacuten de coacutedigo y la ingenieriacutea de ida y vuelta entre el disentildeo y la implementacioacuten [JAC99]

22 Interfaz de usuario (Mecanismos de interaccioacuten)

El crecimiento de las computadoras personales vendidas en los ~ O rsquo S lanzoacute con fuerza el ldquofaacutecil de usarrdquo como una de las caracteriacutesticas mas importante de un producto de computadora

Las interfaces graacuteficas de usuario no son nuevas se pueden encontrar en las paredes de cuevas al sur de Francia en las piraacutemides de Egipto y en las paredes de muchas ciudades [iUM92] Para el usuario de un sistema interactivo la comunicacioacuten es tan importante como la computacioacuten Para los usuarios regularmente la interfaz es el sistema [HIX93]

Disentildeo de Interfaz Seguacuten Hackos [HAC98] las interfaces estaacuten en todo donde se trabaja con

o Controles en productos de hardware o Etiquetas y sentildeales en el hardware o Pequentildeas pantallas de cristal liquido en maacutequinas de cualquier tipo o Pantallas para aplicaciones de software para terminales de computadoras centrales

Marco teoacuterico

o pantallas para aplicaciones de software en computadoras Personales sistemas operativos como Windows OS2 DOS Macintosh U n b Y Otros

0 Paacuteginas de un sitio WEB 0 Sistemas de ayuda y manuales en-liacutenea 0 Tutoriales incrustados y otros tipos de soporte de funcionamiento O Esquemas de formas y otros documentos

una interfaz es el medio con el cual los usuarios interactuacutean con el producto 0

sistema para lograr SUS objetivos

Interfaz Usable

Para que una interfaz sea usable debe ser transparente y darles a los usuarios la capacidad de lograr cumplir sus metas de forma efectiva y eficiente

Los beneficios presentados en el uso de las interfaces de usuario [TH190] Disfrutar el sistema El usuario disfruta trabajar con un sistema que cuenta con una interfaz bien disentildeada y que le da la funcionalidad y acceso a los recursos de una manera clara y sencilla Proporciona nuevas habilidades Elimina al usuario concentrarse en acciones que la propia interfaz y el sistema hacen dando como resultado que el usuario solo se concentre en lo importante del trabajo Delegacioacuten de tareas La interfaz de usuario permite al usuario no conocer los detalles de la tarea esto es la computadora atiende los detalles de las tareas mientras que el usuario se concentra en asuntos de maacutes alto nivel Seguridad El usuario no necesita estar en lugarespeligrosos para hacer su trabajo

Se da la mayor posibilidad para que el usuario tenga acceso al conocimiento utilizando un sistema interactivo Haciendo las cosas a la primera Las tareas se ejecutan en un orden correcto definido lo que da como resultado un trabajo bien terminado sin necesidad de repetir evitando asiacute altos costos Computando LOS usuarios pueden calcular datos sin necesidad de conocer el proceso para obtener los resultados

Desarrollo

El disentildeo de interfaz es un negocio bastante dificil Eacuteste combina dos complicadas disciplinas psicologiacutea y ciencias de la computacioacuten Estas disciplinas tienen un fondo cultural muy diferente la psicologiacutea atiende a la gente (comprensioacuten y entendimiento) las ciencias computacionales a las maacutequinas (matemaacuteticas y precisioacuten) El disentildeo de las buenas interfaces requiere que estas dos perspectivas esteacuten unidas [THi90]

Hackos dice que las interfaces dan simplicidad y elegancia al trabajo necesario y a la vida e los usuarios Si no es obvio al usuario pero es raacutepida para aprender [HAC98] ademaacutes define caracteriacutesticas comunes de las interfaces usables

o Hacen que el flujo de trabajo sea familiar o confortable o Soportan el estilo de aprendizaje de los usuarios

12

Marco teoacuterico

Visualizacioacuten de Entrenamiento visual Para controlar Soportar interaccioncs Programar con informacioacuten visual visuales expresiones visuales

o Compatibles con los ambientes de trabajo de los usuarios o Se extienden sobre un concepto de disentildeo que es familiar al usuario o Tienen consistencia de presentacioacuten que los hace parecer maacutes confiable y faacuteciles de

aprender o Usan lenguaje y figuras familiares al usuario o faacuteciles de aprender

Datos o informacioacuten acerca de datos

23 Lenguajes Visuales

Los lenguajes visuales son un nuevo paradigma para expresar los sistemas computacionales Ellos ofrecen la posibilidad de manipular directamente los objetos Un lenguaje visual consiste de sentencias visuales Para lenguajes visuales basados en iacuteconos cada sentencia visual es un arreglo espacial de objetos O iacuteconos graacuteficos [CHA90]

Un lenguaje visual es concebido como una coleccioacuten de figuras obtenidas por un arreglo graacutefico de objetos en dos o maacutes dimensiones Los lenguajes visuales pueden ser modelados sintaacutecticamente a traveacutes de un vocabulario un conjunto de relaciones usadas para componer las figuras y un conjunto de reglas describiendo las figuras pertenecientes al lenguaje Los objetos graacuteficos de un vocabulario de un lenguaje visual se caracterizan por contar con un conjunto de atributos Los atributos de un objeto graacutefico pueden ser atributos graacuteficos atributos sintaacutecticos y atributos semaacutenticos [MAR98]

Un lenguaje de programacioacuten visual puede ser informalmente definido como un lenguaje el cual usa algunas representaciones visuales [SHV88]

Programa ylo Disentildeo de Lenguajes de programacioacuten visual ejecucioacuten software Diagramas iconos Formas

Programacioacuten Visual [SHU88]

Gramaacuteticas para la especificacioacuten de lenguajes visuales [MAR98]

a) Gramaacuteticas texfuales generalizadas Este tipo de gramaacutetica provee una adaptacioacuten apropiada de la concatenacioacuten de siacutembolos para dos dimensiones Su principal ventaja es que conservan los elementos teoacutericos de las gramaacuteticas textuales y los eficientes algoritmos de anaacutelisis de eacutestos uacuteltimos Su principal desventaja es que eacutestas gramaacuteticas no son tan poderosas y soacutelo pueden especificar clases restringidas de lenguajes visuales

13

Marco teorico

b) Meacutetodos basados en gramaacuteticas de grafos Un ejemplo de este tiPo de gramaacuteticas son las gramaacuteticas de red Las oraciones generadas con gramaacuteticas de red son grafos dirigidos con siacutembolos en los nodos Estos grafos son llamados redes Una produccioacuten de eacuteste tipo de gramaacuteticas es de la siguiente forma

a - t p E

donde a y p son redes y E es una forma de conectar a p cuando a es conectada a otra red anfitriona

La mayor desventaja es que las gramaacuteticas de red no han probado ser totalmente uacutetiles para la especificacioacuten de gramaacuteticas arbitrarias por la complejidad para rescribir grafos y al hecho de que no todo lenguaje visual estaacute compuesto exclusivamente por grafos

C) Gramaacuteticas de multiconjuntos de atributos En estas gramaacuteticas las producciones rescriben conjuntos o multiconjuntos de siacutembolos que tienen atributos con informacioacuten sobre geometriacutea o semaacutentica La reescritura se controla con restricciones sobre los atributos de los siacutembolos en el lado derecho de las producciones

Un ejemplo de eacutestas gramaacuteticas es la Gramaacutetica Coordinada que especifica notacioacuten matemaacutetica de dos dimensiones En esencia las producciones en una gramaacutetica coordinada n-coordinada libre del contexto tienen la siguiente forma

A -t a donde C F

Todos los siacutembolos de eacuteste tipo de gramaacutetica tienen n atributos geomeacutetricos A es un siacutembolo no terminal a es una cadena no vaciacutea de siacutembolos C es una restriccioacuten sobre los atributos de los siacutembolos en a y F es una expresioacuten que computa los atributos de los siacutembolos de A en teacuterminos de los atributos de los siacutembolos en a no importando el orden de los siacutembolos en a

d) Gramaacuteticas PosicionaZes Las gramaacuteticas posicionales son un formalismo para la definicioacuten e implementacioacuten de lenguajes visuales las gramaacuteticas posicionales extienden naturalmente a las gramaacuteticas libres de contexto Una gramaacutetica libre de contexto posicional PG es una six-tupla (N T S P POS PE) donde

N es un conjunto finito no vaciacuteo de siacutembolos no terminales T es un conjunto finito no vaciacuteo e siacutembolos terminales con N n T = $I S E N es el siacutembolo no terminal de inicio P es un conjunto finito de producciones POS es un conjunto finito de identificadores de relacioacuten binaria PE es un evaluador pictoacuterico

14

Marco teorico

Cada produccioacuten en P tiene la siguiente forma

A -+ X I R I X R2 X ~ I Rm1 xm A

e) Gramaacuteticas de Relacioacuten de siacutembolos Eacuteste es un formalismo sintaacutectico para describir un lenguaje visual donde cada oracioacuten dentro del lenguaje se representa como un conjunto de objetos visuales y un conjunto de relaciones entre objetos

El alfabeto de siacutembolos Vt y el conjunto de relaciones entre siacutembolos Vr una oracioacuten de relacioacuten de siacutembolos w sobre Vt y Vr es un par ( M R) donde

M es un conjunto de elementos-s (v i) con v E Vt y i es un nuacutemero natural R es un conjunto de elementos-r de la forma r (Xi Yj) con Xi Yj E M r E Vr y una relacioacuten r esta contenida entre Xi y Yj

Una gramaacutetica de relacioacuten de simbolos es el conjunto de seis elementos G = (Vn Vt Vr S P R) donde Vn es un conjunto de siacutembolos no terminales Vt es un conjunto de siacutembolos terminales Vr es un conjunto de relaciones entre siacutembolos S es el siacutembolo inicial y P es un conjunto de reglas de reescritura (producciones de elementos-s)

f) Gramaacuteticas relacionales Este tipo de gramaacutetica pertenecen a las gramaacuteticas libres de contexto

La gramaacutetica relaciona1 (RGrsquos) es una 6-tupla G (N C S R Attr P) donde

N C S R Attr P

es un conjunto finito de siacutembolos no terminales es un conjunto de siacutembolos terminales es un siacutembolo distinguido en N llamado siacutembolo inicial es un conjunto finito de siacutembolos de relacioacuten es un conjunto finito de siacutembolos de atributos es un conjunto de producciones de la forma A-gt apF donde A E N a E (nlo)+ Donde n E N cr E E

8 Es un conjunto de relaciones de la forma (r x y) donde r E R y xy son enteros que hacen referencia a un miembro de a y tambieacuten una expresioacuten de la forma (a i) donde a E Attr e i es un entero que hace referencia a un miembrode a

F Es un conjunto de declaraciones de asignacioacuten de caracteriacutesticas de la forma (a O)=x donde a E Attr y x es un entero que hace referencia a un miembro de a o a una expresioacuten de la forma (a i)

15

Marco teoacuterico

24 Programacioacuten orientada a objetos

L~~ meacutetodos orientados a objetos organizan la informacioacuten Y el procesamiento que manipula esta informacioacuten de acuerdo a los objetos delrsquomundo real que la informacioacuten describe [BRO97l

Beneficios de las teacutecnicas orientadas a objetos [BR097] Estabilidad del sistema Mantenibilidad Componentes reusables Confiabilidad Accesibilidad de los datos Participacioacuten del usuario

Seguacuten Graddy Booch la programacioacuten orientada a objetos es ldquoun meacutetodo de implementacioacuten en el que los programas se organizan como colecciones cooperativas de objetos cada uno de los cuales representan una instancia de alguna clase y cuyas clases son todas miembros de una jerarquiacutea de clases unidas mediante relaciones de herenciardquo [JOY 981

Programacioacuten orientada a objetos esencialmente significa programacioacuten usando objetos [JAC93] Los lenguajes orientados a objetos deben soportar los siguientes conceptos

Objetos Abstraccioacuten de datos Encapsulamiento Clases e Instancias Herencia entre clases Polimorfismo

Las propiedades fundamentales de la Programacioacuten Orientada a Objetos son

a Abstraccioacuten Son ideas conceptos y propiedades que se describen en forma general eliminando los detalles Es una estructura de datos y los meacutetodos que manipulan a esos datos

b Encapsulamiento Son las fronteras propias de un objeto bien definidas las cuales protegen los detalles de su representacioacuten interna

c Ocultacioacuten de la informacioacuten Es la propiedad en la que los objetos pueden hacer uso para impedir que otros objetos los usuarios o incluso los programadores conozcan coacutemo estaacute distribuida la informacioacuten

d Herencia Es la propiedad que tiene una clase para heredar atributos y comportamiento a otras clases

e Polirnorfismo Es la propiedad que permite que una entidad pueda cambiar a diferentes formas efectuaacutendose de manera dinaacutemica en tiempo de ejecucioacuten

16

Marco teoacuterico

t

Clases Es la especificacioacuten de una familia de objetos es la declaracioacuten de un tipo de objetos Tambieacuten se dice que una clase es la descripcioacuten de un conjunto de objetos con un comportamiento similar y que esta compuesta de Datos (o atributos) y Meacutetodos o (rutinas acciones operaciones)

Objeto Un objeto es una entidad en la cual se almacenan datos y los meacutetodos o funciones que controlan dichos datos Un objeto es una abstraccioacuten de alguna cosa del mundo real que contiene datos que lo describen y operaciones que solo tienen acceso a esos datos [BR097l Los elementos de los que esta conformado un objeto son

a Las relaciones permiten que el objeto se integre en la organizacioacuten b Las propiedades son los datos que caracterizan el estado de un objeto distinguiendo

asiacute a un objeto determinado de los restantes que forman parte de la misma organizacioacuten

c Los meacutetodos son las operaciones que pueden realizarse sobre la estructura del objeto es decir las acciones que cambian el estado de un objeto y que el objeto es capaz de ejecutar a traveacutes de mensajes y que tambieacuten pone a disposicioacuten de sus descendientes a traveacutes de la herencia

Mensajes Son solicitudes para que se lleve a cabo la operacioacuten indicada y se produzca un resultado

Las razones principales para introducir la tecnologiacutea de objetos son los beneficios de dicha tecnologiacutea

Aumento de la fiabilidad Aumento de la productividad del desarrollador Desarrollo maacutes raacutepido Mejor calidad maacutes alta

Incremento en escalabilidad Mejores estructuras de informacioacuten Incremento de adaptabilidad Reduccioacuten del coacutedigo fuente

Mantenimiento maacutes faacutecil y reduccioacuten de costo

Los elementos de reutilizacioacuten son las clases y objetos

25 Lenguaje de Modelado Unificado (UML)

UML (Unified Modeling Language por sus siglas en ingleacutes Lenguaje de Modelado Unificado) es un lenguaje de modelado visual de propoacutesito general que es utilizado para especificar visualizar construir y documentar las partes de un sistema de software El lenguaje estaacute basado en un pequentildeo nuacutemero de conceptos centrales que la mayoriacutea de los desarrolladores de tecnologiacutea orientada a objetos pueden aprender y aplicar faacutecilmente [RUM99]

17

Marco teoacuterico

y UML Pasado Presente y Futuro

L~~ lenguajes de modelado orientado a objetos aparecieron a mediados de 10s 70rsquos Varias teacutecnicas influenciaron estos lenguajes El nuacutemero de lenguajes de modelado incrementoacute desde menos de 10 hasta maacutes de 50 entre 1989 y 1994 Muchos modeladores teniacutean problemas para encontrar un lenguaje de modelado que satisficiera todas sus necesidades Notablemente aparecioacute Boochrsquo93 y la evolucioacuten continuoacute a OMT y Fusioacuten

OOSE (Object-Oriented Software Engineering) estaacute enfocado a la ingenieriacutea de negocios y anaacutelisis de requerimientos dando un excelente soporte orientado a casos de uso OMT-2 es especialmente expresivo para anaacutelisis y sistemas de informacioacuten de datos grandes Boochrsquo93 fue particularmente expresivo para el disentildeo y fases de construccioacuten de proyectos y popular para aplicaciones de ingenieriacutea intensiva

Grady Booch y Jim Rumbaugh iniciaron el desarrollo de UML en 1994 al unificar sus meacutetodos independientes Booch y OMT En 1995 Ivar Jacobson se unioacute a Racional eacutesta unioacuten logroacute que el meacutetodo OOSE se incorporara La unificacioacuten establecioacute que debiacutean activar el modelado de sistemas utilizando conceptos orientados a objeto asiacute como crear un lenguaje usable tanto para las maacutequinas como para los humanos

A

Muchas organizaciones se unieron al consorcio UML y dedicaron recursos al trabajo hacia el fortalecimiento de la definicioacuten de UML Esta colaboracioacuten produjo un lenguaje de modelado expresivo poderoso y generalmente aplicable En la forma actual de UML se espera que sea base de muchas herramientas incluidas las de modelado visual simulacioacuten y ambientes de desarrollo

R UML es abierto y no-propietario y aunque define un lenguaje preciso no es barrera para futuras mejoras en conceptos de modelado Se usan muchas teacutecnicas de punta pero se esperan teacutecnicas adicionales que influencien futuras versiones de UML puede ser extendido sin redefinir el nuacutecleo

c

Mientras el rehuacuteso basado en componentes se ha favorecido ampliamente cada vez mas esto no significa que las teacutecnicas basadas en componentes reemplazaraacuten las teacutecnicas orientadas a objetos Hay solo sutiles diferencias entre la semaacutentica de componentes y clases [ALC03]

Un opaco rendimiento caracterizoacute el mercado de anaacutelisis modelado y disentildeo en el 2000 en su transicioacuten de las viejas herramientas CASE (Computer Aided Software Engineering) a algo maacutes dinaacutemico y mejor adaptado para satisfacer las necesidades de los desarrolladores para el cambio raacutepido en los ambientes de negocio

El mercado de anaacutelisis modelado y disentildeo lograraacute obtener un crecimiento positivo en varios de los siguientes antildeos por varias razones El mercado seraacute manejado principalmente por la necesidad de desarrolladores a obtener aplicaciones para lanzarse al mercado raacutepidamente asiacute tambieacuten por el intereacutes creciente y uso de una nueva especie de herramienta y por el intereacutes creciente de los desarrolladores en usar UML reglas de negocios y adaptadores de componentes para construir aplicaciones [RIKUI]

z -

18

Marco teoacuterico

UML se ha hecho el estaacutendar para los desarrollos de modelado de negocios administracioacuten de requerimientos anaacutelisis y disentildeo programacioacuten y pruebas Los objetivos primarios de UML en el disentildeo [RAT97j

o Dar a los usuarios un lenguaje visual expresivo de modelado listo para usarse para que puedan desarrollar y cambiar los significados de sus modelos

o Suministrar mecanismos de extensibilidad y especializacioacuten para extender los conceptos centrales

o Ser independiente de lenguajes de programacioacuten particulares y procesos de desarrollo

o Impulsar el desarrollo de las herramientas Orientadas a Objeto en el mercado o Soportar conceptos de desarrollo de alto nivel como colaboracioacuten marcos de

componentes reutilizables patrones y componentes o Integrar las mejores praacutecticas

9 El aacutembito de UML

UML es un lenguaje para especificacioacuten construccioacuten visualizacioacuten y documentacioacuten de artefactos de un sistema de software UML es la fusioacuten de los conceptos de Booch OMT y OOSE El resultado es un simple comuacuten y ampliamente usado lenguaje de modelado para usuarios de estos y otros meacutetodos UML se enfoca en un lenguaje de modelado estaacutendar no en un proceso estaacutendar los autores de UML recomiendan un proceso de desarrollo manejado por casos de uso de arquitectura central iterativo e incremental [iiquest4T97l

Para la definicioacuten de sistemas de software en UML se definen diagramas Un diagrama es la representacioacuten graacutefica de un conjunto de elementos este se visualiza la mayoriacutea de las veces como un grafo conexo de nodos (elementos) y arcos (relaciones) Los diagramas se dibujan para visualizar un sistema desde diferentes perspectivas de forma que un diagrama es la proyeccioacuten de un sistema uumlML incluye nueve diagramas [B0099]

4 -

I Diagrama de clases 2 Diagrama de objetos 3 Diagrama de casos de uso 4 Diagrama de secuencias 5 Diagrama de colaboracioacuten 6 Diagrama de estados 7 Diagrama de actividades 8 Diagrama de componentes 9 Diagrama de despliegue

Diagramas de secuencias Un diagrama de secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten comportamiento

Un diagrama de secuencias muestra un conjunto de mensajes acomodados en una secuencia de tiempo eacuteste diagrama muestra la interaccioacuten en un esquema de dos - dimensiones [RUM99]

19

Marco teoacuterico

Y -

Un diagrama de secuencia es un diagrama de interaccioacuten que resalta la ordenacioacuten temporal de los mensajes Un diagrama de secuencia presenta un conjunto de objetos y los mensajes enviados y recibidos por ellos Los objetos suelen ser instancias (con nombre o sin nombres) de clases pero tambieacuten pueden representar instancias de otros elementos tales como colaboraciones componentes y nodos Los diagramas de secuencia se utilizan para describir la vista dinaacutemica de un sistema [B0099]

Usar los diagramas de secuencia es mostrar la secuencia que existe en un caso de uso [RUM 991

Los diagramas de secuencia tienen dos dimensiones Una dimensioacuten que representa el tiempo Otra dimensioacuten que representa los diferentes objetos que participan en la secuencia de eventos requeridos para completar el propoacutesito [MOuuml98]

El principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildea las interacciones de los objetos [DAN02]

20

Capiacutetulo 3

DesawoCCo de Ia herramienta

En este capiacutetulo se describe el desarrollo del Ambiente Visual Se describe el modelo conceptual del sistema la arquitectura asiacute como tambieacuten los elementos que componen la Arquitectura Se estudian los Diagramas de Secuencias de UML y algunos Patrones de Disentildeo de los que se hace uso para el mejor desarrollo del sistema Se describe a detalle la Gramaacutetica Visual Relaciona1 utilizada para el de Ambiente de desarrollo

I CENIOET 1FNTRO DE INFORMACION

Desarrollo de la herramienta

t i i

Actualmente existe en el cenidet un Ambiente Visual de Modelado de Clases llamado InverSOODA este Ambiente Visual tiene la capacidad de realizar la generacioacuten automaacutetica de coacutedigo de las clases en C++ a partir del modelo especificado Ademaacutes se puede realizar la Ingenieria Inversa de un coacutedigo legado para obtener el modelo de clases Aunado a este trabajo existe el Ambiente Visual denominado InverDDVi con el cual se puede realizar el Disentildeo Detallado de los Meacutetodos de las Clases con diagramas de Warnier Asiacute tambieacuten es posible obtener el modelo aplicando la Ingenieriacutea Inversa a un coacutedigo legado en C++

Ambos trabajos son retomados en este proyecto para la automatizacioacuten en la obtencioacuten de los Diagramas de Secuencias de UML La figura 31 muestra el modelo propuesto de ingenieriacutea directa

Extraer informacioacuten del diagrama de

rsquo rsquo

Diagrama de 11 clases I o

detallado de

detallado de

o meacutetodos

i ir---- Construir el

secuencias i

Modelo de Ingenieriacutea I directa automaacutetica

I

Figura 31 Modelo de Ingenieria Directa Autombtica de los Diagramas de Secuencias

Para la construccioacuten automaacutetica de un diagrama de secuencias se toma como base a un diagrama de Clases El modulo ldquoExtraer informacioacuten del diagrama de Clasesrdquo sirve para obtener el nombre y los meacutetodos descritos en cada uno de las clases que existan en el diagrama de Clases

22

Desarrollo de la herramienta

Con base en la informacioacuten que se tiene se abren los archivos correspondientes a los diagramas de Warnier El proceso que se emplea sobre cada uno los diagramas de Warnier llamado ldquoExtraer informacioacuten de los disentildeos detallados de los meacutetodosrdquo sirve para recopilar el conjunto de las llamadas de cada meacutetodo definido

En el siguiente paso (ldquoReconocer llamadas a meacutetodosrdquo) consiste en identificar si los meacutetodos que estaacuten descritos en los diagramas de Warnier tambieacuten lo estaacuten en el diagrama de Clases correspondiente

El paso ldquoConstruir los diagramas de secuencias automaacuteticamenterdquo realiza una validacioacuten de los meacutetodos definidos en los diagramas de Clases con los meacutetodos definidos en los diagramas de Warnier Este paso crea una estructura de datos con la secuencia de las llamadas y la recorre para crear los objetos y los mensajes en el diagrama de secuencias

AI terminar la creacioacuten automaacutetica del diagrama de secuencias se dispone de la r opcioacuten de guardar

31 Disentildeo de la Arquitectura

Para definir los procesos que el sistema va a realizar es necesario llevar a cabo un anaacutelisis de requisitos los cuales pueden ser expresados mediante diagramas de Casos de Uso Los Casos de Uso son una descripcioacuten textual narrativa de los procesos de un sistema

311Requisitos (Diagrama de Casos de uso)

Los casos de uso en realidad no son un artefacto de anaacutelisis orientado a objetos estos describen simplemente procesos y pueden ser igualmente efectivos en un proyecto tecnoloacutegico no orientado a objetos Son usados en un paso preliminar a la descripcioacuten de requerimientos de un sistema [LAR971 La Figura 32 muestra el diagrama de casos de uso que especifica al S3C

9

S3C (Diagramas de Secuencias)

usuario I Modelado de

I

Figura 32 Diagrama de Casos de Uso para el S3C

23

Desarrollo de la herramienta

Descripcioacuten de los Casos de Uso

Caso de Uso ldquoDiagramas de Secuenciasrdquo Se inicia cuando el actor ldquousuariordquo solicita la creacioacuten de un Diagrama de Secuencias Se establece la forma de la construccioacuten automaacutetica de los diagramas de secuencias de UML Se hace uso del Modelado de Clases y del Modelado del disentildeo detallado de los meacutetodos

Escenario de Eacutexito 1 Se obtiene la informacioacuten de las clases del modelado de clases 2 Se obtiene la informacioacuten del modelado del disentildeo detallado de los meacutetodos 3 Se realiza la construccioacuten automaacutetica de los diagramas de secuencias

1 En el modelo de clases no hay informacioacuten o estaacute incompleta 2 En el modelo del disentildeo detallado de los meacutetodos no hay informacioacuten o estaacute

incompleta

Escenario de Falla

Caso de Uso ldquoModelado de Clasesrdquo El diagrama de Clases se utiliza para obtener los nombres de clases y los nombres de los meacutetodos de cada clase

Escenario de Eacutexito 1 Se abre el modelo 2 Se procesa para obtener la informacioacuten de las clases (nombres de clases y nombres

de meacutetodos)

Escenano de Falla h 1 No se puede abrir el modelo J 2 El modelo esta vaciacuteo

Caso de Uso ldquoModelado del Disentildeo detallado 1 los meacutetodosrdquo El disentildeo detallado de los meacutetodos se realiza con diagramas de Warnier aquiacute se establecen las llamadas a funciones dentro del sistema y es aquiacute donde se identifica el dinamismo que se representaraacute en los diagramas de secuencias

Escenario de Eacutexito 1 Se abre el modelo 2 Se realiza la identificacioacuten de las llamadas existentes

Escenario de Falla 1 No se puede abrir el modelo 2 El modelo esta vaciacuteo

24

Desarrollo de la herramienta

Clase Objeto ni I Diagrama I n ____ Nombre Descripcioacuten

i

Mensaje

Tipo

En el Anaacutelisis Orientado a Objetos se crea una especificacioacuteii del dominio del problema y de los requeriinientos desde la perspectiva de una clasificacioacuten por objetos y del entendimiento de los teacuterminos usados en el dominio del problema Una descomposicioacuten del dominio del problema involucra una identificacioacuten de conceptos atributos y asociaciones que son considerados importantes dentro del dominio El resultado puede ser expresado en un Modelo Corzcepttraf el cual es ilustrado en un conjunto de diagramas que definen conceptos (objetos) [LAR97]

312Modelo Conceptual

El modelo conceptual visto en la Figura 33 no es una descripcioacuten de componentes de software representa conceptos en el domino del problema en el mundo Teal [LAR97l

313Diagramas de clases

Por cuestiones dc espacio las clases de la arquitectura del sistema estaraacuten referidas en varios diagramas que de alguna manera estaacuten relacionados entre si

Una de las partes maacutes importantes del Ambiente Visual S3C es la estructura de clases ltCCraJicogt la cual se refiere al control de los diagramas eacutesta por su naturaleza podriacutea considerarse el nuacutecleo del sistema La manipulacioacuten y control de los diagramas estaacute definido en una estructura de clases organizada con el patroacuten de disentildeo Composite que se muestra en la Figura 34

25

Desarrollo de la herramienta

CRecursividadDS CMensajeDS CObjetoDS CDiagramaDS

I Cvisitor I

CApuntadorDS CDblClickDS CAsocAdjusterDS CSelectorDS

26

Desarrollo de la herramienta

n 32 Elementos de la arquitectura

Es necesario describir los elementos que dan soporte a la arquitectura del ambiente donde se implementaraacute el sistema en este caso Microsoft Visual (MV) C++ 6 El MV C++ es un marco de aplicacioacuten poderoso basado en Windows se integran ademaacutes del lenguaje C++ (compilador y enlazador) el programa de desarrollo de programas en lenguaje C para Windows (SDK) la Microsoft Foundation Class Library AppWizzard Classwizard AppStudio y WorkBencli

La Microsoft Foundation Class Library comprende una biblioteca de clases de C++ y es considerada como el nuacutecleo del MV C++

321Microsoft Foundation Class (MFC)

La libreriacutea Microsoft Foundation Class (MFC) es una interfaz orientada a objetos que tiene las siguientes metas de disentildeo

o

Reduccioacuten significante de esfuerzo al escribir una aplicacioacuten para Windows Velocidad de ejecucioacuten comparable a las APIrsquos del lenguaje C Miacutenimo tamantildeo de coacutedigo Capacidad para llamar cualquier funcioacuten de Windows en C directamente Faacutecil conversioacuten de aplicaciones existentes en C a C++ Faacutecil uso de APIrsquos de Windows con C++ como con C Faacutecil uso de complicadas caracteriacutesticas de abstracciones poderosas como ActiveX soporte para base de datos impresioacuten barras de herramientas y barras de estado El API de Windows en C++ si usa tan efectivamente como las caracteriacutesticas mismas del lenguaje C++

La mayoriacutea de las clases de la Libreriacutea de la Microsoft Foundation Class son derivadas de una clase base ltCObjectgt que es la raiacutez de la jerarquiacutea de clases ltCObjectgt da uacutetiles capacidades a las clases que derivan de ella

La jerarquiacutea que existe en las clases derivadas de ltCObjectgt es la siguiente

Arquitectura de Aplicacioacuten Excepciones Servicios de Archivos Arreglos Listas Mapas Servicios de Internet Sockets Sincronizacioacuten Soporte para base de datos D A 0

27

Desarrollo de la herramienta

i

r

Liacutenea de Comandos Menuacute Dibujo Graacutefico Dibujo Graacutefico de Objetos Soporte de Control Soporte de Ventanas

Soporte para base de datos ODBC

o Marco de Ventanas o Barras de control o Hojas de propiedades o Cajas de Dialogo o Vistas o Controles

322Arquitectura Documento Vista

Por defecto las aplicaciones creadas con la MFC usan un modelo de aplicacioacuten que separa los datos del programa de las vistas de interaccioacuten con el usuario En eacuteste modelo un objeto documento de MFC lee y escribe datos en un almacenamiento persistente Un objeto vista administra el despliegue de datos suministrando al usuario los datos para ser seleccionados o editados La vista le comunica al documento cualquier cambio en los datos La razoacuten maacutes conveniente para seguir este modelo es cuando se necesita muacuteltiples vistas del mismo documento (como en una hoja de caacutelculo y un graacutefico)

La arquitectura documentovista hace faacutecil el soporte de muacuteltiples vistas y muacuteltiples tipos de documentos asiacute como la divisioacuten de ventanas y otras caracteriacutesticas de interfaz de usuario Pero el corazoacuten de la arquitectura son cuatro clases (Mostradas en el aacuterbol de clases de la Figura 36)

ltCDocumerrtgt (o ltCOleDocuinentgt) - Se instancia un objeto de este tipo para almacenar y controlar los datos del programa ltCViewgt (o una de sus clases derivadas ltCScrotlViewgt ltCFormViewgt ltCEditView ltCRecordViewgt ltCDaoRecordView ltCtreeViewgt ltCListViewgt b ltCrichEditViewgt) - Un objeto es usado para desplegar los datos y administrar la interaccioacuten del usuario con los datos ltCFrameWndgt (o una de sus variantes) - Establece el marco sobre el que trabajaraacuten una o mas vistas de un documento ltCDocTemolategt (o ltCSingIeDocTemplategt o ltCMultiDocTemplategt) - Coordina la existencia de uno o maacutes documentos de un tipo dado y administra la correcta creacioacuten de los documentos vistas y objetos ventanas para cada tipo

i

28

Desarrollo de la herramienta

______________ 2 Wiew

I - - __ - ------a ________________

323Integrando Ambientes en Visual C t t

Las aplicaciones de Interfaz de Documento Uacutenico (SDI) soporta muacuteltiples tipos de documentos pero este soporte es para un solo objeto documento Debido a esta restriccioacuten y aunado a la necesidad de tener varios objetos documentos a la vez se determina la utilizacioacuten del modelo Interfaz de Muacuteltiples Documentos (MDI) indicado en la Figura 37

324Interfaz de Muacuteltiples Documentos (MDI)

Una aplicacioacuten de Interfaz de Muacuteltiples Documento (MDI) permite la creacioacuten de plantillas para el manejo de los documentos eacutesta plantilla tiene la forma

rn-pDocTemplate = new CMultiDocTernplate ( I DR-SCUMLTY PE RUNTIME-CLASS (CSCUMLDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CTheView))

AddDocTernplate ( rn-pDocTemplate )

Cada plantilla describe una relacion del tipo de documento con la vista asociada La definicioacuten de la plantilla para el ambiente que controla los diagramas de secuencias es la siguiente

29

Desarrollo de la herramienta c

m-pTernplateSeqDlag = new CMultiDocTernplate ( IDR-DS-SJCTYPE RUNTIME-CLASS (CSeqDiagDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CSeqDiagView) )

AddDocTernplate( rn-pTernplateSeqDiag )

Esta plantilla hace uso de la clase CCliildFrame que por defecto el ambiente Visual C++ construye y esto es debido a que no se requieren caracteriacutesticas extras en las ventanas de las que proporciona dicha clasc En un caso en el que se requiriera un comportamiento diferente de la vista tendriacutea que crearse una nueva clase con las caracteriacutesticas deseadas

Vista Documento

Vista

I- Vista Documento I [ Tip- F Vista

L Figura 37 Modelo Interfaz de Muacuteltiples Documentos (MDI)

Para integrar otro Ambiente que utilice otro tipo de documento es necesario definir otra plantilla de la misma forma mencionada Debe tomarse en cuenta los siguientes puntos

Es necesario definir el nombre (mqTemplateNOMBRE) El IDR del tipo que se requiere que sea el documento En la primera liacutenea RUNTIME CLASS debe indicar la clase ltCDocumentgt que desea La segunda liacutenea RUNTIME-CLASS soacutelo la cambia a otra clase si requiere de otro manipulador de ventanas de lo contrario deje que ltCChildFramegt se haga cargo

-

30

Desarrollo de la herramienta

En la uacuteltima liacutenea referente a RUNTIME-CLASS se debe indicar la clase ltCViewgt que desea usar Para finalizar se usa la instruccioacuten AddDocTernplate para finalizar la definicioacuten del template (mgTemplateNOMBRE)

325 Recursos Diaacutelogos Mertuacutes y Barras de Herrattriertias

Son varios los recursos con los que se puede contar al crear un proyecto en Microsoft Visual C++ Los diaacutelogos son un recurso disponible que son utilizados para visualizar ingresar yo modificar informacioacuten que se requiera En el Ambiente Visual que se desarrolla son varios los diaacutelogos que se utilizaraacuten y eacutestos se describen a continuacioacuten

El Diaacutelogo ldquoCaracteriacutesticas del Obietordquo (Figura 38) identifica el nombre del Objeto y la descripcioacuten del mismo Este diaacutelogo se muestra cuando se presiona doble clic sobre un objeto del diagrama

I Nombre

Desciipcion

Figura 38 Dialogo Caracteriacutesticas del Objeto

El Diaacutelogo ldquoMensaierdquo (Figura 39) muestra el nombre del mensaje que puede ser modificado ademaacutes se visualizan el Identificador del Mensaje el tipo de Mensaje asiacute tambieacuten el origen y destino del mensaje

31

Desarrollo de la herramienta

Nornbie delMensaje Edit

IDentificador del Mensaje Edil Tipo de Mensaje (Edil

Edit Objeto Origen

Objeto Destino IEdit

i25El A Figura 39 Dialogo Mensaje

El menuacute es otro de los recursos del que se puede disponer para organizar el ambiente que se estaacute creando Para eacuteste caso en particular no se hizo modificaciones al menuacute estaacutendar (Figura 310) que Visual C++ presenta Los cambios significativos son el manejo del tipo de documento para los Diagramas de Secuencias

Archivo Editar Yer VenLana AyGda

Figura 310 Menuacute de los Diagramas de Secuencias (estaacutendar)

Otro importante recurso del que uno se puede valer en Visual C++ es la barra de herramienta personalizada la cuaacutel es construida en el Editor de Recursos Se ha construido una barra (Figura 311) con los elementos graacuteficos de los Diagramas de Secuencia de UML

Figura 311 Barra de Herramientas de los Diagramas de Secuencias

Es recomendable que al utilizar barras de herramienta personalizada se defina en el tamantildeo estaacutendar ya que puede experimentar problemas al momento de ejecutar la aplicacioacuten

Ademaacutes puede usar la propiedad TBBS-CHECKGROUP en una barra de herramientas para establecer que los botones puedan quedar presionados hasta que un botoacuten diferente sea presionado No olvide que la numeracioacuten inicia con cero ( O )

vuriableToolBurSetButtonStyle(OTBBSCHECKGROUP)

32

Desarrollo de la herramienta

Prefijo ID IDC IDD IDP IDR IDS

326 Notacioacuten estaacutendar

Los nombres descriptivos de los recursos se asocian a un valor uacutenico Para una mayor claridad eacutestos nombres mantienen un prefijo que describe el tipo de recurso asociado (vea la Tabla 31) [MIC99]

Tipo de Recurso Comandos de Menuacute Controles y recursos Cuadros de diaacutelogo Cadenas de solicitud para cuadros de mensaje Menuacute principal barras de herramienta tabla aceleradora y el icono Cadenas

IDR IDD IDC ID

200 - 299 3000 - 3999 34000 - 34999

Estos son los rangos de valores establecidos para el proyecto S3C Si se utiliza el coacutedigo fuente y se planea agregar otro proyecto verifisue que no se invadan estos nuacutemeros para evitar problemas

Para facilitar auacuten maacutes los trabajos futuros se ha definido una estructura de carpetas (ver Figura 312) para incluir en cada una las Clases correspondientes a cada tesis en desarrollo

33

Desarrollo de la herramienta

ill ~~ -

-I SCUML classes + U A N T L R + U App + 0 ClassDiagrams + 0 Common + a Java

t $2 SequenceDiagiams

+ WarnierDiagrams

iJ PackageDiagrams

12 StaterChartDiagrams

+

- f Classview I Resourceview 1 FileView ]

~ ~

Figura 312 Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)

327Estructura de datos persistencia y recuperacioacuten

Existe una gran cantidad de tipos de datos estructuras clases y meacutetodos de los que se puede hacer uso para una mejor y maacutes faacutecil obtencioacuten de los resultados A continuacioacuten hago comentarios en tipos de datos y meacutetodos en los que podriacutea tener problemas

CTypedPtrList

AI usar este tipo de dato o alguno relacionado que le permita utilizar el meacutetodo ltCTvrgtedPtrListGetNextgt tenga especial precaucioacuten al usarlo ya que al devolver el valor requerido la variable POSITION usada no se queda apuntando a ese valor en particular salta al inmediato siguiente de la lista

Si se realiza una creacioacuten dinaacutemica con punteros para los elementos de una CTypedPtrList Despueacutes de haberlo agregado a la lista evite el delete para borrar esta Usted deseando liberar la memoria no lo haga ya que eliminara directamente el elemento de la lista

POSITION

Es un valor usado para denotar una posicioacuten de un elemento en una coleccioacuten Pero CUIDADO no se refiere a un iacutendice es una referencia (no consecutiva) de punteros muy diferente a un iacutendice

CString

Auacuten cuando el operador de comparacioacuten == (igual a) es permitido para ser utilizado en las cadenas evite su uso ya que en ocasiones aunque cuando la e

34

Desarrollo de la herramienta

compilacioacuten no indique error alguno en la ejecucioacuten no realizaraacute lo que se necesita Recomiendo que utilice CStringCompare ()

Para eliminar el contenido de un CString utilice CStringEmpty() ya que asignar a la cadena un ldquonrdquo podriacutea causarle problemas

Serializacioacuten

Una forma en que se puede guardar informacioacuten y recuperarla de manera eficaz es mediante la serializacioacuten de objetos La serializacioacuten es un proceso que permite escribir un objeto en un archivo y tambieacuten leerlo

Para que la serializacioacuten se lleve a cabo son necesarios tres objetos un objeto de tipo ltCFilegt que represente el archivo un objeto de tipo ltCArchivegt que ofrece el entorno para la serializacioacuten y la clase del objeto a ser serializado debe ser heredada de ltCObjectgt y sobrescribir el meacutetodo ltSerializegt para que se encuentre de tal forma en que pueda ser serializado (vea la Figura 313)

Objeto a ser serializado 1

1 CArchive

[f --=I- ---7 Archivoexi

u Figura 313 Serializacioacuten

328Patrones de disentildeo utilizados

Se ha planteado la definicioacuten de una arquitectura de clases utilizando patrones de disentildeo debido a que algunos de ellos hacen maacutes faacutecil la extensioacuten de la funcionalidad y mantenimiento

35

Desarrollo de la herramienta

El patroacuten Composite es utilizado para crear de manera uniforme el diagrama sobre el que se trabaja (ver Figura 34) manteniendo una jerarquiacutea de clases uniforme las clases maacutes bajas en la jerarquiacutea definen primitivas de objetos graacuteficos

Se aplica el patroacuten de disentildeo Iterator para hacer recorridos en listas de objetos para realizar diversas operaciones Otro patroacuten de disentildeo del que se hace uso es el Visilor (ver Figura 35)

Para otras actividades que se realizan podriacutea pensarse en que se deberiacutean aplicar otros patrones pero se han evitado algunos (como el patroacuten de disentildeo Builder) para evitar incrementar la complejidad en la arquitectura ya que ai mantener el modelo de la MFC de documentovista la funcionalidad del patroacuten de disentildeo Builder es faacutecilmente reemplazado si se hiciera Uso de eacuteste se aumentariacutea la complejidad excesivamente (nos llevariacutea a perdemos en ocasiones en el paso de mensajes entre clases) dantildeando la facilidad de la arquitectura

33 Diagrama de secuencias

Un Diagrama de Secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten escenario Oacute comportamiento se usan para definir el curso loacutegico de accioacuten de un posible camino a seguir en la resolucioacuten de un problema Seguacuten John Daniels [DANO2] ldquoel principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildean las interacciones de los objetosrdquo

Los Diagramas de Secuencias se utilizan en el modelado de la implementacioacuten de sistemas de software ademaacutes son aplicables en el modelado de requisitos para establecer las comunicaciones existentes entre actores yo clases del sistema Con eacutestos diagramas se logran hacer descripciones de los escenarios y los comportamientos del sistema Con los Diagramas de Secuencias es posible definir protocolos de comunicacioacuten con paso de mensajes ya que dan esa flexibilidad que se requiere Ademaacutes los Diagramas de Secuencias contienen informacioacuten suficiente para que puedan ser transformados a los diagramas de colaboracioacuten [RUM Ol][BOO Oil

331Ciclo de vida del software

Considerando cualquier modelo de ciclo de vida del software (en la figura 314 se muestra el Modelo de cascada) el aacutembito directo de eacuteste Ambiente Visual es en el disentildeo aunque tiene sus vertientes en la codificacioacuten y mantenimiento

36

Desarrollo de la herramienta

Diseno

Codificacibn

I I I I Mantenimiento I

igura 314 Modelo de cascada del ciclo de vida del software

34 Elementos atoacutemicos de la Gramaacutetica

Definicioacuten de los elementos atoacutemicos del lenguaje y su contenido

1 Actor- Representa roles de entidad externos al sistema con el que interactuacutea directamente Los actores pueden ser humanos dispositivos u otros sistemas

2 ClaseObjeto- Determina una Clase u Objeto participante en la interaccioacuten

3 Mensaje-Es una comunicacioacuten entre objetos que contiene informacioacuten Eacuteste se representa con la finalidad a que una accioacuten sea llevada a cabo

4 Mensaje con tiempo- Tiene la misma finalidad que el mensaje la diferencia es que con eacutel se representa un atributo de tiempo

5 Mensaje asiacutencrono Es un mensaje que ocurre en el tiempo de manera independiente a otros mensajes

6 Mensaje de destruccioacuten de objeto- Es un mensaje cuya finalidad es indicar la destruccioacuten del objeto destino

7 Mensaje de creacioacuten de objeto- Es un mensaje que indica la creacioacuten de un objeto

8 Llamada al mismo objeto (Recursividad)- Es usado para modelar llamadas recursivas en el que una operacioacuten es invocada por el mismo objeto

37

Desarrollo de la herramienta

9 Destruccioacuten del objeto (AutodestrucciOacuten)- Puede o no modelarse es representada con una X al final de la liacutenea de vida del objeto

Elementos aulomaacuteticos

1 Liacutenea de Vida- Representa la vida del objeto durante la interaccioacuten

2 Activacioacuten- Muestra el periacuteodo de tiempo en el cual el objeto alguna operacioacuten

341RepresentaciOacuten visual

Representacioacuten visual de los elementos atoacutemicos del lenguaje

Actor

_- A

Mensaje

Mensaje de Creacioacuten de

Objeto

ClaseObjeto

I

Mensaje de retorno

Mensaje de Destruccioacuten de

Objeto

abla 32 Element(

Activacioacuten

Mensaje con tiempo

Autodestruccioacuten

x

atoacutemicos del lengi

taacute realizz

Texto ===I (letra)+ (letra I

numero) letra= AZ I az numero = 09

I

Recursividad ~

I

i j e

io

38

u

Comentario

iexcl

Conector de Comentario

35 Gramaacutetica desarrollada

La gramaacutetica que se propone es una gramaacutetica visual del tipo relacional Una gramaacutetica relacional pertenece a las gramaacuteticas libres de contexto es una 6-iupla G (N C S R Attr P) donde

N es un conjunto finito de siacutembolos no terminales C es un conjunto de siacutembolos terminales S es un siacutembolo distinguido en N llamado siacutembolo inicial R es un conjunto finito de siacutembolos de relacioacuten Attr es un conjunto finito de siacutembolos de atributos P es un conjunto de producciones

Entonces definiendo nuestra gramaacutetica G (N C S R Attr P)

N = Diagrama GrupoClaseObjeto

S = Diagrama

R = mensaje mensajeTiempo mensajeRetomo mensajeAsincrono mensajecrea mensajeDestruye autodestruccioacuten recursividad

R

Attr = entrada salida entradacrea

39

Desarrollo de la herramienta

Definiendo la posicioacuten de los atributos en los elementos visuales

entradacrea ObetaClase

entrada

salida

P =

Diagrama I GrupoClaseObjeto (mensaje (mensajeRetorno

(salida 1) (entrada 2) ) (salida 2) (entrada 1) )

- Diagrama 0 GrupoClaseObjeto

(mensaje (mensaje (mensajeRetomo (mensajeRetomo (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entradacrea 2) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 1) ) (salida 1) (entrada 1) )

entrada

salida

40

Desarrollo de la herramienta

s

-

GrupoClaseObjeto - 1 1 I 2 (mensaje (mensaje (mensajeRetorno (mensajeRetorno (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entradacrea 2) ) (salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 1) ) (salida I ) (entrada I ) )

1 En las gramaacuteticas relacionales una produccioacuten estaacute acompantildeada de las posibles

relaciones que puedan generarse En la primera produccioacuten Diagrama produce a un Actor seguida de un GrupoClaseObjeto el Actor inicia la interaccioacuten con un mensaje y recibe el mensaje de retorno al finalizar la interaccioacuten La segunda y tercera produccioacuten son similares debido a que un GrupoClaseObjeto contiene dos ClaseObjeto que se relacionan de la misma forma

Existe un elemento de la gramaacutetica llamado Attr (Atributo) el cual define la parte de los elementos visuales donde se establecen las relaciones Se han determinado dos atributos (entrada y salida) que para nuestro propoacutesito estaraacuten establecidos en la liacutenea de vida de cada elemento visual (Actor y ClaseObjeto)

Los Comentarios y la Activacioacuten no se consideran en la gramaacutetica Los comentarios son libres de incluirse y relacionarse con cualquier elemento y relacioacuten mencionada anteriormente y la activacioacuten existe siempre que se presente un mensaje (o podriacutea omitirse) Estas consideraciones se realizaron para hacer auacuten maacutes faacutecil la gramaacutetica ya que si se trata de realizar un sistema las restricciones de estos elementos pueden mantenerse en el lenguaje de programacioacuten en el que se desarrolle el sistema

36

Precondiciones

El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias

1 El diagrama de Clases debe existir y estar completo 2 Debe existir un archivo con un diagrama de Warnier por cada diagrama de Clases y

con el mismo nombre de archivo (excepto la extensioacuten del archivo) 3 En el uacutenico diagrama de Warnier de cada Clase se deben modelar todos los meacutetodos

de la Clase 4 No realizar declaraciones de meacutetodos

41

Desarrollo de la herramienta

5 Debe existir un meacutetodo lsquomain()rsquo en el diagrama de Clases

Restricciones

Los meacutetodos deben mantener nombres distintos en las diferentes Clases

Metodologiacutea para la obtencioacuten automaacutetica de los Diagramas de Secuencias

1 Seleccionar el diagrama de Clases

2 Se construye una lista con los nombres de las Clases y los Meacutetodos

3 Se verifica si exista el meacutetodo lsquomain()rsquo en alguna Clase Se busca la existencia de una uacutenica Clase

a La Clase que contenga lsquomain()rsquo se va al inicio de la lista de Clases

b Si no existe lsquomain()rsquo SE TERMINA EL PROCESO

4 Se verifica la existencia de los archivos que contienen el Disentildeo Detallado de los meacutetodos en Wamier para cada una de las Clases si alguno falta SE TERMINA EL PROCESO

5 Se procesa cada uno de los modelos del Disentildeo Detallado de los Meacutetodos generando una lista de secuencias de llamadas por cada uno de los meacutetodos

6 Se verifica que cada llamada corresponda a alguacuten meacutetodo existente (del diagrama de Clases) De no existir ese meacutetodo la llamada entra a una estructura que

7 Se crea una lista de secuencia

a Se inicia con lsquomain()rsquo b Se recorre cada una de las llamadas de los meacutetodos c Se considera invaacutelido el caso de que un meacutetodo intente una llamada

recursiva al meacutetodo lsquomain()rsquo

8 Se muestra un diaacutelogo de resultados en el que se indican las llamadas que no se encnotraron definidas y que pueden ser Llamada a libreriacutea oacute Llamada Erroacutenea

42

Capiacutetulo 4

Prue6as y su6taaacuteos

En eacuteste capiacutetulo se da a conocer el detalle de las pruebas y de los resultados obtenidos Se describen los casos de prueba con los que se realizoacute la evaluacioacuten del sistema asiacute tambieacuten se presentan comentarios acerca de los resultados obtenidos

Pruebas y Resultados

41 Recursos teacutecnicos utilizados

Para llevar a cabo las pruebas al sistema S3C se utilizaron los siguientes equipos de Coacutemputo

Computadora de escritorio

256MB RAM Disco Duro 80G Monitor 17rdquo SAMSUNG

AMD Athlon XP 1600+ I4Ghz

Computadora de escritorio Intel Pentium 4 - 128MB RAM Disco Duro 40G Monitor 15rdquo i -

42 Descripcioacuten del plan de pruebas

Las pruebas establecen el Uacuteltimo paso desde donde es posible evaluar la calidad y descubrir los errores Las pruebas y la validacioacuten del software se utilizan para comprobar que el sistema cumple con las expectativas del usuario

En esta seccioacuten se describen los casos de prueba que se realizaron al prototipo de S3C en conjunto a la suite cenidet-UML Para cada uno de los casos se presenta el objetivo el procedimiento que se siguioacute para la prueba y se muestran los resultados obtenidos - _

Las pruebas a realizar son los siguientes

Caso 1 Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Caso 2 Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Wamier

Caso3 Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Wamier

Caso4 Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo 5

44

Pruebas y Resultados

43 Resultados

431 Caso 1

5 Y

IZ =

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoSirdquo 4 Seleccionar el archivo ldquoVENTASrdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 41 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

s3c iuevo Proyecto SCUM1

Diagrama de clases

lvendedor I L

3

salida

venta prod

4 venia-oferta vcntaprod =

salida 6

Figura 41 Resultado del caso de prueba 1

45

Pruebas y Resultados

432 Caso 2

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Warnier (almacenwar cajawar vendedorwar) que ya cxisten (del caso de prueba I )

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoNordquo 4 Agregar las siguientes Clases con los respectivos meacutetodos y atributos

a Claseldquovendedorrdquo Meacutetodos ldquoventa mainrdquo b Claseldquoalmacenrdquo Meacutetodos ldquoentrada salidardquo c Claseldquocajardquo Meacutetodos ldquoventagrodrdquo

5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 42 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

Diagrama de daseo lisgrama dcsccucncis

MOIDOC Anivo

venta prod

salida

1 Ycrdquo1a 2

I 4 vcrdquolD~o1cn venta prod gt

salida 6 i Figura 42 Resultado del caso de prueba 2

46

Pruebas y Resultados

r

433 Caso 3

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Warnier

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 43 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

5

Error al tratar de abrir el archivo A bZwar

Aceptar i

Faltan Archivos de Disentildeos Detallados de Meacutetodos 1 1 A No se puede crear el diagrama de secuencias

Figura 43 Resultado del caso de prueba 3

47

Pruebas y Resultados

434 Caso 4

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 44 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

lsquo I

~ _ i i _ l _ Repaado ~~ ~ ~ 6~ ampA Figura 44 Resultado del caso de prueba 4

48

Pruebas y Resultados

PRUEBA DESCNPCION CASO 1 Mostrar la funcionalidad del

Sistema S3C a partir de un

44 Anaacutelisis de Resultados

RESULTADOS Se comproboacute la correcta funcionalidad del Sistema S3C a partir de un diagrama

CASO 3

CASO4

I diagrama de Clases cxistcnte I de Clases existente CASO 2 I Mostrar la funcionalidad del I Sc comproboacute la corrccta funcionalidad

Sistema S3C a partir de un del Sistema S3C a partir de un diagrama diagrama de Clases que se de Clases que se construye al momento construye al momento Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el Secuencias si falta alguno de los diagrama de Secuencia si falta alguno diagramas de Warnier Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el secuencias si hace falta el meacutetodo diagrama de Secuencias al faltar el ldquomain ()rdquo meacutetodo ldquomain()rdquo

de los diagramas de Warnier

Los resultados obtenidos de cada uno de los casos establecidos demuestran que se validoacute la funcionalidad del prototipo con los requisitos definidos en el alcance de este proyecto

a lt

49

Conclusiones y Tru6ajos Futuros

Aquiacute se dan a conocer las conclusiones y se describen los posibles trabajos futuros para la continuacioacuten de eacuteste proyecto

F

51 Conclusiones

Conclusiones y trabajos futuros

Se ha creado un Ambiente Visual que permite obtener de forma automaacutetica los Diagramas de Secuencias en base a los diagramas de Clases y al disentildeo detallado de los meacutetodos descritos con diagramas de Warnier cumpliendo con los objetivos planteados para este trabajo

La tesis aporta principalmente La generacioacuten automaacutetica de los diagramas de secuencias y la eliminacioacuten de inconsistencias al mantener una validacioacuten directa de los diagramas de clases y los diagramas de Warnier que son utilizados

Esta validacioacuten es lograda a traveacutes del uso de la gramaacutetica visual relaciona1 que se ha definido (veacutease el capiacutetulo 3) Esta gramaacutetica visual establece reglas para la correcta construccioacuten de los diagramas de secuencias

P De esta manera se establece que la hipoacutetesis ldquoEs posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodosrdquo Es verdadera

52 Trabajos Futuros

Un Diagrama de Secuencias puede convertirse en un Diagrama de Colaboracioacuten por lo tanto un trabajo futuro es la construccioacuten automaacutetica de un Diagrama de Colaboracioacuten a partir de uno de Secuencias existente

Es posible calcular la meacutetrica de acoplamiento al tener un Diagrama de Secuencias construido

La Ingenieriacutea directa de un Diagrama de Secuencias estableciendo la validacioacuten en la construccioacuten de todos los elementos visuales que UML define

La propagacioacuten de las modificaciones de un Diagrama de Secuencias a los Diagramas de Clases y los Diagramas de Warnier

La modificacioacuten del coacutedigo fuente mediante los cambios establecidos en un Diagrama de Secuencias

51

[ALC03]

[BLA98]

[B0099]

[BOOOi]

[BR097]

[CHA90]

[DAN02]

[GLA02]

[HAC98]

[HER03]

4

Alcate1 Computer Associates International inc Electronic Data Systems Corporation Hewlett-Packard Company IBM Corporation I-Logix IntelliCorp Kabira Technologies Kennedy Carter Microsoft Corporation Object Management Group Oracle Corporation Project Technology Ptech Inc Rational Software Corporation Reich Technologies Softeam Taskon A S Telelogic Unisys Corporation ldquoOMG Unified Modeling Language Specificationrdquo Version 15 Unified Modeling Language 2003

Blaha Michael Rumbaugh James Premerlani William Eddy Frederick Lorensen William ldquoObject-oriented modeling and designrdquo Prentice Hall 484 Paacuteginas ISBN 0-13-629841-9 QA-769-03S-B53-19981998

Booch Grady Rumbaugh James Jacobson Ivar ldquoEl lenguaje unificado de modeladordquo Addison Wesley 432 Paacuteginas ISBN 84-7829-028-1 1999

Booch Grady Rumbaugh James Jacobson Ivar ldquoThe Unified Modeling Language User Guiderdquo Addison Wesley 2001

Brown David ldquoAn introduction to object-oriented analysis objects in plain Englishrdquo John Whiley amp Sons Inc 700 Paginas ISBN 0-471-1 1028-0 QA-769-035-B76-1997 1997

Chang Shi-Kuo ldquoVisual Languages and visual programmingrdquo Plenum Press 340 Paacuteginas ISBN 0-306-43428-8 QA-7665-V57-1990 1990

Daniels John ldquoModeling with a sense of purposerdquo Design - IEEE Software JanuaryEebmary 2002

Glasgow Universidad Reino Unido ldquoA UML Editor in Javardquo (lthttplstudentsdcsglaacuWstudentspainjfproject-reportproject-re port-htmV4thYearReporthtrnlgt 2002)

T Hackos JoAnn C Redish Janice ldquoUser and Task Analysis for Interface Designrdquo Wiley Computer Publishing 488 Paacuteginas ISBN QA-769-U83- H33-1998 1998

Hemaacutendez Velaacutezquez M ldquoIngenieriacutea inversa de coacutedigo fuente en C++ para la obtencioacuten de su disentildeordquo Tesis AT-379 (03-0334) 2003

Conceptos generales

[HIX93]

[JAC93]

[JAC99]

[JOY98]

[LAR97]

[MAR]

[MIC99]

[MIC02]

[MOU98]

Hix Deborah Hartson H Rex ldquoDeveloping user interfacesrdquo 381 Paacuteginas ISBN 0-471-57813-4 QA-769-U83-H59-1993 1993

Jacobson Ivar Christerson Magnus Jonsson Patrik Overgaard Gunnar ldquoObject oriented software engineeringrdquo Addison Wesley ISBN 0-20 1 - 54435-0 QA-7676-D47-J63-1993 1993

Jacobson Ivar Booch Grady Rumbaugh James ldquoEl proceso unificado de desarrollo de softwarerdquo Addison Wesley 438 Paacuteginas ISBN 84-7829-036- 2 1999

Joyanes Aguilar Luis ldquoProgramacioacuten orientada a objetosrdquo McGruw Hill ISBN 84-481-0590-7 1998

Larman Craig ldquoAplying UML and Patternsrdquo Prentice Hull 507 Paacuteginas ISBN 0-13-748880-7 QA-769-035-L37-1997 1997

Marriot Kim Meyer Bemd ldquoVisual Language Theoryrdquo Springer 381 Paacuteginas P-935-V567-1998 1998

Microsoft ldquoMicrosoft Visual C++ 6 manual del programadorrdquo McGraw Hill ISBN 84-481-2127-9 QA-7673-Cl53-23718-1999 1999

Microsoft ldquoVisiordquo (lthttpwwwmicrosoftcomofficevisiogt 2002)

B Mourao Luis X ldquoUniversal Modeling Language Part 11 UML Notation - Case Sequence and Collaboration Diagramsrdquo Lan Times Magazine (~httpwwwlantimescomltpartsdiscussdiscuss6Ohtm~) 1998

No Magic ldquoMagicDrawrdquo (lthttpwwwmagicdrawcomgt 2002)

Object Insight ldquoJvisionrdquo (lthttpwwwobject-insightcomgt 2002)

Rational Software Microsoft I Hewlett-Packard Oracle Sterling Software MCI Systemhouse Unisys ICON Computing IntelliCorp i-Logix IBM ObjectTime Platinum Technology Ptech Taskon Reich Technologies Sofieam ldquoUML Summaryrdquo Version 11 Unified Modeling Language 1997

Rational ldquoRational Roserdquo (lthttpwwwrationalcomproductosrosegt 2002)

Rikki Kirzner ldquoAnalysis Modeling and Design Tools Market Forecast and Analysis 2001-2005rdquo Bulletin Published Under Services Application Design and Construction Tools Application Development and Deployment Strategies Documento Nuacutemero 24809 Junio 2001

53

Conceptos generales

[RIM92] Rimrner Steve ldquoGraphical user interface programmingrdquo 423 Paacuteginas

1992

Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language reference manualrdquo Addison Wesley 550 Paacuteginas ISBN 0-201-

ISBN 0-8306-2475-9 ISBN 0-8306-2472-4 (pbk) QA-769-083-R55G

[RUM99]

30998-X QA-7676-D47-R85-1999 1999

[RUM299] Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language user guiderdquo Addisoiz Wesley 482 Paacuteginas ISBN 0-201 -57 168-4 QA-7676-D47-B66-1999 1999

[SMA02] SmartDraw ldquoSmartDrawrdquo (lthttpwwwsmartdrawcomgt 2002)

[SHU88] 9 - Shu Nun C ldquoVisual Programmingrdquo Van Nostrand Reinhold ISBN 0-422- 28014-9 ISBN 0-422-01 164-4 QA-7665-S55 1988

[THI90] Thimbleby Harold ldquoUser Interface Designrdquo Acm press 470 Paacuteginas ISBN 0-201 -41 61 8-2 QA-769U83-T772~- 1990 1990

[WENO2] Wences Diaz MF ldquoModelo de Ingenieriacutea Inversa para la obtencioacuten de disentildeo detallado basado en LEVISSrdquo Tesis (02-0014) 2002

54

Anexo A

Conampuracioacuten de Microsoft Vkua[C++ 6 O

Este anexo indica las configuraciones que se utilizaron para la compilacioacuten de SCUML y s3c

Configuracioacuten de Microsoft Visual c++ 60

Debido a la integracioacuten de los proyectos de InverSOODA e InverDDVi con S3C se cumplioacute con los requisitos previos de ambos proyectos

El compilador usado en el proyecto fue el Microsoft Visual C++ 60

Para el cumplimiento con la funcionalidad de InverSOODA se instaloacute el ANTLR la versioacuten 271 Se descargoacute del sitio l i l l ~ ~ ~ ~ ~ ~ t l ~ l ~ - ~ t - ~ la versioacuten mencionada en un archivo comprimido (en formato zip) Se colocoacute el paquete descomprimido en el directorio ldquoDIANTLR-271 I rdquo

Recomiendo ampliamente que el directorio principal de ANTLR se copie en el directorio raiacutez de cualquier unidad de disco debido a que experimenteacute problemas de compilacioacuten cuando ANTLR no se encontraba en el directorio raiacutez

Io015

Source Browser AlttF12 I u c Ersquo V I

Visual Component Mgnager

- - ~ ~ ~ ~~

P2 Registrar control

A Contenedor de prueba de controles ActiveX

A Usor de objetos OLE y COM

Buacutesqueda de errores

A Y++ MFC Iracer

Customize options

~ - q- ~ Macro

Eecord Quick Macro Cbl+ShiR+R Pay Quick Macro Ctrl+ShiR+P

En el menuacute Tools (Herramientas) seleccione el sub-menuacute Options ltopcionesgt

56

Configuracioacuten de Microsoft Visual C++ 60

En la siguiente ventana de diaacutelogo debe agregar la direccioacuten en donde se encuentra el ANTLR

Agregar la ruta del directorio de ANTLR hasta el subdirectorio

libcpp

Editor I Tabs I Debug I Compatibility 1 Build Dneclolies I a I Chow directories for - Platfolm -

- Directories I x ) 4 jWin32 -] llnclude files

m cancd I

57

Configuracioacuten de Microsoft Visual C t+ 60

Se ha creado una libreriacutea (anrlrliblib) de ANTLR la cual ya estaacute situada en el directorio del proyecto SCUML (ISCUML) y no debe ser movida o eliminada

I

Geneial 1 Debug I CC++ Link I Category

Output file name bebugSCUMLexe

Objectljibrary modules 4 anllrliblib

li Generate debug lnfo r Ignore all defaull lbaries D ~ i n k j n ~ ~ ~ t a n ~ r ~ e n e r ~ ~ ~ mapfile

r Enable psafilrng

Proiec1 Ootionn

pq Cancel 1 Libreriacutea de ANTLR que debe existir 1 I para que se compile correctamente

58

Anexo B

~ u iacute aacute raacutepida de uso deC Sistema S3C

5 Este anexo indica de forma raacutepida la manera de utilizar S3C para crear un diagrama de secuencias de forma automaacutetica

Guiacutea Raacutepida de uso del Sistema S3C i

Para indicar la creacioacuten de un diagrama de secuencias en forma automaacutetica se debe ir a la barra del costado izquierdo y presionar ldquoNuevo Proyecto SCUMLrdquo

I s3c I ~ Nuevo Proyecto SCUML ~ _ _ - I Diagrama de clases ~ Diagrama de secuencias 1 MDI DOC Activo

-

Apareceraacute un documento llamado ldquoSCUMLV en donde el simbolo corresponde a un numero consecutivo iniciando desde 1 (uno)

$ e Despueacutes se presiona ldquoDiagrama de clasesrdquo Habraacute que para indicarle al sistema si se requiere abrir un diagrama de clases existente o realizar uno nuevo

i

iquestAbrir un documento existente

No Cardquo~ear

AI presionar ldquoSirdquo se debe indicar cual es el archivo del diagrama de Clases en el cuadro de diaacutelogo siguiente

~~ - 11dMis documentos rsquo 2 M i P C i lsquo h s sitios de red

I

AI presionar ldquoNordquo en ldquoAbrir un documento existenterdquo se nos mostraraacute un documento vacio para crear un diagrama de clases

60

Guiacutea Raacutepida de uso del Sistema S3C

Para ambas opciones se requiere que los diagramas de Wamier ya se encuentren construidos Y para continuar el proccso se selecciona el documento ldquoSCUMLVrsquo creado al inicio y despueacutes presionar el botoacuten nombrado ldquoDiagrama de secuenciasrdquo localizado en la barra de hcrraiiiicntas del costado izquierdo

Ha iniciado el proceso de construccioacuten del diagrama de secuencias Si no existen errores al terminar el proceso se le mostraraacute un cuadro de diaacutelogo llamado ldquoResultadosrdquo en donde le mostraraacute las llamadas de las que no localizoacute su definicioacuten

- - -

Cancel 1 D e las siguientes llamadas es posible que esten mal escritas o peitenezcan a la libreiia del Lenguaie Verifique ya que no se encontraron sus definiciones

A continuacioacuten se mencionan los posibles errores que finalizan el proceso de la creacioacuten automaacutetica de los diagramas de secuencias en S3C

Cuando no exista un meacutetodo lsquomainrsquo definido en el diagrama de clases

No se encontro el meacutetodo lsquomain()rsquo que inicie la secuencia I A No se puede crear el diagrama de secuencias

p==amp=q

61

Guia Raacutepida de uso del Sistema S3C

Cuando se definan niultiples metodos lsquoinainrsquo en el diagrama de clases

Multiples meacutetodos lsquomainOlsquo Imposible decidir el inicio de secuencia

Aceptar i

Si un meacutetodo definido en Wamier realiza una llamada a lsquomainrsquo se cancelara el proceso

Llamada NO VALIDA al meacutetodo principal main

(iAcp-j(

4 i

CI Y rdquoldquoldquoI i 11 1-T

IZNTRO Gt INFORMACION

62

  • Tabla de Contenido
  • Listado de Figuras
  • Listado de Tablas
  • Notacioacuten
  • Introduccioacuten
  • Capitulo 1 Conceptos Generales
    • 11 Antecedentes
    • 12 Trabajos relacionados
      • 121 Tabla comparativa
        • 13 Definicioacuten del problema
        • 14 Objetivo de la Tesis
          • Objetivos especiacuteficos de la tesis
            • 15 Hipoacutetesis de investigacioacuten
            • 16 Alcances y limitaciones del trabajo de tesis
              • Capitulo 2 Marco Teoacuterico
                • 21 Modelado de sistemas de software
                • 22 Interfaz de usuario (Mecanismos de interaccioacuten)
                • 23 Lenguajes Visuales
                • 24 Programacioacuten orientada a objetos
                • 25 Lenguaje de Modelado Unificado (UML)
                  • Desarrollo de la herramienta
                    • 31 Disentildeo de la Arquitectura
                      • 311 Requisitos (Diagrama de Casos de uso)
                        • 312Modelo Conceptual
                        • 313Diagramas de clases
                        • 32 Elementos de la arquitectura
                          • 321 Microsoft Foundation Class (MFC)
                            • 322Arquitectura Documento Vista
                            • 323Integrando Ambientes en Visual c++
                              • 324 Interfaz de Muacuteltiples Documentos (MDI)
                                • 325Recursos Diaacutelogos Menus y Barras de Herramientas
                                  • 326 Notacioacuten estaacutendar
                                  • 327 Estructura de datos persistencia y recuperacioacuten
                                    • 328Patrones de disentildeo utilizados
                                      • 33 Diagrama de secuencias
                                        • 331Ciclo de vida del software
                                          • 34 Elementos atoacutemicos de la Gramaacutetica
                                            • 341 Representacioacuten visual
                                              • 35 Gramaacutetica desarrollada
                                              • 36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias
                                                  • Capitulo 4 Pruebas y Resultados
                                                    • 41 Recursos teacutecnicos utilizados
                                                    • 42 Descripcioacuten del plan de pruebas
                                                    • 43 Resultados
                                                      • 431 Caso
                                                      • 432 Caso2
                                                      • 433 Caso
                                                          • Conclusiones y trabajos futuros
                                                            • Trabajos futuros
                                                            • Referencias
                                                            • Anexo A Configuracioacuten de Microsoft Visual C+t
                                                              • Figura 11 - Arquitectura de la suite cenidet-UML
                                                              • Figura 21 -Programacioacuten Visual
                                                              • Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de
                                                              • Figura 32 -Diagrama de Casos de Uso para el S3C
                                                              • Figura 33 -Modelo Conceptual
                                                              • Figura 34 - Diagrama de Clases -Control del Diagrama -
                                                              • Figura 35 - Diagrama de Clases - Patroacuten Visitor -
                                                              • Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento
                                                              • Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)
                                                              • Figura 38 -Dialogo Caracteriacutesticas del Objeto
                                                              • Figura 39 -Dialogo Mensaje
                                                              • Figura 3 IO - Menuacute de los Diagramas de Secuencias (estaacutendar)
                                                              • Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias
                                                              • Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)
                                                              • Figura 313 - Serializacioacuten
                                                              • Figura 314 -Modelo de cascada del ciclo de vida del software
                                                              • Figura 41 - Resultado del caso de prueba
                                                              • Figura 42 -Resultado del caso de prueba
                                                              • Figura 43 -Resultado del caso de prueba
                                                              • Figura 44 -Resultado del caso de prueba
                                                              • Tabla 11 - Tabla comparativa
                                                              • Tabla 31 -Prefijos estaacutendar de identificadores
                                                              • Tabla 32 -Elementos atoacutemicos del lenguaje
                                                              • Tabla 41 - Resumen de los resultados de las pruebas realizadas

Conceptos generales

Limitaciones de la tesis

0 No se genera coacutedigo

La investigacioacuten se limita a los diagramas de clases para la vista estaacutetica de los sistemas de software y a los diagramas de Warnier para la vista dinaacutemica de los meacutetodos El ambiente no trabaja en red

No se modifican los archivos de InverSOODA No se modifican los archivos de InverDDVI No se recuperan diagramas de secuencias a partir de coacutedigo legado

4

8

Capiacutetulo 2

Narc0 teoacuterico

En eacuteste capiacutetulo se describen los temas usados para el desarrollo de la tesis iquestQue son los modelos iquestEn que parte del proceso de Ingenieriacutea del Software se usan los modelos o el modelado Se estudia la interfaz de usuario los lenguajes visuales y las gramaacuteticas visuales Se describe el Lenguaje de Modelado Unificado (UML) ademaacutes de la programacioacuten orientada a objetos por ser este paradigma en donde se enfoca este trabajo

Marco teoacuterico

21 Modelado de sistemas de software

un modelo es una abstraccioacuten de algo con el propoacutesito de entenderlo antes de construirlo El modelo omite detalles no esenciales haciendo maacutes faacutecil su manipulacioacuten que la entidad original [BLA98] Un modelo es la simplificacioacuten de la realidad [RUM99] Los propoacutesitos de los modelos son

Probar una entidad fisica antes de construirla Establecer mejor comunicacioacuten con los clientes Visualizar el problema y el sistema desde una mejor perspectiva Reducir la complejidad [BLA98] Capturar y precisar requerimientos y conocimiento del dominio Pensar acerca del disentildeo del sistema Capturar decisiones de disentildeo en una fomia separada que cambia a partir de los requerimientos Generar productos Organizar buscar filtrar obtener examinar y editar informacioacuten acerca de un sistema Explorar muacuteltiples soluciones econoacutemicas Manejar sistemas complejos [RUM99]

El modelado es una probada y bien aceptada teacutecnica de Ingenieriacutea de Software [RUM99] El modelado es parte central de todas las actividades que conducen a la produccioacuten de buen software Se construyen modelos para comunicar la estructura deseada y revisar el comportamiento de nuestro sistema Se construyen modelos para visualizar y controlar la arquitectura del sistema Se construyen modelos para comprender mejor el sistema que estamos construyendo muchas veces descubriendo oportunidades para la simplificacioacuten y la reutilizacioacuten Se construyen modelos para controlar el riesgo [BOO99] La razoacuten fundamental por la que modelamos es porque nosotros construimos modelos que nos ayudan a entender mejor el sistema que estamos desarrollando [RUM99]

El modelado nos permite [RUM99] 1 Visualizar como es el sistema o como queremos que sea 2 Especificar la estructura del sistema 3 Plantear nuestras guiacuteas en la construccioacuten delsistema 4 Documentar las decisiones que hemos tomado

En las etapas del desarrollo del software el modelado es usado en el disentildeo el disentildeo del sistema es la primera etapa en donde se da la aproximacioacuten baacutesica de la solucioacuten al problema seleccionado ademaacutes se decide por la estructura (arquitectura del sistema) y el estilo de la solucioacuten

La arquitectura del sistema provee el contexto sobre el cual se tomaraacuten decisiones mas detalladas en las etapas subsecuentes del disentildeo [BLA98] En el disentildeo modelamos el sistema y encontramos su forma (incluida la arquitehra) para que soporte todos los 3 -

10

Marco teorico

i

4 -I

requisitos -incluyendo los requisitos no funcionales y otras restricciones- que se le suponen [JAC99] Los propoacutesitos del disentildeo son

Adquirir una comprensioacuten en profundidad de los aspectos relacionados con 10s requisitos no funcionales y restricciones relacionadas con los lenguajes de programacioacuten componentes reutilizables sistemas operativos tecnologiacuteas de distribucioacuten y concurrencia tecnologiacuteas de interfaz de usuario tecnologiacuteas de gestioacuten de transacciones etc Crear una entrada apropiada y un punto de partida para actividades de implementacioacuten subsiguientes capturando los requisitos o subsistemas individuales interfaces y clases Ser capaces de descomponer los trabajos de implementacioacuten en partes mas manejables que puedan ser llevadas a cabo por diferentes equipos de desarrollo teniendo en cuenta la posible concurrencia Capturar las interfaces entre los subsistemas Esto ayuda cuando reflexionamos sobre la arquitectura y cuando utilizamos interfaces como elementos de sincronizacioacuten entre diferentes equipos de desarrollo Ser capaces de visualizar y reflexionar sobre el disentildeo utilizando una notacioacuten comuacuten Crear una abstraccioacuten independiente de la implementacioacuten del sistema en el sentido de que la implementacioacuten es un refinamiento directo del disentildeo que rellena lo existente sin cambiar la estructura Esto permite la utilizacioacuten de tecnologiacuteas como la generacioacuten de coacutedigo y la ingenieriacutea de ida y vuelta entre el disentildeo y la implementacioacuten [JAC99]

22 Interfaz de usuario (Mecanismos de interaccioacuten)

El crecimiento de las computadoras personales vendidas en los ~ O rsquo S lanzoacute con fuerza el ldquofaacutecil de usarrdquo como una de las caracteriacutesticas mas importante de un producto de computadora

Las interfaces graacuteficas de usuario no son nuevas se pueden encontrar en las paredes de cuevas al sur de Francia en las piraacutemides de Egipto y en las paredes de muchas ciudades [iUM92] Para el usuario de un sistema interactivo la comunicacioacuten es tan importante como la computacioacuten Para los usuarios regularmente la interfaz es el sistema [HIX93]

Disentildeo de Interfaz Seguacuten Hackos [HAC98] las interfaces estaacuten en todo donde se trabaja con

o Controles en productos de hardware o Etiquetas y sentildeales en el hardware o Pequentildeas pantallas de cristal liquido en maacutequinas de cualquier tipo o Pantallas para aplicaciones de software para terminales de computadoras centrales

Marco teoacuterico

o pantallas para aplicaciones de software en computadoras Personales sistemas operativos como Windows OS2 DOS Macintosh U n b Y Otros

0 Paacuteginas de un sitio WEB 0 Sistemas de ayuda y manuales en-liacutenea 0 Tutoriales incrustados y otros tipos de soporte de funcionamiento O Esquemas de formas y otros documentos

una interfaz es el medio con el cual los usuarios interactuacutean con el producto 0

sistema para lograr SUS objetivos

Interfaz Usable

Para que una interfaz sea usable debe ser transparente y darles a los usuarios la capacidad de lograr cumplir sus metas de forma efectiva y eficiente

Los beneficios presentados en el uso de las interfaces de usuario [TH190] Disfrutar el sistema El usuario disfruta trabajar con un sistema que cuenta con una interfaz bien disentildeada y que le da la funcionalidad y acceso a los recursos de una manera clara y sencilla Proporciona nuevas habilidades Elimina al usuario concentrarse en acciones que la propia interfaz y el sistema hacen dando como resultado que el usuario solo se concentre en lo importante del trabajo Delegacioacuten de tareas La interfaz de usuario permite al usuario no conocer los detalles de la tarea esto es la computadora atiende los detalles de las tareas mientras que el usuario se concentra en asuntos de maacutes alto nivel Seguridad El usuario no necesita estar en lugarespeligrosos para hacer su trabajo

Se da la mayor posibilidad para que el usuario tenga acceso al conocimiento utilizando un sistema interactivo Haciendo las cosas a la primera Las tareas se ejecutan en un orden correcto definido lo que da como resultado un trabajo bien terminado sin necesidad de repetir evitando asiacute altos costos Computando LOS usuarios pueden calcular datos sin necesidad de conocer el proceso para obtener los resultados

Desarrollo

El disentildeo de interfaz es un negocio bastante dificil Eacuteste combina dos complicadas disciplinas psicologiacutea y ciencias de la computacioacuten Estas disciplinas tienen un fondo cultural muy diferente la psicologiacutea atiende a la gente (comprensioacuten y entendimiento) las ciencias computacionales a las maacutequinas (matemaacuteticas y precisioacuten) El disentildeo de las buenas interfaces requiere que estas dos perspectivas esteacuten unidas [THi90]

Hackos dice que las interfaces dan simplicidad y elegancia al trabajo necesario y a la vida e los usuarios Si no es obvio al usuario pero es raacutepida para aprender [HAC98] ademaacutes define caracteriacutesticas comunes de las interfaces usables

o Hacen que el flujo de trabajo sea familiar o confortable o Soportan el estilo de aprendizaje de los usuarios

12

Marco teoacuterico

Visualizacioacuten de Entrenamiento visual Para controlar Soportar interaccioncs Programar con informacioacuten visual visuales expresiones visuales

o Compatibles con los ambientes de trabajo de los usuarios o Se extienden sobre un concepto de disentildeo que es familiar al usuario o Tienen consistencia de presentacioacuten que los hace parecer maacutes confiable y faacuteciles de

aprender o Usan lenguaje y figuras familiares al usuario o faacuteciles de aprender

Datos o informacioacuten acerca de datos

23 Lenguajes Visuales

Los lenguajes visuales son un nuevo paradigma para expresar los sistemas computacionales Ellos ofrecen la posibilidad de manipular directamente los objetos Un lenguaje visual consiste de sentencias visuales Para lenguajes visuales basados en iacuteconos cada sentencia visual es un arreglo espacial de objetos O iacuteconos graacuteficos [CHA90]

Un lenguaje visual es concebido como una coleccioacuten de figuras obtenidas por un arreglo graacutefico de objetos en dos o maacutes dimensiones Los lenguajes visuales pueden ser modelados sintaacutecticamente a traveacutes de un vocabulario un conjunto de relaciones usadas para componer las figuras y un conjunto de reglas describiendo las figuras pertenecientes al lenguaje Los objetos graacuteficos de un vocabulario de un lenguaje visual se caracterizan por contar con un conjunto de atributos Los atributos de un objeto graacutefico pueden ser atributos graacuteficos atributos sintaacutecticos y atributos semaacutenticos [MAR98]

Un lenguaje de programacioacuten visual puede ser informalmente definido como un lenguaje el cual usa algunas representaciones visuales [SHV88]

Programa ylo Disentildeo de Lenguajes de programacioacuten visual ejecucioacuten software Diagramas iconos Formas

Programacioacuten Visual [SHU88]

Gramaacuteticas para la especificacioacuten de lenguajes visuales [MAR98]

a) Gramaacuteticas texfuales generalizadas Este tipo de gramaacutetica provee una adaptacioacuten apropiada de la concatenacioacuten de siacutembolos para dos dimensiones Su principal ventaja es que conservan los elementos teoacutericos de las gramaacuteticas textuales y los eficientes algoritmos de anaacutelisis de eacutestos uacuteltimos Su principal desventaja es que eacutestas gramaacuteticas no son tan poderosas y soacutelo pueden especificar clases restringidas de lenguajes visuales

13

Marco teorico

b) Meacutetodos basados en gramaacuteticas de grafos Un ejemplo de este tiPo de gramaacuteticas son las gramaacuteticas de red Las oraciones generadas con gramaacuteticas de red son grafos dirigidos con siacutembolos en los nodos Estos grafos son llamados redes Una produccioacuten de eacuteste tipo de gramaacuteticas es de la siguiente forma

a - t p E

donde a y p son redes y E es una forma de conectar a p cuando a es conectada a otra red anfitriona

La mayor desventaja es que las gramaacuteticas de red no han probado ser totalmente uacutetiles para la especificacioacuten de gramaacuteticas arbitrarias por la complejidad para rescribir grafos y al hecho de que no todo lenguaje visual estaacute compuesto exclusivamente por grafos

C) Gramaacuteticas de multiconjuntos de atributos En estas gramaacuteticas las producciones rescriben conjuntos o multiconjuntos de siacutembolos que tienen atributos con informacioacuten sobre geometriacutea o semaacutentica La reescritura se controla con restricciones sobre los atributos de los siacutembolos en el lado derecho de las producciones

Un ejemplo de eacutestas gramaacuteticas es la Gramaacutetica Coordinada que especifica notacioacuten matemaacutetica de dos dimensiones En esencia las producciones en una gramaacutetica coordinada n-coordinada libre del contexto tienen la siguiente forma

A -t a donde C F

Todos los siacutembolos de eacuteste tipo de gramaacutetica tienen n atributos geomeacutetricos A es un siacutembolo no terminal a es una cadena no vaciacutea de siacutembolos C es una restriccioacuten sobre los atributos de los siacutembolos en a y F es una expresioacuten que computa los atributos de los siacutembolos de A en teacuterminos de los atributos de los siacutembolos en a no importando el orden de los siacutembolos en a

d) Gramaacuteticas PosicionaZes Las gramaacuteticas posicionales son un formalismo para la definicioacuten e implementacioacuten de lenguajes visuales las gramaacuteticas posicionales extienden naturalmente a las gramaacuteticas libres de contexto Una gramaacutetica libre de contexto posicional PG es una six-tupla (N T S P POS PE) donde

N es un conjunto finito no vaciacuteo de siacutembolos no terminales T es un conjunto finito no vaciacuteo e siacutembolos terminales con N n T = $I S E N es el siacutembolo no terminal de inicio P es un conjunto finito de producciones POS es un conjunto finito de identificadores de relacioacuten binaria PE es un evaluador pictoacuterico

14

Marco teorico

Cada produccioacuten en P tiene la siguiente forma

A -+ X I R I X R2 X ~ I Rm1 xm A

e) Gramaacuteticas de Relacioacuten de siacutembolos Eacuteste es un formalismo sintaacutectico para describir un lenguaje visual donde cada oracioacuten dentro del lenguaje se representa como un conjunto de objetos visuales y un conjunto de relaciones entre objetos

El alfabeto de siacutembolos Vt y el conjunto de relaciones entre siacutembolos Vr una oracioacuten de relacioacuten de siacutembolos w sobre Vt y Vr es un par ( M R) donde

M es un conjunto de elementos-s (v i) con v E Vt y i es un nuacutemero natural R es un conjunto de elementos-r de la forma r (Xi Yj) con Xi Yj E M r E Vr y una relacioacuten r esta contenida entre Xi y Yj

Una gramaacutetica de relacioacuten de simbolos es el conjunto de seis elementos G = (Vn Vt Vr S P R) donde Vn es un conjunto de siacutembolos no terminales Vt es un conjunto de siacutembolos terminales Vr es un conjunto de relaciones entre siacutembolos S es el siacutembolo inicial y P es un conjunto de reglas de reescritura (producciones de elementos-s)

f) Gramaacuteticas relacionales Este tipo de gramaacutetica pertenecen a las gramaacuteticas libres de contexto

La gramaacutetica relaciona1 (RGrsquos) es una 6-tupla G (N C S R Attr P) donde

N C S R Attr P

es un conjunto finito de siacutembolos no terminales es un conjunto de siacutembolos terminales es un siacutembolo distinguido en N llamado siacutembolo inicial es un conjunto finito de siacutembolos de relacioacuten es un conjunto finito de siacutembolos de atributos es un conjunto de producciones de la forma A-gt apF donde A E N a E (nlo)+ Donde n E N cr E E

8 Es un conjunto de relaciones de la forma (r x y) donde r E R y xy son enteros que hacen referencia a un miembro de a y tambieacuten una expresioacuten de la forma (a i) donde a E Attr e i es un entero que hace referencia a un miembrode a

F Es un conjunto de declaraciones de asignacioacuten de caracteriacutesticas de la forma (a O)=x donde a E Attr y x es un entero que hace referencia a un miembro de a o a una expresioacuten de la forma (a i)

15

Marco teoacuterico

24 Programacioacuten orientada a objetos

L~~ meacutetodos orientados a objetos organizan la informacioacuten Y el procesamiento que manipula esta informacioacuten de acuerdo a los objetos delrsquomundo real que la informacioacuten describe [BRO97l

Beneficios de las teacutecnicas orientadas a objetos [BR097] Estabilidad del sistema Mantenibilidad Componentes reusables Confiabilidad Accesibilidad de los datos Participacioacuten del usuario

Seguacuten Graddy Booch la programacioacuten orientada a objetos es ldquoun meacutetodo de implementacioacuten en el que los programas se organizan como colecciones cooperativas de objetos cada uno de los cuales representan una instancia de alguna clase y cuyas clases son todas miembros de una jerarquiacutea de clases unidas mediante relaciones de herenciardquo [JOY 981

Programacioacuten orientada a objetos esencialmente significa programacioacuten usando objetos [JAC93] Los lenguajes orientados a objetos deben soportar los siguientes conceptos

Objetos Abstraccioacuten de datos Encapsulamiento Clases e Instancias Herencia entre clases Polimorfismo

Las propiedades fundamentales de la Programacioacuten Orientada a Objetos son

a Abstraccioacuten Son ideas conceptos y propiedades que se describen en forma general eliminando los detalles Es una estructura de datos y los meacutetodos que manipulan a esos datos

b Encapsulamiento Son las fronteras propias de un objeto bien definidas las cuales protegen los detalles de su representacioacuten interna

c Ocultacioacuten de la informacioacuten Es la propiedad en la que los objetos pueden hacer uso para impedir que otros objetos los usuarios o incluso los programadores conozcan coacutemo estaacute distribuida la informacioacuten

d Herencia Es la propiedad que tiene una clase para heredar atributos y comportamiento a otras clases

e Polirnorfismo Es la propiedad que permite que una entidad pueda cambiar a diferentes formas efectuaacutendose de manera dinaacutemica en tiempo de ejecucioacuten

16

Marco teoacuterico

t

Clases Es la especificacioacuten de una familia de objetos es la declaracioacuten de un tipo de objetos Tambieacuten se dice que una clase es la descripcioacuten de un conjunto de objetos con un comportamiento similar y que esta compuesta de Datos (o atributos) y Meacutetodos o (rutinas acciones operaciones)

Objeto Un objeto es una entidad en la cual se almacenan datos y los meacutetodos o funciones que controlan dichos datos Un objeto es una abstraccioacuten de alguna cosa del mundo real que contiene datos que lo describen y operaciones que solo tienen acceso a esos datos [BR097l Los elementos de los que esta conformado un objeto son

a Las relaciones permiten que el objeto se integre en la organizacioacuten b Las propiedades son los datos que caracterizan el estado de un objeto distinguiendo

asiacute a un objeto determinado de los restantes que forman parte de la misma organizacioacuten

c Los meacutetodos son las operaciones que pueden realizarse sobre la estructura del objeto es decir las acciones que cambian el estado de un objeto y que el objeto es capaz de ejecutar a traveacutes de mensajes y que tambieacuten pone a disposicioacuten de sus descendientes a traveacutes de la herencia

Mensajes Son solicitudes para que se lleve a cabo la operacioacuten indicada y se produzca un resultado

Las razones principales para introducir la tecnologiacutea de objetos son los beneficios de dicha tecnologiacutea

Aumento de la fiabilidad Aumento de la productividad del desarrollador Desarrollo maacutes raacutepido Mejor calidad maacutes alta

Incremento en escalabilidad Mejores estructuras de informacioacuten Incremento de adaptabilidad Reduccioacuten del coacutedigo fuente

Mantenimiento maacutes faacutecil y reduccioacuten de costo

Los elementos de reutilizacioacuten son las clases y objetos

25 Lenguaje de Modelado Unificado (UML)

UML (Unified Modeling Language por sus siglas en ingleacutes Lenguaje de Modelado Unificado) es un lenguaje de modelado visual de propoacutesito general que es utilizado para especificar visualizar construir y documentar las partes de un sistema de software El lenguaje estaacute basado en un pequentildeo nuacutemero de conceptos centrales que la mayoriacutea de los desarrolladores de tecnologiacutea orientada a objetos pueden aprender y aplicar faacutecilmente [RUM99]

17

Marco teoacuterico

y UML Pasado Presente y Futuro

L~~ lenguajes de modelado orientado a objetos aparecieron a mediados de 10s 70rsquos Varias teacutecnicas influenciaron estos lenguajes El nuacutemero de lenguajes de modelado incrementoacute desde menos de 10 hasta maacutes de 50 entre 1989 y 1994 Muchos modeladores teniacutean problemas para encontrar un lenguaje de modelado que satisficiera todas sus necesidades Notablemente aparecioacute Boochrsquo93 y la evolucioacuten continuoacute a OMT y Fusioacuten

OOSE (Object-Oriented Software Engineering) estaacute enfocado a la ingenieriacutea de negocios y anaacutelisis de requerimientos dando un excelente soporte orientado a casos de uso OMT-2 es especialmente expresivo para anaacutelisis y sistemas de informacioacuten de datos grandes Boochrsquo93 fue particularmente expresivo para el disentildeo y fases de construccioacuten de proyectos y popular para aplicaciones de ingenieriacutea intensiva

Grady Booch y Jim Rumbaugh iniciaron el desarrollo de UML en 1994 al unificar sus meacutetodos independientes Booch y OMT En 1995 Ivar Jacobson se unioacute a Racional eacutesta unioacuten logroacute que el meacutetodo OOSE se incorporara La unificacioacuten establecioacute que debiacutean activar el modelado de sistemas utilizando conceptos orientados a objeto asiacute como crear un lenguaje usable tanto para las maacutequinas como para los humanos

A

Muchas organizaciones se unieron al consorcio UML y dedicaron recursos al trabajo hacia el fortalecimiento de la definicioacuten de UML Esta colaboracioacuten produjo un lenguaje de modelado expresivo poderoso y generalmente aplicable En la forma actual de UML se espera que sea base de muchas herramientas incluidas las de modelado visual simulacioacuten y ambientes de desarrollo

R UML es abierto y no-propietario y aunque define un lenguaje preciso no es barrera para futuras mejoras en conceptos de modelado Se usan muchas teacutecnicas de punta pero se esperan teacutecnicas adicionales que influencien futuras versiones de UML puede ser extendido sin redefinir el nuacutecleo

c

Mientras el rehuacuteso basado en componentes se ha favorecido ampliamente cada vez mas esto no significa que las teacutecnicas basadas en componentes reemplazaraacuten las teacutecnicas orientadas a objetos Hay solo sutiles diferencias entre la semaacutentica de componentes y clases [ALC03]

Un opaco rendimiento caracterizoacute el mercado de anaacutelisis modelado y disentildeo en el 2000 en su transicioacuten de las viejas herramientas CASE (Computer Aided Software Engineering) a algo maacutes dinaacutemico y mejor adaptado para satisfacer las necesidades de los desarrolladores para el cambio raacutepido en los ambientes de negocio

El mercado de anaacutelisis modelado y disentildeo lograraacute obtener un crecimiento positivo en varios de los siguientes antildeos por varias razones El mercado seraacute manejado principalmente por la necesidad de desarrolladores a obtener aplicaciones para lanzarse al mercado raacutepidamente asiacute tambieacuten por el intereacutes creciente y uso de una nueva especie de herramienta y por el intereacutes creciente de los desarrolladores en usar UML reglas de negocios y adaptadores de componentes para construir aplicaciones [RIKUI]

z -

18

Marco teoacuterico

UML se ha hecho el estaacutendar para los desarrollos de modelado de negocios administracioacuten de requerimientos anaacutelisis y disentildeo programacioacuten y pruebas Los objetivos primarios de UML en el disentildeo [RAT97j

o Dar a los usuarios un lenguaje visual expresivo de modelado listo para usarse para que puedan desarrollar y cambiar los significados de sus modelos

o Suministrar mecanismos de extensibilidad y especializacioacuten para extender los conceptos centrales

o Ser independiente de lenguajes de programacioacuten particulares y procesos de desarrollo

o Impulsar el desarrollo de las herramientas Orientadas a Objeto en el mercado o Soportar conceptos de desarrollo de alto nivel como colaboracioacuten marcos de

componentes reutilizables patrones y componentes o Integrar las mejores praacutecticas

9 El aacutembito de UML

UML es un lenguaje para especificacioacuten construccioacuten visualizacioacuten y documentacioacuten de artefactos de un sistema de software UML es la fusioacuten de los conceptos de Booch OMT y OOSE El resultado es un simple comuacuten y ampliamente usado lenguaje de modelado para usuarios de estos y otros meacutetodos UML se enfoca en un lenguaje de modelado estaacutendar no en un proceso estaacutendar los autores de UML recomiendan un proceso de desarrollo manejado por casos de uso de arquitectura central iterativo e incremental [iiquest4T97l

Para la definicioacuten de sistemas de software en UML se definen diagramas Un diagrama es la representacioacuten graacutefica de un conjunto de elementos este se visualiza la mayoriacutea de las veces como un grafo conexo de nodos (elementos) y arcos (relaciones) Los diagramas se dibujan para visualizar un sistema desde diferentes perspectivas de forma que un diagrama es la proyeccioacuten de un sistema uumlML incluye nueve diagramas [B0099]

4 -

I Diagrama de clases 2 Diagrama de objetos 3 Diagrama de casos de uso 4 Diagrama de secuencias 5 Diagrama de colaboracioacuten 6 Diagrama de estados 7 Diagrama de actividades 8 Diagrama de componentes 9 Diagrama de despliegue

Diagramas de secuencias Un diagrama de secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten comportamiento

Un diagrama de secuencias muestra un conjunto de mensajes acomodados en una secuencia de tiempo eacuteste diagrama muestra la interaccioacuten en un esquema de dos - dimensiones [RUM99]

19

Marco teoacuterico

Y -

Un diagrama de secuencia es un diagrama de interaccioacuten que resalta la ordenacioacuten temporal de los mensajes Un diagrama de secuencia presenta un conjunto de objetos y los mensajes enviados y recibidos por ellos Los objetos suelen ser instancias (con nombre o sin nombres) de clases pero tambieacuten pueden representar instancias de otros elementos tales como colaboraciones componentes y nodos Los diagramas de secuencia se utilizan para describir la vista dinaacutemica de un sistema [B0099]

Usar los diagramas de secuencia es mostrar la secuencia que existe en un caso de uso [RUM 991

Los diagramas de secuencia tienen dos dimensiones Una dimensioacuten que representa el tiempo Otra dimensioacuten que representa los diferentes objetos que participan en la secuencia de eventos requeridos para completar el propoacutesito [MOuuml98]

El principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildea las interacciones de los objetos [DAN02]

20

Capiacutetulo 3

DesawoCCo de Ia herramienta

En este capiacutetulo se describe el desarrollo del Ambiente Visual Se describe el modelo conceptual del sistema la arquitectura asiacute como tambieacuten los elementos que componen la Arquitectura Se estudian los Diagramas de Secuencias de UML y algunos Patrones de Disentildeo de los que se hace uso para el mejor desarrollo del sistema Se describe a detalle la Gramaacutetica Visual Relaciona1 utilizada para el de Ambiente de desarrollo

I CENIOET 1FNTRO DE INFORMACION

Desarrollo de la herramienta

t i i

Actualmente existe en el cenidet un Ambiente Visual de Modelado de Clases llamado InverSOODA este Ambiente Visual tiene la capacidad de realizar la generacioacuten automaacutetica de coacutedigo de las clases en C++ a partir del modelo especificado Ademaacutes se puede realizar la Ingenieria Inversa de un coacutedigo legado para obtener el modelo de clases Aunado a este trabajo existe el Ambiente Visual denominado InverDDVi con el cual se puede realizar el Disentildeo Detallado de los Meacutetodos de las Clases con diagramas de Warnier Asiacute tambieacuten es posible obtener el modelo aplicando la Ingenieriacutea Inversa a un coacutedigo legado en C++

Ambos trabajos son retomados en este proyecto para la automatizacioacuten en la obtencioacuten de los Diagramas de Secuencias de UML La figura 31 muestra el modelo propuesto de ingenieriacutea directa

Extraer informacioacuten del diagrama de

rsquo rsquo

Diagrama de 11 clases I o

detallado de

detallado de

o meacutetodos

i ir---- Construir el

secuencias i

Modelo de Ingenieriacutea I directa automaacutetica

I

Figura 31 Modelo de Ingenieria Directa Autombtica de los Diagramas de Secuencias

Para la construccioacuten automaacutetica de un diagrama de secuencias se toma como base a un diagrama de Clases El modulo ldquoExtraer informacioacuten del diagrama de Clasesrdquo sirve para obtener el nombre y los meacutetodos descritos en cada uno de las clases que existan en el diagrama de Clases

22

Desarrollo de la herramienta

Con base en la informacioacuten que se tiene se abren los archivos correspondientes a los diagramas de Warnier El proceso que se emplea sobre cada uno los diagramas de Warnier llamado ldquoExtraer informacioacuten de los disentildeos detallados de los meacutetodosrdquo sirve para recopilar el conjunto de las llamadas de cada meacutetodo definido

En el siguiente paso (ldquoReconocer llamadas a meacutetodosrdquo) consiste en identificar si los meacutetodos que estaacuten descritos en los diagramas de Warnier tambieacuten lo estaacuten en el diagrama de Clases correspondiente

El paso ldquoConstruir los diagramas de secuencias automaacuteticamenterdquo realiza una validacioacuten de los meacutetodos definidos en los diagramas de Clases con los meacutetodos definidos en los diagramas de Warnier Este paso crea una estructura de datos con la secuencia de las llamadas y la recorre para crear los objetos y los mensajes en el diagrama de secuencias

AI terminar la creacioacuten automaacutetica del diagrama de secuencias se dispone de la r opcioacuten de guardar

31 Disentildeo de la Arquitectura

Para definir los procesos que el sistema va a realizar es necesario llevar a cabo un anaacutelisis de requisitos los cuales pueden ser expresados mediante diagramas de Casos de Uso Los Casos de Uso son una descripcioacuten textual narrativa de los procesos de un sistema

311Requisitos (Diagrama de Casos de uso)

Los casos de uso en realidad no son un artefacto de anaacutelisis orientado a objetos estos describen simplemente procesos y pueden ser igualmente efectivos en un proyecto tecnoloacutegico no orientado a objetos Son usados en un paso preliminar a la descripcioacuten de requerimientos de un sistema [LAR971 La Figura 32 muestra el diagrama de casos de uso que especifica al S3C

9

S3C (Diagramas de Secuencias)

usuario I Modelado de

I

Figura 32 Diagrama de Casos de Uso para el S3C

23

Desarrollo de la herramienta

Descripcioacuten de los Casos de Uso

Caso de Uso ldquoDiagramas de Secuenciasrdquo Se inicia cuando el actor ldquousuariordquo solicita la creacioacuten de un Diagrama de Secuencias Se establece la forma de la construccioacuten automaacutetica de los diagramas de secuencias de UML Se hace uso del Modelado de Clases y del Modelado del disentildeo detallado de los meacutetodos

Escenario de Eacutexito 1 Se obtiene la informacioacuten de las clases del modelado de clases 2 Se obtiene la informacioacuten del modelado del disentildeo detallado de los meacutetodos 3 Se realiza la construccioacuten automaacutetica de los diagramas de secuencias

1 En el modelo de clases no hay informacioacuten o estaacute incompleta 2 En el modelo del disentildeo detallado de los meacutetodos no hay informacioacuten o estaacute

incompleta

Escenario de Falla

Caso de Uso ldquoModelado de Clasesrdquo El diagrama de Clases se utiliza para obtener los nombres de clases y los nombres de los meacutetodos de cada clase

Escenario de Eacutexito 1 Se abre el modelo 2 Se procesa para obtener la informacioacuten de las clases (nombres de clases y nombres

de meacutetodos)

Escenano de Falla h 1 No se puede abrir el modelo J 2 El modelo esta vaciacuteo

Caso de Uso ldquoModelado del Disentildeo detallado 1 los meacutetodosrdquo El disentildeo detallado de los meacutetodos se realiza con diagramas de Warnier aquiacute se establecen las llamadas a funciones dentro del sistema y es aquiacute donde se identifica el dinamismo que se representaraacute en los diagramas de secuencias

Escenario de Eacutexito 1 Se abre el modelo 2 Se realiza la identificacioacuten de las llamadas existentes

Escenario de Falla 1 No se puede abrir el modelo 2 El modelo esta vaciacuteo

24

Desarrollo de la herramienta

Clase Objeto ni I Diagrama I n ____ Nombre Descripcioacuten

i

Mensaje

Tipo

En el Anaacutelisis Orientado a Objetos se crea una especificacioacuteii del dominio del problema y de los requeriinientos desde la perspectiva de una clasificacioacuten por objetos y del entendimiento de los teacuterminos usados en el dominio del problema Una descomposicioacuten del dominio del problema involucra una identificacioacuten de conceptos atributos y asociaciones que son considerados importantes dentro del dominio El resultado puede ser expresado en un Modelo Corzcepttraf el cual es ilustrado en un conjunto de diagramas que definen conceptos (objetos) [LAR97]

312Modelo Conceptual

El modelo conceptual visto en la Figura 33 no es una descripcioacuten de componentes de software representa conceptos en el domino del problema en el mundo Teal [LAR97l

313Diagramas de clases

Por cuestiones dc espacio las clases de la arquitectura del sistema estaraacuten referidas en varios diagramas que de alguna manera estaacuten relacionados entre si

Una de las partes maacutes importantes del Ambiente Visual S3C es la estructura de clases ltCCraJicogt la cual se refiere al control de los diagramas eacutesta por su naturaleza podriacutea considerarse el nuacutecleo del sistema La manipulacioacuten y control de los diagramas estaacute definido en una estructura de clases organizada con el patroacuten de disentildeo Composite que se muestra en la Figura 34

25

Desarrollo de la herramienta

CRecursividadDS CMensajeDS CObjetoDS CDiagramaDS

I Cvisitor I

CApuntadorDS CDblClickDS CAsocAdjusterDS CSelectorDS

26

Desarrollo de la herramienta

n 32 Elementos de la arquitectura

Es necesario describir los elementos que dan soporte a la arquitectura del ambiente donde se implementaraacute el sistema en este caso Microsoft Visual (MV) C++ 6 El MV C++ es un marco de aplicacioacuten poderoso basado en Windows se integran ademaacutes del lenguaje C++ (compilador y enlazador) el programa de desarrollo de programas en lenguaje C para Windows (SDK) la Microsoft Foundation Class Library AppWizzard Classwizard AppStudio y WorkBencli

La Microsoft Foundation Class Library comprende una biblioteca de clases de C++ y es considerada como el nuacutecleo del MV C++

321Microsoft Foundation Class (MFC)

La libreriacutea Microsoft Foundation Class (MFC) es una interfaz orientada a objetos que tiene las siguientes metas de disentildeo

o

Reduccioacuten significante de esfuerzo al escribir una aplicacioacuten para Windows Velocidad de ejecucioacuten comparable a las APIrsquos del lenguaje C Miacutenimo tamantildeo de coacutedigo Capacidad para llamar cualquier funcioacuten de Windows en C directamente Faacutecil conversioacuten de aplicaciones existentes en C a C++ Faacutecil uso de APIrsquos de Windows con C++ como con C Faacutecil uso de complicadas caracteriacutesticas de abstracciones poderosas como ActiveX soporte para base de datos impresioacuten barras de herramientas y barras de estado El API de Windows en C++ si usa tan efectivamente como las caracteriacutesticas mismas del lenguaje C++

La mayoriacutea de las clases de la Libreriacutea de la Microsoft Foundation Class son derivadas de una clase base ltCObjectgt que es la raiacutez de la jerarquiacutea de clases ltCObjectgt da uacutetiles capacidades a las clases que derivan de ella

La jerarquiacutea que existe en las clases derivadas de ltCObjectgt es la siguiente

Arquitectura de Aplicacioacuten Excepciones Servicios de Archivos Arreglos Listas Mapas Servicios de Internet Sockets Sincronizacioacuten Soporte para base de datos D A 0

27

Desarrollo de la herramienta

i

r

Liacutenea de Comandos Menuacute Dibujo Graacutefico Dibujo Graacutefico de Objetos Soporte de Control Soporte de Ventanas

Soporte para base de datos ODBC

o Marco de Ventanas o Barras de control o Hojas de propiedades o Cajas de Dialogo o Vistas o Controles

322Arquitectura Documento Vista

Por defecto las aplicaciones creadas con la MFC usan un modelo de aplicacioacuten que separa los datos del programa de las vistas de interaccioacuten con el usuario En eacuteste modelo un objeto documento de MFC lee y escribe datos en un almacenamiento persistente Un objeto vista administra el despliegue de datos suministrando al usuario los datos para ser seleccionados o editados La vista le comunica al documento cualquier cambio en los datos La razoacuten maacutes conveniente para seguir este modelo es cuando se necesita muacuteltiples vistas del mismo documento (como en una hoja de caacutelculo y un graacutefico)

La arquitectura documentovista hace faacutecil el soporte de muacuteltiples vistas y muacuteltiples tipos de documentos asiacute como la divisioacuten de ventanas y otras caracteriacutesticas de interfaz de usuario Pero el corazoacuten de la arquitectura son cuatro clases (Mostradas en el aacuterbol de clases de la Figura 36)

ltCDocumerrtgt (o ltCOleDocuinentgt) - Se instancia un objeto de este tipo para almacenar y controlar los datos del programa ltCViewgt (o una de sus clases derivadas ltCScrotlViewgt ltCFormViewgt ltCEditView ltCRecordViewgt ltCDaoRecordView ltCtreeViewgt ltCListViewgt b ltCrichEditViewgt) - Un objeto es usado para desplegar los datos y administrar la interaccioacuten del usuario con los datos ltCFrameWndgt (o una de sus variantes) - Establece el marco sobre el que trabajaraacuten una o mas vistas de un documento ltCDocTemolategt (o ltCSingIeDocTemplategt o ltCMultiDocTemplategt) - Coordina la existencia de uno o maacutes documentos de un tipo dado y administra la correcta creacioacuten de los documentos vistas y objetos ventanas para cada tipo

i

28

Desarrollo de la herramienta

______________ 2 Wiew

I - - __ - ------a ________________

323Integrando Ambientes en Visual C t t

Las aplicaciones de Interfaz de Documento Uacutenico (SDI) soporta muacuteltiples tipos de documentos pero este soporte es para un solo objeto documento Debido a esta restriccioacuten y aunado a la necesidad de tener varios objetos documentos a la vez se determina la utilizacioacuten del modelo Interfaz de Muacuteltiples Documentos (MDI) indicado en la Figura 37

324Interfaz de Muacuteltiples Documentos (MDI)

Una aplicacioacuten de Interfaz de Muacuteltiples Documento (MDI) permite la creacioacuten de plantillas para el manejo de los documentos eacutesta plantilla tiene la forma

rn-pDocTemplate = new CMultiDocTernplate ( I DR-SCUMLTY PE RUNTIME-CLASS (CSCUMLDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CTheView))

AddDocTernplate ( rn-pDocTemplate )

Cada plantilla describe una relacion del tipo de documento con la vista asociada La definicioacuten de la plantilla para el ambiente que controla los diagramas de secuencias es la siguiente

29

Desarrollo de la herramienta c

m-pTernplateSeqDlag = new CMultiDocTernplate ( IDR-DS-SJCTYPE RUNTIME-CLASS (CSeqDiagDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CSeqDiagView) )

AddDocTernplate( rn-pTernplateSeqDiag )

Esta plantilla hace uso de la clase CCliildFrame que por defecto el ambiente Visual C++ construye y esto es debido a que no se requieren caracteriacutesticas extras en las ventanas de las que proporciona dicha clasc En un caso en el que se requiriera un comportamiento diferente de la vista tendriacutea que crearse una nueva clase con las caracteriacutesticas deseadas

Vista Documento

Vista

I- Vista Documento I [ Tip- F Vista

L Figura 37 Modelo Interfaz de Muacuteltiples Documentos (MDI)

Para integrar otro Ambiente que utilice otro tipo de documento es necesario definir otra plantilla de la misma forma mencionada Debe tomarse en cuenta los siguientes puntos

Es necesario definir el nombre (mqTemplateNOMBRE) El IDR del tipo que se requiere que sea el documento En la primera liacutenea RUNTIME CLASS debe indicar la clase ltCDocumentgt que desea La segunda liacutenea RUNTIME-CLASS soacutelo la cambia a otra clase si requiere de otro manipulador de ventanas de lo contrario deje que ltCChildFramegt se haga cargo

-

30

Desarrollo de la herramienta

En la uacuteltima liacutenea referente a RUNTIME-CLASS se debe indicar la clase ltCViewgt que desea usar Para finalizar se usa la instruccioacuten AddDocTernplate para finalizar la definicioacuten del template (mgTemplateNOMBRE)

325 Recursos Diaacutelogos Mertuacutes y Barras de Herrattriertias

Son varios los recursos con los que se puede contar al crear un proyecto en Microsoft Visual C++ Los diaacutelogos son un recurso disponible que son utilizados para visualizar ingresar yo modificar informacioacuten que se requiera En el Ambiente Visual que se desarrolla son varios los diaacutelogos que se utilizaraacuten y eacutestos se describen a continuacioacuten

El Diaacutelogo ldquoCaracteriacutesticas del Obietordquo (Figura 38) identifica el nombre del Objeto y la descripcioacuten del mismo Este diaacutelogo se muestra cuando se presiona doble clic sobre un objeto del diagrama

I Nombre

Desciipcion

Figura 38 Dialogo Caracteriacutesticas del Objeto

El Diaacutelogo ldquoMensaierdquo (Figura 39) muestra el nombre del mensaje que puede ser modificado ademaacutes se visualizan el Identificador del Mensaje el tipo de Mensaje asiacute tambieacuten el origen y destino del mensaje

31

Desarrollo de la herramienta

Nornbie delMensaje Edit

IDentificador del Mensaje Edil Tipo de Mensaje (Edil

Edit Objeto Origen

Objeto Destino IEdit

i25El A Figura 39 Dialogo Mensaje

El menuacute es otro de los recursos del que se puede disponer para organizar el ambiente que se estaacute creando Para eacuteste caso en particular no se hizo modificaciones al menuacute estaacutendar (Figura 310) que Visual C++ presenta Los cambios significativos son el manejo del tipo de documento para los Diagramas de Secuencias

Archivo Editar Yer VenLana AyGda

Figura 310 Menuacute de los Diagramas de Secuencias (estaacutendar)

Otro importante recurso del que uno se puede valer en Visual C++ es la barra de herramienta personalizada la cuaacutel es construida en el Editor de Recursos Se ha construido una barra (Figura 311) con los elementos graacuteficos de los Diagramas de Secuencia de UML

Figura 311 Barra de Herramientas de los Diagramas de Secuencias

Es recomendable que al utilizar barras de herramienta personalizada se defina en el tamantildeo estaacutendar ya que puede experimentar problemas al momento de ejecutar la aplicacioacuten

Ademaacutes puede usar la propiedad TBBS-CHECKGROUP en una barra de herramientas para establecer que los botones puedan quedar presionados hasta que un botoacuten diferente sea presionado No olvide que la numeracioacuten inicia con cero ( O )

vuriableToolBurSetButtonStyle(OTBBSCHECKGROUP)

32

Desarrollo de la herramienta

Prefijo ID IDC IDD IDP IDR IDS

326 Notacioacuten estaacutendar

Los nombres descriptivos de los recursos se asocian a un valor uacutenico Para una mayor claridad eacutestos nombres mantienen un prefijo que describe el tipo de recurso asociado (vea la Tabla 31) [MIC99]

Tipo de Recurso Comandos de Menuacute Controles y recursos Cuadros de diaacutelogo Cadenas de solicitud para cuadros de mensaje Menuacute principal barras de herramienta tabla aceleradora y el icono Cadenas

IDR IDD IDC ID

200 - 299 3000 - 3999 34000 - 34999

Estos son los rangos de valores establecidos para el proyecto S3C Si se utiliza el coacutedigo fuente y se planea agregar otro proyecto verifisue que no se invadan estos nuacutemeros para evitar problemas

Para facilitar auacuten maacutes los trabajos futuros se ha definido una estructura de carpetas (ver Figura 312) para incluir en cada una las Clases correspondientes a cada tesis en desarrollo

33

Desarrollo de la herramienta

ill ~~ -

-I SCUML classes + U A N T L R + U App + 0 ClassDiagrams + 0 Common + a Java

t $2 SequenceDiagiams

+ WarnierDiagrams

iJ PackageDiagrams

12 StaterChartDiagrams

+

- f Classview I Resourceview 1 FileView ]

~ ~

Figura 312 Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)

327Estructura de datos persistencia y recuperacioacuten

Existe una gran cantidad de tipos de datos estructuras clases y meacutetodos de los que se puede hacer uso para una mejor y maacutes faacutecil obtencioacuten de los resultados A continuacioacuten hago comentarios en tipos de datos y meacutetodos en los que podriacutea tener problemas

CTypedPtrList

AI usar este tipo de dato o alguno relacionado que le permita utilizar el meacutetodo ltCTvrgtedPtrListGetNextgt tenga especial precaucioacuten al usarlo ya que al devolver el valor requerido la variable POSITION usada no se queda apuntando a ese valor en particular salta al inmediato siguiente de la lista

Si se realiza una creacioacuten dinaacutemica con punteros para los elementos de una CTypedPtrList Despueacutes de haberlo agregado a la lista evite el delete para borrar esta Usted deseando liberar la memoria no lo haga ya que eliminara directamente el elemento de la lista

POSITION

Es un valor usado para denotar una posicioacuten de un elemento en una coleccioacuten Pero CUIDADO no se refiere a un iacutendice es una referencia (no consecutiva) de punteros muy diferente a un iacutendice

CString

Auacuten cuando el operador de comparacioacuten == (igual a) es permitido para ser utilizado en las cadenas evite su uso ya que en ocasiones aunque cuando la e

34

Desarrollo de la herramienta

compilacioacuten no indique error alguno en la ejecucioacuten no realizaraacute lo que se necesita Recomiendo que utilice CStringCompare ()

Para eliminar el contenido de un CString utilice CStringEmpty() ya que asignar a la cadena un ldquonrdquo podriacutea causarle problemas

Serializacioacuten

Una forma en que se puede guardar informacioacuten y recuperarla de manera eficaz es mediante la serializacioacuten de objetos La serializacioacuten es un proceso que permite escribir un objeto en un archivo y tambieacuten leerlo

Para que la serializacioacuten se lleve a cabo son necesarios tres objetos un objeto de tipo ltCFilegt que represente el archivo un objeto de tipo ltCArchivegt que ofrece el entorno para la serializacioacuten y la clase del objeto a ser serializado debe ser heredada de ltCObjectgt y sobrescribir el meacutetodo ltSerializegt para que se encuentre de tal forma en que pueda ser serializado (vea la Figura 313)

Objeto a ser serializado 1

1 CArchive

[f --=I- ---7 Archivoexi

u Figura 313 Serializacioacuten

328Patrones de disentildeo utilizados

Se ha planteado la definicioacuten de una arquitectura de clases utilizando patrones de disentildeo debido a que algunos de ellos hacen maacutes faacutecil la extensioacuten de la funcionalidad y mantenimiento

35

Desarrollo de la herramienta

El patroacuten Composite es utilizado para crear de manera uniforme el diagrama sobre el que se trabaja (ver Figura 34) manteniendo una jerarquiacutea de clases uniforme las clases maacutes bajas en la jerarquiacutea definen primitivas de objetos graacuteficos

Se aplica el patroacuten de disentildeo Iterator para hacer recorridos en listas de objetos para realizar diversas operaciones Otro patroacuten de disentildeo del que se hace uso es el Visilor (ver Figura 35)

Para otras actividades que se realizan podriacutea pensarse en que se deberiacutean aplicar otros patrones pero se han evitado algunos (como el patroacuten de disentildeo Builder) para evitar incrementar la complejidad en la arquitectura ya que ai mantener el modelo de la MFC de documentovista la funcionalidad del patroacuten de disentildeo Builder es faacutecilmente reemplazado si se hiciera Uso de eacuteste se aumentariacutea la complejidad excesivamente (nos llevariacutea a perdemos en ocasiones en el paso de mensajes entre clases) dantildeando la facilidad de la arquitectura

33 Diagrama de secuencias

Un Diagrama de Secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten escenario Oacute comportamiento se usan para definir el curso loacutegico de accioacuten de un posible camino a seguir en la resolucioacuten de un problema Seguacuten John Daniels [DANO2] ldquoel principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildean las interacciones de los objetosrdquo

Los Diagramas de Secuencias se utilizan en el modelado de la implementacioacuten de sistemas de software ademaacutes son aplicables en el modelado de requisitos para establecer las comunicaciones existentes entre actores yo clases del sistema Con eacutestos diagramas se logran hacer descripciones de los escenarios y los comportamientos del sistema Con los Diagramas de Secuencias es posible definir protocolos de comunicacioacuten con paso de mensajes ya que dan esa flexibilidad que se requiere Ademaacutes los Diagramas de Secuencias contienen informacioacuten suficiente para que puedan ser transformados a los diagramas de colaboracioacuten [RUM Ol][BOO Oil

331Ciclo de vida del software

Considerando cualquier modelo de ciclo de vida del software (en la figura 314 se muestra el Modelo de cascada) el aacutembito directo de eacuteste Ambiente Visual es en el disentildeo aunque tiene sus vertientes en la codificacioacuten y mantenimiento

36

Desarrollo de la herramienta

Diseno

Codificacibn

I I I I Mantenimiento I

igura 314 Modelo de cascada del ciclo de vida del software

34 Elementos atoacutemicos de la Gramaacutetica

Definicioacuten de los elementos atoacutemicos del lenguaje y su contenido

1 Actor- Representa roles de entidad externos al sistema con el que interactuacutea directamente Los actores pueden ser humanos dispositivos u otros sistemas

2 ClaseObjeto- Determina una Clase u Objeto participante en la interaccioacuten

3 Mensaje-Es una comunicacioacuten entre objetos que contiene informacioacuten Eacuteste se representa con la finalidad a que una accioacuten sea llevada a cabo

4 Mensaje con tiempo- Tiene la misma finalidad que el mensaje la diferencia es que con eacutel se representa un atributo de tiempo

5 Mensaje asiacutencrono Es un mensaje que ocurre en el tiempo de manera independiente a otros mensajes

6 Mensaje de destruccioacuten de objeto- Es un mensaje cuya finalidad es indicar la destruccioacuten del objeto destino

7 Mensaje de creacioacuten de objeto- Es un mensaje que indica la creacioacuten de un objeto

8 Llamada al mismo objeto (Recursividad)- Es usado para modelar llamadas recursivas en el que una operacioacuten es invocada por el mismo objeto

37

Desarrollo de la herramienta

9 Destruccioacuten del objeto (AutodestrucciOacuten)- Puede o no modelarse es representada con una X al final de la liacutenea de vida del objeto

Elementos aulomaacuteticos

1 Liacutenea de Vida- Representa la vida del objeto durante la interaccioacuten

2 Activacioacuten- Muestra el periacuteodo de tiempo en el cual el objeto alguna operacioacuten

341RepresentaciOacuten visual

Representacioacuten visual de los elementos atoacutemicos del lenguaje

Actor

_- A

Mensaje

Mensaje de Creacioacuten de

Objeto

ClaseObjeto

I

Mensaje de retorno

Mensaje de Destruccioacuten de

Objeto

abla 32 Element(

Activacioacuten

Mensaje con tiempo

Autodestruccioacuten

x

atoacutemicos del lengi

taacute realizz

Texto ===I (letra)+ (letra I

numero) letra= AZ I az numero = 09

I

Recursividad ~

I

i j e

io

38

u

Comentario

iexcl

Conector de Comentario

35 Gramaacutetica desarrollada

La gramaacutetica que se propone es una gramaacutetica visual del tipo relacional Una gramaacutetica relacional pertenece a las gramaacuteticas libres de contexto es una 6-iupla G (N C S R Attr P) donde

N es un conjunto finito de siacutembolos no terminales C es un conjunto de siacutembolos terminales S es un siacutembolo distinguido en N llamado siacutembolo inicial R es un conjunto finito de siacutembolos de relacioacuten Attr es un conjunto finito de siacutembolos de atributos P es un conjunto de producciones

Entonces definiendo nuestra gramaacutetica G (N C S R Attr P)

N = Diagrama GrupoClaseObjeto

S = Diagrama

R = mensaje mensajeTiempo mensajeRetomo mensajeAsincrono mensajecrea mensajeDestruye autodestruccioacuten recursividad

R

Attr = entrada salida entradacrea

39

Desarrollo de la herramienta

Definiendo la posicioacuten de los atributos en los elementos visuales

entradacrea ObetaClase

entrada

salida

P =

Diagrama I GrupoClaseObjeto (mensaje (mensajeRetorno

(salida 1) (entrada 2) ) (salida 2) (entrada 1) )

- Diagrama 0 GrupoClaseObjeto

(mensaje (mensaje (mensajeRetomo (mensajeRetomo (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entradacrea 2) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 1) ) (salida 1) (entrada 1) )

entrada

salida

40

Desarrollo de la herramienta

s

-

GrupoClaseObjeto - 1 1 I 2 (mensaje (mensaje (mensajeRetorno (mensajeRetorno (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entradacrea 2) ) (salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 1) ) (salida I ) (entrada I ) )

1 En las gramaacuteticas relacionales una produccioacuten estaacute acompantildeada de las posibles

relaciones que puedan generarse En la primera produccioacuten Diagrama produce a un Actor seguida de un GrupoClaseObjeto el Actor inicia la interaccioacuten con un mensaje y recibe el mensaje de retorno al finalizar la interaccioacuten La segunda y tercera produccioacuten son similares debido a que un GrupoClaseObjeto contiene dos ClaseObjeto que se relacionan de la misma forma

Existe un elemento de la gramaacutetica llamado Attr (Atributo) el cual define la parte de los elementos visuales donde se establecen las relaciones Se han determinado dos atributos (entrada y salida) que para nuestro propoacutesito estaraacuten establecidos en la liacutenea de vida de cada elemento visual (Actor y ClaseObjeto)

Los Comentarios y la Activacioacuten no se consideran en la gramaacutetica Los comentarios son libres de incluirse y relacionarse con cualquier elemento y relacioacuten mencionada anteriormente y la activacioacuten existe siempre que se presente un mensaje (o podriacutea omitirse) Estas consideraciones se realizaron para hacer auacuten maacutes faacutecil la gramaacutetica ya que si se trata de realizar un sistema las restricciones de estos elementos pueden mantenerse en el lenguaje de programacioacuten en el que se desarrolle el sistema

36

Precondiciones

El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias

1 El diagrama de Clases debe existir y estar completo 2 Debe existir un archivo con un diagrama de Warnier por cada diagrama de Clases y

con el mismo nombre de archivo (excepto la extensioacuten del archivo) 3 En el uacutenico diagrama de Warnier de cada Clase se deben modelar todos los meacutetodos

de la Clase 4 No realizar declaraciones de meacutetodos

41

Desarrollo de la herramienta

5 Debe existir un meacutetodo lsquomain()rsquo en el diagrama de Clases

Restricciones

Los meacutetodos deben mantener nombres distintos en las diferentes Clases

Metodologiacutea para la obtencioacuten automaacutetica de los Diagramas de Secuencias

1 Seleccionar el diagrama de Clases

2 Se construye una lista con los nombres de las Clases y los Meacutetodos

3 Se verifica si exista el meacutetodo lsquomain()rsquo en alguna Clase Se busca la existencia de una uacutenica Clase

a La Clase que contenga lsquomain()rsquo se va al inicio de la lista de Clases

b Si no existe lsquomain()rsquo SE TERMINA EL PROCESO

4 Se verifica la existencia de los archivos que contienen el Disentildeo Detallado de los meacutetodos en Wamier para cada una de las Clases si alguno falta SE TERMINA EL PROCESO

5 Se procesa cada uno de los modelos del Disentildeo Detallado de los Meacutetodos generando una lista de secuencias de llamadas por cada uno de los meacutetodos

6 Se verifica que cada llamada corresponda a alguacuten meacutetodo existente (del diagrama de Clases) De no existir ese meacutetodo la llamada entra a una estructura que

7 Se crea una lista de secuencia

a Se inicia con lsquomain()rsquo b Se recorre cada una de las llamadas de los meacutetodos c Se considera invaacutelido el caso de que un meacutetodo intente una llamada

recursiva al meacutetodo lsquomain()rsquo

8 Se muestra un diaacutelogo de resultados en el que se indican las llamadas que no se encnotraron definidas y que pueden ser Llamada a libreriacutea oacute Llamada Erroacutenea

42

Capiacutetulo 4

Prue6as y su6taaacuteos

En eacuteste capiacutetulo se da a conocer el detalle de las pruebas y de los resultados obtenidos Se describen los casos de prueba con los que se realizoacute la evaluacioacuten del sistema asiacute tambieacuten se presentan comentarios acerca de los resultados obtenidos

Pruebas y Resultados

41 Recursos teacutecnicos utilizados

Para llevar a cabo las pruebas al sistema S3C se utilizaron los siguientes equipos de Coacutemputo

Computadora de escritorio

256MB RAM Disco Duro 80G Monitor 17rdquo SAMSUNG

AMD Athlon XP 1600+ I4Ghz

Computadora de escritorio Intel Pentium 4 - 128MB RAM Disco Duro 40G Monitor 15rdquo i -

42 Descripcioacuten del plan de pruebas

Las pruebas establecen el Uacuteltimo paso desde donde es posible evaluar la calidad y descubrir los errores Las pruebas y la validacioacuten del software se utilizan para comprobar que el sistema cumple con las expectativas del usuario

En esta seccioacuten se describen los casos de prueba que se realizaron al prototipo de S3C en conjunto a la suite cenidet-UML Para cada uno de los casos se presenta el objetivo el procedimiento que se siguioacute para la prueba y se muestran los resultados obtenidos - _

Las pruebas a realizar son los siguientes

Caso 1 Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Caso 2 Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Wamier

Caso3 Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Wamier

Caso4 Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo 5

44

Pruebas y Resultados

43 Resultados

431 Caso 1

5 Y

IZ =

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoSirdquo 4 Seleccionar el archivo ldquoVENTASrdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 41 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

s3c iuevo Proyecto SCUM1

Diagrama de clases

lvendedor I L

3

salida

venta prod

4 venia-oferta vcntaprod =

salida 6

Figura 41 Resultado del caso de prueba 1

45

Pruebas y Resultados

432 Caso 2

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Warnier (almacenwar cajawar vendedorwar) que ya cxisten (del caso de prueba I )

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoNordquo 4 Agregar las siguientes Clases con los respectivos meacutetodos y atributos

a Claseldquovendedorrdquo Meacutetodos ldquoventa mainrdquo b Claseldquoalmacenrdquo Meacutetodos ldquoentrada salidardquo c Claseldquocajardquo Meacutetodos ldquoventagrodrdquo

5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 42 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

Diagrama de daseo lisgrama dcsccucncis

MOIDOC Anivo

venta prod

salida

1 Ycrdquo1a 2

I 4 vcrdquolD~o1cn venta prod gt

salida 6 i Figura 42 Resultado del caso de prueba 2

46

Pruebas y Resultados

r

433 Caso 3

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Warnier

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 43 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

5

Error al tratar de abrir el archivo A bZwar

Aceptar i

Faltan Archivos de Disentildeos Detallados de Meacutetodos 1 1 A No se puede crear el diagrama de secuencias

Figura 43 Resultado del caso de prueba 3

47

Pruebas y Resultados

434 Caso 4

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 44 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

lsquo I

~ _ i i _ l _ Repaado ~~ ~ ~ 6~ ampA Figura 44 Resultado del caso de prueba 4

48

Pruebas y Resultados

PRUEBA DESCNPCION CASO 1 Mostrar la funcionalidad del

Sistema S3C a partir de un

44 Anaacutelisis de Resultados

RESULTADOS Se comproboacute la correcta funcionalidad del Sistema S3C a partir de un diagrama

CASO 3

CASO4

I diagrama de Clases cxistcnte I de Clases existente CASO 2 I Mostrar la funcionalidad del I Sc comproboacute la corrccta funcionalidad

Sistema S3C a partir de un del Sistema S3C a partir de un diagrama diagrama de Clases que se de Clases que se construye al momento construye al momento Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el Secuencias si falta alguno de los diagrama de Secuencia si falta alguno diagramas de Warnier Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el secuencias si hace falta el meacutetodo diagrama de Secuencias al faltar el ldquomain ()rdquo meacutetodo ldquomain()rdquo

de los diagramas de Warnier

Los resultados obtenidos de cada uno de los casos establecidos demuestran que se validoacute la funcionalidad del prototipo con los requisitos definidos en el alcance de este proyecto

a lt

49

Conclusiones y Tru6ajos Futuros

Aquiacute se dan a conocer las conclusiones y se describen los posibles trabajos futuros para la continuacioacuten de eacuteste proyecto

F

51 Conclusiones

Conclusiones y trabajos futuros

Se ha creado un Ambiente Visual que permite obtener de forma automaacutetica los Diagramas de Secuencias en base a los diagramas de Clases y al disentildeo detallado de los meacutetodos descritos con diagramas de Warnier cumpliendo con los objetivos planteados para este trabajo

La tesis aporta principalmente La generacioacuten automaacutetica de los diagramas de secuencias y la eliminacioacuten de inconsistencias al mantener una validacioacuten directa de los diagramas de clases y los diagramas de Warnier que son utilizados

Esta validacioacuten es lograda a traveacutes del uso de la gramaacutetica visual relaciona1 que se ha definido (veacutease el capiacutetulo 3) Esta gramaacutetica visual establece reglas para la correcta construccioacuten de los diagramas de secuencias

P De esta manera se establece que la hipoacutetesis ldquoEs posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodosrdquo Es verdadera

52 Trabajos Futuros

Un Diagrama de Secuencias puede convertirse en un Diagrama de Colaboracioacuten por lo tanto un trabajo futuro es la construccioacuten automaacutetica de un Diagrama de Colaboracioacuten a partir de uno de Secuencias existente

Es posible calcular la meacutetrica de acoplamiento al tener un Diagrama de Secuencias construido

La Ingenieriacutea directa de un Diagrama de Secuencias estableciendo la validacioacuten en la construccioacuten de todos los elementos visuales que UML define

La propagacioacuten de las modificaciones de un Diagrama de Secuencias a los Diagramas de Clases y los Diagramas de Warnier

La modificacioacuten del coacutedigo fuente mediante los cambios establecidos en un Diagrama de Secuencias

51

[ALC03]

[BLA98]

[B0099]

[BOOOi]

[BR097]

[CHA90]

[DAN02]

[GLA02]

[HAC98]

[HER03]

4

Alcate1 Computer Associates International inc Electronic Data Systems Corporation Hewlett-Packard Company IBM Corporation I-Logix IntelliCorp Kabira Technologies Kennedy Carter Microsoft Corporation Object Management Group Oracle Corporation Project Technology Ptech Inc Rational Software Corporation Reich Technologies Softeam Taskon A S Telelogic Unisys Corporation ldquoOMG Unified Modeling Language Specificationrdquo Version 15 Unified Modeling Language 2003

Blaha Michael Rumbaugh James Premerlani William Eddy Frederick Lorensen William ldquoObject-oriented modeling and designrdquo Prentice Hall 484 Paacuteginas ISBN 0-13-629841-9 QA-769-03S-B53-19981998

Booch Grady Rumbaugh James Jacobson Ivar ldquoEl lenguaje unificado de modeladordquo Addison Wesley 432 Paacuteginas ISBN 84-7829-028-1 1999

Booch Grady Rumbaugh James Jacobson Ivar ldquoThe Unified Modeling Language User Guiderdquo Addison Wesley 2001

Brown David ldquoAn introduction to object-oriented analysis objects in plain Englishrdquo John Whiley amp Sons Inc 700 Paginas ISBN 0-471-1 1028-0 QA-769-035-B76-1997 1997

Chang Shi-Kuo ldquoVisual Languages and visual programmingrdquo Plenum Press 340 Paacuteginas ISBN 0-306-43428-8 QA-7665-V57-1990 1990

Daniels John ldquoModeling with a sense of purposerdquo Design - IEEE Software JanuaryEebmary 2002

Glasgow Universidad Reino Unido ldquoA UML Editor in Javardquo (lthttplstudentsdcsglaacuWstudentspainjfproject-reportproject-re port-htmV4thYearReporthtrnlgt 2002)

T Hackos JoAnn C Redish Janice ldquoUser and Task Analysis for Interface Designrdquo Wiley Computer Publishing 488 Paacuteginas ISBN QA-769-U83- H33-1998 1998

Hemaacutendez Velaacutezquez M ldquoIngenieriacutea inversa de coacutedigo fuente en C++ para la obtencioacuten de su disentildeordquo Tesis AT-379 (03-0334) 2003

Conceptos generales

[HIX93]

[JAC93]

[JAC99]

[JOY98]

[LAR97]

[MAR]

[MIC99]

[MIC02]

[MOU98]

Hix Deborah Hartson H Rex ldquoDeveloping user interfacesrdquo 381 Paacuteginas ISBN 0-471-57813-4 QA-769-U83-H59-1993 1993

Jacobson Ivar Christerson Magnus Jonsson Patrik Overgaard Gunnar ldquoObject oriented software engineeringrdquo Addison Wesley ISBN 0-20 1 - 54435-0 QA-7676-D47-J63-1993 1993

Jacobson Ivar Booch Grady Rumbaugh James ldquoEl proceso unificado de desarrollo de softwarerdquo Addison Wesley 438 Paacuteginas ISBN 84-7829-036- 2 1999

Joyanes Aguilar Luis ldquoProgramacioacuten orientada a objetosrdquo McGruw Hill ISBN 84-481-0590-7 1998

Larman Craig ldquoAplying UML and Patternsrdquo Prentice Hull 507 Paacuteginas ISBN 0-13-748880-7 QA-769-035-L37-1997 1997

Marriot Kim Meyer Bemd ldquoVisual Language Theoryrdquo Springer 381 Paacuteginas P-935-V567-1998 1998

Microsoft ldquoMicrosoft Visual C++ 6 manual del programadorrdquo McGraw Hill ISBN 84-481-2127-9 QA-7673-Cl53-23718-1999 1999

Microsoft ldquoVisiordquo (lthttpwwwmicrosoftcomofficevisiogt 2002)

B Mourao Luis X ldquoUniversal Modeling Language Part 11 UML Notation - Case Sequence and Collaboration Diagramsrdquo Lan Times Magazine (~httpwwwlantimescomltpartsdiscussdiscuss6Ohtm~) 1998

No Magic ldquoMagicDrawrdquo (lthttpwwwmagicdrawcomgt 2002)

Object Insight ldquoJvisionrdquo (lthttpwwwobject-insightcomgt 2002)

Rational Software Microsoft I Hewlett-Packard Oracle Sterling Software MCI Systemhouse Unisys ICON Computing IntelliCorp i-Logix IBM ObjectTime Platinum Technology Ptech Taskon Reich Technologies Sofieam ldquoUML Summaryrdquo Version 11 Unified Modeling Language 1997

Rational ldquoRational Roserdquo (lthttpwwwrationalcomproductosrosegt 2002)

Rikki Kirzner ldquoAnalysis Modeling and Design Tools Market Forecast and Analysis 2001-2005rdquo Bulletin Published Under Services Application Design and Construction Tools Application Development and Deployment Strategies Documento Nuacutemero 24809 Junio 2001

53

Conceptos generales

[RIM92] Rimrner Steve ldquoGraphical user interface programmingrdquo 423 Paacuteginas

1992

Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language reference manualrdquo Addison Wesley 550 Paacuteginas ISBN 0-201-

ISBN 0-8306-2475-9 ISBN 0-8306-2472-4 (pbk) QA-769-083-R55G

[RUM99]

30998-X QA-7676-D47-R85-1999 1999

[RUM299] Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language user guiderdquo Addisoiz Wesley 482 Paacuteginas ISBN 0-201 -57 168-4 QA-7676-D47-B66-1999 1999

[SMA02] SmartDraw ldquoSmartDrawrdquo (lthttpwwwsmartdrawcomgt 2002)

[SHU88] 9 - Shu Nun C ldquoVisual Programmingrdquo Van Nostrand Reinhold ISBN 0-422- 28014-9 ISBN 0-422-01 164-4 QA-7665-S55 1988

[THI90] Thimbleby Harold ldquoUser Interface Designrdquo Acm press 470 Paacuteginas ISBN 0-201 -41 61 8-2 QA-769U83-T772~- 1990 1990

[WENO2] Wences Diaz MF ldquoModelo de Ingenieriacutea Inversa para la obtencioacuten de disentildeo detallado basado en LEVISSrdquo Tesis (02-0014) 2002

54

Anexo A

Conampuracioacuten de Microsoft Vkua[C++ 6 O

Este anexo indica las configuraciones que se utilizaron para la compilacioacuten de SCUML y s3c

Configuracioacuten de Microsoft Visual c++ 60

Debido a la integracioacuten de los proyectos de InverSOODA e InverDDVi con S3C se cumplioacute con los requisitos previos de ambos proyectos

El compilador usado en el proyecto fue el Microsoft Visual C++ 60

Para el cumplimiento con la funcionalidad de InverSOODA se instaloacute el ANTLR la versioacuten 271 Se descargoacute del sitio l i l l ~ ~ ~ ~ ~ ~ t l ~ l ~ - ~ t - ~ la versioacuten mencionada en un archivo comprimido (en formato zip) Se colocoacute el paquete descomprimido en el directorio ldquoDIANTLR-271 I rdquo

Recomiendo ampliamente que el directorio principal de ANTLR se copie en el directorio raiacutez de cualquier unidad de disco debido a que experimenteacute problemas de compilacioacuten cuando ANTLR no se encontraba en el directorio raiacutez

Io015

Source Browser AlttF12 I u c Ersquo V I

Visual Component Mgnager

- - ~ ~ ~ ~~

P2 Registrar control

A Contenedor de prueba de controles ActiveX

A Usor de objetos OLE y COM

Buacutesqueda de errores

A Y++ MFC Iracer

Customize options

~ - q- ~ Macro

Eecord Quick Macro Cbl+ShiR+R Pay Quick Macro Ctrl+ShiR+P

En el menuacute Tools (Herramientas) seleccione el sub-menuacute Options ltopcionesgt

56

Configuracioacuten de Microsoft Visual C++ 60

En la siguiente ventana de diaacutelogo debe agregar la direccioacuten en donde se encuentra el ANTLR

Agregar la ruta del directorio de ANTLR hasta el subdirectorio

libcpp

Editor I Tabs I Debug I Compatibility 1 Build Dneclolies I a I Chow directories for - Platfolm -

- Directories I x ) 4 jWin32 -] llnclude files

m cancd I

57

Configuracioacuten de Microsoft Visual C t+ 60

Se ha creado una libreriacutea (anrlrliblib) de ANTLR la cual ya estaacute situada en el directorio del proyecto SCUML (ISCUML) y no debe ser movida o eliminada

I

Geneial 1 Debug I CC++ Link I Category

Output file name bebugSCUMLexe

Objectljibrary modules 4 anllrliblib

li Generate debug lnfo r Ignore all defaull lbaries D ~ i n k j n ~ ~ ~ t a n ~ r ~ e n e r ~ ~ ~ mapfile

r Enable psafilrng

Proiec1 Ootionn

pq Cancel 1 Libreriacutea de ANTLR que debe existir 1 I para que se compile correctamente

58

Anexo B

~ u iacute aacute raacutepida de uso deC Sistema S3C

5 Este anexo indica de forma raacutepida la manera de utilizar S3C para crear un diagrama de secuencias de forma automaacutetica

Guiacutea Raacutepida de uso del Sistema S3C i

Para indicar la creacioacuten de un diagrama de secuencias en forma automaacutetica se debe ir a la barra del costado izquierdo y presionar ldquoNuevo Proyecto SCUMLrdquo

I s3c I ~ Nuevo Proyecto SCUML ~ _ _ - I Diagrama de clases ~ Diagrama de secuencias 1 MDI DOC Activo

-

Apareceraacute un documento llamado ldquoSCUMLV en donde el simbolo corresponde a un numero consecutivo iniciando desde 1 (uno)

$ e Despueacutes se presiona ldquoDiagrama de clasesrdquo Habraacute que para indicarle al sistema si se requiere abrir un diagrama de clases existente o realizar uno nuevo

i

iquestAbrir un documento existente

No Cardquo~ear

AI presionar ldquoSirdquo se debe indicar cual es el archivo del diagrama de Clases en el cuadro de diaacutelogo siguiente

~~ - 11dMis documentos rsquo 2 M i P C i lsquo h s sitios de red

I

AI presionar ldquoNordquo en ldquoAbrir un documento existenterdquo se nos mostraraacute un documento vacio para crear un diagrama de clases

60

Guiacutea Raacutepida de uso del Sistema S3C

Para ambas opciones se requiere que los diagramas de Wamier ya se encuentren construidos Y para continuar el proccso se selecciona el documento ldquoSCUMLVrsquo creado al inicio y despueacutes presionar el botoacuten nombrado ldquoDiagrama de secuenciasrdquo localizado en la barra de hcrraiiiicntas del costado izquierdo

Ha iniciado el proceso de construccioacuten del diagrama de secuencias Si no existen errores al terminar el proceso se le mostraraacute un cuadro de diaacutelogo llamado ldquoResultadosrdquo en donde le mostraraacute las llamadas de las que no localizoacute su definicioacuten

- - -

Cancel 1 D e las siguientes llamadas es posible que esten mal escritas o peitenezcan a la libreiia del Lenguaie Verifique ya que no se encontraron sus definiciones

A continuacioacuten se mencionan los posibles errores que finalizan el proceso de la creacioacuten automaacutetica de los diagramas de secuencias en S3C

Cuando no exista un meacutetodo lsquomainrsquo definido en el diagrama de clases

No se encontro el meacutetodo lsquomain()rsquo que inicie la secuencia I A No se puede crear el diagrama de secuencias

p==amp=q

61

Guia Raacutepida de uso del Sistema S3C

Cuando se definan niultiples metodos lsquoinainrsquo en el diagrama de clases

Multiples meacutetodos lsquomainOlsquo Imposible decidir el inicio de secuencia

Aceptar i

Si un meacutetodo definido en Wamier realiza una llamada a lsquomainrsquo se cancelara el proceso

Llamada NO VALIDA al meacutetodo principal main

(iAcp-j(

4 i

CI Y rdquoldquoldquoI i 11 1-T

IZNTRO Gt INFORMACION

62

  • Tabla de Contenido
  • Listado de Figuras
  • Listado de Tablas
  • Notacioacuten
  • Introduccioacuten
  • Capitulo 1 Conceptos Generales
    • 11 Antecedentes
    • 12 Trabajos relacionados
      • 121 Tabla comparativa
        • 13 Definicioacuten del problema
        • 14 Objetivo de la Tesis
          • Objetivos especiacuteficos de la tesis
            • 15 Hipoacutetesis de investigacioacuten
            • 16 Alcances y limitaciones del trabajo de tesis
              • Capitulo 2 Marco Teoacuterico
                • 21 Modelado de sistemas de software
                • 22 Interfaz de usuario (Mecanismos de interaccioacuten)
                • 23 Lenguajes Visuales
                • 24 Programacioacuten orientada a objetos
                • 25 Lenguaje de Modelado Unificado (UML)
                  • Desarrollo de la herramienta
                    • 31 Disentildeo de la Arquitectura
                      • 311 Requisitos (Diagrama de Casos de uso)
                        • 312Modelo Conceptual
                        • 313Diagramas de clases
                        • 32 Elementos de la arquitectura
                          • 321 Microsoft Foundation Class (MFC)
                            • 322Arquitectura Documento Vista
                            • 323Integrando Ambientes en Visual c++
                              • 324 Interfaz de Muacuteltiples Documentos (MDI)
                                • 325Recursos Diaacutelogos Menus y Barras de Herramientas
                                  • 326 Notacioacuten estaacutendar
                                  • 327 Estructura de datos persistencia y recuperacioacuten
                                    • 328Patrones de disentildeo utilizados
                                      • 33 Diagrama de secuencias
                                        • 331Ciclo de vida del software
                                          • 34 Elementos atoacutemicos de la Gramaacutetica
                                            • 341 Representacioacuten visual
                                              • 35 Gramaacutetica desarrollada
                                              • 36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias
                                                  • Capitulo 4 Pruebas y Resultados
                                                    • 41 Recursos teacutecnicos utilizados
                                                    • 42 Descripcioacuten del plan de pruebas
                                                    • 43 Resultados
                                                      • 431 Caso
                                                      • 432 Caso2
                                                      • 433 Caso
                                                          • Conclusiones y trabajos futuros
                                                            • Trabajos futuros
                                                            • Referencias
                                                            • Anexo A Configuracioacuten de Microsoft Visual C+t
                                                              • Figura 11 - Arquitectura de la suite cenidet-UML
                                                              • Figura 21 -Programacioacuten Visual
                                                              • Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de
                                                              • Figura 32 -Diagrama de Casos de Uso para el S3C
                                                              • Figura 33 -Modelo Conceptual
                                                              • Figura 34 - Diagrama de Clases -Control del Diagrama -
                                                              • Figura 35 - Diagrama de Clases - Patroacuten Visitor -
                                                              • Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento
                                                              • Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)
                                                              • Figura 38 -Dialogo Caracteriacutesticas del Objeto
                                                              • Figura 39 -Dialogo Mensaje
                                                              • Figura 3 IO - Menuacute de los Diagramas de Secuencias (estaacutendar)
                                                              • Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias
                                                              • Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)
                                                              • Figura 313 - Serializacioacuten
                                                              • Figura 314 -Modelo de cascada del ciclo de vida del software
                                                              • Figura 41 - Resultado del caso de prueba
                                                              • Figura 42 -Resultado del caso de prueba
                                                              • Figura 43 -Resultado del caso de prueba
                                                              • Figura 44 -Resultado del caso de prueba
                                                              • Tabla 11 - Tabla comparativa
                                                              • Tabla 31 -Prefijos estaacutendar de identificadores
                                                              • Tabla 32 -Elementos atoacutemicos del lenguaje
                                                              • Tabla 41 - Resumen de los resultados de las pruebas realizadas

Capiacutetulo 2

Narc0 teoacuterico

En eacuteste capiacutetulo se describen los temas usados para el desarrollo de la tesis iquestQue son los modelos iquestEn que parte del proceso de Ingenieriacutea del Software se usan los modelos o el modelado Se estudia la interfaz de usuario los lenguajes visuales y las gramaacuteticas visuales Se describe el Lenguaje de Modelado Unificado (UML) ademaacutes de la programacioacuten orientada a objetos por ser este paradigma en donde se enfoca este trabajo

Marco teoacuterico

21 Modelado de sistemas de software

un modelo es una abstraccioacuten de algo con el propoacutesito de entenderlo antes de construirlo El modelo omite detalles no esenciales haciendo maacutes faacutecil su manipulacioacuten que la entidad original [BLA98] Un modelo es la simplificacioacuten de la realidad [RUM99] Los propoacutesitos de los modelos son

Probar una entidad fisica antes de construirla Establecer mejor comunicacioacuten con los clientes Visualizar el problema y el sistema desde una mejor perspectiva Reducir la complejidad [BLA98] Capturar y precisar requerimientos y conocimiento del dominio Pensar acerca del disentildeo del sistema Capturar decisiones de disentildeo en una fomia separada que cambia a partir de los requerimientos Generar productos Organizar buscar filtrar obtener examinar y editar informacioacuten acerca de un sistema Explorar muacuteltiples soluciones econoacutemicas Manejar sistemas complejos [RUM99]

El modelado es una probada y bien aceptada teacutecnica de Ingenieriacutea de Software [RUM99] El modelado es parte central de todas las actividades que conducen a la produccioacuten de buen software Se construyen modelos para comunicar la estructura deseada y revisar el comportamiento de nuestro sistema Se construyen modelos para visualizar y controlar la arquitectura del sistema Se construyen modelos para comprender mejor el sistema que estamos construyendo muchas veces descubriendo oportunidades para la simplificacioacuten y la reutilizacioacuten Se construyen modelos para controlar el riesgo [BOO99] La razoacuten fundamental por la que modelamos es porque nosotros construimos modelos que nos ayudan a entender mejor el sistema que estamos desarrollando [RUM99]

El modelado nos permite [RUM99] 1 Visualizar como es el sistema o como queremos que sea 2 Especificar la estructura del sistema 3 Plantear nuestras guiacuteas en la construccioacuten delsistema 4 Documentar las decisiones que hemos tomado

En las etapas del desarrollo del software el modelado es usado en el disentildeo el disentildeo del sistema es la primera etapa en donde se da la aproximacioacuten baacutesica de la solucioacuten al problema seleccionado ademaacutes se decide por la estructura (arquitectura del sistema) y el estilo de la solucioacuten

La arquitectura del sistema provee el contexto sobre el cual se tomaraacuten decisiones mas detalladas en las etapas subsecuentes del disentildeo [BLA98] En el disentildeo modelamos el sistema y encontramos su forma (incluida la arquitehra) para que soporte todos los 3 -

10

Marco teorico

i

4 -I

requisitos -incluyendo los requisitos no funcionales y otras restricciones- que se le suponen [JAC99] Los propoacutesitos del disentildeo son

Adquirir una comprensioacuten en profundidad de los aspectos relacionados con 10s requisitos no funcionales y restricciones relacionadas con los lenguajes de programacioacuten componentes reutilizables sistemas operativos tecnologiacuteas de distribucioacuten y concurrencia tecnologiacuteas de interfaz de usuario tecnologiacuteas de gestioacuten de transacciones etc Crear una entrada apropiada y un punto de partida para actividades de implementacioacuten subsiguientes capturando los requisitos o subsistemas individuales interfaces y clases Ser capaces de descomponer los trabajos de implementacioacuten en partes mas manejables que puedan ser llevadas a cabo por diferentes equipos de desarrollo teniendo en cuenta la posible concurrencia Capturar las interfaces entre los subsistemas Esto ayuda cuando reflexionamos sobre la arquitectura y cuando utilizamos interfaces como elementos de sincronizacioacuten entre diferentes equipos de desarrollo Ser capaces de visualizar y reflexionar sobre el disentildeo utilizando una notacioacuten comuacuten Crear una abstraccioacuten independiente de la implementacioacuten del sistema en el sentido de que la implementacioacuten es un refinamiento directo del disentildeo que rellena lo existente sin cambiar la estructura Esto permite la utilizacioacuten de tecnologiacuteas como la generacioacuten de coacutedigo y la ingenieriacutea de ida y vuelta entre el disentildeo y la implementacioacuten [JAC99]

22 Interfaz de usuario (Mecanismos de interaccioacuten)

El crecimiento de las computadoras personales vendidas en los ~ O rsquo S lanzoacute con fuerza el ldquofaacutecil de usarrdquo como una de las caracteriacutesticas mas importante de un producto de computadora

Las interfaces graacuteficas de usuario no son nuevas se pueden encontrar en las paredes de cuevas al sur de Francia en las piraacutemides de Egipto y en las paredes de muchas ciudades [iUM92] Para el usuario de un sistema interactivo la comunicacioacuten es tan importante como la computacioacuten Para los usuarios regularmente la interfaz es el sistema [HIX93]

Disentildeo de Interfaz Seguacuten Hackos [HAC98] las interfaces estaacuten en todo donde se trabaja con

o Controles en productos de hardware o Etiquetas y sentildeales en el hardware o Pequentildeas pantallas de cristal liquido en maacutequinas de cualquier tipo o Pantallas para aplicaciones de software para terminales de computadoras centrales

Marco teoacuterico

o pantallas para aplicaciones de software en computadoras Personales sistemas operativos como Windows OS2 DOS Macintosh U n b Y Otros

0 Paacuteginas de un sitio WEB 0 Sistemas de ayuda y manuales en-liacutenea 0 Tutoriales incrustados y otros tipos de soporte de funcionamiento O Esquemas de formas y otros documentos

una interfaz es el medio con el cual los usuarios interactuacutean con el producto 0

sistema para lograr SUS objetivos

Interfaz Usable

Para que una interfaz sea usable debe ser transparente y darles a los usuarios la capacidad de lograr cumplir sus metas de forma efectiva y eficiente

Los beneficios presentados en el uso de las interfaces de usuario [TH190] Disfrutar el sistema El usuario disfruta trabajar con un sistema que cuenta con una interfaz bien disentildeada y que le da la funcionalidad y acceso a los recursos de una manera clara y sencilla Proporciona nuevas habilidades Elimina al usuario concentrarse en acciones que la propia interfaz y el sistema hacen dando como resultado que el usuario solo se concentre en lo importante del trabajo Delegacioacuten de tareas La interfaz de usuario permite al usuario no conocer los detalles de la tarea esto es la computadora atiende los detalles de las tareas mientras que el usuario se concentra en asuntos de maacutes alto nivel Seguridad El usuario no necesita estar en lugarespeligrosos para hacer su trabajo

Se da la mayor posibilidad para que el usuario tenga acceso al conocimiento utilizando un sistema interactivo Haciendo las cosas a la primera Las tareas se ejecutan en un orden correcto definido lo que da como resultado un trabajo bien terminado sin necesidad de repetir evitando asiacute altos costos Computando LOS usuarios pueden calcular datos sin necesidad de conocer el proceso para obtener los resultados

Desarrollo

El disentildeo de interfaz es un negocio bastante dificil Eacuteste combina dos complicadas disciplinas psicologiacutea y ciencias de la computacioacuten Estas disciplinas tienen un fondo cultural muy diferente la psicologiacutea atiende a la gente (comprensioacuten y entendimiento) las ciencias computacionales a las maacutequinas (matemaacuteticas y precisioacuten) El disentildeo de las buenas interfaces requiere que estas dos perspectivas esteacuten unidas [THi90]

Hackos dice que las interfaces dan simplicidad y elegancia al trabajo necesario y a la vida e los usuarios Si no es obvio al usuario pero es raacutepida para aprender [HAC98] ademaacutes define caracteriacutesticas comunes de las interfaces usables

o Hacen que el flujo de trabajo sea familiar o confortable o Soportan el estilo de aprendizaje de los usuarios

12

Marco teoacuterico

Visualizacioacuten de Entrenamiento visual Para controlar Soportar interaccioncs Programar con informacioacuten visual visuales expresiones visuales

o Compatibles con los ambientes de trabajo de los usuarios o Se extienden sobre un concepto de disentildeo que es familiar al usuario o Tienen consistencia de presentacioacuten que los hace parecer maacutes confiable y faacuteciles de

aprender o Usan lenguaje y figuras familiares al usuario o faacuteciles de aprender

Datos o informacioacuten acerca de datos

23 Lenguajes Visuales

Los lenguajes visuales son un nuevo paradigma para expresar los sistemas computacionales Ellos ofrecen la posibilidad de manipular directamente los objetos Un lenguaje visual consiste de sentencias visuales Para lenguajes visuales basados en iacuteconos cada sentencia visual es un arreglo espacial de objetos O iacuteconos graacuteficos [CHA90]

Un lenguaje visual es concebido como una coleccioacuten de figuras obtenidas por un arreglo graacutefico de objetos en dos o maacutes dimensiones Los lenguajes visuales pueden ser modelados sintaacutecticamente a traveacutes de un vocabulario un conjunto de relaciones usadas para componer las figuras y un conjunto de reglas describiendo las figuras pertenecientes al lenguaje Los objetos graacuteficos de un vocabulario de un lenguaje visual se caracterizan por contar con un conjunto de atributos Los atributos de un objeto graacutefico pueden ser atributos graacuteficos atributos sintaacutecticos y atributos semaacutenticos [MAR98]

Un lenguaje de programacioacuten visual puede ser informalmente definido como un lenguaje el cual usa algunas representaciones visuales [SHV88]

Programa ylo Disentildeo de Lenguajes de programacioacuten visual ejecucioacuten software Diagramas iconos Formas

Programacioacuten Visual [SHU88]

Gramaacuteticas para la especificacioacuten de lenguajes visuales [MAR98]

a) Gramaacuteticas texfuales generalizadas Este tipo de gramaacutetica provee una adaptacioacuten apropiada de la concatenacioacuten de siacutembolos para dos dimensiones Su principal ventaja es que conservan los elementos teoacutericos de las gramaacuteticas textuales y los eficientes algoritmos de anaacutelisis de eacutestos uacuteltimos Su principal desventaja es que eacutestas gramaacuteticas no son tan poderosas y soacutelo pueden especificar clases restringidas de lenguajes visuales

13

Marco teorico

b) Meacutetodos basados en gramaacuteticas de grafos Un ejemplo de este tiPo de gramaacuteticas son las gramaacuteticas de red Las oraciones generadas con gramaacuteticas de red son grafos dirigidos con siacutembolos en los nodos Estos grafos son llamados redes Una produccioacuten de eacuteste tipo de gramaacuteticas es de la siguiente forma

a - t p E

donde a y p son redes y E es una forma de conectar a p cuando a es conectada a otra red anfitriona

La mayor desventaja es que las gramaacuteticas de red no han probado ser totalmente uacutetiles para la especificacioacuten de gramaacuteticas arbitrarias por la complejidad para rescribir grafos y al hecho de que no todo lenguaje visual estaacute compuesto exclusivamente por grafos

C) Gramaacuteticas de multiconjuntos de atributos En estas gramaacuteticas las producciones rescriben conjuntos o multiconjuntos de siacutembolos que tienen atributos con informacioacuten sobre geometriacutea o semaacutentica La reescritura se controla con restricciones sobre los atributos de los siacutembolos en el lado derecho de las producciones

Un ejemplo de eacutestas gramaacuteticas es la Gramaacutetica Coordinada que especifica notacioacuten matemaacutetica de dos dimensiones En esencia las producciones en una gramaacutetica coordinada n-coordinada libre del contexto tienen la siguiente forma

A -t a donde C F

Todos los siacutembolos de eacuteste tipo de gramaacutetica tienen n atributos geomeacutetricos A es un siacutembolo no terminal a es una cadena no vaciacutea de siacutembolos C es una restriccioacuten sobre los atributos de los siacutembolos en a y F es una expresioacuten que computa los atributos de los siacutembolos de A en teacuterminos de los atributos de los siacutembolos en a no importando el orden de los siacutembolos en a

d) Gramaacuteticas PosicionaZes Las gramaacuteticas posicionales son un formalismo para la definicioacuten e implementacioacuten de lenguajes visuales las gramaacuteticas posicionales extienden naturalmente a las gramaacuteticas libres de contexto Una gramaacutetica libre de contexto posicional PG es una six-tupla (N T S P POS PE) donde

N es un conjunto finito no vaciacuteo de siacutembolos no terminales T es un conjunto finito no vaciacuteo e siacutembolos terminales con N n T = $I S E N es el siacutembolo no terminal de inicio P es un conjunto finito de producciones POS es un conjunto finito de identificadores de relacioacuten binaria PE es un evaluador pictoacuterico

14

Marco teorico

Cada produccioacuten en P tiene la siguiente forma

A -+ X I R I X R2 X ~ I Rm1 xm A

e) Gramaacuteticas de Relacioacuten de siacutembolos Eacuteste es un formalismo sintaacutectico para describir un lenguaje visual donde cada oracioacuten dentro del lenguaje se representa como un conjunto de objetos visuales y un conjunto de relaciones entre objetos

El alfabeto de siacutembolos Vt y el conjunto de relaciones entre siacutembolos Vr una oracioacuten de relacioacuten de siacutembolos w sobre Vt y Vr es un par ( M R) donde

M es un conjunto de elementos-s (v i) con v E Vt y i es un nuacutemero natural R es un conjunto de elementos-r de la forma r (Xi Yj) con Xi Yj E M r E Vr y una relacioacuten r esta contenida entre Xi y Yj

Una gramaacutetica de relacioacuten de simbolos es el conjunto de seis elementos G = (Vn Vt Vr S P R) donde Vn es un conjunto de siacutembolos no terminales Vt es un conjunto de siacutembolos terminales Vr es un conjunto de relaciones entre siacutembolos S es el siacutembolo inicial y P es un conjunto de reglas de reescritura (producciones de elementos-s)

f) Gramaacuteticas relacionales Este tipo de gramaacutetica pertenecen a las gramaacuteticas libres de contexto

La gramaacutetica relaciona1 (RGrsquos) es una 6-tupla G (N C S R Attr P) donde

N C S R Attr P

es un conjunto finito de siacutembolos no terminales es un conjunto de siacutembolos terminales es un siacutembolo distinguido en N llamado siacutembolo inicial es un conjunto finito de siacutembolos de relacioacuten es un conjunto finito de siacutembolos de atributos es un conjunto de producciones de la forma A-gt apF donde A E N a E (nlo)+ Donde n E N cr E E

8 Es un conjunto de relaciones de la forma (r x y) donde r E R y xy son enteros que hacen referencia a un miembro de a y tambieacuten una expresioacuten de la forma (a i) donde a E Attr e i es un entero que hace referencia a un miembrode a

F Es un conjunto de declaraciones de asignacioacuten de caracteriacutesticas de la forma (a O)=x donde a E Attr y x es un entero que hace referencia a un miembro de a o a una expresioacuten de la forma (a i)

15

Marco teoacuterico

24 Programacioacuten orientada a objetos

L~~ meacutetodos orientados a objetos organizan la informacioacuten Y el procesamiento que manipula esta informacioacuten de acuerdo a los objetos delrsquomundo real que la informacioacuten describe [BRO97l

Beneficios de las teacutecnicas orientadas a objetos [BR097] Estabilidad del sistema Mantenibilidad Componentes reusables Confiabilidad Accesibilidad de los datos Participacioacuten del usuario

Seguacuten Graddy Booch la programacioacuten orientada a objetos es ldquoun meacutetodo de implementacioacuten en el que los programas se organizan como colecciones cooperativas de objetos cada uno de los cuales representan una instancia de alguna clase y cuyas clases son todas miembros de una jerarquiacutea de clases unidas mediante relaciones de herenciardquo [JOY 981

Programacioacuten orientada a objetos esencialmente significa programacioacuten usando objetos [JAC93] Los lenguajes orientados a objetos deben soportar los siguientes conceptos

Objetos Abstraccioacuten de datos Encapsulamiento Clases e Instancias Herencia entre clases Polimorfismo

Las propiedades fundamentales de la Programacioacuten Orientada a Objetos son

a Abstraccioacuten Son ideas conceptos y propiedades que se describen en forma general eliminando los detalles Es una estructura de datos y los meacutetodos que manipulan a esos datos

b Encapsulamiento Son las fronteras propias de un objeto bien definidas las cuales protegen los detalles de su representacioacuten interna

c Ocultacioacuten de la informacioacuten Es la propiedad en la que los objetos pueden hacer uso para impedir que otros objetos los usuarios o incluso los programadores conozcan coacutemo estaacute distribuida la informacioacuten

d Herencia Es la propiedad que tiene una clase para heredar atributos y comportamiento a otras clases

e Polirnorfismo Es la propiedad que permite que una entidad pueda cambiar a diferentes formas efectuaacutendose de manera dinaacutemica en tiempo de ejecucioacuten

16

Marco teoacuterico

t

Clases Es la especificacioacuten de una familia de objetos es la declaracioacuten de un tipo de objetos Tambieacuten se dice que una clase es la descripcioacuten de un conjunto de objetos con un comportamiento similar y que esta compuesta de Datos (o atributos) y Meacutetodos o (rutinas acciones operaciones)

Objeto Un objeto es una entidad en la cual se almacenan datos y los meacutetodos o funciones que controlan dichos datos Un objeto es una abstraccioacuten de alguna cosa del mundo real que contiene datos que lo describen y operaciones que solo tienen acceso a esos datos [BR097l Los elementos de los que esta conformado un objeto son

a Las relaciones permiten que el objeto se integre en la organizacioacuten b Las propiedades son los datos que caracterizan el estado de un objeto distinguiendo

asiacute a un objeto determinado de los restantes que forman parte de la misma organizacioacuten

c Los meacutetodos son las operaciones que pueden realizarse sobre la estructura del objeto es decir las acciones que cambian el estado de un objeto y que el objeto es capaz de ejecutar a traveacutes de mensajes y que tambieacuten pone a disposicioacuten de sus descendientes a traveacutes de la herencia

Mensajes Son solicitudes para que se lleve a cabo la operacioacuten indicada y se produzca un resultado

Las razones principales para introducir la tecnologiacutea de objetos son los beneficios de dicha tecnologiacutea

Aumento de la fiabilidad Aumento de la productividad del desarrollador Desarrollo maacutes raacutepido Mejor calidad maacutes alta

Incremento en escalabilidad Mejores estructuras de informacioacuten Incremento de adaptabilidad Reduccioacuten del coacutedigo fuente

Mantenimiento maacutes faacutecil y reduccioacuten de costo

Los elementos de reutilizacioacuten son las clases y objetos

25 Lenguaje de Modelado Unificado (UML)

UML (Unified Modeling Language por sus siglas en ingleacutes Lenguaje de Modelado Unificado) es un lenguaje de modelado visual de propoacutesito general que es utilizado para especificar visualizar construir y documentar las partes de un sistema de software El lenguaje estaacute basado en un pequentildeo nuacutemero de conceptos centrales que la mayoriacutea de los desarrolladores de tecnologiacutea orientada a objetos pueden aprender y aplicar faacutecilmente [RUM99]

17

Marco teoacuterico

y UML Pasado Presente y Futuro

L~~ lenguajes de modelado orientado a objetos aparecieron a mediados de 10s 70rsquos Varias teacutecnicas influenciaron estos lenguajes El nuacutemero de lenguajes de modelado incrementoacute desde menos de 10 hasta maacutes de 50 entre 1989 y 1994 Muchos modeladores teniacutean problemas para encontrar un lenguaje de modelado que satisficiera todas sus necesidades Notablemente aparecioacute Boochrsquo93 y la evolucioacuten continuoacute a OMT y Fusioacuten

OOSE (Object-Oriented Software Engineering) estaacute enfocado a la ingenieriacutea de negocios y anaacutelisis de requerimientos dando un excelente soporte orientado a casos de uso OMT-2 es especialmente expresivo para anaacutelisis y sistemas de informacioacuten de datos grandes Boochrsquo93 fue particularmente expresivo para el disentildeo y fases de construccioacuten de proyectos y popular para aplicaciones de ingenieriacutea intensiva

Grady Booch y Jim Rumbaugh iniciaron el desarrollo de UML en 1994 al unificar sus meacutetodos independientes Booch y OMT En 1995 Ivar Jacobson se unioacute a Racional eacutesta unioacuten logroacute que el meacutetodo OOSE se incorporara La unificacioacuten establecioacute que debiacutean activar el modelado de sistemas utilizando conceptos orientados a objeto asiacute como crear un lenguaje usable tanto para las maacutequinas como para los humanos

A

Muchas organizaciones se unieron al consorcio UML y dedicaron recursos al trabajo hacia el fortalecimiento de la definicioacuten de UML Esta colaboracioacuten produjo un lenguaje de modelado expresivo poderoso y generalmente aplicable En la forma actual de UML se espera que sea base de muchas herramientas incluidas las de modelado visual simulacioacuten y ambientes de desarrollo

R UML es abierto y no-propietario y aunque define un lenguaje preciso no es barrera para futuras mejoras en conceptos de modelado Se usan muchas teacutecnicas de punta pero se esperan teacutecnicas adicionales que influencien futuras versiones de UML puede ser extendido sin redefinir el nuacutecleo

c

Mientras el rehuacuteso basado en componentes se ha favorecido ampliamente cada vez mas esto no significa que las teacutecnicas basadas en componentes reemplazaraacuten las teacutecnicas orientadas a objetos Hay solo sutiles diferencias entre la semaacutentica de componentes y clases [ALC03]

Un opaco rendimiento caracterizoacute el mercado de anaacutelisis modelado y disentildeo en el 2000 en su transicioacuten de las viejas herramientas CASE (Computer Aided Software Engineering) a algo maacutes dinaacutemico y mejor adaptado para satisfacer las necesidades de los desarrolladores para el cambio raacutepido en los ambientes de negocio

El mercado de anaacutelisis modelado y disentildeo lograraacute obtener un crecimiento positivo en varios de los siguientes antildeos por varias razones El mercado seraacute manejado principalmente por la necesidad de desarrolladores a obtener aplicaciones para lanzarse al mercado raacutepidamente asiacute tambieacuten por el intereacutes creciente y uso de una nueva especie de herramienta y por el intereacutes creciente de los desarrolladores en usar UML reglas de negocios y adaptadores de componentes para construir aplicaciones [RIKUI]

z -

18

Marco teoacuterico

UML se ha hecho el estaacutendar para los desarrollos de modelado de negocios administracioacuten de requerimientos anaacutelisis y disentildeo programacioacuten y pruebas Los objetivos primarios de UML en el disentildeo [RAT97j

o Dar a los usuarios un lenguaje visual expresivo de modelado listo para usarse para que puedan desarrollar y cambiar los significados de sus modelos

o Suministrar mecanismos de extensibilidad y especializacioacuten para extender los conceptos centrales

o Ser independiente de lenguajes de programacioacuten particulares y procesos de desarrollo

o Impulsar el desarrollo de las herramientas Orientadas a Objeto en el mercado o Soportar conceptos de desarrollo de alto nivel como colaboracioacuten marcos de

componentes reutilizables patrones y componentes o Integrar las mejores praacutecticas

9 El aacutembito de UML

UML es un lenguaje para especificacioacuten construccioacuten visualizacioacuten y documentacioacuten de artefactos de un sistema de software UML es la fusioacuten de los conceptos de Booch OMT y OOSE El resultado es un simple comuacuten y ampliamente usado lenguaje de modelado para usuarios de estos y otros meacutetodos UML se enfoca en un lenguaje de modelado estaacutendar no en un proceso estaacutendar los autores de UML recomiendan un proceso de desarrollo manejado por casos de uso de arquitectura central iterativo e incremental [iiquest4T97l

Para la definicioacuten de sistemas de software en UML se definen diagramas Un diagrama es la representacioacuten graacutefica de un conjunto de elementos este se visualiza la mayoriacutea de las veces como un grafo conexo de nodos (elementos) y arcos (relaciones) Los diagramas se dibujan para visualizar un sistema desde diferentes perspectivas de forma que un diagrama es la proyeccioacuten de un sistema uumlML incluye nueve diagramas [B0099]

4 -

I Diagrama de clases 2 Diagrama de objetos 3 Diagrama de casos de uso 4 Diagrama de secuencias 5 Diagrama de colaboracioacuten 6 Diagrama de estados 7 Diagrama de actividades 8 Diagrama de componentes 9 Diagrama de despliegue

Diagramas de secuencias Un diagrama de secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten comportamiento

Un diagrama de secuencias muestra un conjunto de mensajes acomodados en una secuencia de tiempo eacuteste diagrama muestra la interaccioacuten en un esquema de dos - dimensiones [RUM99]

19

Marco teoacuterico

Y -

Un diagrama de secuencia es un diagrama de interaccioacuten que resalta la ordenacioacuten temporal de los mensajes Un diagrama de secuencia presenta un conjunto de objetos y los mensajes enviados y recibidos por ellos Los objetos suelen ser instancias (con nombre o sin nombres) de clases pero tambieacuten pueden representar instancias de otros elementos tales como colaboraciones componentes y nodos Los diagramas de secuencia se utilizan para describir la vista dinaacutemica de un sistema [B0099]

Usar los diagramas de secuencia es mostrar la secuencia que existe en un caso de uso [RUM 991

Los diagramas de secuencia tienen dos dimensiones Una dimensioacuten que representa el tiempo Otra dimensioacuten que representa los diferentes objetos que participan en la secuencia de eventos requeridos para completar el propoacutesito [MOuuml98]

El principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildea las interacciones de los objetos [DAN02]

20

Capiacutetulo 3

DesawoCCo de Ia herramienta

En este capiacutetulo se describe el desarrollo del Ambiente Visual Se describe el modelo conceptual del sistema la arquitectura asiacute como tambieacuten los elementos que componen la Arquitectura Se estudian los Diagramas de Secuencias de UML y algunos Patrones de Disentildeo de los que se hace uso para el mejor desarrollo del sistema Se describe a detalle la Gramaacutetica Visual Relaciona1 utilizada para el de Ambiente de desarrollo

I CENIOET 1FNTRO DE INFORMACION

Desarrollo de la herramienta

t i i

Actualmente existe en el cenidet un Ambiente Visual de Modelado de Clases llamado InverSOODA este Ambiente Visual tiene la capacidad de realizar la generacioacuten automaacutetica de coacutedigo de las clases en C++ a partir del modelo especificado Ademaacutes se puede realizar la Ingenieria Inversa de un coacutedigo legado para obtener el modelo de clases Aunado a este trabajo existe el Ambiente Visual denominado InverDDVi con el cual se puede realizar el Disentildeo Detallado de los Meacutetodos de las Clases con diagramas de Warnier Asiacute tambieacuten es posible obtener el modelo aplicando la Ingenieriacutea Inversa a un coacutedigo legado en C++

Ambos trabajos son retomados en este proyecto para la automatizacioacuten en la obtencioacuten de los Diagramas de Secuencias de UML La figura 31 muestra el modelo propuesto de ingenieriacutea directa

Extraer informacioacuten del diagrama de

rsquo rsquo

Diagrama de 11 clases I o

detallado de

detallado de

o meacutetodos

i ir---- Construir el

secuencias i

Modelo de Ingenieriacutea I directa automaacutetica

I

Figura 31 Modelo de Ingenieria Directa Autombtica de los Diagramas de Secuencias

Para la construccioacuten automaacutetica de un diagrama de secuencias se toma como base a un diagrama de Clases El modulo ldquoExtraer informacioacuten del diagrama de Clasesrdquo sirve para obtener el nombre y los meacutetodos descritos en cada uno de las clases que existan en el diagrama de Clases

22

Desarrollo de la herramienta

Con base en la informacioacuten que se tiene se abren los archivos correspondientes a los diagramas de Warnier El proceso que se emplea sobre cada uno los diagramas de Warnier llamado ldquoExtraer informacioacuten de los disentildeos detallados de los meacutetodosrdquo sirve para recopilar el conjunto de las llamadas de cada meacutetodo definido

En el siguiente paso (ldquoReconocer llamadas a meacutetodosrdquo) consiste en identificar si los meacutetodos que estaacuten descritos en los diagramas de Warnier tambieacuten lo estaacuten en el diagrama de Clases correspondiente

El paso ldquoConstruir los diagramas de secuencias automaacuteticamenterdquo realiza una validacioacuten de los meacutetodos definidos en los diagramas de Clases con los meacutetodos definidos en los diagramas de Warnier Este paso crea una estructura de datos con la secuencia de las llamadas y la recorre para crear los objetos y los mensajes en el diagrama de secuencias

AI terminar la creacioacuten automaacutetica del diagrama de secuencias se dispone de la r opcioacuten de guardar

31 Disentildeo de la Arquitectura

Para definir los procesos que el sistema va a realizar es necesario llevar a cabo un anaacutelisis de requisitos los cuales pueden ser expresados mediante diagramas de Casos de Uso Los Casos de Uso son una descripcioacuten textual narrativa de los procesos de un sistema

311Requisitos (Diagrama de Casos de uso)

Los casos de uso en realidad no son un artefacto de anaacutelisis orientado a objetos estos describen simplemente procesos y pueden ser igualmente efectivos en un proyecto tecnoloacutegico no orientado a objetos Son usados en un paso preliminar a la descripcioacuten de requerimientos de un sistema [LAR971 La Figura 32 muestra el diagrama de casos de uso que especifica al S3C

9

S3C (Diagramas de Secuencias)

usuario I Modelado de

I

Figura 32 Diagrama de Casos de Uso para el S3C

23

Desarrollo de la herramienta

Descripcioacuten de los Casos de Uso

Caso de Uso ldquoDiagramas de Secuenciasrdquo Se inicia cuando el actor ldquousuariordquo solicita la creacioacuten de un Diagrama de Secuencias Se establece la forma de la construccioacuten automaacutetica de los diagramas de secuencias de UML Se hace uso del Modelado de Clases y del Modelado del disentildeo detallado de los meacutetodos

Escenario de Eacutexito 1 Se obtiene la informacioacuten de las clases del modelado de clases 2 Se obtiene la informacioacuten del modelado del disentildeo detallado de los meacutetodos 3 Se realiza la construccioacuten automaacutetica de los diagramas de secuencias

1 En el modelo de clases no hay informacioacuten o estaacute incompleta 2 En el modelo del disentildeo detallado de los meacutetodos no hay informacioacuten o estaacute

incompleta

Escenario de Falla

Caso de Uso ldquoModelado de Clasesrdquo El diagrama de Clases se utiliza para obtener los nombres de clases y los nombres de los meacutetodos de cada clase

Escenario de Eacutexito 1 Se abre el modelo 2 Se procesa para obtener la informacioacuten de las clases (nombres de clases y nombres

de meacutetodos)

Escenano de Falla h 1 No se puede abrir el modelo J 2 El modelo esta vaciacuteo

Caso de Uso ldquoModelado del Disentildeo detallado 1 los meacutetodosrdquo El disentildeo detallado de los meacutetodos se realiza con diagramas de Warnier aquiacute se establecen las llamadas a funciones dentro del sistema y es aquiacute donde se identifica el dinamismo que se representaraacute en los diagramas de secuencias

Escenario de Eacutexito 1 Se abre el modelo 2 Se realiza la identificacioacuten de las llamadas existentes

Escenario de Falla 1 No se puede abrir el modelo 2 El modelo esta vaciacuteo

24

Desarrollo de la herramienta

Clase Objeto ni I Diagrama I n ____ Nombre Descripcioacuten

i

Mensaje

Tipo

En el Anaacutelisis Orientado a Objetos se crea una especificacioacuteii del dominio del problema y de los requeriinientos desde la perspectiva de una clasificacioacuten por objetos y del entendimiento de los teacuterminos usados en el dominio del problema Una descomposicioacuten del dominio del problema involucra una identificacioacuten de conceptos atributos y asociaciones que son considerados importantes dentro del dominio El resultado puede ser expresado en un Modelo Corzcepttraf el cual es ilustrado en un conjunto de diagramas que definen conceptos (objetos) [LAR97]

312Modelo Conceptual

El modelo conceptual visto en la Figura 33 no es una descripcioacuten de componentes de software representa conceptos en el domino del problema en el mundo Teal [LAR97l

313Diagramas de clases

Por cuestiones dc espacio las clases de la arquitectura del sistema estaraacuten referidas en varios diagramas que de alguna manera estaacuten relacionados entre si

Una de las partes maacutes importantes del Ambiente Visual S3C es la estructura de clases ltCCraJicogt la cual se refiere al control de los diagramas eacutesta por su naturaleza podriacutea considerarse el nuacutecleo del sistema La manipulacioacuten y control de los diagramas estaacute definido en una estructura de clases organizada con el patroacuten de disentildeo Composite que se muestra en la Figura 34

25

Desarrollo de la herramienta

CRecursividadDS CMensajeDS CObjetoDS CDiagramaDS

I Cvisitor I

CApuntadorDS CDblClickDS CAsocAdjusterDS CSelectorDS

26

Desarrollo de la herramienta

n 32 Elementos de la arquitectura

Es necesario describir los elementos que dan soporte a la arquitectura del ambiente donde se implementaraacute el sistema en este caso Microsoft Visual (MV) C++ 6 El MV C++ es un marco de aplicacioacuten poderoso basado en Windows se integran ademaacutes del lenguaje C++ (compilador y enlazador) el programa de desarrollo de programas en lenguaje C para Windows (SDK) la Microsoft Foundation Class Library AppWizzard Classwizard AppStudio y WorkBencli

La Microsoft Foundation Class Library comprende una biblioteca de clases de C++ y es considerada como el nuacutecleo del MV C++

321Microsoft Foundation Class (MFC)

La libreriacutea Microsoft Foundation Class (MFC) es una interfaz orientada a objetos que tiene las siguientes metas de disentildeo

o

Reduccioacuten significante de esfuerzo al escribir una aplicacioacuten para Windows Velocidad de ejecucioacuten comparable a las APIrsquos del lenguaje C Miacutenimo tamantildeo de coacutedigo Capacidad para llamar cualquier funcioacuten de Windows en C directamente Faacutecil conversioacuten de aplicaciones existentes en C a C++ Faacutecil uso de APIrsquos de Windows con C++ como con C Faacutecil uso de complicadas caracteriacutesticas de abstracciones poderosas como ActiveX soporte para base de datos impresioacuten barras de herramientas y barras de estado El API de Windows en C++ si usa tan efectivamente como las caracteriacutesticas mismas del lenguaje C++

La mayoriacutea de las clases de la Libreriacutea de la Microsoft Foundation Class son derivadas de una clase base ltCObjectgt que es la raiacutez de la jerarquiacutea de clases ltCObjectgt da uacutetiles capacidades a las clases que derivan de ella

La jerarquiacutea que existe en las clases derivadas de ltCObjectgt es la siguiente

Arquitectura de Aplicacioacuten Excepciones Servicios de Archivos Arreglos Listas Mapas Servicios de Internet Sockets Sincronizacioacuten Soporte para base de datos D A 0

27

Desarrollo de la herramienta

i

r

Liacutenea de Comandos Menuacute Dibujo Graacutefico Dibujo Graacutefico de Objetos Soporte de Control Soporte de Ventanas

Soporte para base de datos ODBC

o Marco de Ventanas o Barras de control o Hojas de propiedades o Cajas de Dialogo o Vistas o Controles

322Arquitectura Documento Vista

Por defecto las aplicaciones creadas con la MFC usan un modelo de aplicacioacuten que separa los datos del programa de las vistas de interaccioacuten con el usuario En eacuteste modelo un objeto documento de MFC lee y escribe datos en un almacenamiento persistente Un objeto vista administra el despliegue de datos suministrando al usuario los datos para ser seleccionados o editados La vista le comunica al documento cualquier cambio en los datos La razoacuten maacutes conveniente para seguir este modelo es cuando se necesita muacuteltiples vistas del mismo documento (como en una hoja de caacutelculo y un graacutefico)

La arquitectura documentovista hace faacutecil el soporte de muacuteltiples vistas y muacuteltiples tipos de documentos asiacute como la divisioacuten de ventanas y otras caracteriacutesticas de interfaz de usuario Pero el corazoacuten de la arquitectura son cuatro clases (Mostradas en el aacuterbol de clases de la Figura 36)

ltCDocumerrtgt (o ltCOleDocuinentgt) - Se instancia un objeto de este tipo para almacenar y controlar los datos del programa ltCViewgt (o una de sus clases derivadas ltCScrotlViewgt ltCFormViewgt ltCEditView ltCRecordViewgt ltCDaoRecordView ltCtreeViewgt ltCListViewgt b ltCrichEditViewgt) - Un objeto es usado para desplegar los datos y administrar la interaccioacuten del usuario con los datos ltCFrameWndgt (o una de sus variantes) - Establece el marco sobre el que trabajaraacuten una o mas vistas de un documento ltCDocTemolategt (o ltCSingIeDocTemplategt o ltCMultiDocTemplategt) - Coordina la existencia de uno o maacutes documentos de un tipo dado y administra la correcta creacioacuten de los documentos vistas y objetos ventanas para cada tipo

i

28

Desarrollo de la herramienta

______________ 2 Wiew

I - - __ - ------a ________________

323Integrando Ambientes en Visual C t t

Las aplicaciones de Interfaz de Documento Uacutenico (SDI) soporta muacuteltiples tipos de documentos pero este soporte es para un solo objeto documento Debido a esta restriccioacuten y aunado a la necesidad de tener varios objetos documentos a la vez se determina la utilizacioacuten del modelo Interfaz de Muacuteltiples Documentos (MDI) indicado en la Figura 37

324Interfaz de Muacuteltiples Documentos (MDI)

Una aplicacioacuten de Interfaz de Muacuteltiples Documento (MDI) permite la creacioacuten de plantillas para el manejo de los documentos eacutesta plantilla tiene la forma

rn-pDocTemplate = new CMultiDocTernplate ( I DR-SCUMLTY PE RUNTIME-CLASS (CSCUMLDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CTheView))

AddDocTernplate ( rn-pDocTemplate )

Cada plantilla describe una relacion del tipo de documento con la vista asociada La definicioacuten de la plantilla para el ambiente que controla los diagramas de secuencias es la siguiente

29

Desarrollo de la herramienta c

m-pTernplateSeqDlag = new CMultiDocTernplate ( IDR-DS-SJCTYPE RUNTIME-CLASS (CSeqDiagDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CSeqDiagView) )

AddDocTernplate( rn-pTernplateSeqDiag )

Esta plantilla hace uso de la clase CCliildFrame que por defecto el ambiente Visual C++ construye y esto es debido a que no se requieren caracteriacutesticas extras en las ventanas de las que proporciona dicha clasc En un caso en el que se requiriera un comportamiento diferente de la vista tendriacutea que crearse una nueva clase con las caracteriacutesticas deseadas

Vista Documento

Vista

I- Vista Documento I [ Tip- F Vista

L Figura 37 Modelo Interfaz de Muacuteltiples Documentos (MDI)

Para integrar otro Ambiente que utilice otro tipo de documento es necesario definir otra plantilla de la misma forma mencionada Debe tomarse en cuenta los siguientes puntos

Es necesario definir el nombre (mqTemplateNOMBRE) El IDR del tipo que se requiere que sea el documento En la primera liacutenea RUNTIME CLASS debe indicar la clase ltCDocumentgt que desea La segunda liacutenea RUNTIME-CLASS soacutelo la cambia a otra clase si requiere de otro manipulador de ventanas de lo contrario deje que ltCChildFramegt se haga cargo

-

30

Desarrollo de la herramienta

En la uacuteltima liacutenea referente a RUNTIME-CLASS se debe indicar la clase ltCViewgt que desea usar Para finalizar se usa la instruccioacuten AddDocTernplate para finalizar la definicioacuten del template (mgTemplateNOMBRE)

325 Recursos Diaacutelogos Mertuacutes y Barras de Herrattriertias

Son varios los recursos con los que se puede contar al crear un proyecto en Microsoft Visual C++ Los diaacutelogos son un recurso disponible que son utilizados para visualizar ingresar yo modificar informacioacuten que se requiera En el Ambiente Visual que se desarrolla son varios los diaacutelogos que se utilizaraacuten y eacutestos se describen a continuacioacuten

El Diaacutelogo ldquoCaracteriacutesticas del Obietordquo (Figura 38) identifica el nombre del Objeto y la descripcioacuten del mismo Este diaacutelogo se muestra cuando se presiona doble clic sobre un objeto del diagrama

I Nombre

Desciipcion

Figura 38 Dialogo Caracteriacutesticas del Objeto

El Diaacutelogo ldquoMensaierdquo (Figura 39) muestra el nombre del mensaje que puede ser modificado ademaacutes se visualizan el Identificador del Mensaje el tipo de Mensaje asiacute tambieacuten el origen y destino del mensaje

31

Desarrollo de la herramienta

Nornbie delMensaje Edit

IDentificador del Mensaje Edil Tipo de Mensaje (Edil

Edit Objeto Origen

Objeto Destino IEdit

i25El A Figura 39 Dialogo Mensaje

El menuacute es otro de los recursos del que se puede disponer para organizar el ambiente que se estaacute creando Para eacuteste caso en particular no se hizo modificaciones al menuacute estaacutendar (Figura 310) que Visual C++ presenta Los cambios significativos son el manejo del tipo de documento para los Diagramas de Secuencias

Archivo Editar Yer VenLana AyGda

Figura 310 Menuacute de los Diagramas de Secuencias (estaacutendar)

Otro importante recurso del que uno se puede valer en Visual C++ es la barra de herramienta personalizada la cuaacutel es construida en el Editor de Recursos Se ha construido una barra (Figura 311) con los elementos graacuteficos de los Diagramas de Secuencia de UML

Figura 311 Barra de Herramientas de los Diagramas de Secuencias

Es recomendable que al utilizar barras de herramienta personalizada se defina en el tamantildeo estaacutendar ya que puede experimentar problemas al momento de ejecutar la aplicacioacuten

Ademaacutes puede usar la propiedad TBBS-CHECKGROUP en una barra de herramientas para establecer que los botones puedan quedar presionados hasta que un botoacuten diferente sea presionado No olvide que la numeracioacuten inicia con cero ( O )

vuriableToolBurSetButtonStyle(OTBBSCHECKGROUP)

32

Desarrollo de la herramienta

Prefijo ID IDC IDD IDP IDR IDS

326 Notacioacuten estaacutendar

Los nombres descriptivos de los recursos se asocian a un valor uacutenico Para una mayor claridad eacutestos nombres mantienen un prefijo que describe el tipo de recurso asociado (vea la Tabla 31) [MIC99]

Tipo de Recurso Comandos de Menuacute Controles y recursos Cuadros de diaacutelogo Cadenas de solicitud para cuadros de mensaje Menuacute principal barras de herramienta tabla aceleradora y el icono Cadenas

IDR IDD IDC ID

200 - 299 3000 - 3999 34000 - 34999

Estos son los rangos de valores establecidos para el proyecto S3C Si se utiliza el coacutedigo fuente y se planea agregar otro proyecto verifisue que no se invadan estos nuacutemeros para evitar problemas

Para facilitar auacuten maacutes los trabajos futuros se ha definido una estructura de carpetas (ver Figura 312) para incluir en cada una las Clases correspondientes a cada tesis en desarrollo

33

Desarrollo de la herramienta

ill ~~ -

-I SCUML classes + U A N T L R + U App + 0 ClassDiagrams + 0 Common + a Java

t $2 SequenceDiagiams

+ WarnierDiagrams

iJ PackageDiagrams

12 StaterChartDiagrams

+

- f Classview I Resourceview 1 FileView ]

~ ~

Figura 312 Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)

327Estructura de datos persistencia y recuperacioacuten

Existe una gran cantidad de tipos de datos estructuras clases y meacutetodos de los que se puede hacer uso para una mejor y maacutes faacutecil obtencioacuten de los resultados A continuacioacuten hago comentarios en tipos de datos y meacutetodos en los que podriacutea tener problemas

CTypedPtrList

AI usar este tipo de dato o alguno relacionado que le permita utilizar el meacutetodo ltCTvrgtedPtrListGetNextgt tenga especial precaucioacuten al usarlo ya que al devolver el valor requerido la variable POSITION usada no se queda apuntando a ese valor en particular salta al inmediato siguiente de la lista

Si se realiza una creacioacuten dinaacutemica con punteros para los elementos de una CTypedPtrList Despueacutes de haberlo agregado a la lista evite el delete para borrar esta Usted deseando liberar la memoria no lo haga ya que eliminara directamente el elemento de la lista

POSITION

Es un valor usado para denotar una posicioacuten de un elemento en una coleccioacuten Pero CUIDADO no se refiere a un iacutendice es una referencia (no consecutiva) de punteros muy diferente a un iacutendice

CString

Auacuten cuando el operador de comparacioacuten == (igual a) es permitido para ser utilizado en las cadenas evite su uso ya que en ocasiones aunque cuando la e

34

Desarrollo de la herramienta

compilacioacuten no indique error alguno en la ejecucioacuten no realizaraacute lo que se necesita Recomiendo que utilice CStringCompare ()

Para eliminar el contenido de un CString utilice CStringEmpty() ya que asignar a la cadena un ldquonrdquo podriacutea causarle problemas

Serializacioacuten

Una forma en que se puede guardar informacioacuten y recuperarla de manera eficaz es mediante la serializacioacuten de objetos La serializacioacuten es un proceso que permite escribir un objeto en un archivo y tambieacuten leerlo

Para que la serializacioacuten se lleve a cabo son necesarios tres objetos un objeto de tipo ltCFilegt que represente el archivo un objeto de tipo ltCArchivegt que ofrece el entorno para la serializacioacuten y la clase del objeto a ser serializado debe ser heredada de ltCObjectgt y sobrescribir el meacutetodo ltSerializegt para que se encuentre de tal forma en que pueda ser serializado (vea la Figura 313)

Objeto a ser serializado 1

1 CArchive

[f --=I- ---7 Archivoexi

u Figura 313 Serializacioacuten

328Patrones de disentildeo utilizados

Se ha planteado la definicioacuten de una arquitectura de clases utilizando patrones de disentildeo debido a que algunos de ellos hacen maacutes faacutecil la extensioacuten de la funcionalidad y mantenimiento

35

Desarrollo de la herramienta

El patroacuten Composite es utilizado para crear de manera uniforme el diagrama sobre el que se trabaja (ver Figura 34) manteniendo una jerarquiacutea de clases uniforme las clases maacutes bajas en la jerarquiacutea definen primitivas de objetos graacuteficos

Se aplica el patroacuten de disentildeo Iterator para hacer recorridos en listas de objetos para realizar diversas operaciones Otro patroacuten de disentildeo del que se hace uso es el Visilor (ver Figura 35)

Para otras actividades que se realizan podriacutea pensarse en que se deberiacutean aplicar otros patrones pero se han evitado algunos (como el patroacuten de disentildeo Builder) para evitar incrementar la complejidad en la arquitectura ya que ai mantener el modelo de la MFC de documentovista la funcionalidad del patroacuten de disentildeo Builder es faacutecilmente reemplazado si se hiciera Uso de eacuteste se aumentariacutea la complejidad excesivamente (nos llevariacutea a perdemos en ocasiones en el paso de mensajes entre clases) dantildeando la facilidad de la arquitectura

33 Diagrama de secuencias

Un Diagrama de Secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten escenario Oacute comportamiento se usan para definir el curso loacutegico de accioacuten de un posible camino a seguir en la resolucioacuten de un problema Seguacuten John Daniels [DANO2] ldquoel principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildean las interacciones de los objetosrdquo

Los Diagramas de Secuencias se utilizan en el modelado de la implementacioacuten de sistemas de software ademaacutes son aplicables en el modelado de requisitos para establecer las comunicaciones existentes entre actores yo clases del sistema Con eacutestos diagramas se logran hacer descripciones de los escenarios y los comportamientos del sistema Con los Diagramas de Secuencias es posible definir protocolos de comunicacioacuten con paso de mensajes ya que dan esa flexibilidad que se requiere Ademaacutes los Diagramas de Secuencias contienen informacioacuten suficiente para que puedan ser transformados a los diagramas de colaboracioacuten [RUM Ol][BOO Oil

331Ciclo de vida del software

Considerando cualquier modelo de ciclo de vida del software (en la figura 314 se muestra el Modelo de cascada) el aacutembito directo de eacuteste Ambiente Visual es en el disentildeo aunque tiene sus vertientes en la codificacioacuten y mantenimiento

36

Desarrollo de la herramienta

Diseno

Codificacibn

I I I I Mantenimiento I

igura 314 Modelo de cascada del ciclo de vida del software

34 Elementos atoacutemicos de la Gramaacutetica

Definicioacuten de los elementos atoacutemicos del lenguaje y su contenido

1 Actor- Representa roles de entidad externos al sistema con el que interactuacutea directamente Los actores pueden ser humanos dispositivos u otros sistemas

2 ClaseObjeto- Determina una Clase u Objeto participante en la interaccioacuten

3 Mensaje-Es una comunicacioacuten entre objetos que contiene informacioacuten Eacuteste se representa con la finalidad a que una accioacuten sea llevada a cabo

4 Mensaje con tiempo- Tiene la misma finalidad que el mensaje la diferencia es que con eacutel se representa un atributo de tiempo

5 Mensaje asiacutencrono Es un mensaje que ocurre en el tiempo de manera independiente a otros mensajes

6 Mensaje de destruccioacuten de objeto- Es un mensaje cuya finalidad es indicar la destruccioacuten del objeto destino

7 Mensaje de creacioacuten de objeto- Es un mensaje que indica la creacioacuten de un objeto

8 Llamada al mismo objeto (Recursividad)- Es usado para modelar llamadas recursivas en el que una operacioacuten es invocada por el mismo objeto

37

Desarrollo de la herramienta

9 Destruccioacuten del objeto (AutodestrucciOacuten)- Puede o no modelarse es representada con una X al final de la liacutenea de vida del objeto

Elementos aulomaacuteticos

1 Liacutenea de Vida- Representa la vida del objeto durante la interaccioacuten

2 Activacioacuten- Muestra el periacuteodo de tiempo en el cual el objeto alguna operacioacuten

341RepresentaciOacuten visual

Representacioacuten visual de los elementos atoacutemicos del lenguaje

Actor

_- A

Mensaje

Mensaje de Creacioacuten de

Objeto

ClaseObjeto

I

Mensaje de retorno

Mensaje de Destruccioacuten de

Objeto

abla 32 Element(

Activacioacuten

Mensaje con tiempo

Autodestruccioacuten

x

atoacutemicos del lengi

taacute realizz

Texto ===I (letra)+ (letra I

numero) letra= AZ I az numero = 09

I

Recursividad ~

I

i j e

io

38

u

Comentario

iexcl

Conector de Comentario

35 Gramaacutetica desarrollada

La gramaacutetica que se propone es una gramaacutetica visual del tipo relacional Una gramaacutetica relacional pertenece a las gramaacuteticas libres de contexto es una 6-iupla G (N C S R Attr P) donde

N es un conjunto finito de siacutembolos no terminales C es un conjunto de siacutembolos terminales S es un siacutembolo distinguido en N llamado siacutembolo inicial R es un conjunto finito de siacutembolos de relacioacuten Attr es un conjunto finito de siacutembolos de atributos P es un conjunto de producciones

Entonces definiendo nuestra gramaacutetica G (N C S R Attr P)

N = Diagrama GrupoClaseObjeto

S = Diagrama

R = mensaje mensajeTiempo mensajeRetomo mensajeAsincrono mensajecrea mensajeDestruye autodestruccioacuten recursividad

R

Attr = entrada salida entradacrea

39

Desarrollo de la herramienta

Definiendo la posicioacuten de los atributos en los elementos visuales

entradacrea ObetaClase

entrada

salida

P =

Diagrama I GrupoClaseObjeto (mensaje (mensajeRetorno

(salida 1) (entrada 2) ) (salida 2) (entrada 1) )

- Diagrama 0 GrupoClaseObjeto

(mensaje (mensaje (mensajeRetomo (mensajeRetomo (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entradacrea 2) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 1) ) (salida 1) (entrada 1) )

entrada

salida

40

Desarrollo de la herramienta

s

-

GrupoClaseObjeto - 1 1 I 2 (mensaje (mensaje (mensajeRetorno (mensajeRetorno (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entradacrea 2) ) (salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 1) ) (salida I ) (entrada I ) )

1 En las gramaacuteticas relacionales una produccioacuten estaacute acompantildeada de las posibles

relaciones que puedan generarse En la primera produccioacuten Diagrama produce a un Actor seguida de un GrupoClaseObjeto el Actor inicia la interaccioacuten con un mensaje y recibe el mensaje de retorno al finalizar la interaccioacuten La segunda y tercera produccioacuten son similares debido a que un GrupoClaseObjeto contiene dos ClaseObjeto que se relacionan de la misma forma

Existe un elemento de la gramaacutetica llamado Attr (Atributo) el cual define la parte de los elementos visuales donde se establecen las relaciones Se han determinado dos atributos (entrada y salida) que para nuestro propoacutesito estaraacuten establecidos en la liacutenea de vida de cada elemento visual (Actor y ClaseObjeto)

Los Comentarios y la Activacioacuten no se consideran en la gramaacutetica Los comentarios son libres de incluirse y relacionarse con cualquier elemento y relacioacuten mencionada anteriormente y la activacioacuten existe siempre que se presente un mensaje (o podriacutea omitirse) Estas consideraciones se realizaron para hacer auacuten maacutes faacutecil la gramaacutetica ya que si se trata de realizar un sistema las restricciones de estos elementos pueden mantenerse en el lenguaje de programacioacuten en el que se desarrolle el sistema

36

Precondiciones

El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias

1 El diagrama de Clases debe existir y estar completo 2 Debe existir un archivo con un diagrama de Warnier por cada diagrama de Clases y

con el mismo nombre de archivo (excepto la extensioacuten del archivo) 3 En el uacutenico diagrama de Warnier de cada Clase se deben modelar todos los meacutetodos

de la Clase 4 No realizar declaraciones de meacutetodos

41

Desarrollo de la herramienta

5 Debe existir un meacutetodo lsquomain()rsquo en el diagrama de Clases

Restricciones

Los meacutetodos deben mantener nombres distintos en las diferentes Clases

Metodologiacutea para la obtencioacuten automaacutetica de los Diagramas de Secuencias

1 Seleccionar el diagrama de Clases

2 Se construye una lista con los nombres de las Clases y los Meacutetodos

3 Se verifica si exista el meacutetodo lsquomain()rsquo en alguna Clase Se busca la existencia de una uacutenica Clase

a La Clase que contenga lsquomain()rsquo se va al inicio de la lista de Clases

b Si no existe lsquomain()rsquo SE TERMINA EL PROCESO

4 Se verifica la existencia de los archivos que contienen el Disentildeo Detallado de los meacutetodos en Wamier para cada una de las Clases si alguno falta SE TERMINA EL PROCESO

5 Se procesa cada uno de los modelos del Disentildeo Detallado de los Meacutetodos generando una lista de secuencias de llamadas por cada uno de los meacutetodos

6 Se verifica que cada llamada corresponda a alguacuten meacutetodo existente (del diagrama de Clases) De no existir ese meacutetodo la llamada entra a una estructura que

7 Se crea una lista de secuencia

a Se inicia con lsquomain()rsquo b Se recorre cada una de las llamadas de los meacutetodos c Se considera invaacutelido el caso de que un meacutetodo intente una llamada

recursiva al meacutetodo lsquomain()rsquo

8 Se muestra un diaacutelogo de resultados en el que se indican las llamadas que no se encnotraron definidas y que pueden ser Llamada a libreriacutea oacute Llamada Erroacutenea

42

Capiacutetulo 4

Prue6as y su6taaacuteos

En eacuteste capiacutetulo se da a conocer el detalle de las pruebas y de los resultados obtenidos Se describen los casos de prueba con los que se realizoacute la evaluacioacuten del sistema asiacute tambieacuten se presentan comentarios acerca de los resultados obtenidos

Pruebas y Resultados

41 Recursos teacutecnicos utilizados

Para llevar a cabo las pruebas al sistema S3C se utilizaron los siguientes equipos de Coacutemputo

Computadora de escritorio

256MB RAM Disco Duro 80G Monitor 17rdquo SAMSUNG

AMD Athlon XP 1600+ I4Ghz

Computadora de escritorio Intel Pentium 4 - 128MB RAM Disco Duro 40G Monitor 15rdquo i -

42 Descripcioacuten del plan de pruebas

Las pruebas establecen el Uacuteltimo paso desde donde es posible evaluar la calidad y descubrir los errores Las pruebas y la validacioacuten del software se utilizan para comprobar que el sistema cumple con las expectativas del usuario

En esta seccioacuten se describen los casos de prueba que se realizaron al prototipo de S3C en conjunto a la suite cenidet-UML Para cada uno de los casos se presenta el objetivo el procedimiento que se siguioacute para la prueba y se muestran los resultados obtenidos - _

Las pruebas a realizar son los siguientes

Caso 1 Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Caso 2 Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Wamier

Caso3 Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Wamier

Caso4 Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo 5

44

Pruebas y Resultados

43 Resultados

431 Caso 1

5 Y

IZ =

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoSirdquo 4 Seleccionar el archivo ldquoVENTASrdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 41 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

s3c iuevo Proyecto SCUM1

Diagrama de clases

lvendedor I L

3

salida

venta prod

4 venia-oferta vcntaprod =

salida 6

Figura 41 Resultado del caso de prueba 1

45

Pruebas y Resultados

432 Caso 2

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Warnier (almacenwar cajawar vendedorwar) que ya cxisten (del caso de prueba I )

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoNordquo 4 Agregar las siguientes Clases con los respectivos meacutetodos y atributos

a Claseldquovendedorrdquo Meacutetodos ldquoventa mainrdquo b Claseldquoalmacenrdquo Meacutetodos ldquoentrada salidardquo c Claseldquocajardquo Meacutetodos ldquoventagrodrdquo

5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 42 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

Diagrama de daseo lisgrama dcsccucncis

MOIDOC Anivo

venta prod

salida

1 Ycrdquo1a 2

I 4 vcrdquolD~o1cn venta prod gt

salida 6 i Figura 42 Resultado del caso de prueba 2

46

Pruebas y Resultados

r

433 Caso 3

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Warnier

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 43 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

5

Error al tratar de abrir el archivo A bZwar

Aceptar i

Faltan Archivos de Disentildeos Detallados de Meacutetodos 1 1 A No se puede crear el diagrama de secuencias

Figura 43 Resultado del caso de prueba 3

47

Pruebas y Resultados

434 Caso 4

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 44 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

lsquo I

~ _ i i _ l _ Repaado ~~ ~ ~ 6~ ampA Figura 44 Resultado del caso de prueba 4

48

Pruebas y Resultados

PRUEBA DESCNPCION CASO 1 Mostrar la funcionalidad del

Sistema S3C a partir de un

44 Anaacutelisis de Resultados

RESULTADOS Se comproboacute la correcta funcionalidad del Sistema S3C a partir de un diagrama

CASO 3

CASO4

I diagrama de Clases cxistcnte I de Clases existente CASO 2 I Mostrar la funcionalidad del I Sc comproboacute la corrccta funcionalidad

Sistema S3C a partir de un del Sistema S3C a partir de un diagrama diagrama de Clases que se de Clases que se construye al momento construye al momento Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el Secuencias si falta alguno de los diagrama de Secuencia si falta alguno diagramas de Warnier Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el secuencias si hace falta el meacutetodo diagrama de Secuencias al faltar el ldquomain ()rdquo meacutetodo ldquomain()rdquo

de los diagramas de Warnier

Los resultados obtenidos de cada uno de los casos establecidos demuestran que se validoacute la funcionalidad del prototipo con los requisitos definidos en el alcance de este proyecto

a lt

49

Conclusiones y Tru6ajos Futuros

Aquiacute se dan a conocer las conclusiones y se describen los posibles trabajos futuros para la continuacioacuten de eacuteste proyecto

F

51 Conclusiones

Conclusiones y trabajos futuros

Se ha creado un Ambiente Visual que permite obtener de forma automaacutetica los Diagramas de Secuencias en base a los diagramas de Clases y al disentildeo detallado de los meacutetodos descritos con diagramas de Warnier cumpliendo con los objetivos planteados para este trabajo

La tesis aporta principalmente La generacioacuten automaacutetica de los diagramas de secuencias y la eliminacioacuten de inconsistencias al mantener una validacioacuten directa de los diagramas de clases y los diagramas de Warnier que son utilizados

Esta validacioacuten es lograda a traveacutes del uso de la gramaacutetica visual relaciona1 que se ha definido (veacutease el capiacutetulo 3) Esta gramaacutetica visual establece reglas para la correcta construccioacuten de los diagramas de secuencias

P De esta manera se establece que la hipoacutetesis ldquoEs posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodosrdquo Es verdadera

52 Trabajos Futuros

Un Diagrama de Secuencias puede convertirse en un Diagrama de Colaboracioacuten por lo tanto un trabajo futuro es la construccioacuten automaacutetica de un Diagrama de Colaboracioacuten a partir de uno de Secuencias existente

Es posible calcular la meacutetrica de acoplamiento al tener un Diagrama de Secuencias construido

La Ingenieriacutea directa de un Diagrama de Secuencias estableciendo la validacioacuten en la construccioacuten de todos los elementos visuales que UML define

La propagacioacuten de las modificaciones de un Diagrama de Secuencias a los Diagramas de Clases y los Diagramas de Warnier

La modificacioacuten del coacutedigo fuente mediante los cambios establecidos en un Diagrama de Secuencias

51

[ALC03]

[BLA98]

[B0099]

[BOOOi]

[BR097]

[CHA90]

[DAN02]

[GLA02]

[HAC98]

[HER03]

4

Alcate1 Computer Associates International inc Electronic Data Systems Corporation Hewlett-Packard Company IBM Corporation I-Logix IntelliCorp Kabira Technologies Kennedy Carter Microsoft Corporation Object Management Group Oracle Corporation Project Technology Ptech Inc Rational Software Corporation Reich Technologies Softeam Taskon A S Telelogic Unisys Corporation ldquoOMG Unified Modeling Language Specificationrdquo Version 15 Unified Modeling Language 2003

Blaha Michael Rumbaugh James Premerlani William Eddy Frederick Lorensen William ldquoObject-oriented modeling and designrdquo Prentice Hall 484 Paacuteginas ISBN 0-13-629841-9 QA-769-03S-B53-19981998

Booch Grady Rumbaugh James Jacobson Ivar ldquoEl lenguaje unificado de modeladordquo Addison Wesley 432 Paacuteginas ISBN 84-7829-028-1 1999

Booch Grady Rumbaugh James Jacobson Ivar ldquoThe Unified Modeling Language User Guiderdquo Addison Wesley 2001

Brown David ldquoAn introduction to object-oriented analysis objects in plain Englishrdquo John Whiley amp Sons Inc 700 Paginas ISBN 0-471-1 1028-0 QA-769-035-B76-1997 1997

Chang Shi-Kuo ldquoVisual Languages and visual programmingrdquo Plenum Press 340 Paacuteginas ISBN 0-306-43428-8 QA-7665-V57-1990 1990

Daniels John ldquoModeling with a sense of purposerdquo Design - IEEE Software JanuaryEebmary 2002

Glasgow Universidad Reino Unido ldquoA UML Editor in Javardquo (lthttplstudentsdcsglaacuWstudentspainjfproject-reportproject-re port-htmV4thYearReporthtrnlgt 2002)

T Hackos JoAnn C Redish Janice ldquoUser and Task Analysis for Interface Designrdquo Wiley Computer Publishing 488 Paacuteginas ISBN QA-769-U83- H33-1998 1998

Hemaacutendez Velaacutezquez M ldquoIngenieriacutea inversa de coacutedigo fuente en C++ para la obtencioacuten de su disentildeordquo Tesis AT-379 (03-0334) 2003

Conceptos generales

[HIX93]

[JAC93]

[JAC99]

[JOY98]

[LAR97]

[MAR]

[MIC99]

[MIC02]

[MOU98]

Hix Deborah Hartson H Rex ldquoDeveloping user interfacesrdquo 381 Paacuteginas ISBN 0-471-57813-4 QA-769-U83-H59-1993 1993

Jacobson Ivar Christerson Magnus Jonsson Patrik Overgaard Gunnar ldquoObject oriented software engineeringrdquo Addison Wesley ISBN 0-20 1 - 54435-0 QA-7676-D47-J63-1993 1993

Jacobson Ivar Booch Grady Rumbaugh James ldquoEl proceso unificado de desarrollo de softwarerdquo Addison Wesley 438 Paacuteginas ISBN 84-7829-036- 2 1999

Joyanes Aguilar Luis ldquoProgramacioacuten orientada a objetosrdquo McGruw Hill ISBN 84-481-0590-7 1998

Larman Craig ldquoAplying UML and Patternsrdquo Prentice Hull 507 Paacuteginas ISBN 0-13-748880-7 QA-769-035-L37-1997 1997

Marriot Kim Meyer Bemd ldquoVisual Language Theoryrdquo Springer 381 Paacuteginas P-935-V567-1998 1998

Microsoft ldquoMicrosoft Visual C++ 6 manual del programadorrdquo McGraw Hill ISBN 84-481-2127-9 QA-7673-Cl53-23718-1999 1999

Microsoft ldquoVisiordquo (lthttpwwwmicrosoftcomofficevisiogt 2002)

B Mourao Luis X ldquoUniversal Modeling Language Part 11 UML Notation - Case Sequence and Collaboration Diagramsrdquo Lan Times Magazine (~httpwwwlantimescomltpartsdiscussdiscuss6Ohtm~) 1998

No Magic ldquoMagicDrawrdquo (lthttpwwwmagicdrawcomgt 2002)

Object Insight ldquoJvisionrdquo (lthttpwwwobject-insightcomgt 2002)

Rational Software Microsoft I Hewlett-Packard Oracle Sterling Software MCI Systemhouse Unisys ICON Computing IntelliCorp i-Logix IBM ObjectTime Platinum Technology Ptech Taskon Reich Technologies Sofieam ldquoUML Summaryrdquo Version 11 Unified Modeling Language 1997

Rational ldquoRational Roserdquo (lthttpwwwrationalcomproductosrosegt 2002)

Rikki Kirzner ldquoAnalysis Modeling and Design Tools Market Forecast and Analysis 2001-2005rdquo Bulletin Published Under Services Application Design and Construction Tools Application Development and Deployment Strategies Documento Nuacutemero 24809 Junio 2001

53

Conceptos generales

[RIM92] Rimrner Steve ldquoGraphical user interface programmingrdquo 423 Paacuteginas

1992

Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language reference manualrdquo Addison Wesley 550 Paacuteginas ISBN 0-201-

ISBN 0-8306-2475-9 ISBN 0-8306-2472-4 (pbk) QA-769-083-R55G

[RUM99]

30998-X QA-7676-D47-R85-1999 1999

[RUM299] Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language user guiderdquo Addisoiz Wesley 482 Paacuteginas ISBN 0-201 -57 168-4 QA-7676-D47-B66-1999 1999

[SMA02] SmartDraw ldquoSmartDrawrdquo (lthttpwwwsmartdrawcomgt 2002)

[SHU88] 9 - Shu Nun C ldquoVisual Programmingrdquo Van Nostrand Reinhold ISBN 0-422- 28014-9 ISBN 0-422-01 164-4 QA-7665-S55 1988

[THI90] Thimbleby Harold ldquoUser Interface Designrdquo Acm press 470 Paacuteginas ISBN 0-201 -41 61 8-2 QA-769U83-T772~- 1990 1990

[WENO2] Wences Diaz MF ldquoModelo de Ingenieriacutea Inversa para la obtencioacuten de disentildeo detallado basado en LEVISSrdquo Tesis (02-0014) 2002

54

Anexo A

Conampuracioacuten de Microsoft Vkua[C++ 6 O

Este anexo indica las configuraciones que se utilizaron para la compilacioacuten de SCUML y s3c

Configuracioacuten de Microsoft Visual c++ 60

Debido a la integracioacuten de los proyectos de InverSOODA e InverDDVi con S3C se cumplioacute con los requisitos previos de ambos proyectos

El compilador usado en el proyecto fue el Microsoft Visual C++ 60

Para el cumplimiento con la funcionalidad de InverSOODA se instaloacute el ANTLR la versioacuten 271 Se descargoacute del sitio l i l l ~ ~ ~ ~ ~ ~ t l ~ l ~ - ~ t - ~ la versioacuten mencionada en un archivo comprimido (en formato zip) Se colocoacute el paquete descomprimido en el directorio ldquoDIANTLR-271 I rdquo

Recomiendo ampliamente que el directorio principal de ANTLR se copie en el directorio raiacutez de cualquier unidad de disco debido a que experimenteacute problemas de compilacioacuten cuando ANTLR no se encontraba en el directorio raiacutez

Io015

Source Browser AlttF12 I u c Ersquo V I

Visual Component Mgnager

- - ~ ~ ~ ~~

P2 Registrar control

A Contenedor de prueba de controles ActiveX

A Usor de objetos OLE y COM

Buacutesqueda de errores

A Y++ MFC Iracer

Customize options

~ - q- ~ Macro

Eecord Quick Macro Cbl+ShiR+R Pay Quick Macro Ctrl+ShiR+P

En el menuacute Tools (Herramientas) seleccione el sub-menuacute Options ltopcionesgt

56

Configuracioacuten de Microsoft Visual C++ 60

En la siguiente ventana de diaacutelogo debe agregar la direccioacuten en donde se encuentra el ANTLR

Agregar la ruta del directorio de ANTLR hasta el subdirectorio

libcpp

Editor I Tabs I Debug I Compatibility 1 Build Dneclolies I a I Chow directories for - Platfolm -

- Directories I x ) 4 jWin32 -] llnclude files

m cancd I

57

Configuracioacuten de Microsoft Visual C t+ 60

Se ha creado una libreriacutea (anrlrliblib) de ANTLR la cual ya estaacute situada en el directorio del proyecto SCUML (ISCUML) y no debe ser movida o eliminada

I

Geneial 1 Debug I CC++ Link I Category

Output file name bebugSCUMLexe

Objectljibrary modules 4 anllrliblib

li Generate debug lnfo r Ignore all defaull lbaries D ~ i n k j n ~ ~ ~ t a n ~ r ~ e n e r ~ ~ ~ mapfile

r Enable psafilrng

Proiec1 Ootionn

pq Cancel 1 Libreriacutea de ANTLR que debe existir 1 I para que se compile correctamente

58

Anexo B

~ u iacute aacute raacutepida de uso deC Sistema S3C

5 Este anexo indica de forma raacutepida la manera de utilizar S3C para crear un diagrama de secuencias de forma automaacutetica

Guiacutea Raacutepida de uso del Sistema S3C i

Para indicar la creacioacuten de un diagrama de secuencias en forma automaacutetica se debe ir a la barra del costado izquierdo y presionar ldquoNuevo Proyecto SCUMLrdquo

I s3c I ~ Nuevo Proyecto SCUML ~ _ _ - I Diagrama de clases ~ Diagrama de secuencias 1 MDI DOC Activo

-

Apareceraacute un documento llamado ldquoSCUMLV en donde el simbolo corresponde a un numero consecutivo iniciando desde 1 (uno)

$ e Despueacutes se presiona ldquoDiagrama de clasesrdquo Habraacute que para indicarle al sistema si se requiere abrir un diagrama de clases existente o realizar uno nuevo

i

iquestAbrir un documento existente

No Cardquo~ear

AI presionar ldquoSirdquo se debe indicar cual es el archivo del diagrama de Clases en el cuadro de diaacutelogo siguiente

~~ - 11dMis documentos rsquo 2 M i P C i lsquo h s sitios de red

I

AI presionar ldquoNordquo en ldquoAbrir un documento existenterdquo se nos mostraraacute un documento vacio para crear un diagrama de clases

60

Guiacutea Raacutepida de uso del Sistema S3C

Para ambas opciones se requiere que los diagramas de Wamier ya se encuentren construidos Y para continuar el proccso se selecciona el documento ldquoSCUMLVrsquo creado al inicio y despueacutes presionar el botoacuten nombrado ldquoDiagrama de secuenciasrdquo localizado en la barra de hcrraiiiicntas del costado izquierdo

Ha iniciado el proceso de construccioacuten del diagrama de secuencias Si no existen errores al terminar el proceso se le mostraraacute un cuadro de diaacutelogo llamado ldquoResultadosrdquo en donde le mostraraacute las llamadas de las que no localizoacute su definicioacuten

- - -

Cancel 1 D e las siguientes llamadas es posible que esten mal escritas o peitenezcan a la libreiia del Lenguaie Verifique ya que no se encontraron sus definiciones

A continuacioacuten se mencionan los posibles errores que finalizan el proceso de la creacioacuten automaacutetica de los diagramas de secuencias en S3C

Cuando no exista un meacutetodo lsquomainrsquo definido en el diagrama de clases

No se encontro el meacutetodo lsquomain()rsquo que inicie la secuencia I A No se puede crear el diagrama de secuencias

p==amp=q

61

Guia Raacutepida de uso del Sistema S3C

Cuando se definan niultiples metodos lsquoinainrsquo en el diagrama de clases

Multiples meacutetodos lsquomainOlsquo Imposible decidir el inicio de secuencia

Aceptar i

Si un meacutetodo definido en Wamier realiza una llamada a lsquomainrsquo se cancelara el proceso

Llamada NO VALIDA al meacutetodo principal main

(iAcp-j(

4 i

CI Y rdquoldquoldquoI i 11 1-T

IZNTRO Gt INFORMACION

62

  • Tabla de Contenido
  • Listado de Figuras
  • Listado de Tablas
  • Notacioacuten
  • Introduccioacuten
  • Capitulo 1 Conceptos Generales
    • 11 Antecedentes
    • 12 Trabajos relacionados
      • 121 Tabla comparativa
        • 13 Definicioacuten del problema
        • 14 Objetivo de la Tesis
          • Objetivos especiacuteficos de la tesis
            • 15 Hipoacutetesis de investigacioacuten
            • 16 Alcances y limitaciones del trabajo de tesis
              • Capitulo 2 Marco Teoacuterico
                • 21 Modelado de sistemas de software
                • 22 Interfaz de usuario (Mecanismos de interaccioacuten)
                • 23 Lenguajes Visuales
                • 24 Programacioacuten orientada a objetos
                • 25 Lenguaje de Modelado Unificado (UML)
                  • Desarrollo de la herramienta
                    • 31 Disentildeo de la Arquitectura
                      • 311 Requisitos (Diagrama de Casos de uso)
                        • 312Modelo Conceptual
                        • 313Diagramas de clases
                        • 32 Elementos de la arquitectura
                          • 321 Microsoft Foundation Class (MFC)
                            • 322Arquitectura Documento Vista
                            • 323Integrando Ambientes en Visual c++
                              • 324 Interfaz de Muacuteltiples Documentos (MDI)
                                • 325Recursos Diaacutelogos Menus y Barras de Herramientas
                                  • 326 Notacioacuten estaacutendar
                                  • 327 Estructura de datos persistencia y recuperacioacuten
                                    • 328Patrones de disentildeo utilizados
                                      • 33 Diagrama de secuencias
                                        • 331Ciclo de vida del software
                                          • 34 Elementos atoacutemicos de la Gramaacutetica
                                            • 341 Representacioacuten visual
                                              • 35 Gramaacutetica desarrollada
                                              • 36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias
                                                  • Capitulo 4 Pruebas y Resultados
                                                    • 41 Recursos teacutecnicos utilizados
                                                    • 42 Descripcioacuten del plan de pruebas
                                                    • 43 Resultados
                                                      • 431 Caso
                                                      • 432 Caso2
                                                      • 433 Caso
                                                          • Conclusiones y trabajos futuros
                                                            • Trabajos futuros
                                                            • Referencias
                                                            • Anexo A Configuracioacuten de Microsoft Visual C+t
                                                              • Figura 11 - Arquitectura de la suite cenidet-UML
                                                              • Figura 21 -Programacioacuten Visual
                                                              • Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de
                                                              • Figura 32 -Diagrama de Casos de Uso para el S3C
                                                              • Figura 33 -Modelo Conceptual
                                                              • Figura 34 - Diagrama de Clases -Control del Diagrama -
                                                              • Figura 35 - Diagrama de Clases - Patroacuten Visitor -
                                                              • Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento
                                                              • Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)
                                                              • Figura 38 -Dialogo Caracteriacutesticas del Objeto
                                                              • Figura 39 -Dialogo Mensaje
                                                              • Figura 3 IO - Menuacute de los Diagramas de Secuencias (estaacutendar)
                                                              • Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias
                                                              • Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)
                                                              • Figura 313 - Serializacioacuten
                                                              • Figura 314 -Modelo de cascada del ciclo de vida del software
                                                              • Figura 41 - Resultado del caso de prueba
                                                              • Figura 42 -Resultado del caso de prueba
                                                              • Figura 43 -Resultado del caso de prueba
                                                              • Figura 44 -Resultado del caso de prueba
                                                              • Tabla 11 - Tabla comparativa
                                                              • Tabla 31 -Prefijos estaacutendar de identificadores
                                                              • Tabla 32 -Elementos atoacutemicos del lenguaje
                                                              • Tabla 41 - Resumen de los resultados de las pruebas realizadas

Marco teoacuterico

21 Modelado de sistemas de software

un modelo es una abstraccioacuten de algo con el propoacutesito de entenderlo antes de construirlo El modelo omite detalles no esenciales haciendo maacutes faacutecil su manipulacioacuten que la entidad original [BLA98] Un modelo es la simplificacioacuten de la realidad [RUM99] Los propoacutesitos de los modelos son

Probar una entidad fisica antes de construirla Establecer mejor comunicacioacuten con los clientes Visualizar el problema y el sistema desde una mejor perspectiva Reducir la complejidad [BLA98] Capturar y precisar requerimientos y conocimiento del dominio Pensar acerca del disentildeo del sistema Capturar decisiones de disentildeo en una fomia separada que cambia a partir de los requerimientos Generar productos Organizar buscar filtrar obtener examinar y editar informacioacuten acerca de un sistema Explorar muacuteltiples soluciones econoacutemicas Manejar sistemas complejos [RUM99]

El modelado es una probada y bien aceptada teacutecnica de Ingenieriacutea de Software [RUM99] El modelado es parte central de todas las actividades que conducen a la produccioacuten de buen software Se construyen modelos para comunicar la estructura deseada y revisar el comportamiento de nuestro sistema Se construyen modelos para visualizar y controlar la arquitectura del sistema Se construyen modelos para comprender mejor el sistema que estamos construyendo muchas veces descubriendo oportunidades para la simplificacioacuten y la reutilizacioacuten Se construyen modelos para controlar el riesgo [BOO99] La razoacuten fundamental por la que modelamos es porque nosotros construimos modelos que nos ayudan a entender mejor el sistema que estamos desarrollando [RUM99]

El modelado nos permite [RUM99] 1 Visualizar como es el sistema o como queremos que sea 2 Especificar la estructura del sistema 3 Plantear nuestras guiacuteas en la construccioacuten delsistema 4 Documentar las decisiones que hemos tomado

En las etapas del desarrollo del software el modelado es usado en el disentildeo el disentildeo del sistema es la primera etapa en donde se da la aproximacioacuten baacutesica de la solucioacuten al problema seleccionado ademaacutes se decide por la estructura (arquitectura del sistema) y el estilo de la solucioacuten

La arquitectura del sistema provee el contexto sobre el cual se tomaraacuten decisiones mas detalladas en las etapas subsecuentes del disentildeo [BLA98] En el disentildeo modelamos el sistema y encontramos su forma (incluida la arquitehra) para que soporte todos los 3 -

10

Marco teorico

i

4 -I

requisitos -incluyendo los requisitos no funcionales y otras restricciones- que se le suponen [JAC99] Los propoacutesitos del disentildeo son

Adquirir una comprensioacuten en profundidad de los aspectos relacionados con 10s requisitos no funcionales y restricciones relacionadas con los lenguajes de programacioacuten componentes reutilizables sistemas operativos tecnologiacuteas de distribucioacuten y concurrencia tecnologiacuteas de interfaz de usuario tecnologiacuteas de gestioacuten de transacciones etc Crear una entrada apropiada y un punto de partida para actividades de implementacioacuten subsiguientes capturando los requisitos o subsistemas individuales interfaces y clases Ser capaces de descomponer los trabajos de implementacioacuten en partes mas manejables que puedan ser llevadas a cabo por diferentes equipos de desarrollo teniendo en cuenta la posible concurrencia Capturar las interfaces entre los subsistemas Esto ayuda cuando reflexionamos sobre la arquitectura y cuando utilizamos interfaces como elementos de sincronizacioacuten entre diferentes equipos de desarrollo Ser capaces de visualizar y reflexionar sobre el disentildeo utilizando una notacioacuten comuacuten Crear una abstraccioacuten independiente de la implementacioacuten del sistema en el sentido de que la implementacioacuten es un refinamiento directo del disentildeo que rellena lo existente sin cambiar la estructura Esto permite la utilizacioacuten de tecnologiacuteas como la generacioacuten de coacutedigo y la ingenieriacutea de ida y vuelta entre el disentildeo y la implementacioacuten [JAC99]

22 Interfaz de usuario (Mecanismos de interaccioacuten)

El crecimiento de las computadoras personales vendidas en los ~ O rsquo S lanzoacute con fuerza el ldquofaacutecil de usarrdquo como una de las caracteriacutesticas mas importante de un producto de computadora

Las interfaces graacuteficas de usuario no son nuevas se pueden encontrar en las paredes de cuevas al sur de Francia en las piraacutemides de Egipto y en las paredes de muchas ciudades [iUM92] Para el usuario de un sistema interactivo la comunicacioacuten es tan importante como la computacioacuten Para los usuarios regularmente la interfaz es el sistema [HIX93]

Disentildeo de Interfaz Seguacuten Hackos [HAC98] las interfaces estaacuten en todo donde se trabaja con

o Controles en productos de hardware o Etiquetas y sentildeales en el hardware o Pequentildeas pantallas de cristal liquido en maacutequinas de cualquier tipo o Pantallas para aplicaciones de software para terminales de computadoras centrales

Marco teoacuterico

o pantallas para aplicaciones de software en computadoras Personales sistemas operativos como Windows OS2 DOS Macintosh U n b Y Otros

0 Paacuteginas de un sitio WEB 0 Sistemas de ayuda y manuales en-liacutenea 0 Tutoriales incrustados y otros tipos de soporte de funcionamiento O Esquemas de formas y otros documentos

una interfaz es el medio con el cual los usuarios interactuacutean con el producto 0

sistema para lograr SUS objetivos

Interfaz Usable

Para que una interfaz sea usable debe ser transparente y darles a los usuarios la capacidad de lograr cumplir sus metas de forma efectiva y eficiente

Los beneficios presentados en el uso de las interfaces de usuario [TH190] Disfrutar el sistema El usuario disfruta trabajar con un sistema que cuenta con una interfaz bien disentildeada y que le da la funcionalidad y acceso a los recursos de una manera clara y sencilla Proporciona nuevas habilidades Elimina al usuario concentrarse en acciones que la propia interfaz y el sistema hacen dando como resultado que el usuario solo se concentre en lo importante del trabajo Delegacioacuten de tareas La interfaz de usuario permite al usuario no conocer los detalles de la tarea esto es la computadora atiende los detalles de las tareas mientras que el usuario se concentra en asuntos de maacutes alto nivel Seguridad El usuario no necesita estar en lugarespeligrosos para hacer su trabajo

Se da la mayor posibilidad para que el usuario tenga acceso al conocimiento utilizando un sistema interactivo Haciendo las cosas a la primera Las tareas se ejecutan en un orden correcto definido lo que da como resultado un trabajo bien terminado sin necesidad de repetir evitando asiacute altos costos Computando LOS usuarios pueden calcular datos sin necesidad de conocer el proceso para obtener los resultados

Desarrollo

El disentildeo de interfaz es un negocio bastante dificil Eacuteste combina dos complicadas disciplinas psicologiacutea y ciencias de la computacioacuten Estas disciplinas tienen un fondo cultural muy diferente la psicologiacutea atiende a la gente (comprensioacuten y entendimiento) las ciencias computacionales a las maacutequinas (matemaacuteticas y precisioacuten) El disentildeo de las buenas interfaces requiere que estas dos perspectivas esteacuten unidas [THi90]

Hackos dice que las interfaces dan simplicidad y elegancia al trabajo necesario y a la vida e los usuarios Si no es obvio al usuario pero es raacutepida para aprender [HAC98] ademaacutes define caracteriacutesticas comunes de las interfaces usables

o Hacen que el flujo de trabajo sea familiar o confortable o Soportan el estilo de aprendizaje de los usuarios

12

Marco teoacuterico

Visualizacioacuten de Entrenamiento visual Para controlar Soportar interaccioncs Programar con informacioacuten visual visuales expresiones visuales

o Compatibles con los ambientes de trabajo de los usuarios o Se extienden sobre un concepto de disentildeo que es familiar al usuario o Tienen consistencia de presentacioacuten que los hace parecer maacutes confiable y faacuteciles de

aprender o Usan lenguaje y figuras familiares al usuario o faacuteciles de aprender

Datos o informacioacuten acerca de datos

23 Lenguajes Visuales

Los lenguajes visuales son un nuevo paradigma para expresar los sistemas computacionales Ellos ofrecen la posibilidad de manipular directamente los objetos Un lenguaje visual consiste de sentencias visuales Para lenguajes visuales basados en iacuteconos cada sentencia visual es un arreglo espacial de objetos O iacuteconos graacuteficos [CHA90]

Un lenguaje visual es concebido como una coleccioacuten de figuras obtenidas por un arreglo graacutefico de objetos en dos o maacutes dimensiones Los lenguajes visuales pueden ser modelados sintaacutecticamente a traveacutes de un vocabulario un conjunto de relaciones usadas para componer las figuras y un conjunto de reglas describiendo las figuras pertenecientes al lenguaje Los objetos graacuteficos de un vocabulario de un lenguaje visual se caracterizan por contar con un conjunto de atributos Los atributos de un objeto graacutefico pueden ser atributos graacuteficos atributos sintaacutecticos y atributos semaacutenticos [MAR98]

Un lenguaje de programacioacuten visual puede ser informalmente definido como un lenguaje el cual usa algunas representaciones visuales [SHV88]

Programa ylo Disentildeo de Lenguajes de programacioacuten visual ejecucioacuten software Diagramas iconos Formas

Programacioacuten Visual [SHU88]

Gramaacuteticas para la especificacioacuten de lenguajes visuales [MAR98]

a) Gramaacuteticas texfuales generalizadas Este tipo de gramaacutetica provee una adaptacioacuten apropiada de la concatenacioacuten de siacutembolos para dos dimensiones Su principal ventaja es que conservan los elementos teoacutericos de las gramaacuteticas textuales y los eficientes algoritmos de anaacutelisis de eacutestos uacuteltimos Su principal desventaja es que eacutestas gramaacuteticas no son tan poderosas y soacutelo pueden especificar clases restringidas de lenguajes visuales

13

Marco teorico

b) Meacutetodos basados en gramaacuteticas de grafos Un ejemplo de este tiPo de gramaacuteticas son las gramaacuteticas de red Las oraciones generadas con gramaacuteticas de red son grafos dirigidos con siacutembolos en los nodos Estos grafos son llamados redes Una produccioacuten de eacuteste tipo de gramaacuteticas es de la siguiente forma

a - t p E

donde a y p son redes y E es una forma de conectar a p cuando a es conectada a otra red anfitriona

La mayor desventaja es que las gramaacuteticas de red no han probado ser totalmente uacutetiles para la especificacioacuten de gramaacuteticas arbitrarias por la complejidad para rescribir grafos y al hecho de que no todo lenguaje visual estaacute compuesto exclusivamente por grafos

C) Gramaacuteticas de multiconjuntos de atributos En estas gramaacuteticas las producciones rescriben conjuntos o multiconjuntos de siacutembolos que tienen atributos con informacioacuten sobre geometriacutea o semaacutentica La reescritura se controla con restricciones sobre los atributos de los siacutembolos en el lado derecho de las producciones

Un ejemplo de eacutestas gramaacuteticas es la Gramaacutetica Coordinada que especifica notacioacuten matemaacutetica de dos dimensiones En esencia las producciones en una gramaacutetica coordinada n-coordinada libre del contexto tienen la siguiente forma

A -t a donde C F

Todos los siacutembolos de eacuteste tipo de gramaacutetica tienen n atributos geomeacutetricos A es un siacutembolo no terminal a es una cadena no vaciacutea de siacutembolos C es una restriccioacuten sobre los atributos de los siacutembolos en a y F es una expresioacuten que computa los atributos de los siacutembolos de A en teacuterminos de los atributos de los siacutembolos en a no importando el orden de los siacutembolos en a

d) Gramaacuteticas PosicionaZes Las gramaacuteticas posicionales son un formalismo para la definicioacuten e implementacioacuten de lenguajes visuales las gramaacuteticas posicionales extienden naturalmente a las gramaacuteticas libres de contexto Una gramaacutetica libre de contexto posicional PG es una six-tupla (N T S P POS PE) donde

N es un conjunto finito no vaciacuteo de siacutembolos no terminales T es un conjunto finito no vaciacuteo e siacutembolos terminales con N n T = $I S E N es el siacutembolo no terminal de inicio P es un conjunto finito de producciones POS es un conjunto finito de identificadores de relacioacuten binaria PE es un evaluador pictoacuterico

14

Marco teorico

Cada produccioacuten en P tiene la siguiente forma

A -+ X I R I X R2 X ~ I Rm1 xm A

e) Gramaacuteticas de Relacioacuten de siacutembolos Eacuteste es un formalismo sintaacutectico para describir un lenguaje visual donde cada oracioacuten dentro del lenguaje se representa como un conjunto de objetos visuales y un conjunto de relaciones entre objetos

El alfabeto de siacutembolos Vt y el conjunto de relaciones entre siacutembolos Vr una oracioacuten de relacioacuten de siacutembolos w sobre Vt y Vr es un par ( M R) donde

M es un conjunto de elementos-s (v i) con v E Vt y i es un nuacutemero natural R es un conjunto de elementos-r de la forma r (Xi Yj) con Xi Yj E M r E Vr y una relacioacuten r esta contenida entre Xi y Yj

Una gramaacutetica de relacioacuten de simbolos es el conjunto de seis elementos G = (Vn Vt Vr S P R) donde Vn es un conjunto de siacutembolos no terminales Vt es un conjunto de siacutembolos terminales Vr es un conjunto de relaciones entre siacutembolos S es el siacutembolo inicial y P es un conjunto de reglas de reescritura (producciones de elementos-s)

f) Gramaacuteticas relacionales Este tipo de gramaacutetica pertenecen a las gramaacuteticas libres de contexto

La gramaacutetica relaciona1 (RGrsquos) es una 6-tupla G (N C S R Attr P) donde

N C S R Attr P

es un conjunto finito de siacutembolos no terminales es un conjunto de siacutembolos terminales es un siacutembolo distinguido en N llamado siacutembolo inicial es un conjunto finito de siacutembolos de relacioacuten es un conjunto finito de siacutembolos de atributos es un conjunto de producciones de la forma A-gt apF donde A E N a E (nlo)+ Donde n E N cr E E

8 Es un conjunto de relaciones de la forma (r x y) donde r E R y xy son enteros que hacen referencia a un miembro de a y tambieacuten una expresioacuten de la forma (a i) donde a E Attr e i es un entero que hace referencia a un miembrode a

F Es un conjunto de declaraciones de asignacioacuten de caracteriacutesticas de la forma (a O)=x donde a E Attr y x es un entero que hace referencia a un miembro de a o a una expresioacuten de la forma (a i)

15

Marco teoacuterico

24 Programacioacuten orientada a objetos

L~~ meacutetodos orientados a objetos organizan la informacioacuten Y el procesamiento que manipula esta informacioacuten de acuerdo a los objetos delrsquomundo real que la informacioacuten describe [BRO97l

Beneficios de las teacutecnicas orientadas a objetos [BR097] Estabilidad del sistema Mantenibilidad Componentes reusables Confiabilidad Accesibilidad de los datos Participacioacuten del usuario

Seguacuten Graddy Booch la programacioacuten orientada a objetos es ldquoun meacutetodo de implementacioacuten en el que los programas se organizan como colecciones cooperativas de objetos cada uno de los cuales representan una instancia de alguna clase y cuyas clases son todas miembros de una jerarquiacutea de clases unidas mediante relaciones de herenciardquo [JOY 981

Programacioacuten orientada a objetos esencialmente significa programacioacuten usando objetos [JAC93] Los lenguajes orientados a objetos deben soportar los siguientes conceptos

Objetos Abstraccioacuten de datos Encapsulamiento Clases e Instancias Herencia entre clases Polimorfismo

Las propiedades fundamentales de la Programacioacuten Orientada a Objetos son

a Abstraccioacuten Son ideas conceptos y propiedades que se describen en forma general eliminando los detalles Es una estructura de datos y los meacutetodos que manipulan a esos datos

b Encapsulamiento Son las fronteras propias de un objeto bien definidas las cuales protegen los detalles de su representacioacuten interna

c Ocultacioacuten de la informacioacuten Es la propiedad en la que los objetos pueden hacer uso para impedir que otros objetos los usuarios o incluso los programadores conozcan coacutemo estaacute distribuida la informacioacuten

d Herencia Es la propiedad que tiene una clase para heredar atributos y comportamiento a otras clases

e Polirnorfismo Es la propiedad que permite que una entidad pueda cambiar a diferentes formas efectuaacutendose de manera dinaacutemica en tiempo de ejecucioacuten

16

Marco teoacuterico

t

Clases Es la especificacioacuten de una familia de objetos es la declaracioacuten de un tipo de objetos Tambieacuten se dice que una clase es la descripcioacuten de un conjunto de objetos con un comportamiento similar y que esta compuesta de Datos (o atributos) y Meacutetodos o (rutinas acciones operaciones)

Objeto Un objeto es una entidad en la cual se almacenan datos y los meacutetodos o funciones que controlan dichos datos Un objeto es una abstraccioacuten de alguna cosa del mundo real que contiene datos que lo describen y operaciones que solo tienen acceso a esos datos [BR097l Los elementos de los que esta conformado un objeto son

a Las relaciones permiten que el objeto se integre en la organizacioacuten b Las propiedades son los datos que caracterizan el estado de un objeto distinguiendo

asiacute a un objeto determinado de los restantes que forman parte de la misma organizacioacuten

c Los meacutetodos son las operaciones que pueden realizarse sobre la estructura del objeto es decir las acciones que cambian el estado de un objeto y que el objeto es capaz de ejecutar a traveacutes de mensajes y que tambieacuten pone a disposicioacuten de sus descendientes a traveacutes de la herencia

Mensajes Son solicitudes para que se lleve a cabo la operacioacuten indicada y se produzca un resultado

Las razones principales para introducir la tecnologiacutea de objetos son los beneficios de dicha tecnologiacutea

Aumento de la fiabilidad Aumento de la productividad del desarrollador Desarrollo maacutes raacutepido Mejor calidad maacutes alta

Incremento en escalabilidad Mejores estructuras de informacioacuten Incremento de adaptabilidad Reduccioacuten del coacutedigo fuente

Mantenimiento maacutes faacutecil y reduccioacuten de costo

Los elementos de reutilizacioacuten son las clases y objetos

25 Lenguaje de Modelado Unificado (UML)

UML (Unified Modeling Language por sus siglas en ingleacutes Lenguaje de Modelado Unificado) es un lenguaje de modelado visual de propoacutesito general que es utilizado para especificar visualizar construir y documentar las partes de un sistema de software El lenguaje estaacute basado en un pequentildeo nuacutemero de conceptos centrales que la mayoriacutea de los desarrolladores de tecnologiacutea orientada a objetos pueden aprender y aplicar faacutecilmente [RUM99]

17

Marco teoacuterico

y UML Pasado Presente y Futuro

L~~ lenguajes de modelado orientado a objetos aparecieron a mediados de 10s 70rsquos Varias teacutecnicas influenciaron estos lenguajes El nuacutemero de lenguajes de modelado incrementoacute desde menos de 10 hasta maacutes de 50 entre 1989 y 1994 Muchos modeladores teniacutean problemas para encontrar un lenguaje de modelado que satisficiera todas sus necesidades Notablemente aparecioacute Boochrsquo93 y la evolucioacuten continuoacute a OMT y Fusioacuten

OOSE (Object-Oriented Software Engineering) estaacute enfocado a la ingenieriacutea de negocios y anaacutelisis de requerimientos dando un excelente soporte orientado a casos de uso OMT-2 es especialmente expresivo para anaacutelisis y sistemas de informacioacuten de datos grandes Boochrsquo93 fue particularmente expresivo para el disentildeo y fases de construccioacuten de proyectos y popular para aplicaciones de ingenieriacutea intensiva

Grady Booch y Jim Rumbaugh iniciaron el desarrollo de UML en 1994 al unificar sus meacutetodos independientes Booch y OMT En 1995 Ivar Jacobson se unioacute a Racional eacutesta unioacuten logroacute que el meacutetodo OOSE se incorporara La unificacioacuten establecioacute que debiacutean activar el modelado de sistemas utilizando conceptos orientados a objeto asiacute como crear un lenguaje usable tanto para las maacutequinas como para los humanos

A

Muchas organizaciones se unieron al consorcio UML y dedicaron recursos al trabajo hacia el fortalecimiento de la definicioacuten de UML Esta colaboracioacuten produjo un lenguaje de modelado expresivo poderoso y generalmente aplicable En la forma actual de UML se espera que sea base de muchas herramientas incluidas las de modelado visual simulacioacuten y ambientes de desarrollo

R UML es abierto y no-propietario y aunque define un lenguaje preciso no es barrera para futuras mejoras en conceptos de modelado Se usan muchas teacutecnicas de punta pero se esperan teacutecnicas adicionales que influencien futuras versiones de UML puede ser extendido sin redefinir el nuacutecleo

c

Mientras el rehuacuteso basado en componentes se ha favorecido ampliamente cada vez mas esto no significa que las teacutecnicas basadas en componentes reemplazaraacuten las teacutecnicas orientadas a objetos Hay solo sutiles diferencias entre la semaacutentica de componentes y clases [ALC03]

Un opaco rendimiento caracterizoacute el mercado de anaacutelisis modelado y disentildeo en el 2000 en su transicioacuten de las viejas herramientas CASE (Computer Aided Software Engineering) a algo maacutes dinaacutemico y mejor adaptado para satisfacer las necesidades de los desarrolladores para el cambio raacutepido en los ambientes de negocio

El mercado de anaacutelisis modelado y disentildeo lograraacute obtener un crecimiento positivo en varios de los siguientes antildeos por varias razones El mercado seraacute manejado principalmente por la necesidad de desarrolladores a obtener aplicaciones para lanzarse al mercado raacutepidamente asiacute tambieacuten por el intereacutes creciente y uso de una nueva especie de herramienta y por el intereacutes creciente de los desarrolladores en usar UML reglas de negocios y adaptadores de componentes para construir aplicaciones [RIKUI]

z -

18

Marco teoacuterico

UML se ha hecho el estaacutendar para los desarrollos de modelado de negocios administracioacuten de requerimientos anaacutelisis y disentildeo programacioacuten y pruebas Los objetivos primarios de UML en el disentildeo [RAT97j

o Dar a los usuarios un lenguaje visual expresivo de modelado listo para usarse para que puedan desarrollar y cambiar los significados de sus modelos

o Suministrar mecanismos de extensibilidad y especializacioacuten para extender los conceptos centrales

o Ser independiente de lenguajes de programacioacuten particulares y procesos de desarrollo

o Impulsar el desarrollo de las herramientas Orientadas a Objeto en el mercado o Soportar conceptos de desarrollo de alto nivel como colaboracioacuten marcos de

componentes reutilizables patrones y componentes o Integrar las mejores praacutecticas

9 El aacutembito de UML

UML es un lenguaje para especificacioacuten construccioacuten visualizacioacuten y documentacioacuten de artefactos de un sistema de software UML es la fusioacuten de los conceptos de Booch OMT y OOSE El resultado es un simple comuacuten y ampliamente usado lenguaje de modelado para usuarios de estos y otros meacutetodos UML se enfoca en un lenguaje de modelado estaacutendar no en un proceso estaacutendar los autores de UML recomiendan un proceso de desarrollo manejado por casos de uso de arquitectura central iterativo e incremental [iiquest4T97l

Para la definicioacuten de sistemas de software en UML se definen diagramas Un diagrama es la representacioacuten graacutefica de un conjunto de elementos este se visualiza la mayoriacutea de las veces como un grafo conexo de nodos (elementos) y arcos (relaciones) Los diagramas se dibujan para visualizar un sistema desde diferentes perspectivas de forma que un diagrama es la proyeccioacuten de un sistema uumlML incluye nueve diagramas [B0099]

4 -

I Diagrama de clases 2 Diagrama de objetos 3 Diagrama de casos de uso 4 Diagrama de secuencias 5 Diagrama de colaboracioacuten 6 Diagrama de estados 7 Diagrama de actividades 8 Diagrama de componentes 9 Diagrama de despliegue

Diagramas de secuencias Un diagrama de secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten comportamiento

Un diagrama de secuencias muestra un conjunto de mensajes acomodados en una secuencia de tiempo eacuteste diagrama muestra la interaccioacuten en un esquema de dos - dimensiones [RUM99]

19

Marco teoacuterico

Y -

Un diagrama de secuencia es un diagrama de interaccioacuten que resalta la ordenacioacuten temporal de los mensajes Un diagrama de secuencia presenta un conjunto de objetos y los mensajes enviados y recibidos por ellos Los objetos suelen ser instancias (con nombre o sin nombres) de clases pero tambieacuten pueden representar instancias de otros elementos tales como colaboraciones componentes y nodos Los diagramas de secuencia se utilizan para describir la vista dinaacutemica de un sistema [B0099]

Usar los diagramas de secuencia es mostrar la secuencia que existe en un caso de uso [RUM 991

Los diagramas de secuencia tienen dos dimensiones Una dimensioacuten que representa el tiempo Otra dimensioacuten que representa los diferentes objetos que participan en la secuencia de eventos requeridos para completar el propoacutesito [MOuuml98]

El principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildea las interacciones de los objetos [DAN02]

20

Capiacutetulo 3

DesawoCCo de Ia herramienta

En este capiacutetulo se describe el desarrollo del Ambiente Visual Se describe el modelo conceptual del sistema la arquitectura asiacute como tambieacuten los elementos que componen la Arquitectura Se estudian los Diagramas de Secuencias de UML y algunos Patrones de Disentildeo de los que se hace uso para el mejor desarrollo del sistema Se describe a detalle la Gramaacutetica Visual Relaciona1 utilizada para el de Ambiente de desarrollo

I CENIOET 1FNTRO DE INFORMACION

Desarrollo de la herramienta

t i i

Actualmente existe en el cenidet un Ambiente Visual de Modelado de Clases llamado InverSOODA este Ambiente Visual tiene la capacidad de realizar la generacioacuten automaacutetica de coacutedigo de las clases en C++ a partir del modelo especificado Ademaacutes se puede realizar la Ingenieria Inversa de un coacutedigo legado para obtener el modelo de clases Aunado a este trabajo existe el Ambiente Visual denominado InverDDVi con el cual se puede realizar el Disentildeo Detallado de los Meacutetodos de las Clases con diagramas de Warnier Asiacute tambieacuten es posible obtener el modelo aplicando la Ingenieriacutea Inversa a un coacutedigo legado en C++

Ambos trabajos son retomados en este proyecto para la automatizacioacuten en la obtencioacuten de los Diagramas de Secuencias de UML La figura 31 muestra el modelo propuesto de ingenieriacutea directa

Extraer informacioacuten del diagrama de

rsquo rsquo

Diagrama de 11 clases I o

detallado de

detallado de

o meacutetodos

i ir---- Construir el

secuencias i

Modelo de Ingenieriacutea I directa automaacutetica

I

Figura 31 Modelo de Ingenieria Directa Autombtica de los Diagramas de Secuencias

Para la construccioacuten automaacutetica de un diagrama de secuencias se toma como base a un diagrama de Clases El modulo ldquoExtraer informacioacuten del diagrama de Clasesrdquo sirve para obtener el nombre y los meacutetodos descritos en cada uno de las clases que existan en el diagrama de Clases

22

Desarrollo de la herramienta

Con base en la informacioacuten que se tiene se abren los archivos correspondientes a los diagramas de Warnier El proceso que se emplea sobre cada uno los diagramas de Warnier llamado ldquoExtraer informacioacuten de los disentildeos detallados de los meacutetodosrdquo sirve para recopilar el conjunto de las llamadas de cada meacutetodo definido

En el siguiente paso (ldquoReconocer llamadas a meacutetodosrdquo) consiste en identificar si los meacutetodos que estaacuten descritos en los diagramas de Warnier tambieacuten lo estaacuten en el diagrama de Clases correspondiente

El paso ldquoConstruir los diagramas de secuencias automaacuteticamenterdquo realiza una validacioacuten de los meacutetodos definidos en los diagramas de Clases con los meacutetodos definidos en los diagramas de Warnier Este paso crea una estructura de datos con la secuencia de las llamadas y la recorre para crear los objetos y los mensajes en el diagrama de secuencias

AI terminar la creacioacuten automaacutetica del diagrama de secuencias se dispone de la r opcioacuten de guardar

31 Disentildeo de la Arquitectura

Para definir los procesos que el sistema va a realizar es necesario llevar a cabo un anaacutelisis de requisitos los cuales pueden ser expresados mediante diagramas de Casos de Uso Los Casos de Uso son una descripcioacuten textual narrativa de los procesos de un sistema

311Requisitos (Diagrama de Casos de uso)

Los casos de uso en realidad no son un artefacto de anaacutelisis orientado a objetos estos describen simplemente procesos y pueden ser igualmente efectivos en un proyecto tecnoloacutegico no orientado a objetos Son usados en un paso preliminar a la descripcioacuten de requerimientos de un sistema [LAR971 La Figura 32 muestra el diagrama de casos de uso que especifica al S3C

9

S3C (Diagramas de Secuencias)

usuario I Modelado de

I

Figura 32 Diagrama de Casos de Uso para el S3C

23

Desarrollo de la herramienta

Descripcioacuten de los Casos de Uso

Caso de Uso ldquoDiagramas de Secuenciasrdquo Se inicia cuando el actor ldquousuariordquo solicita la creacioacuten de un Diagrama de Secuencias Se establece la forma de la construccioacuten automaacutetica de los diagramas de secuencias de UML Se hace uso del Modelado de Clases y del Modelado del disentildeo detallado de los meacutetodos

Escenario de Eacutexito 1 Se obtiene la informacioacuten de las clases del modelado de clases 2 Se obtiene la informacioacuten del modelado del disentildeo detallado de los meacutetodos 3 Se realiza la construccioacuten automaacutetica de los diagramas de secuencias

1 En el modelo de clases no hay informacioacuten o estaacute incompleta 2 En el modelo del disentildeo detallado de los meacutetodos no hay informacioacuten o estaacute

incompleta

Escenario de Falla

Caso de Uso ldquoModelado de Clasesrdquo El diagrama de Clases se utiliza para obtener los nombres de clases y los nombres de los meacutetodos de cada clase

Escenario de Eacutexito 1 Se abre el modelo 2 Se procesa para obtener la informacioacuten de las clases (nombres de clases y nombres

de meacutetodos)

Escenano de Falla h 1 No se puede abrir el modelo J 2 El modelo esta vaciacuteo

Caso de Uso ldquoModelado del Disentildeo detallado 1 los meacutetodosrdquo El disentildeo detallado de los meacutetodos se realiza con diagramas de Warnier aquiacute se establecen las llamadas a funciones dentro del sistema y es aquiacute donde se identifica el dinamismo que se representaraacute en los diagramas de secuencias

Escenario de Eacutexito 1 Se abre el modelo 2 Se realiza la identificacioacuten de las llamadas existentes

Escenario de Falla 1 No se puede abrir el modelo 2 El modelo esta vaciacuteo

24

Desarrollo de la herramienta

Clase Objeto ni I Diagrama I n ____ Nombre Descripcioacuten

i

Mensaje

Tipo

En el Anaacutelisis Orientado a Objetos se crea una especificacioacuteii del dominio del problema y de los requeriinientos desde la perspectiva de una clasificacioacuten por objetos y del entendimiento de los teacuterminos usados en el dominio del problema Una descomposicioacuten del dominio del problema involucra una identificacioacuten de conceptos atributos y asociaciones que son considerados importantes dentro del dominio El resultado puede ser expresado en un Modelo Corzcepttraf el cual es ilustrado en un conjunto de diagramas que definen conceptos (objetos) [LAR97]

312Modelo Conceptual

El modelo conceptual visto en la Figura 33 no es una descripcioacuten de componentes de software representa conceptos en el domino del problema en el mundo Teal [LAR97l

313Diagramas de clases

Por cuestiones dc espacio las clases de la arquitectura del sistema estaraacuten referidas en varios diagramas que de alguna manera estaacuten relacionados entre si

Una de las partes maacutes importantes del Ambiente Visual S3C es la estructura de clases ltCCraJicogt la cual se refiere al control de los diagramas eacutesta por su naturaleza podriacutea considerarse el nuacutecleo del sistema La manipulacioacuten y control de los diagramas estaacute definido en una estructura de clases organizada con el patroacuten de disentildeo Composite que se muestra en la Figura 34

25

Desarrollo de la herramienta

CRecursividadDS CMensajeDS CObjetoDS CDiagramaDS

I Cvisitor I

CApuntadorDS CDblClickDS CAsocAdjusterDS CSelectorDS

26

Desarrollo de la herramienta

n 32 Elementos de la arquitectura

Es necesario describir los elementos que dan soporte a la arquitectura del ambiente donde se implementaraacute el sistema en este caso Microsoft Visual (MV) C++ 6 El MV C++ es un marco de aplicacioacuten poderoso basado en Windows se integran ademaacutes del lenguaje C++ (compilador y enlazador) el programa de desarrollo de programas en lenguaje C para Windows (SDK) la Microsoft Foundation Class Library AppWizzard Classwizard AppStudio y WorkBencli

La Microsoft Foundation Class Library comprende una biblioteca de clases de C++ y es considerada como el nuacutecleo del MV C++

321Microsoft Foundation Class (MFC)

La libreriacutea Microsoft Foundation Class (MFC) es una interfaz orientada a objetos que tiene las siguientes metas de disentildeo

o

Reduccioacuten significante de esfuerzo al escribir una aplicacioacuten para Windows Velocidad de ejecucioacuten comparable a las APIrsquos del lenguaje C Miacutenimo tamantildeo de coacutedigo Capacidad para llamar cualquier funcioacuten de Windows en C directamente Faacutecil conversioacuten de aplicaciones existentes en C a C++ Faacutecil uso de APIrsquos de Windows con C++ como con C Faacutecil uso de complicadas caracteriacutesticas de abstracciones poderosas como ActiveX soporte para base de datos impresioacuten barras de herramientas y barras de estado El API de Windows en C++ si usa tan efectivamente como las caracteriacutesticas mismas del lenguaje C++

La mayoriacutea de las clases de la Libreriacutea de la Microsoft Foundation Class son derivadas de una clase base ltCObjectgt que es la raiacutez de la jerarquiacutea de clases ltCObjectgt da uacutetiles capacidades a las clases que derivan de ella

La jerarquiacutea que existe en las clases derivadas de ltCObjectgt es la siguiente

Arquitectura de Aplicacioacuten Excepciones Servicios de Archivos Arreglos Listas Mapas Servicios de Internet Sockets Sincronizacioacuten Soporte para base de datos D A 0

27

Desarrollo de la herramienta

i

r

Liacutenea de Comandos Menuacute Dibujo Graacutefico Dibujo Graacutefico de Objetos Soporte de Control Soporte de Ventanas

Soporte para base de datos ODBC

o Marco de Ventanas o Barras de control o Hojas de propiedades o Cajas de Dialogo o Vistas o Controles

322Arquitectura Documento Vista

Por defecto las aplicaciones creadas con la MFC usan un modelo de aplicacioacuten que separa los datos del programa de las vistas de interaccioacuten con el usuario En eacuteste modelo un objeto documento de MFC lee y escribe datos en un almacenamiento persistente Un objeto vista administra el despliegue de datos suministrando al usuario los datos para ser seleccionados o editados La vista le comunica al documento cualquier cambio en los datos La razoacuten maacutes conveniente para seguir este modelo es cuando se necesita muacuteltiples vistas del mismo documento (como en una hoja de caacutelculo y un graacutefico)

La arquitectura documentovista hace faacutecil el soporte de muacuteltiples vistas y muacuteltiples tipos de documentos asiacute como la divisioacuten de ventanas y otras caracteriacutesticas de interfaz de usuario Pero el corazoacuten de la arquitectura son cuatro clases (Mostradas en el aacuterbol de clases de la Figura 36)

ltCDocumerrtgt (o ltCOleDocuinentgt) - Se instancia un objeto de este tipo para almacenar y controlar los datos del programa ltCViewgt (o una de sus clases derivadas ltCScrotlViewgt ltCFormViewgt ltCEditView ltCRecordViewgt ltCDaoRecordView ltCtreeViewgt ltCListViewgt b ltCrichEditViewgt) - Un objeto es usado para desplegar los datos y administrar la interaccioacuten del usuario con los datos ltCFrameWndgt (o una de sus variantes) - Establece el marco sobre el que trabajaraacuten una o mas vistas de un documento ltCDocTemolategt (o ltCSingIeDocTemplategt o ltCMultiDocTemplategt) - Coordina la existencia de uno o maacutes documentos de un tipo dado y administra la correcta creacioacuten de los documentos vistas y objetos ventanas para cada tipo

i

28

Desarrollo de la herramienta

______________ 2 Wiew

I - - __ - ------a ________________

323Integrando Ambientes en Visual C t t

Las aplicaciones de Interfaz de Documento Uacutenico (SDI) soporta muacuteltiples tipos de documentos pero este soporte es para un solo objeto documento Debido a esta restriccioacuten y aunado a la necesidad de tener varios objetos documentos a la vez se determina la utilizacioacuten del modelo Interfaz de Muacuteltiples Documentos (MDI) indicado en la Figura 37

324Interfaz de Muacuteltiples Documentos (MDI)

Una aplicacioacuten de Interfaz de Muacuteltiples Documento (MDI) permite la creacioacuten de plantillas para el manejo de los documentos eacutesta plantilla tiene la forma

rn-pDocTemplate = new CMultiDocTernplate ( I DR-SCUMLTY PE RUNTIME-CLASS (CSCUMLDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CTheView))

AddDocTernplate ( rn-pDocTemplate )

Cada plantilla describe una relacion del tipo de documento con la vista asociada La definicioacuten de la plantilla para el ambiente que controla los diagramas de secuencias es la siguiente

29

Desarrollo de la herramienta c

m-pTernplateSeqDlag = new CMultiDocTernplate ( IDR-DS-SJCTYPE RUNTIME-CLASS (CSeqDiagDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CSeqDiagView) )

AddDocTernplate( rn-pTernplateSeqDiag )

Esta plantilla hace uso de la clase CCliildFrame que por defecto el ambiente Visual C++ construye y esto es debido a que no se requieren caracteriacutesticas extras en las ventanas de las que proporciona dicha clasc En un caso en el que se requiriera un comportamiento diferente de la vista tendriacutea que crearse una nueva clase con las caracteriacutesticas deseadas

Vista Documento

Vista

I- Vista Documento I [ Tip- F Vista

L Figura 37 Modelo Interfaz de Muacuteltiples Documentos (MDI)

Para integrar otro Ambiente que utilice otro tipo de documento es necesario definir otra plantilla de la misma forma mencionada Debe tomarse en cuenta los siguientes puntos

Es necesario definir el nombre (mqTemplateNOMBRE) El IDR del tipo que se requiere que sea el documento En la primera liacutenea RUNTIME CLASS debe indicar la clase ltCDocumentgt que desea La segunda liacutenea RUNTIME-CLASS soacutelo la cambia a otra clase si requiere de otro manipulador de ventanas de lo contrario deje que ltCChildFramegt se haga cargo

-

30

Desarrollo de la herramienta

En la uacuteltima liacutenea referente a RUNTIME-CLASS se debe indicar la clase ltCViewgt que desea usar Para finalizar se usa la instruccioacuten AddDocTernplate para finalizar la definicioacuten del template (mgTemplateNOMBRE)

325 Recursos Diaacutelogos Mertuacutes y Barras de Herrattriertias

Son varios los recursos con los que se puede contar al crear un proyecto en Microsoft Visual C++ Los diaacutelogos son un recurso disponible que son utilizados para visualizar ingresar yo modificar informacioacuten que se requiera En el Ambiente Visual que se desarrolla son varios los diaacutelogos que se utilizaraacuten y eacutestos se describen a continuacioacuten

El Diaacutelogo ldquoCaracteriacutesticas del Obietordquo (Figura 38) identifica el nombre del Objeto y la descripcioacuten del mismo Este diaacutelogo se muestra cuando se presiona doble clic sobre un objeto del diagrama

I Nombre

Desciipcion

Figura 38 Dialogo Caracteriacutesticas del Objeto

El Diaacutelogo ldquoMensaierdquo (Figura 39) muestra el nombre del mensaje que puede ser modificado ademaacutes se visualizan el Identificador del Mensaje el tipo de Mensaje asiacute tambieacuten el origen y destino del mensaje

31

Desarrollo de la herramienta

Nornbie delMensaje Edit

IDentificador del Mensaje Edil Tipo de Mensaje (Edil

Edit Objeto Origen

Objeto Destino IEdit

i25El A Figura 39 Dialogo Mensaje

El menuacute es otro de los recursos del que se puede disponer para organizar el ambiente que se estaacute creando Para eacuteste caso en particular no se hizo modificaciones al menuacute estaacutendar (Figura 310) que Visual C++ presenta Los cambios significativos son el manejo del tipo de documento para los Diagramas de Secuencias

Archivo Editar Yer VenLana AyGda

Figura 310 Menuacute de los Diagramas de Secuencias (estaacutendar)

Otro importante recurso del que uno se puede valer en Visual C++ es la barra de herramienta personalizada la cuaacutel es construida en el Editor de Recursos Se ha construido una barra (Figura 311) con los elementos graacuteficos de los Diagramas de Secuencia de UML

Figura 311 Barra de Herramientas de los Diagramas de Secuencias

Es recomendable que al utilizar barras de herramienta personalizada se defina en el tamantildeo estaacutendar ya que puede experimentar problemas al momento de ejecutar la aplicacioacuten

Ademaacutes puede usar la propiedad TBBS-CHECKGROUP en una barra de herramientas para establecer que los botones puedan quedar presionados hasta que un botoacuten diferente sea presionado No olvide que la numeracioacuten inicia con cero ( O )

vuriableToolBurSetButtonStyle(OTBBSCHECKGROUP)

32

Desarrollo de la herramienta

Prefijo ID IDC IDD IDP IDR IDS

326 Notacioacuten estaacutendar

Los nombres descriptivos de los recursos se asocian a un valor uacutenico Para una mayor claridad eacutestos nombres mantienen un prefijo que describe el tipo de recurso asociado (vea la Tabla 31) [MIC99]

Tipo de Recurso Comandos de Menuacute Controles y recursos Cuadros de diaacutelogo Cadenas de solicitud para cuadros de mensaje Menuacute principal barras de herramienta tabla aceleradora y el icono Cadenas

IDR IDD IDC ID

200 - 299 3000 - 3999 34000 - 34999

Estos son los rangos de valores establecidos para el proyecto S3C Si se utiliza el coacutedigo fuente y se planea agregar otro proyecto verifisue que no se invadan estos nuacutemeros para evitar problemas

Para facilitar auacuten maacutes los trabajos futuros se ha definido una estructura de carpetas (ver Figura 312) para incluir en cada una las Clases correspondientes a cada tesis en desarrollo

33

Desarrollo de la herramienta

ill ~~ -

-I SCUML classes + U A N T L R + U App + 0 ClassDiagrams + 0 Common + a Java

t $2 SequenceDiagiams

+ WarnierDiagrams

iJ PackageDiagrams

12 StaterChartDiagrams

+

- f Classview I Resourceview 1 FileView ]

~ ~

Figura 312 Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)

327Estructura de datos persistencia y recuperacioacuten

Existe una gran cantidad de tipos de datos estructuras clases y meacutetodos de los que se puede hacer uso para una mejor y maacutes faacutecil obtencioacuten de los resultados A continuacioacuten hago comentarios en tipos de datos y meacutetodos en los que podriacutea tener problemas

CTypedPtrList

AI usar este tipo de dato o alguno relacionado que le permita utilizar el meacutetodo ltCTvrgtedPtrListGetNextgt tenga especial precaucioacuten al usarlo ya que al devolver el valor requerido la variable POSITION usada no se queda apuntando a ese valor en particular salta al inmediato siguiente de la lista

Si se realiza una creacioacuten dinaacutemica con punteros para los elementos de una CTypedPtrList Despueacutes de haberlo agregado a la lista evite el delete para borrar esta Usted deseando liberar la memoria no lo haga ya que eliminara directamente el elemento de la lista

POSITION

Es un valor usado para denotar una posicioacuten de un elemento en una coleccioacuten Pero CUIDADO no se refiere a un iacutendice es una referencia (no consecutiva) de punteros muy diferente a un iacutendice

CString

Auacuten cuando el operador de comparacioacuten == (igual a) es permitido para ser utilizado en las cadenas evite su uso ya que en ocasiones aunque cuando la e

34

Desarrollo de la herramienta

compilacioacuten no indique error alguno en la ejecucioacuten no realizaraacute lo que se necesita Recomiendo que utilice CStringCompare ()

Para eliminar el contenido de un CString utilice CStringEmpty() ya que asignar a la cadena un ldquonrdquo podriacutea causarle problemas

Serializacioacuten

Una forma en que se puede guardar informacioacuten y recuperarla de manera eficaz es mediante la serializacioacuten de objetos La serializacioacuten es un proceso que permite escribir un objeto en un archivo y tambieacuten leerlo

Para que la serializacioacuten se lleve a cabo son necesarios tres objetos un objeto de tipo ltCFilegt que represente el archivo un objeto de tipo ltCArchivegt que ofrece el entorno para la serializacioacuten y la clase del objeto a ser serializado debe ser heredada de ltCObjectgt y sobrescribir el meacutetodo ltSerializegt para que se encuentre de tal forma en que pueda ser serializado (vea la Figura 313)

Objeto a ser serializado 1

1 CArchive

[f --=I- ---7 Archivoexi

u Figura 313 Serializacioacuten

328Patrones de disentildeo utilizados

Se ha planteado la definicioacuten de una arquitectura de clases utilizando patrones de disentildeo debido a que algunos de ellos hacen maacutes faacutecil la extensioacuten de la funcionalidad y mantenimiento

35

Desarrollo de la herramienta

El patroacuten Composite es utilizado para crear de manera uniforme el diagrama sobre el que se trabaja (ver Figura 34) manteniendo una jerarquiacutea de clases uniforme las clases maacutes bajas en la jerarquiacutea definen primitivas de objetos graacuteficos

Se aplica el patroacuten de disentildeo Iterator para hacer recorridos en listas de objetos para realizar diversas operaciones Otro patroacuten de disentildeo del que se hace uso es el Visilor (ver Figura 35)

Para otras actividades que se realizan podriacutea pensarse en que se deberiacutean aplicar otros patrones pero se han evitado algunos (como el patroacuten de disentildeo Builder) para evitar incrementar la complejidad en la arquitectura ya que ai mantener el modelo de la MFC de documentovista la funcionalidad del patroacuten de disentildeo Builder es faacutecilmente reemplazado si se hiciera Uso de eacuteste se aumentariacutea la complejidad excesivamente (nos llevariacutea a perdemos en ocasiones en el paso de mensajes entre clases) dantildeando la facilidad de la arquitectura

33 Diagrama de secuencias

Un Diagrama de Secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten escenario Oacute comportamiento se usan para definir el curso loacutegico de accioacuten de un posible camino a seguir en la resolucioacuten de un problema Seguacuten John Daniels [DANO2] ldquoel principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildean las interacciones de los objetosrdquo

Los Diagramas de Secuencias se utilizan en el modelado de la implementacioacuten de sistemas de software ademaacutes son aplicables en el modelado de requisitos para establecer las comunicaciones existentes entre actores yo clases del sistema Con eacutestos diagramas se logran hacer descripciones de los escenarios y los comportamientos del sistema Con los Diagramas de Secuencias es posible definir protocolos de comunicacioacuten con paso de mensajes ya que dan esa flexibilidad que se requiere Ademaacutes los Diagramas de Secuencias contienen informacioacuten suficiente para que puedan ser transformados a los diagramas de colaboracioacuten [RUM Ol][BOO Oil

331Ciclo de vida del software

Considerando cualquier modelo de ciclo de vida del software (en la figura 314 se muestra el Modelo de cascada) el aacutembito directo de eacuteste Ambiente Visual es en el disentildeo aunque tiene sus vertientes en la codificacioacuten y mantenimiento

36

Desarrollo de la herramienta

Diseno

Codificacibn

I I I I Mantenimiento I

igura 314 Modelo de cascada del ciclo de vida del software

34 Elementos atoacutemicos de la Gramaacutetica

Definicioacuten de los elementos atoacutemicos del lenguaje y su contenido

1 Actor- Representa roles de entidad externos al sistema con el que interactuacutea directamente Los actores pueden ser humanos dispositivos u otros sistemas

2 ClaseObjeto- Determina una Clase u Objeto participante en la interaccioacuten

3 Mensaje-Es una comunicacioacuten entre objetos que contiene informacioacuten Eacuteste se representa con la finalidad a que una accioacuten sea llevada a cabo

4 Mensaje con tiempo- Tiene la misma finalidad que el mensaje la diferencia es que con eacutel se representa un atributo de tiempo

5 Mensaje asiacutencrono Es un mensaje que ocurre en el tiempo de manera independiente a otros mensajes

6 Mensaje de destruccioacuten de objeto- Es un mensaje cuya finalidad es indicar la destruccioacuten del objeto destino

7 Mensaje de creacioacuten de objeto- Es un mensaje que indica la creacioacuten de un objeto

8 Llamada al mismo objeto (Recursividad)- Es usado para modelar llamadas recursivas en el que una operacioacuten es invocada por el mismo objeto

37

Desarrollo de la herramienta

9 Destruccioacuten del objeto (AutodestrucciOacuten)- Puede o no modelarse es representada con una X al final de la liacutenea de vida del objeto

Elementos aulomaacuteticos

1 Liacutenea de Vida- Representa la vida del objeto durante la interaccioacuten

2 Activacioacuten- Muestra el periacuteodo de tiempo en el cual el objeto alguna operacioacuten

341RepresentaciOacuten visual

Representacioacuten visual de los elementos atoacutemicos del lenguaje

Actor

_- A

Mensaje

Mensaje de Creacioacuten de

Objeto

ClaseObjeto

I

Mensaje de retorno

Mensaje de Destruccioacuten de

Objeto

abla 32 Element(

Activacioacuten

Mensaje con tiempo

Autodestruccioacuten

x

atoacutemicos del lengi

taacute realizz

Texto ===I (letra)+ (letra I

numero) letra= AZ I az numero = 09

I

Recursividad ~

I

i j e

io

38

u

Comentario

iexcl

Conector de Comentario

35 Gramaacutetica desarrollada

La gramaacutetica que se propone es una gramaacutetica visual del tipo relacional Una gramaacutetica relacional pertenece a las gramaacuteticas libres de contexto es una 6-iupla G (N C S R Attr P) donde

N es un conjunto finito de siacutembolos no terminales C es un conjunto de siacutembolos terminales S es un siacutembolo distinguido en N llamado siacutembolo inicial R es un conjunto finito de siacutembolos de relacioacuten Attr es un conjunto finito de siacutembolos de atributos P es un conjunto de producciones

Entonces definiendo nuestra gramaacutetica G (N C S R Attr P)

N = Diagrama GrupoClaseObjeto

S = Diagrama

R = mensaje mensajeTiempo mensajeRetomo mensajeAsincrono mensajecrea mensajeDestruye autodestruccioacuten recursividad

R

Attr = entrada salida entradacrea

39

Desarrollo de la herramienta

Definiendo la posicioacuten de los atributos en los elementos visuales

entradacrea ObetaClase

entrada

salida

P =

Diagrama I GrupoClaseObjeto (mensaje (mensajeRetorno

(salida 1) (entrada 2) ) (salida 2) (entrada 1) )

- Diagrama 0 GrupoClaseObjeto

(mensaje (mensaje (mensajeRetomo (mensajeRetomo (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entradacrea 2) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 1) ) (salida 1) (entrada 1) )

entrada

salida

40

Desarrollo de la herramienta

s

-

GrupoClaseObjeto - 1 1 I 2 (mensaje (mensaje (mensajeRetorno (mensajeRetorno (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entradacrea 2) ) (salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 1) ) (salida I ) (entrada I ) )

1 En las gramaacuteticas relacionales una produccioacuten estaacute acompantildeada de las posibles

relaciones que puedan generarse En la primera produccioacuten Diagrama produce a un Actor seguida de un GrupoClaseObjeto el Actor inicia la interaccioacuten con un mensaje y recibe el mensaje de retorno al finalizar la interaccioacuten La segunda y tercera produccioacuten son similares debido a que un GrupoClaseObjeto contiene dos ClaseObjeto que se relacionan de la misma forma

Existe un elemento de la gramaacutetica llamado Attr (Atributo) el cual define la parte de los elementos visuales donde se establecen las relaciones Se han determinado dos atributos (entrada y salida) que para nuestro propoacutesito estaraacuten establecidos en la liacutenea de vida de cada elemento visual (Actor y ClaseObjeto)

Los Comentarios y la Activacioacuten no se consideran en la gramaacutetica Los comentarios son libres de incluirse y relacionarse con cualquier elemento y relacioacuten mencionada anteriormente y la activacioacuten existe siempre que se presente un mensaje (o podriacutea omitirse) Estas consideraciones se realizaron para hacer auacuten maacutes faacutecil la gramaacutetica ya que si se trata de realizar un sistema las restricciones de estos elementos pueden mantenerse en el lenguaje de programacioacuten en el que se desarrolle el sistema

36

Precondiciones

El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias

1 El diagrama de Clases debe existir y estar completo 2 Debe existir un archivo con un diagrama de Warnier por cada diagrama de Clases y

con el mismo nombre de archivo (excepto la extensioacuten del archivo) 3 En el uacutenico diagrama de Warnier de cada Clase se deben modelar todos los meacutetodos

de la Clase 4 No realizar declaraciones de meacutetodos

41

Desarrollo de la herramienta

5 Debe existir un meacutetodo lsquomain()rsquo en el diagrama de Clases

Restricciones

Los meacutetodos deben mantener nombres distintos en las diferentes Clases

Metodologiacutea para la obtencioacuten automaacutetica de los Diagramas de Secuencias

1 Seleccionar el diagrama de Clases

2 Se construye una lista con los nombres de las Clases y los Meacutetodos

3 Se verifica si exista el meacutetodo lsquomain()rsquo en alguna Clase Se busca la existencia de una uacutenica Clase

a La Clase que contenga lsquomain()rsquo se va al inicio de la lista de Clases

b Si no existe lsquomain()rsquo SE TERMINA EL PROCESO

4 Se verifica la existencia de los archivos que contienen el Disentildeo Detallado de los meacutetodos en Wamier para cada una de las Clases si alguno falta SE TERMINA EL PROCESO

5 Se procesa cada uno de los modelos del Disentildeo Detallado de los Meacutetodos generando una lista de secuencias de llamadas por cada uno de los meacutetodos

6 Se verifica que cada llamada corresponda a alguacuten meacutetodo existente (del diagrama de Clases) De no existir ese meacutetodo la llamada entra a una estructura que

7 Se crea una lista de secuencia

a Se inicia con lsquomain()rsquo b Se recorre cada una de las llamadas de los meacutetodos c Se considera invaacutelido el caso de que un meacutetodo intente una llamada

recursiva al meacutetodo lsquomain()rsquo

8 Se muestra un diaacutelogo de resultados en el que se indican las llamadas que no se encnotraron definidas y que pueden ser Llamada a libreriacutea oacute Llamada Erroacutenea

42

Capiacutetulo 4

Prue6as y su6taaacuteos

En eacuteste capiacutetulo se da a conocer el detalle de las pruebas y de los resultados obtenidos Se describen los casos de prueba con los que se realizoacute la evaluacioacuten del sistema asiacute tambieacuten se presentan comentarios acerca de los resultados obtenidos

Pruebas y Resultados

41 Recursos teacutecnicos utilizados

Para llevar a cabo las pruebas al sistema S3C se utilizaron los siguientes equipos de Coacutemputo

Computadora de escritorio

256MB RAM Disco Duro 80G Monitor 17rdquo SAMSUNG

AMD Athlon XP 1600+ I4Ghz

Computadora de escritorio Intel Pentium 4 - 128MB RAM Disco Duro 40G Monitor 15rdquo i -

42 Descripcioacuten del plan de pruebas

Las pruebas establecen el Uacuteltimo paso desde donde es posible evaluar la calidad y descubrir los errores Las pruebas y la validacioacuten del software se utilizan para comprobar que el sistema cumple con las expectativas del usuario

En esta seccioacuten se describen los casos de prueba que se realizaron al prototipo de S3C en conjunto a la suite cenidet-UML Para cada uno de los casos se presenta el objetivo el procedimiento que se siguioacute para la prueba y se muestran los resultados obtenidos - _

Las pruebas a realizar son los siguientes

Caso 1 Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Caso 2 Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Wamier

Caso3 Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Wamier

Caso4 Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo 5

44

Pruebas y Resultados

43 Resultados

431 Caso 1

5 Y

IZ =

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoSirdquo 4 Seleccionar el archivo ldquoVENTASrdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 41 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

s3c iuevo Proyecto SCUM1

Diagrama de clases

lvendedor I L

3

salida

venta prod

4 venia-oferta vcntaprod =

salida 6

Figura 41 Resultado del caso de prueba 1

45

Pruebas y Resultados

432 Caso 2

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Warnier (almacenwar cajawar vendedorwar) que ya cxisten (del caso de prueba I )

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoNordquo 4 Agregar las siguientes Clases con los respectivos meacutetodos y atributos

a Claseldquovendedorrdquo Meacutetodos ldquoventa mainrdquo b Claseldquoalmacenrdquo Meacutetodos ldquoentrada salidardquo c Claseldquocajardquo Meacutetodos ldquoventagrodrdquo

5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 42 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

Diagrama de daseo lisgrama dcsccucncis

MOIDOC Anivo

venta prod

salida

1 Ycrdquo1a 2

I 4 vcrdquolD~o1cn venta prod gt

salida 6 i Figura 42 Resultado del caso de prueba 2

46

Pruebas y Resultados

r

433 Caso 3

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Warnier

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 43 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

5

Error al tratar de abrir el archivo A bZwar

Aceptar i

Faltan Archivos de Disentildeos Detallados de Meacutetodos 1 1 A No se puede crear el diagrama de secuencias

Figura 43 Resultado del caso de prueba 3

47

Pruebas y Resultados

434 Caso 4

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 44 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

lsquo I

~ _ i i _ l _ Repaado ~~ ~ ~ 6~ ampA Figura 44 Resultado del caso de prueba 4

48

Pruebas y Resultados

PRUEBA DESCNPCION CASO 1 Mostrar la funcionalidad del

Sistema S3C a partir de un

44 Anaacutelisis de Resultados

RESULTADOS Se comproboacute la correcta funcionalidad del Sistema S3C a partir de un diagrama

CASO 3

CASO4

I diagrama de Clases cxistcnte I de Clases existente CASO 2 I Mostrar la funcionalidad del I Sc comproboacute la corrccta funcionalidad

Sistema S3C a partir de un del Sistema S3C a partir de un diagrama diagrama de Clases que se de Clases que se construye al momento construye al momento Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el Secuencias si falta alguno de los diagrama de Secuencia si falta alguno diagramas de Warnier Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el secuencias si hace falta el meacutetodo diagrama de Secuencias al faltar el ldquomain ()rdquo meacutetodo ldquomain()rdquo

de los diagramas de Warnier

Los resultados obtenidos de cada uno de los casos establecidos demuestran que se validoacute la funcionalidad del prototipo con los requisitos definidos en el alcance de este proyecto

a lt

49

Conclusiones y Tru6ajos Futuros

Aquiacute se dan a conocer las conclusiones y se describen los posibles trabajos futuros para la continuacioacuten de eacuteste proyecto

F

51 Conclusiones

Conclusiones y trabajos futuros

Se ha creado un Ambiente Visual que permite obtener de forma automaacutetica los Diagramas de Secuencias en base a los diagramas de Clases y al disentildeo detallado de los meacutetodos descritos con diagramas de Warnier cumpliendo con los objetivos planteados para este trabajo

La tesis aporta principalmente La generacioacuten automaacutetica de los diagramas de secuencias y la eliminacioacuten de inconsistencias al mantener una validacioacuten directa de los diagramas de clases y los diagramas de Warnier que son utilizados

Esta validacioacuten es lograda a traveacutes del uso de la gramaacutetica visual relaciona1 que se ha definido (veacutease el capiacutetulo 3) Esta gramaacutetica visual establece reglas para la correcta construccioacuten de los diagramas de secuencias

P De esta manera se establece que la hipoacutetesis ldquoEs posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodosrdquo Es verdadera

52 Trabajos Futuros

Un Diagrama de Secuencias puede convertirse en un Diagrama de Colaboracioacuten por lo tanto un trabajo futuro es la construccioacuten automaacutetica de un Diagrama de Colaboracioacuten a partir de uno de Secuencias existente

Es posible calcular la meacutetrica de acoplamiento al tener un Diagrama de Secuencias construido

La Ingenieriacutea directa de un Diagrama de Secuencias estableciendo la validacioacuten en la construccioacuten de todos los elementos visuales que UML define

La propagacioacuten de las modificaciones de un Diagrama de Secuencias a los Diagramas de Clases y los Diagramas de Warnier

La modificacioacuten del coacutedigo fuente mediante los cambios establecidos en un Diagrama de Secuencias

51

[ALC03]

[BLA98]

[B0099]

[BOOOi]

[BR097]

[CHA90]

[DAN02]

[GLA02]

[HAC98]

[HER03]

4

Alcate1 Computer Associates International inc Electronic Data Systems Corporation Hewlett-Packard Company IBM Corporation I-Logix IntelliCorp Kabira Technologies Kennedy Carter Microsoft Corporation Object Management Group Oracle Corporation Project Technology Ptech Inc Rational Software Corporation Reich Technologies Softeam Taskon A S Telelogic Unisys Corporation ldquoOMG Unified Modeling Language Specificationrdquo Version 15 Unified Modeling Language 2003

Blaha Michael Rumbaugh James Premerlani William Eddy Frederick Lorensen William ldquoObject-oriented modeling and designrdquo Prentice Hall 484 Paacuteginas ISBN 0-13-629841-9 QA-769-03S-B53-19981998

Booch Grady Rumbaugh James Jacobson Ivar ldquoEl lenguaje unificado de modeladordquo Addison Wesley 432 Paacuteginas ISBN 84-7829-028-1 1999

Booch Grady Rumbaugh James Jacobson Ivar ldquoThe Unified Modeling Language User Guiderdquo Addison Wesley 2001

Brown David ldquoAn introduction to object-oriented analysis objects in plain Englishrdquo John Whiley amp Sons Inc 700 Paginas ISBN 0-471-1 1028-0 QA-769-035-B76-1997 1997

Chang Shi-Kuo ldquoVisual Languages and visual programmingrdquo Plenum Press 340 Paacuteginas ISBN 0-306-43428-8 QA-7665-V57-1990 1990

Daniels John ldquoModeling with a sense of purposerdquo Design - IEEE Software JanuaryEebmary 2002

Glasgow Universidad Reino Unido ldquoA UML Editor in Javardquo (lthttplstudentsdcsglaacuWstudentspainjfproject-reportproject-re port-htmV4thYearReporthtrnlgt 2002)

T Hackos JoAnn C Redish Janice ldquoUser and Task Analysis for Interface Designrdquo Wiley Computer Publishing 488 Paacuteginas ISBN QA-769-U83- H33-1998 1998

Hemaacutendez Velaacutezquez M ldquoIngenieriacutea inversa de coacutedigo fuente en C++ para la obtencioacuten de su disentildeordquo Tesis AT-379 (03-0334) 2003

Conceptos generales

[HIX93]

[JAC93]

[JAC99]

[JOY98]

[LAR97]

[MAR]

[MIC99]

[MIC02]

[MOU98]

Hix Deborah Hartson H Rex ldquoDeveloping user interfacesrdquo 381 Paacuteginas ISBN 0-471-57813-4 QA-769-U83-H59-1993 1993

Jacobson Ivar Christerson Magnus Jonsson Patrik Overgaard Gunnar ldquoObject oriented software engineeringrdquo Addison Wesley ISBN 0-20 1 - 54435-0 QA-7676-D47-J63-1993 1993

Jacobson Ivar Booch Grady Rumbaugh James ldquoEl proceso unificado de desarrollo de softwarerdquo Addison Wesley 438 Paacuteginas ISBN 84-7829-036- 2 1999

Joyanes Aguilar Luis ldquoProgramacioacuten orientada a objetosrdquo McGruw Hill ISBN 84-481-0590-7 1998

Larman Craig ldquoAplying UML and Patternsrdquo Prentice Hull 507 Paacuteginas ISBN 0-13-748880-7 QA-769-035-L37-1997 1997

Marriot Kim Meyer Bemd ldquoVisual Language Theoryrdquo Springer 381 Paacuteginas P-935-V567-1998 1998

Microsoft ldquoMicrosoft Visual C++ 6 manual del programadorrdquo McGraw Hill ISBN 84-481-2127-9 QA-7673-Cl53-23718-1999 1999

Microsoft ldquoVisiordquo (lthttpwwwmicrosoftcomofficevisiogt 2002)

B Mourao Luis X ldquoUniversal Modeling Language Part 11 UML Notation - Case Sequence and Collaboration Diagramsrdquo Lan Times Magazine (~httpwwwlantimescomltpartsdiscussdiscuss6Ohtm~) 1998

No Magic ldquoMagicDrawrdquo (lthttpwwwmagicdrawcomgt 2002)

Object Insight ldquoJvisionrdquo (lthttpwwwobject-insightcomgt 2002)

Rational Software Microsoft I Hewlett-Packard Oracle Sterling Software MCI Systemhouse Unisys ICON Computing IntelliCorp i-Logix IBM ObjectTime Platinum Technology Ptech Taskon Reich Technologies Sofieam ldquoUML Summaryrdquo Version 11 Unified Modeling Language 1997

Rational ldquoRational Roserdquo (lthttpwwwrationalcomproductosrosegt 2002)

Rikki Kirzner ldquoAnalysis Modeling and Design Tools Market Forecast and Analysis 2001-2005rdquo Bulletin Published Under Services Application Design and Construction Tools Application Development and Deployment Strategies Documento Nuacutemero 24809 Junio 2001

53

Conceptos generales

[RIM92] Rimrner Steve ldquoGraphical user interface programmingrdquo 423 Paacuteginas

1992

Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language reference manualrdquo Addison Wesley 550 Paacuteginas ISBN 0-201-

ISBN 0-8306-2475-9 ISBN 0-8306-2472-4 (pbk) QA-769-083-R55G

[RUM99]

30998-X QA-7676-D47-R85-1999 1999

[RUM299] Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language user guiderdquo Addisoiz Wesley 482 Paacuteginas ISBN 0-201 -57 168-4 QA-7676-D47-B66-1999 1999

[SMA02] SmartDraw ldquoSmartDrawrdquo (lthttpwwwsmartdrawcomgt 2002)

[SHU88] 9 - Shu Nun C ldquoVisual Programmingrdquo Van Nostrand Reinhold ISBN 0-422- 28014-9 ISBN 0-422-01 164-4 QA-7665-S55 1988

[THI90] Thimbleby Harold ldquoUser Interface Designrdquo Acm press 470 Paacuteginas ISBN 0-201 -41 61 8-2 QA-769U83-T772~- 1990 1990

[WENO2] Wences Diaz MF ldquoModelo de Ingenieriacutea Inversa para la obtencioacuten de disentildeo detallado basado en LEVISSrdquo Tesis (02-0014) 2002

54

Anexo A

Conampuracioacuten de Microsoft Vkua[C++ 6 O

Este anexo indica las configuraciones que se utilizaron para la compilacioacuten de SCUML y s3c

Configuracioacuten de Microsoft Visual c++ 60

Debido a la integracioacuten de los proyectos de InverSOODA e InverDDVi con S3C se cumplioacute con los requisitos previos de ambos proyectos

El compilador usado en el proyecto fue el Microsoft Visual C++ 60

Para el cumplimiento con la funcionalidad de InverSOODA se instaloacute el ANTLR la versioacuten 271 Se descargoacute del sitio l i l l ~ ~ ~ ~ ~ ~ t l ~ l ~ - ~ t - ~ la versioacuten mencionada en un archivo comprimido (en formato zip) Se colocoacute el paquete descomprimido en el directorio ldquoDIANTLR-271 I rdquo

Recomiendo ampliamente que el directorio principal de ANTLR se copie en el directorio raiacutez de cualquier unidad de disco debido a que experimenteacute problemas de compilacioacuten cuando ANTLR no se encontraba en el directorio raiacutez

Io015

Source Browser AlttF12 I u c Ersquo V I

Visual Component Mgnager

- - ~ ~ ~ ~~

P2 Registrar control

A Contenedor de prueba de controles ActiveX

A Usor de objetos OLE y COM

Buacutesqueda de errores

A Y++ MFC Iracer

Customize options

~ - q- ~ Macro

Eecord Quick Macro Cbl+ShiR+R Pay Quick Macro Ctrl+ShiR+P

En el menuacute Tools (Herramientas) seleccione el sub-menuacute Options ltopcionesgt

56

Configuracioacuten de Microsoft Visual C++ 60

En la siguiente ventana de diaacutelogo debe agregar la direccioacuten en donde se encuentra el ANTLR

Agregar la ruta del directorio de ANTLR hasta el subdirectorio

libcpp

Editor I Tabs I Debug I Compatibility 1 Build Dneclolies I a I Chow directories for - Platfolm -

- Directories I x ) 4 jWin32 -] llnclude files

m cancd I

57

Configuracioacuten de Microsoft Visual C t+ 60

Se ha creado una libreriacutea (anrlrliblib) de ANTLR la cual ya estaacute situada en el directorio del proyecto SCUML (ISCUML) y no debe ser movida o eliminada

I

Geneial 1 Debug I CC++ Link I Category

Output file name bebugSCUMLexe

Objectljibrary modules 4 anllrliblib

li Generate debug lnfo r Ignore all defaull lbaries D ~ i n k j n ~ ~ ~ t a n ~ r ~ e n e r ~ ~ ~ mapfile

r Enable psafilrng

Proiec1 Ootionn

pq Cancel 1 Libreriacutea de ANTLR que debe existir 1 I para que se compile correctamente

58

Anexo B

~ u iacute aacute raacutepida de uso deC Sistema S3C

5 Este anexo indica de forma raacutepida la manera de utilizar S3C para crear un diagrama de secuencias de forma automaacutetica

Guiacutea Raacutepida de uso del Sistema S3C i

Para indicar la creacioacuten de un diagrama de secuencias en forma automaacutetica se debe ir a la barra del costado izquierdo y presionar ldquoNuevo Proyecto SCUMLrdquo

I s3c I ~ Nuevo Proyecto SCUML ~ _ _ - I Diagrama de clases ~ Diagrama de secuencias 1 MDI DOC Activo

-

Apareceraacute un documento llamado ldquoSCUMLV en donde el simbolo corresponde a un numero consecutivo iniciando desde 1 (uno)

$ e Despueacutes se presiona ldquoDiagrama de clasesrdquo Habraacute que para indicarle al sistema si se requiere abrir un diagrama de clases existente o realizar uno nuevo

i

iquestAbrir un documento existente

No Cardquo~ear

AI presionar ldquoSirdquo se debe indicar cual es el archivo del diagrama de Clases en el cuadro de diaacutelogo siguiente

~~ - 11dMis documentos rsquo 2 M i P C i lsquo h s sitios de red

I

AI presionar ldquoNordquo en ldquoAbrir un documento existenterdquo se nos mostraraacute un documento vacio para crear un diagrama de clases

60

Guiacutea Raacutepida de uso del Sistema S3C

Para ambas opciones se requiere que los diagramas de Wamier ya se encuentren construidos Y para continuar el proccso se selecciona el documento ldquoSCUMLVrsquo creado al inicio y despueacutes presionar el botoacuten nombrado ldquoDiagrama de secuenciasrdquo localizado en la barra de hcrraiiiicntas del costado izquierdo

Ha iniciado el proceso de construccioacuten del diagrama de secuencias Si no existen errores al terminar el proceso se le mostraraacute un cuadro de diaacutelogo llamado ldquoResultadosrdquo en donde le mostraraacute las llamadas de las que no localizoacute su definicioacuten

- - -

Cancel 1 D e las siguientes llamadas es posible que esten mal escritas o peitenezcan a la libreiia del Lenguaie Verifique ya que no se encontraron sus definiciones

A continuacioacuten se mencionan los posibles errores que finalizan el proceso de la creacioacuten automaacutetica de los diagramas de secuencias en S3C

Cuando no exista un meacutetodo lsquomainrsquo definido en el diagrama de clases

No se encontro el meacutetodo lsquomain()rsquo que inicie la secuencia I A No se puede crear el diagrama de secuencias

p==amp=q

61

Guia Raacutepida de uso del Sistema S3C

Cuando se definan niultiples metodos lsquoinainrsquo en el diagrama de clases

Multiples meacutetodos lsquomainOlsquo Imposible decidir el inicio de secuencia

Aceptar i

Si un meacutetodo definido en Wamier realiza una llamada a lsquomainrsquo se cancelara el proceso

Llamada NO VALIDA al meacutetodo principal main

(iAcp-j(

4 i

CI Y rdquoldquoldquoI i 11 1-T

IZNTRO Gt INFORMACION

62

  • Tabla de Contenido
  • Listado de Figuras
  • Listado de Tablas
  • Notacioacuten
  • Introduccioacuten
  • Capitulo 1 Conceptos Generales
    • 11 Antecedentes
    • 12 Trabajos relacionados
      • 121 Tabla comparativa
        • 13 Definicioacuten del problema
        • 14 Objetivo de la Tesis
          • Objetivos especiacuteficos de la tesis
            • 15 Hipoacutetesis de investigacioacuten
            • 16 Alcances y limitaciones del trabajo de tesis
              • Capitulo 2 Marco Teoacuterico
                • 21 Modelado de sistemas de software
                • 22 Interfaz de usuario (Mecanismos de interaccioacuten)
                • 23 Lenguajes Visuales
                • 24 Programacioacuten orientada a objetos
                • 25 Lenguaje de Modelado Unificado (UML)
                  • Desarrollo de la herramienta
                    • 31 Disentildeo de la Arquitectura
                      • 311 Requisitos (Diagrama de Casos de uso)
                        • 312Modelo Conceptual
                        • 313Diagramas de clases
                        • 32 Elementos de la arquitectura
                          • 321 Microsoft Foundation Class (MFC)
                            • 322Arquitectura Documento Vista
                            • 323Integrando Ambientes en Visual c++
                              • 324 Interfaz de Muacuteltiples Documentos (MDI)
                                • 325Recursos Diaacutelogos Menus y Barras de Herramientas
                                  • 326 Notacioacuten estaacutendar
                                  • 327 Estructura de datos persistencia y recuperacioacuten
                                    • 328Patrones de disentildeo utilizados
                                      • 33 Diagrama de secuencias
                                        • 331Ciclo de vida del software
                                          • 34 Elementos atoacutemicos de la Gramaacutetica
                                            • 341 Representacioacuten visual
                                              • 35 Gramaacutetica desarrollada
                                              • 36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias
                                                  • Capitulo 4 Pruebas y Resultados
                                                    • 41 Recursos teacutecnicos utilizados
                                                    • 42 Descripcioacuten del plan de pruebas
                                                    • 43 Resultados
                                                      • 431 Caso
                                                      • 432 Caso2
                                                      • 433 Caso
                                                          • Conclusiones y trabajos futuros
                                                            • Trabajos futuros
                                                            • Referencias
                                                            • Anexo A Configuracioacuten de Microsoft Visual C+t
                                                              • Figura 11 - Arquitectura de la suite cenidet-UML
                                                              • Figura 21 -Programacioacuten Visual
                                                              • Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de
                                                              • Figura 32 -Diagrama de Casos de Uso para el S3C
                                                              • Figura 33 -Modelo Conceptual
                                                              • Figura 34 - Diagrama de Clases -Control del Diagrama -
                                                              • Figura 35 - Diagrama de Clases - Patroacuten Visitor -
                                                              • Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento
                                                              • Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)
                                                              • Figura 38 -Dialogo Caracteriacutesticas del Objeto
                                                              • Figura 39 -Dialogo Mensaje
                                                              • Figura 3 IO - Menuacute de los Diagramas de Secuencias (estaacutendar)
                                                              • Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias
                                                              • Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)
                                                              • Figura 313 - Serializacioacuten
                                                              • Figura 314 -Modelo de cascada del ciclo de vida del software
                                                              • Figura 41 - Resultado del caso de prueba
                                                              • Figura 42 -Resultado del caso de prueba
                                                              • Figura 43 -Resultado del caso de prueba
                                                              • Figura 44 -Resultado del caso de prueba
                                                              • Tabla 11 - Tabla comparativa
                                                              • Tabla 31 -Prefijos estaacutendar de identificadores
                                                              • Tabla 32 -Elementos atoacutemicos del lenguaje
                                                              • Tabla 41 - Resumen de los resultados de las pruebas realizadas

Marco teorico

i

4 -I

requisitos -incluyendo los requisitos no funcionales y otras restricciones- que se le suponen [JAC99] Los propoacutesitos del disentildeo son

Adquirir una comprensioacuten en profundidad de los aspectos relacionados con 10s requisitos no funcionales y restricciones relacionadas con los lenguajes de programacioacuten componentes reutilizables sistemas operativos tecnologiacuteas de distribucioacuten y concurrencia tecnologiacuteas de interfaz de usuario tecnologiacuteas de gestioacuten de transacciones etc Crear una entrada apropiada y un punto de partida para actividades de implementacioacuten subsiguientes capturando los requisitos o subsistemas individuales interfaces y clases Ser capaces de descomponer los trabajos de implementacioacuten en partes mas manejables que puedan ser llevadas a cabo por diferentes equipos de desarrollo teniendo en cuenta la posible concurrencia Capturar las interfaces entre los subsistemas Esto ayuda cuando reflexionamos sobre la arquitectura y cuando utilizamos interfaces como elementos de sincronizacioacuten entre diferentes equipos de desarrollo Ser capaces de visualizar y reflexionar sobre el disentildeo utilizando una notacioacuten comuacuten Crear una abstraccioacuten independiente de la implementacioacuten del sistema en el sentido de que la implementacioacuten es un refinamiento directo del disentildeo que rellena lo existente sin cambiar la estructura Esto permite la utilizacioacuten de tecnologiacuteas como la generacioacuten de coacutedigo y la ingenieriacutea de ida y vuelta entre el disentildeo y la implementacioacuten [JAC99]

22 Interfaz de usuario (Mecanismos de interaccioacuten)

El crecimiento de las computadoras personales vendidas en los ~ O rsquo S lanzoacute con fuerza el ldquofaacutecil de usarrdquo como una de las caracteriacutesticas mas importante de un producto de computadora

Las interfaces graacuteficas de usuario no son nuevas se pueden encontrar en las paredes de cuevas al sur de Francia en las piraacutemides de Egipto y en las paredes de muchas ciudades [iUM92] Para el usuario de un sistema interactivo la comunicacioacuten es tan importante como la computacioacuten Para los usuarios regularmente la interfaz es el sistema [HIX93]

Disentildeo de Interfaz Seguacuten Hackos [HAC98] las interfaces estaacuten en todo donde se trabaja con

o Controles en productos de hardware o Etiquetas y sentildeales en el hardware o Pequentildeas pantallas de cristal liquido en maacutequinas de cualquier tipo o Pantallas para aplicaciones de software para terminales de computadoras centrales

Marco teoacuterico

o pantallas para aplicaciones de software en computadoras Personales sistemas operativos como Windows OS2 DOS Macintosh U n b Y Otros

0 Paacuteginas de un sitio WEB 0 Sistemas de ayuda y manuales en-liacutenea 0 Tutoriales incrustados y otros tipos de soporte de funcionamiento O Esquemas de formas y otros documentos

una interfaz es el medio con el cual los usuarios interactuacutean con el producto 0

sistema para lograr SUS objetivos

Interfaz Usable

Para que una interfaz sea usable debe ser transparente y darles a los usuarios la capacidad de lograr cumplir sus metas de forma efectiva y eficiente

Los beneficios presentados en el uso de las interfaces de usuario [TH190] Disfrutar el sistema El usuario disfruta trabajar con un sistema que cuenta con una interfaz bien disentildeada y que le da la funcionalidad y acceso a los recursos de una manera clara y sencilla Proporciona nuevas habilidades Elimina al usuario concentrarse en acciones que la propia interfaz y el sistema hacen dando como resultado que el usuario solo se concentre en lo importante del trabajo Delegacioacuten de tareas La interfaz de usuario permite al usuario no conocer los detalles de la tarea esto es la computadora atiende los detalles de las tareas mientras que el usuario se concentra en asuntos de maacutes alto nivel Seguridad El usuario no necesita estar en lugarespeligrosos para hacer su trabajo

Se da la mayor posibilidad para que el usuario tenga acceso al conocimiento utilizando un sistema interactivo Haciendo las cosas a la primera Las tareas se ejecutan en un orden correcto definido lo que da como resultado un trabajo bien terminado sin necesidad de repetir evitando asiacute altos costos Computando LOS usuarios pueden calcular datos sin necesidad de conocer el proceso para obtener los resultados

Desarrollo

El disentildeo de interfaz es un negocio bastante dificil Eacuteste combina dos complicadas disciplinas psicologiacutea y ciencias de la computacioacuten Estas disciplinas tienen un fondo cultural muy diferente la psicologiacutea atiende a la gente (comprensioacuten y entendimiento) las ciencias computacionales a las maacutequinas (matemaacuteticas y precisioacuten) El disentildeo de las buenas interfaces requiere que estas dos perspectivas esteacuten unidas [THi90]

Hackos dice que las interfaces dan simplicidad y elegancia al trabajo necesario y a la vida e los usuarios Si no es obvio al usuario pero es raacutepida para aprender [HAC98] ademaacutes define caracteriacutesticas comunes de las interfaces usables

o Hacen que el flujo de trabajo sea familiar o confortable o Soportan el estilo de aprendizaje de los usuarios

12

Marco teoacuterico

Visualizacioacuten de Entrenamiento visual Para controlar Soportar interaccioncs Programar con informacioacuten visual visuales expresiones visuales

o Compatibles con los ambientes de trabajo de los usuarios o Se extienden sobre un concepto de disentildeo que es familiar al usuario o Tienen consistencia de presentacioacuten que los hace parecer maacutes confiable y faacuteciles de

aprender o Usan lenguaje y figuras familiares al usuario o faacuteciles de aprender

Datos o informacioacuten acerca de datos

23 Lenguajes Visuales

Los lenguajes visuales son un nuevo paradigma para expresar los sistemas computacionales Ellos ofrecen la posibilidad de manipular directamente los objetos Un lenguaje visual consiste de sentencias visuales Para lenguajes visuales basados en iacuteconos cada sentencia visual es un arreglo espacial de objetos O iacuteconos graacuteficos [CHA90]

Un lenguaje visual es concebido como una coleccioacuten de figuras obtenidas por un arreglo graacutefico de objetos en dos o maacutes dimensiones Los lenguajes visuales pueden ser modelados sintaacutecticamente a traveacutes de un vocabulario un conjunto de relaciones usadas para componer las figuras y un conjunto de reglas describiendo las figuras pertenecientes al lenguaje Los objetos graacuteficos de un vocabulario de un lenguaje visual se caracterizan por contar con un conjunto de atributos Los atributos de un objeto graacutefico pueden ser atributos graacuteficos atributos sintaacutecticos y atributos semaacutenticos [MAR98]

Un lenguaje de programacioacuten visual puede ser informalmente definido como un lenguaje el cual usa algunas representaciones visuales [SHV88]

Programa ylo Disentildeo de Lenguajes de programacioacuten visual ejecucioacuten software Diagramas iconos Formas

Programacioacuten Visual [SHU88]

Gramaacuteticas para la especificacioacuten de lenguajes visuales [MAR98]

a) Gramaacuteticas texfuales generalizadas Este tipo de gramaacutetica provee una adaptacioacuten apropiada de la concatenacioacuten de siacutembolos para dos dimensiones Su principal ventaja es que conservan los elementos teoacutericos de las gramaacuteticas textuales y los eficientes algoritmos de anaacutelisis de eacutestos uacuteltimos Su principal desventaja es que eacutestas gramaacuteticas no son tan poderosas y soacutelo pueden especificar clases restringidas de lenguajes visuales

13

Marco teorico

b) Meacutetodos basados en gramaacuteticas de grafos Un ejemplo de este tiPo de gramaacuteticas son las gramaacuteticas de red Las oraciones generadas con gramaacuteticas de red son grafos dirigidos con siacutembolos en los nodos Estos grafos son llamados redes Una produccioacuten de eacuteste tipo de gramaacuteticas es de la siguiente forma

a - t p E

donde a y p son redes y E es una forma de conectar a p cuando a es conectada a otra red anfitriona

La mayor desventaja es que las gramaacuteticas de red no han probado ser totalmente uacutetiles para la especificacioacuten de gramaacuteticas arbitrarias por la complejidad para rescribir grafos y al hecho de que no todo lenguaje visual estaacute compuesto exclusivamente por grafos

C) Gramaacuteticas de multiconjuntos de atributos En estas gramaacuteticas las producciones rescriben conjuntos o multiconjuntos de siacutembolos que tienen atributos con informacioacuten sobre geometriacutea o semaacutentica La reescritura se controla con restricciones sobre los atributos de los siacutembolos en el lado derecho de las producciones

Un ejemplo de eacutestas gramaacuteticas es la Gramaacutetica Coordinada que especifica notacioacuten matemaacutetica de dos dimensiones En esencia las producciones en una gramaacutetica coordinada n-coordinada libre del contexto tienen la siguiente forma

A -t a donde C F

Todos los siacutembolos de eacuteste tipo de gramaacutetica tienen n atributos geomeacutetricos A es un siacutembolo no terminal a es una cadena no vaciacutea de siacutembolos C es una restriccioacuten sobre los atributos de los siacutembolos en a y F es una expresioacuten que computa los atributos de los siacutembolos de A en teacuterminos de los atributos de los siacutembolos en a no importando el orden de los siacutembolos en a

d) Gramaacuteticas PosicionaZes Las gramaacuteticas posicionales son un formalismo para la definicioacuten e implementacioacuten de lenguajes visuales las gramaacuteticas posicionales extienden naturalmente a las gramaacuteticas libres de contexto Una gramaacutetica libre de contexto posicional PG es una six-tupla (N T S P POS PE) donde

N es un conjunto finito no vaciacuteo de siacutembolos no terminales T es un conjunto finito no vaciacuteo e siacutembolos terminales con N n T = $I S E N es el siacutembolo no terminal de inicio P es un conjunto finito de producciones POS es un conjunto finito de identificadores de relacioacuten binaria PE es un evaluador pictoacuterico

14

Marco teorico

Cada produccioacuten en P tiene la siguiente forma

A -+ X I R I X R2 X ~ I Rm1 xm A

e) Gramaacuteticas de Relacioacuten de siacutembolos Eacuteste es un formalismo sintaacutectico para describir un lenguaje visual donde cada oracioacuten dentro del lenguaje se representa como un conjunto de objetos visuales y un conjunto de relaciones entre objetos

El alfabeto de siacutembolos Vt y el conjunto de relaciones entre siacutembolos Vr una oracioacuten de relacioacuten de siacutembolos w sobre Vt y Vr es un par ( M R) donde

M es un conjunto de elementos-s (v i) con v E Vt y i es un nuacutemero natural R es un conjunto de elementos-r de la forma r (Xi Yj) con Xi Yj E M r E Vr y una relacioacuten r esta contenida entre Xi y Yj

Una gramaacutetica de relacioacuten de simbolos es el conjunto de seis elementos G = (Vn Vt Vr S P R) donde Vn es un conjunto de siacutembolos no terminales Vt es un conjunto de siacutembolos terminales Vr es un conjunto de relaciones entre siacutembolos S es el siacutembolo inicial y P es un conjunto de reglas de reescritura (producciones de elementos-s)

f) Gramaacuteticas relacionales Este tipo de gramaacutetica pertenecen a las gramaacuteticas libres de contexto

La gramaacutetica relaciona1 (RGrsquos) es una 6-tupla G (N C S R Attr P) donde

N C S R Attr P

es un conjunto finito de siacutembolos no terminales es un conjunto de siacutembolos terminales es un siacutembolo distinguido en N llamado siacutembolo inicial es un conjunto finito de siacutembolos de relacioacuten es un conjunto finito de siacutembolos de atributos es un conjunto de producciones de la forma A-gt apF donde A E N a E (nlo)+ Donde n E N cr E E

8 Es un conjunto de relaciones de la forma (r x y) donde r E R y xy son enteros que hacen referencia a un miembro de a y tambieacuten una expresioacuten de la forma (a i) donde a E Attr e i es un entero que hace referencia a un miembrode a

F Es un conjunto de declaraciones de asignacioacuten de caracteriacutesticas de la forma (a O)=x donde a E Attr y x es un entero que hace referencia a un miembro de a o a una expresioacuten de la forma (a i)

15

Marco teoacuterico

24 Programacioacuten orientada a objetos

L~~ meacutetodos orientados a objetos organizan la informacioacuten Y el procesamiento que manipula esta informacioacuten de acuerdo a los objetos delrsquomundo real que la informacioacuten describe [BRO97l

Beneficios de las teacutecnicas orientadas a objetos [BR097] Estabilidad del sistema Mantenibilidad Componentes reusables Confiabilidad Accesibilidad de los datos Participacioacuten del usuario

Seguacuten Graddy Booch la programacioacuten orientada a objetos es ldquoun meacutetodo de implementacioacuten en el que los programas se organizan como colecciones cooperativas de objetos cada uno de los cuales representan una instancia de alguna clase y cuyas clases son todas miembros de una jerarquiacutea de clases unidas mediante relaciones de herenciardquo [JOY 981

Programacioacuten orientada a objetos esencialmente significa programacioacuten usando objetos [JAC93] Los lenguajes orientados a objetos deben soportar los siguientes conceptos

Objetos Abstraccioacuten de datos Encapsulamiento Clases e Instancias Herencia entre clases Polimorfismo

Las propiedades fundamentales de la Programacioacuten Orientada a Objetos son

a Abstraccioacuten Son ideas conceptos y propiedades que se describen en forma general eliminando los detalles Es una estructura de datos y los meacutetodos que manipulan a esos datos

b Encapsulamiento Son las fronteras propias de un objeto bien definidas las cuales protegen los detalles de su representacioacuten interna

c Ocultacioacuten de la informacioacuten Es la propiedad en la que los objetos pueden hacer uso para impedir que otros objetos los usuarios o incluso los programadores conozcan coacutemo estaacute distribuida la informacioacuten

d Herencia Es la propiedad que tiene una clase para heredar atributos y comportamiento a otras clases

e Polirnorfismo Es la propiedad que permite que una entidad pueda cambiar a diferentes formas efectuaacutendose de manera dinaacutemica en tiempo de ejecucioacuten

16

Marco teoacuterico

t

Clases Es la especificacioacuten de una familia de objetos es la declaracioacuten de un tipo de objetos Tambieacuten se dice que una clase es la descripcioacuten de un conjunto de objetos con un comportamiento similar y que esta compuesta de Datos (o atributos) y Meacutetodos o (rutinas acciones operaciones)

Objeto Un objeto es una entidad en la cual se almacenan datos y los meacutetodos o funciones que controlan dichos datos Un objeto es una abstraccioacuten de alguna cosa del mundo real que contiene datos que lo describen y operaciones que solo tienen acceso a esos datos [BR097l Los elementos de los que esta conformado un objeto son

a Las relaciones permiten que el objeto se integre en la organizacioacuten b Las propiedades son los datos que caracterizan el estado de un objeto distinguiendo

asiacute a un objeto determinado de los restantes que forman parte de la misma organizacioacuten

c Los meacutetodos son las operaciones que pueden realizarse sobre la estructura del objeto es decir las acciones que cambian el estado de un objeto y que el objeto es capaz de ejecutar a traveacutes de mensajes y que tambieacuten pone a disposicioacuten de sus descendientes a traveacutes de la herencia

Mensajes Son solicitudes para que se lleve a cabo la operacioacuten indicada y se produzca un resultado

Las razones principales para introducir la tecnologiacutea de objetos son los beneficios de dicha tecnologiacutea

Aumento de la fiabilidad Aumento de la productividad del desarrollador Desarrollo maacutes raacutepido Mejor calidad maacutes alta

Incremento en escalabilidad Mejores estructuras de informacioacuten Incremento de adaptabilidad Reduccioacuten del coacutedigo fuente

Mantenimiento maacutes faacutecil y reduccioacuten de costo

Los elementos de reutilizacioacuten son las clases y objetos

25 Lenguaje de Modelado Unificado (UML)

UML (Unified Modeling Language por sus siglas en ingleacutes Lenguaje de Modelado Unificado) es un lenguaje de modelado visual de propoacutesito general que es utilizado para especificar visualizar construir y documentar las partes de un sistema de software El lenguaje estaacute basado en un pequentildeo nuacutemero de conceptos centrales que la mayoriacutea de los desarrolladores de tecnologiacutea orientada a objetos pueden aprender y aplicar faacutecilmente [RUM99]

17

Marco teoacuterico

y UML Pasado Presente y Futuro

L~~ lenguajes de modelado orientado a objetos aparecieron a mediados de 10s 70rsquos Varias teacutecnicas influenciaron estos lenguajes El nuacutemero de lenguajes de modelado incrementoacute desde menos de 10 hasta maacutes de 50 entre 1989 y 1994 Muchos modeladores teniacutean problemas para encontrar un lenguaje de modelado que satisficiera todas sus necesidades Notablemente aparecioacute Boochrsquo93 y la evolucioacuten continuoacute a OMT y Fusioacuten

OOSE (Object-Oriented Software Engineering) estaacute enfocado a la ingenieriacutea de negocios y anaacutelisis de requerimientos dando un excelente soporte orientado a casos de uso OMT-2 es especialmente expresivo para anaacutelisis y sistemas de informacioacuten de datos grandes Boochrsquo93 fue particularmente expresivo para el disentildeo y fases de construccioacuten de proyectos y popular para aplicaciones de ingenieriacutea intensiva

Grady Booch y Jim Rumbaugh iniciaron el desarrollo de UML en 1994 al unificar sus meacutetodos independientes Booch y OMT En 1995 Ivar Jacobson se unioacute a Racional eacutesta unioacuten logroacute que el meacutetodo OOSE se incorporara La unificacioacuten establecioacute que debiacutean activar el modelado de sistemas utilizando conceptos orientados a objeto asiacute como crear un lenguaje usable tanto para las maacutequinas como para los humanos

A

Muchas organizaciones se unieron al consorcio UML y dedicaron recursos al trabajo hacia el fortalecimiento de la definicioacuten de UML Esta colaboracioacuten produjo un lenguaje de modelado expresivo poderoso y generalmente aplicable En la forma actual de UML se espera que sea base de muchas herramientas incluidas las de modelado visual simulacioacuten y ambientes de desarrollo

R UML es abierto y no-propietario y aunque define un lenguaje preciso no es barrera para futuras mejoras en conceptos de modelado Se usan muchas teacutecnicas de punta pero se esperan teacutecnicas adicionales que influencien futuras versiones de UML puede ser extendido sin redefinir el nuacutecleo

c

Mientras el rehuacuteso basado en componentes se ha favorecido ampliamente cada vez mas esto no significa que las teacutecnicas basadas en componentes reemplazaraacuten las teacutecnicas orientadas a objetos Hay solo sutiles diferencias entre la semaacutentica de componentes y clases [ALC03]

Un opaco rendimiento caracterizoacute el mercado de anaacutelisis modelado y disentildeo en el 2000 en su transicioacuten de las viejas herramientas CASE (Computer Aided Software Engineering) a algo maacutes dinaacutemico y mejor adaptado para satisfacer las necesidades de los desarrolladores para el cambio raacutepido en los ambientes de negocio

El mercado de anaacutelisis modelado y disentildeo lograraacute obtener un crecimiento positivo en varios de los siguientes antildeos por varias razones El mercado seraacute manejado principalmente por la necesidad de desarrolladores a obtener aplicaciones para lanzarse al mercado raacutepidamente asiacute tambieacuten por el intereacutes creciente y uso de una nueva especie de herramienta y por el intereacutes creciente de los desarrolladores en usar UML reglas de negocios y adaptadores de componentes para construir aplicaciones [RIKUI]

z -

18

Marco teoacuterico

UML se ha hecho el estaacutendar para los desarrollos de modelado de negocios administracioacuten de requerimientos anaacutelisis y disentildeo programacioacuten y pruebas Los objetivos primarios de UML en el disentildeo [RAT97j

o Dar a los usuarios un lenguaje visual expresivo de modelado listo para usarse para que puedan desarrollar y cambiar los significados de sus modelos

o Suministrar mecanismos de extensibilidad y especializacioacuten para extender los conceptos centrales

o Ser independiente de lenguajes de programacioacuten particulares y procesos de desarrollo

o Impulsar el desarrollo de las herramientas Orientadas a Objeto en el mercado o Soportar conceptos de desarrollo de alto nivel como colaboracioacuten marcos de

componentes reutilizables patrones y componentes o Integrar las mejores praacutecticas

9 El aacutembito de UML

UML es un lenguaje para especificacioacuten construccioacuten visualizacioacuten y documentacioacuten de artefactos de un sistema de software UML es la fusioacuten de los conceptos de Booch OMT y OOSE El resultado es un simple comuacuten y ampliamente usado lenguaje de modelado para usuarios de estos y otros meacutetodos UML se enfoca en un lenguaje de modelado estaacutendar no en un proceso estaacutendar los autores de UML recomiendan un proceso de desarrollo manejado por casos de uso de arquitectura central iterativo e incremental [iiquest4T97l

Para la definicioacuten de sistemas de software en UML se definen diagramas Un diagrama es la representacioacuten graacutefica de un conjunto de elementos este se visualiza la mayoriacutea de las veces como un grafo conexo de nodos (elementos) y arcos (relaciones) Los diagramas se dibujan para visualizar un sistema desde diferentes perspectivas de forma que un diagrama es la proyeccioacuten de un sistema uumlML incluye nueve diagramas [B0099]

4 -

I Diagrama de clases 2 Diagrama de objetos 3 Diagrama de casos de uso 4 Diagrama de secuencias 5 Diagrama de colaboracioacuten 6 Diagrama de estados 7 Diagrama de actividades 8 Diagrama de componentes 9 Diagrama de despliegue

Diagramas de secuencias Un diagrama de secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten comportamiento

Un diagrama de secuencias muestra un conjunto de mensajes acomodados en una secuencia de tiempo eacuteste diagrama muestra la interaccioacuten en un esquema de dos - dimensiones [RUM99]

19

Marco teoacuterico

Y -

Un diagrama de secuencia es un diagrama de interaccioacuten que resalta la ordenacioacuten temporal de los mensajes Un diagrama de secuencia presenta un conjunto de objetos y los mensajes enviados y recibidos por ellos Los objetos suelen ser instancias (con nombre o sin nombres) de clases pero tambieacuten pueden representar instancias de otros elementos tales como colaboraciones componentes y nodos Los diagramas de secuencia se utilizan para describir la vista dinaacutemica de un sistema [B0099]

Usar los diagramas de secuencia es mostrar la secuencia que existe en un caso de uso [RUM 991

Los diagramas de secuencia tienen dos dimensiones Una dimensioacuten que representa el tiempo Otra dimensioacuten que representa los diferentes objetos que participan en la secuencia de eventos requeridos para completar el propoacutesito [MOuuml98]

El principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildea las interacciones de los objetos [DAN02]

20

Capiacutetulo 3

DesawoCCo de Ia herramienta

En este capiacutetulo se describe el desarrollo del Ambiente Visual Se describe el modelo conceptual del sistema la arquitectura asiacute como tambieacuten los elementos que componen la Arquitectura Se estudian los Diagramas de Secuencias de UML y algunos Patrones de Disentildeo de los que se hace uso para el mejor desarrollo del sistema Se describe a detalle la Gramaacutetica Visual Relaciona1 utilizada para el de Ambiente de desarrollo

I CENIOET 1FNTRO DE INFORMACION

Desarrollo de la herramienta

t i i

Actualmente existe en el cenidet un Ambiente Visual de Modelado de Clases llamado InverSOODA este Ambiente Visual tiene la capacidad de realizar la generacioacuten automaacutetica de coacutedigo de las clases en C++ a partir del modelo especificado Ademaacutes se puede realizar la Ingenieria Inversa de un coacutedigo legado para obtener el modelo de clases Aunado a este trabajo existe el Ambiente Visual denominado InverDDVi con el cual se puede realizar el Disentildeo Detallado de los Meacutetodos de las Clases con diagramas de Warnier Asiacute tambieacuten es posible obtener el modelo aplicando la Ingenieriacutea Inversa a un coacutedigo legado en C++

Ambos trabajos son retomados en este proyecto para la automatizacioacuten en la obtencioacuten de los Diagramas de Secuencias de UML La figura 31 muestra el modelo propuesto de ingenieriacutea directa

Extraer informacioacuten del diagrama de

rsquo rsquo

Diagrama de 11 clases I o

detallado de

detallado de

o meacutetodos

i ir---- Construir el

secuencias i

Modelo de Ingenieriacutea I directa automaacutetica

I

Figura 31 Modelo de Ingenieria Directa Autombtica de los Diagramas de Secuencias

Para la construccioacuten automaacutetica de un diagrama de secuencias se toma como base a un diagrama de Clases El modulo ldquoExtraer informacioacuten del diagrama de Clasesrdquo sirve para obtener el nombre y los meacutetodos descritos en cada uno de las clases que existan en el diagrama de Clases

22

Desarrollo de la herramienta

Con base en la informacioacuten que se tiene se abren los archivos correspondientes a los diagramas de Warnier El proceso que se emplea sobre cada uno los diagramas de Warnier llamado ldquoExtraer informacioacuten de los disentildeos detallados de los meacutetodosrdquo sirve para recopilar el conjunto de las llamadas de cada meacutetodo definido

En el siguiente paso (ldquoReconocer llamadas a meacutetodosrdquo) consiste en identificar si los meacutetodos que estaacuten descritos en los diagramas de Warnier tambieacuten lo estaacuten en el diagrama de Clases correspondiente

El paso ldquoConstruir los diagramas de secuencias automaacuteticamenterdquo realiza una validacioacuten de los meacutetodos definidos en los diagramas de Clases con los meacutetodos definidos en los diagramas de Warnier Este paso crea una estructura de datos con la secuencia de las llamadas y la recorre para crear los objetos y los mensajes en el diagrama de secuencias

AI terminar la creacioacuten automaacutetica del diagrama de secuencias se dispone de la r opcioacuten de guardar

31 Disentildeo de la Arquitectura

Para definir los procesos que el sistema va a realizar es necesario llevar a cabo un anaacutelisis de requisitos los cuales pueden ser expresados mediante diagramas de Casos de Uso Los Casos de Uso son una descripcioacuten textual narrativa de los procesos de un sistema

311Requisitos (Diagrama de Casos de uso)

Los casos de uso en realidad no son un artefacto de anaacutelisis orientado a objetos estos describen simplemente procesos y pueden ser igualmente efectivos en un proyecto tecnoloacutegico no orientado a objetos Son usados en un paso preliminar a la descripcioacuten de requerimientos de un sistema [LAR971 La Figura 32 muestra el diagrama de casos de uso que especifica al S3C

9

S3C (Diagramas de Secuencias)

usuario I Modelado de

I

Figura 32 Diagrama de Casos de Uso para el S3C

23

Desarrollo de la herramienta

Descripcioacuten de los Casos de Uso

Caso de Uso ldquoDiagramas de Secuenciasrdquo Se inicia cuando el actor ldquousuariordquo solicita la creacioacuten de un Diagrama de Secuencias Se establece la forma de la construccioacuten automaacutetica de los diagramas de secuencias de UML Se hace uso del Modelado de Clases y del Modelado del disentildeo detallado de los meacutetodos

Escenario de Eacutexito 1 Se obtiene la informacioacuten de las clases del modelado de clases 2 Se obtiene la informacioacuten del modelado del disentildeo detallado de los meacutetodos 3 Se realiza la construccioacuten automaacutetica de los diagramas de secuencias

1 En el modelo de clases no hay informacioacuten o estaacute incompleta 2 En el modelo del disentildeo detallado de los meacutetodos no hay informacioacuten o estaacute

incompleta

Escenario de Falla

Caso de Uso ldquoModelado de Clasesrdquo El diagrama de Clases se utiliza para obtener los nombres de clases y los nombres de los meacutetodos de cada clase

Escenario de Eacutexito 1 Se abre el modelo 2 Se procesa para obtener la informacioacuten de las clases (nombres de clases y nombres

de meacutetodos)

Escenano de Falla h 1 No se puede abrir el modelo J 2 El modelo esta vaciacuteo

Caso de Uso ldquoModelado del Disentildeo detallado 1 los meacutetodosrdquo El disentildeo detallado de los meacutetodos se realiza con diagramas de Warnier aquiacute se establecen las llamadas a funciones dentro del sistema y es aquiacute donde se identifica el dinamismo que se representaraacute en los diagramas de secuencias

Escenario de Eacutexito 1 Se abre el modelo 2 Se realiza la identificacioacuten de las llamadas existentes

Escenario de Falla 1 No se puede abrir el modelo 2 El modelo esta vaciacuteo

24

Desarrollo de la herramienta

Clase Objeto ni I Diagrama I n ____ Nombre Descripcioacuten

i

Mensaje

Tipo

En el Anaacutelisis Orientado a Objetos se crea una especificacioacuteii del dominio del problema y de los requeriinientos desde la perspectiva de una clasificacioacuten por objetos y del entendimiento de los teacuterminos usados en el dominio del problema Una descomposicioacuten del dominio del problema involucra una identificacioacuten de conceptos atributos y asociaciones que son considerados importantes dentro del dominio El resultado puede ser expresado en un Modelo Corzcepttraf el cual es ilustrado en un conjunto de diagramas que definen conceptos (objetos) [LAR97]

312Modelo Conceptual

El modelo conceptual visto en la Figura 33 no es una descripcioacuten de componentes de software representa conceptos en el domino del problema en el mundo Teal [LAR97l

313Diagramas de clases

Por cuestiones dc espacio las clases de la arquitectura del sistema estaraacuten referidas en varios diagramas que de alguna manera estaacuten relacionados entre si

Una de las partes maacutes importantes del Ambiente Visual S3C es la estructura de clases ltCCraJicogt la cual se refiere al control de los diagramas eacutesta por su naturaleza podriacutea considerarse el nuacutecleo del sistema La manipulacioacuten y control de los diagramas estaacute definido en una estructura de clases organizada con el patroacuten de disentildeo Composite que se muestra en la Figura 34

25

Desarrollo de la herramienta

CRecursividadDS CMensajeDS CObjetoDS CDiagramaDS

I Cvisitor I

CApuntadorDS CDblClickDS CAsocAdjusterDS CSelectorDS

26

Desarrollo de la herramienta

n 32 Elementos de la arquitectura

Es necesario describir los elementos que dan soporte a la arquitectura del ambiente donde se implementaraacute el sistema en este caso Microsoft Visual (MV) C++ 6 El MV C++ es un marco de aplicacioacuten poderoso basado en Windows se integran ademaacutes del lenguaje C++ (compilador y enlazador) el programa de desarrollo de programas en lenguaje C para Windows (SDK) la Microsoft Foundation Class Library AppWizzard Classwizard AppStudio y WorkBencli

La Microsoft Foundation Class Library comprende una biblioteca de clases de C++ y es considerada como el nuacutecleo del MV C++

321Microsoft Foundation Class (MFC)

La libreriacutea Microsoft Foundation Class (MFC) es una interfaz orientada a objetos que tiene las siguientes metas de disentildeo

o

Reduccioacuten significante de esfuerzo al escribir una aplicacioacuten para Windows Velocidad de ejecucioacuten comparable a las APIrsquos del lenguaje C Miacutenimo tamantildeo de coacutedigo Capacidad para llamar cualquier funcioacuten de Windows en C directamente Faacutecil conversioacuten de aplicaciones existentes en C a C++ Faacutecil uso de APIrsquos de Windows con C++ como con C Faacutecil uso de complicadas caracteriacutesticas de abstracciones poderosas como ActiveX soporte para base de datos impresioacuten barras de herramientas y barras de estado El API de Windows en C++ si usa tan efectivamente como las caracteriacutesticas mismas del lenguaje C++

La mayoriacutea de las clases de la Libreriacutea de la Microsoft Foundation Class son derivadas de una clase base ltCObjectgt que es la raiacutez de la jerarquiacutea de clases ltCObjectgt da uacutetiles capacidades a las clases que derivan de ella

La jerarquiacutea que existe en las clases derivadas de ltCObjectgt es la siguiente

Arquitectura de Aplicacioacuten Excepciones Servicios de Archivos Arreglos Listas Mapas Servicios de Internet Sockets Sincronizacioacuten Soporte para base de datos D A 0

27

Desarrollo de la herramienta

i

r

Liacutenea de Comandos Menuacute Dibujo Graacutefico Dibujo Graacutefico de Objetos Soporte de Control Soporte de Ventanas

Soporte para base de datos ODBC

o Marco de Ventanas o Barras de control o Hojas de propiedades o Cajas de Dialogo o Vistas o Controles

322Arquitectura Documento Vista

Por defecto las aplicaciones creadas con la MFC usan un modelo de aplicacioacuten que separa los datos del programa de las vistas de interaccioacuten con el usuario En eacuteste modelo un objeto documento de MFC lee y escribe datos en un almacenamiento persistente Un objeto vista administra el despliegue de datos suministrando al usuario los datos para ser seleccionados o editados La vista le comunica al documento cualquier cambio en los datos La razoacuten maacutes conveniente para seguir este modelo es cuando se necesita muacuteltiples vistas del mismo documento (como en una hoja de caacutelculo y un graacutefico)

La arquitectura documentovista hace faacutecil el soporte de muacuteltiples vistas y muacuteltiples tipos de documentos asiacute como la divisioacuten de ventanas y otras caracteriacutesticas de interfaz de usuario Pero el corazoacuten de la arquitectura son cuatro clases (Mostradas en el aacuterbol de clases de la Figura 36)

ltCDocumerrtgt (o ltCOleDocuinentgt) - Se instancia un objeto de este tipo para almacenar y controlar los datos del programa ltCViewgt (o una de sus clases derivadas ltCScrotlViewgt ltCFormViewgt ltCEditView ltCRecordViewgt ltCDaoRecordView ltCtreeViewgt ltCListViewgt b ltCrichEditViewgt) - Un objeto es usado para desplegar los datos y administrar la interaccioacuten del usuario con los datos ltCFrameWndgt (o una de sus variantes) - Establece el marco sobre el que trabajaraacuten una o mas vistas de un documento ltCDocTemolategt (o ltCSingIeDocTemplategt o ltCMultiDocTemplategt) - Coordina la existencia de uno o maacutes documentos de un tipo dado y administra la correcta creacioacuten de los documentos vistas y objetos ventanas para cada tipo

i

28

Desarrollo de la herramienta

______________ 2 Wiew

I - - __ - ------a ________________

323Integrando Ambientes en Visual C t t

Las aplicaciones de Interfaz de Documento Uacutenico (SDI) soporta muacuteltiples tipos de documentos pero este soporte es para un solo objeto documento Debido a esta restriccioacuten y aunado a la necesidad de tener varios objetos documentos a la vez se determina la utilizacioacuten del modelo Interfaz de Muacuteltiples Documentos (MDI) indicado en la Figura 37

324Interfaz de Muacuteltiples Documentos (MDI)

Una aplicacioacuten de Interfaz de Muacuteltiples Documento (MDI) permite la creacioacuten de plantillas para el manejo de los documentos eacutesta plantilla tiene la forma

rn-pDocTemplate = new CMultiDocTernplate ( I DR-SCUMLTY PE RUNTIME-CLASS (CSCUMLDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CTheView))

AddDocTernplate ( rn-pDocTemplate )

Cada plantilla describe una relacion del tipo de documento con la vista asociada La definicioacuten de la plantilla para el ambiente que controla los diagramas de secuencias es la siguiente

29

Desarrollo de la herramienta c

m-pTernplateSeqDlag = new CMultiDocTernplate ( IDR-DS-SJCTYPE RUNTIME-CLASS (CSeqDiagDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CSeqDiagView) )

AddDocTernplate( rn-pTernplateSeqDiag )

Esta plantilla hace uso de la clase CCliildFrame que por defecto el ambiente Visual C++ construye y esto es debido a que no se requieren caracteriacutesticas extras en las ventanas de las que proporciona dicha clasc En un caso en el que se requiriera un comportamiento diferente de la vista tendriacutea que crearse una nueva clase con las caracteriacutesticas deseadas

Vista Documento

Vista

I- Vista Documento I [ Tip- F Vista

L Figura 37 Modelo Interfaz de Muacuteltiples Documentos (MDI)

Para integrar otro Ambiente que utilice otro tipo de documento es necesario definir otra plantilla de la misma forma mencionada Debe tomarse en cuenta los siguientes puntos

Es necesario definir el nombre (mqTemplateNOMBRE) El IDR del tipo que se requiere que sea el documento En la primera liacutenea RUNTIME CLASS debe indicar la clase ltCDocumentgt que desea La segunda liacutenea RUNTIME-CLASS soacutelo la cambia a otra clase si requiere de otro manipulador de ventanas de lo contrario deje que ltCChildFramegt se haga cargo

-

30

Desarrollo de la herramienta

En la uacuteltima liacutenea referente a RUNTIME-CLASS se debe indicar la clase ltCViewgt que desea usar Para finalizar se usa la instruccioacuten AddDocTernplate para finalizar la definicioacuten del template (mgTemplateNOMBRE)

325 Recursos Diaacutelogos Mertuacutes y Barras de Herrattriertias

Son varios los recursos con los que se puede contar al crear un proyecto en Microsoft Visual C++ Los diaacutelogos son un recurso disponible que son utilizados para visualizar ingresar yo modificar informacioacuten que se requiera En el Ambiente Visual que se desarrolla son varios los diaacutelogos que se utilizaraacuten y eacutestos se describen a continuacioacuten

El Diaacutelogo ldquoCaracteriacutesticas del Obietordquo (Figura 38) identifica el nombre del Objeto y la descripcioacuten del mismo Este diaacutelogo se muestra cuando se presiona doble clic sobre un objeto del diagrama

I Nombre

Desciipcion

Figura 38 Dialogo Caracteriacutesticas del Objeto

El Diaacutelogo ldquoMensaierdquo (Figura 39) muestra el nombre del mensaje que puede ser modificado ademaacutes se visualizan el Identificador del Mensaje el tipo de Mensaje asiacute tambieacuten el origen y destino del mensaje

31

Desarrollo de la herramienta

Nornbie delMensaje Edit

IDentificador del Mensaje Edil Tipo de Mensaje (Edil

Edit Objeto Origen

Objeto Destino IEdit

i25El A Figura 39 Dialogo Mensaje

El menuacute es otro de los recursos del que se puede disponer para organizar el ambiente que se estaacute creando Para eacuteste caso en particular no se hizo modificaciones al menuacute estaacutendar (Figura 310) que Visual C++ presenta Los cambios significativos son el manejo del tipo de documento para los Diagramas de Secuencias

Archivo Editar Yer VenLana AyGda

Figura 310 Menuacute de los Diagramas de Secuencias (estaacutendar)

Otro importante recurso del que uno se puede valer en Visual C++ es la barra de herramienta personalizada la cuaacutel es construida en el Editor de Recursos Se ha construido una barra (Figura 311) con los elementos graacuteficos de los Diagramas de Secuencia de UML

Figura 311 Barra de Herramientas de los Diagramas de Secuencias

Es recomendable que al utilizar barras de herramienta personalizada se defina en el tamantildeo estaacutendar ya que puede experimentar problemas al momento de ejecutar la aplicacioacuten

Ademaacutes puede usar la propiedad TBBS-CHECKGROUP en una barra de herramientas para establecer que los botones puedan quedar presionados hasta que un botoacuten diferente sea presionado No olvide que la numeracioacuten inicia con cero ( O )

vuriableToolBurSetButtonStyle(OTBBSCHECKGROUP)

32

Desarrollo de la herramienta

Prefijo ID IDC IDD IDP IDR IDS

326 Notacioacuten estaacutendar

Los nombres descriptivos de los recursos se asocian a un valor uacutenico Para una mayor claridad eacutestos nombres mantienen un prefijo que describe el tipo de recurso asociado (vea la Tabla 31) [MIC99]

Tipo de Recurso Comandos de Menuacute Controles y recursos Cuadros de diaacutelogo Cadenas de solicitud para cuadros de mensaje Menuacute principal barras de herramienta tabla aceleradora y el icono Cadenas

IDR IDD IDC ID

200 - 299 3000 - 3999 34000 - 34999

Estos son los rangos de valores establecidos para el proyecto S3C Si se utiliza el coacutedigo fuente y se planea agregar otro proyecto verifisue que no se invadan estos nuacutemeros para evitar problemas

Para facilitar auacuten maacutes los trabajos futuros se ha definido una estructura de carpetas (ver Figura 312) para incluir en cada una las Clases correspondientes a cada tesis en desarrollo

33

Desarrollo de la herramienta

ill ~~ -

-I SCUML classes + U A N T L R + U App + 0 ClassDiagrams + 0 Common + a Java

t $2 SequenceDiagiams

+ WarnierDiagrams

iJ PackageDiagrams

12 StaterChartDiagrams

+

- f Classview I Resourceview 1 FileView ]

~ ~

Figura 312 Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)

327Estructura de datos persistencia y recuperacioacuten

Existe una gran cantidad de tipos de datos estructuras clases y meacutetodos de los que se puede hacer uso para una mejor y maacutes faacutecil obtencioacuten de los resultados A continuacioacuten hago comentarios en tipos de datos y meacutetodos en los que podriacutea tener problemas

CTypedPtrList

AI usar este tipo de dato o alguno relacionado que le permita utilizar el meacutetodo ltCTvrgtedPtrListGetNextgt tenga especial precaucioacuten al usarlo ya que al devolver el valor requerido la variable POSITION usada no se queda apuntando a ese valor en particular salta al inmediato siguiente de la lista

Si se realiza una creacioacuten dinaacutemica con punteros para los elementos de una CTypedPtrList Despueacutes de haberlo agregado a la lista evite el delete para borrar esta Usted deseando liberar la memoria no lo haga ya que eliminara directamente el elemento de la lista

POSITION

Es un valor usado para denotar una posicioacuten de un elemento en una coleccioacuten Pero CUIDADO no se refiere a un iacutendice es una referencia (no consecutiva) de punteros muy diferente a un iacutendice

CString

Auacuten cuando el operador de comparacioacuten == (igual a) es permitido para ser utilizado en las cadenas evite su uso ya que en ocasiones aunque cuando la e

34

Desarrollo de la herramienta

compilacioacuten no indique error alguno en la ejecucioacuten no realizaraacute lo que se necesita Recomiendo que utilice CStringCompare ()

Para eliminar el contenido de un CString utilice CStringEmpty() ya que asignar a la cadena un ldquonrdquo podriacutea causarle problemas

Serializacioacuten

Una forma en que se puede guardar informacioacuten y recuperarla de manera eficaz es mediante la serializacioacuten de objetos La serializacioacuten es un proceso que permite escribir un objeto en un archivo y tambieacuten leerlo

Para que la serializacioacuten se lleve a cabo son necesarios tres objetos un objeto de tipo ltCFilegt que represente el archivo un objeto de tipo ltCArchivegt que ofrece el entorno para la serializacioacuten y la clase del objeto a ser serializado debe ser heredada de ltCObjectgt y sobrescribir el meacutetodo ltSerializegt para que se encuentre de tal forma en que pueda ser serializado (vea la Figura 313)

Objeto a ser serializado 1

1 CArchive

[f --=I- ---7 Archivoexi

u Figura 313 Serializacioacuten

328Patrones de disentildeo utilizados

Se ha planteado la definicioacuten de una arquitectura de clases utilizando patrones de disentildeo debido a que algunos de ellos hacen maacutes faacutecil la extensioacuten de la funcionalidad y mantenimiento

35

Desarrollo de la herramienta

El patroacuten Composite es utilizado para crear de manera uniforme el diagrama sobre el que se trabaja (ver Figura 34) manteniendo una jerarquiacutea de clases uniforme las clases maacutes bajas en la jerarquiacutea definen primitivas de objetos graacuteficos

Se aplica el patroacuten de disentildeo Iterator para hacer recorridos en listas de objetos para realizar diversas operaciones Otro patroacuten de disentildeo del que se hace uso es el Visilor (ver Figura 35)

Para otras actividades que se realizan podriacutea pensarse en que se deberiacutean aplicar otros patrones pero se han evitado algunos (como el patroacuten de disentildeo Builder) para evitar incrementar la complejidad en la arquitectura ya que ai mantener el modelo de la MFC de documentovista la funcionalidad del patroacuten de disentildeo Builder es faacutecilmente reemplazado si se hiciera Uso de eacuteste se aumentariacutea la complejidad excesivamente (nos llevariacutea a perdemos en ocasiones en el paso de mensajes entre clases) dantildeando la facilidad de la arquitectura

33 Diagrama de secuencias

Un Diagrama de Secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten escenario Oacute comportamiento se usan para definir el curso loacutegico de accioacuten de un posible camino a seguir en la resolucioacuten de un problema Seguacuten John Daniels [DANO2] ldquoel principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildean las interacciones de los objetosrdquo

Los Diagramas de Secuencias se utilizan en el modelado de la implementacioacuten de sistemas de software ademaacutes son aplicables en el modelado de requisitos para establecer las comunicaciones existentes entre actores yo clases del sistema Con eacutestos diagramas se logran hacer descripciones de los escenarios y los comportamientos del sistema Con los Diagramas de Secuencias es posible definir protocolos de comunicacioacuten con paso de mensajes ya que dan esa flexibilidad que se requiere Ademaacutes los Diagramas de Secuencias contienen informacioacuten suficiente para que puedan ser transformados a los diagramas de colaboracioacuten [RUM Ol][BOO Oil

331Ciclo de vida del software

Considerando cualquier modelo de ciclo de vida del software (en la figura 314 se muestra el Modelo de cascada) el aacutembito directo de eacuteste Ambiente Visual es en el disentildeo aunque tiene sus vertientes en la codificacioacuten y mantenimiento

36

Desarrollo de la herramienta

Diseno

Codificacibn

I I I I Mantenimiento I

igura 314 Modelo de cascada del ciclo de vida del software

34 Elementos atoacutemicos de la Gramaacutetica

Definicioacuten de los elementos atoacutemicos del lenguaje y su contenido

1 Actor- Representa roles de entidad externos al sistema con el que interactuacutea directamente Los actores pueden ser humanos dispositivos u otros sistemas

2 ClaseObjeto- Determina una Clase u Objeto participante en la interaccioacuten

3 Mensaje-Es una comunicacioacuten entre objetos que contiene informacioacuten Eacuteste se representa con la finalidad a que una accioacuten sea llevada a cabo

4 Mensaje con tiempo- Tiene la misma finalidad que el mensaje la diferencia es que con eacutel se representa un atributo de tiempo

5 Mensaje asiacutencrono Es un mensaje que ocurre en el tiempo de manera independiente a otros mensajes

6 Mensaje de destruccioacuten de objeto- Es un mensaje cuya finalidad es indicar la destruccioacuten del objeto destino

7 Mensaje de creacioacuten de objeto- Es un mensaje que indica la creacioacuten de un objeto

8 Llamada al mismo objeto (Recursividad)- Es usado para modelar llamadas recursivas en el que una operacioacuten es invocada por el mismo objeto

37

Desarrollo de la herramienta

9 Destruccioacuten del objeto (AutodestrucciOacuten)- Puede o no modelarse es representada con una X al final de la liacutenea de vida del objeto

Elementos aulomaacuteticos

1 Liacutenea de Vida- Representa la vida del objeto durante la interaccioacuten

2 Activacioacuten- Muestra el periacuteodo de tiempo en el cual el objeto alguna operacioacuten

341RepresentaciOacuten visual

Representacioacuten visual de los elementos atoacutemicos del lenguaje

Actor

_- A

Mensaje

Mensaje de Creacioacuten de

Objeto

ClaseObjeto

I

Mensaje de retorno

Mensaje de Destruccioacuten de

Objeto

abla 32 Element(

Activacioacuten

Mensaje con tiempo

Autodestruccioacuten

x

atoacutemicos del lengi

taacute realizz

Texto ===I (letra)+ (letra I

numero) letra= AZ I az numero = 09

I

Recursividad ~

I

i j e

io

38

u

Comentario

iexcl

Conector de Comentario

35 Gramaacutetica desarrollada

La gramaacutetica que se propone es una gramaacutetica visual del tipo relacional Una gramaacutetica relacional pertenece a las gramaacuteticas libres de contexto es una 6-iupla G (N C S R Attr P) donde

N es un conjunto finito de siacutembolos no terminales C es un conjunto de siacutembolos terminales S es un siacutembolo distinguido en N llamado siacutembolo inicial R es un conjunto finito de siacutembolos de relacioacuten Attr es un conjunto finito de siacutembolos de atributos P es un conjunto de producciones

Entonces definiendo nuestra gramaacutetica G (N C S R Attr P)

N = Diagrama GrupoClaseObjeto

S = Diagrama

R = mensaje mensajeTiempo mensajeRetomo mensajeAsincrono mensajecrea mensajeDestruye autodestruccioacuten recursividad

R

Attr = entrada salida entradacrea

39

Desarrollo de la herramienta

Definiendo la posicioacuten de los atributos en los elementos visuales

entradacrea ObetaClase

entrada

salida

P =

Diagrama I GrupoClaseObjeto (mensaje (mensajeRetorno

(salida 1) (entrada 2) ) (salida 2) (entrada 1) )

- Diagrama 0 GrupoClaseObjeto

(mensaje (mensaje (mensajeRetomo (mensajeRetomo (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entradacrea 2) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 1) ) (salida 1) (entrada 1) )

entrada

salida

40

Desarrollo de la herramienta

s

-

GrupoClaseObjeto - 1 1 I 2 (mensaje (mensaje (mensajeRetorno (mensajeRetorno (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entradacrea 2) ) (salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 1) ) (salida I ) (entrada I ) )

1 En las gramaacuteticas relacionales una produccioacuten estaacute acompantildeada de las posibles

relaciones que puedan generarse En la primera produccioacuten Diagrama produce a un Actor seguida de un GrupoClaseObjeto el Actor inicia la interaccioacuten con un mensaje y recibe el mensaje de retorno al finalizar la interaccioacuten La segunda y tercera produccioacuten son similares debido a que un GrupoClaseObjeto contiene dos ClaseObjeto que se relacionan de la misma forma

Existe un elemento de la gramaacutetica llamado Attr (Atributo) el cual define la parte de los elementos visuales donde se establecen las relaciones Se han determinado dos atributos (entrada y salida) que para nuestro propoacutesito estaraacuten establecidos en la liacutenea de vida de cada elemento visual (Actor y ClaseObjeto)

Los Comentarios y la Activacioacuten no se consideran en la gramaacutetica Los comentarios son libres de incluirse y relacionarse con cualquier elemento y relacioacuten mencionada anteriormente y la activacioacuten existe siempre que se presente un mensaje (o podriacutea omitirse) Estas consideraciones se realizaron para hacer auacuten maacutes faacutecil la gramaacutetica ya que si se trata de realizar un sistema las restricciones de estos elementos pueden mantenerse en el lenguaje de programacioacuten en el que se desarrolle el sistema

36

Precondiciones

El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias

1 El diagrama de Clases debe existir y estar completo 2 Debe existir un archivo con un diagrama de Warnier por cada diagrama de Clases y

con el mismo nombre de archivo (excepto la extensioacuten del archivo) 3 En el uacutenico diagrama de Warnier de cada Clase se deben modelar todos los meacutetodos

de la Clase 4 No realizar declaraciones de meacutetodos

41

Desarrollo de la herramienta

5 Debe existir un meacutetodo lsquomain()rsquo en el diagrama de Clases

Restricciones

Los meacutetodos deben mantener nombres distintos en las diferentes Clases

Metodologiacutea para la obtencioacuten automaacutetica de los Diagramas de Secuencias

1 Seleccionar el diagrama de Clases

2 Se construye una lista con los nombres de las Clases y los Meacutetodos

3 Se verifica si exista el meacutetodo lsquomain()rsquo en alguna Clase Se busca la existencia de una uacutenica Clase

a La Clase que contenga lsquomain()rsquo se va al inicio de la lista de Clases

b Si no existe lsquomain()rsquo SE TERMINA EL PROCESO

4 Se verifica la existencia de los archivos que contienen el Disentildeo Detallado de los meacutetodos en Wamier para cada una de las Clases si alguno falta SE TERMINA EL PROCESO

5 Se procesa cada uno de los modelos del Disentildeo Detallado de los Meacutetodos generando una lista de secuencias de llamadas por cada uno de los meacutetodos

6 Se verifica que cada llamada corresponda a alguacuten meacutetodo existente (del diagrama de Clases) De no existir ese meacutetodo la llamada entra a una estructura que

7 Se crea una lista de secuencia

a Se inicia con lsquomain()rsquo b Se recorre cada una de las llamadas de los meacutetodos c Se considera invaacutelido el caso de que un meacutetodo intente una llamada

recursiva al meacutetodo lsquomain()rsquo

8 Se muestra un diaacutelogo de resultados en el que se indican las llamadas que no se encnotraron definidas y que pueden ser Llamada a libreriacutea oacute Llamada Erroacutenea

42

Capiacutetulo 4

Prue6as y su6taaacuteos

En eacuteste capiacutetulo se da a conocer el detalle de las pruebas y de los resultados obtenidos Se describen los casos de prueba con los que se realizoacute la evaluacioacuten del sistema asiacute tambieacuten se presentan comentarios acerca de los resultados obtenidos

Pruebas y Resultados

41 Recursos teacutecnicos utilizados

Para llevar a cabo las pruebas al sistema S3C se utilizaron los siguientes equipos de Coacutemputo

Computadora de escritorio

256MB RAM Disco Duro 80G Monitor 17rdquo SAMSUNG

AMD Athlon XP 1600+ I4Ghz

Computadora de escritorio Intel Pentium 4 - 128MB RAM Disco Duro 40G Monitor 15rdquo i -

42 Descripcioacuten del plan de pruebas

Las pruebas establecen el Uacuteltimo paso desde donde es posible evaluar la calidad y descubrir los errores Las pruebas y la validacioacuten del software se utilizan para comprobar que el sistema cumple con las expectativas del usuario

En esta seccioacuten se describen los casos de prueba que se realizaron al prototipo de S3C en conjunto a la suite cenidet-UML Para cada uno de los casos se presenta el objetivo el procedimiento que se siguioacute para la prueba y se muestran los resultados obtenidos - _

Las pruebas a realizar son los siguientes

Caso 1 Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Caso 2 Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Wamier

Caso3 Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Wamier

Caso4 Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo 5

44

Pruebas y Resultados

43 Resultados

431 Caso 1

5 Y

IZ =

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoSirdquo 4 Seleccionar el archivo ldquoVENTASrdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 41 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

s3c iuevo Proyecto SCUM1

Diagrama de clases

lvendedor I L

3

salida

venta prod

4 venia-oferta vcntaprod =

salida 6

Figura 41 Resultado del caso de prueba 1

45

Pruebas y Resultados

432 Caso 2

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Warnier (almacenwar cajawar vendedorwar) que ya cxisten (del caso de prueba I )

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoNordquo 4 Agregar las siguientes Clases con los respectivos meacutetodos y atributos

a Claseldquovendedorrdquo Meacutetodos ldquoventa mainrdquo b Claseldquoalmacenrdquo Meacutetodos ldquoentrada salidardquo c Claseldquocajardquo Meacutetodos ldquoventagrodrdquo

5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 42 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

Diagrama de daseo lisgrama dcsccucncis

MOIDOC Anivo

venta prod

salida

1 Ycrdquo1a 2

I 4 vcrdquolD~o1cn venta prod gt

salida 6 i Figura 42 Resultado del caso de prueba 2

46

Pruebas y Resultados

r

433 Caso 3

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Warnier

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 43 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

5

Error al tratar de abrir el archivo A bZwar

Aceptar i

Faltan Archivos de Disentildeos Detallados de Meacutetodos 1 1 A No se puede crear el diagrama de secuencias

Figura 43 Resultado del caso de prueba 3

47

Pruebas y Resultados

434 Caso 4

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 44 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

lsquo I

~ _ i i _ l _ Repaado ~~ ~ ~ 6~ ampA Figura 44 Resultado del caso de prueba 4

48

Pruebas y Resultados

PRUEBA DESCNPCION CASO 1 Mostrar la funcionalidad del

Sistema S3C a partir de un

44 Anaacutelisis de Resultados

RESULTADOS Se comproboacute la correcta funcionalidad del Sistema S3C a partir de un diagrama

CASO 3

CASO4

I diagrama de Clases cxistcnte I de Clases existente CASO 2 I Mostrar la funcionalidad del I Sc comproboacute la corrccta funcionalidad

Sistema S3C a partir de un del Sistema S3C a partir de un diagrama diagrama de Clases que se de Clases que se construye al momento construye al momento Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el Secuencias si falta alguno de los diagrama de Secuencia si falta alguno diagramas de Warnier Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el secuencias si hace falta el meacutetodo diagrama de Secuencias al faltar el ldquomain ()rdquo meacutetodo ldquomain()rdquo

de los diagramas de Warnier

Los resultados obtenidos de cada uno de los casos establecidos demuestran que se validoacute la funcionalidad del prototipo con los requisitos definidos en el alcance de este proyecto

a lt

49

Conclusiones y Tru6ajos Futuros

Aquiacute se dan a conocer las conclusiones y se describen los posibles trabajos futuros para la continuacioacuten de eacuteste proyecto

F

51 Conclusiones

Conclusiones y trabajos futuros

Se ha creado un Ambiente Visual que permite obtener de forma automaacutetica los Diagramas de Secuencias en base a los diagramas de Clases y al disentildeo detallado de los meacutetodos descritos con diagramas de Warnier cumpliendo con los objetivos planteados para este trabajo

La tesis aporta principalmente La generacioacuten automaacutetica de los diagramas de secuencias y la eliminacioacuten de inconsistencias al mantener una validacioacuten directa de los diagramas de clases y los diagramas de Warnier que son utilizados

Esta validacioacuten es lograda a traveacutes del uso de la gramaacutetica visual relaciona1 que se ha definido (veacutease el capiacutetulo 3) Esta gramaacutetica visual establece reglas para la correcta construccioacuten de los diagramas de secuencias

P De esta manera se establece que la hipoacutetesis ldquoEs posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodosrdquo Es verdadera

52 Trabajos Futuros

Un Diagrama de Secuencias puede convertirse en un Diagrama de Colaboracioacuten por lo tanto un trabajo futuro es la construccioacuten automaacutetica de un Diagrama de Colaboracioacuten a partir de uno de Secuencias existente

Es posible calcular la meacutetrica de acoplamiento al tener un Diagrama de Secuencias construido

La Ingenieriacutea directa de un Diagrama de Secuencias estableciendo la validacioacuten en la construccioacuten de todos los elementos visuales que UML define

La propagacioacuten de las modificaciones de un Diagrama de Secuencias a los Diagramas de Clases y los Diagramas de Warnier

La modificacioacuten del coacutedigo fuente mediante los cambios establecidos en un Diagrama de Secuencias

51

[ALC03]

[BLA98]

[B0099]

[BOOOi]

[BR097]

[CHA90]

[DAN02]

[GLA02]

[HAC98]

[HER03]

4

Alcate1 Computer Associates International inc Electronic Data Systems Corporation Hewlett-Packard Company IBM Corporation I-Logix IntelliCorp Kabira Technologies Kennedy Carter Microsoft Corporation Object Management Group Oracle Corporation Project Technology Ptech Inc Rational Software Corporation Reich Technologies Softeam Taskon A S Telelogic Unisys Corporation ldquoOMG Unified Modeling Language Specificationrdquo Version 15 Unified Modeling Language 2003

Blaha Michael Rumbaugh James Premerlani William Eddy Frederick Lorensen William ldquoObject-oriented modeling and designrdquo Prentice Hall 484 Paacuteginas ISBN 0-13-629841-9 QA-769-03S-B53-19981998

Booch Grady Rumbaugh James Jacobson Ivar ldquoEl lenguaje unificado de modeladordquo Addison Wesley 432 Paacuteginas ISBN 84-7829-028-1 1999

Booch Grady Rumbaugh James Jacobson Ivar ldquoThe Unified Modeling Language User Guiderdquo Addison Wesley 2001

Brown David ldquoAn introduction to object-oriented analysis objects in plain Englishrdquo John Whiley amp Sons Inc 700 Paginas ISBN 0-471-1 1028-0 QA-769-035-B76-1997 1997

Chang Shi-Kuo ldquoVisual Languages and visual programmingrdquo Plenum Press 340 Paacuteginas ISBN 0-306-43428-8 QA-7665-V57-1990 1990

Daniels John ldquoModeling with a sense of purposerdquo Design - IEEE Software JanuaryEebmary 2002

Glasgow Universidad Reino Unido ldquoA UML Editor in Javardquo (lthttplstudentsdcsglaacuWstudentspainjfproject-reportproject-re port-htmV4thYearReporthtrnlgt 2002)

T Hackos JoAnn C Redish Janice ldquoUser and Task Analysis for Interface Designrdquo Wiley Computer Publishing 488 Paacuteginas ISBN QA-769-U83- H33-1998 1998

Hemaacutendez Velaacutezquez M ldquoIngenieriacutea inversa de coacutedigo fuente en C++ para la obtencioacuten de su disentildeordquo Tesis AT-379 (03-0334) 2003

Conceptos generales

[HIX93]

[JAC93]

[JAC99]

[JOY98]

[LAR97]

[MAR]

[MIC99]

[MIC02]

[MOU98]

Hix Deborah Hartson H Rex ldquoDeveloping user interfacesrdquo 381 Paacuteginas ISBN 0-471-57813-4 QA-769-U83-H59-1993 1993

Jacobson Ivar Christerson Magnus Jonsson Patrik Overgaard Gunnar ldquoObject oriented software engineeringrdquo Addison Wesley ISBN 0-20 1 - 54435-0 QA-7676-D47-J63-1993 1993

Jacobson Ivar Booch Grady Rumbaugh James ldquoEl proceso unificado de desarrollo de softwarerdquo Addison Wesley 438 Paacuteginas ISBN 84-7829-036- 2 1999

Joyanes Aguilar Luis ldquoProgramacioacuten orientada a objetosrdquo McGruw Hill ISBN 84-481-0590-7 1998

Larman Craig ldquoAplying UML and Patternsrdquo Prentice Hull 507 Paacuteginas ISBN 0-13-748880-7 QA-769-035-L37-1997 1997

Marriot Kim Meyer Bemd ldquoVisual Language Theoryrdquo Springer 381 Paacuteginas P-935-V567-1998 1998

Microsoft ldquoMicrosoft Visual C++ 6 manual del programadorrdquo McGraw Hill ISBN 84-481-2127-9 QA-7673-Cl53-23718-1999 1999

Microsoft ldquoVisiordquo (lthttpwwwmicrosoftcomofficevisiogt 2002)

B Mourao Luis X ldquoUniversal Modeling Language Part 11 UML Notation - Case Sequence and Collaboration Diagramsrdquo Lan Times Magazine (~httpwwwlantimescomltpartsdiscussdiscuss6Ohtm~) 1998

No Magic ldquoMagicDrawrdquo (lthttpwwwmagicdrawcomgt 2002)

Object Insight ldquoJvisionrdquo (lthttpwwwobject-insightcomgt 2002)

Rational Software Microsoft I Hewlett-Packard Oracle Sterling Software MCI Systemhouse Unisys ICON Computing IntelliCorp i-Logix IBM ObjectTime Platinum Technology Ptech Taskon Reich Technologies Sofieam ldquoUML Summaryrdquo Version 11 Unified Modeling Language 1997

Rational ldquoRational Roserdquo (lthttpwwwrationalcomproductosrosegt 2002)

Rikki Kirzner ldquoAnalysis Modeling and Design Tools Market Forecast and Analysis 2001-2005rdquo Bulletin Published Under Services Application Design and Construction Tools Application Development and Deployment Strategies Documento Nuacutemero 24809 Junio 2001

53

Conceptos generales

[RIM92] Rimrner Steve ldquoGraphical user interface programmingrdquo 423 Paacuteginas

1992

Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language reference manualrdquo Addison Wesley 550 Paacuteginas ISBN 0-201-

ISBN 0-8306-2475-9 ISBN 0-8306-2472-4 (pbk) QA-769-083-R55G

[RUM99]

30998-X QA-7676-D47-R85-1999 1999

[RUM299] Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language user guiderdquo Addisoiz Wesley 482 Paacuteginas ISBN 0-201 -57 168-4 QA-7676-D47-B66-1999 1999

[SMA02] SmartDraw ldquoSmartDrawrdquo (lthttpwwwsmartdrawcomgt 2002)

[SHU88] 9 - Shu Nun C ldquoVisual Programmingrdquo Van Nostrand Reinhold ISBN 0-422- 28014-9 ISBN 0-422-01 164-4 QA-7665-S55 1988

[THI90] Thimbleby Harold ldquoUser Interface Designrdquo Acm press 470 Paacuteginas ISBN 0-201 -41 61 8-2 QA-769U83-T772~- 1990 1990

[WENO2] Wences Diaz MF ldquoModelo de Ingenieriacutea Inversa para la obtencioacuten de disentildeo detallado basado en LEVISSrdquo Tesis (02-0014) 2002

54

Anexo A

Conampuracioacuten de Microsoft Vkua[C++ 6 O

Este anexo indica las configuraciones que se utilizaron para la compilacioacuten de SCUML y s3c

Configuracioacuten de Microsoft Visual c++ 60

Debido a la integracioacuten de los proyectos de InverSOODA e InverDDVi con S3C se cumplioacute con los requisitos previos de ambos proyectos

El compilador usado en el proyecto fue el Microsoft Visual C++ 60

Para el cumplimiento con la funcionalidad de InverSOODA se instaloacute el ANTLR la versioacuten 271 Se descargoacute del sitio l i l l ~ ~ ~ ~ ~ ~ t l ~ l ~ - ~ t - ~ la versioacuten mencionada en un archivo comprimido (en formato zip) Se colocoacute el paquete descomprimido en el directorio ldquoDIANTLR-271 I rdquo

Recomiendo ampliamente que el directorio principal de ANTLR se copie en el directorio raiacutez de cualquier unidad de disco debido a que experimenteacute problemas de compilacioacuten cuando ANTLR no se encontraba en el directorio raiacutez

Io015

Source Browser AlttF12 I u c Ersquo V I

Visual Component Mgnager

- - ~ ~ ~ ~~

P2 Registrar control

A Contenedor de prueba de controles ActiveX

A Usor de objetos OLE y COM

Buacutesqueda de errores

A Y++ MFC Iracer

Customize options

~ - q- ~ Macro

Eecord Quick Macro Cbl+ShiR+R Pay Quick Macro Ctrl+ShiR+P

En el menuacute Tools (Herramientas) seleccione el sub-menuacute Options ltopcionesgt

56

Configuracioacuten de Microsoft Visual C++ 60

En la siguiente ventana de diaacutelogo debe agregar la direccioacuten en donde se encuentra el ANTLR

Agregar la ruta del directorio de ANTLR hasta el subdirectorio

libcpp

Editor I Tabs I Debug I Compatibility 1 Build Dneclolies I a I Chow directories for - Platfolm -

- Directories I x ) 4 jWin32 -] llnclude files

m cancd I

57

Configuracioacuten de Microsoft Visual C t+ 60

Se ha creado una libreriacutea (anrlrliblib) de ANTLR la cual ya estaacute situada en el directorio del proyecto SCUML (ISCUML) y no debe ser movida o eliminada

I

Geneial 1 Debug I CC++ Link I Category

Output file name bebugSCUMLexe

Objectljibrary modules 4 anllrliblib

li Generate debug lnfo r Ignore all defaull lbaries D ~ i n k j n ~ ~ ~ t a n ~ r ~ e n e r ~ ~ ~ mapfile

r Enable psafilrng

Proiec1 Ootionn

pq Cancel 1 Libreriacutea de ANTLR que debe existir 1 I para que se compile correctamente

58

Anexo B

~ u iacute aacute raacutepida de uso deC Sistema S3C

5 Este anexo indica de forma raacutepida la manera de utilizar S3C para crear un diagrama de secuencias de forma automaacutetica

Guiacutea Raacutepida de uso del Sistema S3C i

Para indicar la creacioacuten de un diagrama de secuencias en forma automaacutetica se debe ir a la barra del costado izquierdo y presionar ldquoNuevo Proyecto SCUMLrdquo

I s3c I ~ Nuevo Proyecto SCUML ~ _ _ - I Diagrama de clases ~ Diagrama de secuencias 1 MDI DOC Activo

-

Apareceraacute un documento llamado ldquoSCUMLV en donde el simbolo corresponde a un numero consecutivo iniciando desde 1 (uno)

$ e Despueacutes se presiona ldquoDiagrama de clasesrdquo Habraacute que para indicarle al sistema si se requiere abrir un diagrama de clases existente o realizar uno nuevo

i

iquestAbrir un documento existente

No Cardquo~ear

AI presionar ldquoSirdquo se debe indicar cual es el archivo del diagrama de Clases en el cuadro de diaacutelogo siguiente

~~ - 11dMis documentos rsquo 2 M i P C i lsquo h s sitios de red

I

AI presionar ldquoNordquo en ldquoAbrir un documento existenterdquo se nos mostraraacute un documento vacio para crear un diagrama de clases

60

Guiacutea Raacutepida de uso del Sistema S3C

Para ambas opciones se requiere que los diagramas de Wamier ya se encuentren construidos Y para continuar el proccso se selecciona el documento ldquoSCUMLVrsquo creado al inicio y despueacutes presionar el botoacuten nombrado ldquoDiagrama de secuenciasrdquo localizado en la barra de hcrraiiiicntas del costado izquierdo

Ha iniciado el proceso de construccioacuten del diagrama de secuencias Si no existen errores al terminar el proceso se le mostraraacute un cuadro de diaacutelogo llamado ldquoResultadosrdquo en donde le mostraraacute las llamadas de las que no localizoacute su definicioacuten

- - -

Cancel 1 D e las siguientes llamadas es posible que esten mal escritas o peitenezcan a la libreiia del Lenguaie Verifique ya que no se encontraron sus definiciones

A continuacioacuten se mencionan los posibles errores que finalizan el proceso de la creacioacuten automaacutetica de los diagramas de secuencias en S3C

Cuando no exista un meacutetodo lsquomainrsquo definido en el diagrama de clases

No se encontro el meacutetodo lsquomain()rsquo que inicie la secuencia I A No se puede crear el diagrama de secuencias

p==amp=q

61

Guia Raacutepida de uso del Sistema S3C

Cuando se definan niultiples metodos lsquoinainrsquo en el diagrama de clases

Multiples meacutetodos lsquomainOlsquo Imposible decidir el inicio de secuencia

Aceptar i

Si un meacutetodo definido en Wamier realiza una llamada a lsquomainrsquo se cancelara el proceso

Llamada NO VALIDA al meacutetodo principal main

(iAcp-j(

4 i

CI Y rdquoldquoldquoI i 11 1-T

IZNTRO Gt INFORMACION

62

  • Tabla de Contenido
  • Listado de Figuras
  • Listado de Tablas
  • Notacioacuten
  • Introduccioacuten
  • Capitulo 1 Conceptos Generales
    • 11 Antecedentes
    • 12 Trabajos relacionados
      • 121 Tabla comparativa
        • 13 Definicioacuten del problema
        • 14 Objetivo de la Tesis
          • Objetivos especiacuteficos de la tesis
            • 15 Hipoacutetesis de investigacioacuten
            • 16 Alcances y limitaciones del trabajo de tesis
              • Capitulo 2 Marco Teoacuterico
                • 21 Modelado de sistemas de software
                • 22 Interfaz de usuario (Mecanismos de interaccioacuten)
                • 23 Lenguajes Visuales
                • 24 Programacioacuten orientada a objetos
                • 25 Lenguaje de Modelado Unificado (UML)
                  • Desarrollo de la herramienta
                    • 31 Disentildeo de la Arquitectura
                      • 311 Requisitos (Diagrama de Casos de uso)
                        • 312Modelo Conceptual
                        • 313Diagramas de clases
                        • 32 Elementos de la arquitectura
                          • 321 Microsoft Foundation Class (MFC)
                            • 322Arquitectura Documento Vista
                            • 323Integrando Ambientes en Visual c++
                              • 324 Interfaz de Muacuteltiples Documentos (MDI)
                                • 325Recursos Diaacutelogos Menus y Barras de Herramientas
                                  • 326 Notacioacuten estaacutendar
                                  • 327 Estructura de datos persistencia y recuperacioacuten
                                    • 328Patrones de disentildeo utilizados
                                      • 33 Diagrama de secuencias
                                        • 331Ciclo de vida del software
                                          • 34 Elementos atoacutemicos de la Gramaacutetica
                                            • 341 Representacioacuten visual
                                              • 35 Gramaacutetica desarrollada
                                              • 36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias
                                                  • Capitulo 4 Pruebas y Resultados
                                                    • 41 Recursos teacutecnicos utilizados
                                                    • 42 Descripcioacuten del plan de pruebas
                                                    • 43 Resultados
                                                      • 431 Caso
                                                      • 432 Caso2
                                                      • 433 Caso
                                                          • Conclusiones y trabajos futuros
                                                            • Trabajos futuros
                                                            • Referencias
                                                            • Anexo A Configuracioacuten de Microsoft Visual C+t
                                                              • Figura 11 - Arquitectura de la suite cenidet-UML
                                                              • Figura 21 -Programacioacuten Visual
                                                              • Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de
                                                              • Figura 32 -Diagrama de Casos de Uso para el S3C
                                                              • Figura 33 -Modelo Conceptual
                                                              • Figura 34 - Diagrama de Clases -Control del Diagrama -
                                                              • Figura 35 - Diagrama de Clases - Patroacuten Visitor -
                                                              • Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento
                                                              • Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)
                                                              • Figura 38 -Dialogo Caracteriacutesticas del Objeto
                                                              • Figura 39 -Dialogo Mensaje
                                                              • Figura 3 IO - Menuacute de los Diagramas de Secuencias (estaacutendar)
                                                              • Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias
                                                              • Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)
                                                              • Figura 313 - Serializacioacuten
                                                              • Figura 314 -Modelo de cascada del ciclo de vida del software
                                                              • Figura 41 - Resultado del caso de prueba
                                                              • Figura 42 -Resultado del caso de prueba
                                                              • Figura 43 -Resultado del caso de prueba
                                                              • Figura 44 -Resultado del caso de prueba
                                                              • Tabla 11 - Tabla comparativa
                                                              • Tabla 31 -Prefijos estaacutendar de identificadores
                                                              • Tabla 32 -Elementos atoacutemicos del lenguaje
                                                              • Tabla 41 - Resumen de los resultados de las pruebas realizadas

Marco teoacuterico

o pantallas para aplicaciones de software en computadoras Personales sistemas operativos como Windows OS2 DOS Macintosh U n b Y Otros

0 Paacuteginas de un sitio WEB 0 Sistemas de ayuda y manuales en-liacutenea 0 Tutoriales incrustados y otros tipos de soporte de funcionamiento O Esquemas de formas y otros documentos

una interfaz es el medio con el cual los usuarios interactuacutean con el producto 0

sistema para lograr SUS objetivos

Interfaz Usable

Para que una interfaz sea usable debe ser transparente y darles a los usuarios la capacidad de lograr cumplir sus metas de forma efectiva y eficiente

Los beneficios presentados en el uso de las interfaces de usuario [TH190] Disfrutar el sistema El usuario disfruta trabajar con un sistema que cuenta con una interfaz bien disentildeada y que le da la funcionalidad y acceso a los recursos de una manera clara y sencilla Proporciona nuevas habilidades Elimina al usuario concentrarse en acciones que la propia interfaz y el sistema hacen dando como resultado que el usuario solo se concentre en lo importante del trabajo Delegacioacuten de tareas La interfaz de usuario permite al usuario no conocer los detalles de la tarea esto es la computadora atiende los detalles de las tareas mientras que el usuario se concentra en asuntos de maacutes alto nivel Seguridad El usuario no necesita estar en lugarespeligrosos para hacer su trabajo

Se da la mayor posibilidad para que el usuario tenga acceso al conocimiento utilizando un sistema interactivo Haciendo las cosas a la primera Las tareas se ejecutan en un orden correcto definido lo que da como resultado un trabajo bien terminado sin necesidad de repetir evitando asiacute altos costos Computando LOS usuarios pueden calcular datos sin necesidad de conocer el proceso para obtener los resultados

Desarrollo

El disentildeo de interfaz es un negocio bastante dificil Eacuteste combina dos complicadas disciplinas psicologiacutea y ciencias de la computacioacuten Estas disciplinas tienen un fondo cultural muy diferente la psicologiacutea atiende a la gente (comprensioacuten y entendimiento) las ciencias computacionales a las maacutequinas (matemaacuteticas y precisioacuten) El disentildeo de las buenas interfaces requiere que estas dos perspectivas esteacuten unidas [THi90]

Hackos dice que las interfaces dan simplicidad y elegancia al trabajo necesario y a la vida e los usuarios Si no es obvio al usuario pero es raacutepida para aprender [HAC98] ademaacutes define caracteriacutesticas comunes de las interfaces usables

o Hacen que el flujo de trabajo sea familiar o confortable o Soportan el estilo de aprendizaje de los usuarios

12

Marco teoacuterico

Visualizacioacuten de Entrenamiento visual Para controlar Soportar interaccioncs Programar con informacioacuten visual visuales expresiones visuales

o Compatibles con los ambientes de trabajo de los usuarios o Se extienden sobre un concepto de disentildeo que es familiar al usuario o Tienen consistencia de presentacioacuten que los hace parecer maacutes confiable y faacuteciles de

aprender o Usan lenguaje y figuras familiares al usuario o faacuteciles de aprender

Datos o informacioacuten acerca de datos

23 Lenguajes Visuales

Los lenguajes visuales son un nuevo paradigma para expresar los sistemas computacionales Ellos ofrecen la posibilidad de manipular directamente los objetos Un lenguaje visual consiste de sentencias visuales Para lenguajes visuales basados en iacuteconos cada sentencia visual es un arreglo espacial de objetos O iacuteconos graacuteficos [CHA90]

Un lenguaje visual es concebido como una coleccioacuten de figuras obtenidas por un arreglo graacutefico de objetos en dos o maacutes dimensiones Los lenguajes visuales pueden ser modelados sintaacutecticamente a traveacutes de un vocabulario un conjunto de relaciones usadas para componer las figuras y un conjunto de reglas describiendo las figuras pertenecientes al lenguaje Los objetos graacuteficos de un vocabulario de un lenguaje visual se caracterizan por contar con un conjunto de atributos Los atributos de un objeto graacutefico pueden ser atributos graacuteficos atributos sintaacutecticos y atributos semaacutenticos [MAR98]

Un lenguaje de programacioacuten visual puede ser informalmente definido como un lenguaje el cual usa algunas representaciones visuales [SHV88]

Programa ylo Disentildeo de Lenguajes de programacioacuten visual ejecucioacuten software Diagramas iconos Formas

Programacioacuten Visual [SHU88]

Gramaacuteticas para la especificacioacuten de lenguajes visuales [MAR98]

a) Gramaacuteticas texfuales generalizadas Este tipo de gramaacutetica provee una adaptacioacuten apropiada de la concatenacioacuten de siacutembolos para dos dimensiones Su principal ventaja es que conservan los elementos teoacutericos de las gramaacuteticas textuales y los eficientes algoritmos de anaacutelisis de eacutestos uacuteltimos Su principal desventaja es que eacutestas gramaacuteticas no son tan poderosas y soacutelo pueden especificar clases restringidas de lenguajes visuales

13

Marco teorico

b) Meacutetodos basados en gramaacuteticas de grafos Un ejemplo de este tiPo de gramaacuteticas son las gramaacuteticas de red Las oraciones generadas con gramaacuteticas de red son grafos dirigidos con siacutembolos en los nodos Estos grafos son llamados redes Una produccioacuten de eacuteste tipo de gramaacuteticas es de la siguiente forma

a - t p E

donde a y p son redes y E es una forma de conectar a p cuando a es conectada a otra red anfitriona

La mayor desventaja es que las gramaacuteticas de red no han probado ser totalmente uacutetiles para la especificacioacuten de gramaacuteticas arbitrarias por la complejidad para rescribir grafos y al hecho de que no todo lenguaje visual estaacute compuesto exclusivamente por grafos

C) Gramaacuteticas de multiconjuntos de atributos En estas gramaacuteticas las producciones rescriben conjuntos o multiconjuntos de siacutembolos que tienen atributos con informacioacuten sobre geometriacutea o semaacutentica La reescritura se controla con restricciones sobre los atributos de los siacutembolos en el lado derecho de las producciones

Un ejemplo de eacutestas gramaacuteticas es la Gramaacutetica Coordinada que especifica notacioacuten matemaacutetica de dos dimensiones En esencia las producciones en una gramaacutetica coordinada n-coordinada libre del contexto tienen la siguiente forma

A -t a donde C F

Todos los siacutembolos de eacuteste tipo de gramaacutetica tienen n atributos geomeacutetricos A es un siacutembolo no terminal a es una cadena no vaciacutea de siacutembolos C es una restriccioacuten sobre los atributos de los siacutembolos en a y F es una expresioacuten que computa los atributos de los siacutembolos de A en teacuterminos de los atributos de los siacutembolos en a no importando el orden de los siacutembolos en a

d) Gramaacuteticas PosicionaZes Las gramaacuteticas posicionales son un formalismo para la definicioacuten e implementacioacuten de lenguajes visuales las gramaacuteticas posicionales extienden naturalmente a las gramaacuteticas libres de contexto Una gramaacutetica libre de contexto posicional PG es una six-tupla (N T S P POS PE) donde

N es un conjunto finito no vaciacuteo de siacutembolos no terminales T es un conjunto finito no vaciacuteo e siacutembolos terminales con N n T = $I S E N es el siacutembolo no terminal de inicio P es un conjunto finito de producciones POS es un conjunto finito de identificadores de relacioacuten binaria PE es un evaluador pictoacuterico

14

Marco teorico

Cada produccioacuten en P tiene la siguiente forma

A -+ X I R I X R2 X ~ I Rm1 xm A

e) Gramaacuteticas de Relacioacuten de siacutembolos Eacuteste es un formalismo sintaacutectico para describir un lenguaje visual donde cada oracioacuten dentro del lenguaje se representa como un conjunto de objetos visuales y un conjunto de relaciones entre objetos

El alfabeto de siacutembolos Vt y el conjunto de relaciones entre siacutembolos Vr una oracioacuten de relacioacuten de siacutembolos w sobre Vt y Vr es un par ( M R) donde

M es un conjunto de elementos-s (v i) con v E Vt y i es un nuacutemero natural R es un conjunto de elementos-r de la forma r (Xi Yj) con Xi Yj E M r E Vr y una relacioacuten r esta contenida entre Xi y Yj

Una gramaacutetica de relacioacuten de simbolos es el conjunto de seis elementos G = (Vn Vt Vr S P R) donde Vn es un conjunto de siacutembolos no terminales Vt es un conjunto de siacutembolos terminales Vr es un conjunto de relaciones entre siacutembolos S es el siacutembolo inicial y P es un conjunto de reglas de reescritura (producciones de elementos-s)

f) Gramaacuteticas relacionales Este tipo de gramaacutetica pertenecen a las gramaacuteticas libres de contexto

La gramaacutetica relaciona1 (RGrsquos) es una 6-tupla G (N C S R Attr P) donde

N C S R Attr P

es un conjunto finito de siacutembolos no terminales es un conjunto de siacutembolos terminales es un siacutembolo distinguido en N llamado siacutembolo inicial es un conjunto finito de siacutembolos de relacioacuten es un conjunto finito de siacutembolos de atributos es un conjunto de producciones de la forma A-gt apF donde A E N a E (nlo)+ Donde n E N cr E E

8 Es un conjunto de relaciones de la forma (r x y) donde r E R y xy son enteros que hacen referencia a un miembro de a y tambieacuten una expresioacuten de la forma (a i) donde a E Attr e i es un entero que hace referencia a un miembrode a

F Es un conjunto de declaraciones de asignacioacuten de caracteriacutesticas de la forma (a O)=x donde a E Attr y x es un entero que hace referencia a un miembro de a o a una expresioacuten de la forma (a i)

15

Marco teoacuterico

24 Programacioacuten orientada a objetos

L~~ meacutetodos orientados a objetos organizan la informacioacuten Y el procesamiento que manipula esta informacioacuten de acuerdo a los objetos delrsquomundo real que la informacioacuten describe [BRO97l

Beneficios de las teacutecnicas orientadas a objetos [BR097] Estabilidad del sistema Mantenibilidad Componentes reusables Confiabilidad Accesibilidad de los datos Participacioacuten del usuario

Seguacuten Graddy Booch la programacioacuten orientada a objetos es ldquoun meacutetodo de implementacioacuten en el que los programas se organizan como colecciones cooperativas de objetos cada uno de los cuales representan una instancia de alguna clase y cuyas clases son todas miembros de una jerarquiacutea de clases unidas mediante relaciones de herenciardquo [JOY 981

Programacioacuten orientada a objetos esencialmente significa programacioacuten usando objetos [JAC93] Los lenguajes orientados a objetos deben soportar los siguientes conceptos

Objetos Abstraccioacuten de datos Encapsulamiento Clases e Instancias Herencia entre clases Polimorfismo

Las propiedades fundamentales de la Programacioacuten Orientada a Objetos son

a Abstraccioacuten Son ideas conceptos y propiedades que se describen en forma general eliminando los detalles Es una estructura de datos y los meacutetodos que manipulan a esos datos

b Encapsulamiento Son las fronteras propias de un objeto bien definidas las cuales protegen los detalles de su representacioacuten interna

c Ocultacioacuten de la informacioacuten Es la propiedad en la que los objetos pueden hacer uso para impedir que otros objetos los usuarios o incluso los programadores conozcan coacutemo estaacute distribuida la informacioacuten

d Herencia Es la propiedad que tiene una clase para heredar atributos y comportamiento a otras clases

e Polirnorfismo Es la propiedad que permite que una entidad pueda cambiar a diferentes formas efectuaacutendose de manera dinaacutemica en tiempo de ejecucioacuten

16

Marco teoacuterico

t

Clases Es la especificacioacuten de una familia de objetos es la declaracioacuten de un tipo de objetos Tambieacuten se dice que una clase es la descripcioacuten de un conjunto de objetos con un comportamiento similar y que esta compuesta de Datos (o atributos) y Meacutetodos o (rutinas acciones operaciones)

Objeto Un objeto es una entidad en la cual se almacenan datos y los meacutetodos o funciones que controlan dichos datos Un objeto es una abstraccioacuten de alguna cosa del mundo real que contiene datos que lo describen y operaciones que solo tienen acceso a esos datos [BR097l Los elementos de los que esta conformado un objeto son

a Las relaciones permiten que el objeto se integre en la organizacioacuten b Las propiedades son los datos que caracterizan el estado de un objeto distinguiendo

asiacute a un objeto determinado de los restantes que forman parte de la misma organizacioacuten

c Los meacutetodos son las operaciones que pueden realizarse sobre la estructura del objeto es decir las acciones que cambian el estado de un objeto y que el objeto es capaz de ejecutar a traveacutes de mensajes y que tambieacuten pone a disposicioacuten de sus descendientes a traveacutes de la herencia

Mensajes Son solicitudes para que se lleve a cabo la operacioacuten indicada y se produzca un resultado

Las razones principales para introducir la tecnologiacutea de objetos son los beneficios de dicha tecnologiacutea

Aumento de la fiabilidad Aumento de la productividad del desarrollador Desarrollo maacutes raacutepido Mejor calidad maacutes alta

Incremento en escalabilidad Mejores estructuras de informacioacuten Incremento de adaptabilidad Reduccioacuten del coacutedigo fuente

Mantenimiento maacutes faacutecil y reduccioacuten de costo

Los elementos de reutilizacioacuten son las clases y objetos

25 Lenguaje de Modelado Unificado (UML)

UML (Unified Modeling Language por sus siglas en ingleacutes Lenguaje de Modelado Unificado) es un lenguaje de modelado visual de propoacutesito general que es utilizado para especificar visualizar construir y documentar las partes de un sistema de software El lenguaje estaacute basado en un pequentildeo nuacutemero de conceptos centrales que la mayoriacutea de los desarrolladores de tecnologiacutea orientada a objetos pueden aprender y aplicar faacutecilmente [RUM99]

17

Marco teoacuterico

y UML Pasado Presente y Futuro

L~~ lenguajes de modelado orientado a objetos aparecieron a mediados de 10s 70rsquos Varias teacutecnicas influenciaron estos lenguajes El nuacutemero de lenguajes de modelado incrementoacute desde menos de 10 hasta maacutes de 50 entre 1989 y 1994 Muchos modeladores teniacutean problemas para encontrar un lenguaje de modelado que satisficiera todas sus necesidades Notablemente aparecioacute Boochrsquo93 y la evolucioacuten continuoacute a OMT y Fusioacuten

OOSE (Object-Oriented Software Engineering) estaacute enfocado a la ingenieriacutea de negocios y anaacutelisis de requerimientos dando un excelente soporte orientado a casos de uso OMT-2 es especialmente expresivo para anaacutelisis y sistemas de informacioacuten de datos grandes Boochrsquo93 fue particularmente expresivo para el disentildeo y fases de construccioacuten de proyectos y popular para aplicaciones de ingenieriacutea intensiva

Grady Booch y Jim Rumbaugh iniciaron el desarrollo de UML en 1994 al unificar sus meacutetodos independientes Booch y OMT En 1995 Ivar Jacobson se unioacute a Racional eacutesta unioacuten logroacute que el meacutetodo OOSE se incorporara La unificacioacuten establecioacute que debiacutean activar el modelado de sistemas utilizando conceptos orientados a objeto asiacute como crear un lenguaje usable tanto para las maacutequinas como para los humanos

A

Muchas organizaciones se unieron al consorcio UML y dedicaron recursos al trabajo hacia el fortalecimiento de la definicioacuten de UML Esta colaboracioacuten produjo un lenguaje de modelado expresivo poderoso y generalmente aplicable En la forma actual de UML se espera que sea base de muchas herramientas incluidas las de modelado visual simulacioacuten y ambientes de desarrollo

R UML es abierto y no-propietario y aunque define un lenguaje preciso no es barrera para futuras mejoras en conceptos de modelado Se usan muchas teacutecnicas de punta pero se esperan teacutecnicas adicionales que influencien futuras versiones de UML puede ser extendido sin redefinir el nuacutecleo

c

Mientras el rehuacuteso basado en componentes se ha favorecido ampliamente cada vez mas esto no significa que las teacutecnicas basadas en componentes reemplazaraacuten las teacutecnicas orientadas a objetos Hay solo sutiles diferencias entre la semaacutentica de componentes y clases [ALC03]

Un opaco rendimiento caracterizoacute el mercado de anaacutelisis modelado y disentildeo en el 2000 en su transicioacuten de las viejas herramientas CASE (Computer Aided Software Engineering) a algo maacutes dinaacutemico y mejor adaptado para satisfacer las necesidades de los desarrolladores para el cambio raacutepido en los ambientes de negocio

El mercado de anaacutelisis modelado y disentildeo lograraacute obtener un crecimiento positivo en varios de los siguientes antildeos por varias razones El mercado seraacute manejado principalmente por la necesidad de desarrolladores a obtener aplicaciones para lanzarse al mercado raacutepidamente asiacute tambieacuten por el intereacutes creciente y uso de una nueva especie de herramienta y por el intereacutes creciente de los desarrolladores en usar UML reglas de negocios y adaptadores de componentes para construir aplicaciones [RIKUI]

z -

18

Marco teoacuterico

UML se ha hecho el estaacutendar para los desarrollos de modelado de negocios administracioacuten de requerimientos anaacutelisis y disentildeo programacioacuten y pruebas Los objetivos primarios de UML en el disentildeo [RAT97j

o Dar a los usuarios un lenguaje visual expresivo de modelado listo para usarse para que puedan desarrollar y cambiar los significados de sus modelos

o Suministrar mecanismos de extensibilidad y especializacioacuten para extender los conceptos centrales

o Ser independiente de lenguajes de programacioacuten particulares y procesos de desarrollo

o Impulsar el desarrollo de las herramientas Orientadas a Objeto en el mercado o Soportar conceptos de desarrollo de alto nivel como colaboracioacuten marcos de

componentes reutilizables patrones y componentes o Integrar las mejores praacutecticas

9 El aacutembito de UML

UML es un lenguaje para especificacioacuten construccioacuten visualizacioacuten y documentacioacuten de artefactos de un sistema de software UML es la fusioacuten de los conceptos de Booch OMT y OOSE El resultado es un simple comuacuten y ampliamente usado lenguaje de modelado para usuarios de estos y otros meacutetodos UML se enfoca en un lenguaje de modelado estaacutendar no en un proceso estaacutendar los autores de UML recomiendan un proceso de desarrollo manejado por casos de uso de arquitectura central iterativo e incremental [iiquest4T97l

Para la definicioacuten de sistemas de software en UML se definen diagramas Un diagrama es la representacioacuten graacutefica de un conjunto de elementos este se visualiza la mayoriacutea de las veces como un grafo conexo de nodos (elementos) y arcos (relaciones) Los diagramas se dibujan para visualizar un sistema desde diferentes perspectivas de forma que un diagrama es la proyeccioacuten de un sistema uumlML incluye nueve diagramas [B0099]

4 -

I Diagrama de clases 2 Diagrama de objetos 3 Diagrama de casos de uso 4 Diagrama de secuencias 5 Diagrama de colaboracioacuten 6 Diagrama de estados 7 Diagrama de actividades 8 Diagrama de componentes 9 Diagrama de despliegue

Diagramas de secuencias Un diagrama de secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten comportamiento

Un diagrama de secuencias muestra un conjunto de mensajes acomodados en una secuencia de tiempo eacuteste diagrama muestra la interaccioacuten en un esquema de dos - dimensiones [RUM99]

19

Marco teoacuterico

Y -

Un diagrama de secuencia es un diagrama de interaccioacuten que resalta la ordenacioacuten temporal de los mensajes Un diagrama de secuencia presenta un conjunto de objetos y los mensajes enviados y recibidos por ellos Los objetos suelen ser instancias (con nombre o sin nombres) de clases pero tambieacuten pueden representar instancias de otros elementos tales como colaboraciones componentes y nodos Los diagramas de secuencia se utilizan para describir la vista dinaacutemica de un sistema [B0099]

Usar los diagramas de secuencia es mostrar la secuencia que existe en un caso de uso [RUM 991

Los diagramas de secuencia tienen dos dimensiones Una dimensioacuten que representa el tiempo Otra dimensioacuten que representa los diferentes objetos que participan en la secuencia de eventos requeridos para completar el propoacutesito [MOuuml98]

El principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildea las interacciones de los objetos [DAN02]

20

Capiacutetulo 3

DesawoCCo de Ia herramienta

En este capiacutetulo se describe el desarrollo del Ambiente Visual Se describe el modelo conceptual del sistema la arquitectura asiacute como tambieacuten los elementos que componen la Arquitectura Se estudian los Diagramas de Secuencias de UML y algunos Patrones de Disentildeo de los que se hace uso para el mejor desarrollo del sistema Se describe a detalle la Gramaacutetica Visual Relaciona1 utilizada para el de Ambiente de desarrollo

I CENIOET 1FNTRO DE INFORMACION

Desarrollo de la herramienta

t i i

Actualmente existe en el cenidet un Ambiente Visual de Modelado de Clases llamado InverSOODA este Ambiente Visual tiene la capacidad de realizar la generacioacuten automaacutetica de coacutedigo de las clases en C++ a partir del modelo especificado Ademaacutes se puede realizar la Ingenieria Inversa de un coacutedigo legado para obtener el modelo de clases Aunado a este trabajo existe el Ambiente Visual denominado InverDDVi con el cual se puede realizar el Disentildeo Detallado de los Meacutetodos de las Clases con diagramas de Warnier Asiacute tambieacuten es posible obtener el modelo aplicando la Ingenieriacutea Inversa a un coacutedigo legado en C++

Ambos trabajos son retomados en este proyecto para la automatizacioacuten en la obtencioacuten de los Diagramas de Secuencias de UML La figura 31 muestra el modelo propuesto de ingenieriacutea directa

Extraer informacioacuten del diagrama de

rsquo rsquo

Diagrama de 11 clases I o

detallado de

detallado de

o meacutetodos

i ir---- Construir el

secuencias i

Modelo de Ingenieriacutea I directa automaacutetica

I

Figura 31 Modelo de Ingenieria Directa Autombtica de los Diagramas de Secuencias

Para la construccioacuten automaacutetica de un diagrama de secuencias se toma como base a un diagrama de Clases El modulo ldquoExtraer informacioacuten del diagrama de Clasesrdquo sirve para obtener el nombre y los meacutetodos descritos en cada uno de las clases que existan en el diagrama de Clases

22

Desarrollo de la herramienta

Con base en la informacioacuten que se tiene se abren los archivos correspondientes a los diagramas de Warnier El proceso que se emplea sobre cada uno los diagramas de Warnier llamado ldquoExtraer informacioacuten de los disentildeos detallados de los meacutetodosrdquo sirve para recopilar el conjunto de las llamadas de cada meacutetodo definido

En el siguiente paso (ldquoReconocer llamadas a meacutetodosrdquo) consiste en identificar si los meacutetodos que estaacuten descritos en los diagramas de Warnier tambieacuten lo estaacuten en el diagrama de Clases correspondiente

El paso ldquoConstruir los diagramas de secuencias automaacuteticamenterdquo realiza una validacioacuten de los meacutetodos definidos en los diagramas de Clases con los meacutetodos definidos en los diagramas de Warnier Este paso crea una estructura de datos con la secuencia de las llamadas y la recorre para crear los objetos y los mensajes en el diagrama de secuencias

AI terminar la creacioacuten automaacutetica del diagrama de secuencias se dispone de la r opcioacuten de guardar

31 Disentildeo de la Arquitectura

Para definir los procesos que el sistema va a realizar es necesario llevar a cabo un anaacutelisis de requisitos los cuales pueden ser expresados mediante diagramas de Casos de Uso Los Casos de Uso son una descripcioacuten textual narrativa de los procesos de un sistema

311Requisitos (Diagrama de Casos de uso)

Los casos de uso en realidad no son un artefacto de anaacutelisis orientado a objetos estos describen simplemente procesos y pueden ser igualmente efectivos en un proyecto tecnoloacutegico no orientado a objetos Son usados en un paso preliminar a la descripcioacuten de requerimientos de un sistema [LAR971 La Figura 32 muestra el diagrama de casos de uso que especifica al S3C

9

S3C (Diagramas de Secuencias)

usuario I Modelado de

I

Figura 32 Diagrama de Casos de Uso para el S3C

23

Desarrollo de la herramienta

Descripcioacuten de los Casos de Uso

Caso de Uso ldquoDiagramas de Secuenciasrdquo Se inicia cuando el actor ldquousuariordquo solicita la creacioacuten de un Diagrama de Secuencias Se establece la forma de la construccioacuten automaacutetica de los diagramas de secuencias de UML Se hace uso del Modelado de Clases y del Modelado del disentildeo detallado de los meacutetodos

Escenario de Eacutexito 1 Se obtiene la informacioacuten de las clases del modelado de clases 2 Se obtiene la informacioacuten del modelado del disentildeo detallado de los meacutetodos 3 Se realiza la construccioacuten automaacutetica de los diagramas de secuencias

1 En el modelo de clases no hay informacioacuten o estaacute incompleta 2 En el modelo del disentildeo detallado de los meacutetodos no hay informacioacuten o estaacute

incompleta

Escenario de Falla

Caso de Uso ldquoModelado de Clasesrdquo El diagrama de Clases se utiliza para obtener los nombres de clases y los nombres de los meacutetodos de cada clase

Escenario de Eacutexito 1 Se abre el modelo 2 Se procesa para obtener la informacioacuten de las clases (nombres de clases y nombres

de meacutetodos)

Escenano de Falla h 1 No se puede abrir el modelo J 2 El modelo esta vaciacuteo

Caso de Uso ldquoModelado del Disentildeo detallado 1 los meacutetodosrdquo El disentildeo detallado de los meacutetodos se realiza con diagramas de Warnier aquiacute se establecen las llamadas a funciones dentro del sistema y es aquiacute donde se identifica el dinamismo que se representaraacute en los diagramas de secuencias

Escenario de Eacutexito 1 Se abre el modelo 2 Se realiza la identificacioacuten de las llamadas existentes

Escenario de Falla 1 No se puede abrir el modelo 2 El modelo esta vaciacuteo

24

Desarrollo de la herramienta

Clase Objeto ni I Diagrama I n ____ Nombre Descripcioacuten

i

Mensaje

Tipo

En el Anaacutelisis Orientado a Objetos se crea una especificacioacuteii del dominio del problema y de los requeriinientos desde la perspectiva de una clasificacioacuten por objetos y del entendimiento de los teacuterminos usados en el dominio del problema Una descomposicioacuten del dominio del problema involucra una identificacioacuten de conceptos atributos y asociaciones que son considerados importantes dentro del dominio El resultado puede ser expresado en un Modelo Corzcepttraf el cual es ilustrado en un conjunto de diagramas que definen conceptos (objetos) [LAR97]

312Modelo Conceptual

El modelo conceptual visto en la Figura 33 no es una descripcioacuten de componentes de software representa conceptos en el domino del problema en el mundo Teal [LAR97l

313Diagramas de clases

Por cuestiones dc espacio las clases de la arquitectura del sistema estaraacuten referidas en varios diagramas que de alguna manera estaacuten relacionados entre si

Una de las partes maacutes importantes del Ambiente Visual S3C es la estructura de clases ltCCraJicogt la cual se refiere al control de los diagramas eacutesta por su naturaleza podriacutea considerarse el nuacutecleo del sistema La manipulacioacuten y control de los diagramas estaacute definido en una estructura de clases organizada con el patroacuten de disentildeo Composite que se muestra en la Figura 34

25

Desarrollo de la herramienta

CRecursividadDS CMensajeDS CObjetoDS CDiagramaDS

I Cvisitor I

CApuntadorDS CDblClickDS CAsocAdjusterDS CSelectorDS

26

Desarrollo de la herramienta

n 32 Elementos de la arquitectura

Es necesario describir los elementos que dan soporte a la arquitectura del ambiente donde se implementaraacute el sistema en este caso Microsoft Visual (MV) C++ 6 El MV C++ es un marco de aplicacioacuten poderoso basado en Windows se integran ademaacutes del lenguaje C++ (compilador y enlazador) el programa de desarrollo de programas en lenguaje C para Windows (SDK) la Microsoft Foundation Class Library AppWizzard Classwizard AppStudio y WorkBencli

La Microsoft Foundation Class Library comprende una biblioteca de clases de C++ y es considerada como el nuacutecleo del MV C++

321Microsoft Foundation Class (MFC)

La libreriacutea Microsoft Foundation Class (MFC) es una interfaz orientada a objetos que tiene las siguientes metas de disentildeo

o

Reduccioacuten significante de esfuerzo al escribir una aplicacioacuten para Windows Velocidad de ejecucioacuten comparable a las APIrsquos del lenguaje C Miacutenimo tamantildeo de coacutedigo Capacidad para llamar cualquier funcioacuten de Windows en C directamente Faacutecil conversioacuten de aplicaciones existentes en C a C++ Faacutecil uso de APIrsquos de Windows con C++ como con C Faacutecil uso de complicadas caracteriacutesticas de abstracciones poderosas como ActiveX soporte para base de datos impresioacuten barras de herramientas y barras de estado El API de Windows en C++ si usa tan efectivamente como las caracteriacutesticas mismas del lenguaje C++

La mayoriacutea de las clases de la Libreriacutea de la Microsoft Foundation Class son derivadas de una clase base ltCObjectgt que es la raiacutez de la jerarquiacutea de clases ltCObjectgt da uacutetiles capacidades a las clases que derivan de ella

La jerarquiacutea que existe en las clases derivadas de ltCObjectgt es la siguiente

Arquitectura de Aplicacioacuten Excepciones Servicios de Archivos Arreglos Listas Mapas Servicios de Internet Sockets Sincronizacioacuten Soporte para base de datos D A 0

27

Desarrollo de la herramienta

i

r

Liacutenea de Comandos Menuacute Dibujo Graacutefico Dibujo Graacutefico de Objetos Soporte de Control Soporte de Ventanas

Soporte para base de datos ODBC

o Marco de Ventanas o Barras de control o Hojas de propiedades o Cajas de Dialogo o Vistas o Controles

322Arquitectura Documento Vista

Por defecto las aplicaciones creadas con la MFC usan un modelo de aplicacioacuten que separa los datos del programa de las vistas de interaccioacuten con el usuario En eacuteste modelo un objeto documento de MFC lee y escribe datos en un almacenamiento persistente Un objeto vista administra el despliegue de datos suministrando al usuario los datos para ser seleccionados o editados La vista le comunica al documento cualquier cambio en los datos La razoacuten maacutes conveniente para seguir este modelo es cuando se necesita muacuteltiples vistas del mismo documento (como en una hoja de caacutelculo y un graacutefico)

La arquitectura documentovista hace faacutecil el soporte de muacuteltiples vistas y muacuteltiples tipos de documentos asiacute como la divisioacuten de ventanas y otras caracteriacutesticas de interfaz de usuario Pero el corazoacuten de la arquitectura son cuatro clases (Mostradas en el aacuterbol de clases de la Figura 36)

ltCDocumerrtgt (o ltCOleDocuinentgt) - Se instancia un objeto de este tipo para almacenar y controlar los datos del programa ltCViewgt (o una de sus clases derivadas ltCScrotlViewgt ltCFormViewgt ltCEditView ltCRecordViewgt ltCDaoRecordView ltCtreeViewgt ltCListViewgt b ltCrichEditViewgt) - Un objeto es usado para desplegar los datos y administrar la interaccioacuten del usuario con los datos ltCFrameWndgt (o una de sus variantes) - Establece el marco sobre el que trabajaraacuten una o mas vistas de un documento ltCDocTemolategt (o ltCSingIeDocTemplategt o ltCMultiDocTemplategt) - Coordina la existencia de uno o maacutes documentos de un tipo dado y administra la correcta creacioacuten de los documentos vistas y objetos ventanas para cada tipo

i

28

Desarrollo de la herramienta

______________ 2 Wiew

I - - __ - ------a ________________

323Integrando Ambientes en Visual C t t

Las aplicaciones de Interfaz de Documento Uacutenico (SDI) soporta muacuteltiples tipos de documentos pero este soporte es para un solo objeto documento Debido a esta restriccioacuten y aunado a la necesidad de tener varios objetos documentos a la vez se determina la utilizacioacuten del modelo Interfaz de Muacuteltiples Documentos (MDI) indicado en la Figura 37

324Interfaz de Muacuteltiples Documentos (MDI)

Una aplicacioacuten de Interfaz de Muacuteltiples Documento (MDI) permite la creacioacuten de plantillas para el manejo de los documentos eacutesta plantilla tiene la forma

rn-pDocTemplate = new CMultiDocTernplate ( I DR-SCUMLTY PE RUNTIME-CLASS (CSCUMLDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CTheView))

AddDocTernplate ( rn-pDocTemplate )

Cada plantilla describe una relacion del tipo de documento con la vista asociada La definicioacuten de la plantilla para el ambiente que controla los diagramas de secuencias es la siguiente

29

Desarrollo de la herramienta c

m-pTernplateSeqDlag = new CMultiDocTernplate ( IDR-DS-SJCTYPE RUNTIME-CLASS (CSeqDiagDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CSeqDiagView) )

AddDocTernplate( rn-pTernplateSeqDiag )

Esta plantilla hace uso de la clase CCliildFrame que por defecto el ambiente Visual C++ construye y esto es debido a que no se requieren caracteriacutesticas extras en las ventanas de las que proporciona dicha clasc En un caso en el que se requiriera un comportamiento diferente de la vista tendriacutea que crearse una nueva clase con las caracteriacutesticas deseadas

Vista Documento

Vista

I- Vista Documento I [ Tip- F Vista

L Figura 37 Modelo Interfaz de Muacuteltiples Documentos (MDI)

Para integrar otro Ambiente que utilice otro tipo de documento es necesario definir otra plantilla de la misma forma mencionada Debe tomarse en cuenta los siguientes puntos

Es necesario definir el nombre (mqTemplateNOMBRE) El IDR del tipo que se requiere que sea el documento En la primera liacutenea RUNTIME CLASS debe indicar la clase ltCDocumentgt que desea La segunda liacutenea RUNTIME-CLASS soacutelo la cambia a otra clase si requiere de otro manipulador de ventanas de lo contrario deje que ltCChildFramegt se haga cargo

-

30

Desarrollo de la herramienta

En la uacuteltima liacutenea referente a RUNTIME-CLASS se debe indicar la clase ltCViewgt que desea usar Para finalizar se usa la instruccioacuten AddDocTernplate para finalizar la definicioacuten del template (mgTemplateNOMBRE)

325 Recursos Diaacutelogos Mertuacutes y Barras de Herrattriertias

Son varios los recursos con los que se puede contar al crear un proyecto en Microsoft Visual C++ Los diaacutelogos son un recurso disponible que son utilizados para visualizar ingresar yo modificar informacioacuten que se requiera En el Ambiente Visual que se desarrolla son varios los diaacutelogos que se utilizaraacuten y eacutestos se describen a continuacioacuten

El Diaacutelogo ldquoCaracteriacutesticas del Obietordquo (Figura 38) identifica el nombre del Objeto y la descripcioacuten del mismo Este diaacutelogo se muestra cuando se presiona doble clic sobre un objeto del diagrama

I Nombre

Desciipcion

Figura 38 Dialogo Caracteriacutesticas del Objeto

El Diaacutelogo ldquoMensaierdquo (Figura 39) muestra el nombre del mensaje que puede ser modificado ademaacutes se visualizan el Identificador del Mensaje el tipo de Mensaje asiacute tambieacuten el origen y destino del mensaje

31

Desarrollo de la herramienta

Nornbie delMensaje Edit

IDentificador del Mensaje Edil Tipo de Mensaje (Edil

Edit Objeto Origen

Objeto Destino IEdit

i25El A Figura 39 Dialogo Mensaje

El menuacute es otro de los recursos del que se puede disponer para organizar el ambiente que se estaacute creando Para eacuteste caso en particular no se hizo modificaciones al menuacute estaacutendar (Figura 310) que Visual C++ presenta Los cambios significativos son el manejo del tipo de documento para los Diagramas de Secuencias

Archivo Editar Yer VenLana AyGda

Figura 310 Menuacute de los Diagramas de Secuencias (estaacutendar)

Otro importante recurso del que uno se puede valer en Visual C++ es la barra de herramienta personalizada la cuaacutel es construida en el Editor de Recursos Se ha construido una barra (Figura 311) con los elementos graacuteficos de los Diagramas de Secuencia de UML

Figura 311 Barra de Herramientas de los Diagramas de Secuencias

Es recomendable que al utilizar barras de herramienta personalizada se defina en el tamantildeo estaacutendar ya que puede experimentar problemas al momento de ejecutar la aplicacioacuten

Ademaacutes puede usar la propiedad TBBS-CHECKGROUP en una barra de herramientas para establecer que los botones puedan quedar presionados hasta que un botoacuten diferente sea presionado No olvide que la numeracioacuten inicia con cero ( O )

vuriableToolBurSetButtonStyle(OTBBSCHECKGROUP)

32

Desarrollo de la herramienta

Prefijo ID IDC IDD IDP IDR IDS

326 Notacioacuten estaacutendar

Los nombres descriptivos de los recursos se asocian a un valor uacutenico Para una mayor claridad eacutestos nombres mantienen un prefijo que describe el tipo de recurso asociado (vea la Tabla 31) [MIC99]

Tipo de Recurso Comandos de Menuacute Controles y recursos Cuadros de diaacutelogo Cadenas de solicitud para cuadros de mensaje Menuacute principal barras de herramienta tabla aceleradora y el icono Cadenas

IDR IDD IDC ID

200 - 299 3000 - 3999 34000 - 34999

Estos son los rangos de valores establecidos para el proyecto S3C Si se utiliza el coacutedigo fuente y se planea agregar otro proyecto verifisue que no se invadan estos nuacutemeros para evitar problemas

Para facilitar auacuten maacutes los trabajos futuros se ha definido una estructura de carpetas (ver Figura 312) para incluir en cada una las Clases correspondientes a cada tesis en desarrollo

33

Desarrollo de la herramienta

ill ~~ -

-I SCUML classes + U A N T L R + U App + 0 ClassDiagrams + 0 Common + a Java

t $2 SequenceDiagiams

+ WarnierDiagrams

iJ PackageDiagrams

12 StaterChartDiagrams

+

- f Classview I Resourceview 1 FileView ]

~ ~

Figura 312 Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)

327Estructura de datos persistencia y recuperacioacuten

Existe una gran cantidad de tipos de datos estructuras clases y meacutetodos de los que se puede hacer uso para una mejor y maacutes faacutecil obtencioacuten de los resultados A continuacioacuten hago comentarios en tipos de datos y meacutetodos en los que podriacutea tener problemas

CTypedPtrList

AI usar este tipo de dato o alguno relacionado que le permita utilizar el meacutetodo ltCTvrgtedPtrListGetNextgt tenga especial precaucioacuten al usarlo ya que al devolver el valor requerido la variable POSITION usada no se queda apuntando a ese valor en particular salta al inmediato siguiente de la lista

Si se realiza una creacioacuten dinaacutemica con punteros para los elementos de una CTypedPtrList Despueacutes de haberlo agregado a la lista evite el delete para borrar esta Usted deseando liberar la memoria no lo haga ya que eliminara directamente el elemento de la lista

POSITION

Es un valor usado para denotar una posicioacuten de un elemento en una coleccioacuten Pero CUIDADO no se refiere a un iacutendice es una referencia (no consecutiva) de punteros muy diferente a un iacutendice

CString

Auacuten cuando el operador de comparacioacuten == (igual a) es permitido para ser utilizado en las cadenas evite su uso ya que en ocasiones aunque cuando la e

34

Desarrollo de la herramienta

compilacioacuten no indique error alguno en la ejecucioacuten no realizaraacute lo que se necesita Recomiendo que utilice CStringCompare ()

Para eliminar el contenido de un CString utilice CStringEmpty() ya que asignar a la cadena un ldquonrdquo podriacutea causarle problemas

Serializacioacuten

Una forma en que se puede guardar informacioacuten y recuperarla de manera eficaz es mediante la serializacioacuten de objetos La serializacioacuten es un proceso que permite escribir un objeto en un archivo y tambieacuten leerlo

Para que la serializacioacuten se lleve a cabo son necesarios tres objetos un objeto de tipo ltCFilegt que represente el archivo un objeto de tipo ltCArchivegt que ofrece el entorno para la serializacioacuten y la clase del objeto a ser serializado debe ser heredada de ltCObjectgt y sobrescribir el meacutetodo ltSerializegt para que se encuentre de tal forma en que pueda ser serializado (vea la Figura 313)

Objeto a ser serializado 1

1 CArchive

[f --=I- ---7 Archivoexi

u Figura 313 Serializacioacuten

328Patrones de disentildeo utilizados

Se ha planteado la definicioacuten de una arquitectura de clases utilizando patrones de disentildeo debido a que algunos de ellos hacen maacutes faacutecil la extensioacuten de la funcionalidad y mantenimiento

35

Desarrollo de la herramienta

El patroacuten Composite es utilizado para crear de manera uniforme el diagrama sobre el que se trabaja (ver Figura 34) manteniendo una jerarquiacutea de clases uniforme las clases maacutes bajas en la jerarquiacutea definen primitivas de objetos graacuteficos

Se aplica el patroacuten de disentildeo Iterator para hacer recorridos en listas de objetos para realizar diversas operaciones Otro patroacuten de disentildeo del que se hace uso es el Visilor (ver Figura 35)

Para otras actividades que se realizan podriacutea pensarse en que se deberiacutean aplicar otros patrones pero se han evitado algunos (como el patroacuten de disentildeo Builder) para evitar incrementar la complejidad en la arquitectura ya que ai mantener el modelo de la MFC de documentovista la funcionalidad del patroacuten de disentildeo Builder es faacutecilmente reemplazado si se hiciera Uso de eacuteste se aumentariacutea la complejidad excesivamente (nos llevariacutea a perdemos en ocasiones en el paso de mensajes entre clases) dantildeando la facilidad de la arquitectura

33 Diagrama de secuencias

Un Diagrama de Secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten escenario Oacute comportamiento se usan para definir el curso loacutegico de accioacuten de un posible camino a seguir en la resolucioacuten de un problema Seguacuten John Daniels [DANO2] ldquoel principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildean las interacciones de los objetosrdquo

Los Diagramas de Secuencias se utilizan en el modelado de la implementacioacuten de sistemas de software ademaacutes son aplicables en el modelado de requisitos para establecer las comunicaciones existentes entre actores yo clases del sistema Con eacutestos diagramas se logran hacer descripciones de los escenarios y los comportamientos del sistema Con los Diagramas de Secuencias es posible definir protocolos de comunicacioacuten con paso de mensajes ya que dan esa flexibilidad que se requiere Ademaacutes los Diagramas de Secuencias contienen informacioacuten suficiente para que puedan ser transformados a los diagramas de colaboracioacuten [RUM Ol][BOO Oil

331Ciclo de vida del software

Considerando cualquier modelo de ciclo de vida del software (en la figura 314 se muestra el Modelo de cascada) el aacutembito directo de eacuteste Ambiente Visual es en el disentildeo aunque tiene sus vertientes en la codificacioacuten y mantenimiento

36

Desarrollo de la herramienta

Diseno

Codificacibn

I I I I Mantenimiento I

igura 314 Modelo de cascada del ciclo de vida del software

34 Elementos atoacutemicos de la Gramaacutetica

Definicioacuten de los elementos atoacutemicos del lenguaje y su contenido

1 Actor- Representa roles de entidad externos al sistema con el que interactuacutea directamente Los actores pueden ser humanos dispositivos u otros sistemas

2 ClaseObjeto- Determina una Clase u Objeto participante en la interaccioacuten

3 Mensaje-Es una comunicacioacuten entre objetos que contiene informacioacuten Eacuteste se representa con la finalidad a que una accioacuten sea llevada a cabo

4 Mensaje con tiempo- Tiene la misma finalidad que el mensaje la diferencia es que con eacutel se representa un atributo de tiempo

5 Mensaje asiacutencrono Es un mensaje que ocurre en el tiempo de manera independiente a otros mensajes

6 Mensaje de destruccioacuten de objeto- Es un mensaje cuya finalidad es indicar la destruccioacuten del objeto destino

7 Mensaje de creacioacuten de objeto- Es un mensaje que indica la creacioacuten de un objeto

8 Llamada al mismo objeto (Recursividad)- Es usado para modelar llamadas recursivas en el que una operacioacuten es invocada por el mismo objeto

37

Desarrollo de la herramienta

9 Destruccioacuten del objeto (AutodestrucciOacuten)- Puede o no modelarse es representada con una X al final de la liacutenea de vida del objeto

Elementos aulomaacuteticos

1 Liacutenea de Vida- Representa la vida del objeto durante la interaccioacuten

2 Activacioacuten- Muestra el periacuteodo de tiempo en el cual el objeto alguna operacioacuten

341RepresentaciOacuten visual

Representacioacuten visual de los elementos atoacutemicos del lenguaje

Actor

_- A

Mensaje

Mensaje de Creacioacuten de

Objeto

ClaseObjeto

I

Mensaje de retorno

Mensaje de Destruccioacuten de

Objeto

abla 32 Element(

Activacioacuten

Mensaje con tiempo

Autodestruccioacuten

x

atoacutemicos del lengi

taacute realizz

Texto ===I (letra)+ (letra I

numero) letra= AZ I az numero = 09

I

Recursividad ~

I

i j e

io

38

u

Comentario

iexcl

Conector de Comentario

35 Gramaacutetica desarrollada

La gramaacutetica que se propone es una gramaacutetica visual del tipo relacional Una gramaacutetica relacional pertenece a las gramaacuteticas libres de contexto es una 6-iupla G (N C S R Attr P) donde

N es un conjunto finito de siacutembolos no terminales C es un conjunto de siacutembolos terminales S es un siacutembolo distinguido en N llamado siacutembolo inicial R es un conjunto finito de siacutembolos de relacioacuten Attr es un conjunto finito de siacutembolos de atributos P es un conjunto de producciones

Entonces definiendo nuestra gramaacutetica G (N C S R Attr P)

N = Diagrama GrupoClaseObjeto

S = Diagrama

R = mensaje mensajeTiempo mensajeRetomo mensajeAsincrono mensajecrea mensajeDestruye autodestruccioacuten recursividad

R

Attr = entrada salida entradacrea

39

Desarrollo de la herramienta

Definiendo la posicioacuten de los atributos en los elementos visuales

entradacrea ObetaClase

entrada

salida

P =

Diagrama I GrupoClaseObjeto (mensaje (mensajeRetorno

(salida 1) (entrada 2) ) (salida 2) (entrada 1) )

- Diagrama 0 GrupoClaseObjeto

(mensaje (mensaje (mensajeRetomo (mensajeRetomo (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entradacrea 2) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 1) ) (salida 1) (entrada 1) )

entrada

salida

40

Desarrollo de la herramienta

s

-

GrupoClaseObjeto - 1 1 I 2 (mensaje (mensaje (mensajeRetorno (mensajeRetorno (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entradacrea 2) ) (salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 1) ) (salida I ) (entrada I ) )

1 En las gramaacuteticas relacionales una produccioacuten estaacute acompantildeada de las posibles

relaciones que puedan generarse En la primera produccioacuten Diagrama produce a un Actor seguida de un GrupoClaseObjeto el Actor inicia la interaccioacuten con un mensaje y recibe el mensaje de retorno al finalizar la interaccioacuten La segunda y tercera produccioacuten son similares debido a que un GrupoClaseObjeto contiene dos ClaseObjeto que se relacionan de la misma forma

Existe un elemento de la gramaacutetica llamado Attr (Atributo) el cual define la parte de los elementos visuales donde se establecen las relaciones Se han determinado dos atributos (entrada y salida) que para nuestro propoacutesito estaraacuten establecidos en la liacutenea de vida de cada elemento visual (Actor y ClaseObjeto)

Los Comentarios y la Activacioacuten no se consideran en la gramaacutetica Los comentarios son libres de incluirse y relacionarse con cualquier elemento y relacioacuten mencionada anteriormente y la activacioacuten existe siempre que se presente un mensaje (o podriacutea omitirse) Estas consideraciones se realizaron para hacer auacuten maacutes faacutecil la gramaacutetica ya que si se trata de realizar un sistema las restricciones de estos elementos pueden mantenerse en el lenguaje de programacioacuten en el que se desarrolle el sistema

36

Precondiciones

El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias

1 El diagrama de Clases debe existir y estar completo 2 Debe existir un archivo con un diagrama de Warnier por cada diagrama de Clases y

con el mismo nombre de archivo (excepto la extensioacuten del archivo) 3 En el uacutenico diagrama de Warnier de cada Clase se deben modelar todos los meacutetodos

de la Clase 4 No realizar declaraciones de meacutetodos

41

Desarrollo de la herramienta

5 Debe existir un meacutetodo lsquomain()rsquo en el diagrama de Clases

Restricciones

Los meacutetodos deben mantener nombres distintos en las diferentes Clases

Metodologiacutea para la obtencioacuten automaacutetica de los Diagramas de Secuencias

1 Seleccionar el diagrama de Clases

2 Se construye una lista con los nombres de las Clases y los Meacutetodos

3 Se verifica si exista el meacutetodo lsquomain()rsquo en alguna Clase Se busca la existencia de una uacutenica Clase

a La Clase que contenga lsquomain()rsquo se va al inicio de la lista de Clases

b Si no existe lsquomain()rsquo SE TERMINA EL PROCESO

4 Se verifica la existencia de los archivos que contienen el Disentildeo Detallado de los meacutetodos en Wamier para cada una de las Clases si alguno falta SE TERMINA EL PROCESO

5 Se procesa cada uno de los modelos del Disentildeo Detallado de los Meacutetodos generando una lista de secuencias de llamadas por cada uno de los meacutetodos

6 Se verifica que cada llamada corresponda a alguacuten meacutetodo existente (del diagrama de Clases) De no existir ese meacutetodo la llamada entra a una estructura que

7 Se crea una lista de secuencia

a Se inicia con lsquomain()rsquo b Se recorre cada una de las llamadas de los meacutetodos c Se considera invaacutelido el caso de que un meacutetodo intente una llamada

recursiva al meacutetodo lsquomain()rsquo

8 Se muestra un diaacutelogo de resultados en el que se indican las llamadas que no se encnotraron definidas y que pueden ser Llamada a libreriacutea oacute Llamada Erroacutenea

42

Capiacutetulo 4

Prue6as y su6taaacuteos

En eacuteste capiacutetulo se da a conocer el detalle de las pruebas y de los resultados obtenidos Se describen los casos de prueba con los que se realizoacute la evaluacioacuten del sistema asiacute tambieacuten se presentan comentarios acerca de los resultados obtenidos

Pruebas y Resultados

41 Recursos teacutecnicos utilizados

Para llevar a cabo las pruebas al sistema S3C se utilizaron los siguientes equipos de Coacutemputo

Computadora de escritorio

256MB RAM Disco Duro 80G Monitor 17rdquo SAMSUNG

AMD Athlon XP 1600+ I4Ghz

Computadora de escritorio Intel Pentium 4 - 128MB RAM Disco Duro 40G Monitor 15rdquo i -

42 Descripcioacuten del plan de pruebas

Las pruebas establecen el Uacuteltimo paso desde donde es posible evaluar la calidad y descubrir los errores Las pruebas y la validacioacuten del software se utilizan para comprobar que el sistema cumple con las expectativas del usuario

En esta seccioacuten se describen los casos de prueba que se realizaron al prototipo de S3C en conjunto a la suite cenidet-UML Para cada uno de los casos se presenta el objetivo el procedimiento que se siguioacute para la prueba y se muestran los resultados obtenidos - _

Las pruebas a realizar son los siguientes

Caso 1 Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Caso 2 Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Wamier

Caso3 Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Wamier

Caso4 Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo 5

44

Pruebas y Resultados

43 Resultados

431 Caso 1

5 Y

IZ =

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoSirdquo 4 Seleccionar el archivo ldquoVENTASrdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 41 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

s3c iuevo Proyecto SCUM1

Diagrama de clases

lvendedor I L

3

salida

venta prod

4 venia-oferta vcntaprod =

salida 6

Figura 41 Resultado del caso de prueba 1

45

Pruebas y Resultados

432 Caso 2

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Warnier (almacenwar cajawar vendedorwar) que ya cxisten (del caso de prueba I )

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoNordquo 4 Agregar las siguientes Clases con los respectivos meacutetodos y atributos

a Claseldquovendedorrdquo Meacutetodos ldquoventa mainrdquo b Claseldquoalmacenrdquo Meacutetodos ldquoentrada salidardquo c Claseldquocajardquo Meacutetodos ldquoventagrodrdquo

5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 42 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

Diagrama de daseo lisgrama dcsccucncis

MOIDOC Anivo

venta prod

salida

1 Ycrdquo1a 2

I 4 vcrdquolD~o1cn venta prod gt

salida 6 i Figura 42 Resultado del caso de prueba 2

46

Pruebas y Resultados

r

433 Caso 3

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Warnier

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 43 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

5

Error al tratar de abrir el archivo A bZwar

Aceptar i

Faltan Archivos de Disentildeos Detallados de Meacutetodos 1 1 A No se puede crear el diagrama de secuencias

Figura 43 Resultado del caso de prueba 3

47

Pruebas y Resultados

434 Caso 4

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 44 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

lsquo I

~ _ i i _ l _ Repaado ~~ ~ ~ 6~ ampA Figura 44 Resultado del caso de prueba 4

48

Pruebas y Resultados

PRUEBA DESCNPCION CASO 1 Mostrar la funcionalidad del

Sistema S3C a partir de un

44 Anaacutelisis de Resultados

RESULTADOS Se comproboacute la correcta funcionalidad del Sistema S3C a partir de un diagrama

CASO 3

CASO4

I diagrama de Clases cxistcnte I de Clases existente CASO 2 I Mostrar la funcionalidad del I Sc comproboacute la corrccta funcionalidad

Sistema S3C a partir de un del Sistema S3C a partir de un diagrama diagrama de Clases que se de Clases que se construye al momento construye al momento Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el Secuencias si falta alguno de los diagrama de Secuencia si falta alguno diagramas de Warnier Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el secuencias si hace falta el meacutetodo diagrama de Secuencias al faltar el ldquomain ()rdquo meacutetodo ldquomain()rdquo

de los diagramas de Warnier

Los resultados obtenidos de cada uno de los casos establecidos demuestran que se validoacute la funcionalidad del prototipo con los requisitos definidos en el alcance de este proyecto

a lt

49

Conclusiones y Tru6ajos Futuros

Aquiacute se dan a conocer las conclusiones y se describen los posibles trabajos futuros para la continuacioacuten de eacuteste proyecto

F

51 Conclusiones

Conclusiones y trabajos futuros

Se ha creado un Ambiente Visual que permite obtener de forma automaacutetica los Diagramas de Secuencias en base a los diagramas de Clases y al disentildeo detallado de los meacutetodos descritos con diagramas de Warnier cumpliendo con los objetivos planteados para este trabajo

La tesis aporta principalmente La generacioacuten automaacutetica de los diagramas de secuencias y la eliminacioacuten de inconsistencias al mantener una validacioacuten directa de los diagramas de clases y los diagramas de Warnier que son utilizados

Esta validacioacuten es lograda a traveacutes del uso de la gramaacutetica visual relaciona1 que se ha definido (veacutease el capiacutetulo 3) Esta gramaacutetica visual establece reglas para la correcta construccioacuten de los diagramas de secuencias

P De esta manera se establece que la hipoacutetesis ldquoEs posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodosrdquo Es verdadera

52 Trabajos Futuros

Un Diagrama de Secuencias puede convertirse en un Diagrama de Colaboracioacuten por lo tanto un trabajo futuro es la construccioacuten automaacutetica de un Diagrama de Colaboracioacuten a partir de uno de Secuencias existente

Es posible calcular la meacutetrica de acoplamiento al tener un Diagrama de Secuencias construido

La Ingenieriacutea directa de un Diagrama de Secuencias estableciendo la validacioacuten en la construccioacuten de todos los elementos visuales que UML define

La propagacioacuten de las modificaciones de un Diagrama de Secuencias a los Diagramas de Clases y los Diagramas de Warnier

La modificacioacuten del coacutedigo fuente mediante los cambios establecidos en un Diagrama de Secuencias

51

[ALC03]

[BLA98]

[B0099]

[BOOOi]

[BR097]

[CHA90]

[DAN02]

[GLA02]

[HAC98]

[HER03]

4

Alcate1 Computer Associates International inc Electronic Data Systems Corporation Hewlett-Packard Company IBM Corporation I-Logix IntelliCorp Kabira Technologies Kennedy Carter Microsoft Corporation Object Management Group Oracle Corporation Project Technology Ptech Inc Rational Software Corporation Reich Technologies Softeam Taskon A S Telelogic Unisys Corporation ldquoOMG Unified Modeling Language Specificationrdquo Version 15 Unified Modeling Language 2003

Blaha Michael Rumbaugh James Premerlani William Eddy Frederick Lorensen William ldquoObject-oriented modeling and designrdquo Prentice Hall 484 Paacuteginas ISBN 0-13-629841-9 QA-769-03S-B53-19981998

Booch Grady Rumbaugh James Jacobson Ivar ldquoEl lenguaje unificado de modeladordquo Addison Wesley 432 Paacuteginas ISBN 84-7829-028-1 1999

Booch Grady Rumbaugh James Jacobson Ivar ldquoThe Unified Modeling Language User Guiderdquo Addison Wesley 2001

Brown David ldquoAn introduction to object-oriented analysis objects in plain Englishrdquo John Whiley amp Sons Inc 700 Paginas ISBN 0-471-1 1028-0 QA-769-035-B76-1997 1997

Chang Shi-Kuo ldquoVisual Languages and visual programmingrdquo Plenum Press 340 Paacuteginas ISBN 0-306-43428-8 QA-7665-V57-1990 1990

Daniels John ldquoModeling with a sense of purposerdquo Design - IEEE Software JanuaryEebmary 2002

Glasgow Universidad Reino Unido ldquoA UML Editor in Javardquo (lthttplstudentsdcsglaacuWstudentspainjfproject-reportproject-re port-htmV4thYearReporthtrnlgt 2002)

T Hackos JoAnn C Redish Janice ldquoUser and Task Analysis for Interface Designrdquo Wiley Computer Publishing 488 Paacuteginas ISBN QA-769-U83- H33-1998 1998

Hemaacutendez Velaacutezquez M ldquoIngenieriacutea inversa de coacutedigo fuente en C++ para la obtencioacuten de su disentildeordquo Tesis AT-379 (03-0334) 2003

Conceptos generales

[HIX93]

[JAC93]

[JAC99]

[JOY98]

[LAR97]

[MAR]

[MIC99]

[MIC02]

[MOU98]

Hix Deborah Hartson H Rex ldquoDeveloping user interfacesrdquo 381 Paacuteginas ISBN 0-471-57813-4 QA-769-U83-H59-1993 1993

Jacobson Ivar Christerson Magnus Jonsson Patrik Overgaard Gunnar ldquoObject oriented software engineeringrdquo Addison Wesley ISBN 0-20 1 - 54435-0 QA-7676-D47-J63-1993 1993

Jacobson Ivar Booch Grady Rumbaugh James ldquoEl proceso unificado de desarrollo de softwarerdquo Addison Wesley 438 Paacuteginas ISBN 84-7829-036- 2 1999

Joyanes Aguilar Luis ldquoProgramacioacuten orientada a objetosrdquo McGruw Hill ISBN 84-481-0590-7 1998

Larman Craig ldquoAplying UML and Patternsrdquo Prentice Hull 507 Paacuteginas ISBN 0-13-748880-7 QA-769-035-L37-1997 1997

Marriot Kim Meyer Bemd ldquoVisual Language Theoryrdquo Springer 381 Paacuteginas P-935-V567-1998 1998

Microsoft ldquoMicrosoft Visual C++ 6 manual del programadorrdquo McGraw Hill ISBN 84-481-2127-9 QA-7673-Cl53-23718-1999 1999

Microsoft ldquoVisiordquo (lthttpwwwmicrosoftcomofficevisiogt 2002)

B Mourao Luis X ldquoUniversal Modeling Language Part 11 UML Notation - Case Sequence and Collaboration Diagramsrdquo Lan Times Magazine (~httpwwwlantimescomltpartsdiscussdiscuss6Ohtm~) 1998

No Magic ldquoMagicDrawrdquo (lthttpwwwmagicdrawcomgt 2002)

Object Insight ldquoJvisionrdquo (lthttpwwwobject-insightcomgt 2002)

Rational Software Microsoft I Hewlett-Packard Oracle Sterling Software MCI Systemhouse Unisys ICON Computing IntelliCorp i-Logix IBM ObjectTime Platinum Technology Ptech Taskon Reich Technologies Sofieam ldquoUML Summaryrdquo Version 11 Unified Modeling Language 1997

Rational ldquoRational Roserdquo (lthttpwwwrationalcomproductosrosegt 2002)

Rikki Kirzner ldquoAnalysis Modeling and Design Tools Market Forecast and Analysis 2001-2005rdquo Bulletin Published Under Services Application Design and Construction Tools Application Development and Deployment Strategies Documento Nuacutemero 24809 Junio 2001

53

Conceptos generales

[RIM92] Rimrner Steve ldquoGraphical user interface programmingrdquo 423 Paacuteginas

1992

Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language reference manualrdquo Addison Wesley 550 Paacuteginas ISBN 0-201-

ISBN 0-8306-2475-9 ISBN 0-8306-2472-4 (pbk) QA-769-083-R55G

[RUM99]

30998-X QA-7676-D47-R85-1999 1999

[RUM299] Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language user guiderdquo Addisoiz Wesley 482 Paacuteginas ISBN 0-201 -57 168-4 QA-7676-D47-B66-1999 1999

[SMA02] SmartDraw ldquoSmartDrawrdquo (lthttpwwwsmartdrawcomgt 2002)

[SHU88] 9 - Shu Nun C ldquoVisual Programmingrdquo Van Nostrand Reinhold ISBN 0-422- 28014-9 ISBN 0-422-01 164-4 QA-7665-S55 1988

[THI90] Thimbleby Harold ldquoUser Interface Designrdquo Acm press 470 Paacuteginas ISBN 0-201 -41 61 8-2 QA-769U83-T772~- 1990 1990

[WENO2] Wences Diaz MF ldquoModelo de Ingenieriacutea Inversa para la obtencioacuten de disentildeo detallado basado en LEVISSrdquo Tesis (02-0014) 2002

54

Anexo A

Conampuracioacuten de Microsoft Vkua[C++ 6 O

Este anexo indica las configuraciones que se utilizaron para la compilacioacuten de SCUML y s3c

Configuracioacuten de Microsoft Visual c++ 60

Debido a la integracioacuten de los proyectos de InverSOODA e InverDDVi con S3C se cumplioacute con los requisitos previos de ambos proyectos

El compilador usado en el proyecto fue el Microsoft Visual C++ 60

Para el cumplimiento con la funcionalidad de InverSOODA se instaloacute el ANTLR la versioacuten 271 Se descargoacute del sitio l i l l ~ ~ ~ ~ ~ ~ t l ~ l ~ - ~ t - ~ la versioacuten mencionada en un archivo comprimido (en formato zip) Se colocoacute el paquete descomprimido en el directorio ldquoDIANTLR-271 I rdquo

Recomiendo ampliamente que el directorio principal de ANTLR se copie en el directorio raiacutez de cualquier unidad de disco debido a que experimenteacute problemas de compilacioacuten cuando ANTLR no se encontraba en el directorio raiacutez

Io015

Source Browser AlttF12 I u c Ersquo V I

Visual Component Mgnager

- - ~ ~ ~ ~~

P2 Registrar control

A Contenedor de prueba de controles ActiveX

A Usor de objetos OLE y COM

Buacutesqueda de errores

A Y++ MFC Iracer

Customize options

~ - q- ~ Macro

Eecord Quick Macro Cbl+ShiR+R Pay Quick Macro Ctrl+ShiR+P

En el menuacute Tools (Herramientas) seleccione el sub-menuacute Options ltopcionesgt

56

Configuracioacuten de Microsoft Visual C++ 60

En la siguiente ventana de diaacutelogo debe agregar la direccioacuten en donde se encuentra el ANTLR

Agregar la ruta del directorio de ANTLR hasta el subdirectorio

libcpp

Editor I Tabs I Debug I Compatibility 1 Build Dneclolies I a I Chow directories for - Platfolm -

- Directories I x ) 4 jWin32 -] llnclude files

m cancd I

57

Configuracioacuten de Microsoft Visual C t+ 60

Se ha creado una libreriacutea (anrlrliblib) de ANTLR la cual ya estaacute situada en el directorio del proyecto SCUML (ISCUML) y no debe ser movida o eliminada

I

Geneial 1 Debug I CC++ Link I Category

Output file name bebugSCUMLexe

Objectljibrary modules 4 anllrliblib

li Generate debug lnfo r Ignore all defaull lbaries D ~ i n k j n ~ ~ ~ t a n ~ r ~ e n e r ~ ~ ~ mapfile

r Enable psafilrng

Proiec1 Ootionn

pq Cancel 1 Libreriacutea de ANTLR que debe existir 1 I para que se compile correctamente

58

Anexo B

~ u iacute aacute raacutepida de uso deC Sistema S3C

5 Este anexo indica de forma raacutepida la manera de utilizar S3C para crear un diagrama de secuencias de forma automaacutetica

Guiacutea Raacutepida de uso del Sistema S3C i

Para indicar la creacioacuten de un diagrama de secuencias en forma automaacutetica se debe ir a la barra del costado izquierdo y presionar ldquoNuevo Proyecto SCUMLrdquo

I s3c I ~ Nuevo Proyecto SCUML ~ _ _ - I Diagrama de clases ~ Diagrama de secuencias 1 MDI DOC Activo

-

Apareceraacute un documento llamado ldquoSCUMLV en donde el simbolo corresponde a un numero consecutivo iniciando desde 1 (uno)

$ e Despueacutes se presiona ldquoDiagrama de clasesrdquo Habraacute que para indicarle al sistema si se requiere abrir un diagrama de clases existente o realizar uno nuevo

i

iquestAbrir un documento existente

No Cardquo~ear

AI presionar ldquoSirdquo se debe indicar cual es el archivo del diagrama de Clases en el cuadro de diaacutelogo siguiente

~~ - 11dMis documentos rsquo 2 M i P C i lsquo h s sitios de red

I

AI presionar ldquoNordquo en ldquoAbrir un documento existenterdquo se nos mostraraacute un documento vacio para crear un diagrama de clases

60

Guiacutea Raacutepida de uso del Sistema S3C

Para ambas opciones se requiere que los diagramas de Wamier ya se encuentren construidos Y para continuar el proccso se selecciona el documento ldquoSCUMLVrsquo creado al inicio y despueacutes presionar el botoacuten nombrado ldquoDiagrama de secuenciasrdquo localizado en la barra de hcrraiiiicntas del costado izquierdo

Ha iniciado el proceso de construccioacuten del diagrama de secuencias Si no existen errores al terminar el proceso se le mostraraacute un cuadro de diaacutelogo llamado ldquoResultadosrdquo en donde le mostraraacute las llamadas de las que no localizoacute su definicioacuten

- - -

Cancel 1 D e las siguientes llamadas es posible que esten mal escritas o peitenezcan a la libreiia del Lenguaie Verifique ya que no se encontraron sus definiciones

A continuacioacuten se mencionan los posibles errores que finalizan el proceso de la creacioacuten automaacutetica de los diagramas de secuencias en S3C

Cuando no exista un meacutetodo lsquomainrsquo definido en el diagrama de clases

No se encontro el meacutetodo lsquomain()rsquo que inicie la secuencia I A No se puede crear el diagrama de secuencias

p==amp=q

61

Guia Raacutepida de uso del Sistema S3C

Cuando se definan niultiples metodos lsquoinainrsquo en el diagrama de clases

Multiples meacutetodos lsquomainOlsquo Imposible decidir el inicio de secuencia

Aceptar i

Si un meacutetodo definido en Wamier realiza una llamada a lsquomainrsquo se cancelara el proceso

Llamada NO VALIDA al meacutetodo principal main

(iAcp-j(

4 i

CI Y rdquoldquoldquoI i 11 1-T

IZNTRO Gt INFORMACION

62

  • Tabla de Contenido
  • Listado de Figuras
  • Listado de Tablas
  • Notacioacuten
  • Introduccioacuten
  • Capitulo 1 Conceptos Generales
    • 11 Antecedentes
    • 12 Trabajos relacionados
      • 121 Tabla comparativa
        • 13 Definicioacuten del problema
        • 14 Objetivo de la Tesis
          • Objetivos especiacuteficos de la tesis
            • 15 Hipoacutetesis de investigacioacuten
            • 16 Alcances y limitaciones del trabajo de tesis
              • Capitulo 2 Marco Teoacuterico
                • 21 Modelado de sistemas de software
                • 22 Interfaz de usuario (Mecanismos de interaccioacuten)
                • 23 Lenguajes Visuales
                • 24 Programacioacuten orientada a objetos
                • 25 Lenguaje de Modelado Unificado (UML)
                  • Desarrollo de la herramienta
                    • 31 Disentildeo de la Arquitectura
                      • 311 Requisitos (Diagrama de Casos de uso)
                        • 312Modelo Conceptual
                        • 313Diagramas de clases
                        • 32 Elementos de la arquitectura
                          • 321 Microsoft Foundation Class (MFC)
                            • 322Arquitectura Documento Vista
                            • 323Integrando Ambientes en Visual c++
                              • 324 Interfaz de Muacuteltiples Documentos (MDI)
                                • 325Recursos Diaacutelogos Menus y Barras de Herramientas
                                  • 326 Notacioacuten estaacutendar
                                  • 327 Estructura de datos persistencia y recuperacioacuten
                                    • 328Patrones de disentildeo utilizados
                                      • 33 Diagrama de secuencias
                                        • 331Ciclo de vida del software
                                          • 34 Elementos atoacutemicos de la Gramaacutetica
                                            • 341 Representacioacuten visual
                                              • 35 Gramaacutetica desarrollada
                                              • 36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias
                                                  • Capitulo 4 Pruebas y Resultados
                                                    • 41 Recursos teacutecnicos utilizados
                                                    • 42 Descripcioacuten del plan de pruebas
                                                    • 43 Resultados
                                                      • 431 Caso
                                                      • 432 Caso2
                                                      • 433 Caso
                                                          • Conclusiones y trabajos futuros
                                                            • Trabajos futuros
                                                            • Referencias
                                                            • Anexo A Configuracioacuten de Microsoft Visual C+t
                                                              • Figura 11 - Arquitectura de la suite cenidet-UML
                                                              • Figura 21 -Programacioacuten Visual
                                                              • Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de
                                                              • Figura 32 -Diagrama de Casos de Uso para el S3C
                                                              • Figura 33 -Modelo Conceptual
                                                              • Figura 34 - Diagrama de Clases -Control del Diagrama -
                                                              • Figura 35 - Diagrama de Clases - Patroacuten Visitor -
                                                              • Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento
                                                              • Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)
                                                              • Figura 38 -Dialogo Caracteriacutesticas del Objeto
                                                              • Figura 39 -Dialogo Mensaje
                                                              • Figura 3 IO - Menuacute de los Diagramas de Secuencias (estaacutendar)
                                                              • Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias
                                                              • Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)
                                                              • Figura 313 - Serializacioacuten
                                                              • Figura 314 -Modelo de cascada del ciclo de vida del software
                                                              • Figura 41 - Resultado del caso de prueba
                                                              • Figura 42 -Resultado del caso de prueba
                                                              • Figura 43 -Resultado del caso de prueba
                                                              • Figura 44 -Resultado del caso de prueba
                                                              • Tabla 11 - Tabla comparativa
                                                              • Tabla 31 -Prefijos estaacutendar de identificadores
                                                              • Tabla 32 -Elementos atoacutemicos del lenguaje
                                                              • Tabla 41 - Resumen de los resultados de las pruebas realizadas

Marco teoacuterico

Visualizacioacuten de Entrenamiento visual Para controlar Soportar interaccioncs Programar con informacioacuten visual visuales expresiones visuales

o Compatibles con los ambientes de trabajo de los usuarios o Se extienden sobre un concepto de disentildeo que es familiar al usuario o Tienen consistencia de presentacioacuten que los hace parecer maacutes confiable y faacuteciles de

aprender o Usan lenguaje y figuras familiares al usuario o faacuteciles de aprender

Datos o informacioacuten acerca de datos

23 Lenguajes Visuales

Los lenguajes visuales son un nuevo paradigma para expresar los sistemas computacionales Ellos ofrecen la posibilidad de manipular directamente los objetos Un lenguaje visual consiste de sentencias visuales Para lenguajes visuales basados en iacuteconos cada sentencia visual es un arreglo espacial de objetos O iacuteconos graacuteficos [CHA90]

Un lenguaje visual es concebido como una coleccioacuten de figuras obtenidas por un arreglo graacutefico de objetos en dos o maacutes dimensiones Los lenguajes visuales pueden ser modelados sintaacutecticamente a traveacutes de un vocabulario un conjunto de relaciones usadas para componer las figuras y un conjunto de reglas describiendo las figuras pertenecientes al lenguaje Los objetos graacuteficos de un vocabulario de un lenguaje visual se caracterizan por contar con un conjunto de atributos Los atributos de un objeto graacutefico pueden ser atributos graacuteficos atributos sintaacutecticos y atributos semaacutenticos [MAR98]

Un lenguaje de programacioacuten visual puede ser informalmente definido como un lenguaje el cual usa algunas representaciones visuales [SHV88]

Programa ylo Disentildeo de Lenguajes de programacioacuten visual ejecucioacuten software Diagramas iconos Formas

Programacioacuten Visual [SHU88]

Gramaacuteticas para la especificacioacuten de lenguajes visuales [MAR98]

a) Gramaacuteticas texfuales generalizadas Este tipo de gramaacutetica provee una adaptacioacuten apropiada de la concatenacioacuten de siacutembolos para dos dimensiones Su principal ventaja es que conservan los elementos teoacutericos de las gramaacuteticas textuales y los eficientes algoritmos de anaacutelisis de eacutestos uacuteltimos Su principal desventaja es que eacutestas gramaacuteticas no son tan poderosas y soacutelo pueden especificar clases restringidas de lenguajes visuales

13

Marco teorico

b) Meacutetodos basados en gramaacuteticas de grafos Un ejemplo de este tiPo de gramaacuteticas son las gramaacuteticas de red Las oraciones generadas con gramaacuteticas de red son grafos dirigidos con siacutembolos en los nodos Estos grafos son llamados redes Una produccioacuten de eacuteste tipo de gramaacuteticas es de la siguiente forma

a - t p E

donde a y p son redes y E es una forma de conectar a p cuando a es conectada a otra red anfitriona

La mayor desventaja es que las gramaacuteticas de red no han probado ser totalmente uacutetiles para la especificacioacuten de gramaacuteticas arbitrarias por la complejidad para rescribir grafos y al hecho de que no todo lenguaje visual estaacute compuesto exclusivamente por grafos

C) Gramaacuteticas de multiconjuntos de atributos En estas gramaacuteticas las producciones rescriben conjuntos o multiconjuntos de siacutembolos que tienen atributos con informacioacuten sobre geometriacutea o semaacutentica La reescritura se controla con restricciones sobre los atributos de los siacutembolos en el lado derecho de las producciones

Un ejemplo de eacutestas gramaacuteticas es la Gramaacutetica Coordinada que especifica notacioacuten matemaacutetica de dos dimensiones En esencia las producciones en una gramaacutetica coordinada n-coordinada libre del contexto tienen la siguiente forma

A -t a donde C F

Todos los siacutembolos de eacuteste tipo de gramaacutetica tienen n atributos geomeacutetricos A es un siacutembolo no terminal a es una cadena no vaciacutea de siacutembolos C es una restriccioacuten sobre los atributos de los siacutembolos en a y F es una expresioacuten que computa los atributos de los siacutembolos de A en teacuterminos de los atributos de los siacutembolos en a no importando el orden de los siacutembolos en a

d) Gramaacuteticas PosicionaZes Las gramaacuteticas posicionales son un formalismo para la definicioacuten e implementacioacuten de lenguajes visuales las gramaacuteticas posicionales extienden naturalmente a las gramaacuteticas libres de contexto Una gramaacutetica libre de contexto posicional PG es una six-tupla (N T S P POS PE) donde

N es un conjunto finito no vaciacuteo de siacutembolos no terminales T es un conjunto finito no vaciacuteo e siacutembolos terminales con N n T = $I S E N es el siacutembolo no terminal de inicio P es un conjunto finito de producciones POS es un conjunto finito de identificadores de relacioacuten binaria PE es un evaluador pictoacuterico

14

Marco teorico

Cada produccioacuten en P tiene la siguiente forma

A -+ X I R I X R2 X ~ I Rm1 xm A

e) Gramaacuteticas de Relacioacuten de siacutembolos Eacuteste es un formalismo sintaacutectico para describir un lenguaje visual donde cada oracioacuten dentro del lenguaje se representa como un conjunto de objetos visuales y un conjunto de relaciones entre objetos

El alfabeto de siacutembolos Vt y el conjunto de relaciones entre siacutembolos Vr una oracioacuten de relacioacuten de siacutembolos w sobre Vt y Vr es un par ( M R) donde

M es un conjunto de elementos-s (v i) con v E Vt y i es un nuacutemero natural R es un conjunto de elementos-r de la forma r (Xi Yj) con Xi Yj E M r E Vr y una relacioacuten r esta contenida entre Xi y Yj

Una gramaacutetica de relacioacuten de simbolos es el conjunto de seis elementos G = (Vn Vt Vr S P R) donde Vn es un conjunto de siacutembolos no terminales Vt es un conjunto de siacutembolos terminales Vr es un conjunto de relaciones entre siacutembolos S es el siacutembolo inicial y P es un conjunto de reglas de reescritura (producciones de elementos-s)

f) Gramaacuteticas relacionales Este tipo de gramaacutetica pertenecen a las gramaacuteticas libres de contexto

La gramaacutetica relaciona1 (RGrsquos) es una 6-tupla G (N C S R Attr P) donde

N C S R Attr P

es un conjunto finito de siacutembolos no terminales es un conjunto de siacutembolos terminales es un siacutembolo distinguido en N llamado siacutembolo inicial es un conjunto finito de siacutembolos de relacioacuten es un conjunto finito de siacutembolos de atributos es un conjunto de producciones de la forma A-gt apF donde A E N a E (nlo)+ Donde n E N cr E E

8 Es un conjunto de relaciones de la forma (r x y) donde r E R y xy son enteros que hacen referencia a un miembro de a y tambieacuten una expresioacuten de la forma (a i) donde a E Attr e i es un entero que hace referencia a un miembrode a

F Es un conjunto de declaraciones de asignacioacuten de caracteriacutesticas de la forma (a O)=x donde a E Attr y x es un entero que hace referencia a un miembro de a o a una expresioacuten de la forma (a i)

15

Marco teoacuterico

24 Programacioacuten orientada a objetos

L~~ meacutetodos orientados a objetos organizan la informacioacuten Y el procesamiento que manipula esta informacioacuten de acuerdo a los objetos delrsquomundo real que la informacioacuten describe [BRO97l

Beneficios de las teacutecnicas orientadas a objetos [BR097] Estabilidad del sistema Mantenibilidad Componentes reusables Confiabilidad Accesibilidad de los datos Participacioacuten del usuario

Seguacuten Graddy Booch la programacioacuten orientada a objetos es ldquoun meacutetodo de implementacioacuten en el que los programas se organizan como colecciones cooperativas de objetos cada uno de los cuales representan una instancia de alguna clase y cuyas clases son todas miembros de una jerarquiacutea de clases unidas mediante relaciones de herenciardquo [JOY 981

Programacioacuten orientada a objetos esencialmente significa programacioacuten usando objetos [JAC93] Los lenguajes orientados a objetos deben soportar los siguientes conceptos

Objetos Abstraccioacuten de datos Encapsulamiento Clases e Instancias Herencia entre clases Polimorfismo

Las propiedades fundamentales de la Programacioacuten Orientada a Objetos son

a Abstraccioacuten Son ideas conceptos y propiedades que se describen en forma general eliminando los detalles Es una estructura de datos y los meacutetodos que manipulan a esos datos

b Encapsulamiento Son las fronteras propias de un objeto bien definidas las cuales protegen los detalles de su representacioacuten interna

c Ocultacioacuten de la informacioacuten Es la propiedad en la que los objetos pueden hacer uso para impedir que otros objetos los usuarios o incluso los programadores conozcan coacutemo estaacute distribuida la informacioacuten

d Herencia Es la propiedad que tiene una clase para heredar atributos y comportamiento a otras clases

e Polirnorfismo Es la propiedad que permite que una entidad pueda cambiar a diferentes formas efectuaacutendose de manera dinaacutemica en tiempo de ejecucioacuten

16

Marco teoacuterico

t

Clases Es la especificacioacuten de una familia de objetos es la declaracioacuten de un tipo de objetos Tambieacuten se dice que una clase es la descripcioacuten de un conjunto de objetos con un comportamiento similar y que esta compuesta de Datos (o atributos) y Meacutetodos o (rutinas acciones operaciones)

Objeto Un objeto es una entidad en la cual se almacenan datos y los meacutetodos o funciones que controlan dichos datos Un objeto es una abstraccioacuten de alguna cosa del mundo real que contiene datos que lo describen y operaciones que solo tienen acceso a esos datos [BR097l Los elementos de los que esta conformado un objeto son

a Las relaciones permiten que el objeto se integre en la organizacioacuten b Las propiedades son los datos que caracterizan el estado de un objeto distinguiendo

asiacute a un objeto determinado de los restantes que forman parte de la misma organizacioacuten

c Los meacutetodos son las operaciones que pueden realizarse sobre la estructura del objeto es decir las acciones que cambian el estado de un objeto y que el objeto es capaz de ejecutar a traveacutes de mensajes y que tambieacuten pone a disposicioacuten de sus descendientes a traveacutes de la herencia

Mensajes Son solicitudes para que se lleve a cabo la operacioacuten indicada y se produzca un resultado

Las razones principales para introducir la tecnologiacutea de objetos son los beneficios de dicha tecnologiacutea

Aumento de la fiabilidad Aumento de la productividad del desarrollador Desarrollo maacutes raacutepido Mejor calidad maacutes alta

Incremento en escalabilidad Mejores estructuras de informacioacuten Incremento de adaptabilidad Reduccioacuten del coacutedigo fuente

Mantenimiento maacutes faacutecil y reduccioacuten de costo

Los elementos de reutilizacioacuten son las clases y objetos

25 Lenguaje de Modelado Unificado (UML)

UML (Unified Modeling Language por sus siglas en ingleacutes Lenguaje de Modelado Unificado) es un lenguaje de modelado visual de propoacutesito general que es utilizado para especificar visualizar construir y documentar las partes de un sistema de software El lenguaje estaacute basado en un pequentildeo nuacutemero de conceptos centrales que la mayoriacutea de los desarrolladores de tecnologiacutea orientada a objetos pueden aprender y aplicar faacutecilmente [RUM99]

17

Marco teoacuterico

y UML Pasado Presente y Futuro

L~~ lenguajes de modelado orientado a objetos aparecieron a mediados de 10s 70rsquos Varias teacutecnicas influenciaron estos lenguajes El nuacutemero de lenguajes de modelado incrementoacute desde menos de 10 hasta maacutes de 50 entre 1989 y 1994 Muchos modeladores teniacutean problemas para encontrar un lenguaje de modelado que satisficiera todas sus necesidades Notablemente aparecioacute Boochrsquo93 y la evolucioacuten continuoacute a OMT y Fusioacuten

OOSE (Object-Oriented Software Engineering) estaacute enfocado a la ingenieriacutea de negocios y anaacutelisis de requerimientos dando un excelente soporte orientado a casos de uso OMT-2 es especialmente expresivo para anaacutelisis y sistemas de informacioacuten de datos grandes Boochrsquo93 fue particularmente expresivo para el disentildeo y fases de construccioacuten de proyectos y popular para aplicaciones de ingenieriacutea intensiva

Grady Booch y Jim Rumbaugh iniciaron el desarrollo de UML en 1994 al unificar sus meacutetodos independientes Booch y OMT En 1995 Ivar Jacobson se unioacute a Racional eacutesta unioacuten logroacute que el meacutetodo OOSE se incorporara La unificacioacuten establecioacute que debiacutean activar el modelado de sistemas utilizando conceptos orientados a objeto asiacute como crear un lenguaje usable tanto para las maacutequinas como para los humanos

A

Muchas organizaciones se unieron al consorcio UML y dedicaron recursos al trabajo hacia el fortalecimiento de la definicioacuten de UML Esta colaboracioacuten produjo un lenguaje de modelado expresivo poderoso y generalmente aplicable En la forma actual de UML se espera que sea base de muchas herramientas incluidas las de modelado visual simulacioacuten y ambientes de desarrollo

R UML es abierto y no-propietario y aunque define un lenguaje preciso no es barrera para futuras mejoras en conceptos de modelado Se usan muchas teacutecnicas de punta pero se esperan teacutecnicas adicionales que influencien futuras versiones de UML puede ser extendido sin redefinir el nuacutecleo

c

Mientras el rehuacuteso basado en componentes se ha favorecido ampliamente cada vez mas esto no significa que las teacutecnicas basadas en componentes reemplazaraacuten las teacutecnicas orientadas a objetos Hay solo sutiles diferencias entre la semaacutentica de componentes y clases [ALC03]

Un opaco rendimiento caracterizoacute el mercado de anaacutelisis modelado y disentildeo en el 2000 en su transicioacuten de las viejas herramientas CASE (Computer Aided Software Engineering) a algo maacutes dinaacutemico y mejor adaptado para satisfacer las necesidades de los desarrolladores para el cambio raacutepido en los ambientes de negocio

El mercado de anaacutelisis modelado y disentildeo lograraacute obtener un crecimiento positivo en varios de los siguientes antildeos por varias razones El mercado seraacute manejado principalmente por la necesidad de desarrolladores a obtener aplicaciones para lanzarse al mercado raacutepidamente asiacute tambieacuten por el intereacutes creciente y uso de una nueva especie de herramienta y por el intereacutes creciente de los desarrolladores en usar UML reglas de negocios y adaptadores de componentes para construir aplicaciones [RIKUI]

z -

18

Marco teoacuterico

UML se ha hecho el estaacutendar para los desarrollos de modelado de negocios administracioacuten de requerimientos anaacutelisis y disentildeo programacioacuten y pruebas Los objetivos primarios de UML en el disentildeo [RAT97j

o Dar a los usuarios un lenguaje visual expresivo de modelado listo para usarse para que puedan desarrollar y cambiar los significados de sus modelos

o Suministrar mecanismos de extensibilidad y especializacioacuten para extender los conceptos centrales

o Ser independiente de lenguajes de programacioacuten particulares y procesos de desarrollo

o Impulsar el desarrollo de las herramientas Orientadas a Objeto en el mercado o Soportar conceptos de desarrollo de alto nivel como colaboracioacuten marcos de

componentes reutilizables patrones y componentes o Integrar las mejores praacutecticas

9 El aacutembito de UML

UML es un lenguaje para especificacioacuten construccioacuten visualizacioacuten y documentacioacuten de artefactos de un sistema de software UML es la fusioacuten de los conceptos de Booch OMT y OOSE El resultado es un simple comuacuten y ampliamente usado lenguaje de modelado para usuarios de estos y otros meacutetodos UML se enfoca en un lenguaje de modelado estaacutendar no en un proceso estaacutendar los autores de UML recomiendan un proceso de desarrollo manejado por casos de uso de arquitectura central iterativo e incremental [iiquest4T97l

Para la definicioacuten de sistemas de software en UML se definen diagramas Un diagrama es la representacioacuten graacutefica de un conjunto de elementos este se visualiza la mayoriacutea de las veces como un grafo conexo de nodos (elementos) y arcos (relaciones) Los diagramas se dibujan para visualizar un sistema desde diferentes perspectivas de forma que un diagrama es la proyeccioacuten de un sistema uumlML incluye nueve diagramas [B0099]

4 -

I Diagrama de clases 2 Diagrama de objetos 3 Diagrama de casos de uso 4 Diagrama de secuencias 5 Diagrama de colaboracioacuten 6 Diagrama de estados 7 Diagrama de actividades 8 Diagrama de componentes 9 Diagrama de despliegue

Diagramas de secuencias Un diagrama de secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten comportamiento

Un diagrama de secuencias muestra un conjunto de mensajes acomodados en una secuencia de tiempo eacuteste diagrama muestra la interaccioacuten en un esquema de dos - dimensiones [RUM99]

19

Marco teoacuterico

Y -

Un diagrama de secuencia es un diagrama de interaccioacuten que resalta la ordenacioacuten temporal de los mensajes Un diagrama de secuencia presenta un conjunto de objetos y los mensajes enviados y recibidos por ellos Los objetos suelen ser instancias (con nombre o sin nombres) de clases pero tambieacuten pueden representar instancias de otros elementos tales como colaboraciones componentes y nodos Los diagramas de secuencia se utilizan para describir la vista dinaacutemica de un sistema [B0099]

Usar los diagramas de secuencia es mostrar la secuencia que existe en un caso de uso [RUM 991

Los diagramas de secuencia tienen dos dimensiones Una dimensioacuten que representa el tiempo Otra dimensioacuten que representa los diferentes objetos que participan en la secuencia de eventos requeridos para completar el propoacutesito [MOuuml98]

El principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildea las interacciones de los objetos [DAN02]

20

Capiacutetulo 3

DesawoCCo de Ia herramienta

En este capiacutetulo se describe el desarrollo del Ambiente Visual Se describe el modelo conceptual del sistema la arquitectura asiacute como tambieacuten los elementos que componen la Arquitectura Se estudian los Diagramas de Secuencias de UML y algunos Patrones de Disentildeo de los que se hace uso para el mejor desarrollo del sistema Se describe a detalle la Gramaacutetica Visual Relaciona1 utilizada para el de Ambiente de desarrollo

I CENIOET 1FNTRO DE INFORMACION

Desarrollo de la herramienta

t i i

Actualmente existe en el cenidet un Ambiente Visual de Modelado de Clases llamado InverSOODA este Ambiente Visual tiene la capacidad de realizar la generacioacuten automaacutetica de coacutedigo de las clases en C++ a partir del modelo especificado Ademaacutes se puede realizar la Ingenieria Inversa de un coacutedigo legado para obtener el modelo de clases Aunado a este trabajo existe el Ambiente Visual denominado InverDDVi con el cual se puede realizar el Disentildeo Detallado de los Meacutetodos de las Clases con diagramas de Warnier Asiacute tambieacuten es posible obtener el modelo aplicando la Ingenieriacutea Inversa a un coacutedigo legado en C++

Ambos trabajos son retomados en este proyecto para la automatizacioacuten en la obtencioacuten de los Diagramas de Secuencias de UML La figura 31 muestra el modelo propuesto de ingenieriacutea directa

Extraer informacioacuten del diagrama de

rsquo rsquo

Diagrama de 11 clases I o

detallado de

detallado de

o meacutetodos

i ir---- Construir el

secuencias i

Modelo de Ingenieriacutea I directa automaacutetica

I

Figura 31 Modelo de Ingenieria Directa Autombtica de los Diagramas de Secuencias

Para la construccioacuten automaacutetica de un diagrama de secuencias se toma como base a un diagrama de Clases El modulo ldquoExtraer informacioacuten del diagrama de Clasesrdquo sirve para obtener el nombre y los meacutetodos descritos en cada uno de las clases que existan en el diagrama de Clases

22

Desarrollo de la herramienta

Con base en la informacioacuten que se tiene se abren los archivos correspondientes a los diagramas de Warnier El proceso que se emplea sobre cada uno los diagramas de Warnier llamado ldquoExtraer informacioacuten de los disentildeos detallados de los meacutetodosrdquo sirve para recopilar el conjunto de las llamadas de cada meacutetodo definido

En el siguiente paso (ldquoReconocer llamadas a meacutetodosrdquo) consiste en identificar si los meacutetodos que estaacuten descritos en los diagramas de Warnier tambieacuten lo estaacuten en el diagrama de Clases correspondiente

El paso ldquoConstruir los diagramas de secuencias automaacuteticamenterdquo realiza una validacioacuten de los meacutetodos definidos en los diagramas de Clases con los meacutetodos definidos en los diagramas de Warnier Este paso crea una estructura de datos con la secuencia de las llamadas y la recorre para crear los objetos y los mensajes en el diagrama de secuencias

AI terminar la creacioacuten automaacutetica del diagrama de secuencias se dispone de la r opcioacuten de guardar

31 Disentildeo de la Arquitectura

Para definir los procesos que el sistema va a realizar es necesario llevar a cabo un anaacutelisis de requisitos los cuales pueden ser expresados mediante diagramas de Casos de Uso Los Casos de Uso son una descripcioacuten textual narrativa de los procesos de un sistema

311Requisitos (Diagrama de Casos de uso)

Los casos de uso en realidad no son un artefacto de anaacutelisis orientado a objetos estos describen simplemente procesos y pueden ser igualmente efectivos en un proyecto tecnoloacutegico no orientado a objetos Son usados en un paso preliminar a la descripcioacuten de requerimientos de un sistema [LAR971 La Figura 32 muestra el diagrama de casos de uso que especifica al S3C

9

S3C (Diagramas de Secuencias)

usuario I Modelado de

I

Figura 32 Diagrama de Casos de Uso para el S3C

23

Desarrollo de la herramienta

Descripcioacuten de los Casos de Uso

Caso de Uso ldquoDiagramas de Secuenciasrdquo Se inicia cuando el actor ldquousuariordquo solicita la creacioacuten de un Diagrama de Secuencias Se establece la forma de la construccioacuten automaacutetica de los diagramas de secuencias de UML Se hace uso del Modelado de Clases y del Modelado del disentildeo detallado de los meacutetodos

Escenario de Eacutexito 1 Se obtiene la informacioacuten de las clases del modelado de clases 2 Se obtiene la informacioacuten del modelado del disentildeo detallado de los meacutetodos 3 Se realiza la construccioacuten automaacutetica de los diagramas de secuencias

1 En el modelo de clases no hay informacioacuten o estaacute incompleta 2 En el modelo del disentildeo detallado de los meacutetodos no hay informacioacuten o estaacute

incompleta

Escenario de Falla

Caso de Uso ldquoModelado de Clasesrdquo El diagrama de Clases se utiliza para obtener los nombres de clases y los nombres de los meacutetodos de cada clase

Escenario de Eacutexito 1 Se abre el modelo 2 Se procesa para obtener la informacioacuten de las clases (nombres de clases y nombres

de meacutetodos)

Escenano de Falla h 1 No se puede abrir el modelo J 2 El modelo esta vaciacuteo

Caso de Uso ldquoModelado del Disentildeo detallado 1 los meacutetodosrdquo El disentildeo detallado de los meacutetodos se realiza con diagramas de Warnier aquiacute se establecen las llamadas a funciones dentro del sistema y es aquiacute donde se identifica el dinamismo que se representaraacute en los diagramas de secuencias

Escenario de Eacutexito 1 Se abre el modelo 2 Se realiza la identificacioacuten de las llamadas existentes

Escenario de Falla 1 No se puede abrir el modelo 2 El modelo esta vaciacuteo

24

Desarrollo de la herramienta

Clase Objeto ni I Diagrama I n ____ Nombre Descripcioacuten

i

Mensaje

Tipo

En el Anaacutelisis Orientado a Objetos se crea una especificacioacuteii del dominio del problema y de los requeriinientos desde la perspectiva de una clasificacioacuten por objetos y del entendimiento de los teacuterminos usados en el dominio del problema Una descomposicioacuten del dominio del problema involucra una identificacioacuten de conceptos atributos y asociaciones que son considerados importantes dentro del dominio El resultado puede ser expresado en un Modelo Corzcepttraf el cual es ilustrado en un conjunto de diagramas que definen conceptos (objetos) [LAR97]

312Modelo Conceptual

El modelo conceptual visto en la Figura 33 no es una descripcioacuten de componentes de software representa conceptos en el domino del problema en el mundo Teal [LAR97l

313Diagramas de clases

Por cuestiones dc espacio las clases de la arquitectura del sistema estaraacuten referidas en varios diagramas que de alguna manera estaacuten relacionados entre si

Una de las partes maacutes importantes del Ambiente Visual S3C es la estructura de clases ltCCraJicogt la cual se refiere al control de los diagramas eacutesta por su naturaleza podriacutea considerarse el nuacutecleo del sistema La manipulacioacuten y control de los diagramas estaacute definido en una estructura de clases organizada con el patroacuten de disentildeo Composite que se muestra en la Figura 34

25

Desarrollo de la herramienta

CRecursividadDS CMensajeDS CObjetoDS CDiagramaDS

I Cvisitor I

CApuntadorDS CDblClickDS CAsocAdjusterDS CSelectorDS

26

Desarrollo de la herramienta

n 32 Elementos de la arquitectura

Es necesario describir los elementos que dan soporte a la arquitectura del ambiente donde se implementaraacute el sistema en este caso Microsoft Visual (MV) C++ 6 El MV C++ es un marco de aplicacioacuten poderoso basado en Windows se integran ademaacutes del lenguaje C++ (compilador y enlazador) el programa de desarrollo de programas en lenguaje C para Windows (SDK) la Microsoft Foundation Class Library AppWizzard Classwizard AppStudio y WorkBencli

La Microsoft Foundation Class Library comprende una biblioteca de clases de C++ y es considerada como el nuacutecleo del MV C++

321Microsoft Foundation Class (MFC)

La libreriacutea Microsoft Foundation Class (MFC) es una interfaz orientada a objetos que tiene las siguientes metas de disentildeo

o

Reduccioacuten significante de esfuerzo al escribir una aplicacioacuten para Windows Velocidad de ejecucioacuten comparable a las APIrsquos del lenguaje C Miacutenimo tamantildeo de coacutedigo Capacidad para llamar cualquier funcioacuten de Windows en C directamente Faacutecil conversioacuten de aplicaciones existentes en C a C++ Faacutecil uso de APIrsquos de Windows con C++ como con C Faacutecil uso de complicadas caracteriacutesticas de abstracciones poderosas como ActiveX soporte para base de datos impresioacuten barras de herramientas y barras de estado El API de Windows en C++ si usa tan efectivamente como las caracteriacutesticas mismas del lenguaje C++

La mayoriacutea de las clases de la Libreriacutea de la Microsoft Foundation Class son derivadas de una clase base ltCObjectgt que es la raiacutez de la jerarquiacutea de clases ltCObjectgt da uacutetiles capacidades a las clases que derivan de ella

La jerarquiacutea que existe en las clases derivadas de ltCObjectgt es la siguiente

Arquitectura de Aplicacioacuten Excepciones Servicios de Archivos Arreglos Listas Mapas Servicios de Internet Sockets Sincronizacioacuten Soporte para base de datos D A 0

27

Desarrollo de la herramienta

i

r

Liacutenea de Comandos Menuacute Dibujo Graacutefico Dibujo Graacutefico de Objetos Soporte de Control Soporte de Ventanas

Soporte para base de datos ODBC

o Marco de Ventanas o Barras de control o Hojas de propiedades o Cajas de Dialogo o Vistas o Controles

322Arquitectura Documento Vista

Por defecto las aplicaciones creadas con la MFC usan un modelo de aplicacioacuten que separa los datos del programa de las vistas de interaccioacuten con el usuario En eacuteste modelo un objeto documento de MFC lee y escribe datos en un almacenamiento persistente Un objeto vista administra el despliegue de datos suministrando al usuario los datos para ser seleccionados o editados La vista le comunica al documento cualquier cambio en los datos La razoacuten maacutes conveniente para seguir este modelo es cuando se necesita muacuteltiples vistas del mismo documento (como en una hoja de caacutelculo y un graacutefico)

La arquitectura documentovista hace faacutecil el soporte de muacuteltiples vistas y muacuteltiples tipos de documentos asiacute como la divisioacuten de ventanas y otras caracteriacutesticas de interfaz de usuario Pero el corazoacuten de la arquitectura son cuatro clases (Mostradas en el aacuterbol de clases de la Figura 36)

ltCDocumerrtgt (o ltCOleDocuinentgt) - Se instancia un objeto de este tipo para almacenar y controlar los datos del programa ltCViewgt (o una de sus clases derivadas ltCScrotlViewgt ltCFormViewgt ltCEditView ltCRecordViewgt ltCDaoRecordView ltCtreeViewgt ltCListViewgt b ltCrichEditViewgt) - Un objeto es usado para desplegar los datos y administrar la interaccioacuten del usuario con los datos ltCFrameWndgt (o una de sus variantes) - Establece el marco sobre el que trabajaraacuten una o mas vistas de un documento ltCDocTemolategt (o ltCSingIeDocTemplategt o ltCMultiDocTemplategt) - Coordina la existencia de uno o maacutes documentos de un tipo dado y administra la correcta creacioacuten de los documentos vistas y objetos ventanas para cada tipo

i

28

Desarrollo de la herramienta

______________ 2 Wiew

I - - __ - ------a ________________

323Integrando Ambientes en Visual C t t

Las aplicaciones de Interfaz de Documento Uacutenico (SDI) soporta muacuteltiples tipos de documentos pero este soporte es para un solo objeto documento Debido a esta restriccioacuten y aunado a la necesidad de tener varios objetos documentos a la vez se determina la utilizacioacuten del modelo Interfaz de Muacuteltiples Documentos (MDI) indicado en la Figura 37

324Interfaz de Muacuteltiples Documentos (MDI)

Una aplicacioacuten de Interfaz de Muacuteltiples Documento (MDI) permite la creacioacuten de plantillas para el manejo de los documentos eacutesta plantilla tiene la forma

rn-pDocTemplate = new CMultiDocTernplate ( I DR-SCUMLTY PE RUNTIME-CLASS (CSCUMLDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CTheView))

AddDocTernplate ( rn-pDocTemplate )

Cada plantilla describe una relacion del tipo de documento con la vista asociada La definicioacuten de la plantilla para el ambiente que controla los diagramas de secuencias es la siguiente

29

Desarrollo de la herramienta c

m-pTernplateSeqDlag = new CMultiDocTernplate ( IDR-DS-SJCTYPE RUNTIME-CLASS (CSeqDiagDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CSeqDiagView) )

AddDocTernplate( rn-pTernplateSeqDiag )

Esta plantilla hace uso de la clase CCliildFrame que por defecto el ambiente Visual C++ construye y esto es debido a que no se requieren caracteriacutesticas extras en las ventanas de las que proporciona dicha clasc En un caso en el que se requiriera un comportamiento diferente de la vista tendriacutea que crearse una nueva clase con las caracteriacutesticas deseadas

Vista Documento

Vista

I- Vista Documento I [ Tip- F Vista

L Figura 37 Modelo Interfaz de Muacuteltiples Documentos (MDI)

Para integrar otro Ambiente que utilice otro tipo de documento es necesario definir otra plantilla de la misma forma mencionada Debe tomarse en cuenta los siguientes puntos

Es necesario definir el nombre (mqTemplateNOMBRE) El IDR del tipo que se requiere que sea el documento En la primera liacutenea RUNTIME CLASS debe indicar la clase ltCDocumentgt que desea La segunda liacutenea RUNTIME-CLASS soacutelo la cambia a otra clase si requiere de otro manipulador de ventanas de lo contrario deje que ltCChildFramegt se haga cargo

-

30

Desarrollo de la herramienta

En la uacuteltima liacutenea referente a RUNTIME-CLASS se debe indicar la clase ltCViewgt que desea usar Para finalizar se usa la instruccioacuten AddDocTernplate para finalizar la definicioacuten del template (mgTemplateNOMBRE)

325 Recursos Diaacutelogos Mertuacutes y Barras de Herrattriertias

Son varios los recursos con los que se puede contar al crear un proyecto en Microsoft Visual C++ Los diaacutelogos son un recurso disponible que son utilizados para visualizar ingresar yo modificar informacioacuten que se requiera En el Ambiente Visual que se desarrolla son varios los diaacutelogos que se utilizaraacuten y eacutestos se describen a continuacioacuten

El Diaacutelogo ldquoCaracteriacutesticas del Obietordquo (Figura 38) identifica el nombre del Objeto y la descripcioacuten del mismo Este diaacutelogo se muestra cuando se presiona doble clic sobre un objeto del diagrama

I Nombre

Desciipcion

Figura 38 Dialogo Caracteriacutesticas del Objeto

El Diaacutelogo ldquoMensaierdquo (Figura 39) muestra el nombre del mensaje que puede ser modificado ademaacutes se visualizan el Identificador del Mensaje el tipo de Mensaje asiacute tambieacuten el origen y destino del mensaje

31

Desarrollo de la herramienta

Nornbie delMensaje Edit

IDentificador del Mensaje Edil Tipo de Mensaje (Edil

Edit Objeto Origen

Objeto Destino IEdit

i25El A Figura 39 Dialogo Mensaje

El menuacute es otro de los recursos del que se puede disponer para organizar el ambiente que se estaacute creando Para eacuteste caso en particular no se hizo modificaciones al menuacute estaacutendar (Figura 310) que Visual C++ presenta Los cambios significativos son el manejo del tipo de documento para los Diagramas de Secuencias

Archivo Editar Yer VenLana AyGda

Figura 310 Menuacute de los Diagramas de Secuencias (estaacutendar)

Otro importante recurso del que uno se puede valer en Visual C++ es la barra de herramienta personalizada la cuaacutel es construida en el Editor de Recursos Se ha construido una barra (Figura 311) con los elementos graacuteficos de los Diagramas de Secuencia de UML

Figura 311 Barra de Herramientas de los Diagramas de Secuencias

Es recomendable que al utilizar barras de herramienta personalizada se defina en el tamantildeo estaacutendar ya que puede experimentar problemas al momento de ejecutar la aplicacioacuten

Ademaacutes puede usar la propiedad TBBS-CHECKGROUP en una barra de herramientas para establecer que los botones puedan quedar presionados hasta que un botoacuten diferente sea presionado No olvide que la numeracioacuten inicia con cero ( O )

vuriableToolBurSetButtonStyle(OTBBSCHECKGROUP)

32

Desarrollo de la herramienta

Prefijo ID IDC IDD IDP IDR IDS

326 Notacioacuten estaacutendar

Los nombres descriptivos de los recursos se asocian a un valor uacutenico Para una mayor claridad eacutestos nombres mantienen un prefijo que describe el tipo de recurso asociado (vea la Tabla 31) [MIC99]

Tipo de Recurso Comandos de Menuacute Controles y recursos Cuadros de diaacutelogo Cadenas de solicitud para cuadros de mensaje Menuacute principal barras de herramienta tabla aceleradora y el icono Cadenas

IDR IDD IDC ID

200 - 299 3000 - 3999 34000 - 34999

Estos son los rangos de valores establecidos para el proyecto S3C Si se utiliza el coacutedigo fuente y se planea agregar otro proyecto verifisue que no se invadan estos nuacutemeros para evitar problemas

Para facilitar auacuten maacutes los trabajos futuros se ha definido una estructura de carpetas (ver Figura 312) para incluir en cada una las Clases correspondientes a cada tesis en desarrollo

33

Desarrollo de la herramienta

ill ~~ -

-I SCUML classes + U A N T L R + U App + 0 ClassDiagrams + 0 Common + a Java

t $2 SequenceDiagiams

+ WarnierDiagrams

iJ PackageDiagrams

12 StaterChartDiagrams

+

- f Classview I Resourceview 1 FileView ]

~ ~

Figura 312 Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)

327Estructura de datos persistencia y recuperacioacuten

Existe una gran cantidad de tipos de datos estructuras clases y meacutetodos de los que se puede hacer uso para una mejor y maacutes faacutecil obtencioacuten de los resultados A continuacioacuten hago comentarios en tipos de datos y meacutetodos en los que podriacutea tener problemas

CTypedPtrList

AI usar este tipo de dato o alguno relacionado que le permita utilizar el meacutetodo ltCTvrgtedPtrListGetNextgt tenga especial precaucioacuten al usarlo ya que al devolver el valor requerido la variable POSITION usada no se queda apuntando a ese valor en particular salta al inmediato siguiente de la lista

Si se realiza una creacioacuten dinaacutemica con punteros para los elementos de una CTypedPtrList Despueacutes de haberlo agregado a la lista evite el delete para borrar esta Usted deseando liberar la memoria no lo haga ya que eliminara directamente el elemento de la lista

POSITION

Es un valor usado para denotar una posicioacuten de un elemento en una coleccioacuten Pero CUIDADO no se refiere a un iacutendice es una referencia (no consecutiva) de punteros muy diferente a un iacutendice

CString

Auacuten cuando el operador de comparacioacuten == (igual a) es permitido para ser utilizado en las cadenas evite su uso ya que en ocasiones aunque cuando la e

34

Desarrollo de la herramienta

compilacioacuten no indique error alguno en la ejecucioacuten no realizaraacute lo que se necesita Recomiendo que utilice CStringCompare ()

Para eliminar el contenido de un CString utilice CStringEmpty() ya que asignar a la cadena un ldquonrdquo podriacutea causarle problemas

Serializacioacuten

Una forma en que se puede guardar informacioacuten y recuperarla de manera eficaz es mediante la serializacioacuten de objetos La serializacioacuten es un proceso que permite escribir un objeto en un archivo y tambieacuten leerlo

Para que la serializacioacuten se lleve a cabo son necesarios tres objetos un objeto de tipo ltCFilegt que represente el archivo un objeto de tipo ltCArchivegt que ofrece el entorno para la serializacioacuten y la clase del objeto a ser serializado debe ser heredada de ltCObjectgt y sobrescribir el meacutetodo ltSerializegt para que se encuentre de tal forma en que pueda ser serializado (vea la Figura 313)

Objeto a ser serializado 1

1 CArchive

[f --=I- ---7 Archivoexi

u Figura 313 Serializacioacuten

328Patrones de disentildeo utilizados

Se ha planteado la definicioacuten de una arquitectura de clases utilizando patrones de disentildeo debido a que algunos de ellos hacen maacutes faacutecil la extensioacuten de la funcionalidad y mantenimiento

35

Desarrollo de la herramienta

El patroacuten Composite es utilizado para crear de manera uniforme el diagrama sobre el que se trabaja (ver Figura 34) manteniendo una jerarquiacutea de clases uniforme las clases maacutes bajas en la jerarquiacutea definen primitivas de objetos graacuteficos

Se aplica el patroacuten de disentildeo Iterator para hacer recorridos en listas de objetos para realizar diversas operaciones Otro patroacuten de disentildeo del que se hace uso es el Visilor (ver Figura 35)

Para otras actividades que se realizan podriacutea pensarse en que se deberiacutean aplicar otros patrones pero se han evitado algunos (como el patroacuten de disentildeo Builder) para evitar incrementar la complejidad en la arquitectura ya que ai mantener el modelo de la MFC de documentovista la funcionalidad del patroacuten de disentildeo Builder es faacutecilmente reemplazado si se hiciera Uso de eacuteste se aumentariacutea la complejidad excesivamente (nos llevariacutea a perdemos en ocasiones en el paso de mensajes entre clases) dantildeando la facilidad de la arquitectura

33 Diagrama de secuencias

Un Diagrama de Secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten escenario Oacute comportamiento se usan para definir el curso loacutegico de accioacuten de un posible camino a seguir en la resolucioacuten de un problema Seguacuten John Daniels [DANO2] ldquoel principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildean las interacciones de los objetosrdquo

Los Diagramas de Secuencias se utilizan en el modelado de la implementacioacuten de sistemas de software ademaacutes son aplicables en el modelado de requisitos para establecer las comunicaciones existentes entre actores yo clases del sistema Con eacutestos diagramas se logran hacer descripciones de los escenarios y los comportamientos del sistema Con los Diagramas de Secuencias es posible definir protocolos de comunicacioacuten con paso de mensajes ya que dan esa flexibilidad que se requiere Ademaacutes los Diagramas de Secuencias contienen informacioacuten suficiente para que puedan ser transformados a los diagramas de colaboracioacuten [RUM Ol][BOO Oil

331Ciclo de vida del software

Considerando cualquier modelo de ciclo de vida del software (en la figura 314 se muestra el Modelo de cascada) el aacutembito directo de eacuteste Ambiente Visual es en el disentildeo aunque tiene sus vertientes en la codificacioacuten y mantenimiento

36

Desarrollo de la herramienta

Diseno

Codificacibn

I I I I Mantenimiento I

igura 314 Modelo de cascada del ciclo de vida del software

34 Elementos atoacutemicos de la Gramaacutetica

Definicioacuten de los elementos atoacutemicos del lenguaje y su contenido

1 Actor- Representa roles de entidad externos al sistema con el que interactuacutea directamente Los actores pueden ser humanos dispositivos u otros sistemas

2 ClaseObjeto- Determina una Clase u Objeto participante en la interaccioacuten

3 Mensaje-Es una comunicacioacuten entre objetos que contiene informacioacuten Eacuteste se representa con la finalidad a que una accioacuten sea llevada a cabo

4 Mensaje con tiempo- Tiene la misma finalidad que el mensaje la diferencia es que con eacutel se representa un atributo de tiempo

5 Mensaje asiacutencrono Es un mensaje que ocurre en el tiempo de manera independiente a otros mensajes

6 Mensaje de destruccioacuten de objeto- Es un mensaje cuya finalidad es indicar la destruccioacuten del objeto destino

7 Mensaje de creacioacuten de objeto- Es un mensaje que indica la creacioacuten de un objeto

8 Llamada al mismo objeto (Recursividad)- Es usado para modelar llamadas recursivas en el que una operacioacuten es invocada por el mismo objeto

37

Desarrollo de la herramienta

9 Destruccioacuten del objeto (AutodestrucciOacuten)- Puede o no modelarse es representada con una X al final de la liacutenea de vida del objeto

Elementos aulomaacuteticos

1 Liacutenea de Vida- Representa la vida del objeto durante la interaccioacuten

2 Activacioacuten- Muestra el periacuteodo de tiempo en el cual el objeto alguna operacioacuten

341RepresentaciOacuten visual

Representacioacuten visual de los elementos atoacutemicos del lenguaje

Actor

_- A

Mensaje

Mensaje de Creacioacuten de

Objeto

ClaseObjeto

I

Mensaje de retorno

Mensaje de Destruccioacuten de

Objeto

abla 32 Element(

Activacioacuten

Mensaje con tiempo

Autodestruccioacuten

x

atoacutemicos del lengi

taacute realizz

Texto ===I (letra)+ (letra I

numero) letra= AZ I az numero = 09

I

Recursividad ~

I

i j e

io

38

u

Comentario

iexcl

Conector de Comentario

35 Gramaacutetica desarrollada

La gramaacutetica que se propone es una gramaacutetica visual del tipo relacional Una gramaacutetica relacional pertenece a las gramaacuteticas libres de contexto es una 6-iupla G (N C S R Attr P) donde

N es un conjunto finito de siacutembolos no terminales C es un conjunto de siacutembolos terminales S es un siacutembolo distinguido en N llamado siacutembolo inicial R es un conjunto finito de siacutembolos de relacioacuten Attr es un conjunto finito de siacutembolos de atributos P es un conjunto de producciones

Entonces definiendo nuestra gramaacutetica G (N C S R Attr P)

N = Diagrama GrupoClaseObjeto

S = Diagrama

R = mensaje mensajeTiempo mensajeRetomo mensajeAsincrono mensajecrea mensajeDestruye autodestruccioacuten recursividad

R

Attr = entrada salida entradacrea

39

Desarrollo de la herramienta

Definiendo la posicioacuten de los atributos en los elementos visuales

entradacrea ObetaClase

entrada

salida

P =

Diagrama I GrupoClaseObjeto (mensaje (mensajeRetorno

(salida 1) (entrada 2) ) (salida 2) (entrada 1) )

- Diagrama 0 GrupoClaseObjeto

(mensaje (mensaje (mensajeRetomo (mensajeRetomo (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entradacrea 2) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 1) ) (salida 1) (entrada 1) )

entrada

salida

40

Desarrollo de la herramienta

s

-

GrupoClaseObjeto - 1 1 I 2 (mensaje (mensaje (mensajeRetorno (mensajeRetorno (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entradacrea 2) ) (salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 1) ) (salida I ) (entrada I ) )

1 En las gramaacuteticas relacionales una produccioacuten estaacute acompantildeada de las posibles

relaciones que puedan generarse En la primera produccioacuten Diagrama produce a un Actor seguida de un GrupoClaseObjeto el Actor inicia la interaccioacuten con un mensaje y recibe el mensaje de retorno al finalizar la interaccioacuten La segunda y tercera produccioacuten son similares debido a que un GrupoClaseObjeto contiene dos ClaseObjeto que se relacionan de la misma forma

Existe un elemento de la gramaacutetica llamado Attr (Atributo) el cual define la parte de los elementos visuales donde se establecen las relaciones Se han determinado dos atributos (entrada y salida) que para nuestro propoacutesito estaraacuten establecidos en la liacutenea de vida de cada elemento visual (Actor y ClaseObjeto)

Los Comentarios y la Activacioacuten no se consideran en la gramaacutetica Los comentarios son libres de incluirse y relacionarse con cualquier elemento y relacioacuten mencionada anteriormente y la activacioacuten existe siempre que se presente un mensaje (o podriacutea omitirse) Estas consideraciones se realizaron para hacer auacuten maacutes faacutecil la gramaacutetica ya que si se trata de realizar un sistema las restricciones de estos elementos pueden mantenerse en el lenguaje de programacioacuten en el que se desarrolle el sistema

36

Precondiciones

El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias

1 El diagrama de Clases debe existir y estar completo 2 Debe existir un archivo con un diagrama de Warnier por cada diagrama de Clases y

con el mismo nombre de archivo (excepto la extensioacuten del archivo) 3 En el uacutenico diagrama de Warnier de cada Clase se deben modelar todos los meacutetodos

de la Clase 4 No realizar declaraciones de meacutetodos

41

Desarrollo de la herramienta

5 Debe existir un meacutetodo lsquomain()rsquo en el diagrama de Clases

Restricciones

Los meacutetodos deben mantener nombres distintos en las diferentes Clases

Metodologiacutea para la obtencioacuten automaacutetica de los Diagramas de Secuencias

1 Seleccionar el diagrama de Clases

2 Se construye una lista con los nombres de las Clases y los Meacutetodos

3 Se verifica si exista el meacutetodo lsquomain()rsquo en alguna Clase Se busca la existencia de una uacutenica Clase

a La Clase que contenga lsquomain()rsquo se va al inicio de la lista de Clases

b Si no existe lsquomain()rsquo SE TERMINA EL PROCESO

4 Se verifica la existencia de los archivos que contienen el Disentildeo Detallado de los meacutetodos en Wamier para cada una de las Clases si alguno falta SE TERMINA EL PROCESO

5 Se procesa cada uno de los modelos del Disentildeo Detallado de los Meacutetodos generando una lista de secuencias de llamadas por cada uno de los meacutetodos

6 Se verifica que cada llamada corresponda a alguacuten meacutetodo existente (del diagrama de Clases) De no existir ese meacutetodo la llamada entra a una estructura que

7 Se crea una lista de secuencia

a Se inicia con lsquomain()rsquo b Se recorre cada una de las llamadas de los meacutetodos c Se considera invaacutelido el caso de que un meacutetodo intente una llamada

recursiva al meacutetodo lsquomain()rsquo

8 Se muestra un diaacutelogo de resultados en el que se indican las llamadas que no se encnotraron definidas y que pueden ser Llamada a libreriacutea oacute Llamada Erroacutenea

42

Capiacutetulo 4

Prue6as y su6taaacuteos

En eacuteste capiacutetulo se da a conocer el detalle de las pruebas y de los resultados obtenidos Se describen los casos de prueba con los que se realizoacute la evaluacioacuten del sistema asiacute tambieacuten se presentan comentarios acerca de los resultados obtenidos

Pruebas y Resultados

41 Recursos teacutecnicos utilizados

Para llevar a cabo las pruebas al sistema S3C se utilizaron los siguientes equipos de Coacutemputo

Computadora de escritorio

256MB RAM Disco Duro 80G Monitor 17rdquo SAMSUNG

AMD Athlon XP 1600+ I4Ghz

Computadora de escritorio Intel Pentium 4 - 128MB RAM Disco Duro 40G Monitor 15rdquo i -

42 Descripcioacuten del plan de pruebas

Las pruebas establecen el Uacuteltimo paso desde donde es posible evaluar la calidad y descubrir los errores Las pruebas y la validacioacuten del software se utilizan para comprobar que el sistema cumple con las expectativas del usuario

En esta seccioacuten se describen los casos de prueba que se realizaron al prototipo de S3C en conjunto a la suite cenidet-UML Para cada uno de los casos se presenta el objetivo el procedimiento que se siguioacute para la prueba y se muestran los resultados obtenidos - _

Las pruebas a realizar son los siguientes

Caso 1 Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Caso 2 Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Wamier

Caso3 Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Wamier

Caso4 Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo 5

44

Pruebas y Resultados

43 Resultados

431 Caso 1

5 Y

IZ =

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoSirdquo 4 Seleccionar el archivo ldquoVENTASrdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 41 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

s3c iuevo Proyecto SCUM1

Diagrama de clases

lvendedor I L

3

salida

venta prod

4 venia-oferta vcntaprod =

salida 6

Figura 41 Resultado del caso de prueba 1

45

Pruebas y Resultados

432 Caso 2

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Warnier (almacenwar cajawar vendedorwar) que ya cxisten (del caso de prueba I )

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoNordquo 4 Agregar las siguientes Clases con los respectivos meacutetodos y atributos

a Claseldquovendedorrdquo Meacutetodos ldquoventa mainrdquo b Claseldquoalmacenrdquo Meacutetodos ldquoentrada salidardquo c Claseldquocajardquo Meacutetodos ldquoventagrodrdquo

5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 42 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

Diagrama de daseo lisgrama dcsccucncis

MOIDOC Anivo

venta prod

salida

1 Ycrdquo1a 2

I 4 vcrdquolD~o1cn venta prod gt

salida 6 i Figura 42 Resultado del caso de prueba 2

46

Pruebas y Resultados

r

433 Caso 3

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Warnier

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 43 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

5

Error al tratar de abrir el archivo A bZwar

Aceptar i

Faltan Archivos de Disentildeos Detallados de Meacutetodos 1 1 A No se puede crear el diagrama de secuencias

Figura 43 Resultado del caso de prueba 3

47

Pruebas y Resultados

434 Caso 4

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 44 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

lsquo I

~ _ i i _ l _ Repaado ~~ ~ ~ 6~ ampA Figura 44 Resultado del caso de prueba 4

48

Pruebas y Resultados

PRUEBA DESCNPCION CASO 1 Mostrar la funcionalidad del

Sistema S3C a partir de un

44 Anaacutelisis de Resultados

RESULTADOS Se comproboacute la correcta funcionalidad del Sistema S3C a partir de un diagrama

CASO 3

CASO4

I diagrama de Clases cxistcnte I de Clases existente CASO 2 I Mostrar la funcionalidad del I Sc comproboacute la corrccta funcionalidad

Sistema S3C a partir de un del Sistema S3C a partir de un diagrama diagrama de Clases que se de Clases que se construye al momento construye al momento Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el Secuencias si falta alguno de los diagrama de Secuencia si falta alguno diagramas de Warnier Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el secuencias si hace falta el meacutetodo diagrama de Secuencias al faltar el ldquomain ()rdquo meacutetodo ldquomain()rdquo

de los diagramas de Warnier

Los resultados obtenidos de cada uno de los casos establecidos demuestran que se validoacute la funcionalidad del prototipo con los requisitos definidos en el alcance de este proyecto

a lt

49

Conclusiones y Tru6ajos Futuros

Aquiacute se dan a conocer las conclusiones y se describen los posibles trabajos futuros para la continuacioacuten de eacuteste proyecto

F

51 Conclusiones

Conclusiones y trabajos futuros

Se ha creado un Ambiente Visual que permite obtener de forma automaacutetica los Diagramas de Secuencias en base a los diagramas de Clases y al disentildeo detallado de los meacutetodos descritos con diagramas de Warnier cumpliendo con los objetivos planteados para este trabajo

La tesis aporta principalmente La generacioacuten automaacutetica de los diagramas de secuencias y la eliminacioacuten de inconsistencias al mantener una validacioacuten directa de los diagramas de clases y los diagramas de Warnier que son utilizados

Esta validacioacuten es lograda a traveacutes del uso de la gramaacutetica visual relaciona1 que se ha definido (veacutease el capiacutetulo 3) Esta gramaacutetica visual establece reglas para la correcta construccioacuten de los diagramas de secuencias

P De esta manera se establece que la hipoacutetesis ldquoEs posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodosrdquo Es verdadera

52 Trabajos Futuros

Un Diagrama de Secuencias puede convertirse en un Diagrama de Colaboracioacuten por lo tanto un trabajo futuro es la construccioacuten automaacutetica de un Diagrama de Colaboracioacuten a partir de uno de Secuencias existente

Es posible calcular la meacutetrica de acoplamiento al tener un Diagrama de Secuencias construido

La Ingenieriacutea directa de un Diagrama de Secuencias estableciendo la validacioacuten en la construccioacuten de todos los elementos visuales que UML define

La propagacioacuten de las modificaciones de un Diagrama de Secuencias a los Diagramas de Clases y los Diagramas de Warnier

La modificacioacuten del coacutedigo fuente mediante los cambios establecidos en un Diagrama de Secuencias

51

[ALC03]

[BLA98]

[B0099]

[BOOOi]

[BR097]

[CHA90]

[DAN02]

[GLA02]

[HAC98]

[HER03]

4

Alcate1 Computer Associates International inc Electronic Data Systems Corporation Hewlett-Packard Company IBM Corporation I-Logix IntelliCorp Kabira Technologies Kennedy Carter Microsoft Corporation Object Management Group Oracle Corporation Project Technology Ptech Inc Rational Software Corporation Reich Technologies Softeam Taskon A S Telelogic Unisys Corporation ldquoOMG Unified Modeling Language Specificationrdquo Version 15 Unified Modeling Language 2003

Blaha Michael Rumbaugh James Premerlani William Eddy Frederick Lorensen William ldquoObject-oriented modeling and designrdquo Prentice Hall 484 Paacuteginas ISBN 0-13-629841-9 QA-769-03S-B53-19981998

Booch Grady Rumbaugh James Jacobson Ivar ldquoEl lenguaje unificado de modeladordquo Addison Wesley 432 Paacuteginas ISBN 84-7829-028-1 1999

Booch Grady Rumbaugh James Jacobson Ivar ldquoThe Unified Modeling Language User Guiderdquo Addison Wesley 2001

Brown David ldquoAn introduction to object-oriented analysis objects in plain Englishrdquo John Whiley amp Sons Inc 700 Paginas ISBN 0-471-1 1028-0 QA-769-035-B76-1997 1997

Chang Shi-Kuo ldquoVisual Languages and visual programmingrdquo Plenum Press 340 Paacuteginas ISBN 0-306-43428-8 QA-7665-V57-1990 1990

Daniels John ldquoModeling with a sense of purposerdquo Design - IEEE Software JanuaryEebmary 2002

Glasgow Universidad Reino Unido ldquoA UML Editor in Javardquo (lthttplstudentsdcsglaacuWstudentspainjfproject-reportproject-re port-htmV4thYearReporthtrnlgt 2002)

T Hackos JoAnn C Redish Janice ldquoUser and Task Analysis for Interface Designrdquo Wiley Computer Publishing 488 Paacuteginas ISBN QA-769-U83- H33-1998 1998

Hemaacutendez Velaacutezquez M ldquoIngenieriacutea inversa de coacutedigo fuente en C++ para la obtencioacuten de su disentildeordquo Tesis AT-379 (03-0334) 2003

Conceptos generales

[HIX93]

[JAC93]

[JAC99]

[JOY98]

[LAR97]

[MAR]

[MIC99]

[MIC02]

[MOU98]

Hix Deborah Hartson H Rex ldquoDeveloping user interfacesrdquo 381 Paacuteginas ISBN 0-471-57813-4 QA-769-U83-H59-1993 1993

Jacobson Ivar Christerson Magnus Jonsson Patrik Overgaard Gunnar ldquoObject oriented software engineeringrdquo Addison Wesley ISBN 0-20 1 - 54435-0 QA-7676-D47-J63-1993 1993

Jacobson Ivar Booch Grady Rumbaugh James ldquoEl proceso unificado de desarrollo de softwarerdquo Addison Wesley 438 Paacuteginas ISBN 84-7829-036- 2 1999

Joyanes Aguilar Luis ldquoProgramacioacuten orientada a objetosrdquo McGruw Hill ISBN 84-481-0590-7 1998

Larman Craig ldquoAplying UML and Patternsrdquo Prentice Hull 507 Paacuteginas ISBN 0-13-748880-7 QA-769-035-L37-1997 1997

Marriot Kim Meyer Bemd ldquoVisual Language Theoryrdquo Springer 381 Paacuteginas P-935-V567-1998 1998

Microsoft ldquoMicrosoft Visual C++ 6 manual del programadorrdquo McGraw Hill ISBN 84-481-2127-9 QA-7673-Cl53-23718-1999 1999

Microsoft ldquoVisiordquo (lthttpwwwmicrosoftcomofficevisiogt 2002)

B Mourao Luis X ldquoUniversal Modeling Language Part 11 UML Notation - Case Sequence and Collaboration Diagramsrdquo Lan Times Magazine (~httpwwwlantimescomltpartsdiscussdiscuss6Ohtm~) 1998

No Magic ldquoMagicDrawrdquo (lthttpwwwmagicdrawcomgt 2002)

Object Insight ldquoJvisionrdquo (lthttpwwwobject-insightcomgt 2002)

Rational Software Microsoft I Hewlett-Packard Oracle Sterling Software MCI Systemhouse Unisys ICON Computing IntelliCorp i-Logix IBM ObjectTime Platinum Technology Ptech Taskon Reich Technologies Sofieam ldquoUML Summaryrdquo Version 11 Unified Modeling Language 1997

Rational ldquoRational Roserdquo (lthttpwwwrationalcomproductosrosegt 2002)

Rikki Kirzner ldquoAnalysis Modeling and Design Tools Market Forecast and Analysis 2001-2005rdquo Bulletin Published Under Services Application Design and Construction Tools Application Development and Deployment Strategies Documento Nuacutemero 24809 Junio 2001

53

Conceptos generales

[RIM92] Rimrner Steve ldquoGraphical user interface programmingrdquo 423 Paacuteginas

1992

Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language reference manualrdquo Addison Wesley 550 Paacuteginas ISBN 0-201-

ISBN 0-8306-2475-9 ISBN 0-8306-2472-4 (pbk) QA-769-083-R55G

[RUM99]

30998-X QA-7676-D47-R85-1999 1999

[RUM299] Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language user guiderdquo Addisoiz Wesley 482 Paacuteginas ISBN 0-201 -57 168-4 QA-7676-D47-B66-1999 1999

[SMA02] SmartDraw ldquoSmartDrawrdquo (lthttpwwwsmartdrawcomgt 2002)

[SHU88] 9 - Shu Nun C ldquoVisual Programmingrdquo Van Nostrand Reinhold ISBN 0-422- 28014-9 ISBN 0-422-01 164-4 QA-7665-S55 1988

[THI90] Thimbleby Harold ldquoUser Interface Designrdquo Acm press 470 Paacuteginas ISBN 0-201 -41 61 8-2 QA-769U83-T772~- 1990 1990

[WENO2] Wences Diaz MF ldquoModelo de Ingenieriacutea Inversa para la obtencioacuten de disentildeo detallado basado en LEVISSrdquo Tesis (02-0014) 2002

54

Anexo A

Conampuracioacuten de Microsoft Vkua[C++ 6 O

Este anexo indica las configuraciones que se utilizaron para la compilacioacuten de SCUML y s3c

Configuracioacuten de Microsoft Visual c++ 60

Debido a la integracioacuten de los proyectos de InverSOODA e InverDDVi con S3C se cumplioacute con los requisitos previos de ambos proyectos

El compilador usado en el proyecto fue el Microsoft Visual C++ 60

Para el cumplimiento con la funcionalidad de InverSOODA se instaloacute el ANTLR la versioacuten 271 Se descargoacute del sitio l i l l ~ ~ ~ ~ ~ ~ t l ~ l ~ - ~ t - ~ la versioacuten mencionada en un archivo comprimido (en formato zip) Se colocoacute el paquete descomprimido en el directorio ldquoDIANTLR-271 I rdquo

Recomiendo ampliamente que el directorio principal de ANTLR se copie en el directorio raiacutez de cualquier unidad de disco debido a que experimenteacute problemas de compilacioacuten cuando ANTLR no se encontraba en el directorio raiacutez

Io015

Source Browser AlttF12 I u c Ersquo V I

Visual Component Mgnager

- - ~ ~ ~ ~~

P2 Registrar control

A Contenedor de prueba de controles ActiveX

A Usor de objetos OLE y COM

Buacutesqueda de errores

A Y++ MFC Iracer

Customize options

~ - q- ~ Macro

Eecord Quick Macro Cbl+ShiR+R Pay Quick Macro Ctrl+ShiR+P

En el menuacute Tools (Herramientas) seleccione el sub-menuacute Options ltopcionesgt

56

Configuracioacuten de Microsoft Visual C++ 60

En la siguiente ventana de diaacutelogo debe agregar la direccioacuten en donde se encuentra el ANTLR

Agregar la ruta del directorio de ANTLR hasta el subdirectorio

libcpp

Editor I Tabs I Debug I Compatibility 1 Build Dneclolies I a I Chow directories for - Platfolm -

- Directories I x ) 4 jWin32 -] llnclude files

m cancd I

57

Configuracioacuten de Microsoft Visual C t+ 60

Se ha creado una libreriacutea (anrlrliblib) de ANTLR la cual ya estaacute situada en el directorio del proyecto SCUML (ISCUML) y no debe ser movida o eliminada

I

Geneial 1 Debug I CC++ Link I Category

Output file name bebugSCUMLexe

Objectljibrary modules 4 anllrliblib

li Generate debug lnfo r Ignore all defaull lbaries D ~ i n k j n ~ ~ ~ t a n ~ r ~ e n e r ~ ~ ~ mapfile

r Enable psafilrng

Proiec1 Ootionn

pq Cancel 1 Libreriacutea de ANTLR que debe existir 1 I para que se compile correctamente

58

Anexo B

~ u iacute aacute raacutepida de uso deC Sistema S3C

5 Este anexo indica de forma raacutepida la manera de utilizar S3C para crear un diagrama de secuencias de forma automaacutetica

Guiacutea Raacutepida de uso del Sistema S3C i

Para indicar la creacioacuten de un diagrama de secuencias en forma automaacutetica se debe ir a la barra del costado izquierdo y presionar ldquoNuevo Proyecto SCUMLrdquo

I s3c I ~ Nuevo Proyecto SCUML ~ _ _ - I Diagrama de clases ~ Diagrama de secuencias 1 MDI DOC Activo

-

Apareceraacute un documento llamado ldquoSCUMLV en donde el simbolo corresponde a un numero consecutivo iniciando desde 1 (uno)

$ e Despueacutes se presiona ldquoDiagrama de clasesrdquo Habraacute que para indicarle al sistema si se requiere abrir un diagrama de clases existente o realizar uno nuevo

i

iquestAbrir un documento existente

No Cardquo~ear

AI presionar ldquoSirdquo se debe indicar cual es el archivo del diagrama de Clases en el cuadro de diaacutelogo siguiente

~~ - 11dMis documentos rsquo 2 M i P C i lsquo h s sitios de red

I

AI presionar ldquoNordquo en ldquoAbrir un documento existenterdquo se nos mostraraacute un documento vacio para crear un diagrama de clases

60

Guiacutea Raacutepida de uso del Sistema S3C

Para ambas opciones se requiere que los diagramas de Wamier ya se encuentren construidos Y para continuar el proccso se selecciona el documento ldquoSCUMLVrsquo creado al inicio y despueacutes presionar el botoacuten nombrado ldquoDiagrama de secuenciasrdquo localizado en la barra de hcrraiiiicntas del costado izquierdo

Ha iniciado el proceso de construccioacuten del diagrama de secuencias Si no existen errores al terminar el proceso se le mostraraacute un cuadro de diaacutelogo llamado ldquoResultadosrdquo en donde le mostraraacute las llamadas de las que no localizoacute su definicioacuten

- - -

Cancel 1 D e las siguientes llamadas es posible que esten mal escritas o peitenezcan a la libreiia del Lenguaie Verifique ya que no se encontraron sus definiciones

A continuacioacuten se mencionan los posibles errores que finalizan el proceso de la creacioacuten automaacutetica de los diagramas de secuencias en S3C

Cuando no exista un meacutetodo lsquomainrsquo definido en el diagrama de clases

No se encontro el meacutetodo lsquomain()rsquo que inicie la secuencia I A No se puede crear el diagrama de secuencias

p==amp=q

61

Guia Raacutepida de uso del Sistema S3C

Cuando se definan niultiples metodos lsquoinainrsquo en el diagrama de clases

Multiples meacutetodos lsquomainOlsquo Imposible decidir el inicio de secuencia

Aceptar i

Si un meacutetodo definido en Wamier realiza una llamada a lsquomainrsquo se cancelara el proceso

Llamada NO VALIDA al meacutetodo principal main

(iAcp-j(

4 i

CI Y rdquoldquoldquoI i 11 1-T

IZNTRO Gt INFORMACION

62

  • Tabla de Contenido
  • Listado de Figuras
  • Listado de Tablas
  • Notacioacuten
  • Introduccioacuten
  • Capitulo 1 Conceptos Generales
    • 11 Antecedentes
    • 12 Trabajos relacionados
      • 121 Tabla comparativa
        • 13 Definicioacuten del problema
        • 14 Objetivo de la Tesis
          • Objetivos especiacuteficos de la tesis
            • 15 Hipoacutetesis de investigacioacuten
            • 16 Alcances y limitaciones del trabajo de tesis
              • Capitulo 2 Marco Teoacuterico
                • 21 Modelado de sistemas de software
                • 22 Interfaz de usuario (Mecanismos de interaccioacuten)
                • 23 Lenguajes Visuales
                • 24 Programacioacuten orientada a objetos
                • 25 Lenguaje de Modelado Unificado (UML)
                  • Desarrollo de la herramienta
                    • 31 Disentildeo de la Arquitectura
                      • 311 Requisitos (Diagrama de Casos de uso)
                        • 312Modelo Conceptual
                        • 313Diagramas de clases
                        • 32 Elementos de la arquitectura
                          • 321 Microsoft Foundation Class (MFC)
                            • 322Arquitectura Documento Vista
                            • 323Integrando Ambientes en Visual c++
                              • 324 Interfaz de Muacuteltiples Documentos (MDI)
                                • 325Recursos Diaacutelogos Menus y Barras de Herramientas
                                  • 326 Notacioacuten estaacutendar
                                  • 327 Estructura de datos persistencia y recuperacioacuten
                                    • 328Patrones de disentildeo utilizados
                                      • 33 Diagrama de secuencias
                                        • 331Ciclo de vida del software
                                          • 34 Elementos atoacutemicos de la Gramaacutetica
                                            • 341 Representacioacuten visual
                                              • 35 Gramaacutetica desarrollada
                                              • 36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias
                                                  • Capitulo 4 Pruebas y Resultados
                                                    • 41 Recursos teacutecnicos utilizados
                                                    • 42 Descripcioacuten del plan de pruebas
                                                    • 43 Resultados
                                                      • 431 Caso
                                                      • 432 Caso2
                                                      • 433 Caso
                                                          • Conclusiones y trabajos futuros
                                                            • Trabajos futuros
                                                            • Referencias
                                                            • Anexo A Configuracioacuten de Microsoft Visual C+t
                                                              • Figura 11 - Arquitectura de la suite cenidet-UML
                                                              • Figura 21 -Programacioacuten Visual
                                                              • Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de
                                                              • Figura 32 -Diagrama de Casos de Uso para el S3C
                                                              • Figura 33 -Modelo Conceptual
                                                              • Figura 34 - Diagrama de Clases -Control del Diagrama -
                                                              • Figura 35 - Diagrama de Clases - Patroacuten Visitor -
                                                              • Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento
                                                              • Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)
                                                              • Figura 38 -Dialogo Caracteriacutesticas del Objeto
                                                              • Figura 39 -Dialogo Mensaje
                                                              • Figura 3 IO - Menuacute de los Diagramas de Secuencias (estaacutendar)
                                                              • Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias
                                                              • Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)
                                                              • Figura 313 - Serializacioacuten
                                                              • Figura 314 -Modelo de cascada del ciclo de vida del software
                                                              • Figura 41 - Resultado del caso de prueba
                                                              • Figura 42 -Resultado del caso de prueba
                                                              • Figura 43 -Resultado del caso de prueba
                                                              • Figura 44 -Resultado del caso de prueba
                                                              • Tabla 11 - Tabla comparativa
                                                              • Tabla 31 -Prefijos estaacutendar de identificadores
                                                              • Tabla 32 -Elementos atoacutemicos del lenguaje
                                                              • Tabla 41 - Resumen de los resultados de las pruebas realizadas

Marco teorico

b) Meacutetodos basados en gramaacuteticas de grafos Un ejemplo de este tiPo de gramaacuteticas son las gramaacuteticas de red Las oraciones generadas con gramaacuteticas de red son grafos dirigidos con siacutembolos en los nodos Estos grafos son llamados redes Una produccioacuten de eacuteste tipo de gramaacuteticas es de la siguiente forma

a - t p E

donde a y p son redes y E es una forma de conectar a p cuando a es conectada a otra red anfitriona

La mayor desventaja es que las gramaacuteticas de red no han probado ser totalmente uacutetiles para la especificacioacuten de gramaacuteticas arbitrarias por la complejidad para rescribir grafos y al hecho de que no todo lenguaje visual estaacute compuesto exclusivamente por grafos

C) Gramaacuteticas de multiconjuntos de atributos En estas gramaacuteticas las producciones rescriben conjuntos o multiconjuntos de siacutembolos que tienen atributos con informacioacuten sobre geometriacutea o semaacutentica La reescritura se controla con restricciones sobre los atributos de los siacutembolos en el lado derecho de las producciones

Un ejemplo de eacutestas gramaacuteticas es la Gramaacutetica Coordinada que especifica notacioacuten matemaacutetica de dos dimensiones En esencia las producciones en una gramaacutetica coordinada n-coordinada libre del contexto tienen la siguiente forma

A -t a donde C F

Todos los siacutembolos de eacuteste tipo de gramaacutetica tienen n atributos geomeacutetricos A es un siacutembolo no terminal a es una cadena no vaciacutea de siacutembolos C es una restriccioacuten sobre los atributos de los siacutembolos en a y F es una expresioacuten que computa los atributos de los siacutembolos de A en teacuterminos de los atributos de los siacutembolos en a no importando el orden de los siacutembolos en a

d) Gramaacuteticas PosicionaZes Las gramaacuteticas posicionales son un formalismo para la definicioacuten e implementacioacuten de lenguajes visuales las gramaacuteticas posicionales extienden naturalmente a las gramaacuteticas libres de contexto Una gramaacutetica libre de contexto posicional PG es una six-tupla (N T S P POS PE) donde

N es un conjunto finito no vaciacuteo de siacutembolos no terminales T es un conjunto finito no vaciacuteo e siacutembolos terminales con N n T = $I S E N es el siacutembolo no terminal de inicio P es un conjunto finito de producciones POS es un conjunto finito de identificadores de relacioacuten binaria PE es un evaluador pictoacuterico

14

Marco teorico

Cada produccioacuten en P tiene la siguiente forma

A -+ X I R I X R2 X ~ I Rm1 xm A

e) Gramaacuteticas de Relacioacuten de siacutembolos Eacuteste es un formalismo sintaacutectico para describir un lenguaje visual donde cada oracioacuten dentro del lenguaje se representa como un conjunto de objetos visuales y un conjunto de relaciones entre objetos

El alfabeto de siacutembolos Vt y el conjunto de relaciones entre siacutembolos Vr una oracioacuten de relacioacuten de siacutembolos w sobre Vt y Vr es un par ( M R) donde

M es un conjunto de elementos-s (v i) con v E Vt y i es un nuacutemero natural R es un conjunto de elementos-r de la forma r (Xi Yj) con Xi Yj E M r E Vr y una relacioacuten r esta contenida entre Xi y Yj

Una gramaacutetica de relacioacuten de simbolos es el conjunto de seis elementos G = (Vn Vt Vr S P R) donde Vn es un conjunto de siacutembolos no terminales Vt es un conjunto de siacutembolos terminales Vr es un conjunto de relaciones entre siacutembolos S es el siacutembolo inicial y P es un conjunto de reglas de reescritura (producciones de elementos-s)

f) Gramaacuteticas relacionales Este tipo de gramaacutetica pertenecen a las gramaacuteticas libres de contexto

La gramaacutetica relaciona1 (RGrsquos) es una 6-tupla G (N C S R Attr P) donde

N C S R Attr P

es un conjunto finito de siacutembolos no terminales es un conjunto de siacutembolos terminales es un siacutembolo distinguido en N llamado siacutembolo inicial es un conjunto finito de siacutembolos de relacioacuten es un conjunto finito de siacutembolos de atributos es un conjunto de producciones de la forma A-gt apF donde A E N a E (nlo)+ Donde n E N cr E E

8 Es un conjunto de relaciones de la forma (r x y) donde r E R y xy son enteros que hacen referencia a un miembro de a y tambieacuten una expresioacuten de la forma (a i) donde a E Attr e i es un entero que hace referencia a un miembrode a

F Es un conjunto de declaraciones de asignacioacuten de caracteriacutesticas de la forma (a O)=x donde a E Attr y x es un entero que hace referencia a un miembro de a o a una expresioacuten de la forma (a i)

15

Marco teoacuterico

24 Programacioacuten orientada a objetos

L~~ meacutetodos orientados a objetos organizan la informacioacuten Y el procesamiento que manipula esta informacioacuten de acuerdo a los objetos delrsquomundo real que la informacioacuten describe [BRO97l

Beneficios de las teacutecnicas orientadas a objetos [BR097] Estabilidad del sistema Mantenibilidad Componentes reusables Confiabilidad Accesibilidad de los datos Participacioacuten del usuario

Seguacuten Graddy Booch la programacioacuten orientada a objetos es ldquoun meacutetodo de implementacioacuten en el que los programas se organizan como colecciones cooperativas de objetos cada uno de los cuales representan una instancia de alguna clase y cuyas clases son todas miembros de una jerarquiacutea de clases unidas mediante relaciones de herenciardquo [JOY 981

Programacioacuten orientada a objetos esencialmente significa programacioacuten usando objetos [JAC93] Los lenguajes orientados a objetos deben soportar los siguientes conceptos

Objetos Abstraccioacuten de datos Encapsulamiento Clases e Instancias Herencia entre clases Polimorfismo

Las propiedades fundamentales de la Programacioacuten Orientada a Objetos son

a Abstraccioacuten Son ideas conceptos y propiedades que se describen en forma general eliminando los detalles Es una estructura de datos y los meacutetodos que manipulan a esos datos

b Encapsulamiento Son las fronteras propias de un objeto bien definidas las cuales protegen los detalles de su representacioacuten interna

c Ocultacioacuten de la informacioacuten Es la propiedad en la que los objetos pueden hacer uso para impedir que otros objetos los usuarios o incluso los programadores conozcan coacutemo estaacute distribuida la informacioacuten

d Herencia Es la propiedad que tiene una clase para heredar atributos y comportamiento a otras clases

e Polirnorfismo Es la propiedad que permite que una entidad pueda cambiar a diferentes formas efectuaacutendose de manera dinaacutemica en tiempo de ejecucioacuten

16

Marco teoacuterico

t

Clases Es la especificacioacuten de una familia de objetos es la declaracioacuten de un tipo de objetos Tambieacuten se dice que una clase es la descripcioacuten de un conjunto de objetos con un comportamiento similar y que esta compuesta de Datos (o atributos) y Meacutetodos o (rutinas acciones operaciones)

Objeto Un objeto es una entidad en la cual se almacenan datos y los meacutetodos o funciones que controlan dichos datos Un objeto es una abstraccioacuten de alguna cosa del mundo real que contiene datos que lo describen y operaciones que solo tienen acceso a esos datos [BR097l Los elementos de los que esta conformado un objeto son

a Las relaciones permiten que el objeto se integre en la organizacioacuten b Las propiedades son los datos que caracterizan el estado de un objeto distinguiendo

asiacute a un objeto determinado de los restantes que forman parte de la misma organizacioacuten

c Los meacutetodos son las operaciones que pueden realizarse sobre la estructura del objeto es decir las acciones que cambian el estado de un objeto y que el objeto es capaz de ejecutar a traveacutes de mensajes y que tambieacuten pone a disposicioacuten de sus descendientes a traveacutes de la herencia

Mensajes Son solicitudes para que se lleve a cabo la operacioacuten indicada y se produzca un resultado

Las razones principales para introducir la tecnologiacutea de objetos son los beneficios de dicha tecnologiacutea

Aumento de la fiabilidad Aumento de la productividad del desarrollador Desarrollo maacutes raacutepido Mejor calidad maacutes alta

Incremento en escalabilidad Mejores estructuras de informacioacuten Incremento de adaptabilidad Reduccioacuten del coacutedigo fuente

Mantenimiento maacutes faacutecil y reduccioacuten de costo

Los elementos de reutilizacioacuten son las clases y objetos

25 Lenguaje de Modelado Unificado (UML)

UML (Unified Modeling Language por sus siglas en ingleacutes Lenguaje de Modelado Unificado) es un lenguaje de modelado visual de propoacutesito general que es utilizado para especificar visualizar construir y documentar las partes de un sistema de software El lenguaje estaacute basado en un pequentildeo nuacutemero de conceptos centrales que la mayoriacutea de los desarrolladores de tecnologiacutea orientada a objetos pueden aprender y aplicar faacutecilmente [RUM99]

17

Marco teoacuterico

y UML Pasado Presente y Futuro

L~~ lenguajes de modelado orientado a objetos aparecieron a mediados de 10s 70rsquos Varias teacutecnicas influenciaron estos lenguajes El nuacutemero de lenguajes de modelado incrementoacute desde menos de 10 hasta maacutes de 50 entre 1989 y 1994 Muchos modeladores teniacutean problemas para encontrar un lenguaje de modelado que satisficiera todas sus necesidades Notablemente aparecioacute Boochrsquo93 y la evolucioacuten continuoacute a OMT y Fusioacuten

OOSE (Object-Oriented Software Engineering) estaacute enfocado a la ingenieriacutea de negocios y anaacutelisis de requerimientos dando un excelente soporte orientado a casos de uso OMT-2 es especialmente expresivo para anaacutelisis y sistemas de informacioacuten de datos grandes Boochrsquo93 fue particularmente expresivo para el disentildeo y fases de construccioacuten de proyectos y popular para aplicaciones de ingenieriacutea intensiva

Grady Booch y Jim Rumbaugh iniciaron el desarrollo de UML en 1994 al unificar sus meacutetodos independientes Booch y OMT En 1995 Ivar Jacobson se unioacute a Racional eacutesta unioacuten logroacute que el meacutetodo OOSE se incorporara La unificacioacuten establecioacute que debiacutean activar el modelado de sistemas utilizando conceptos orientados a objeto asiacute como crear un lenguaje usable tanto para las maacutequinas como para los humanos

A

Muchas organizaciones se unieron al consorcio UML y dedicaron recursos al trabajo hacia el fortalecimiento de la definicioacuten de UML Esta colaboracioacuten produjo un lenguaje de modelado expresivo poderoso y generalmente aplicable En la forma actual de UML se espera que sea base de muchas herramientas incluidas las de modelado visual simulacioacuten y ambientes de desarrollo

R UML es abierto y no-propietario y aunque define un lenguaje preciso no es barrera para futuras mejoras en conceptos de modelado Se usan muchas teacutecnicas de punta pero se esperan teacutecnicas adicionales que influencien futuras versiones de UML puede ser extendido sin redefinir el nuacutecleo

c

Mientras el rehuacuteso basado en componentes se ha favorecido ampliamente cada vez mas esto no significa que las teacutecnicas basadas en componentes reemplazaraacuten las teacutecnicas orientadas a objetos Hay solo sutiles diferencias entre la semaacutentica de componentes y clases [ALC03]

Un opaco rendimiento caracterizoacute el mercado de anaacutelisis modelado y disentildeo en el 2000 en su transicioacuten de las viejas herramientas CASE (Computer Aided Software Engineering) a algo maacutes dinaacutemico y mejor adaptado para satisfacer las necesidades de los desarrolladores para el cambio raacutepido en los ambientes de negocio

El mercado de anaacutelisis modelado y disentildeo lograraacute obtener un crecimiento positivo en varios de los siguientes antildeos por varias razones El mercado seraacute manejado principalmente por la necesidad de desarrolladores a obtener aplicaciones para lanzarse al mercado raacutepidamente asiacute tambieacuten por el intereacutes creciente y uso de una nueva especie de herramienta y por el intereacutes creciente de los desarrolladores en usar UML reglas de negocios y adaptadores de componentes para construir aplicaciones [RIKUI]

z -

18

Marco teoacuterico

UML se ha hecho el estaacutendar para los desarrollos de modelado de negocios administracioacuten de requerimientos anaacutelisis y disentildeo programacioacuten y pruebas Los objetivos primarios de UML en el disentildeo [RAT97j

o Dar a los usuarios un lenguaje visual expresivo de modelado listo para usarse para que puedan desarrollar y cambiar los significados de sus modelos

o Suministrar mecanismos de extensibilidad y especializacioacuten para extender los conceptos centrales

o Ser independiente de lenguajes de programacioacuten particulares y procesos de desarrollo

o Impulsar el desarrollo de las herramientas Orientadas a Objeto en el mercado o Soportar conceptos de desarrollo de alto nivel como colaboracioacuten marcos de

componentes reutilizables patrones y componentes o Integrar las mejores praacutecticas

9 El aacutembito de UML

UML es un lenguaje para especificacioacuten construccioacuten visualizacioacuten y documentacioacuten de artefactos de un sistema de software UML es la fusioacuten de los conceptos de Booch OMT y OOSE El resultado es un simple comuacuten y ampliamente usado lenguaje de modelado para usuarios de estos y otros meacutetodos UML se enfoca en un lenguaje de modelado estaacutendar no en un proceso estaacutendar los autores de UML recomiendan un proceso de desarrollo manejado por casos de uso de arquitectura central iterativo e incremental [iiquest4T97l

Para la definicioacuten de sistemas de software en UML se definen diagramas Un diagrama es la representacioacuten graacutefica de un conjunto de elementos este se visualiza la mayoriacutea de las veces como un grafo conexo de nodos (elementos) y arcos (relaciones) Los diagramas se dibujan para visualizar un sistema desde diferentes perspectivas de forma que un diagrama es la proyeccioacuten de un sistema uumlML incluye nueve diagramas [B0099]

4 -

I Diagrama de clases 2 Diagrama de objetos 3 Diagrama de casos de uso 4 Diagrama de secuencias 5 Diagrama de colaboracioacuten 6 Diagrama de estados 7 Diagrama de actividades 8 Diagrama de componentes 9 Diagrama de despliegue

Diagramas de secuencias Un diagrama de secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten comportamiento

Un diagrama de secuencias muestra un conjunto de mensajes acomodados en una secuencia de tiempo eacuteste diagrama muestra la interaccioacuten en un esquema de dos - dimensiones [RUM99]

19

Marco teoacuterico

Y -

Un diagrama de secuencia es un diagrama de interaccioacuten que resalta la ordenacioacuten temporal de los mensajes Un diagrama de secuencia presenta un conjunto de objetos y los mensajes enviados y recibidos por ellos Los objetos suelen ser instancias (con nombre o sin nombres) de clases pero tambieacuten pueden representar instancias de otros elementos tales como colaboraciones componentes y nodos Los diagramas de secuencia se utilizan para describir la vista dinaacutemica de un sistema [B0099]

Usar los diagramas de secuencia es mostrar la secuencia que existe en un caso de uso [RUM 991

Los diagramas de secuencia tienen dos dimensiones Una dimensioacuten que representa el tiempo Otra dimensioacuten que representa los diferentes objetos que participan en la secuencia de eventos requeridos para completar el propoacutesito [MOuuml98]

El principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildea las interacciones de los objetos [DAN02]

20

Capiacutetulo 3

DesawoCCo de Ia herramienta

En este capiacutetulo se describe el desarrollo del Ambiente Visual Se describe el modelo conceptual del sistema la arquitectura asiacute como tambieacuten los elementos que componen la Arquitectura Se estudian los Diagramas de Secuencias de UML y algunos Patrones de Disentildeo de los que se hace uso para el mejor desarrollo del sistema Se describe a detalle la Gramaacutetica Visual Relaciona1 utilizada para el de Ambiente de desarrollo

I CENIOET 1FNTRO DE INFORMACION

Desarrollo de la herramienta

t i i

Actualmente existe en el cenidet un Ambiente Visual de Modelado de Clases llamado InverSOODA este Ambiente Visual tiene la capacidad de realizar la generacioacuten automaacutetica de coacutedigo de las clases en C++ a partir del modelo especificado Ademaacutes se puede realizar la Ingenieria Inversa de un coacutedigo legado para obtener el modelo de clases Aunado a este trabajo existe el Ambiente Visual denominado InverDDVi con el cual se puede realizar el Disentildeo Detallado de los Meacutetodos de las Clases con diagramas de Warnier Asiacute tambieacuten es posible obtener el modelo aplicando la Ingenieriacutea Inversa a un coacutedigo legado en C++

Ambos trabajos son retomados en este proyecto para la automatizacioacuten en la obtencioacuten de los Diagramas de Secuencias de UML La figura 31 muestra el modelo propuesto de ingenieriacutea directa

Extraer informacioacuten del diagrama de

rsquo rsquo

Diagrama de 11 clases I o

detallado de

detallado de

o meacutetodos

i ir---- Construir el

secuencias i

Modelo de Ingenieriacutea I directa automaacutetica

I

Figura 31 Modelo de Ingenieria Directa Autombtica de los Diagramas de Secuencias

Para la construccioacuten automaacutetica de un diagrama de secuencias se toma como base a un diagrama de Clases El modulo ldquoExtraer informacioacuten del diagrama de Clasesrdquo sirve para obtener el nombre y los meacutetodos descritos en cada uno de las clases que existan en el diagrama de Clases

22

Desarrollo de la herramienta

Con base en la informacioacuten que se tiene se abren los archivos correspondientes a los diagramas de Warnier El proceso que se emplea sobre cada uno los diagramas de Warnier llamado ldquoExtraer informacioacuten de los disentildeos detallados de los meacutetodosrdquo sirve para recopilar el conjunto de las llamadas de cada meacutetodo definido

En el siguiente paso (ldquoReconocer llamadas a meacutetodosrdquo) consiste en identificar si los meacutetodos que estaacuten descritos en los diagramas de Warnier tambieacuten lo estaacuten en el diagrama de Clases correspondiente

El paso ldquoConstruir los diagramas de secuencias automaacuteticamenterdquo realiza una validacioacuten de los meacutetodos definidos en los diagramas de Clases con los meacutetodos definidos en los diagramas de Warnier Este paso crea una estructura de datos con la secuencia de las llamadas y la recorre para crear los objetos y los mensajes en el diagrama de secuencias

AI terminar la creacioacuten automaacutetica del diagrama de secuencias se dispone de la r opcioacuten de guardar

31 Disentildeo de la Arquitectura

Para definir los procesos que el sistema va a realizar es necesario llevar a cabo un anaacutelisis de requisitos los cuales pueden ser expresados mediante diagramas de Casos de Uso Los Casos de Uso son una descripcioacuten textual narrativa de los procesos de un sistema

311Requisitos (Diagrama de Casos de uso)

Los casos de uso en realidad no son un artefacto de anaacutelisis orientado a objetos estos describen simplemente procesos y pueden ser igualmente efectivos en un proyecto tecnoloacutegico no orientado a objetos Son usados en un paso preliminar a la descripcioacuten de requerimientos de un sistema [LAR971 La Figura 32 muestra el diagrama de casos de uso que especifica al S3C

9

S3C (Diagramas de Secuencias)

usuario I Modelado de

I

Figura 32 Diagrama de Casos de Uso para el S3C

23

Desarrollo de la herramienta

Descripcioacuten de los Casos de Uso

Caso de Uso ldquoDiagramas de Secuenciasrdquo Se inicia cuando el actor ldquousuariordquo solicita la creacioacuten de un Diagrama de Secuencias Se establece la forma de la construccioacuten automaacutetica de los diagramas de secuencias de UML Se hace uso del Modelado de Clases y del Modelado del disentildeo detallado de los meacutetodos

Escenario de Eacutexito 1 Se obtiene la informacioacuten de las clases del modelado de clases 2 Se obtiene la informacioacuten del modelado del disentildeo detallado de los meacutetodos 3 Se realiza la construccioacuten automaacutetica de los diagramas de secuencias

1 En el modelo de clases no hay informacioacuten o estaacute incompleta 2 En el modelo del disentildeo detallado de los meacutetodos no hay informacioacuten o estaacute

incompleta

Escenario de Falla

Caso de Uso ldquoModelado de Clasesrdquo El diagrama de Clases se utiliza para obtener los nombres de clases y los nombres de los meacutetodos de cada clase

Escenario de Eacutexito 1 Se abre el modelo 2 Se procesa para obtener la informacioacuten de las clases (nombres de clases y nombres

de meacutetodos)

Escenano de Falla h 1 No se puede abrir el modelo J 2 El modelo esta vaciacuteo

Caso de Uso ldquoModelado del Disentildeo detallado 1 los meacutetodosrdquo El disentildeo detallado de los meacutetodos se realiza con diagramas de Warnier aquiacute se establecen las llamadas a funciones dentro del sistema y es aquiacute donde se identifica el dinamismo que se representaraacute en los diagramas de secuencias

Escenario de Eacutexito 1 Se abre el modelo 2 Se realiza la identificacioacuten de las llamadas existentes

Escenario de Falla 1 No se puede abrir el modelo 2 El modelo esta vaciacuteo

24

Desarrollo de la herramienta

Clase Objeto ni I Diagrama I n ____ Nombre Descripcioacuten

i

Mensaje

Tipo

En el Anaacutelisis Orientado a Objetos se crea una especificacioacuteii del dominio del problema y de los requeriinientos desde la perspectiva de una clasificacioacuten por objetos y del entendimiento de los teacuterminos usados en el dominio del problema Una descomposicioacuten del dominio del problema involucra una identificacioacuten de conceptos atributos y asociaciones que son considerados importantes dentro del dominio El resultado puede ser expresado en un Modelo Corzcepttraf el cual es ilustrado en un conjunto de diagramas que definen conceptos (objetos) [LAR97]

312Modelo Conceptual

El modelo conceptual visto en la Figura 33 no es una descripcioacuten de componentes de software representa conceptos en el domino del problema en el mundo Teal [LAR97l

313Diagramas de clases

Por cuestiones dc espacio las clases de la arquitectura del sistema estaraacuten referidas en varios diagramas que de alguna manera estaacuten relacionados entre si

Una de las partes maacutes importantes del Ambiente Visual S3C es la estructura de clases ltCCraJicogt la cual se refiere al control de los diagramas eacutesta por su naturaleza podriacutea considerarse el nuacutecleo del sistema La manipulacioacuten y control de los diagramas estaacute definido en una estructura de clases organizada con el patroacuten de disentildeo Composite que se muestra en la Figura 34

25

Desarrollo de la herramienta

CRecursividadDS CMensajeDS CObjetoDS CDiagramaDS

I Cvisitor I

CApuntadorDS CDblClickDS CAsocAdjusterDS CSelectorDS

26

Desarrollo de la herramienta

n 32 Elementos de la arquitectura

Es necesario describir los elementos que dan soporte a la arquitectura del ambiente donde se implementaraacute el sistema en este caso Microsoft Visual (MV) C++ 6 El MV C++ es un marco de aplicacioacuten poderoso basado en Windows se integran ademaacutes del lenguaje C++ (compilador y enlazador) el programa de desarrollo de programas en lenguaje C para Windows (SDK) la Microsoft Foundation Class Library AppWizzard Classwizard AppStudio y WorkBencli

La Microsoft Foundation Class Library comprende una biblioteca de clases de C++ y es considerada como el nuacutecleo del MV C++

321Microsoft Foundation Class (MFC)

La libreriacutea Microsoft Foundation Class (MFC) es una interfaz orientada a objetos que tiene las siguientes metas de disentildeo

o

Reduccioacuten significante de esfuerzo al escribir una aplicacioacuten para Windows Velocidad de ejecucioacuten comparable a las APIrsquos del lenguaje C Miacutenimo tamantildeo de coacutedigo Capacidad para llamar cualquier funcioacuten de Windows en C directamente Faacutecil conversioacuten de aplicaciones existentes en C a C++ Faacutecil uso de APIrsquos de Windows con C++ como con C Faacutecil uso de complicadas caracteriacutesticas de abstracciones poderosas como ActiveX soporte para base de datos impresioacuten barras de herramientas y barras de estado El API de Windows en C++ si usa tan efectivamente como las caracteriacutesticas mismas del lenguaje C++

La mayoriacutea de las clases de la Libreriacutea de la Microsoft Foundation Class son derivadas de una clase base ltCObjectgt que es la raiacutez de la jerarquiacutea de clases ltCObjectgt da uacutetiles capacidades a las clases que derivan de ella

La jerarquiacutea que existe en las clases derivadas de ltCObjectgt es la siguiente

Arquitectura de Aplicacioacuten Excepciones Servicios de Archivos Arreglos Listas Mapas Servicios de Internet Sockets Sincronizacioacuten Soporte para base de datos D A 0

27

Desarrollo de la herramienta

i

r

Liacutenea de Comandos Menuacute Dibujo Graacutefico Dibujo Graacutefico de Objetos Soporte de Control Soporte de Ventanas

Soporte para base de datos ODBC

o Marco de Ventanas o Barras de control o Hojas de propiedades o Cajas de Dialogo o Vistas o Controles

322Arquitectura Documento Vista

Por defecto las aplicaciones creadas con la MFC usan un modelo de aplicacioacuten que separa los datos del programa de las vistas de interaccioacuten con el usuario En eacuteste modelo un objeto documento de MFC lee y escribe datos en un almacenamiento persistente Un objeto vista administra el despliegue de datos suministrando al usuario los datos para ser seleccionados o editados La vista le comunica al documento cualquier cambio en los datos La razoacuten maacutes conveniente para seguir este modelo es cuando se necesita muacuteltiples vistas del mismo documento (como en una hoja de caacutelculo y un graacutefico)

La arquitectura documentovista hace faacutecil el soporte de muacuteltiples vistas y muacuteltiples tipos de documentos asiacute como la divisioacuten de ventanas y otras caracteriacutesticas de interfaz de usuario Pero el corazoacuten de la arquitectura son cuatro clases (Mostradas en el aacuterbol de clases de la Figura 36)

ltCDocumerrtgt (o ltCOleDocuinentgt) - Se instancia un objeto de este tipo para almacenar y controlar los datos del programa ltCViewgt (o una de sus clases derivadas ltCScrotlViewgt ltCFormViewgt ltCEditView ltCRecordViewgt ltCDaoRecordView ltCtreeViewgt ltCListViewgt b ltCrichEditViewgt) - Un objeto es usado para desplegar los datos y administrar la interaccioacuten del usuario con los datos ltCFrameWndgt (o una de sus variantes) - Establece el marco sobre el que trabajaraacuten una o mas vistas de un documento ltCDocTemolategt (o ltCSingIeDocTemplategt o ltCMultiDocTemplategt) - Coordina la existencia de uno o maacutes documentos de un tipo dado y administra la correcta creacioacuten de los documentos vistas y objetos ventanas para cada tipo

i

28

Desarrollo de la herramienta

______________ 2 Wiew

I - - __ - ------a ________________

323Integrando Ambientes en Visual C t t

Las aplicaciones de Interfaz de Documento Uacutenico (SDI) soporta muacuteltiples tipos de documentos pero este soporte es para un solo objeto documento Debido a esta restriccioacuten y aunado a la necesidad de tener varios objetos documentos a la vez se determina la utilizacioacuten del modelo Interfaz de Muacuteltiples Documentos (MDI) indicado en la Figura 37

324Interfaz de Muacuteltiples Documentos (MDI)

Una aplicacioacuten de Interfaz de Muacuteltiples Documento (MDI) permite la creacioacuten de plantillas para el manejo de los documentos eacutesta plantilla tiene la forma

rn-pDocTemplate = new CMultiDocTernplate ( I DR-SCUMLTY PE RUNTIME-CLASS (CSCUMLDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CTheView))

AddDocTernplate ( rn-pDocTemplate )

Cada plantilla describe una relacion del tipo de documento con la vista asociada La definicioacuten de la plantilla para el ambiente que controla los diagramas de secuencias es la siguiente

29

Desarrollo de la herramienta c

m-pTernplateSeqDlag = new CMultiDocTernplate ( IDR-DS-SJCTYPE RUNTIME-CLASS (CSeqDiagDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CSeqDiagView) )

AddDocTernplate( rn-pTernplateSeqDiag )

Esta plantilla hace uso de la clase CCliildFrame que por defecto el ambiente Visual C++ construye y esto es debido a que no se requieren caracteriacutesticas extras en las ventanas de las que proporciona dicha clasc En un caso en el que se requiriera un comportamiento diferente de la vista tendriacutea que crearse una nueva clase con las caracteriacutesticas deseadas

Vista Documento

Vista

I- Vista Documento I [ Tip- F Vista

L Figura 37 Modelo Interfaz de Muacuteltiples Documentos (MDI)

Para integrar otro Ambiente que utilice otro tipo de documento es necesario definir otra plantilla de la misma forma mencionada Debe tomarse en cuenta los siguientes puntos

Es necesario definir el nombre (mqTemplateNOMBRE) El IDR del tipo que se requiere que sea el documento En la primera liacutenea RUNTIME CLASS debe indicar la clase ltCDocumentgt que desea La segunda liacutenea RUNTIME-CLASS soacutelo la cambia a otra clase si requiere de otro manipulador de ventanas de lo contrario deje que ltCChildFramegt se haga cargo

-

30

Desarrollo de la herramienta

En la uacuteltima liacutenea referente a RUNTIME-CLASS se debe indicar la clase ltCViewgt que desea usar Para finalizar se usa la instruccioacuten AddDocTernplate para finalizar la definicioacuten del template (mgTemplateNOMBRE)

325 Recursos Diaacutelogos Mertuacutes y Barras de Herrattriertias

Son varios los recursos con los que se puede contar al crear un proyecto en Microsoft Visual C++ Los diaacutelogos son un recurso disponible que son utilizados para visualizar ingresar yo modificar informacioacuten que se requiera En el Ambiente Visual que se desarrolla son varios los diaacutelogos que se utilizaraacuten y eacutestos se describen a continuacioacuten

El Diaacutelogo ldquoCaracteriacutesticas del Obietordquo (Figura 38) identifica el nombre del Objeto y la descripcioacuten del mismo Este diaacutelogo se muestra cuando se presiona doble clic sobre un objeto del diagrama

I Nombre

Desciipcion

Figura 38 Dialogo Caracteriacutesticas del Objeto

El Diaacutelogo ldquoMensaierdquo (Figura 39) muestra el nombre del mensaje que puede ser modificado ademaacutes se visualizan el Identificador del Mensaje el tipo de Mensaje asiacute tambieacuten el origen y destino del mensaje

31

Desarrollo de la herramienta

Nornbie delMensaje Edit

IDentificador del Mensaje Edil Tipo de Mensaje (Edil

Edit Objeto Origen

Objeto Destino IEdit

i25El A Figura 39 Dialogo Mensaje

El menuacute es otro de los recursos del que se puede disponer para organizar el ambiente que se estaacute creando Para eacuteste caso en particular no se hizo modificaciones al menuacute estaacutendar (Figura 310) que Visual C++ presenta Los cambios significativos son el manejo del tipo de documento para los Diagramas de Secuencias

Archivo Editar Yer VenLana AyGda

Figura 310 Menuacute de los Diagramas de Secuencias (estaacutendar)

Otro importante recurso del que uno se puede valer en Visual C++ es la barra de herramienta personalizada la cuaacutel es construida en el Editor de Recursos Se ha construido una barra (Figura 311) con los elementos graacuteficos de los Diagramas de Secuencia de UML

Figura 311 Barra de Herramientas de los Diagramas de Secuencias

Es recomendable que al utilizar barras de herramienta personalizada se defina en el tamantildeo estaacutendar ya que puede experimentar problemas al momento de ejecutar la aplicacioacuten

Ademaacutes puede usar la propiedad TBBS-CHECKGROUP en una barra de herramientas para establecer que los botones puedan quedar presionados hasta que un botoacuten diferente sea presionado No olvide que la numeracioacuten inicia con cero ( O )

vuriableToolBurSetButtonStyle(OTBBSCHECKGROUP)

32

Desarrollo de la herramienta

Prefijo ID IDC IDD IDP IDR IDS

326 Notacioacuten estaacutendar

Los nombres descriptivos de los recursos se asocian a un valor uacutenico Para una mayor claridad eacutestos nombres mantienen un prefijo que describe el tipo de recurso asociado (vea la Tabla 31) [MIC99]

Tipo de Recurso Comandos de Menuacute Controles y recursos Cuadros de diaacutelogo Cadenas de solicitud para cuadros de mensaje Menuacute principal barras de herramienta tabla aceleradora y el icono Cadenas

IDR IDD IDC ID

200 - 299 3000 - 3999 34000 - 34999

Estos son los rangos de valores establecidos para el proyecto S3C Si se utiliza el coacutedigo fuente y se planea agregar otro proyecto verifisue que no se invadan estos nuacutemeros para evitar problemas

Para facilitar auacuten maacutes los trabajos futuros se ha definido una estructura de carpetas (ver Figura 312) para incluir en cada una las Clases correspondientes a cada tesis en desarrollo

33

Desarrollo de la herramienta

ill ~~ -

-I SCUML classes + U A N T L R + U App + 0 ClassDiagrams + 0 Common + a Java

t $2 SequenceDiagiams

+ WarnierDiagrams

iJ PackageDiagrams

12 StaterChartDiagrams

+

- f Classview I Resourceview 1 FileView ]

~ ~

Figura 312 Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)

327Estructura de datos persistencia y recuperacioacuten

Existe una gran cantidad de tipos de datos estructuras clases y meacutetodos de los que se puede hacer uso para una mejor y maacutes faacutecil obtencioacuten de los resultados A continuacioacuten hago comentarios en tipos de datos y meacutetodos en los que podriacutea tener problemas

CTypedPtrList

AI usar este tipo de dato o alguno relacionado que le permita utilizar el meacutetodo ltCTvrgtedPtrListGetNextgt tenga especial precaucioacuten al usarlo ya que al devolver el valor requerido la variable POSITION usada no se queda apuntando a ese valor en particular salta al inmediato siguiente de la lista

Si se realiza una creacioacuten dinaacutemica con punteros para los elementos de una CTypedPtrList Despueacutes de haberlo agregado a la lista evite el delete para borrar esta Usted deseando liberar la memoria no lo haga ya que eliminara directamente el elemento de la lista

POSITION

Es un valor usado para denotar una posicioacuten de un elemento en una coleccioacuten Pero CUIDADO no se refiere a un iacutendice es una referencia (no consecutiva) de punteros muy diferente a un iacutendice

CString

Auacuten cuando el operador de comparacioacuten == (igual a) es permitido para ser utilizado en las cadenas evite su uso ya que en ocasiones aunque cuando la e

34

Desarrollo de la herramienta

compilacioacuten no indique error alguno en la ejecucioacuten no realizaraacute lo que se necesita Recomiendo que utilice CStringCompare ()

Para eliminar el contenido de un CString utilice CStringEmpty() ya que asignar a la cadena un ldquonrdquo podriacutea causarle problemas

Serializacioacuten

Una forma en que se puede guardar informacioacuten y recuperarla de manera eficaz es mediante la serializacioacuten de objetos La serializacioacuten es un proceso que permite escribir un objeto en un archivo y tambieacuten leerlo

Para que la serializacioacuten se lleve a cabo son necesarios tres objetos un objeto de tipo ltCFilegt que represente el archivo un objeto de tipo ltCArchivegt que ofrece el entorno para la serializacioacuten y la clase del objeto a ser serializado debe ser heredada de ltCObjectgt y sobrescribir el meacutetodo ltSerializegt para que se encuentre de tal forma en que pueda ser serializado (vea la Figura 313)

Objeto a ser serializado 1

1 CArchive

[f --=I- ---7 Archivoexi

u Figura 313 Serializacioacuten

328Patrones de disentildeo utilizados

Se ha planteado la definicioacuten de una arquitectura de clases utilizando patrones de disentildeo debido a que algunos de ellos hacen maacutes faacutecil la extensioacuten de la funcionalidad y mantenimiento

35

Desarrollo de la herramienta

El patroacuten Composite es utilizado para crear de manera uniforme el diagrama sobre el que se trabaja (ver Figura 34) manteniendo una jerarquiacutea de clases uniforme las clases maacutes bajas en la jerarquiacutea definen primitivas de objetos graacuteficos

Se aplica el patroacuten de disentildeo Iterator para hacer recorridos en listas de objetos para realizar diversas operaciones Otro patroacuten de disentildeo del que se hace uso es el Visilor (ver Figura 35)

Para otras actividades que se realizan podriacutea pensarse en que se deberiacutean aplicar otros patrones pero se han evitado algunos (como el patroacuten de disentildeo Builder) para evitar incrementar la complejidad en la arquitectura ya que ai mantener el modelo de la MFC de documentovista la funcionalidad del patroacuten de disentildeo Builder es faacutecilmente reemplazado si se hiciera Uso de eacuteste se aumentariacutea la complejidad excesivamente (nos llevariacutea a perdemos en ocasiones en el paso de mensajes entre clases) dantildeando la facilidad de la arquitectura

33 Diagrama de secuencias

Un Diagrama de Secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten escenario Oacute comportamiento se usan para definir el curso loacutegico de accioacuten de un posible camino a seguir en la resolucioacuten de un problema Seguacuten John Daniels [DANO2] ldquoel principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildean las interacciones de los objetosrdquo

Los Diagramas de Secuencias se utilizan en el modelado de la implementacioacuten de sistemas de software ademaacutes son aplicables en el modelado de requisitos para establecer las comunicaciones existentes entre actores yo clases del sistema Con eacutestos diagramas se logran hacer descripciones de los escenarios y los comportamientos del sistema Con los Diagramas de Secuencias es posible definir protocolos de comunicacioacuten con paso de mensajes ya que dan esa flexibilidad que se requiere Ademaacutes los Diagramas de Secuencias contienen informacioacuten suficiente para que puedan ser transformados a los diagramas de colaboracioacuten [RUM Ol][BOO Oil

331Ciclo de vida del software

Considerando cualquier modelo de ciclo de vida del software (en la figura 314 se muestra el Modelo de cascada) el aacutembito directo de eacuteste Ambiente Visual es en el disentildeo aunque tiene sus vertientes en la codificacioacuten y mantenimiento

36

Desarrollo de la herramienta

Diseno

Codificacibn

I I I I Mantenimiento I

igura 314 Modelo de cascada del ciclo de vida del software

34 Elementos atoacutemicos de la Gramaacutetica

Definicioacuten de los elementos atoacutemicos del lenguaje y su contenido

1 Actor- Representa roles de entidad externos al sistema con el que interactuacutea directamente Los actores pueden ser humanos dispositivos u otros sistemas

2 ClaseObjeto- Determina una Clase u Objeto participante en la interaccioacuten

3 Mensaje-Es una comunicacioacuten entre objetos que contiene informacioacuten Eacuteste se representa con la finalidad a que una accioacuten sea llevada a cabo

4 Mensaje con tiempo- Tiene la misma finalidad que el mensaje la diferencia es que con eacutel se representa un atributo de tiempo

5 Mensaje asiacutencrono Es un mensaje que ocurre en el tiempo de manera independiente a otros mensajes

6 Mensaje de destruccioacuten de objeto- Es un mensaje cuya finalidad es indicar la destruccioacuten del objeto destino

7 Mensaje de creacioacuten de objeto- Es un mensaje que indica la creacioacuten de un objeto

8 Llamada al mismo objeto (Recursividad)- Es usado para modelar llamadas recursivas en el que una operacioacuten es invocada por el mismo objeto

37

Desarrollo de la herramienta

9 Destruccioacuten del objeto (AutodestrucciOacuten)- Puede o no modelarse es representada con una X al final de la liacutenea de vida del objeto

Elementos aulomaacuteticos

1 Liacutenea de Vida- Representa la vida del objeto durante la interaccioacuten

2 Activacioacuten- Muestra el periacuteodo de tiempo en el cual el objeto alguna operacioacuten

341RepresentaciOacuten visual

Representacioacuten visual de los elementos atoacutemicos del lenguaje

Actor

_- A

Mensaje

Mensaje de Creacioacuten de

Objeto

ClaseObjeto

I

Mensaje de retorno

Mensaje de Destruccioacuten de

Objeto

abla 32 Element(

Activacioacuten

Mensaje con tiempo

Autodestruccioacuten

x

atoacutemicos del lengi

taacute realizz

Texto ===I (letra)+ (letra I

numero) letra= AZ I az numero = 09

I

Recursividad ~

I

i j e

io

38

u

Comentario

iexcl

Conector de Comentario

35 Gramaacutetica desarrollada

La gramaacutetica que se propone es una gramaacutetica visual del tipo relacional Una gramaacutetica relacional pertenece a las gramaacuteticas libres de contexto es una 6-iupla G (N C S R Attr P) donde

N es un conjunto finito de siacutembolos no terminales C es un conjunto de siacutembolos terminales S es un siacutembolo distinguido en N llamado siacutembolo inicial R es un conjunto finito de siacutembolos de relacioacuten Attr es un conjunto finito de siacutembolos de atributos P es un conjunto de producciones

Entonces definiendo nuestra gramaacutetica G (N C S R Attr P)

N = Diagrama GrupoClaseObjeto

S = Diagrama

R = mensaje mensajeTiempo mensajeRetomo mensajeAsincrono mensajecrea mensajeDestruye autodestruccioacuten recursividad

R

Attr = entrada salida entradacrea

39

Desarrollo de la herramienta

Definiendo la posicioacuten de los atributos en los elementos visuales

entradacrea ObetaClase

entrada

salida

P =

Diagrama I GrupoClaseObjeto (mensaje (mensajeRetorno

(salida 1) (entrada 2) ) (salida 2) (entrada 1) )

- Diagrama 0 GrupoClaseObjeto

(mensaje (mensaje (mensajeRetomo (mensajeRetomo (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entradacrea 2) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 1) ) (salida 1) (entrada 1) )

entrada

salida

40

Desarrollo de la herramienta

s

-

GrupoClaseObjeto - 1 1 I 2 (mensaje (mensaje (mensajeRetorno (mensajeRetorno (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entradacrea 2) ) (salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 1) ) (salida I ) (entrada I ) )

1 En las gramaacuteticas relacionales una produccioacuten estaacute acompantildeada de las posibles

relaciones que puedan generarse En la primera produccioacuten Diagrama produce a un Actor seguida de un GrupoClaseObjeto el Actor inicia la interaccioacuten con un mensaje y recibe el mensaje de retorno al finalizar la interaccioacuten La segunda y tercera produccioacuten son similares debido a que un GrupoClaseObjeto contiene dos ClaseObjeto que se relacionan de la misma forma

Existe un elemento de la gramaacutetica llamado Attr (Atributo) el cual define la parte de los elementos visuales donde se establecen las relaciones Se han determinado dos atributos (entrada y salida) que para nuestro propoacutesito estaraacuten establecidos en la liacutenea de vida de cada elemento visual (Actor y ClaseObjeto)

Los Comentarios y la Activacioacuten no se consideran en la gramaacutetica Los comentarios son libres de incluirse y relacionarse con cualquier elemento y relacioacuten mencionada anteriormente y la activacioacuten existe siempre que se presente un mensaje (o podriacutea omitirse) Estas consideraciones se realizaron para hacer auacuten maacutes faacutecil la gramaacutetica ya que si se trata de realizar un sistema las restricciones de estos elementos pueden mantenerse en el lenguaje de programacioacuten en el que se desarrolle el sistema

36

Precondiciones

El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias

1 El diagrama de Clases debe existir y estar completo 2 Debe existir un archivo con un diagrama de Warnier por cada diagrama de Clases y

con el mismo nombre de archivo (excepto la extensioacuten del archivo) 3 En el uacutenico diagrama de Warnier de cada Clase se deben modelar todos los meacutetodos

de la Clase 4 No realizar declaraciones de meacutetodos

41

Desarrollo de la herramienta

5 Debe existir un meacutetodo lsquomain()rsquo en el diagrama de Clases

Restricciones

Los meacutetodos deben mantener nombres distintos en las diferentes Clases

Metodologiacutea para la obtencioacuten automaacutetica de los Diagramas de Secuencias

1 Seleccionar el diagrama de Clases

2 Se construye una lista con los nombres de las Clases y los Meacutetodos

3 Se verifica si exista el meacutetodo lsquomain()rsquo en alguna Clase Se busca la existencia de una uacutenica Clase

a La Clase que contenga lsquomain()rsquo se va al inicio de la lista de Clases

b Si no existe lsquomain()rsquo SE TERMINA EL PROCESO

4 Se verifica la existencia de los archivos que contienen el Disentildeo Detallado de los meacutetodos en Wamier para cada una de las Clases si alguno falta SE TERMINA EL PROCESO

5 Se procesa cada uno de los modelos del Disentildeo Detallado de los Meacutetodos generando una lista de secuencias de llamadas por cada uno de los meacutetodos

6 Se verifica que cada llamada corresponda a alguacuten meacutetodo existente (del diagrama de Clases) De no existir ese meacutetodo la llamada entra a una estructura que

7 Se crea una lista de secuencia

a Se inicia con lsquomain()rsquo b Se recorre cada una de las llamadas de los meacutetodos c Se considera invaacutelido el caso de que un meacutetodo intente una llamada

recursiva al meacutetodo lsquomain()rsquo

8 Se muestra un diaacutelogo de resultados en el que se indican las llamadas que no se encnotraron definidas y que pueden ser Llamada a libreriacutea oacute Llamada Erroacutenea

42

Capiacutetulo 4

Prue6as y su6taaacuteos

En eacuteste capiacutetulo se da a conocer el detalle de las pruebas y de los resultados obtenidos Se describen los casos de prueba con los que se realizoacute la evaluacioacuten del sistema asiacute tambieacuten se presentan comentarios acerca de los resultados obtenidos

Pruebas y Resultados

41 Recursos teacutecnicos utilizados

Para llevar a cabo las pruebas al sistema S3C se utilizaron los siguientes equipos de Coacutemputo

Computadora de escritorio

256MB RAM Disco Duro 80G Monitor 17rdquo SAMSUNG

AMD Athlon XP 1600+ I4Ghz

Computadora de escritorio Intel Pentium 4 - 128MB RAM Disco Duro 40G Monitor 15rdquo i -

42 Descripcioacuten del plan de pruebas

Las pruebas establecen el Uacuteltimo paso desde donde es posible evaluar la calidad y descubrir los errores Las pruebas y la validacioacuten del software se utilizan para comprobar que el sistema cumple con las expectativas del usuario

En esta seccioacuten se describen los casos de prueba que se realizaron al prototipo de S3C en conjunto a la suite cenidet-UML Para cada uno de los casos se presenta el objetivo el procedimiento que se siguioacute para la prueba y se muestran los resultados obtenidos - _

Las pruebas a realizar son los siguientes

Caso 1 Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Caso 2 Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Wamier

Caso3 Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Wamier

Caso4 Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo 5

44

Pruebas y Resultados

43 Resultados

431 Caso 1

5 Y

IZ =

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoSirdquo 4 Seleccionar el archivo ldquoVENTASrdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 41 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

s3c iuevo Proyecto SCUM1

Diagrama de clases

lvendedor I L

3

salida

venta prod

4 venia-oferta vcntaprod =

salida 6

Figura 41 Resultado del caso de prueba 1

45

Pruebas y Resultados

432 Caso 2

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Warnier (almacenwar cajawar vendedorwar) que ya cxisten (del caso de prueba I )

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoNordquo 4 Agregar las siguientes Clases con los respectivos meacutetodos y atributos

a Claseldquovendedorrdquo Meacutetodos ldquoventa mainrdquo b Claseldquoalmacenrdquo Meacutetodos ldquoentrada salidardquo c Claseldquocajardquo Meacutetodos ldquoventagrodrdquo

5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 42 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

Diagrama de daseo lisgrama dcsccucncis

MOIDOC Anivo

venta prod

salida

1 Ycrdquo1a 2

I 4 vcrdquolD~o1cn venta prod gt

salida 6 i Figura 42 Resultado del caso de prueba 2

46

Pruebas y Resultados

r

433 Caso 3

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Warnier

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 43 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

5

Error al tratar de abrir el archivo A bZwar

Aceptar i

Faltan Archivos de Disentildeos Detallados de Meacutetodos 1 1 A No se puede crear el diagrama de secuencias

Figura 43 Resultado del caso de prueba 3

47

Pruebas y Resultados

434 Caso 4

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 44 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

lsquo I

~ _ i i _ l _ Repaado ~~ ~ ~ 6~ ampA Figura 44 Resultado del caso de prueba 4

48

Pruebas y Resultados

PRUEBA DESCNPCION CASO 1 Mostrar la funcionalidad del

Sistema S3C a partir de un

44 Anaacutelisis de Resultados

RESULTADOS Se comproboacute la correcta funcionalidad del Sistema S3C a partir de un diagrama

CASO 3

CASO4

I diagrama de Clases cxistcnte I de Clases existente CASO 2 I Mostrar la funcionalidad del I Sc comproboacute la corrccta funcionalidad

Sistema S3C a partir de un del Sistema S3C a partir de un diagrama diagrama de Clases que se de Clases que se construye al momento construye al momento Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el Secuencias si falta alguno de los diagrama de Secuencia si falta alguno diagramas de Warnier Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el secuencias si hace falta el meacutetodo diagrama de Secuencias al faltar el ldquomain ()rdquo meacutetodo ldquomain()rdquo

de los diagramas de Warnier

Los resultados obtenidos de cada uno de los casos establecidos demuestran que se validoacute la funcionalidad del prototipo con los requisitos definidos en el alcance de este proyecto

a lt

49

Conclusiones y Tru6ajos Futuros

Aquiacute se dan a conocer las conclusiones y se describen los posibles trabajos futuros para la continuacioacuten de eacuteste proyecto

F

51 Conclusiones

Conclusiones y trabajos futuros

Se ha creado un Ambiente Visual que permite obtener de forma automaacutetica los Diagramas de Secuencias en base a los diagramas de Clases y al disentildeo detallado de los meacutetodos descritos con diagramas de Warnier cumpliendo con los objetivos planteados para este trabajo

La tesis aporta principalmente La generacioacuten automaacutetica de los diagramas de secuencias y la eliminacioacuten de inconsistencias al mantener una validacioacuten directa de los diagramas de clases y los diagramas de Warnier que son utilizados

Esta validacioacuten es lograda a traveacutes del uso de la gramaacutetica visual relaciona1 que se ha definido (veacutease el capiacutetulo 3) Esta gramaacutetica visual establece reglas para la correcta construccioacuten de los diagramas de secuencias

P De esta manera se establece que la hipoacutetesis ldquoEs posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodosrdquo Es verdadera

52 Trabajos Futuros

Un Diagrama de Secuencias puede convertirse en un Diagrama de Colaboracioacuten por lo tanto un trabajo futuro es la construccioacuten automaacutetica de un Diagrama de Colaboracioacuten a partir de uno de Secuencias existente

Es posible calcular la meacutetrica de acoplamiento al tener un Diagrama de Secuencias construido

La Ingenieriacutea directa de un Diagrama de Secuencias estableciendo la validacioacuten en la construccioacuten de todos los elementos visuales que UML define

La propagacioacuten de las modificaciones de un Diagrama de Secuencias a los Diagramas de Clases y los Diagramas de Warnier

La modificacioacuten del coacutedigo fuente mediante los cambios establecidos en un Diagrama de Secuencias

51

[ALC03]

[BLA98]

[B0099]

[BOOOi]

[BR097]

[CHA90]

[DAN02]

[GLA02]

[HAC98]

[HER03]

4

Alcate1 Computer Associates International inc Electronic Data Systems Corporation Hewlett-Packard Company IBM Corporation I-Logix IntelliCorp Kabira Technologies Kennedy Carter Microsoft Corporation Object Management Group Oracle Corporation Project Technology Ptech Inc Rational Software Corporation Reich Technologies Softeam Taskon A S Telelogic Unisys Corporation ldquoOMG Unified Modeling Language Specificationrdquo Version 15 Unified Modeling Language 2003

Blaha Michael Rumbaugh James Premerlani William Eddy Frederick Lorensen William ldquoObject-oriented modeling and designrdquo Prentice Hall 484 Paacuteginas ISBN 0-13-629841-9 QA-769-03S-B53-19981998

Booch Grady Rumbaugh James Jacobson Ivar ldquoEl lenguaje unificado de modeladordquo Addison Wesley 432 Paacuteginas ISBN 84-7829-028-1 1999

Booch Grady Rumbaugh James Jacobson Ivar ldquoThe Unified Modeling Language User Guiderdquo Addison Wesley 2001

Brown David ldquoAn introduction to object-oriented analysis objects in plain Englishrdquo John Whiley amp Sons Inc 700 Paginas ISBN 0-471-1 1028-0 QA-769-035-B76-1997 1997

Chang Shi-Kuo ldquoVisual Languages and visual programmingrdquo Plenum Press 340 Paacuteginas ISBN 0-306-43428-8 QA-7665-V57-1990 1990

Daniels John ldquoModeling with a sense of purposerdquo Design - IEEE Software JanuaryEebmary 2002

Glasgow Universidad Reino Unido ldquoA UML Editor in Javardquo (lthttplstudentsdcsglaacuWstudentspainjfproject-reportproject-re port-htmV4thYearReporthtrnlgt 2002)

T Hackos JoAnn C Redish Janice ldquoUser and Task Analysis for Interface Designrdquo Wiley Computer Publishing 488 Paacuteginas ISBN QA-769-U83- H33-1998 1998

Hemaacutendez Velaacutezquez M ldquoIngenieriacutea inversa de coacutedigo fuente en C++ para la obtencioacuten de su disentildeordquo Tesis AT-379 (03-0334) 2003

Conceptos generales

[HIX93]

[JAC93]

[JAC99]

[JOY98]

[LAR97]

[MAR]

[MIC99]

[MIC02]

[MOU98]

Hix Deborah Hartson H Rex ldquoDeveloping user interfacesrdquo 381 Paacuteginas ISBN 0-471-57813-4 QA-769-U83-H59-1993 1993

Jacobson Ivar Christerson Magnus Jonsson Patrik Overgaard Gunnar ldquoObject oriented software engineeringrdquo Addison Wesley ISBN 0-20 1 - 54435-0 QA-7676-D47-J63-1993 1993

Jacobson Ivar Booch Grady Rumbaugh James ldquoEl proceso unificado de desarrollo de softwarerdquo Addison Wesley 438 Paacuteginas ISBN 84-7829-036- 2 1999

Joyanes Aguilar Luis ldquoProgramacioacuten orientada a objetosrdquo McGruw Hill ISBN 84-481-0590-7 1998

Larman Craig ldquoAplying UML and Patternsrdquo Prentice Hull 507 Paacuteginas ISBN 0-13-748880-7 QA-769-035-L37-1997 1997

Marriot Kim Meyer Bemd ldquoVisual Language Theoryrdquo Springer 381 Paacuteginas P-935-V567-1998 1998

Microsoft ldquoMicrosoft Visual C++ 6 manual del programadorrdquo McGraw Hill ISBN 84-481-2127-9 QA-7673-Cl53-23718-1999 1999

Microsoft ldquoVisiordquo (lthttpwwwmicrosoftcomofficevisiogt 2002)

B Mourao Luis X ldquoUniversal Modeling Language Part 11 UML Notation - Case Sequence and Collaboration Diagramsrdquo Lan Times Magazine (~httpwwwlantimescomltpartsdiscussdiscuss6Ohtm~) 1998

No Magic ldquoMagicDrawrdquo (lthttpwwwmagicdrawcomgt 2002)

Object Insight ldquoJvisionrdquo (lthttpwwwobject-insightcomgt 2002)

Rational Software Microsoft I Hewlett-Packard Oracle Sterling Software MCI Systemhouse Unisys ICON Computing IntelliCorp i-Logix IBM ObjectTime Platinum Technology Ptech Taskon Reich Technologies Sofieam ldquoUML Summaryrdquo Version 11 Unified Modeling Language 1997

Rational ldquoRational Roserdquo (lthttpwwwrationalcomproductosrosegt 2002)

Rikki Kirzner ldquoAnalysis Modeling and Design Tools Market Forecast and Analysis 2001-2005rdquo Bulletin Published Under Services Application Design and Construction Tools Application Development and Deployment Strategies Documento Nuacutemero 24809 Junio 2001

53

Conceptos generales

[RIM92] Rimrner Steve ldquoGraphical user interface programmingrdquo 423 Paacuteginas

1992

Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language reference manualrdquo Addison Wesley 550 Paacuteginas ISBN 0-201-

ISBN 0-8306-2475-9 ISBN 0-8306-2472-4 (pbk) QA-769-083-R55G

[RUM99]

30998-X QA-7676-D47-R85-1999 1999

[RUM299] Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language user guiderdquo Addisoiz Wesley 482 Paacuteginas ISBN 0-201 -57 168-4 QA-7676-D47-B66-1999 1999

[SMA02] SmartDraw ldquoSmartDrawrdquo (lthttpwwwsmartdrawcomgt 2002)

[SHU88] 9 - Shu Nun C ldquoVisual Programmingrdquo Van Nostrand Reinhold ISBN 0-422- 28014-9 ISBN 0-422-01 164-4 QA-7665-S55 1988

[THI90] Thimbleby Harold ldquoUser Interface Designrdquo Acm press 470 Paacuteginas ISBN 0-201 -41 61 8-2 QA-769U83-T772~- 1990 1990

[WENO2] Wences Diaz MF ldquoModelo de Ingenieriacutea Inversa para la obtencioacuten de disentildeo detallado basado en LEVISSrdquo Tesis (02-0014) 2002

54

Anexo A

Conampuracioacuten de Microsoft Vkua[C++ 6 O

Este anexo indica las configuraciones que se utilizaron para la compilacioacuten de SCUML y s3c

Configuracioacuten de Microsoft Visual c++ 60

Debido a la integracioacuten de los proyectos de InverSOODA e InverDDVi con S3C se cumplioacute con los requisitos previos de ambos proyectos

El compilador usado en el proyecto fue el Microsoft Visual C++ 60

Para el cumplimiento con la funcionalidad de InverSOODA se instaloacute el ANTLR la versioacuten 271 Se descargoacute del sitio l i l l ~ ~ ~ ~ ~ ~ t l ~ l ~ - ~ t - ~ la versioacuten mencionada en un archivo comprimido (en formato zip) Se colocoacute el paquete descomprimido en el directorio ldquoDIANTLR-271 I rdquo

Recomiendo ampliamente que el directorio principal de ANTLR se copie en el directorio raiacutez de cualquier unidad de disco debido a que experimenteacute problemas de compilacioacuten cuando ANTLR no se encontraba en el directorio raiacutez

Io015

Source Browser AlttF12 I u c Ersquo V I

Visual Component Mgnager

- - ~ ~ ~ ~~

P2 Registrar control

A Contenedor de prueba de controles ActiveX

A Usor de objetos OLE y COM

Buacutesqueda de errores

A Y++ MFC Iracer

Customize options

~ - q- ~ Macro

Eecord Quick Macro Cbl+ShiR+R Pay Quick Macro Ctrl+ShiR+P

En el menuacute Tools (Herramientas) seleccione el sub-menuacute Options ltopcionesgt

56

Configuracioacuten de Microsoft Visual C++ 60

En la siguiente ventana de diaacutelogo debe agregar la direccioacuten en donde se encuentra el ANTLR

Agregar la ruta del directorio de ANTLR hasta el subdirectorio

libcpp

Editor I Tabs I Debug I Compatibility 1 Build Dneclolies I a I Chow directories for - Platfolm -

- Directories I x ) 4 jWin32 -] llnclude files

m cancd I

57

Configuracioacuten de Microsoft Visual C t+ 60

Se ha creado una libreriacutea (anrlrliblib) de ANTLR la cual ya estaacute situada en el directorio del proyecto SCUML (ISCUML) y no debe ser movida o eliminada

I

Geneial 1 Debug I CC++ Link I Category

Output file name bebugSCUMLexe

Objectljibrary modules 4 anllrliblib

li Generate debug lnfo r Ignore all defaull lbaries D ~ i n k j n ~ ~ ~ t a n ~ r ~ e n e r ~ ~ ~ mapfile

r Enable psafilrng

Proiec1 Ootionn

pq Cancel 1 Libreriacutea de ANTLR que debe existir 1 I para que se compile correctamente

58

Anexo B

~ u iacute aacute raacutepida de uso deC Sistema S3C

5 Este anexo indica de forma raacutepida la manera de utilizar S3C para crear un diagrama de secuencias de forma automaacutetica

Guiacutea Raacutepida de uso del Sistema S3C i

Para indicar la creacioacuten de un diagrama de secuencias en forma automaacutetica se debe ir a la barra del costado izquierdo y presionar ldquoNuevo Proyecto SCUMLrdquo

I s3c I ~ Nuevo Proyecto SCUML ~ _ _ - I Diagrama de clases ~ Diagrama de secuencias 1 MDI DOC Activo

-

Apareceraacute un documento llamado ldquoSCUMLV en donde el simbolo corresponde a un numero consecutivo iniciando desde 1 (uno)

$ e Despueacutes se presiona ldquoDiagrama de clasesrdquo Habraacute que para indicarle al sistema si se requiere abrir un diagrama de clases existente o realizar uno nuevo

i

iquestAbrir un documento existente

No Cardquo~ear

AI presionar ldquoSirdquo se debe indicar cual es el archivo del diagrama de Clases en el cuadro de diaacutelogo siguiente

~~ - 11dMis documentos rsquo 2 M i P C i lsquo h s sitios de red

I

AI presionar ldquoNordquo en ldquoAbrir un documento existenterdquo se nos mostraraacute un documento vacio para crear un diagrama de clases

60

Guiacutea Raacutepida de uso del Sistema S3C

Para ambas opciones se requiere que los diagramas de Wamier ya se encuentren construidos Y para continuar el proccso se selecciona el documento ldquoSCUMLVrsquo creado al inicio y despueacutes presionar el botoacuten nombrado ldquoDiagrama de secuenciasrdquo localizado en la barra de hcrraiiiicntas del costado izquierdo

Ha iniciado el proceso de construccioacuten del diagrama de secuencias Si no existen errores al terminar el proceso se le mostraraacute un cuadro de diaacutelogo llamado ldquoResultadosrdquo en donde le mostraraacute las llamadas de las que no localizoacute su definicioacuten

- - -

Cancel 1 D e las siguientes llamadas es posible que esten mal escritas o peitenezcan a la libreiia del Lenguaie Verifique ya que no se encontraron sus definiciones

A continuacioacuten se mencionan los posibles errores que finalizan el proceso de la creacioacuten automaacutetica de los diagramas de secuencias en S3C

Cuando no exista un meacutetodo lsquomainrsquo definido en el diagrama de clases

No se encontro el meacutetodo lsquomain()rsquo que inicie la secuencia I A No se puede crear el diagrama de secuencias

p==amp=q

61

Guia Raacutepida de uso del Sistema S3C

Cuando se definan niultiples metodos lsquoinainrsquo en el diagrama de clases

Multiples meacutetodos lsquomainOlsquo Imposible decidir el inicio de secuencia

Aceptar i

Si un meacutetodo definido en Wamier realiza una llamada a lsquomainrsquo se cancelara el proceso

Llamada NO VALIDA al meacutetodo principal main

(iAcp-j(

4 i

CI Y rdquoldquoldquoI i 11 1-T

IZNTRO Gt INFORMACION

62

  • Tabla de Contenido
  • Listado de Figuras
  • Listado de Tablas
  • Notacioacuten
  • Introduccioacuten
  • Capitulo 1 Conceptos Generales
    • 11 Antecedentes
    • 12 Trabajos relacionados
      • 121 Tabla comparativa
        • 13 Definicioacuten del problema
        • 14 Objetivo de la Tesis
          • Objetivos especiacuteficos de la tesis
            • 15 Hipoacutetesis de investigacioacuten
            • 16 Alcances y limitaciones del trabajo de tesis
              • Capitulo 2 Marco Teoacuterico
                • 21 Modelado de sistemas de software
                • 22 Interfaz de usuario (Mecanismos de interaccioacuten)
                • 23 Lenguajes Visuales
                • 24 Programacioacuten orientada a objetos
                • 25 Lenguaje de Modelado Unificado (UML)
                  • Desarrollo de la herramienta
                    • 31 Disentildeo de la Arquitectura
                      • 311 Requisitos (Diagrama de Casos de uso)
                        • 312Modelo Conceptual
                        • 313Diagramas de clases
                        • 32 Elementos de la arquitectura
                          • 321 Microsoft Foundation Class (MFC)
                            • 322Arquitectura Documento Vista
                            • 323Integrando Ambientes en Visual c++
                              • 324 Interfaz de Muacuteltiples Documentos (MDI)
                                • 325Recursos Diaacutelogos Menus y Barras de Herramientas
                                  • 326 Notacioacuten estaacutendar
                                  • 327 Estructura de datos persistencia y recuperacioacuten
                                    • 328Patrones de disentildeo utilizados
                                      • 33 Diagrama de secuencias
                                        • 331Ciclo de vida del software
                                          • 34 Elementos atoacutemicos de la Gramaacutetica
                                            • 341 Representacioacuten visual
                                              • 35 Gramaacutetica desarrollada
                                              • 36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias
                                                  • Capitulo 4 Pruebas y Resultados
                                                    • 41 Recursos teacutecnicos utilizados
                                                    • 42 Descripcioacuten del plan de pruebas
                                                    • 43 Resultados
                                                      • 431 Caso
                                                      • 432 Caso2
                                                      • 433 Caso
                                                          • Conclusiones y trabajos futuros
                                                            • Trabajos futuros
                                                            • Referencias
                                                            • Anexo A Configuracioacuten de Microsoft Visual C+t
                                                              • Figura 11 - Arquitectura de la suite cenidet-UML
                                                              • Figura 21 -Programacioacuten Visual
                                                              • Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de
                                                              • Figura 32 -Diagrama de Casos de Uso para el S3C
                                                              • Figura 33 -Modelo Conceptual
                                                              • Figura 34 - Diagrama de Clases -Control del Diagrama -
                                                              • Figura 35 - Diagrama de Clases - Patroacuten Visitor -
                                                              • Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento
                                                              • Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)
                                                              • Figura 38 -Dialogo Caracteriacutesticas del Objeto
                                                              • Figura 39 -Dialogo Mensaje
                                                              • Figura 3 IO - Menuacute de los Diagramas de Secuencias (estaacutendar)
                                                              • Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias
                                                              • Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)
                                                              • Figura 313 - Serializacioacuten
                                                              • Figura 314 -Modelo de cascada del ciclo de vida del software
                                                              • Figura 41 - Resultado del caso de prueba
                                                              • Figura 42 -Resultado del caso de prueba
                                                              • Figura 43 -Resultado del caso de prueba
                                                              • Figura 44 -Resultado del caso de prueba
                                                              • Tabla 11 - Tabla comparativa
                                                              • Tabla 31 -Prefijos estaacutendar de identificadores
                                                              • Tabla 32 -Elementos atoacutemicos del lenguaje
                                                              • Tabla 41 - Resumen de los resultados de las pruebas realizadas

Marco teorico

Cada produccioacuten en P tiene la siguiente forma

A -+ X I R I X R2 X ~ I Rm1 xm A

e) Gramaacuteticas de Relacioacuten de siacutembolos Eacuteste es un formalismo sintaacutectico para describir un lenguaje visual donde cada oracioacuten dentro del lenguaje se representa como un conjunto de objetos visuales y un conjunto de relaciones entre objetos

El alfabeto de siacutembolos Vt y el conjunto de relaciones entre siacutembolos Vr una oracioacuten de relacioacuten de siacutembolos w sobre Vt y Vr es un par ( M R) donde

M es un conjunto de elementos-s (v i) con v E Vt y i es un nuacutemero natural R es un conjunto de elementos-r de la forma r (Xi Yj) con Xi Yj E M r E Vr y una relacioacuten r esta contenida entre Xi y Yj

Una gramaacutetica de relacioacuten de simbolos es el conjunto de seis elementos G = (Vn Vt Vr S P R) donde Vn es un conjunto de siacutembolos no terminales Vt es un conjunto de siacutembolos terminales Vr es un conjunto de relaciones entre siacutembolos S es el siacutembolo inicial y P es un conjunto de reglas de reescritura (producciones de elementos-s)

f) Gramaacuteticas relacionales Este tipo de gramaacutetica pertenecen a las gramaacuteticas libres de contexto

La gramaacutetica relaciona1 (RGrsquos) es una 6-tupla G (N C S R Attr P) donde

N C S R Attr P

es un conjunto finito de siacutembolos no terminales es un conjunto de siacutembolos terminales es un siacutembolo distinguido en N llamado siacutembolo inicial es un conjunto finito de siacutembolos de relacioacuten es un conjunto finito de siacutembolos de atributos es un conjunto de producciones de la forma A-gt apF donde A E N a E (nlo)+ Donde n E N cr E E

8 Es un conjunto de relaciones de la forma (r x y) donde r E R y xy son enteros que hacen referencia a un miembro de a y tambieacuten una expresioacuten de la forma (a i) donde a E Attr e i es un entero que hace referencia a un miembrode a

F Es un conjunto de declaraciones de asignacioacuten de caracteriacutesticas de la forma (a O)=x donde a E Attr y x es un entero que hace referencia a un miembro de a o a una expresioacuten de la forma (a i)

15

Marco teoacuterico

24 Programacioacuten orientada a objetos

L~~ meacutetodos orientados a objetos organizan la informacioacuten Y el procesamiento que manipula esta informacioacuten de acuerdo a los objetos delrsquomundo real que la informacioacuten describe [BRO97l

Beneficios de las teacutecnicas orientadas a objetos [BR097] Estabilidad del sistema Mantenibilidad Componentes reusables Confiabilidad Accesibilidad de los datos Participacioacuten del usuario

Seguacuten Graddy Booch la programacioacuten orientada a objetos es ldquoun meacutetodo de implementacioacuten en el que los programas se organizan como colecciones cooperativas de objetos cada uno de los cuales representan una instancia de alguna clase y cuyas clases son todas miembros de una jerarquiacutea de clases unidas mediante relaciones de herenciardquo [JOY 981

Programacioacuten orientada a objetos esencialmente significa programacioacuten usando objetos [JAC93] Los lenguajes orientados a objetos deben soportar los siguientes conceptos

Objetos Abstraccioacuten de datos Encapsulamiento Clases e Instancias Herencia entre clases Polimorfismo

Las propiedades fundamentales de la Programacioacuten Orientada a Objetos son

a Abstraccioacuten Son ideas conceptos y propiedades que se describen en forma general eliminando los detalles Es una estructura de datos y los meacutetodos que manipulan a esos datos

b Encapsulamiento Son las fronteras propias de un objeto bien definidas las cuales protegen los detalles de su representacioacuten interna

c Ocultacioacuten de la informacioacuten Es la propiedad en la que los objetos pueden hacer uso para impedir que otros objetos los usuarios o incluso los programadores conozcan coacutemo estaacute distribuida la informacioacuten

d Herencia Es la propiedad que tiene una clase para heredar atributos y comportamiento a otras clases

e Polirnorfismo Es la propiedad que permite que una entidad pueda cambiar a diferentes formas efectuaacutendose de manera dinaacutemica en tiempo de ejecucioacuten

16

Marco teoacuterico

t

Clases Es la especificacioacuten de una familia de objetos es la declaracioacuten de un tipo de objetos Tambieacuten se dice que una clase es la descripcioacuten de un conjunto de objetos con un comportamiento similar y que esta compuesta de Datos (o atributos) y Meacutetodos o (rutinas acciones operaciones)

Objeto Un objeto es una entidad en la cual se almacenan datos y los meacutetodos o funciones que controlan dichos datos Un objeto es una abstraccioacuten de alguna cosa del mundo real que contiene datos que lo describen y operaciones que solo tienen acceso a esos datos [BR097l Los elementos de los que esta conformado un objeto son

a Las relaciones permiten que el objeto se integre en la organizacioacuten b Las propiedades son los datos que caracterizan el estado de un objeto distinguiendo

asiacute a un objeto determinado de los restantes que forman parte de la misma organizacioacuten

c Los meacutetodos son las operaciones que pueden realizarse sobre la estructura del objeto es decir las acciones que cambian el estado de un objeto y que el objeto es capaz de ejecutar a traveacutes de mensajes y que tambieacuten pone a disposicioacuten de sus descendientes a traveacutes de la herencia

Mensajes Son solicitudes para que se lleve a cabo la operacioacuten indicada y se produzca un resultado

Las razones principales para introducir la tecnologiacutea de objetos son los beneficios de dicha tecnologiacutea

Aumento de la fiabilidad Aumento de la productividad del desarrollador Desarrollo maacutes raacutepido Mejor calidad maacutes alta

Incremento en escalabilidad Mejores estructuras de informacioacuten Incremento de adaptabilidad Reduccioacuten del coacutedigo fuente

Mantenimiento maacutes faacutecil y reduccioacuten de costo

Los elementos de reutilizacioacuten son las clases y objetos

25 Lenguaje de Modelado Unificado (UML)

UML (Unified Modeling Language por sus siglas en ingleacutes Lenguaje de Modelado Unificado) es un lenguaje de modelado visual de propoacutesito general que es utilizado para especificar visualizar construir y documentar las partes de un sistema de software El lenguaje estaacute basado en un pequentildeo nuacutemero de conceptos centrales que la mayoriacutea de los desarrolladores de tecnologiacutea orientada a objetos pueden aprender y aplicar faacutecilmente [RUM99]

17

Marco teoacuterico

y UML Pasado Presente y Futuro

L~~ lenguajes de modelado orientado a objetos aparecieron a mediados de 10s 70rsquos Varias teacutecnicas influenciaron estos lenguajes El nuacutemero de lenguajes de modelado incrementoacute desde menos de 10 hasta maacutes de 50 entre 1989 y 1994 Muchos modeladores teniacutean problemas para encontrar un lenguaje de modelado que satisficiera todas sus necesidades Notablemente aparecioacute Boochrsquo93 y la evolucioacuten continuoacute a OMT y Fusioacuten

OOSE (Object-Oriented Software Engineering) estaacute enfocado a la ingenieriacutea de negocios y anaacutelisis de requerimientos dando un excelente soporte orientado a casos de uso OMT-2 es especialmente expresivo para anaacutelisis y sistemas de informacioacuten de datos grandes Boochrsquo93 fue particularmente expresivo para el disentildeo y fases de construccioacuten de proyectos y popular para aplicaciones de ingenieriacutea intensiva

Grady Booch y Jim Rumbaugh iniciaron el desarrollo de UML en 1994 al unificar sus meacutetodos independientes Booch y OMT En 1995 Ivar Jacobson se unioacute a Racional eacutesta unioacuten logroacute que el meacutetodo OOSE se incorporara La unificacioacuten establecioacute que debiacutean activar el modelado de sistemas utilizando conceptos orientados a objeto asiacute como crear un lenguaje usable tanto para las maacutequinas como para los humanos

A

Muchas organizaciones se unieron al consorcio UML y dedicaron recursos al trabajo hacia el fortalecimiento de la definicioacuten de UML Esta colaboracioacuten produjo un lenguaje de modelado expresivo poderoso y generalmente aplicable En la forma actual de UML se espera que sea base de muchas herramientas incluidas las de modelado visual simulacioacuten y ambientes de desarrollo

R UML es abierto y no-propietario y aunque define un lenguaje preciso no es barrera para futuras mejoras en conceptos de modelado Se usan muchas teacutecnicas de punta pero se esperan teacutecnicas adicionales que influencien futuras versiones de UML puede ser extendido sin redefinir el nuacutecleo

c

Mientras el rehuacuteso basado en componentes se ha favorecido ampliamente cada vez mas esto no significa que las teacutecnicas basadas en componentes reemplazaraacuten las teacutecnicas orientadas a objetos Hay solo sutiles diferencias entre la semaacutentica de componentes y clases [ALC03]

Un opaco rendimiento caracterizoacute el mercado de anaacutelisis modelado y disentildeo en el 2000 en su transicioacuten de las viejas herramientas CASE (Computer Aided Software Engineering) a algo maacutes dinaacutemico y mejor adaptado para satisfacer las necesidades de los desarrolladores para el cambio raacutepido en los ambientes de negocio

El mercado de anaacutelisis modelado y disentildeo lograraacute obtener un crecimiento positivo en varios de los siguientes antildeos por varias razones El mercado seraacute manejado principalmente por la necesidad de desarrolladores a obtener aplicaciones para lanzarse al mercado raacutepidamente asiacute tambieacuten por el intereacutes creciente y uso de una nueva especie de herramienta y por el intereacutes creciente de los desarrolladores en usar UML reglas de negocios y adaptadores de componentes para construir aplicaciones [RIKUI]

z -

18

Marco teoacuterico

UML se ha hecho el estaacutendar para los desarrollos de modelado de negocios administracioacuten de requerimientos anaacutelisis y disentildeo programacioacuten y pruebas Los objetivos primarios de UML en el disentildeo [RAT97j

o Dar a los usuarios un lenguaje visual expresivo de modelado listo para usarse para que puedan desarrollar y cambiar los significados de sus modelos

o Suministrar mecanismos de extensibilidad y especializacioacuten para extender los conceptos centrales

o Ser independiente de lenguajes de programacioacuten particulares y procesos de desarrollo

o Impulsar el desarrollo de las herramientas Orientadas a Objeto en el mercado o Soportar conceptos de desarrollo de alto nivel como colaboracioacuten marcos de

componentes reutilizables patrones y componentes o Integrar las mejores praacutecticas

9 El aacutembito de UML

UML es un lenguaje para especificacioacuten construccioacuten visualizacioacuten y documentacioacuten de artefactos de un sistema de software UML es la fusioacuten de los conceptos de Booch OMT y OOSE El resultado es un simple comuacuten y ampliamente usado lenguaje de modelado para usuarios de estos y otros meacutetodos UML se enfoca en un lenguaje de modelado estaacutendar no en un proceso estaacutendar los autores de UML recomiendan un proceso de desarrollo manejado por casos de uso de arquitectura central iterativo e incremental [iiquest4T97l

Para la definicioacuten de sistemas de software en UML se definen diagramas Un diagrama es la representacioacuten graacutefica de un conjunto de elementos este se visualiza la mayoriacutea de las veces como un grafo conexo de nodos (elementos) y arcos (relaciones) Los diagramas se dibujan para visualizar un sistema desde diferentes perspectivas de forma que un diagrama es la proyeccioacuten de un sistema uumlML incluye nueve diagramas [B0099]

4 -

I Diagrama de clases 2 Diagrama de objetos 3 Diagrama de casos de uso 4 Diagrama de secuencias 5 Diagrama de colaboracioacuten 6 Diagrama de estados 7 Diagrama de actividades 8 Diagrama de componentes 9 Diagrama de despliegue

Diagramas de secuencias Un diagrama de secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten comportamiento

Un diagrama de secuencias muestra un conjunto de mensajes acomodados en una secuencia de tiempo eacuteste diagrama muestra la interaccioacuten en un esquema de dos - dimensiones [RUM99]

19

Marco teoacuterico

Y -

Un diagrama de secuencia es un diagrama de interaccioacuten que resalta la ordenacioacuten temporal de los mensajes Un diagrama de secuencia presenta un conjunto de objetos y los mensajes enviados y recibidos por ellos Los objetos suelen ser instancias (con nombre o sin nombres) de clases pero tambieacuten pueden representar instancias de otros elementos tales como colaboraciones componentes y nodos Los diagramas de secuencia se utilizan para describir la vista dinaacutemica de un sistema [B0099]

Usar los diagramas de secuencia es mostrar la secuencia que existe en un caso de uso [RUM 991

Los diagramas de secuencia tienen dos dimensiones Una dimensioacuten que representa el tiempo Otra dimensioacuten que representa los diferentes objetos que participan en la secuencia de eventos requeridos para completar el propoacutesito [MOuuml98]

El principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildea las interacciones de los objetos [DAN02]

20

Capiacutetulo 3

DesawoCCo de Ia herramienta

En este capiacutetulo se describe el desarrollo del Ambiente Visual Se describe el modelo conceptual del sistema la arquitectura asiacute como tambieacuten los elementos que componen la Arquitectura Se estudian los Diagramas de Secuencias de UML y algunos Patrones de Disentildeo de los que se hace uso para el mejor desarrollo del sistema Se describe a detalle la Gramaacutetica Visual Relaciona1 utilizada para el de Ambiente de desarrollo

I CENIOET 1FNTRO DE INFORMACION

Desarrollo de la herramienta

t i i

Actualmente existe en el cenidet un Ambiente Visual de Modelado de Clases llamado InverSOODA este Ambiente Visual tiene la capacidad de realizar la generacioacuten automaacutetica de coacutedigo de las clases en C++ a partir del modelo especificado Ademaacutes se puede realizar la Ingenieria Inversa de un coacutedigo legado para obtener el modelo de clases Aunado a este trabajo existe el Ambiente Visual denominado InverDDVi con el cual se puede realizar el Disentildeo Detallado de los Meacutetodos de las Clases con diagramas de Warnier Asiacute tambieacuten es posible obtener el modelo aplicando la Ingenieriacutea Inversa a un coacutedigo legado en C++

Ambos trabajos son retomados en este proyecto para la automatizacioacuten en la obtencioacuten de los Diagramas de Secuencias de UML La figura 31 muestra el modelo propuesto de ingenieriacutea directa

Extraer informacioacuten del diagrama de

rsquo rsquo

Diagrama de 11 clases I o

detallado de

detallado de

o meacutetodos

i ir---- Construir el

secuencias i

Modelo de Ingenieriacutea I directa automaacutetica

I

Figura 31 Modelo de Ingenieria Directa Autombtica de los Diagramas de Secuencias

Para la construccioacuten automaacutetica de un diagrama de secuencias se toma como base a un diagrama de Clases El modulo ldquoExtraer informacioacuten del diagrama de Clasesrdquo sirve para obtener el nombre y los meacutetodos descritos en cada uno de las clases que existan en el diagrama de Clases

22

Desarrollo de la herramienta

Con base en la informacioacuten que se tiene se abren los archivos correspondientes a los diagramas de Warnier El proceso que se emplea sobre cada uno los diagramas de Warnier llamado ldquoExtraer informacioacuten de los disentildeos detallados de los meacutetodosrdquo sirve para recopilar el conjunto de las llamadas de cada meacutetodo definido

En el siguiente paso (ldquoReconocer llamadas a meacutetodosrdquo) consiste en identificar si los meacutetodos que estaacuten descritos en los diagramas de Warnier tambieacuten lo estaacuten en el diagrama de Clases correspondiente

El paso ldquoConstruir los diagramas de secuencias automaacuteticamenterdquo realiza una validacioacuten de los meacutetodos definidos en los diagramas de Clases con los meacutetodos definidos en los diagramas de Warnier Este paso crea una estructura de datos con la secuencia de las llamadas y la recorre para crear los objetos y los mensajes en el diagrama de secuencias

AI terminar la creacioacuten automaacutetica del diagrama de secuencias se dispone de la r opcioacuten de guardar

31 Disentildeo de la Arquitectura

Para definir los procesos que el sistema va a realizar es necesario llevar a cabo un anaacutelisis de requisitos los cuales pueden ser expresados mediante diagramas de Casos de Uso Los Casos de Uso son una descripcioacuten textual narrativa de los procesos de un sistema

311Requisitos (Diagrama de Casos de uso)

Los casos de uso en realidad no son un artefacto de anaacutelisis orientado a objetos estos describen simplemente procesos y pueden ser igualmente efectivos en un proyecto tecnoloacutegico no orientado a objetos Son usados en un paso preliminar a la descripcioacuten de requerimientos de un sistema [LAR971 La Figura 32 muestra el diagrama de casos de uso que especifica al S3C

9

S3C (Diagramas de Secuencias)

usuario I Modelado de

I

Figura 32 Diagrama de Casos de Uso para el S3C

23

Desarrollo de la herramienta

Descripcioacuten de los Casos de Uso

Caso de Uso ldquoDiagramas de Secuenciasrdquo Se inicia cuando el actor ldquousuariordquo solicita la creacioacuten de un Diagrama de Secuencias Se establece la forma de la construccioacuten automaacutetica de los diagramas de secuencias de UML Se hace uso del Modelado de Clases y del Modelado del disentildeo detallado de los meacutetodos

Escenario de Eacutexito 1 Se obtiene la informacioacuten de las clases del modelado de clases 2 Se obtiene la informacioacuten del modelado del disentildeo detallado de los meacutetodos 3 Se realiza la construccioacuten automaacutetica de los diagramas de secuencias

1 En el modelo de clases no hay informacioacuten o estaacute incompleta 2 En el modelo del disentildeo detallado de los meacutetodos no hay informacioacuten o estaacute

incompleta

Escenario de Falla

Caso de Uso ldquoModelado de Clasesrdquo El diagrama de Clases se utiliza para obtener los nombres de clases y los nombres de los meacutetodos de cada clase

Escenario de Eacutexito 1 Se abre el modelo 2 Se procesa para obtener la informacioacuten de las clases (nombres de clases y nombres

de meacutetodos)

Escenano de Falla h 1 No se puede abrir el modelo J 2 El modelo esta vaciacuteo

Caso de Uso ldquoModelado del Disentildeo detallado 1 los meacutetodosrdquo El disentildeo detallado de los meacutetodos se realiza con diagramas de Warnier aquiacute se establecen las llamadas a funciones dentro del sistema y es aquiacute donde se identifica el dinamismo que se representaraacute en los diagramas de secuencias

Escenario de Eacutexito 1 Se abre el modelo 2 Se realiza la identificacioacuten de las llamadas existentes

Escenario de Falla 1 No se puede abrir el modelo 2 El modelo esta vaciacuteo

24

Desarrollo de la herramienta

Clase Objeto ni I Diagrama I n ____ Nombre Descripcioacuten

i

Mensaje

Tipo

En el Anaacutelisis Orientado a Objetos se crea una especificacioacuteii del dominio del problema y de los requeriinientos desde la perspectiva de una clasificacioacuten por objetos y del entendimiento de los teacuterminos usados en el dominio del problema Una descomposicioacuten del dominio del problema involucra una identificacioacuten de conceptos atributos y asociaciones que son considerados importantes dentro del dominio El resultado puede ser expresado en un Modelo Corzcepttraf el cual es ilustrado en un conjunto de diagramas que definen conceptos (objetos) [LAR97]

312Modelo Conceptual

El modelo conceptual visto en la Figura 33 no es una descripcioacuten de componentes de software representa conceptos en el domino del problema en el mundo Teal [LAR97l

313Diagramas de clases

Por cuestiones dc espacio las clases de la arquitectura del sistema estaraacuten referidas en varios diagramas que de alguna manera estaacuten relacionados entre si

Una de las partes maacutes importantes del Ambiente Visual S3C es la estructura de clases ltCCraJicogt la cual se refiere al control de los diagramas eacutesta por su naturaleza podriacutea considerarse el nuacutecleo del sistema La manipulacioacuten y control de los diagramas estaacute definido en una estructura de clases organizada con el patroacuten de disentildeo Composite que se muestra en la Figura 34

25

Desarrollo de la herramienta

CRecursividadDS CMensajeDS CObjetoDS CDiagramaDS

I Cvisitor I

CApuntadorDS CDblClickDS CAsocAdjusterDS CSelectorDS

26

Desarrollo de la herramienta

n 32 Elementos de la arquitectura

Es necesario describir los elementos que dan soporte a la arquitectura del ambiente donde se implementaraacute el sistema en este caso Microsoft Visual (MV) C++ 6 El MV C++ es un marco de aplicacioacuten poderoso basado en Windows se integran ademaacutes del lenguaje C++ (compilador y enlazador) el programa de desarrollo de programas en lenguaje C para Windows (SDK) la Microsoft Foundation Class Library AppWizzard Classwizard AppStudio y WorkBencli

La Microsoft Foundation Class Library comprende una biblioteca de clases de C++ y es considerada como el nuacutecleo del MV C++

321Microsoft Foundation Class (MFC)

La libreriacutea Microsoft Foundation Class (MFC) es una interfaz orientada a objetos que tiene las siguientes metas de disentildeo

o

Reduccioacuten significante de esfuerzo al escribir una aplicacioacuten para Windows Velocidad de ejecucioacuten comparable a las APIrsquos del lenguaje C Miacutenimo tamantildeo de coacutedigo Capacidad para llamar cualquier funcioacuten de Windows en C directamente Faacutecil conversioacuten de aplicaciones existentes en C a C++ Faacutecil uso de APIrsquos de Windows con C++ como con C Faacutecil uso de complicadas caracteriacutesticas de abstracciones poderosas como ActiveX soporte para base de datos impresioacuten barras de herramientas y barras de estado El API de Windows en C++ si usa tan efectivamente como las caracteriacutesticas mismas del lenguaje C++

La mayoriacutea de las clases de la Libreriacutea de la Microsoft Foundation Class son derivadas de una clase base ltCObjectgt que es la raiacutez de la jerarquiacutea de clases ltCObjectgt da uacutetiles capacidades a las clases que derivan de ella

La jerarquiacutea que existe en las clases derivadas de ltCObjectgt es la siguiente

Arquitectura de Aplicacioacuten Excepciones Servicios de Archivos Arreglos Listas Mapas Servicios de Internet Sockets Sincronizacioacuten Soporte para base de datos D A 0

27

Desarrollo de la herramienta

i

r

Liacutenea de Comandos Menuacute Dibujo Graacutefico Dibujo Graacutefico de Objetos Soporte de Control Soporte de Ventanas

Soporte para base de datos ODBC

o Marco de Ventanas o Barras de control o Hojas de propiedades o Cajas de Dialogo o Vistas o Controles

322Arquitectura Documento Vista

Por defecto las aplicaciones creadas con la MFC usan un modelo de aplicacioacuten que separa los datos del programa de las vistas de interaccioacuten con el usuario En eacuteste modelo un objeto documento de MFC lee y escribe datos en un almacenamiento persistente Un objeto vista administra el despliegue de datos suministrando al usuario los datos para ser seleccionados o editados La vista le comunica al documento cualquier cambio en los datos La razoacuten maacutes conveniente para seguir este modelo es cuando se necesita muacuteltiples vistas del mismo documento (como en una hoja de caacutelculo y un graacutefico)

La arquitectura documentovista hace faacutecil el soporte de muacuteltiples vistas y muacuteltiples tipos de documentos asiacute como la divisioacuten de ventanas y otras caracteriacutesticas de interfaz de usuario Pero el corazoacuten de la arquitectura son cuatro clases (Mostradas en el aacuterbol de clases de la Figura 36)

ltCDocumerrtgt (o ltCOleDocuinentgt) - Se instancia un objeto de este tipo para almacenar y controlar los datos del programa ltCViewgt (o una de sus clases derivadas ltCScrotlViewgt ltCFormViewgt ltCEditView ltCRecordViewgt ltCDaoRecordView ltCtreeViewgt ltCListViewgt b ltCrichEditViewgt) - Un objeto es usado para desplegar los datos y administrar la interaccioacuten del usuario con los datos ltCFrameWndgt (o una de sus variantes) - Establece el marco sobre el que trabajaraacuten una o mas vistas de un documento ltCDocTemolategt (o ltCSingIeDocTemplategt o ltCMultiDocTemplategt) - Coordina la existencia de uno o maacutes documentos de un tipo dado y administra la correcta creacioacuten de los documentos vistas y objetos ventanas para cada tipo

i

28

Desarrollo de la herramienta

______________ 2 Wiew

I - - __ - ------a ________________

323Integrando Ambientes en Visual C t t

Las aplicaciones de Interfaz de Documento Uacutenico (SDI) soporta muacuteltiples tipos de documentos pero este soporte es para un solo objeto documento Debido a esta restriccioacuten y aunado a la necesidad de tener varios objetos documentos a la vez se determina la utilizacioacuten del modelo Interfaz de Muacuteltiples Documentos (MDI) indicado en la Figura 37

324Interfaz de Muacuteltiples Documentos (MDI)

Una aplicacioacuten de Interfaz de Muacuteltiples Documento (MDI) permite la creacioacuten de plantillas para el manejo de los documentos eacutesta plantilla tiene la forma

rn-pDocTemplate = new CMultiDocTernplate ( I DR-SCUMLTY PE RUNTIME-CLASS (CSCUMLDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CTheView))

AddDocTernplate ( rn-pDocTemplate )

Cada plantilla describe una relacion del tipo de documento con la vista asociada La definicioacuten de la plantilla para el ambiente que controla los diagramas de secuencias es la siguiente

29

Desarrollo de la herramienta c

m-pTernplateSeqDlag = new CMultiDocTernplate ( IDR-DS-SJCTYPE RUNTIME-CLASS (CSeqDiagDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CSeqDiagView) )

AddDocTernplate( rn-pTernplateSeqDiag )

Esta plantilla hace uso de la clase CCliildFrame que por defecto el ambiente Visual C++ construye y esto es debido a que no se requieren caracteriacutesticas extras en las ventanas de las que proporciona dicha clasc En un caso en el que se requiriera un comportamiento diferente de la vista tendriacutea que crearse una nueva clase con las caracteriacutesticas deseadas

Vista Documento

Vista

I- Vista Documento I [ Tip- F Vista

L Figura 37 Modelo Interfaz de Muacuteltiples Documentos (MDI)

Para integrar otro Ambiente que utilice otro tipo de documento es necesario definir otra plantilla de la misma forma mencionada Debe tomarse en cuenta los siguientes puntos

Es necesario definir el nombre (mqTemplateNOMBRE) El IDR del tipo que se requiere que sea el documento En la primera liacutenea RUNTIME CLASS debe indicar la clase ltCDocumentgt que desea La segunda liacutenea RUNTIME-CLASS soacutelo la cambia a otra clase si requiere de otro manipulador de ventanas de lo contrario deje que ltCChildFramegt se haga cargo

-

30

Desarrollo de la herramienta

En la uacuteltima liacutenea referente a RUNTIME-CLASS se debe indicar la clase ltCViewgt que desea usar Para finalizar se usa la instruccioacuten AddDocTernplate para finalizar la definicioacuten del template (mgTemplateNOMBRE)

325 Recursos Diaacutelogos Mertuacutes y Barras de Herrattriertias

Son varios los recursos con los que se puede contar al crear un proyecto en Microsoft Visual C++ Los diaacutelogos son un recurso disponible que son utilizados para visualizar ingresar yo modificar informacioacuten que se requiera En el Ambiente Visual que se desarrolla son varios los diaacutelogos que se utilizaraacuten y eacutestos se describen a continuacioacuten

El Diaacutelogo ldquoCaracteriacutesticas del Obietordquo (Figura 38) identifica el nombre del Objeto y la descripcioacuten del mismo Este diaacutelogo se muestra cuando se presiona doble clic sobre un objeto del diagrama

I Nombre

Desciipcion

Figura 38 Dialogo Caracteriacutesticas del Objeto

El Diaacutelogo ldquoMensaierdquo (Figura 39) muestra el nombre del mensaje que puede ser modificado ademaacutes se visualizan el Identificador del Mensaje el tipo de Mensaje asiacute tambieacuten el origen y destino del mensaje

31

Desarrollo de la herramienta

Nornbie delMensaje Edit

IDentificador del Mensaje Edil Tipo de Mensaje (Edil

Edit Objeto Origen

Objeto Destino IEdit

i25El A Figura 39 Dialogo Mensaje

El menuacute es otro de los recursos del que se puede disponer para organizar el ambiente que se estaacute creando Para eacuteste caso en particular no se hizo modificaciones al menuacute estaacutendar (Figura 310) que Visual C++ presenta Los cambios significativos son el manejo del tipo de documento para los Diagramas de Secuencias

Archivo Editar Yer VenLana AyGda

Figura 310 Menuacute de los Diagramas de Secuencias (estaacutendar)

Otro importante recurso del que uno se puede valer en Visual C++ es la barra de herramienta personalizada la cuaacutel es construida en el Editor de Recursos Se ha construido una barra (Figura 311) con los elementos graacuteficos de los Diagramas de Secuencia de UML

Figura 311 Barra de Herramientas de los Diagramas de Secuencias

Es recomendable que al utilizar barras de herramienta personalizada se defina en el tamantildeo estaacutendar ya que puede experimentar problemas al momento de ejecutar la aplicacioacuten

Ademaacutes puede usar la propiedad TBBS-CHECKGROUP en una barra de herramientas para establecer que los botones puedan quedar presionados hasta que un botoacuten diferente sea presionado No olvide que la numeracioacuten inicia con cero ( O )

vuriableToolBurSetButtonStyle(OTBBSCHECKGROUP)

32

Desarrollo de la herramienta

Prefijo ID IDC IDD IDP IDR IDS

326 Notacioacuten estaacutendar

Los nombres descriptivos de los recursos se asocian a un valor uacutenico Para una mayor claridad eacutestos nombres mantienen un prefijo que describe el tipo de recurso asociado (vea la Tabla 31) [MIC99]

Tipo de Recurso Comandos de Menuacute Controles y recursos Cuadros de diaacutelogo Cadenas de solicitud para cuadros de mensaje Menuacute principal barras de herramienta tabla aceleradora y el icono Cadenas

IDR IDD IDC ID

200 - 299 3000 - 3999 34000 - 34999

Estos son los rangos de valores establecidos para el proyecto S3C Si se utiliza el coacutedigo fuente y se planea agregar otro proyecto verifisue que no se invadan estos nuacutemeros para evitar problemas

Para facilitar auacuten maacutes los trabajos futuros se ha definido una estructura de carpetas (ver Figura 312) para incluir en cada una las Clases correspondientes a cada tesis en desarrollo

33

Desarrollo de la herramienta

ill ~~ -

-I SCUML classes + U A N T L R + U App + 0 ClassDiagrams + 0 Common + a Java

t $2 SequenceDiagiams

+ WarnierDiagrams

iJ PackageDiagrams

12 StaterChartDiagrams

+

- f Classview I Resourceview 1 FileView ]

~ ~

Figura 312 Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)

327Estructura de datos persistencia y recuperacioacuten

Existe una gran cantidad de tipos de datos estructuras clases y meacutetodos de los que se puede hacer uso para una mejor y maacutes faacutecil obtencioacuten de los resultados A continuacioacuten hago comentarios en tipos de datos y meacutetodos en los que podriacutea tener problemas

CTypedPtrList

AI usar este tipo de dato o alguno relacionado que le permita utilizar el meacutetodo ltCTvrgtedPtrListGetNextgt tenga especial precaucioacuten al usarlo ya que al devolver el valor requerido la variable POSITION usada no se queda apuntando a ese valor en particular salta al inmediato siguiente de la lista

Si se realiza una creacioacuten dinaacutemica con punteros para los elementos de una CTypedPtrList Despueacutes de haberlo agregado a la lista evite el delete para borrar esta Usted deseando liberar la memoria no lo haga ya que eliminara directamente el elemento de la lista

POSITION

Es un valor usado para denotar una posicioacuten de un elemento en una coleccioacuten Pero CUIDADO no se refiere a un iacutendice es una referencia (no consecutiva) de punteros muy diferente a un iacutendice

CString

Auacuten cuando el operador de comparacioacuten == (igual a) es permitido para ser utilizado en las cadenas evite su uso ya que en ocasiones aunque cuando la e

34

Desarrollo de la herramienta

compilacioacuten no indique error alguno en la ejecucioacuten no realizaraacute lo que se necesita Recomiendo que utilice CStringCompare ()

Para eliminar el contenido de un CString utilice CStringEmpty() ya que asignar a la cadena un ldquonrdquo podriacutea causarle problemas

Serializacioacuten

Una forma en que se puede guardar informacioacuten y recuperarla de manera eficaz es mediante la serializacioacuten de objetos La serializacioacuten es un proceso que permite escribir un objeto en un archivo y tambieacuten leerlo

Para que la serializacioacuten se lleve a cabo son necesarios tres objetos un objeto de tipo ltCFilegt que represente el archivo un objeto de tipo ltCArchivegt que ofrece el entorno para la serializacioacuten y la clase del objeto a ser serializado debe ser heredada de ltCObjectgt y sobrescribir el meacutetodo ltSerializegt para que se encuentre de tal forma en que pueda ser serializado (vea la Figura 313)

Objeto a ser serializado 1

1 CArchive

[f --=I- ---7 Archivoexi

u Figura 313 Serializacioacuten

328Patrones de disentildeo utilizados

Se ha planteado la definicioacuten de una arquitectura de clases utilizando patrones de disentildeo debido a que algunos de ellos hacen maacutes faacutecil la extensioacuten de la funcionalidad y mantenimiento

35

Desarrollo de la herramienta

El patroacuten Composite es utilizado para crear de manera uniforme el diagrama sobre el que se trabaja (ver Figura 34) manteniendo una jerarquiacutea de clases uniforme las clases maacutes bajas en la jerarquiacutea definen primitivas de objetos graacuteficos

Se aplica el patroacuten de disentildeo Iterator para hacer recorridos en listas de objetos para realizar diversas operaciones Otro patroacuten de disentildeo del que se hace uso es el Visilor (ver Figura 35)

Para otras actividades que se realizan podriacutea pensarse en que se deberiacutean aplicar otros patrones pero se han evitado algunos (como el patroacuten de disentildeo Builder) para evitar incrementar la complejidad en la arquitectura ya que ai mantener el modelo de la MFC de documentovista la funcionalidad del patroacuten de disentildeo Builder es faacutecilmente reemplazado si se hiciera Uso de eacuteste se aumentariacutea la complejidad excesivamente (nos llevariacutea a perdemos en ocasiones en el paso de mensajes entre clases) dantildeando la facilidad de la arquitectura

33 Diagrama de secuencias

Un Diagrama de Secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten escenario Oacute comportamiento se usan para definir el curso loacutegico de accioacuten de un posible camino a seguir en la resolucioacuten de un problema Seguacuten John Daniels [DANO2] ldquoel principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildean las interacciones de los objetosrdquo

Los Diagramas de Secuencias se utilizan en el modelado de la implementacioacuten de sistemas de software ademaacutes son aplicables en el modelado de requisitos para establecer las comunicaciones existentes entre actores yo clases del sistema Con eacutestos diagramas se logran hacer descripciones de los escenarios y los comportamientos del sistema Con los Diagramas de Secuencias es posible definir protocolos de comunicacioacuten con paso de mensajes ya que dan esa flexibilidad que se requiere Ademaacutes los Diagramas de Secuencias contienen informacioacuten suficiente para que puedan ser transformados a los diagramas de colaboracioacuten [RUM Ol][BOO Oil

331Ciclo de vida del software

Considerando cualquier modelo de ciclo de vida del software (en la figura 314 se muestra el Modelo de cascada) el aacutembito directo de eacuteste Ambiente Visual es en el disentildeo aunque tiene sus vertientes en la codificacioacuten y mantenimiento

36

Desarrollo de la herramienta

Diseno

Codificacibn

I I I I Mantenimiento I

igura 314 Modelo de cascada del ciclo de vida del software

34 Elementos atoacutemicos de la Gramaacutetica

Definicioacuten de los elementos atoacutemicos del lenguaje y su contenido

1 Actor- Representa roles de entidad externos al sistema con el que interactuacutea directamente Los actores pueden ser humanos dispositivos u otros sistemas

2 ClaseObjeto- Determina una Clase u Objeto participante en la interaccioacuten

3 Mensaje-Es una comunicacioacuten entre objetos que contiene informacioacuten Eacuteste se representa con la finalidad a que una accioacuten sea llevada a cabo

4 Mensaje con tiempo- Tiene la misma finalidad que el mensaje la diferencia es que con eacutel se representa un atributo de tiempo

5 Mensaje asiacutencrono Es un mensaje que ocurre en el tiempo de manera independiente a otros mensajes

6 Mensaje de destruccioacuten de objeto- Es un mensaje cuya finalidad es indicar la destruccioacuten del objeto destino

7 Mensaje de creacioacuten de objeto- Es un mensaje que indica la creacioacuten de un objeto

8 Llamada al mismo objeto (Recursividad)- Es usado para modelar llamadas recursivas en el que una operacioacuten es invocada por el mismo objeto

37

Desarrollo de la herramienta

9 Destruccioacuten del objeto (AutodestrucciOacuten)- Puede o no modelarse es representada con una X al final de la liacutenea de vida del objeto

Elementos aulomaacuteticos

1 Liacutenea de Vida- Representa la vida del objeto durante la interaccioacuten

2 Activacioacuten- Muestra el periacuteodo de tiempo en el cual el objeto alguna operacioacuten

341RepresentaciOacuten visual

Representacioacuten visual de los elementos atoacutemicos del lenguaje

Actor

_- A

Mensaje

Mensaje de Creacioacuten de

Objeto

ClaseObjeto

I

Mensaje de retorno

Mensaje de Destruccioacuten de

Objeto

abla 32 Element(

Activacioacuten

Mensaje con tiempo

Autodestruccioacuten

x

atoacutemicos del lengi

taacute realizz

Texto ===I (letra)+ (letra I

numero) letra= AZ I az numero = 09

I

Recursividad ~

I

i j e

io

38

u

Comentario

iexcl

Conector de Comentario

35 Gramaacutetica desarrollada

La gramaacutetica que se propone es una gramaacutetica visual del tipo relacional Una gramaacutetica relacional pertenece a las gramaacuteticas libres de contexto es una 6-iupla G (N C S R Attr P) donde

N es un conjunto finito de siacutembolos no terminales C es un conjunto de siacutembolos terminales S es un siacutembolo distinguido en N llamado siacutembolo inicial R es un conjunto finito de siacutembolos de relacioacuten Attr es un conjunto finito de siacutembolos de atributos P es un conjunto de producciones

Entonces definiendo nuestra gramaacutetica G (N C S R Attr P)

N = Diagrama GrupoClaseObjeto

S = Diagrama

R = mensaje mensajeTiempo mensajeRetomo mensajeAsincrono mensajecrea mensajeDestruye autodestruccioacuten recursividad

R

Attr = entrada salida entradacrea

39

Desarrollo de la herramienta

Definiendo la posicioacuten de los atributos en los elementos visuales

entradacrea ObetaClase

entrada

salida

P =

Diagrama I GrupoClaseObjeto (mensaje (mensajeRetorno

(salida 1) (entrada 2) ) (salida 2) (entrada 1) )

- Diagrama 0 GrupoClaseObjeto

(mensaje (mensaje (mensajeRetomo (mensajeRetomo (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entradacrea 2) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 1) ) (salida 1) (entrada 1) )

entrada

salida

40

Desarrollo de la herramienta

s

-

GrupoClaseObjeto - 1 1 I 2 (mensaje (mensaje (mensajeRetorno (mensajeRetorno (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entradacrea 2) ) (salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 1) ) (salida I ) (entrada I ) )

1 En las gramaacuteticas relacionales una produccioacuten estaacute acompantildeada de las posibles

relaciones que puedan generarse En la primera produccioacuten Diagrama produce a un Actor seguida de un GrupoClaseObjeto el Actor inicia la interaccioacuten con un mensaje y recibe el mensaje de retorno al finalizar la interaccioacuten La segunda y tercera produccioacuten son similares debido a que un GrupoClaseObjeto contiene dos ClaseObjeto que se relacionan de la misma forma

Existe un elemento de la gramaacutetica llamado Attr (Atributo) el cual define la parte de los elementos visuales donde se establecen las relaciones Se han determinado dos atributos (entrada y salida) que para nuestro propoacutesito estaraacuten establecidos en la liacutenea de vida de cada elemento visual (Actor y ClaseObjeto)

Los Comentarios y la Activacioacuten no se consideran en la gramaacutetica Los comentarios son libres de incluirse y relacionarse con cualquier elemento y relacioacuten mencionada anteriormente y la activacioacuten existe siempre que se presente un mensaje (o podriacutea omitirse) Estas consideraciones se realizaron para hacer auacuten maacutes faacutecil la gramaacutetica ya que si se trata de realizar un sistema las restricciones de estos elementos pueden mantenerse en el lenguaje de programacioacuten en el que se desarrolle el sistema

36

Precondiciones

El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias

1 El diagrama de Clases debe existir y estar completo 2 Debe existir un archivo con un diagrama de Warnier por cada diagrama de Clases y

con el mismo nombre de archivo (excepto la extensioacuten del archivo) 3 En el uacutenico diagrama de Warnier de cada Clase se deben modelar todos los meacutetodos

de la Clase 4 No realizar declaraciones de meacutetodos

41

Desarrollo de la herramienta

5 Debe existir un meacutetodo lsquomain()rsquo en el diagrama de Clases

Restricciones

Los meacutetodos deben mantener nombres distintos en las diferentes Clases

Metodologiacutea para la obtencioacuten automaacutetica de los Diagramas de Secuencias

1 Seleccionar el diagrama de Clases

2 Se construye una lista con los nombres de las Clases y los Meacutetodos

3 Se verifica si exista el meacutetodo lsquomain()rsquo en alguna Clase Se busca la existencia de una uacutenica Clase

a La Clase que contenga lsquomain()rsquo se va al inicio de la lista de Clases

b Si no existe lsquomain()rsquo SE TERMINA EL PROCESO

4 Se verifica la existencia de los archivos que contienen el Disentildeo Detallado de los meacutetodos en Wamier para cada una de las Clases si alguno falta SE TERMINA EL PROCESO

5 Se procesa cada uno de los modelos del Disentildeo Detallado de los Meacutetodos generando una lista de secuencias de llamadas por cada uno de los meacutetodos

6 Se verifica que cada llamada corresponda a alguacuten meacutetodo existente (del diagrama de Clases) De no existir ese meacutetodo la llamada entra a una estructura que

7 Se crea una lista de secuencia

a Se inicia con lsquomain()rsquo b Se recorre cada una de las llamadas de los meacutetodos c Se considera invaacutelido el caso de que un meacutetodo intente una llamada

recursiva al meacutetodo lsquomain()rsquo

8 Se muestra un diaacutelogo de resultados en el que se indican las llamadas que no se encnotraron definidas y que pueden ser Llamada a libreriacutea oacute Llamada Erroacutenea

42

Capiacutetulo 4

Prue6as y su6taaacuteos

En eacuteste capiacutetulo se da a conocer el detalle de las pruebas y de los resultados obtenidos Se describen los casos de prueba con los que se realizoacute la evaluacioacuten del sistema asiacute tambieacuten se presentan comentarios acerca de los resultados obtenidos

Pruebas y Resultados

41 Recursos teacutecnicos utilizados

Para llevar a cabo las pruebas al sistema S3C se utilizaron los siguientes equipos de Coacutemputo

Computadora de escritorio

256MB RAM Disco Duro 80G Monitor 17rdquo SAMSUNG

AMD Athlon XP 1600+ I4Ghz

Computadora de escritorio Intel Pentium 4 - 128MB RAM Disco Duro 40G Monitor 15rdquo i -

42 Descripcioacuten del plan de pruebas

Las pruebas establecen el Uacuteltimo paso desde donde es posible evaluar la calidad y descubrir los errores Las pruebas y la validacioacuten del software se utilizan para comprobar que el sistema cumple con las expectativas del usuario

En esta seccioacuten se describen los casos de prueba que se realizaron al prototipo de S3C en conjunto a la suite cenidet-UML Para cada uno de los casos se presenta el objetivo el procedimiento que se siguioacute para la prueba y se muestran los resultados obtenidos - _

Las pruebas a realizar son los siguientes

Caso 1 Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Caso 2 Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Wamier

Caso3 Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Wamier

Caso4 Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo 5

44

Pruebas y Resultados

43 Resultados

431 Caso 1

5 Y

IZ =

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoSirdquo 4 Seleccionar el archivo ldquoVENTASrdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 41 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

s3c iuevo Proyecto SCUM1

Diagrama de clases

lvendedor I L

3

salida

venta prod

4 venia-oferta vcntaprod =

salida 6

Figura 41 Resultado del caso de prueba 1

45

Pruebas y Resultados

432 Caso 2

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Warnier (almacenwar cajawar vendedorwar) que ya cxisten (del caso de prueba I )

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoNordquo 4 Agregar las siguientes Clases con los respectivos meacutetodos y atributos

a Claseldquovendedorrdquo Meacutetodos ldquoventa mainrdquo b Claseldquoalmacenrdquo Meacutetodos ldquoentrada salidardquo c Claseldquocajardquo Meacutetodos ldquoventagrodrdquo

5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 42 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

Diagrama de daseo lisgrama dcsccucncis

MOIDOC Anivo

venta prod

salida

1 Ycrdquo1a 2

I 4 vcrdquolD~o1cn venta prod gt

salida 6 i Figura 42 Resultado del caso de prueba 2

46

Pruebas y Resultados

r

433 Caso 3

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Warnier

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 43 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

5

Error al tratar de abrir el archivo A bZwar

Aceptar i

Faltan Archivos de Disentildeos Detallados de Meacutetodos 1 1 A No se puede crear el diagrama de secuencias

Figura 43 Resultado del caso de prueba 3

47

Pruebas y Resultados

434 Caso 4

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 44 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

lsquo I

~ _ i i _ l _ Repaado ~~ ~ ~ 6~ ampA Figura 44 Resultado del caso de prueba 4

48

Pruebas y Resultados

PRUEBA DESCNPCION CASO 1 Mostrar la funcionalidad del

Sistema S3C a partir de un

44 Anaacutelisis de Resultados

RESULTADOS Se comproboacute la correcta funcionalidad del Sistema S3C a partir de un diagrama

CASO 3

CASO4

I diagrama de Clases cxistcnte I de Clases existente CASO 2 I Mostrar la funcionalidad del I Sc comproboacute la corrccta funcionalidad

Sistema S3C a partir de un del Sistema S3C a partir de un diagrama diagrama de Clases que se de Clases que se construye al momento construye al momento Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el Secuencias si falta alguno de los diagrama de Secuencia si falta alguno diagramas de Warnier Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el secuencias si hace falta el meacutetodo diagrama de Secuencias al faltar el ldquomain ()rdquo meacutetodo ldquomain()rdquo

de los diagramas de Warnier

Los resultados obtenidos de cada uno de los casos establecidos demuestran que se validoacute la funcionalidad del prototipo con los requisitos definidos en el alcance de este proyecto

a lt

49

Conclusiones y Tru6ajos Futuros

Aquiacute se dan a conocer las conclusiones y se describen los posibles trabajos futuros para la continuacioacuten de eacuteste proyecto

F

51 Conclusiones

Conclusiones y trabajos futuros

Se ha creado un Ambiente Visual que permite obtener de forma automaacutetica los Diagramas de Secuencias en base a los diagramas de Clases y al disentildeo detallado de los meacutetodos descritos con diagramas de Warnier cumpliendo con los objetivos planteados para este trabajo

La tesis aporta principalmente La generacioacuten automaacutetica de los diagramas de secuencias y la eliminacioacuten de inconsistencias al mantener una validacioacuten directa de los diagramas de clases y los diagramas de Warnier que son utilizados

Esta validacioacuten es lograda a traveacutes del uso de la gramaacutetica visual relaciona1 que se ha definido (veacutease el capiacutetulo 3) Esta gramaacutetica visual establece reglas para la correcta construccioacuten de los diagramas de secuencias

P De esta manera se establece que la hipoacutetesis ldquoEs posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodosrdquo Es verdadera

52 Trabajos Futuros

Un Diagrama de Secuencias puede convertirse en un Diagrama de Colaboracioacuten por lo tanto un trabajo futuro es la construccioacuten automaacutetica de un Diagrama de Colaboracioacuten a partir de uno de Secuencias existente

Es posible calcular la meacutetrica de acoplamiento al tener un Diagrama de Secuencias construido

La Ingenieriacutea directa de un Diagrama de Secuencias estableciendo la validacioacuten en la construccioacuten de todos los elementos visuales que UML define

La propagacioacuten de las modificaciones de un Diagrama de Secuencias a los Diagramas de Clases y los Diagramas de Warnier

La modificacioacuten del coacutedigo fuente mediante los cambios establecidos en un Diagrama de Secuencias

51

[ALC03]

[BLA98]

[B0099]

[BOOOi]

[BR097]

[CHA90]

[DAN02]

[GLA02]

[HAC98]

[HER03]

4

Alcate1 Computer Associates International inc Electronic Data Systems Corporation Hewlett-Packard Company IBM Corporation I-Logix IntelliCorp Kabira Technologies Kennedy Carter Microsoft Corporation Object Management Group Oracle Corporation Project Technology Ptech Inc Rational Software Corporation Reich Technologies Softeam Taskon A S Telelogic Unisys Corporation ldquoOMG Unified Modeling Language Specificationrdquo Version 15 Unified Modeling Language 2003

Blaha Michael Rumbaugh James Premerlani William Eddy Frederick Lorensen William ldquoObject-oriented modeling and designrdquo Prentice Hall 484 Paacuteginas ISBN 0-13-629841-9 QA-769-03S-B53-19981998

Booch Grady Rumbaugh James Jacobson Ivar ldquoEl lenguaje unificado de modeladordquo Addison Wesley 432 Paacuteginas ISBN 84-7829-028-1 1999

Booch Grady Rumbaugh James Jacobson Ivar ldquoThe Unified Modeling Language User Guiderdquo Addison Wesley 2001

Brown David ldquoAn introduction to object-oriented analysis objects in plain Englishrdquo John Whiley amp Sons Inc 700 Paginas ISBN 0-471-1 1028-0 QA-769-035-B76-1997 1997

Chang Shi-Kuo ldquoVisual Languages and visual programmingrdquo Plenum Press 340 Paacuteginas ISBN 0-306-43428-8 QA-7665-V57-1990 1990

Daniels John ldquoModeling with a sense of purposerdquo Design - IEEE Software JanuaryEebmary 2002

Glasgow Universidad Reino Unido ldquoA UML Editor in Javardquo (lthttplstudentsdcsglaacuWstudentspainjfproject-reportproject-re port-htmV4thYearReporthtrnlgt 2002)

T Hackos JoAnn C Redish Janice ldquoUser and Task Analysis for Interface Designrdquo Wiley Computer Publishing 488 Paacuteginas ISBN QA-769-U83- H33-1998 1998

Hemaacutendez Velaacutezquez M ldquoIngenieriacutea inversa de coacutedigo fuente en C++ para la obtencioacuten de su disentildeordquo Tesis AT-379 (03-0334) 2003

Conceptos generales

[HIX93]

[JAC93]

[JAC99]

[JOY98]

[LAR97]

[MAR]

[MIC99]

[MIC02]

[MOU98]

Hix Deborah Hartson H Rex ldquoDeveloping user interfacesrdquo 381 Paacuteginas ISBN 0-471-57813-4 QA-769-U83-H59-1993 1993

Jacobson Ivar Christerson Magnus Jonsson Patrik Overgaard Gunnar ldquoObject oriented software engineeringrdquo Addison Wesley ISBN 0-20 1 - 54435-0 QA-7676-D47-J63-1993 1993

Jacobson Ivar Booch Grady Rumbaugh James ldquoEl proceso unificado de desarrollo de softwarerdquo Addison Wesley 438 Paacuteginas ISBN 84-7829-036- 2 1999

Joyanes Aguilar Luis ldquoProgramacioacuten orientada a objetosrdquo McGruw Hill ISBN 84-481-0590-7 1998

Larman Craig ldquoAplying UML and Patternsrdquo Prentice Hull 507 Paacuteginas ISBN 0-13-748880-7 QA-769-035-L37-1997 1997

Marriot Kim Meyer Bemd ldquoVisual Language Theoryrdquo Springer 381 Paacuteginas P-935-V567-1998 1998

Microsoft ldquoMicrosoft Visual C++ 6 manual del programadorrdquo McGraw Hill ISBN 84-481-2127-9 QA-7673-Cl53-23718-1999 1999

Microsoft ldquoVisiordquo (lthttpwwwmicrosoftcomofficevisiogt 2002)

B Mourao Luis X ldquoUniversal Modeling Language Part 11 UML Notation - Case Sequence and Collaboration Diagramsrdquo Lan Times Magazine (~httpwwwlantimescomltpartsdiscussdiscuss6Ohtm~) 1998

No Magic ldquoMagicDrawrdquo (lthttpwwwmagicdrawcomgt 2002)

Object Insight ldquoJvisionrdquo (lthttpwwwobject-insightcomgt 2002)

Rational Software Microsoft I Hewlett-Packard Oracle Sterling Software MCI Systemhouse Unisys ICON Computing IntelliCorp i-Logix IBM ObjectTime Platinum Technology Ptech Taskon Reich Technologies Sofieam ldquoUML Summaryrdquo Version 11 Unified Modeling Language 1997

Rational ldquoRational Roserdquo (lthttpwwwrationalcomproductosrosegt 2002)

Rikki Kirzner ldquoAnalysis Modeling and Design Tools Market Forecast and Analysis 2001-2005rdquo Bulletin Published Under Services Application Design and Construction Tools Application Development and Deployment Strategies Documento Nuacutemero 24809 Junio 2001

53

Conceptos generales

[RIM92] Rimrner Steve ldquoGraphical user interface programmingrdquo 423 Paacuteginas

1992

Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language reference manualrdquo Addison Wesley 550 Paacuteginas ISBN 0-201-

ISBN 0-8306-2475-9 ISBN 0-8306-2472-4 (pbk) QA-769-083-R55G

[RUM99]

30998-X QA-7676-D47-R85-1999 1999

[RUM299] Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language user guiderdquo Addisoiz Wesley 482 Paacuteginas ISBN 0-201 -57 168-4 QA-7676-D47-B66-1999 1999

[SMA02] SmartDraw ldquoSmartDrawrdquo (lthttpwwwsmartdrawcomgt 2002)

[SHU88] 9 - Shu Nun C ldquoVisual Programmingrdquo Van Nostrand Reinhold ISBN 0-422- 28014-9 ISBN 0-422-01 164-4 QA-7665-S55 1988

[THI90] Thimbleby Harold ldquoUser Interface Designrdquo Acm press 470 Paacuteginas ISBN 0-201 -41 61 8-2 QA-769U83-T772~- 1990 1990

[WENO2] Wences Diaz MF ldquoModelo de Ingenieriacutea Inversa para la obtencioacuten de disentildeo detallado basado en LEVISSrdquo Tesis (02-0014) 2002

54

Anexo A

Conampuracioacuten de Microsoft Vkua[C++ 6 O

Este anexo indica las configuraciones que se utilizaron para la compilacioacuten de SCUML y s3c

Configuracioacuten de Microsoft Visual c++ 60

Debido a la integracioacuten de los proyectos de InverSOODA e InverDDVi con S3C se cumplioacute con los requisitos previos de ambos proyectos

El compilador usado en el proyecto fue el Microsoft Visual C++ 60

Para el cumplimiento con la funcionalidad de InverSOODA se instaloacute el ANTLR la versioacuten 271 Se descargoacute del sitio l i l l ~ ~ ~ ~ ~ ~ t l ~ l ~ - ~ t - ~ la versioacuten mencionada en un archivo comprimido (en formato zip) Se colocoacute el paquete descomprimido en el directorio ldquoDIANTLR-271 I rdquo

Recomiendo ampliamente que el directorio principal de ANTLR se copie en el directorio raiacutez de cualquier unidad de disco debido a que experimenteacute problemas de compilacioacuten cuando ANTLR no se encontraba en el directorio raiacutez

Io015

Source Browser AlttF12 I u c Ersquo V I

Visual Component Mgnager

- - ~ ~ ~ ~~

P2 Registrar control

A Contenedor de prueba de controles ActiveX

A Usor de objetos OLE y COM

Buacutesqueda de errores

A Y++ MFC Iracer

Customize options

~ - q- ~ Macro

Eecord Quick Macro Cbl+ShiR+R Pay Quick Macro Ctrl+ShiR+P

En el menuacute Tools (Herramientas) seleccione el sub-menuacute Options ltopcionesgt

56

Configuracioacuten de Microsoft Visual C++ 60

En la siguiente ventana de diaacutelogo debe agregar la direccioacuten en donde se encuentra el ANTLR

Agregar la ruta del directorio de ANTLR hasta el subdirectorio

libcpp

Editor I Tabs I Debug I Compatibility 1 Build Dneclolies I a I Chow directories for - Platfolm -

- Directories I x ) 4 jWin32 -] llnclude files

m cancd I

57

Configuracioacuten de Microsoft Visual C t+ 60

Se ha creado una libreriacutea (anrlrliblib) de ANTLR la cual ya estaacute situada en el directorio del proyecto SCUML (ISCUML) y no debe ser movida o eliminada

I

Geneial 1 Debug I CC++ Link I Category

Output file name bebugSCUMLexe

Objectljibrary modules 4 anllrliblib

li Generate debug lnfo r Ignore all defaull lbaries D ~ i n k j n ~ ~ ~ t a n ~ r ~ e n e r ~ ~ ~ mapfile

r Enable psafilrng

Proiec1 Ootionn

pq Cancel 1 Libreriacutea de ANTLR que debe existir 1 I para que se compile correctamente

58

Anexo B

~ u iacute aacute raacutepida de uso deC Sistema S3C

5 Este anexo indica de forma raacutepida la manera de utilizar S3C para crear un diagrama de secuencias de forma automaacutetica

Guiacutea Raacutepida de uso del Sistema S3C i

Para indicar la creacioacuten de un diagrama de secuencias en forma automaacutetica se debe ir a la barra del costado izquierdo y presionar ldquoNuevo Proyecto SCUMLrdquo

I s3c I ~ Nuevo Proyecto SCUML ~ _ _ - I Diagrama de clases ~ Diagrama de secuencias 1 MDI DOC Activo

-

Apareceraacute un documento llamado ldquoSCUMLV en donde el simbolo corresponde a un numero consecutivo iniciando desde 1 (uno)

$ e Despueacutes se presiona ldquoDiagrama de clasesrdquo Habraacute que para indicarle al sistema si se requiere abrir un diagrama de clases existente o realizar uno nuevo

i

iquestAbrir un documento existente

No Cardquo~ear

AI presionar ldquoSirdquo se debe indicar cual es el archivo del diagrama de Clases en el cuadro de diaacutelogo siguiente

~~ - 11dMis documentos rsquo 2 M i P C i lsquo h s sitios de red

I

AI presionar ldquoNordquo en ldquoAbrir un documento existenterdquo se nos mostraraacute un documento vacio para crear un diagrama de clases

60

Guiacutea Raacutepida de uso del Sistema S3C

Para ambas opciones se requiere que los diagramas de Wamier ya se encuentren construidos Y para continuar el proccso se selecciona el documento ldquoSCUMLVrsquo creado al inicio y despueacutes presionar el botoacuten nombrado ldquoDiagrama de secuenciasrdquo localizado en la barra de hcrraiiiicntas del costado izquierdo

Ha iniciado el proceso de construccioacuten del diagrama de secuencias Si no existen errores al terminar el proceso se le mostraraacute un cuadro de diaacutelogo llamado ldquoResultadosrdquo en donde le mostraraacute las llamadas de las que no localizoacute su definicioacuten

- - -

Cancel 1 D e las siguientes llamadas es posible que esten mal escritas o peitenezcan a la libreiia del Lenguaie Verifique ya que no se encontraron sus definiciones

A continuacioacuten se mencionan los posibles errores que finalizan el proceso de la creacioacuten automaacutetica de los diagramas de secuencias en S3C

Cuando no exista un meacutetodo lsquomainrsquo definido en el diagrama de clases

No se encontro el meacutetodo lsquomain()rsquo que inicie la secuencia I A No se puede crear el diagrama de secuencias

p==amp=q

61

Guia Raacutepida de uso del Sistema S3C

Cuando se definan niultiples metodos lsquoinainrsquo en el diagrama de clases

Multiples meacutetodos lsquomainOlsquo Imposible decidir el inicio de secuencia

Aceptar i

Si un meacutetodo definido en Wamier realiza una llamada a lsquomainrsquo se cancelara el proceso

Llamada NO VALIDA al meacutetodo principal main

(iAcp-j(

4 i

CI Y rdquoldquoldquoI i 11 1-T

IZNTRO Gt INFORMACION

62

  • Tabla de Contenido
  • Listado de Figuras
  • Listado de Tablas
  • Notacioacuten
  • Introduccioacuten
  • Capitulo 1 Conceptos Generales
    • 11 Antecedentes
    • 12 Trabajos relacionados
      • 121 Tabla comparativa
        • 13 Definicioacuten del problema
        • 14 Objetivo de la Tesis
          • Objetivos especiacuteficos de la tesis
            • 15 Hipoacutetesis de investigacioacuten
            • 16 Alcances y limitaciones del trabajo de tesis
              • Capitulo 2 Marco Teoacuterico
                • 21 Modelado de sistemas de software
                • 22 Interfaz de usuario (Mecanismos de interaccioacuten)
                • 23 Lenguajes Visuales
                • 24 Programacioacuten orientada a objetos
                • 25 Lenguaje de Modelado Unificado (UML)
                  • Desarrollo de la herramienta
                    • 31 Disentildeo de la Arquitectura
                      • 311 Requisitos (Diagrama de Casos de uso)
                        • 312Modelo Conceptual
                        • 313Diagramas de clases
                        • 32 Elementos de la arquitectura
                          • 321 Microsoft Foundation Class (MFC)
                            • 322Arquitectura Documento Vista
                            • 323Integrando Ambientes en Visual c++
                              • 324 Interfaz de Muacuteltiples Documentos (MDI)
                                • 325Recursos Diaacutelogos Menus y Barras de Herramientas
                                  • 326 Notacioacuten estaacutendar
                                  • 327 Estructura de datos persistencia y recuperacioacuten
                                    • 328Patrones de disentildeo utilizados
                                      • 33 Diagrama de secuencias
                                        • 331Ciclo de vida del software
                                          • 34 Elementos atoacutemicos de la Gramaacutetica
                                            • 341 Representacioacuten visual
                                              • 35 Gramaacutetica desarrollada
                                              • 36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias
                                                  • Capitulo 4 Pruebas y Resultados
                                                    • 41 Recursos teacutecnicos utilizados
                                                    • 42 Descripcioacuten del plan de pruebas
                                                    • 43 Resultados
                                                      • 431 Caso
                                                      • 432 Caso2
                                                      • 433 Caso
                                                          • Conclusiones y trabajos futuros
                                                            • Trabajos futuros
                                                            • Referencias
                                                            • Anexo A Configuracioacuten de Microsoft Visual C+t
                                                              • Figura 11 - Arquitectura de la suite cenidet-UML
                                                              • Figura 21 -Programacioacuten Visual
                                                              • Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de
                                                              • Figura 32 -Diagrama de Casos de Uso para el S3C
                                                              • Figura 33 -Modelo Conceptual
                                                              • Figura 34 - Diagrama de Clases -Control del Diagrama -
                                                              • Figura 35 - Diagrama de Clases - Patroacuten Visitor -
                                                              • Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento
                                                              • Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)
                                                              • Figura 38 -Dialogo Caracteriacutesticas del Objeto
                                                              • Figura 39 -Dialogo Mensaje
                                                              • Figura 3 IO - Menuacute de los Diagramas de Secuencias (estaacutendar)
                                                              • Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias
                                                              • Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)
                                                              • Figura 313 - Serializacioacuten
                                                              • Figura 314 -Modelo de cascada del ciclo de vida del software
                                                              • Figura 41 - Resultado del caso de prueba
                                                              • Figura 42 -Resultado del caso de prueba
                                                              • Figura 43 -Resultado del caso de prueba
                                                              • Figura 44 -Resultado del caso de prueba
                                                              • Tabla 11 - Tabla comparativa
                                                              • Tabla 31 -Prefijos estaacutendar de identificadores
                                                              • Tabla 32 -Elementos atoacutemicos del lenguaje
                                                              • Tabla 41 - Resumen de los resultados de las pruebas realizadas

Marco teoacuterico

24 Programacioacuten orientada a objetos

L~~ meacutetodos orientados a objetos organizan la informacioacuten Y el procesamiento que manipula esta informacioacuten de acuerdo a los objetos delrsquomundo real que la informacioacuten describe [BRO97l

Beneficios de las teacutecnicas orientadas a objetos [BR097] Estabilidad del sistema Mantenibilidad Componentes reusables Confiabilidad Accesibilidad de los datos Participacioacuten del usuario

Seguacuten Graddy Booch la programacioacuten orientada a objetos es ldquoun meacutetodo de implementacioacuten en el que los programas se organizan como colecciones cooperativas de objetos cada uno de los cuales representan una instancia de alguna clase y cuyas clases son todas miembros de una jerarquiacutea de clases unidas mediante relaciones de herenciardquo [JOY 981

Programacioacuten orientada a objetos esencialmente significa programacioacuten usando objetos [JAC93] Los lenguajes orientados a objetos deben soportar los siguientes conceptos

Objetos Abstraccioacuten de datos Encapsulamiento Clases e Instancias Herencia entre clases Polimorfismo

Las propiedades fundamentales de la Programacioacuten Orientada a Objetos son

a Abstraccioacuten Son ideas conceptos y propiedades que se describen en forma general eliminando los detalles Es una estructura de datos y los meacutetodos que manipulan a esos datos

b Encapsulamiento Son las fronteras propias de un objeto bien definidas las cuales protegen los detalles de su representacioacuten interna

c Ocultacioacuten de la informacioacuten Es la propiedad en la que los objetos pueden hacer uso para impedir que otros objetos los usuarios o incluso los programadores conozcan coacutemo estaacute distribuida la informacioacuten

d Herencia Es la propiedad que tiene una clase para heredar atributos y comportamiento a otras clases

e Polirnorfismo Es la propiedad que permite que una entidad pueda cambiar a diferentes formas efectuaacutendose de manera dinaacutemica en tiempo de ejecucioacuten

16

Marco teoacuterico

t

Clases Es la especificacioacuten de una familia de objetos es la declaracioacuten de un tipo de objetos Tambieacuten se dice que una clase es la descripcioacuten de un conjunto de objetos con un comportamiento similar y que esta compuesta de Datos (o atributos) y Meacutetodos o (rutinas acciones operaciones)

Objeto Un objeto es una entidad en la cual se almacenan datos y los meacutetodos o funciones que controlan dichos datos Un objeto es una abstraccioacuten de alguna cosa del mundo real que contiene datos que lo describen y operaciones que solo tienen acceso a esos datos [BR097l Los elementos de los que esta conformado un objeto son

a Las relaciones permiten que el objeto se integre en la organizacioacuten b Las propiedades son los datos que caracterizan el estado de un objeto distinguiendo

asiacute a un objeto determinado de los restantes que forman parte de la misma organizacioacuten

c Los meacutetodos son las operaciones que pueden realizarse sobre la estructura del objeto es decir las acciones que cambian el estado de un objeto y que el objeto es capaz de ejecutar a traveacutes de mensajes y que tambieacuten pone a disposicioacuten de sus descendientes a traveacutes de la herencia

Mensajes Son solicitudes para que se lleve a cabo la operacioacuten indicada y se produzca un resultado

Las razones principales para introducir la tecnologiacutea de objetos son los beneficios de dicha tecnologiacutea

Aumento de la fiabilidad Aumento de la productividad del desarrollador Desarrollo maacutes raacutepido Mejor calidad maacutes alta

Incremento en escalabilidad Mejores estructuras de informacioacuten Incremento de adaptabilidad Reduccioacuten del coacutedigo fuente

Mantenimiento maacutes faacutecil y reduccioacuten de costo

Los elementos de reutilizacioacuten son las clases y objetos

25 Lenguaje de Modelado Unificado (UML)

UML (Unified Modeling Language por sus siglas en ingleacutes Lenguaje de Modelado Unificado) es un lenguaje de modelado visual de propoacutesito general que es utilizado para especificar visualizar construir y documentar las partes de un sistema de software El lenguaje estaacute basado en un pequentildeo nuacutemero de conceptos centrales que la mayoriacutea de los desarrolladores de tecnologiacutea orientada a objetos pueden aprender y aplicar faacutecilmente [RUM99]

17

Marco teoacuterico

y UML Pasado Presente y Futuro

L~~ lenguajes de modelado orientado a objetos aparecieron a mediados de 10s 70rsquos Varias teacutecnicas influenciaron estos lenguajes El nuacutemero de lenguajes de modelado incrementoacute desde menos de 10 hasta maacutes de 50 entre 1989 y 1994 Muchos modeladores teniacutean problemas para encontrar un lenguaje de modelado que satisficiera todas sus necesidades Notablemente aparecioacute Boochrsquo93 y la evolucioacuten continuoacute a OMT y Fusioacuten

OOSE (Object-Oriented Software Engineering) estaacute enfocado a la ingenieriacutea de negocios y anaacutelisis de requerimientos dando un excelente soporte orientado a casos de uso OMT-2 es especialmente expresivo para anaacutelisis y sistemas de informacioacuten de datos grandes Boochrsquo93 fue particularmente expresivo para el disentildeo y fases de construccioacuten de proyectos y popular para aplicaciones de ingenieriacutea intensiva

Grady Booch y Jim Rumbaugh iniciaron el desarrollo de UML en 1994 al unificar sus meacutetodos independientes Booch y OMT En 1995 Ivar Jacobson se unioacute a Racional eacutesta unioacuten logroacute que el meacutetodo OOSE se incorporara La unificacioacuten establecioacute que debiacutean activar el modelado de sistemas utilizando conceptos orientados a objeto asiacute como crear un lenguaje usable tanto para las maacutequinas como para los humanos

A

Muchas organizaciones se unieron al consorcio UML y dedicaron recursos al trabajo hacia el fortalecimiento de la definicioacuten de UML Esta colaboracioacuten produjo un lenguaje de modelado expresivo poderoso y generalmente aplicable En la forma actual de UML se espera que sea base de muchas herramientas incluidas las de modelado visual simulacioacuten y ambientes de desarrollo

R UML es abierto y no-propietario y aunque define un lenguaje preciso no es barrera para futuras mejoras en conceptos de modelado Se usan muchas teacutecnicas de punta pero se esperan teacutecnicas adicionales que influencien futuras versiones de UML puede ser extendido sin redefinir el nuacutecleo

c

Mientras el rehuacuteso basado en componentes se ha favorecido ampliamente cada vez mas esto no significa que las teacutecnicas basadas en componentes reemplazaraacuten las teacutecnicas orientadas a objetos Hay solo sutiles diferencias entre la semaacutentica de componentes y clases [ALC03]

Un opaco rendimiento caracterizoacute el mercado de anaacutelisis modelado y disentildeo en el 2000 en su transicioacuten de las viejas herramientas CASE (Computer Aided Software Engineering) a algo maacutes dinaacutemico y mejor adaptado para satisfacer las necesidades de los desarrolladores para el cambio raacutepido en los ambientes de negocio

El mercado de anaacutelisis modelado y disentildeo lograraacute obtener un crecimiento positivo en varios de los siguientes antildeos por varias razones El mercado seraacute manejado principalmente por la necesidad de desarrolladores a obtener aplicaciones para lanzarse al mercado raacutepidamente asiacute tambieacuten por el intereacutes creciente y uso de una nueva especie de herramienta y por el intereacutes creciente de los desarrolladores en usar UML reglas de negocios y adaptadores de componentes para construir aplicaciones [RIKUI]

z -

18

Marco teoacuterico

UML se ha hecho el estaacutendar para los desarrollos de modelado de negocios administracioacuten de requerimientos anaacutelisis y disentildeo programacioacuten y pruebas Los objetivos primarios de UML en el disentildeo [RAT97j

o Dar a los usuarios un lenguaje visual expresivo de modelado listo para usarse para que puedan desarrollar y cambiar los significados de sus modelos

o Suministrar mecanismos de extensibilidad y especializacioacuten para extender los conceptos centrales

o Ser independiente de lenguajes de programacioacuten particulares y procesos de desarrollo

o Impulsar el desarrollo de las herramientas Orientadas a Objeto en el mercado o Soportar conceptos de desarrollo de alto nivel como colaboracioacuten marcos de

componentes reutilizables patrones y componentes o Integrar las mejores praacutecticas

9 El aacutembito de UML

UML es un lenguaje para especificacioacuten construccioacuten visualizacioacuten y documentacioacuten de artefactos de un sistema de software UML es la fusioacuten de los conceptos de Booch OMT y OOSE El resultado es un simple comuacuten y ampliamente usado lenguaje de modelado para usuarios de estos y otros meacutetodos UML se enfoca en un lenguaje de modelado estaacutendar no en un proceso estaacutendar los autores de UML recomiendan un proceso de desarrollo manejado por casos de uso de arquitectura central iterativo e incremental [iiquest4T97l

Para la definicioacuten de sistemas de software en UML se definen diagramas Un diagrama es la representacioacuten graacutefica de un conjunto de elementos este se visualiza la mayoriacutea de las veces como un grafo conexo de nodos (elementos) y arcos (relaciones) Los diagramas se dibujan para visualizar un sistema desde diferentes perspectivas de forma que un diagrama es la proyeccioacuten de un sistema uumlML incluye nueve diagramas [B0099]

4 -

I Diagrama de clases 2 Diagrama de objetos 3 Diagrama de casos de uso 4 Diagrama de secuencias 5 Diagrama de colaboracioacuten 6 Diagrama de estados 7 Diagrama de actividades 8 Diagrama de componentes 9 Diagrama de despliegue

Diagramas de secuencias Un diagrama de secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten comportamiento

Un diagrama de secuencias muestra un conjunto de mensajes acomodados en una secuencia de tiempo eacuteste diagrama muestra la interaccioacuten en un esquema de dos - dimensiones [RUM99]

19

Marco teoacuterico

Y -

Un diagrama de secuencia es un diagrama de interaccioacuten que resalta la ordenacioacuten temporal de los mensajes Un diagrama de secuencia presenta un conjunto de objetos y los mensajes enviados y recibidos por ellos Los objetos suelen ser instancias (con nombre o sin nombres) de clases pero tambieacuten pueden representar instancias de otros elementos tales como colaboraciones componentes y nodos Los diagramas de secuencia se utilizan para describir la vista dinaacutemica de un sistema [B0099]

Usar los diagramas de secuencia es mostrar la secuencia que existe en un caso de uso [RUM 991

Los diagramas de secuencia tienen dos dimensiones Una dimensioacuten que representa el tiempo Otra dimensioacuten que representa los diferentes objetos que participan en la secuencia de eventos requeridos para completar el propoacutesito [MOuuml98]

El principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildea las interacciones de los objetos [DAN02]

20

Capiacutetulo 3

DesawoCCo de Ia herramienta

En este capiacutetulo se describe el desarrollo del Ambiente Visual Se describe el modelo conceptual del sistema la arquitectura asiacute como tambieacuten los elementos que componen la Arquitectura Se estudian los Diagramas de Secuencias de UML y algunos Patrones de Disentildeo de los que se hace uso para el mejor desarrollo del sistema Se describe a detalle la Gramaacutetica Visual Relaciona1 utilizada para el de Ambiente de desarrollo

I CENIOET 1FNTRO DE INFORMACION

Desarrollo de la herramienta

t i i

Actualmente existe en el cenidet un Ambiente Visual de Modelado de Clases llamado InverSOODA este Ambiente Visual tiene la capacidad de realizar la generacioacuten automaacutetica de coacutedigo de las clases en C++ a partir del modelo especificado Ademaacutes se puede realizar la Ingenieria Inversa de un coacutedigo legado para obtener el modelo de clases Aunado a este trabajo existe el Ambiente Visual denominado InverDDVi con el cual se puede realizar el Disentildeo Detallado de los Meacutetodos de las Clases con diagramas de Warnier Asiacute tambieacuten es posible obtener el modelo aplicando la Ingenieriacutea Inversa a un coacutedigo legado en C++

Ambos trabajos son retomados en este proyecto para la automatizacioacuten en la obtencioacuten de los Diagramas de Secuencias de UML La figura 31 muestra el modelo propuesto de ingenieriacutea directa

Extraer informacioacuten del diagrama de

rsquo rsquo

Diagrama de 11 clases I o

detallado de

detallado de

o meacutetodos

i ir---- Construir el

secuencias i

Modelo de Ingenieriacutea I directa automaacutetica

I

Figura 31 Modelo de Ingenieria Directa Autombtica de los Diagramas de Secuencias

Para la construccioacuten automaacutetica de un diagrama de secuencias se toma como base a un diagrama de Clases El modulo ldquoExtraer informacioacuten del diagrama de Clasesrdquo sirve para obtener el nombre y los meacutetodos descritos en cada uno de las clases que existan en el diagrama de Clases

22

Desarrollo de la herramienta

Con base en la informacioacuten que se tiene se abren los archivos correspondientes a los diagramas de Warnier El proceso que se emplea sobre cada uno los diagramas de Warnier llamado ldquoExtraer informacioacuten de los disentildeos detallados de los meacutetodosrdquo sirve para recopilar el conjunto de las llamadas de cada meacutetodo definido

En el siguiente paso (ldquoReconocer llamadas a meacutetodosrdquo) consiste en identificar si los meacutetodos que estaacuten descritos en los diagramas de Warnier tambieacuten lo estaacuten en el diagrama de Clases correspondiente

El paso ldquoConstruir los diagramas de secuencias automaacuteticamenterdquo realiza una validacioacuten de los meacutetodos definidos en los diagramas de Clases con los meacutetodos definidos en los diagramas de Warnier Este paso crea una estructura de datos con la secuencia de las llamadas y la recorre para crear los objetos y los mensajes en el diagrama de secuencias

AI terminar la creacioacuten automaacutetica del diagrama de secuencias se dispone de la r opcioacuten de guardar

31 Disentildeo de la Arquitectura

Para definir los procesos que el sistema va a realizar es necesario llevar a cabo un anaacutelisis de requisitos los cuales pueden ser expresados mediante diagramas de Casos de Uso Los Casos de Uso son una descripcioacuten textual narrativa de los procesos de un sistema

311Requisitos (Diagrama de Casos de uso)

Los casos de uso en realidad no son un artefacto de anaacutelisis orientado a objetos estos describen simplemente procesos y pueden ser igualmente efectivos en un proyecto tecnoloacutegico no orientado a objetos Son usados en un paso preliminar a la descripcioacuten de requerimientos de un sistema [LAR971 La Figura 32 muestra el diagrama de casos de uso que especifica al S3C

9

S3C (Diagramas de Secuencias)

usuario I Modelado de

I

Figura 32 Diagrama de Casos de Uso para el S3C

23

Desarrollo de la herramienta

Descripcioacuten de los Casos de Uso

Caso de Uso ldquoDiagramas de Secuenciasrdquo Se inicia cuando el actor ldquousuariordquo solicita la creacioacuten de un Diagrama de Secuencias Se establece la forma de la construccioacuten automaacutetica de los diagramas de secuencias de UML Se hace uso del Modelado de Clases y del Modelado del disentildeo detallado de los meacutetodos

Escenario de Eacutexito 1 Se obtiene la informacioacuten de las clases del modelado de clases 2 Se obtiene la informacioacuten del modelado del disentildeo detallado de los meacutetodos 3 Se realiza la construccioacuten automaacutetica de los diagramas de secuencias

1 En el modelo de clases no hay informacioacuten o estaacute incompleta 2 En el modelo del disentildeo detallado de los meacutetodos no hay informacioacuten o estaacute

incompleta

Escenario de Falla

Caso de Uso ldquoModelado de Clasesrdquo El diagrama de Clases se utiliza para obtener los nombres de clases y los nombres de los meacutetodos de cada clase

Escenario de Eacutexito 1 Se abre el modelo 2 Se procesa para obtener la informacioacuten de las clases (nombres de clases y nombres

de meacutetodos)

Escenano de Falla h 1 No se puede abrir el modelo J 2 El modelo esta vaciacuteo

Caso de Uso ldquoModelado del Disentildeo detallado 1 los meacutetodosrdquo El disentildeo detallado de los meacutetodos se realiza con diagramas de Warnier aquiacute se establecen las llamadas a funciones dentro del sistema y es aquiacute donde se identifica el dinamismo que se representaraacute en los diagramas de secuencias

Escenario de Eacutexito 1 Se abre el modelo 2 Se realiza la identificacioacuten de las llamadas existentes

Escenario de Falla 1 No se puede abrir el modelo 2 El modelo esta vaciacuteo

24

Desarrollo de la herramienta

Clase Objeto ni I Diagrama I n ____ Nombre Descripcioacuten

i

Mensaje

Tipo

En el Anaacutelisis Orientado a Objetos se crea una especificacioacuteii del dominio del problema y de los requeriinientos desde la perspectiva de una clasificacioacuten por objetos y del entendimiento de los teacuterminos usados en el dominio del problema Una descomposicioacuten del dominio del problema involucra una identificacioacuten de conceptos atributos y asociaciones que son considerados importantes dentro del dominio El resultado puede ser expresado en un Modelo Corzcepttraf el cual es ilustrado en un conjunto de diagramas que definen conceptos (objetos) [LAR97]

312Modelo Conceptual

El modelo conceptual visto en la Figura 33 no es una descripcioacuten de componentes de software representa conceptos en el domino del problema en el mundo Teal [LAR97l

313Diagramas de clases

Por cuestiones dc espacio las clases de la arquitectura del sistema estaraacuten referidas en varios diagramas que de alguna manera estaacuten relacionados entre si

Una de las partes maacutes importantes del Ambiente Visual S3C es la estructura de clases ltCCraJicogt la cual se refiere al control de los diagramas eacutesta por su naturaleza podriacutea considerarse el nuacutecleo del sistema La manipulacioacuten y control de los diagramas estaacute definido en una estructura de clases organizada con el patroacuten de disentildeo Composite que se muestra en la Figura 34

25

Desarrollo de la herramienta

CRecursividadDS CMensajeDS CObjetoDS CDiagramaDS

I Cvisitor I

CApuntadorDS CDblClickDS CAsocAdjusterDS CSelectorDS

26

Desarrollo de la herramienta

n 32 Elementos de la arquitectura

Es necesario describir los elementos que dan soporte a la arquitectura del ambiente donde se implementaraacute el sistema en este caso Microsoft Visual (MV) C++ 6 El MV C++ es un marco de aplicacioacuten poderoso basado en Windows se integran ademaacutes del lenguaje C++ (compilador y enlazador) el programa de desarrollo de programas en lenguaje C para Windows (SDK) la Microsoft Foundation Class Library AppWizzard Classwizard AppStudio y WorkBencli

La Microsoft Foundation Class Library comprende una biblioteca de clases de C++ y es considerada como el nuacutecleo del MV C++

321Microsoft Foundation Class (MFC)

La libreriacutea Microsoft Foundation Class (MFC) es una interfaz orientada a objetos que tiene las siguientes metas de disentildeo

o

Reduccioacuten significante de esfuerzo al escribir una aplicacioacuten para Windows Velocidad de ejecucioacuten comparable a las APIrsquos del lenguaje C Miacutenimo tamantildeo de coacutedigo Capacidad para llamar cualquier funcioacuten de Windows en C directamente Faacutecil conversioacuten de aplicaciones existentes en C a C++ Faacutecil uso de APIrsquos de Windows con C++ como con C Faacutecil uso de complicadas caracteriacutesticas de abstracciones poderosas como ActiveX soporte para base de datos impresioacuten barras de herramientas y barras de estado El API de Windows en C++ si usa tan efectivamente como las caracteriacutesticas mismas del lenguaje C++

La mayoriacutea de las clases de la Libreriacutea de la Microsoft Foundation Class son derivadas de una clase base ltCObjectgt que es la raiacutez de la jerarquiacutea de clases ltCObjectgt da uacutetiles capacidades a las clases que derivan de ella

La jerarquiacutea que existe en las clases derivadas de ltCObjectgt es la siguiente

Arquitectura de Aplicacioacuten Excepciones Servicios de Archivos Arreglos Listas Mapas Servicios de Internet Sockets Sincronizacioacuten Soporte para base de datos D A 0

27

Desarrollo de la herramienta

i

r

Liacutenea de Comandos Menuacute Dibujo Graacutefico Dibujo Graacutefico de Objetos Soporte de Control Soporte de Ventanas

Soporte para base de datos ODBC

o Marco de Ventanas o Barras de control o Hojas de propiedades o Cajas de Dialogo o Vistas o Controles

322Arquitectura Documento Vista

Por defecto las aplicaciones creadas con la MFC usan un modelo de aplicacioacuten que separa los datos del programa de las vistas de interaccioacuten con el usuario En eacuteste modelo un objeto documento de MFC lee y escribe datos en un almacenamiento persistente Un objeto vista administra el despliegue de datos suministrando al usuario los datos para ser seleccionados o editados La vista le comunica al documento cualquier cambio en los datos La razoacuten maacutes conveniente para seguir este modelo es cuando se necesita muacuteltiples vistas del mismo documento (como en una hoja de caacutelculo y un graacutefico)

La arquitectura documentovista hace faacutecil el soporte de muacuteltiples vistas y muacuteltiples tipos de documentos asiacute como la divisioacuten de ventanas y otras caracteriacutesticas de interfaz de usuario Pero el corazoacuten de la arquitectura son cuatro clases (Mostradas en el aacuterbol de clases de la Figura 36)

ltCDocumerrtgt (o ltCOleDocuinentgt) - Se instancia un objeto de este tipo para almacenar y controlar los datos del programa ltCViewgt (o una de sus clases derivadas ltCScrotlViewgt ltCFormViewgt ltCEditView ltCRecordViewgt ltCDaoRecordView ltCtreeViewgt ltCListViewgt b ltCrichEditViewgt) - Un objeto es usado para desplegar los datos y administrar la interaccioacuten del usuario con los datos ltCFrameWndgt (o una de sus variantes) - Establece el marco sobre el que trabajaraacuten una o mas vistas de un documento ltCDocTemolategt (o ltCSingIeDocTemplategt o ltCMultiDocTemplategt) - Coordina la existencia de uno o maacutes documentos de un tipo dado y administra la correcta creacioacuten de los documentos vistas y objetos ventanas para cada tipo

i

28

Desarrollo de la herramienta

______________ 2 Wiew

I - - __ - ------a ________________

323Integrando Ambientes en Visual C t t

Las aplicaciones de Interfaz de Documento Uacutenico (SDI) soporta muacuteltiples tipos de documentos pero este soporte es para un solo objeto documento Debido a esta restriccioacuten y aunado a la necesidad de tener varios objetos documentos a la vez se determina la utilizacioacuten del modelo Interfaz de Muacuteltiples Documentos (MDI) indicado en la Figura 37

324Interfaz de Muacuteltiples Documentos (MDI)

Una aplicacioacuten de Interfaz de Muacuteltiples Documento (MDI) permite la creacioacuten de plantillas para el manejo de los documentos eacutesta plantilla tiene la forma

rn-pDocTemplate = new CMultiDocTernplate ( I DR-SCUMLTY PE RUNTIME-CLASS (CSCUMLDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CTheView))

AddDocTernplate ( rn-pDocTemplate )

Cada plantilla describe una relacion del tipo de documento con la vista asociada La definicioacuten de la plantilla para el ambiente que controla los diagramas de secuencias es la siguiente

29

Desarrollo de la herramienta c

m-pTernplateSeqDlag = new CMultiDocTernplate ( IDR-DS-SJCTYPE RUNTIME-CLASS (CSeqDiagDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CSeqDiagView) )

AddDocTernplate( rn-pTernplateSeqDiag )

Esta plantilla hace uso de la clase CCliildFrame que por defecto el ambiente Visual C++ construye y esto es debido a que no se requieren caracteriacutesticas extras en las ventanas de las que proporciona dicha clasc En un caso en el que se requiriera un comportamiento diferente de la vista tendriacutea que crearse una nueva clase con las caracteriacutesticas deseadas

Vista Documento

Vista

I- Vista Documento I [ Tip- F Vista

L Figura 37 Modelo Interfaz de Muacuteltiples Documentos (MDI)

Para integrar otro Ambiente que utilice otro tipo de documento es necesario definir otra plantilla de la misma forma mencionada Debe tomarse en cuenta los siguientes puntos

Es necesario definir el nombre (mqTemplateNOMBRE) El IDR del tipo que se requiere que sea el documento En la primera liacutenea RUNTIME CLASS debe indicar la clase ltCDocumentgt que desea La segunda liacutenea RUNTIME-CLASS soacutelo la cambia a otra clase si requiere de otro manipulador de ventanas de lo contrario deje que ltCChildFramegt se haga cargo

-

30

Desarrollo de la herramienta

En la uacuteltima liacutenea referente a RUNTIME-CLASS se debe indicar la clase ltCViewgt que desea usar Para finalizar se usa la instruccioacuten AddDocTernplate para finalizar la definicioacuten del template (mgTemplateNOMBRE)

325 Recursos Diaacutelogos Mertuacutes y Barras de Herrattriertias

Son varios los recursos con los que se puede contar al crear un proyecto en Microsoft Visual C++ Los diaacutelogos son un recurso disponible que son utilizados para visualizar ingresar yo modificar informacioacuten que se requiera En el Ambiente Visual que se desarrolla son varios los diaacutelogos que se utilizaraacuten y eacutestos se describen a continuacioacuten

El Diaacutelogo ldquoCaracteriacutesticas del Obietordquo (Figura 38) identifica el nombre del Objeto y la descripcioacuten del mismo Este diaacutelogo se muestra cuando se presiona doble clic sobre un objeto del diagrama

I Nombre

Desciipcion

Figura 38 Dialogo Caracteriacutesticas del Objeto

El Diaacutelogo ldquoMensaierdquo (Figura 39) muestra el nombre del mensaje que puede ser modificado ademaacutes se visualizan el Identificador del Mensaje el tipo de Mensaje asiacute tambieacuten el origen y destino del mensaje

31

Desarrollo de la herramienta

Nornbie delMensaje Edit

IDentificador del Mensaje Edil Tipo de Mensaje (Edil

Edit Objeto Origen

Objeto Destino IEdit

i25El A Figura 39 Dialogo Mensaje

El menuacute es otro de los recursos del que se puede disponer para organizar el ambiente que se estaacute creando Para eacuteste caso en particular no se hizo modificaciones al menuacute estaacutendar (Figura 310) que Visual C++ presenta Los cambios significativos son el manejo del tipo de documento para los Diagramas de Secuencias

Archivo Editar Yer VenLana AyGda

Figura 310 Menuacute de los Diagramas de Secuencias (estaacutendar)

Otro importante recurso del que uno se puede valer en Visual C++ es la barra de herramienta personalizada la cuaacutel es construida en el Editor de Recursos Se ha construido una barra (Figura 311) con los elementos graacuteficos de los Diagramas de Secuencia de UML

Figura 311 Barra de Herramientas de los Diagramas de Secuencias

Es recomendable que al utilizar barras de herramienta personalizada se defina en el tamantildeo estaacutendar ya que puede experimentar problemas al momento de ejecutar la aplicacioacuten

Ademaacutes puede usar la propiedad TBBS-CHECKGROUP en una barra de herramientas para establecer que los botones puedan quedar presionados hasta que un botoacuten diferente sea presionado No olvide que la numeracioacuten inicia con cero ( O )

vuriableToolBurSetButtonStyle(OTBBSCHECKGROUP)

32

Desarrollo de la herramienta

Prefijo ID IDC IDD IDP IDR IDS

326 Notacioacuten estaacutendar

Los nombres descriptivos de los recursos se asocian a un valor uacutenico Para una mayor claridad eacutestos nombres mantienen un prefijo que describe el tipo de recurso asociado (vea la Tabla 31) [MIC99]

Tipo de Recurso Comandos de Menuacute Controles y recursos Cuadros de diaacutelogo Cadenas de solicitud para cuadros de mensaje Menuacute principal barras de herramienta tabla aceleradora y el icono Cadenas

IDR IDD IDC ID

200 - 299 3000 - 3999 34000 - 34999

Estos son los rangos de valores establecidos para el proyecto S3C Si se utiliza el coacutedigo fuente y se planea agregar otro proyecto verifisue que no se invadan estos nuacutemeros para evitar problemas

Para facilitar auacuten maacutes los trabajos futuros se ha definido una estructura de carpetas (ver Figura 312) para incluir en cada una las Clases correspondientes a cada tesis en desarrollo

33

Desarrollo de la herramienta

ill ~~ -

-I SCUML classes + U A N T L R + U App + 0 ClassDiagrams + 0 Common + a Java

t $2 SequenceDiagiams

+ WarnierDiagrams

iJ PackageDiagrams

12 StaterChartDiagrams

+

- f Classview I Resourceview 1 FileView ]

~ ~

Figura 312 Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)

327Estructura de datos persistencia y recuperacioacuten

Existe una gran cantidad de tipos de datos estructuras clases y meacutetodos de los que se puede hacer uso para una mejor y maacutes faacutecil obtencioacuten de los resultados A continuacioacuten hago comentarios en tipos de datos y meacutetodos en los que podriacutea tener problemas

CTypedPtrList

AI usar este tipo de dato o alguno relacionado que le permita utilizar el meacutetodo ltCTvrgtedPtrListGetNextgt tenga especial precaucioacuten al usarlo ya que al devolver el valor requerido la variable POSITION usada no se queda apuntando a ese valor en particular salta al inmediato siguiente de la lista

Si se realiza una creacioacuten dinaacutemica con punteros para los elementos de una CTypedPtrList Despueacutes de haberlo agregado a la lista evite el delete para borrar esta Usted deseando liberar la memoria no lo haga ya que eliminara directamente el elemento de la lista

POSITION

Es un valor usado para denotar una posicioacuten de un elemento en una coleccioacuten Pero CUIDADO no se refiere a un iacutendice es una referencia (no consecutiva) de punteros muy diferente a un iacutendice

CString

Auacuten cuando el operador de comparacioacuten == (igual a) es permitido para ser utilizado en las cadenas evite su uso ya que en ocasiones aunque cuando la e

34

Desarrollo de la herramienta

compilacioacuten no indique error alguno en la ejecucioacuten no realizaraacute lo que se necesita Recomiendo que utilice CStringCompare ()

Para eliminar el contenido de un CString utilice CStringEmpty() ya que asignar a la cadena un ldquonrdquo podriacutea causarle problemas

Serializacioacuten

Una forma en que se puede guardar informacioacuten y recuperarla de manera eficaz es mediante la serializacioacuten de objetos La serializacioacuten es un proceso que permite escribir un objeto en un archivo y tambieacuten leerlo

Para que la serializacioacuten se lleve a cabo son necesarios tres objetos un objeto de tipo ltCFilegt que represente el archivo un objeto de tipo ltCArchivegt que ofrece el entorno para la serializacioacuten y la clase del objeto a ser serializado debe ser heredada de ltCObjectgt y sobrescribir el meacutetodo ltSerializegt para que se encuentre de tal forma en que pueda ser serializado (vea la Figura 313)

Objeto a ser serializado 1

1 CArchive

[f --=I- ---7 Archivoexi

u Figura 313 Serializacioacuten

328Patrones de disentildeo utilizados

Se ha planteado la definicioacuten de una arquitectura de clases utilizando patrones de disentildeo debido a que algunos de ellos hacen maacutes faacutecil la extensioacuten de la funcionalidad y mantenimiento

35

Desarrollo de la herramienta

El patroacuten Composite es utilizado para crear de manera uniforme el diagrama sobre el que se trabaja (ver Figura 34) manteniendo una jerarquiacutea de clases uniforme las clases maacutes bajas en la jerarquiacutea definen primitivas de objetos graacuteficos

Se aplica el patroacuten de disentildeo Iterator para hacer recorridos en listas de objetos para realizar diversas operaciones Otro patroacuten de disentildeo del que se hace uso es el Visilor (ver Figura 35)

Para otras actividades que se realizan podriacutea pensarse en que se deberiacutean aplicar otros patrones pero se han evitado algunos (como el patroacuten de disentildeo Builder) para evitar incrementar la complejidad en la arquitectura ya que ai mantener el modelo de la MFC de documentovista la funcionalidad del patroacuten de disentildeo Builder es faacutecilmente reemplazado si se hiciera Uso de eacuteste se aumentariacutea la complejidad excesivamente (nos llevariacutea a perdemos en ocasiones en el paso de mensajes entre clases) dantildeando la facilidad de la arquitectura

33 Diagrama de secuencias

Un Diagrama de Secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten escenario Oacute comportamiento se usan para definir el curso loacutegico de accioacuten de un posible camino a seguir en la resolucioacuten de un problema Seguacuten John Daniels [DANO2] ldquoel principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildean las interacciones de los objetosrdquo

Los Diagramas de Secuencias se utilizan en el modelado de la implementacioacuten de sistemas de software ademaacutes son aplicables en el modelado de requisitos para establecer las comunicaciones existentes entre actores yo clases del sistema Con eacutestos diagramas se logran hacer descripciones de los escenarios y los comportamientos del sistema Con los Diagramas de Secuencias es posible definir protocolos de comunicacioacuten con paso de mensajes ya que dan esa flexibilidad que se requiere Ademaacutes los Diagramas de Secuencias contienen informacioacuten suficiente para que puedan ser transformados a los diagramas de colaboracioacuten [RUM Ol][BOO Oil

331Ciclo de vida del software

Considerando cualquier modelo de ciclo de vida del software (en la figura 314 se muestra el Modelo de cascada) el aacutembito directo de eacuteste Ambiente Visual es en el disentildeo aunque tiene sus vertientes en la codificacioacuten y mantenimiento

36

Desarrollo de la herramienta

Diseno

Codificacibn

I I I I Mantenimiento I

igura 314 Modelo de cascada del ciclo de vida del software

34 Elementos atoacutemicos de la Gramaacutetica

Definicioacuten de los elementos atoacutemicos del lenguaje y su contenido

1 Actor- Representa roles de entidad externos al sistema con el que interactuacutea directamente Los actores pueden ser humanos dispositivos u otros sistemas

2 ClaseObjeto- Determina una Clase u Objeto participante en la interaccioacuten

3 Mensaje-Es una comunicacioacuten entre objetos que contiene informacioacuten Eacuteste se representa con la finalidad a que una accioacuten sea llevada a cabo

4 Mensaje con tiempo- Tiene la misma finalidad que el mensaje la diferencia es que con eacutel se representa un atributo de tiempo

5 Mensaje asiacutencrono Es un mensaje que ocurre en el tiempo de manera independiente a otros mensajes

6 Mensaje de destruccioacuten de objeto- Es un mensaje cuya finalidad es indicar la destruccioacuten del objeto destino

7 Mensaje de creacioacuten de objeto- Es un mensaje que indica la creacioacuten de un objeto

8 Llamada al mismo objeto (Recursividad)- Es usado para modelar llamadas recursivas en el que una operacioacuten es invocada por el mismo objeto

37

Desarrollo de la herramienta

9 Destruccioacuten del objeto (AutodestrucciOacuten)- Puede o no modelarse es representada con una X al final de la liacutenea de vida del objeto

Elementos aulomaacuteticos

1 Liacutenea de Vida- Representa la vida del objeto durante la interaccioacuten

2 Activacioacuten- Muestra el periacuteodo de tiempo en el cual el objeto alguna operacioacuten

341RepresentaciOacuten visual

Representacioacuten visual de los elementos atoacutemicos del lenguaje

Actor

_- A

Mensaje

Mensaje de Creacioacuten de

Objeto

ClaseObjeto

I

Mensaje de retorno

Mensaje de Destruccioacuten de

Objeto

abla 32 Element(

Activacioacuten

Mensaje con tiempo

Autodestruccioacuten

x

atoacutemicos del lengi

taacute realizz

Texto ===I (letra)+ (letra I

numero) letra= AZ I az numero = 09

I

Recursividad ~

I

i j e

io

38

u

Comentario

iexcl

Conector de Comentario

35 Gramaacutetica desarrollada

La gramaacutetica que se propone es una gramaacutetica visual del tipo relacional Una gramaacutetica relacional pertenece a las gramaacuteticas libres de contexto es una 6-iupla G (N C S R Attr P) donde

N es un conjunto finito de siacutembolos no terminales C es un conjunto de siacutembolos terminales S es un siacutembolo distinguido en N llamado siacutembolo inicial R es un conjunto finito de siacutembolos de relacioacuten Attr es un conjunto finito de siacutembolos de atributos P es un conjunto de producciones

Entonces definiendo nuestra gramaacutetica G (N C S R Attr P)

N = Diagrama GrupoClaseObjeto

S = Diagrama

R = mensaje mensajeTiempo mensajeRetomo mensajeAsincrono mensajecrea mensajeDestruye autodestruccioacuten recursividad

R

Attr = entrada salida entradacrea

39

Desarrollo de la herramienta

Definiendo la posicioacuten de los atributos en los elementos visuales

entradacrea ObetaClase

entrada

salida

P =

Diagrama I GrupoClaseObjeto (mensaje (mensajeRetorno

(salida 1) (entrada 2) ) (salida 2) (entrada 1) )

- Diagrama 0 GrupoClaseObjeto

(mensaje (mensaje (mensajeRetomo (mensajeRetomo (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entradacrea 2) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 1) ) (salida 1) (entrada 1) )

entrada

salida

40

Desarrollo de la herramienta

s

-

GrupoClaseObjeto - 1 1 I 2 (mensaje (mensaje (mensajeRetorno (mensajeRetorno (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entradacrea 2) ) (salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 1) ) (salida I ) (entrada I ) )

1 En las gramaacuteticas relacionales una produccioacuten estaacute acompantildeada de las posibles

relaciones que puedan generarse En la primera produccioacuten Diagrama produce a un Actor seguida de un GrupoClaseObjeto el Actor inicia la interaccioacuten con un mensaje y recibe el mensaje de retorno al finalizar la interaccioacuten La segunda y tercera produccioacuten son similares debido a que un GrupoClaseObjeto contiene dos ClaseObjeto que se relacionan de la misma forma

Existe un elemento de la gramaacutetica llamado Attr (Atributo) el cual define la parte de los elementos visuales donde se establecen las relaciones Se han determinado dos atributos (entrada y salida) que para nuestro propoacutesito estaraacuten establecidos en la liacutenea de vida de cada elemento visual (Actor y ClaseObjeto)

Los Comentarios y la Activacioacuten no se consideran en la gramaacutetica Los comentarios son libres de incluirse y relacionarse con cualquier elemento y relacioacuten mencionada anteriormente y la activacioacuten existe siempre que se presente un mensaje (o podriacutea omitirse) Estas consideraciones se realizaron para hacer auacuten maacutes faacutecil la gramaacutetica ya que si se trata de realizar un sistema las restricciones de estos elementos pueden mantenerse en el lenguaje de programacioacuten en el que se desarrolle el sistema

36

Precondiciones

El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias

1 El diagrama de Clases debe existir y estar completo 2 Debe existir un archivo con un diagrama de Warnier por cada diagrama de Clases y

con el mismo nombre de archivo (excepto la extensioacuten del archivo) 3 En el uacutenico diagrama de Warnier de cada Clase se deben modelar todos los meacutetodos

de la Clase 4 No realizar declaraciones de meacutetodos

41

Desarrollo de la herramienta

5 Debe existir un meacutetodo lsquomain()rsquo en el diagrama de Clases

Restricciones

Los meacutetodos deben mantener nombres distintos en las diferentes Clases

Metodologiacutea para la obtencioacuten automaacutetica de los Diagramas de Secuencias

1 Seleccionar el diagrama de Clases

2 Se construye una lista con los nombres de las Clases y los Meacutetodos

3 Se verifica si exista el meacutetodo lsquomain()rsquo en alguna Clase Se busca la existencia de una uacutenica Clase

a La Clase que contenga lsquomain()rsquo se va al inicio de la lista de Clases

b Si no existe lsquomain()rsquo SE TERMINA EL PROCESO

4 Se verifica la existencia de los archivos que contienen el Disentildeo Detallado de los meacutetodos en Wamier para cada una de las Clases si alguno falta SE TERMINA EL PROCESO

5 Se procesa cada uno de los modelos del Disentildeo Detallado de los Meacutetodos generando una lista de secuencias de llamadas por cada uno de los meacutetodos

6 Se verifica que cada llamada corresponda a alguacuten meacutetodo existente (del diagrama de Clases) De no existir ese meacutetodo la llamada entra a una estructura que

7 Se crea una lista de secuencia

a Se inicia con lsquomain()rsquo b Se recorre cada una de las llamadas de los meacutetodos c Se considera invaacutelido el caso de que un meacutetodo intente una llamada

recursiva al meacutetodo lsquomain()rsquo

8 Se muestra un diaacutelogo de resultados en el que se indican las llamadas que no se encnotraron definidas y que pueden ser Llamada a libreriacutea oacute Llamada Erroacutenea

42

Capiacutetulo 4

Prue6as y su6taaacuteos

En eacuteste capiacutetulo se da a conocer el detalle de las pruebas y de los resultados obtenidos Se describen los casos de prueba con los que se realizoacute la evaluacioacuten del sistema asiacute tambieacuten se presentan comentarios acerca de los resultados obtenidos

Pruebas y Resultados

41 Recursos teacutecnicos utilizados

Para llevar a cabo las pruebas al sistema S3C se utilizaron los siguientes equipos de Coacutemputo

Computadora de escritorio

256MB RAM Disco Duro 80G Monitor 17rdquo SAMSUNG

AMD Athlon XP 1600+ I4Ghz

Computadora de escritorio Intel Pentium 4 - 128MB RAM Disco Duro 40G Monitor 15rdquo i -

42 Descripcioacuten del plan de pruebas

Las pruebas establecen el Uacuteltimo paso desde donde es posible evaluar la calidad y descubrir los errores Las pruebas y la validacioacuten del software se utilizan para comprobar que el sistema cumple con las expectativas del usuario

En esta seccioacuten se describen los casos de prueba que se realizaron al prototipo de S3C en conjunto a la suite cenidet-UML Para cada uno de los casos se presenta el objetivo el procedimiento que se siguioacute para la prueba y se muestran los resultados obtenidos - _

Las pruebas a realizar son los siguientes

Caso 1 Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Caso 2 Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Wamier

Caso3 Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Wamier

Caso4 Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo 5

44

Pruebas y Resultados

43 Resultados

431 Caso 1

5 Y

IZ =

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoSirdquo 4 Seleccionar el archivo ldquoVENTASrdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 41 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

s3c iuevo Proyecto SCUM1

Diagrama de clases

lvendedor I L

3

salida

venta prod

4 venia-oferta vcntaprod =

salida 6

Figura 41 Resultado del caso de prueba 1

45

Pruebas y Resultados

432 Caso 2

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Warnier (almacenwar cajawar vendedorwar) que ya cxisten (del caso de prueba I )

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoNordquo 4 Agregar las siguientes Clases con los respectivos meacutetodos y atributos

a Claseldquovendedorrdquo Meacutetodos ldquoventa mainrdquo b Claseldquoalmacenrdquo Meacutetodos ldquoentrada salidardquo c Claseldquocajardquo Meacutetodos ldquoventagrodrdquo

5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 42 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

Diagrama de daseo lisgrama dcsccucncis

MOIDOC Anivo

venta prod

salida

1 Ycrdquo1a 2

I 4 vcrdquolD~o1cn venta prod gt

salida 6 i Figura 42 Resultado del caso de prueba 2

46

Pruebas y Resultados

r

433 Caso 3

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Warnier

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 43 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

5

Error al tratar de abrir el archivo A bZwar

Aceptar i

Faltan Archivos de Disentildeos Detallados de Meacutetodos 1 1 A No se puede crear el diagrama de secuencias

Figura 43 Resultado del caso de prueba 3

47

Pruebas y Resultados

434 Caso 4

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 44 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

lsquo I

~ _ i i _ l _ Repaado ~~ ~ ~ 6~ ampA Figura 44 Resultado del caso de prueba 4

48

Pruebas y Resultados

PRUEBA DESCNPCION CASO 1 Mostrar la funcionalidad del

Sistema S3C a partir de un

44 Anaacutelisis de Resultados

RESULTADOS Se comproboacute la correcta funcionalidad del Sistema S3C a partir de un diagrama

CASO 3

CASO4

I diagrama de Clases cxistcnte I de Clases existente CASO 2 I Mostrar la funcionalidad del I Sc comproboacute la corrccta funcionalidad

Sistema S3C a partir de un del Sistema S3C a partir de un diagrama diagrama de Clases que se de Clases que se construye al momento construye al momento Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el Secuencias si falta alguno de los diagrama de Secuencia si falta alguno diagramas de Warnier Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el secuencias si hace falta el meacutetodo diagrama de Secuencias al faltar el ldquomain ()rdquo meacutetodo ldquomain()rdquo

de los diagramas de Warnier

Los resultados obtenidos de cada uno de los casos establecidos demuestran que se validoacute la funcionalidad del prototipo con los requisitos definidos en el alcance de este proyecto

a lt

49

Conclusiones y Tru6ajos Futuros

Aquiacute se dan a conocer las conclusiones y se describen los posibles trabajos futuros para la continuacioacuten de eacuteste proyecto

F

51 Conclusiones

Conclusiones y trabajos futuros

Se ha creado un Ambiente Visual que permite obtener de forma automaacutetica los Diagramas de Secuencias en base a los diagramas de Clases y al disentildeo detallado de los meacutetodos descritos con diagramas de Warnier cumpliendo con los objetivos planteados para este trabajo

La tesis aporta principalmente La generacioacuten automaacutetica de los diagramas de secuencias y la eliminacioacuten de inconsistencias al mantener una validacioacuten directa de los diagramas de clases y los diagramas de Warnier que son utilizados

Esta validacioacuten es lograda a traveacutes del uso de la gramaacutetica visual relaciona1 que se ha definido (veacutease el capiacutetulo 3) Esta gramaacutetica visual establece reglas para la correcta construccioacuten de los diagramas de secuencias

P De esta manera se establece que la hipoacutetesis ldquoEs posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodosrdquo Es verdadera

52 Trabajos Futuros

Un Diagrama de Secuencias puede convertirse en un Diagrama de Colaboracioacuten por lo tanto un trabajo futuro es la construccioacuten automaacutetica de un Diagrama de Colaboracioacuten a partir de uno de Secuencias existente

Es posible calcular la meacutetrica de acoplamiento al tener un Diagrama de Secuencias construido

La Ingenieriacutea directa de un Diagrama de Secuencias estableciendo la validacioacuten en la construccioacuten de todos los elementos visuales que UML define

La propagacioacuten de las modificaciones de un Diagrama de Secuencias a los Diagramas de Clases y los Diagramas de Warnier

La modificacioacuten del coacutedigo fuente mediante los cambios establecidos en un Diagrama de Secuencias

51

[ALC03]

[BLA98]

[B0099]

[BOOOi]

[BR097]

[CHA90]

[DAN02]

[GLA02]

[HAC98]

[HER03]

4

Alcate1 Computer Associates International inc Electronic Data Systems Corporation Hewlett-Packard Company IBM Corporation I-Logix IntelliCorp Kabira Technologies Kennedy Carter Microsoft Corporation Object Management Group Oracle Corporation Project Technology Ptech Inc Rational Software Corporation Reich Technologies Softeam Taskon A S Telelogic Unisys Corporation ldquoOMG Unified Modeling Language Specificationrdquo Version 15 Unified Modeling Language 2003

Blaha Michael Rumbaugh James Premerlani William Eddy Frederick Lorensen William ldquoObject-oriented modeling and designrdquo Prentice Hall 484 Paacuteginas ISBN 0-13-629841-9 QA-769-03S-B53-19981998

Booch Grady Rumbaugh James Jacobson Ivar ldquoEl lenguaje unificado de modeladordquo Addison Wesley 432 Paacuteginas ISBN 84-7829-028-1 1999

Booch Grady Rumbaugh James Jacobson Ivar ldquoThe Unified Modeling Language User Guiderdquo Addison Wesley 2001

Brown David ldquoAn introduction to object-oriented analysis objects in plain Englishrdquo John Whiley amp Sons Inc 700 Paginas ISBN 0-471-1 1028-0 QA-769-035-B76-1997 1997

Chang Shi-Kuo ldquoVisual Languages and visual programmingrdquo Plenum Press 340 Paacuteginas ISBN 0-306-43428-8 QA-7665-V57-1990 1990

Daniels John ldquoModeling with a sense of purposerdquo Design - IEEE Software JanuaryEebmary 2002

Glasgow Universidad Reino Unido ldquoA UML Editor in Javardquo (lthttplstudentsdcsglaacuWstudentspainjfproject-reportproject-re port-htmV4thYearReporthtrnlgt 2002)

T Hackos JoAnn C Redish Janice ldquoUser and Task Analysis for Interface Designrdquo Wiley Computer Publishing 488 Paacuteginas ISBN QA-769-U83- H33-1998 1998

Hemaacutendez Velaacutezquez M ldquoIngenieriacutea inversa de coacutedigo fuente en C++ para la obtencioacuten de su disentildeordquo Tesis AT-379 (03-0334) 2003

Conceptos generales

[HIX93]

[JAC93]

[JAC99]

[JOY98]

[LAR97]

[MAR]

[MIC99]

[MIC02]

[MOU98]

Hix Deborah Hartson H Rex ldquoDeveloping user interfacesrdquo 381 Paacuteginas ISBN 0-471-57813-4 QA-769-U83-H59-1993 1993

Jacobson Ivar Christerson Magnus Jonsson Patrik Overgaard Gunnar ldquoObject oriented software engineeringrdquo Addison Wesley ISBN 0-20 1 - 54435-0 QA-7676-D47-J63-1993 1993

Jacobson Ivar Booch Grady Rumbaugh James ldquoEl proceso unificado de desarrollo de softwarerdquo Addison Wesley 438 Paacuteginas ISBN 84-7829-036- 2 1999

Joyanes Aguilar Luis ldquoProgramacioacuten orientada a objetosrdquo McGruw Hill ISBN 84-481-0590-7 1998

Larman Craig ldquoAplying UML and Patternsrdquo Prentice Hull 507 Paacuteginas ISBN 0-13-748880-7 QA-769-035-L37-1997 1997

Marriot Kim Meyer Bemd ldquoVisual Language Theoryrdquo Springer 381 Paacuteginas P-935-V567-1998 1998

Microsoft ldquoMicrosoft Visual C++ 6 manual del programadorrdquo McGraw Hill ISBN 84-481-2127-9 QA-7673-Cl53-23718-1999 1999

Microsoft ldquoVisiordquo (lthttpwwwmicrosoftcomofficevisiogt 2002)

B Mourao Luis X ldquoUniversal Modeling Language Part 11 UML Notation - Case Sequence and Collaboration Diagramsrdquo Lan Times Magazine (~httpwwwlantimescomltpartsdiscussdiscuss6Ohtm~) 1998

No Magic ldquoMagicDrawrdquo (lthttpwwwmagicdrawcomgt 2002)

Object Insight ldquoJvisionrdquo (lthttpwwwobject-insightcomgt 2002)

Rational Software Microsoft I Hewlett-Packard Oracle Sterling Software MCI Systemhouse Unisys ICON Computing IntelliCorp i-Logix IBM ObjectTime Platinum Technology Ptech Taskon Reich Technologies Sofieam ldquoUML Summaryrdquo Version 11 Unified Modeling Language 1997

Rational ldquoRational Roserdquo (lthttpwwwrationalcomproductosrosegt 2002)

Rikki Kirzner ldquoAnalysis Modeling and Design Tools Market Forecast and Analysis 2001-2005rdquo Bulletin Published Under Services Application Design and Construction Tools Application Development and Deployment Strategies Documento Nuacutemero 24809 Junio 2001

53

Conceptos generales

[RIM92] Rimrner Steve ldquoGraphical user interface programmingrdquo 423 Paacuteginas

1992

Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language reference manualrdquo Addison Wesley 550 Paacuteginas ISBN 0-201-

ISBN 0-8306-2475-9 ISBN 0-8306-2472-4 (pbk) QA-769-083-R55G

[RUM99]

30998-X QA-7676-D47-R85-1999 1999

[RUM299] Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language user guiderdquo Addisoiz Wesley 482 Paacuteginas ISBN 0-201 -57 168-4 QA-7676-D47-B66-1999 1999

[SMA02] SmartDraw ldquoSmartDrawrdquo (lthttpwwwsmartdrawcomgt 2002)

[SHU88] 9 - Shu Nun C ldquoVisual Programmingrdquo Van Nostrand Reinhold ISBN 0-422- 28014-9 ISBN 0-422-01 164-4 QA-7665-S55 1988

[THI90] Thimbleby Harold ldquoUser Interface Designrdquo Acm press 470 Paacuteginas ISBN 0-201 -41 61 8-2 QA-769U83-T772~- 1990 1990

[WENO2] Wences Diaz MF ldquoModelo de Ingenieriacutea Inversa para la obtencioacuten de disentildeo detallado basado en LEVISSrdquo Tesis (02-0014) 2002

54

Anexo A

Conampuracioacuten de Microsoft Vkua[C++ 6 O

Este anexo indica las configuraciones que se utilizaron para la compilacioacuten de SCUML y s3c

Configuracioacuten de Microsoft Visual c++ 60

Debido a la integracioacuten de los proyectos de InverSOODA e InverDDVi con S3C se cumplioacute con los requisitos previos de ambos proyectos

El compilador usado en el proyecto fue el Microsoft Visual C++ 60

Para el cumplimiento con la funcionalidad de InverSOODA se instaloacute el ANTLR la versioacuten 271 Se descargoacute del sitio l i l l ~ ~ ~ ~ ~ ~ t l ~ l ~ - ~ t - ~ la versioacuten mencionada en un archivo comprimido (en formato zip) Se colocoacute el paquete descomprimido en el directorio ldquoDIANTLR-271 I rdquo

Recomiendo ampliamente que el directorio principal de ANTLR se copie en el directorio raiacutez de cualquier unidad de disco debido a que experimenteacute problemas de compilacioacuten cuando ANTLR no se encontraba en el directorio raiacutez

Io015

Source Browser AlttF12 I u c Ersquo V I

Visual Component Mgnager

- - ~ ~ ~ ~~

P2 Registrar control

A Contenedor de prueba de controles ActiveX

A Usor de objetos OLE y COM

Buacutesqueda de errores

A Y++ MFC Iracer

Customize options

~ - q- ~ Macro

Eecord Quick Macro Cbl+ShiR+R Pay Quick Macro Ctrl+ShiR+P

En el menuacute Tools (Herramientas) seleccione el sub-menuacute Options ltopcionesgt

56

Configuracioacuten de Microsoft Visual C++ 60

En la siguiente ventana de diaacutelogo debe agregar la direccioacuten en donde se encuentra el ANTLR

Agregar la ruta del directorio de ANTLR hasta el subdirectorio

libcpp

Editor I Tabs I Debug I Compatibility 1 Build Dneclolies I a I Chow directories for - Platfolm -

- Directories I x ) 4 jWin32 -] llnclude files

m cancd I

57

Configuracioacuten de Microsoft Visual C t+ 60

Se ha creado una libreriacutea (anrlrliblib) de ANTLR la cual ya estaacute situada en el directorio del proyecto SCUML (ISCUML) y no debe ser movida o eliminada

I

Geneial 1 Debug I CC++ Link I Category

Output file name bebugSCUMLexe

Objectljibrary modules 4 anllrliblib

li Generate debug lnfo r Ignore all defaull lbaries D ~ i n k j n ~ ~ ~ t a n ~ r ~ e n e r ~ ~ ~ mapfile

r Enable psafilrng

Proiec1 Ootionn

pq Cancel 1 Libreriacutea de ANTLR que debe existir 1 I para que se compile correctamente

58

Anexo B

~ u iacute aacute raacutepida de uso deC Sistema S3C

5 Este anexo indica de forma raacutepida la manera de utilizar S3C para crear un diagrama de secuencias de forma automaacutetica

Guiacutea Raacutepida de uso del Sistema S3C i

Para indicar la creacioacuten de un diagrama de secuencias en forma automaacutetica se debe ir a la barra del costado izquierdo y presionar ldquoNuevo Proyecto SCUMLrdquo

I s3c I ~ Nuevo Proyecto SCUML ~ _ _ - I Diagrama de clases ~ Diagrama de secuencias 1 MDI DOC Activo

-

Apareceraacute un documento llamado ldquoSCUMLV en donde el simbolo corresponde a un numero consecutivo iniciando desde 1 (uno)

$ e Despueacutes se presiona ldquoDiagrama de clasesrdquo Habraacute que para indicarle al sistema si se requiere abrir un diagrama de clases existente o realizar uno nuevo

i

iquestAbrir un documento existente

No Cardquo~ear

AI presionar ldquoSirdquo se debe indicar cual es el archivo del diagrama de Clases en el cuadro de diaacutelogo siguiente

~~ - 11dMis documentos rsquo 2 M i P C i lsquo h s sitios de red

I

AI presionar ldquoNordquo en ldquoAbrir un documento existenterdquo se nos mostraraacute un documento vacio para crear un diagrama de clases

60

Guiacutea Raacutepida de uso del Sistema S3C

Para ambas opciones se requiere que los diagramas de Wamier ya se encuentren construidos Y para continuar el proccso se selecciona el documento ldquoSCUMLVrsquo creado al inicio y despueacutes presionar el botoacuten nombrado ldquoDiagrama de secuenciasrdquo localizado en la barra de hcrraiiiicntas del costado izquierdo

Ha iniciado el proceso de construccioacuten del diagrama de secuencias Si no existen errores al terminar el proceso se le mostraraacute un cuadro de diaacutelogo llamado ldquoResultadosrdquo en donde le mostraraacute las llamadas de las que no localizoacute su definicioacuten

- - -

Cancel 1 D e las siguientes llamadas es posible que esten mal escritas o peitenezcan a la libreiia del Lenguaie Verifique ya que no se encontraron sus definiciones

A continuacioacuten se mencionan los posibles errores que finalizan el proceso de la creacioacuten automaacutetica de los diagramas de secuencias en S3C

Cuando no exista un meacutetodo lsquomainrsquo definido en el diagrama de clases

No se encontro el meacutetodo lsquomain()rsquo que inicie la secuencia I A No se puede crear el diagrama de secuencias

p==amp=q

61

Guia Raacutepida de uso del Sistema S3C

Cuando se definan niultiples metodos lsquoinainrsquo en el diagrama de clases

Multiples meacutetodos lsquomainOlsquo Imposible decidir el inicio de secuencia

Aceptar i

Si un meacutetodo definido en Wamier realiza una llamada a lsquomainrsquo se cancelara el proceso

Llamada NO VALIDA al meacutetodo principal main

(iAcp-j(

4 i

CI Y rdquoldquoldquoI i 11 1-T

IZNTRO Gt INFORMACION

62

  • Tabla de Contenido
  • Listado de Figuras
  • Listado de Tablas
  • Notacioacuten
  • Introduccioacuten
  • Capitulo 1 Conceptos Generales
    • 11 Antecedentes
    • 12 Trabajos relacionados
      • 121 Tabla comparativa
        • 13 Definicioacuten del problema
        • 14 Objetivo de la Tesis
          • Objetivos especiacuteficos de la tesis
            • 15 Hipoacutetesis de investigacioacuten
            • 16 Alcances y limitaciones del trabajo de tesis
              • Capitulo 2 Marco Teoacuterico
                • 21 Modelado de sistemas de software
                • 22 Interfaz de usuario (Mecanismos de interaccioacuten)
                • 23 Lenguajes Visuales
                • 24 Programacioacuten orientada a objetos
                • 25 Lenguaje de Modelado Unificado (UML)
                  • Desarrollo de la herramienta
                    • 31 Disentildeo de la Arquitectura
                      • 311 Requisitos (Diagrama de Casos de uso)
                        • 312Modelo Conceptual
                        • 313Diagramas de clases
                        • 32 Elementos de la arquitectura
                          • 321 Microsoft Foundation Class (MFC)
                            • 322Arquitectura Documento Vista
                            • 323Integrando Ambientes en Visual c++
                              • 324 Interfaz de Muacuteltiples Documentos (MDI)
                                • 325Recursos Diaacutelogos Menus y Barras de Herramientas
                                  • 326 Notacioacuten estaacutendar
                                  • 327 Estructura de datos persistencia y recuperacioacuten
                                    • 328Patrones de disentildeo utilizados
                                      • 33 Diagrama de secuencias
                                        • 331Ciclo de vida del software
                                          • 34 Elementos atoacutemicos de la Gramaacutetica
                                            • 341 Representacioacuten visual
                                              • 35 Gramaacutetica desarrollada
                                              • 36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias
                                                  • Capitulo 4 Pruebas y Resultados
                                                    • 41 Recursos teacutecnicos utilizados
                                                    • 42 Descripcioacuten del plan de pruebas
                                                    • 43 Resultados
                                                      • 431 Caso
                                                      • 432 Caso2
                                                      • 433 Caso
                                                          • Conclusiones y trabajos futuros
                                                            • Trabajos futuros
                                                            • Referencias
                                                            • Anexo A Configuracioacuten de Microsoft Visual C+t
                                                              • Figura 11 - Arquitectura de la suite cenidet-UML
                                                              • Figura 21 -Programacioacuten Visual
                                                              • Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de
                                                              • Figura 32 -Diagrama de Casos de Uso para el S3C
                                                              • Figura 33 -Modelo Conceptual
                                                              • Figura 34 - Diagrama de Clases -Control del Diagrama -
                                                              • Figura 35 - Diagrama de Clases - Patroacuten Visitor -
                                                              • Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento
                                                              • Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)
                                                              • Figura 38 -Dialogo Caracteriacutesticas del Objeto
                                                              • Figura 39 -Dialogo Mensaje
                                                              • Figura 3 IO - Menuacute de los Diagramas de Secuencias (estaacutendar)
                                                              • Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias
                                                              • Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)
                                                              • Figura 313 - Serializacioacuten
                                                              • Figura 314 -Modelo de cascada del ciclo de vida del software
                                                              • Figura 41 - Resultado del caso de prueba
                                                              • Figura 42 -Resultado del caso de prueba
                                                              • Figura 43 -Resultado del caso de prueba
                                                              • Figura 44 -Resultado del caso de prueba
                                                              • Tabla 11 - Tabla comparativa
                                                              • Tabla 31 -Prefijos estaacutendar de identificadores
                                                              • Tabla 32 -Elementos atoacutemicos del lenguaje
                                                              • Tabla 41 - Resumen de los resultados de las pruebas realizadas

Marco teoacuterico

t

Clases Es la especificacioacuten de una familia de objetos es la declaracioacuten de un tipo de objetos Tambieacuten se dice que una clase es la descripcioacuten de un conjunto de objetos con un comportamiento similar y que esta compuesta de Datos (o atributos) y Meacutetodos o (rutinas acciones operaciones)

Objeto Un objeto es una entidad en la cual se almacenan datos y los meacutetodos o funciones que controlan dichos datos Un objeto es una abstraccioacuten de alguna cosa del mundo real que contiene datos que lo describen y operaciones que solo tienen acceso a esos datos [BR097l Los elementos de los que esta conformado un objeto son

a Las relaciones permiten que el objeto se integre en la organizacioacuten b Las propiedades son los datos que caracterizan el estado de un objeto distinguiendo

asiacute a un objeto determinado de los restantes que forman parte de la misma organizacioacuten

c Los meacutetodos son las operaciones que pueden realizarse sobre la estructura del objeto es decir las acciones que cambian el estado de un objeto y que el objeto es capaz de ejecutar a traveacutes de mensajes y que tambieacuten pone a disposicioacuten de sus descendientes a traveacutes de la herencia

Mensajes Son solicitudes para que se lleve a cabo la operacioacuten indicada y se produzca un resultado

Las razones principales para introducir la tecnologiacutea de objetos son los beneficios de dicha tecnologiacutea

Aumento de la fiabilidad Aumento de la productividad del desarrollador Desarrollo maacutes raacutepido Mejor calidad maacutes alta

Incremento en escalabilidad Mejores estructuras de informacioacuten Incremento de adaptabilidad Reduccioacuten del coacutedigo fuente

Mantenimiento maacutes faacutecil y reduccioacuten de costo

Los elementos de reutilizacioacuten son las clases y objetos

25 Lenguaje de Modelado Unificado (UML)

UML (Unified Modeling Language por sus siglas en ingleacutes Lenguaje de Modelado Unificado) es un lenguaje de modelado visual de propoacutesito general que es utilizado para especificar visualizar construir y documentar las partes de un sistema de software El lenguaje estaacute basado en un pequentildeo nuacutemero de conceptos centrales que la mayoriacutea de los desarrolladores de tecnologiacutea orientada a objetos pueden aprender y aplicar faacutecilmente [RUM99]

17

Marco teoacuterico

y UML Pasado Presente y Futuro

L~~ lenguajes de modelado orientado a objetos aparecieron a mediados de 10s 70rsquos Varias teacutecnicas influenciaron estos lenguajes El nuacutemero de lenguajes de modelado incrementoacute desde menos de 10 hasta maacutes de 50 entre 1989 y 1994 Muchos modeladores teniacutean problemas para encontrar un lenguaje de modelado que satisficiera todas sus necesidades Notablemente aparecioacute Boochrsquo93 y la evolucioacuten continuoacute a OMT y Fusioacuten

OOSE (Object-Oriented Software Engineering) estaacute enfocado a la ingenieriacutea de negocios y anaacutelisis de requerimientos dando un excelente soporte orientado a casos de uso OMT-2 es especialmente expresivo para anaacutelisis y sistemas de informacioacuten de datos grandes Boochrsquo93 fue particularmente expresivo para el disentildeo y fases de construccioacuten de proyectos y popular para aplicaciones de ingenieriacutea intensiva

Grady Booch y Jim Rumbaugh iniciaron el desarrollo de UML en 1994 al unificar sus meacutetodos independientes Booch y OMT En 1995 Ivar Jacobson se unioacute a Racional eacutesta unioacuten logroacute que el meacutetodo OOSE se incorporara La unificacioacuten establecioacute que debiacutean activar el modelado de sistemas utilizando conceptos orientados a objeto asiacute como crear un lenguaje usable tanto para las maacutequinas como para los humanos

A

Muchas organizaciones se unieron al consorcio UML y dedicaron recursos al trabajo hacia el fortalecimiento de la definicioacuten de UML Esta colaboracioacuten produjo un lenguaje de modelado expresivo poderoso y generalmente aplicable En la forma actual de UML se espera que sea base de muchas herramientas incluidas las de modelado visual simulacioacuten y ambientes de desarrollo

R UML es abierto y no-propietario y aunque define un lenguaje preciso no es barrera para futuras mejoras en conceptos de modelado Se usan muchas teacutecnicas de punta pero se esperan teacutecnicas adicionales que influencien futuras versiones de UML puede ser extendido sin redefinir el nuacutecleo

c

Mientras el rehuacuteso basado en componentes se ha favorecido ampliamente cada vez mas esto no significa que las teacutecnicas basadas en componentes reemplazaraacuten las teacutecnicas orientadas a objetos Hay solo sutiles diferencias entre la semaacutentica de componentes y clases [ALC03]

Un opaco rendimiento caracterizoacute el mercado de anaacutelisis modelado y disentildeo en el 2000 en su transicioacuten de las viejas herramientas CASE (Computer Aided Software Engineering) a algo maacutes dinaacutemico y mejor adaptado para satisfacer las necesidades de los desarrolladores para el cambio raacutepido en los ambientes de negocio

El mercado de anaacutelisis modelado y disentildeo lograraacute obtener un crecimiento positivo en varios de los siguientes antildeos por varias razones El mercado seraacute manejado principalmente por la necesidad de desarrolladores a obtener aplicaciones para lanzarse al mercado raacutepidamente asiacute tambieacuten por el intereacutes creciente y uso de una nueva especie de herramienta y por el intereacutes creciente de los desarrolladores en usar UML reglas de negocios y adaptadores de componentes para construir aplicaciones [RIKUI]

z -

18

Marco teoacuterico

UML se ha hecho el estaacutendar para los desarrollos de modelado de negocios administracioacuten de requerimientos anaacutelisis y disentildeo programacioacuten y pruebas Los objetivos primarios de UML en el disentildeo [RAT97j

o Dar a los usuarios un lenguaje visual expresivo de modelado listo para usarse para que puedan desarrollar y cambiar los significados de sus modelos

o Suministrar mecanismos de extensibilidad y especializacioacuten para extender los conceptos centrales

o Ser independiente de lenguajes de programacioacuten particulares y procesos de desarrollo

o Impulsar el desarrollo de las herramientas Orientadas a Objeto en el mercado o Soportar conceptos de desarrollo de alto nivel como colaboracioacuten marcos de

componentes reutilizables patrones y componentes o Integrar las mejores praacutecticas

9 El aacutembito de UML

UML es un lenguaje para especificacioacuten construccioacuten visualizacioacuten y documentacioacuten de artefactos de un sistema de software UML es la fusioacuten de los conceptos de Booch OMT y OOSE El resultado es un simple comuacuten y ampliamente usado lenguaje de modelado para usuarios de estos y otros meacutetodos UML se enfoca en un lenguaje de modelado estaacutendar no en un proceso estaacutendar los autores de UML recomiendan un proceso de desarrollo manejado por casos de uso de arquitectura central iterativo e incremental [iiquest4T97l

Para la definicioacuten de sistemas de software en UML se definen diagramas Un diagrama es la representacioacuten graacutefica de un conjunto de elementos este se visualiza la mayoriacutea de las veces como un grafo conexo de nodos (elementos) y arcos (relaciones) Los diagramas se dibujan para visualizar un sistema desde diferentes perspectivas de forma que un diagrama es la proyeccioacuten de un sistema uumlML incluye nueve diagramas [B0099]

4 -

I Diagrama de clases 2 Diagrama de objetos 3 Diagrama de casos de uso 4 Diagrama de secuencias 5 Diagrama de colaboracioacuten 6 Diagrama de estados 7 Diagrama de actividades 8 Diagrama de componentes 9 Diagrama de despliegue

Diagramas de secuencias Un diagrama de secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten comportamiento

Un diagrama de secuencias muestra un conjunto de mensajes acomodados en una secuencia de tiempo eacuteste diagrama muestra la interaccioacuten en un esquema de dos - dimensiones [RUM99]

19

Marco teoacuterico

Y -

Un diagrama de secuencia es un diagrama de interaccioacuten que resalta la ordenacioacuten temporal de los mensajes Un diagrama de secuencia presenta un conjunto de objetos y los mensajes enviados y recibidos por ellos Los objetos suelen ser instancias (con nombre o sin nombres) de clases pero tambieacuten pueden representar instancias de otros elementos tales como colaboraciones componentes y nodos Los diagramas de secuencia se utilizan para describir la vista dinaacutemica de un sistema [B0099]

Usar los diagramas de secuencia es mostrar la secuencia que existe en un caso de uso [RUM 991

Los diagramas de secuencia tienen dos dimensiones Una dimensioacuten que representa el tiempo Otra dimensioacuten que representa los diferentes objetos que participan en la secuencia de eventos requeridos para completar el propoacutesito [MOuuml98]

El principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildea las interacciones de los objetos [DAN02]

20

Capiacutetulo 3

DesawoCCo de Ia herramienta

En este capiacutetulo se describe el desarrollo del Ambiente Visual Se describe el modelo conceptual del sistema la arquitectura asiacute como tambieacuten los elementos que componen la Arquitectura Se estudian los Diagramas de Secuencias de UML y algunos Patrones de Disentildeo de los que se hace uso para el mejor desarrollo del sistema Se describe a detalle la Gramaacutetica Visual Relaciona1 utilizada para el de Ambiente de desarrollo

I CENIOET 1FNTRO DE INFORMACION

Desarrollo de la herramienta

t i i

Actualmente existe en el cenidet un Ambiente Visual de Modelado de Clases llamado InverSOODA este Ambiente Visual tiene la capacidad de realizar la generacioacuten automaacutetica de coacutedigo de las clases en C++ a partir del modelo especificado Ademaacutes se puede realizar la Ingenieria Inversa de un coacutedigo legado para obtener el modelo de clases Aunado a este trabajo existe el Ambiente Visual denominado InverDDVi con el cual se puede realizar el Disentildeo Detallado de los Meacutetodos de las Clases con diagramas de Warnier Asiacute tambieacuten es posible obtener el modelo aplicando la Ingenieriacutea Inversa a un coacutedigo legado en C++

Ambos trabajos son retomados en este proyecto para la automatizacioacuten en la obtencioacuten de los Diagramas de Secuencias de UML La figura 31 muestra el modelo propuesto de ingenieriacutea directa

Extraer informacioacuten del diagrama de

rsquo rsquo

Diagrama de 11 clases I o

detallado de

detallado de

o meacutetodos

i ir---- Construir el

secuencias i

Modelo de Ingenieriacutea I directa automaacutetica

I

Figura 31 Modelo de Ingenieria Directa Autombtica de los Diagramas de Secuencias

Para la construccioacuten automaacutetica de un diagrama de secuencias se toma como base a un diagrama de Clases El modulo ldquoExtraer informacioacuten del diagrama de Clasesrdquo sirve para obtener el nombre y los meacutetodos descritos en cada uno de las clases que existan en el diagrama de Clases

22

Desarrollo de la herramienta

Con base en la informacioacuten que se tiene se abren los archivos correspondientes a los diagramas de Warnier El proceso que se emplea sobre cada uno los diagramas de Warnier llamado ldquoExtraer informacioacuten de los disentildeos detallados de los meacutetodosrdquo sirve para recopilar el conjunto de las llamadas de cada meacutetodo definido

En el siguiente paso (ldquoReconocer llamadas a meacutetodosrdquo) consiste en identificar si los meacutetodos que estaacuten descritos en los diagramas de Warnier tambieacuten lo estaacuten en el diagrama de Clases correspondiente

El paso ldquoConstruir los diagramas de secuencias automaacuteticamenterdquo realiza una validacioacuten de los meacutetodos definidos en los diagramas de Clases con los meacutetodos definidos en los diagramas de Warnier Este paso crea una estructura de datos con la secuencia de las llamadas y la recorre para crear los objetos y los mensajes en el diagrama de secuencias

AI terminar la creacioacuten automaacutetica del diagrama de secuencias se dispone de la r opcioacuten de guardar

31 Disentildeo de la Arquitectura

Para definir los procesos que el sistema va a realizar es necesario llevar a cabo un anaacutelisis de requisitos los cuales pueden ser expresados mediante diagramas de Casos de Uso Los Casos de Uso son una descripcioacuten textual narrativa de los procesos de un sistema

311Requisitos (Diagrama de Casos de uso)

Los casos de uso en realidad no son un artefacto de anaacutelisis orientado a objetos estos describen simplemente procesos y pueden ser igualmente efectivos en un proyecto tecnoloacutegico no orientado a objetos Son usados en un paso preliminar a la descripcioacuten de requerimientos de un sistema [LAR971 La Figura 32 muestra el diagrama de casos de uso que especifica al S3C

9

S3C (Diagramas de Secuencias)

usuario I Modelado de

I

Figura 32 Diagrama de Casos de Uso para el S3C

23

Desarrollo de la herramienta

Descripcioacuten de los Casos de Uso

Caso de Uso ldquoDiagramas de Secuenciasrdquo Se inicia cuando el actor ldquousuariordquo solicita la creacioacuten de un Diagrama de Secuencias Se establece la forma de la construccioacuten automaacutetica de los diagramas de secuencias de UML Se hace uso del Modelado de Clases y del Modelado del disentildeo detallado de los meacutetodos

Escenario de Eacutexito 1 Se obtiene la informacioacuten de las clases del modelado de clases 2 Se obtiene la informacioacuten del modelado del disentildeo detallado de los meacutetodos 3 Se realiza la construccioacuten automaacutetica de los diagramas de secuencias

1 En el modelo de clases no hay informacioacuten o estaacute incompleta 2 En el modelo del disentildeo detallado de los meacutetodos no hay informacioacuten o estaacute

incompleta

Escenario de Falla

Caso de Uso ldquoModelado de Clasesrdquo El diagrama de Clases se utiliza para obtener los nombres de clases y los nombres de los meacutetodos de cada clase

Escenario de Eacutexito 1 Se abre el modelo 2 Se procesa para obtener la informacioacuten de las clases (nombres de clases y nombres

de meacutetodos)

Escenano de Falla h 1 No se puede abrir el modelo J 2 El modelo esta vaciacuteo

Caso de Uso ldquoModelado del Disentildeo detallado 1 los meacutetodosrdquo El disentildeo detallado de los meacutetodos se realiza con diagramas de Warnier aquiacute se establecen las llamadas a funciones dentro del sistema y es aquiacute donde se identifica el dinamismo que se representaraacute en los diagramas de secuencias

Escenario de Eacutexito 1 Se abre el modelo 2 Se realiza la identificacioacuten de las llamadas existentes

Escenario de Falla 1 No se puede abrir el modelo 2 El modelo esta vaciacuteo

24

Desarrollo de la herramienta

Clase Objeto ni I Diagrama I n ____ Nombre Descripcioacuten

i

Mensaje

Tipo

En el Anaacutelisis Orientado a Objetos se crea una especificacioacuteii del dominio del problema y de los requeriinientos desde la perspectiva de una clasificacioacuten por objetos y del entendimiento de los teacuterminos usados en el dominio del problema Una descomposicioacuten del dominio del problema involucra una identificacioacuten de conceptos atributos y asociaciones que son considerados importantes dentro del dominio El resultado puede ser expresado en un Modelo Corzcepttraf el cual es ilustrado en un conjunto de diagramas que definen conceptos (objetos) [LAR97]

312Modelo Conceptual

El modelo conceptual visto en la Figura 33 no es una descripcioacuten de componentes de software representa conceptos en el domino del problema en el mundo Teal [LAR97l

313Diagramas de clases

Por cuestiones dc espacio las clases de la arquitectura del sistema estaraacuten referidas en varios diagramas que de alguna manera estaacuten relacionados entre si

Una de las partes maacutes importantes del Ambiente Visual S3C es la estructura de clases ltCCraJicogt la cual se refiere al control de los diagramas eacutesta por su naturaleza podriacutea considerarse el nuacutecleo del sistema La manipulacioacuten y control de los diagramas estaacute definido en una estructura de clases organizada con el patroacuten de disentildeo Composite que se muestra en la Figura 34

25

Desarrollo de la herramienta

CRecursividadDS CMensajeDS CObjetoDS CDiagramaDS

I Cvisitor I

CApuntadorDS CDblClickDS CAsocAdjusterDS CSelectorDS

26

Desarrollo de la herramienta

n 32 Elementos de la arquitectura

Es necesario describir los elementos que dan soporte a la arquitectura del ambiente donde se implementaraacute el sistema en este caso Microsoft Visual (MV) C++ 6 El MV C++ es un marco de aplicacioacuten poderoso basado en Windows se integran ademaacutes del lenguaje C++ (compilador y enlazador) el programa de desarrollo de programas en lenguaje C para Windows (SDK) la Microsoft Foundation Class Library AppWizzard Classwizard AppStudio y WorkBencli

La Microsoft Foundation Class Library comprende una biblioteca de clases de C++ y es considerada como el nuacutecleo del MV C++

321Microsoft Foundation Class (MFC)

La libreriacutea Microsoft Foundation Class (MFC) es una interfaz orientada a objetos que tiene las siguientes metas de disentildeo

o

Reduccioacuten significante de esfuerzo al escribir una aplicacioacuten para Windows Velocidad de ejecucioacuten comparable a las APIrsquos del lenguaje C Miacutenimo tamantildeo de coacutedigo Capacidad para llamar cualquier funcioacuten de Windows en C directamente Faacutecil conversioacuten de aplicaciones existentes en C a C++ Faacutecil uso de APIrsquos de Windows con C++ como con C Faacutecil uso de complicadas caracteriacutesticas de abstracciones poderosas como ActiveX soporte para base de datos impresioacuten barras de herramientas y barras de estado El API de Windows en C++ si usa tan efectivamente como las caracteriacutesticas mismas del lenguaje C++

La mayoriacutea de las clases de la Libreriacutea de la Microsoft Foundation Class son derivadas de una clase base ltCObjectgt que es la raiacutez de la jerarquiacutea de clases ltCObjectgt da uacutetiles capacidades a las clases que derivan de ella

La jerarquiacutea que existe en las clases derivadas de ltCObjectgt es la siguiente

Arquitectura de Aplicacioacuten Excepciones Servicios de Archivos Arreglos Listas Mapas Servicios de Internet Sockets Sincronizacioacuten Soporte para base de datos D A 0

27

Desarrollo de la herramienta

i

r

Liacutenea de Comandos Menuacute Dibujo Graacutefico Dibujo Graacutefico de Objetos Soporte de Control Soporte de Ventanas

Soporte para base de datos ODBC

o Marco de Ventanas o Barras de control o Hojas de propiedades o Cajas de Dialogo o Vistas o Controles

322Arquitectura Documento Vista

Por defecto las aplicaciones creadas con la MFC usan un modelo de aplicacioacuten que separa los datos del programa de las vistas de interaccioacuten con el usuario En eacuteste modelo un objeto documento de MFC lee y escribe datos en un almacenamiento persistente Un objeto vista administra el despliegue de datos suministrando al usuario los datos para ser seleccionados o editados La vista le comunica al documento cualquier cambio en los datos La razoacuten maacutes conveniente para seguir este modelo es cuando se necesita muacuteltiples vistas del mismo documento (como en una hoja de caacutelculo y un graacutefico)

La arquitectura documentovista hace faacutecil el soporte de muacuteltiples vistas y muacuteltiples tipos de documentos asiacute como la divisioacuten de ventanas y otras caracteriacutesticas de interfaz de usuario Pero el corazoacuten de la arquitectura son cuatro clases (Mostradas en el aacuterbol de clases de la Figura 36)

ltCDocumerrtgt (o ltCOleDocuinentgt) - Se instancia un objeto de este tipo para almacenar y controlar los datos del programa ltCViewgt (o una de sus clases derivadas ltCScrotlViewgt ltCFormViewgt ltCEditView ltCRecordViewgt ltCDaoRecordView ltCtreeViewgt ltCListViewgt b ltCrichEditViewgt) - Un objeto es usado para desplegar los datos y administrar la interaccioacuten del usuario con los datos ltCFrameWndgt (o una de sus variantes) - Establece el marco sobre el que trabajaraacuten una o mas vistas de un documento ltCDocTemolategt (o ltCSingIeDocTemplategt o ltCMultiDocTemplategt) - Coordina la existencia de uno o maacutes documentos de un tipo dado y administra la correcta creacioacuten de los documentos vistas y objetos ventanas para cada tipo

i

28

Desarrollo de la herramienta

______________ 2 Wiew

I - - __ - ------a ________________

323Integrando Ambientes en Visual C t t

Las aplicaciones de Interfaz de Documento Uacutenico (SDI) soporta muacuteltiples tipos de documentos pero este soporte es para un solo objeto documento Debido a esta restriccioacuten y aunado a la necesidad de tener varios objetos documentos a la vez se determina la utilizacioacuten del modelo Interfaz de Muacuteltiples Documentos (MDI) indicado en la Figura 37

324Interfaz de Muacuteltiples Documentos (MDI)

Una aplicacioacuten de Interfaz de Muacuteltiples Documento (MDI) permite la creacioacuten de plantillas para el manejo de los documentos eacutesta plantilla tiene la forma

rn-pDocTemplate = new CMultiDocTernplate ( I DR-SCUMLTY PE RUNTIME-CLASS (CSCUMLDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CTheView))

AddDocTernplate ( rn-pDocTemplate )

Cada plantilla describe una relacion del tipo de documento con la vista asociada La definicioacuten de la plantilla para el ambiente que controla los diagramas de secuencias es la siguiente

29

Desarrollo de la herramienta c

m-pTernplateSeqDlag = new CMultiDocTernplate ( IDR-DS-SJCTYPE RUNTIME-CLASS (CSeqDiagDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CSeqDiagView) )

AddDocTernplate( rn-pTernplateSeqDiag )

Esta plantilla hace uso de la clase CCliildFrame que por defecto el ambiente Visual C++ construye y esto es debido a que no se requieren caracteriacutesticas extras en las ventanas de las que proporciona dicha clasc En un caso en el que se requiriera un comportamiento diferente de la vista tendriacutea que crearse una nueva clase con las caracteriacutesticas deseadas

Vista Documento

Vista

I- Vista Documento I [ Tip- F Vista

L Figura 37 Modelo Interfaz de Muacuteltiples Documentos (MDI)

Para integrar otro Ambiente que utilice otro tipo de documento es necesario definir otra plantilla de la misma forma mencionada Debe tomarse en cuenta los siguientes puntos

Es necesario definir el nombre (mqTemplateNOMBRE) El IDR del tipo que se requiere que sea el documento En la primera liacutenea RUNTIME CLASS debe indicar la clase ltCDocumentgt que desea La segunda liacutenea RUNTIME-CLASS soacutelo la cambia a otra clase si requiere de otro manipulador de ventanas de lo contrario deje que ltCChildFramegt se haga cargo

-

30

Desarrollo de la herramienta

En la uacuteltima liacutenea referente a RUNTIME-CLASS se debe indicar la clase ltCViewgt que desea usar Para finalizar se usa la instruccioacuten AddDocTernplate para finalizar la definicioacuten del template (mgTemplateNOMBRE)

325 Recursos Diaacutelogos Mertuacutes y Barras de Herrattriertias

Son varios los recursos con los que se puede contar al crear un proyecto en Microsoft Visual C++ Los diaacutelogos son un recurso disponible que son utilizados para visualizar ingresar yo modificar informacioacuten que se requiera En el Ambiente Visual que se desarrolla son varios los diaacutelogos que se utilizaraacuten y eacutestos se describen a continuacioacuten

El Diaacutelogo ldquoCaracteriacutesticas del Obietordquo (Figura 38) identifica el nombre del Objeto y la descripcioacuten del mismo Este diaacutelogo se muestra cuando se presiona doble clic sobre un objeto del diagrama

I Nombre

Desciipcion

Figura 38 Dialogo Caracteriacutesticas del Objeto

El Diaacutelogo ldquoMensaierdquo (Figura 39) muestra el nombre del mensaje que puede ser modificado ademaacutes se visualizan el Identificador del Mensaje el tipo de Mensaje asiacute tambieacuten el origen y destino del mensaje

31

Desarrollo de la herramienta

Nornbie delMensaje Edit

IDentificador del Mensaje Edil Tipo de Mensaje (Edil

Edit Objeto Origen

Objeto Destino IEdit

i25El A Figura 39 Dialogo Mensaje

El menuacute es otro de los recursos del que se puede disponer para organizar el ambiente que se estaacute creando Para eacuteste caso en particular no se hizo modificaciones al menuacute estaacutendar (Figura 310) que Visual C++ presenta Los cambios significativos son el manejo del tipo de documento para los Diagramas de Secuencias

Archivo Editar Yer VenLana AyGda

Figura 310 Menuacute de los Diagramas de Secuencias (estaacutendar)

Otro importante recurso del que uno se puede valer en Visual C++ es la barra de herramienta personalizada la cuaacutel es construida en el Editor de Recursos Se ha construido una barra (Figura 311) con los elementos graacuteficos de los Diagramas de Secuencia de UML

Figura 311 Barra de Herramientas de los Diagramas de Secuencias

Es recomendable que al utilizar barras de herramienta personalizada se defina en el tamantildeo estaacutendar ya que puede experimentar problemas al momento de ejecutar la aplicacioacuten

Ademaacutes puede usar la propiedad TBBS-CHECKGROUP en una barra de herramientas para establecer que los botones puedan quedar presionados hasta que un botoacuten diferente sea presionado No olvide que la numeracioacuten inicia con cero ( O )

vuriableToolBurSetButtonStyle(OTBBSCHECKGROUP)

32

Desarrollo de la herramienta

Prefijo ID IDC IDD IDP IDR IDS

326 Notacioacuten estaacutendar

Los nombres descriptivos de los recursos se asocian a un valor uacutenico Para una mayor claridad eacutestos nombres mantienen un prefijo que describe el tipo de recurso asociado (vea la Tabla 31) [MIC99]

Tipo de Recurso Comandos de Menuacute Controles y recursos Cuadros de diaacutelogo Cadenas de solicitud para cuadros de mensaje Menuacute principal barras de herramienta tabla aceleradora y el icono Cadenas

IDR IDD IDC ID

200 - 299 3000 - 3999 34000 - 34999

Estos son los rangos de valores establecidos para el proyecto S3C Si se utiliza el coacutedigo fuente y se planea agregar otro proyecto verifisue que no se invadan estos nuacutemeros para evitar problemas

Para facilitar auacuten maacutes los trabajos futuros se ha definido una estructura de carpetas (ver Figura 312) para incluir en cada una las Clases correspondientes a cada tesis en desarrollo

33

Desarrollo de la herramienta

ill ~~ -

-I SCUML classes + U A N T L R + U App + 0 ClassDiagrams + 0 Common + a Java

t $2 SequenceDiagiams

+ WarnierDiagrams

iJ PackageDiagrams

12 StaterChartDiagrams

+

- f Classview I Resourceview 1 FileView ]

~ ~

Figura 312 Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)

327Estructura de datos persistencia y recuperacioacuten

Existe una gran cantidad de tipos de datos estructuras clases y meacutetodos de los que se puede hacer uso para una mejor y maacutes faacutecil obtencioacuten de los resultados A continuacioacuten hago comentarios en tipos de datos y meacutetodos en los que podriacutea tener problemas

CTypedPtrList

AI usar este tipo de dato o alguno relacionado que le permita utilizar el meacutetodo ltCTvrgtedPtrListGetNextgt tenga especial precaucioacuten al usarlo ya que al devolver el valor requerido la variable POSITION usada no se queda apuntando a ese valor en particular salta al inmediato siguiente de la lista

Si se realiza una creacioacuten dinaacutemica con punteros para los elementos de una CTypedPtrList Despueacutes de haberlo agregado a la lista evite el delete para borrar esta Usted deseando liberar la memoria no lo haga ya que eliminara directamente el elemento de la lista

POSITION

Es un valor usado para denotar una posicioacuten de un elemento en una coleccioacuten Pero CUIDADO no se refiere a un iacutendice es una referencia (no consecutiva) de punteros muy diferente a un iacutendice

CString

Auacuten cuando el operador de comparacioacuten == (igual a) es permitido para ser utilizado en las cadenas evite su uso ya que en ocasiones aunque cuando la e

34

Desarrollo de la herramienta

compilacioacuten no indique error alguno en la ejecucioacuten no realizaraacute lo que se necesita Recomiendo que utilice CStringCompare ()

Para eliminar el contenido de un CString utilice CStringEmpty() ya que asignar a la cadena un ldquonrdquo podriacutea causarle problemas

Serializacioacuten

Una forma en que se puede guardar informacioacuten y recuperarla de manera eficaz es mediante la serializacioacuten de objetos La serializacioacuten es un proceso que permite escribir un objeto en un archivo y tambieacuten leerlo

Para que la serializacioacuten se lleve a cabo son necesarios tres objetos un objeto de tipo ltCFilegt que represente el archivo un objeto de tipo ltCArchivegt que ofrece el entorno para la serializacioacuten y la clase del objeto a ser serializado debe ser heredada de ltCObjectgt y sobrescribir el meacutetodo ltSerializegt para que se encuentre de tal forma en que pueda ser serializado (vea la Figura 313)

Objeto a ser serializado 1

1 CArchive

[f --=I- ---7 Archivoexi

u Figura 313 Serializacioacuten

328Patrones de disentildeo utilizados

Se ha planteado la definicioacuten de una arquitectura de clases utilizando patrones de disentildeo debido a que algunos de ellos hacen maacutes faacutecil la extensioacuten de la funcionalidad y mantenimiento

35

Desarrollo de la herramienta

El patroacuten Composite es utilizado para crear de manera uniforme el diagrama sobre el que se trabaja (ver Figura 34) manteniendo una jerarquiacutea de clases uniforme las clases maacutes bajas en la jerarquiacutea definen primitivas de objetos graacuteficos

Se aplica el patroacuten de disentildeo Iterator para hacer recorridos en listas de objetos para realizar diversas operaciones Otro patroacuten de disentildeo del que se hace uso es el Visilor (ver Figura 35)

Para otras actividades que se realizan podriacutea pensarse en que se deberiacutean aplicar otros patrones pero se han evitado algunos (como el patroacuten de disentildeo Builder) para evitar incrementar la complejidad en la arquitectura ya que ai mantener el modelo de la MFC de documentovista la funcionalidad del patroacuten de disentildeo Builder es faacutecilmente reemplazado si se hiciera Uso de eacuteste se aumentariacutea la complejidad excesivamente (nos llevariacutea a perdemos en ocasiones en el paso de mensajes entre clases) dantildeando la facilidad de la arquitectura

33 Diagrama de secuencias

Un Diagrama de Secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten escenario Oacute comportamiento se usan para definir el curso loacutegico de accioacuten de un posible camino a seguir en la resolucioacuten de un problema Seguacuten John Daniels [DANO2] ldquoel principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildean las interacciones de los objetosrdquo

Los Diagramas de Secuencias se utilizan en el modelado de la implementacioacuten de sistemas de software ademaacutes son aplicables en el modelado de requisitos para establecer las comunicaciones existentes entre actores yo clases del sistema Con eacutestos diagramas se logran hacer descripciones de los escenarios y los comportamientos del sistema Con los Diagramas de Secuencias es posible definir protocolos de comunicacioacuten con paso de mensajes ya que dan esa flexibilidad que se requiere Ademaacutes los Diagramas de Secuencias contienen informacioacuten suficiente para que puedan ser transformados a los diagramas de colaboracioacuten [RUM Ol][BOO Oil

331Ciclo de vida del software

Considerando cualquier modelo de ciclo de vida del software (en la figura 314 se muestra el Modelo de cascada) el aacutembito directo de eacuteste Ambiente Visual es en el disentildeo aunque tiene sus vertientes en la codificacioacuten y mantenimiento

36

Desarrollo de la herramienta

Diseno

Codificacibn

I I I I Mantenimiento I

igura 314 Modelo de cascada del ciclo de vida del software

34 Elementos atoacutemicos de la Gramaacutetica

Definicioacuten de los elementos atoacutemicos del lenguaje y su contenido

1 Actor- Representa roles de entidad externos al sistema con el que interactuacutea directamente Los actores pueden ser humanos dispositivos u otros sistemas

2 ClaseObjeto- Determina una Clase u Objeto participante en la interaccioacuten

3 Mensaje-Es una comunicacioacuten entre objetos que contiene informacioacuten Eacuteste se representa con la finalidad a que una accioacuten sea llevada a cabo

4 Mensaje con tiempo- Tiene la misma finalidad que el mensaje la diferencia es que con eacutel se representa un atributo de tiempo

5 Mensaje asiacutencrono Es un mensaje que ocurre en el tiempo de manera independiente a otros mensajes

6 Mensaje de destruccioacuten de objeto- Es un mensaje cuya finalidad es indicar la destruccioacuten del objeto destino

7 Mensaje de creacioacuten de objeto- Es un mensaje que indica la creacioacuten de un objeto

8 Llamada al mismo objeto (Recursividad)- Es usado para modelar llamadas recursivas en el que una operacioacuten es invocada por el mismo objeto

37

Desarrollo de la herramienta

9 Destruccioacuten del objeto (AutodestrucciOacuten)- Puede o no modelarse es representada con una X al final de la liacutenea de vida del objeto

Elementos aulomaacuteticos

1 Liacutenea de Vida- Representa la vida del objeto durante la interaccioacuten

2 Activacioacuten- Muestra el periacuteodo de tiempo en el cual el objeto alguna operacioacuten

341RepresentaciOacuten visual

Representacioacuten visual de los elementos atoacutemicos del lenguaje

Actor

_- A

Mensaje

Mensaje de Creacioacuten de

Objeto

ClaseObjeto

I

Mensaje de retorno

Mensaje de Destruccioacuten de

Objeto

abla 32 Element(

Activacioacuten

Mensaje con tiempo

Autodestruccioacuten

x

atoacutemicos del lengi

taacute realizz

Texto ===I (letra)+ (letra I

numero) letra= AZ I az numero = 09

I

Recursividad ~

I

i j e

io

38

u

Comentario

iexcl

Conector de Comentario

35 Gramaacutetica desarrollada

La gramaacutetica que se propone es una gramaacutetica visual del tipo relacional Una gramaacutetica relacional pertenece a las gramaacuteticas libres de contexto es una 6-iupla G (N C S R Attr P) donde

N es un conjunto finito de siacutembolos no terminales C es un conjunto de siacutembolos terminales S es un siacutembolo distinguido en N llamado siacutembolo inicial R es un conjunto finito de siacutembolos de relacioacuten Attr es un conjunto finito de siacutembolos de atributos P es un conjunto de producciones

Entonces definiendo nuestra gramaacutetica G (N C S R Attr P)

N = Diagrama GrupoClaseObjeto

S = Diagrama

R = mensaje mensajeTiempo mensajeRetomo mensajeAsincrono mensajecrea mensajeDestruye autodestruccioacuten recursividad

R

Attr = entrada salida entradacrea

39

Desarrollo de la herramienta

Definiendo la posicioacuten de los atributos en los elementos visuales

entradacrea ObetaClase

entrada

salida

P =

Diagrama I GrupoClaseObjeto (mensaje (mensajeRetorno

(salida 1) (entrada 2) ) (salida 2) (entrada 1) )

- Diagrama 0 GrupoClaseObjeto

(mensaje (mensaje (mensajeRetomo (mensajeRetomo (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entradacrea 2) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 1) ) (salida 1) (entrada 1) )

entrada

salida

40

Desarrollo de la herramienta

s

-

GrupoClaseObjeto - 1 1 I 2 (mensaje (mensaje (mensajeRetorno (mensajeRetorno (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entradacrea 2) ) (salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 1) ) (salida I ) (entrada I ) )

1 En las gramaacuteticas relacionales una produccioacuten estaacute acompantildeada de las posibles

relaciones que puedan generarse En la primera produccioacuten Diagrama produce a un Actor seguida de un GrupoClaseObjeto el Actor inicia la interaccioacuten con un mensaje y recibe el mensaje de retorno al finalizar la interaccioacuten La segunda y tercera produccioacuten son similares debido a que un GrupoClaseObjeto contiene dos ClaseObjeto que se relacionan de la misma forma

Existe un elemento de la gramaacutetica llamado Attr (Atributo) el cual define la parte de los elementos visuales donde se establecen las relaciones Se han determinado dos atributos (entrada y salida) que para nuestro propoacutesito estaraacuten establecidos en la liacutenea de vida de cada elemento visual (Actor y ClaseObjeto)

Los Comentarios y la Activacioacuten no se consideran en la gramaacutetica Los comentarios son libres de incluirse y relacionarse con cualquier elemento y relacioacuten mencionada anteriormente y la activacioacuten existe siempre que se presente un mensaje (o podriacutea omitirse) Estas consideraciones se realizaron para hacer auacuten maacutes faacutecil la gramaacutetica ya que si se trata de realizar un sistema las restricciones de estos elementos pueden mantenerse en el lenguaje de programacioacuten en el que se desarrolle el sistema

36

Precondiciones

El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias

1 El diagrama de Clases debe existir y estar completo 2 Debe existir un archivo con un diagrama de Warnier por cada diagrama de Clases y

con el mismo nombre de archivo (excepto la extensioacuten del archivo) 3 En el uacutenico diagrama de Warnier de cada Clase se deben modelar todos los meacutetodos

de la Clase 4 No realizar declaraciones de meacutetodos

41

Desarrollo de la herramienta

5 Debe existir un meacutetodo lsquomain()rsquo en el diagrama de Clases

Restricciones

Los meacutetodos deben mantener nombres distintos en las diferentes Clases

Metodologiacutea para la obtencioacuten automaacutetica de los Diagramas de Secuencias

1 Seleccionar el diagrama de Clases

2 Se construye una lista con los nombres de las Clases y los Meacutetodos

3 Se verifica si exista el meacutetodo lsquomain()rsquo en alguna Clase Se busca la existencia de una uacutenica Clase

a La Clase que contenga lsquomain()rsquo se va al inicio de la lista de Clases

b Si no existe lsquomain()rsquo SE TERMINA EL PROCESO

4 Se verifica la existencia de los archivos que contienen el Disentildeo Detallado de los meacutetodos en Wamier para cada una de las Clases si alguno falta SE TERMINA EL PROCESO

5 Se procesa cada uno de los modelos del Disentildeo Detallado de los Meacutetodos generando una lista de secuencias de llamadas por cada uno de los meacutetodos

6 Se verifica que cada llamada corresponda a alguacuten meacutetodo existente (del diagrama de Clases) De no existir ese meacutetodo la llamada entra a una estructura que

7 Se crea una lista de secuencia

a Se inicia con lsquomain()rsquo b Se recorre cada una de las llamadas de los meacutetodos c Se considera invaacutelido el caso de que un meacutetodo intente una llamada

recursiva al meacutetodo lsquomain()rsquo

8 Se muestra un diaacutelogo de resultados en el que se indican las llamadas que no se encnotraron definidas y que pueden ser Llamada a libreriacutea oacute Llamada Erroacutenea

42

Capiacutetulo 4

Prue6as y su6taaacuteos

En eacuteste capiacutetulo se da a conocer el detalle de las pruebas y de los resultados obtenidos Se describen los casos de prueba con los que se realizoacute la evaluacioacuten del sistema asiacute tambieacuten se presentan comentarios acerca de los resultados obtenidos

Pruebas y Resultados

41 Recursos teacutecnicos utilizados

Para llevar a cabo las pruebas al sistema S3C se utilizaron los siguientes equipos de Coacutemputo

Computadora de escritorio

256MB RAM Disco Duro 80G Monitor 17rdquo SAMSUNG

AMD Athlon XP 1600+ I4Ghz

Computadora de escritorio Intel Pentium 4 - 128MB RAM Disco Duro 40G Monitor 15rdquo i -

42 Descripcioacuten del plan de pruebas

Las pruebas establecen el Uacuteltimo paso desde donde es posible evaluar la calidad y descubrir los errores Las pruebas y la validacioacuten del software se utilizan para comprobar que el sistema cumple con las expectativas del usuario

En esta seccioacuten se describen los casos de prueba que se realizaron al prototipo de S3C en conjunto a la suite cenidet-UML Para cada uno de los casos se presenta el objetivo el procedimiento que se siguioacute para la prueba y se muestran los resultados obtenidos - _

Las pruebas a realizar son los siguientes

Caso 1 Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Caso 2 Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Wamier

Caso3 Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Wamier

Caso4 Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo 5

44

Pruebas y Resultados

43 Resultados

431 Caso 1

5 Y

IZ =

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoSirdquo 4 Seleccionar el archivo ldquoVENTASrdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 41 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

s3c iuevo Proyecto SCUM1

Diagrama de clases

lvendedor I L

3

salida

venta prod

4 venia-oferta vcntaprod =

salida 6

Figura 41 Resultado del caso de prueba 1

45

Pruebas y Resultados

432 Caso 2

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Warnier (almacenwar cajawar vendedorwar) que ya cxisten (del caso de prueba I )

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoNordquo 4 Agregar las siguientes Clases con los respectivos meacutetodos y atributos

a Claseldquovendedorrdquo Meacutetodos ldquoventa mainrdquo b Claseldquoalmacenrdquo Meacutetodos ldquoentrada salidardquo c Claseldquocajardquo Meacutetodos ldquoventagrodrdquo

5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 42 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

Diagrama de daseo lisgrama dcsccucncis

MOIDOC Anivo

venta prod

salida

1 Ycrdquo1a 2

I 4 vcrdquolD~o1cn venta prod gt

salida 6 i Figura 42 Resultado del caso de prueba 2

46

Pruebas y Resultados

r

433 Caso 3

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Warnier

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 43 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

5

Error al tratar de abrir el archivo A bZwar

Aceptar i

Faltan Archivos de Disentildeos Detallados de Meacutetodos 1 1 A No se puede crear el diagrama de secuencias

Figura 43 Resultado del caso de prueba 3

47

Pruebas y Resultados

434 Caso 4

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 44 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

lsquo I

~ _ i i _ l _ Repaado ~~ ~ ~ 6~ ampA Figura 44 Resultado del caso de prueba 4

48

Pruebas y Resultados

PRUEBA DESCNPCION CASO 1 Mostrar la funcionalidad del

Sistema S3C a partir de un

44 Anaacutelisis de Resultados

RESULTADOS Se comproboacute la correcta funcionalidad del Sistema S3C a partir de un diagrama

CASO 3

CASO4

I diagrama de Clases cxistcnte I de Clases existente CASO 2 I Mostrar la funcionalidad del I Sc comproboacute la corrccta funcionalidad

Sistema S3C a partir de un del Sistema S3C a partir de un diagrama diagrama de Clases que se de Clases que se construye al momento construye al momento Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el Secuencias si falta alguno de los diagrama de Secuencia si falta alguno diagramas de Warnier Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el secuencias si hace falta el meacutetodo diagrama de Secuencias al faltar el ldquomain ()rdquo meacutetodo ldquomain()rdquo

de los diagramas de Warnier

Los resultados obtenidos de cada uno de los casos establecidos demuestran que se validoacute la funcionalidad del prototipo con los requisitos definidos en el alcance de este proyecto

a lt

49

Conclusiones y Tru6ajos Futuros

Aquiacute se dan a conocer las conclusiones y se describen los posibles trabajos futuros para la continuacioacuten de eacuteste proyecto

F

51 Conclusiones

Conclusiones y trabajos futuros

Se ha creado un Ambiente Visual que permite obtener de forma automaacutetica los Diagramas de Secuencias en base a los diagramas de Clases y al disentildeo detallado de los meacutetodos descritos con diagramas de Warnier cumpliendo con los objetivos planteados para este trabajo

La tesis aporta principalmente La generacioacuten automaacutetica de los diagramas de secuencias y la eliminacioacuten de inconsistencias al mantener una validacioacuten directa de los diagramas de clases y los diagramas de Warnier que son utilizados

Esta validacioacuten es lograda a traveacutes del uso de la gramaacutetica visual relaciona1 que se ha definido (veacutease el capiacutetulo 3) Esta gramaacutetica visual establece reglas para la correcta construccioacuten de los diagramas de secuencias

P De esta manera se establece que la hipoacutetesis ldquoEs posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodosrdquo Es verdadera

52 Trabajos Futuros

Un Diagrama de Secuencias puede convertirse en un Diagrama de Colaboracioacuten por lo tanto un trabajo futuro es la construccioacuten automaacutetica de un Diagrama de Colaboracioacuten a partir de uno de Secuencias existente

Es posible calcular la meacutetrica de acoplamiento al tener un Diagrama de Secuencias construido

La Ingenieriacutea directa de un Diagrama de Secuencias estableciendo la validacioacuten en la construccioacuten de todos los elementos visuales que UML define

La propagacioacuten de las modificaciones de un Diagrama de Secuencias a los Diagramas de Clases y los Diagramas de Warnier

La modificacioacuten del coacutedigo fuente mediante los cambios establecidos en un Diagrama de Secuencias

51

[ALC03]

[BLA98]

[B0099]

[BOOOi]

[BR097]

[CHA90]

[DAN02]

[GLA02]

[HAC98]

[HER03]

4

Alcate1 Computer Associates International inc Electronic Data Systems Corporation Hewlett-Packard Company IBM Corporation I-Logix IntelliCorp Kabira Technologies Kennedy Carter Microsoft Corporation Object Management Group Oracle Corporation Project Technology Ptech Inc Rational Software Corporation Reich Technologies Softeam Taskon A S Telelogic Unisys Corporation ldquoOMG Unified Modeling Language Specificationrdquo Version 15 Unified Modeling Language 2003

Blaha Michael Rumbaugh James Premerlani William Eddy Frederick Lorensen William ldquoObject-oriented modeling and designrdquo Prentice Hall 484 Paacuteginas ISBN 0-13-629841-9 QA-769-03S-B53-19981998

Booch Grady Rumbaugh James Jacobson Ivar ldquoEl lenguaje unificado de modeladordquo Addison Wesley 432 Paacuteginas ISBN 84-7829-028-1 1999

Booch Grady Rumbaugh James Jacobson Ivar ldquoThe Unified Modeling Language User Guiderdquo Addison Wesley 2001

Brown David ldquoAn introduction to object-oriented analysis objects in plain Englishrdquo John Whiley amp Sons Inc 700 Paginas ISBN 0-471-1 1028-0 QA-769-035-B76-1997 1997

Chang Shi-Kuo ldquoVisual Languages and visual programmingrdquo Plenum Press 340 Paacuteginas ISBN 0-306-43428-8 QA-7665-V57-1990 1990

Daniels John ldquoModeling with a sense of purposerdquo Design - IEEE Software JanuaryEebmary 2002

Glasgow Universidad Reino Unido ldquoA UML Editor in Javardquo (lthttplstudentsdcsglaacuWstudentspainjfproject-reportproject-re port-htmV4thYearReporthtrnlgt 2002)

T Hackos JoAnn C Redish Janice ldquoUser and Task Analysis for Interface Designrdquo Wiley Computer Publishing 488 Paacuteginas ISBN QA-769-U83- H33-1998 1998

Hemaacutendez Velaacutezquez M ldquoIngenieriacutea inversa de coacutedigo fuente en C++ para la obtencioacuten de su disentildeordquo Tesis AT-379 (03-0334) 2003

Conceptos generales

[HIX93]

[JAC93]

[JAC99]

[JOY98]

[LAR97]

[MAR]

[MIC99]

[MIC02]

[MOU98]

Hix Deborah Hartson H Rex ldquoDeveloping user interfacesrdquo 381 Paacuteginas ISBN 0-471-57813-4 QA-769-U83-H59-1993 1993

Jacobson Ivar Christerson Magnus Jonsson Patrik Overgaard Gunnar ldquoObject oriented software engineeringrdquo Addison Wesley ISBN 0-20 1 - 54435-0 QA-7676-D47-J63-1993 1993

Jacobson Ivar Booch Grady Rumbaugh James ldquoEl proceso unificado de desarrollo de softwarerdquo Addison Wesley 438 Paacuteginas ISBN 84-7829-036- 2 1999

Joyanes Aguilar Luis ldquoProgramacioacuten orientada a objetosrdquo McGruw Hill ISBN 84-481-0590-7 1998

Larman Craig ldquoAplying UML and Patternsrdquo Prentice Hull 507 Paacuteginas ISBN 0-13-748880-7 QA-769-035-L37-1997 1997

Marriot Kim Meyer Bemd ldquoVisual Language Theoryrdquo Springer 381 Paacuteginas P-935-V567-1998 1998

Microsoft ldquoMicrosoft Visual C++ 6 manual del programadorrdquo McGraw Hill ISBN 84-481-2127-9 QA-7673-Cl53-23718-1999 1999

Microsoft ldquoVisiordquo (lthttpwwwmicrosoftcomofficevisiogt 2002)

B Mourao Luis X ldquoUniversal Modeling Language Part 11 UML Notation - Case Sequence and Collaboration Diagramsrdquo Lan Times Magazine (~httpwwwlantimescomltpartsdiscussdiscuss6Ohtm~) 1998

No Magic ldquoMagicDrawrdquo (lthttpwwwmagicdrawcomgt 2002)

Object Insight ldquoJvisionrdquo (lthttpwwwobject-insightcomgt 2002)

Rational Software Microsoft I Hewlett-Packard Oracle Sterling Software MCI Systemhouse Unisys ICON Computing IntelliCorp i-Logix IBM ObjectTime Platinum Technology Ptech Taskon Reich Technologies Sofieam ldquoUML Summaryrdquo Version 11 Unified Modeling Language 1997

Rational ldquoRational Roserdquo (lthttpwwwrationalcomproductosrosegt 2002)

Rikki Kirzner ldquoAnalysis Modeling and Design Tools Market Forecast and Analysis 2001-2005rdquo Bulletin Published Under Services Application Design and Construction Tools Application Development and Deployment Strategies Documento Nuacutemero 24809 Junio 2001

53

Conceptos generales

[RIM92] Rimrner Steve ldquoGraphical user interface programmingrdquo 423 Paacuteginas

1992

Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language reference manualrdquo Addison Wesley 550 Paacuteginas ISBN 0-201-

ISBN 0-8306-2475-9 ISBN 0-8306-2472-4 (pbk) QA-769-083-R55G

[RUM99]

30998-X QA-7676-D47-R85-1999 1999

[RUM299] Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language user guiderdquo Addisoiz Wesley 482 Paacuteginas ISBN 0-201 -57 168-4 QA-7676-D47-B66-1999 1999

[SMA02] SmartDraw ldquoSmartDrawrdquo (lthttpwwwsmartdrawcomgt 2002)

[SHU88] 9 - Shu Nun C ldquoVisual Programmingrdquo Van Nostrand Reinhold ISBN 0-422- 28014-9 ISBN 0-422-01 164-4 QA-7665-S55 1988

[THI90] Thimbleby Harold ldquoUser Interface Designrdquo Acm press 470 Paacuteginas ISBN 0-201 -41 61 8-2 QA-769U83-T772~- 1990 1990

[WENO2] Wences Diaz MF ldquoModelo de Ingenieriacutea Inversa para la obtencioacuten de disentildeo detallado basado en LEVISSrdquo Tesis (02-0014) 2002

54

Anexo A

Conampuracioacuten de Microsoft Vkua[C++ 6 O

Este anexo indica las configuraciones que se utilizaron para la compilacioacuten de SCUML y s3c

Configuracioacuten de Microsoft Visual c++ 60

Debido a la integracioacuten de los proyectos de InverSOODA e InverDDVi con S3C se cumplioacute con los requisitos previos de ambos proyectos

El compilador usado en el proyecto fue el Microsoft Visual C++ 60

Para el cumplimiento con la funcionalidad de InverSOODA se instaloacute el ANTLR la versioacuten 271 Se descargoacute del sitio l i l l ~ ~ ~ ~ ~ ~ t l ~ l ~ - ~ t - ~ la versioacuten mencionada en un archivo comprimido (en formato zip) Se colocoacute el paquete descomprimido en el directorio ldquoDIANTLR-271 I rdquo

Recomiendo ampliamente que el directorio principal de ANTLR se copie en el directorio raiacutez de cualquier unidad de disco debido a que experimenteacute problemas de compilacioacuten cuando ANTLR no se encontraba en el directorio raiacutez

Io015

Source Browser AlttF12 I u c Ersquo V I

Visual Component Mgnager

- - ~ ~ ~ ~~

P2 Registrar control

A Contenedor de prueba de controles ActiveX

A Usor de objetos OLE y COM

Buacutesqueda de errores

A Y++ MFC Iracer

Customize options

~ - q- ~ Macro

Eecord Quick Macro Cbl+ShiR+R Pay Quick Macro Ctrl+ShiR+P

En el menuacute Tools (Herramientas) seleccione el sub-menuacute Options ltopcionesgt

56

Configuracioacuten de Microsoft Visual C++ 60

En la siguiente ventana de diaacutelogo debe agregar la direccioacuten en donde se encuentra el ANTLR

Agregar la ruta del directorio de ANTLR hasta el subdirectorio

libcpp

Editor I Tabs I Debug I Compatibility 1 Build Dneclolies I a I Chow directories for - Platfolm -

- Directories I x ) 4 jWin32 -] llnclude files

m cancd I

57

Configuracioacuten de Microsoft Visual C t+ 60

Se ha creado una libreriacutea (anrlrliblib) de ANTLR la cual ya estaacute situada en el directorio del proyecto SCUML (ISCUML) y no debe ser movida o eliminada

I

Geneial 1 Debug I CC++ Link I Category

Output file name bebugSCUMLexe

Objectljibrary modules 4 anllrliblib

li Generate debug lnfo r Ignore all defaull lbaries D ~ i n k j n ~ ~ ~ t a n ~ r ~ e n e r ~ ~ ~ mapfile

r Enable psafilrng

Proiec1 Ootionn

pq Cancel 1 Libreriacutea de ANTLR que debe existir 1 I para que se compile correctamente

58

Anexo B

~ u iacute aacute raacutepida de uso deC Sistema S3C

5 Este anexo indica de forma raacutepida la manera de utilizar S3C para crear un diagrama de secuencias de forma automaacutetica

Guiacutea Raacutepida de uso del Sistema S3C i

Para indicar la creacioacuten de un diagrama de secuencias en forma automaacutetica se debe ir a la barra del costado izquierdo y presionar ldquoNuevo Proyecto SCUMLrdquo

I s3c I ~ Nuevo Proyecto SCUML ~ _ _ - I Diagrama de clases ~ Diagrama de secuencias 1 MDI DOC Activo

-

Apareceraacute un documento llamado ldquoSCUMLV en donde el simbolo corresponde a un numero consecutivo iniciando desde 1 (uno)

$ e Despueacutes se presiona ldquoDiagrama de clasesrdquo Habraacute que para indicarle al sistema si se requiere abrir un diagrama de clases existente o realizar uno nuevo

i

iquestAbrir un documento existente

No Cardquo~ear

AI presionar ldquoSirdquo se debe indicar cual es el archivo del diagrama de Clases en el cuadro de diaacutelogo siguiente

~~ - 11dMis documentos rsquo 2 M i P C i lsquo h s sitios de red

I

AI presionar ldquoNordquo en ldquoAbrir un documento existenterdquo se nos mostraraacute un documento vacio para crear un diagrama de clases

60

Guiacutea Raacutepida de uso del Sistema S3C

Para ambas opciones se requiere que los diagramas de Wamier ya se encuentren construidos Y para continuar el proccso se selecciona el documento ldquoSCUMLVrsquo creado al inicio y despueacutes presionar el botoacuten nombrado ldquoDiagrama de secuenciasrdquo localizado en la barra de hcrraiiiicntas del costado izquierdo

Ha iniciado el proceso de construccioacuten del diagrama de secuencias Si no existen errores al terminar el proceso se le mostraraacute un cuadro de diaacutelogo llamado ldquoResultadosrdquo en donde le mostraraacute las llamadas de las que no localizoacute su definicioacuten

- - -

Cancel 1 D e las siguientes llamadas es posible que esten mal escritas o peitenezcan a la libreiia del Lenguaie Verifique ya que no se encontraron sus definiciones

A continuacioacuten se mencionan los posibles errores que finalizan el proceso de la creacioacuten automaacutetica de los diagramas de secuencias en S3C

Cuando no exista un meacutetodo lsquomainrsquo definido en el diagrama de clases

No se encontro el meacutetodo lsquomain()rsquo que inicie la secuencia I A No se puede crear el diagrama de secuencias

p==amp=q

61

Guia Raacutepida de uso del Sistema S3C

Cuando se definan niultiples metodos lsquoinainrsquo en el diagrama de clases

Multiples meacutetodos lsquomainOlsquo Imposible decidir el inicio de secuencia

Aceptar i

Si un meacutetodo definido en Wamier realiza una llamada a lsquomainrsquo se cancelara el proceso

Llamada NO VALIDA al meacutetodo principal main

(iAcp-j(

4 i

CI Y rdquoldquoldquoI i 11 1-T

IZNTRO Gt INFORMACION

62

  • Tabla de Contenido
  • Listado de Figuras
  • Listado de Tablas
  • Notacioacuten
  • Introduccioacuten
  • Capitulo 1 Conceptos Generales
    • 11 Antecedentes
    • 12 Trabajos relacionados
      • 121 Tabla comparativa
        • 13 Definicioacuten del problema
        • 14 Objetivo de la Tesis
          • Objetivos especiacuteficos de la tesis
            • 15 Hipoacutetesis de investigacioacuten
            • 16 Alcances y limitaciones del trabajo de tesis
              • Capitulo 2 Marco Teoacuterico
                • 21 Modelado de sistemas de software
                • 22 Interfaz de usuario (Mecanismos de interaccioacuten)
                • 23 Lenguajes Visuales
                • 24 Programacioacuten orientada a objetos
                • 25 Lenguaje de Modelado Unificado (UML)
                  • Desarrollo de la herramienta
                    • 31 Disentildeo de la Arquitectura
                      • 311 Requisitos (Diagrama de Casos de uso)
                        • 312Modelo Conceptual
                        • 313Diagramas de clases
                        • 32 Elementos de la arquitectura
                          • 321 Microsoft Foundation Class (MFC)
                            • 322Arquitectura Documento Vista
                            • 323Integrando Ambientes en Visual c++
                              • 324 Interfaz de Muacuteltiples Documentos (MDI)
                                • 325Recursos Diaacutelogos Menus y Barras de Herramientas
                                  • 326 Notacioacuten estaacutendar
                                  • 327 Estructura de datos persistencia y recuperacioacuten
                                    • 328Patrones de disentildeo utilizados
                                      • 33 Diagrama de secuencias
                                        • 331Ciclo de vida del software
                                          • 34 Elementos atoacutemicos de la Gramaacutetica
                                            • 341 Representacioacuten visual
                                              • 35 Gramaacutetica desarrollada
                                              • 36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias
                                                  • Capitulo 4 Pruebas y Resultados
                                                    • 41 Recursos teacutecnicos utilizados
                                                    • 42 Descripcioacuten del plan de pruebas
                                                    • 43 Resultados
                                                      • 431 Caso
                                                      • 432 Caso2
                                                      • 433 Caso
                                                          • Conclusiones y trabajos futuros
                                                            • Trabajos futuros
                                                            • Referencias
                                                            • Anexo A Configuracioacuten de Microsoft Visual C+t
                                                              • Figura 11 - Arquitectura de la suite cenidet-UML
                                                              • Figura 21 -Programacioacuten Visual
                                                              • Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de
                                                              • Figura 32 -Diagrama de Casos de Uso para el S3C
                                                              • Figura 33 -Modelo Conceptual
                                                              • Figura 34 - Diagrama de Clases -Control del Diagrama -
                                                              • Figura 35 - Diagrama de Clases - Patroacuten Visitor -
                                                              • Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento
                                                              • Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)
                                                              • Figura 38 -Dialogo Caracteriacutesticas del Objeto
                                                              • Figura 39 -Dialogo Mensaje
                                                              • Figura 3 IO - Menuacute de los Diagramas de Secuencias (estaacutendar)
                                                              • Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias
                                                              • Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)
                                                              • Figura 313 - Serializacioacuten
                                                              • Figura 314 -Modelo de cascada del ciclo de vida del software
                                                              • Figura 41 - Resultado del caso de prueba
                                                              • Figura 42 -Resultado del caso de prueba
                                                              • Figura 43 -Resultado del caso de prueba
                                                              • Figura 44 -Resultado del caso de prueba
                                                              • Tabla 11 - Tabla comparativa
                                                              • Tabla 31 -Prefijos estaacutendar de identificadores
                                                              • Tabla 32 -Elementos atoacutemicos del lenguaje
                                                              • Tabla 41 - Resumen de los resultados de las pruebas realizadas

Marco teoacuterico

y UML Pasado Presente y Futuro

L~~ lenguajes de modelado orientado a objetos aparecieron a mediados de 10s 70rsquos Varias teacutecnicas influenciaron estos lenguajes El nuacutemero de lenguajes de modelado incrementoacute desde menos de 10 hasta maacutes de 50 entre 1989 y 1994 Muchos modeladores teniacutean problemas para encontrar un lenguaje de modelado que satisficiera todas sus necesidades Notablemente aparecioacute Boochrsquo93 y la evolucioacuten continuoacute a OMT y Fusioacuten

OOSE (Object-Oriented Software Engineering) estaacute enfocado a la ingenieriacutea de negocios y anaacutelisis de requerimientos dando un excelente soporte orientado a casos de uso OMT-2 es especialmente expresivo para anaacutelisis y sistemas de informacioacuten de datos grandes Boochrsquo93 fue particularmente expresivo para el disentildeo y fases de construccioacuten de proyectos y popular para aplicaciones de ingenieriacutea intensiva

Grady Booch y Jim Rumbaugh iniciaron el desarrollo de UML en 1994 al unificar sus meacutetodos independientes Booch y OMT En 1995 Ivar Jacobson se unioacute a Racional eacutesta unioacuten logroacute que el meacutetodo OOSE se incorporara La unificacioacuten establecioacute que debiacutean activar el modelado de sistemas utilizando conceptos orientados a objeto asiacute como crear un lenguaje usable tanto para las maacutequinas como para los humanos

A

Muchas organizaciones se unieron al consorcio UML y dedicaron recursos al trabajo hacia el fortalecimiento de la definicioacuten de UML Esta colaboracioacuten produjo un lenguaje de modelado expresivo poderoso y generalmente aplicable En la forma actual de UML se espera que sea base de muchas herramientas incluidas las de modelado visual simulacioacuten y ambientes de desarrollo

R UML es abierto y no-propietario y aunque define un lenguaje preciso no es barrera para futuras mejoras en conceptos de modelado Se usan muchas teacutecnicas de punta pero se esperan teacutecnicas adicionales que influencien futuras versiones de UML puede ser extendido sin redefinir el nuacutecleo

c

Mientras el rehuacuteso basado en componentes se ha favorecido ampliamente cada vez mas esto no significa que las teacutecnicas basadas en componentes reemplazaraacuten las teacutecnicas orientadas a objetos Hay solo sutiles diferencias entre la semaacutentica de componentes y clases [ALC03]

Un opaco rendimiento caracterizoacute el mercado de anaacutelisis modelado y disentildeo en el 2000 en su transicioacuten de las viejas herramientas CASE (Computer Aided Software Engineering) a algo maacutes dinaacutemico y mejor adaptado para satisfacer las necesidades de los desarrolladores para el cambio raacutepido en los ambientes de negocio

El mercado de anaacutelisis modelado y disentildeo lograraacute obtener un crecimiento positivo en varios de los siguientes antildeos por varias razones El mercado seraacute manejado principalmente por la necesidad de desarrolladores a obtener aplicaciones para lanzarse al mercado raacutepidamente asiacute tambieacuten por el intereacutes creciente y uso de una nueva especie de herramienta y por el intereacutes creciente de los desarrolladores en usar UML reglas de negocios y adaptadores de componentes para construir aplicaciones [RIKUI]

z -

18

Marco teoacuterico

UML se ha hecho el estaacutendar para los desarrollos de modelado de negocios administracioacuten de requerimientos anaacutelisis y disentildeo programacioacuten y pruebas Los objetivos primarios de UML en el disentildeo [RAT97j

o Dar a los usuarios un lenguaje visual expresivo de modelado listo para usarse para que puedan desarrollar y cambiar los significados de sus modelos

o Suministrar mecanismos de extensibilidad y especializacioacuten para extender los conceptos centrales

o Ser independiente de lenguajes de programacioacuten particulares y procesos de desarrollo

o Impulsar el desarrollo de las herramientas Orientadas a Objeto en el mercado o Soportar conceptos de desarrollo de alto nivel como colaboracioacuten marcos de

componentes reutilizables patrones y componentes o Integrar las mejores praacutecticas

9 El aacutembito de UML

UML es un lenguaje para especificacioacuten construccioacuten visualizacioacuten y documentacioacuten de artefactos de un sistema de software UML es la fusioacuten de los conceptos de Booch OMT y OOSE El resultado es un simple comuacuten y ampliamente usado lenguaje de modelado para usuarios de estos y otros meacutetodos UML se enfoca en un lenguaje de modelado estaacutendar no en un proceso estaacutendar los autores de UML recomiendan un proceso de desarrollo manejado por casos de uso de arquitectura central iterativo e incremental [iiquest4T97l

Para la definicioacuten de sistemas de software en UML se definen diagramas Un diagrama es la representacioacuten graacutefica de un conjunto de elementos este se visualiza la mayoriacutea de las veces como un grafo conexo de nodos (elementos) y arcos (relaciones) Los diagramas se dibujan para visualizar un sistema desde diferentes perspectivas de forma que un diagrama es la proyeccioacuten de un sistema uumlML incluye nueve diagramas [B0099]

4 -

I Diagrama de clases 2 Diagrama de objetos 3 Diagrama de casos de uso 4 Diagrama de secuencias 5 Diagrama de colaboracioacuten 6 Diagrama de estados 7 Diagrama de actividades 8 Diagrama de componentes 9 Diagrama de despliegue

Diagramas de secuencias Un diagrama de secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten comportamiento

Un diagrama de secuencias muestra un conjunto de mensajes acomodados en una secuencia de tiempo eacuteste diagrama muestra la interaccioacuten en un esquema de dos - dimensiones [RUM99]

19

Marco teoacuterico

Y -

Un diagrama de secuencia es un diagrama de interaccioacuten que resalta la ordenacioacuten temporal de los mensajes Un diagrama de secuencia presenta un conjunto de objetos y los mensajes enviados y recibidos por ellos Los objetos suelen ser instancias (con nombre o sin nombres) de clases pero tambieacuten pueden representar instancias de otros elementos tales como colaboraciones componentes y nodos Los diagramas de secuencia se utilizan para describir la vista dinaacutemica de un sistema [B0099]

Usar los diagramas de secuencia es mostrar la secuencia que existe en un caso de uso [RUM 991

Los diagramas de secuencia tienen dos dimensiones Una dimensioacuten que representa el tiempo Otra dimensioacuten que representa los diferentes objetos que participan en la secuencia de eventos requeridos para completar el propoacutesito [MOuuml98]

El principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildea las interacciones de los objetos [DAN02]

20

Capiacutetulo 3

DesawoCCo de Ia herramienta

En este capiacutetulo se describe el desarrollo del Ambiente Visual Se describe el modelo conceptual del sistema la arquitectura asiacute como tambieacuten los elementos que componen la Arquitectura Se estudian los Diagramas de Secuencias de UML y algunos Patrones de Disentildeo de los que se hace uso para el mejor desarrollo del sistema Se describe a detalle la Gramaacutetica Visual Relaciona1 utilizada para el de Ambiente de desarrollo

I CENIOET 1FNTRO DE INFORMACION

Desarrollo de la herramienta

t i i

Actualmente existe en el cenidet un Ambiente Visual de Modelado de Clases llamado InverSOODA este Ambiente Visual tiene la capacidad de realizar la generacioacuten automaacutetica de coacutedigo de las clases en C++ a partir del modelo especificado Ademaacutes se puede realizar la Ingenieria Inversa de un coacutedigo legado para obtener el modelo de clases Aunado a este trabajo existe el Ambiente Visual denominado InverDDVi con el cual se puede realizar el Disentildeo Detallado de los Meacutetodos de las Clases con diagramas de Warnier Asiacute tambieacuten es posible obtener el modelo aplicando la Ingenieriacutea Inversa a un coacutedigo legado en C++

Ambos trabajos son retomados en este proyecto para la automatizacioacuten en la obtencioacuten de los Diagramas de Secuencias de UML La figura 31 muestra el modelo propuesto de ingenieriacutea directa

Extraer informacioacuten del diagrama de

rsquo rsquo

Diagrama de 11 clases I o

detallado de

detallado de

o meacutetodos

i ir---- Construir el

secuencias i

Modelo de Ingenieriacutea I directa automaacutetica

I

Figura 31 Modelo de Ingenieria Directa Autombtica de los Diagramas de Secuencias

Para la construccioacuten automaacutetica de un diagrama de secuencias se toma como base a un diagrama de Clases El modulo ldquoExtraer informacioacuten del diagrama de Clasesrdquo sirve para obtener el nombre y los meacutetodos descritos en cada uno de las clases que existan en el diagrama de Clases

22

Desarrollo de la herramienta

Con base en la informacioacuten que se tiene se abren los archivos correspondientes a los diagramas de Warnier El proceso que se emplea sobre cada uno los diagramas de Warnier llamado ldquoExtraer informacioacuten de los disentildeos detallados de los meacutetodosrdquo sirve para recopilar el conjunto de las llamadas de cada meacutetodo definido

En el siguiente paso (ldquoReconocer llamadas a meacutetodosrdquo) consiste en identificar si los meacutetodos que estaacuten descritos en los diagramas de Warnier tambieacuten lo estaacuten en el diagrama de Clases correspondiente

El paso ldquoConstruir los diagramas de secuencias automaacuteticamenterdquo realiza una validacioacuten de los meacutetodos definidos en los diagramas de Clases con los meacutetodos definidos en los diagramas de Warnier Este paso crea una estructura de datos con la secuencia de las llamadas y la recorre para crear los objetos y los mensajes en el diagrama de secuencias

AI terminar la creacioacuten automaacutetica del diagrama de secuencias se dispone de la r opcioacuten de guardar

31 Disentildeo de la Arquitectura

Para definir los procesos que el sistema va a realizar es necesario llevar a cabo un anaacutelisis de requisitos los cuales pueden ser expresados mediante diagramas de Casos de Uso Los Casos de Uso son una descripcioacuten textual narrativa de los procesos de un sistema

311Requisitos (Diagrama de Casos de uso)

Los casos de uso en realidad no son un artefacto de anaacutelisis orientado a objetos estos describen simplemente procesos y pueden ser igualmente efectivos en un proyecto tecnoloacutegico no orientado a objetos Son usados en un paso preliminar a la descripcioacuten de requerimientos de un sistema [LAR971 La Figura 32 muestra el diagrama de casos de uso que especifica al S3C

9

S3C (Diagramas de Secuencias)

usuario I Modelado de

I

Figura 32 Diagrama de Casos de Uso para el S3C

23

Desarrollo de la herramienta

Descripcioacuten de los Casos de Uso

Caso de Uso ldquoDiagramas de Secuenciasrdquo Se inicia cuando el actor ldquousuariordquo solicita la creacioacuten de un Diagrama de Secuencias Se establece la forma de la construccioacuten automaacutetica de los diagramas de secuencias de UML Se hace uso del Modelado de Clases y del Modelado del disentildeo detallado de los meacutetodos

Escenario de Eacutexito 1 Se obtiene la informacioacuten de las clases del modelado de clases 2 Se obtiene la informacioacuten del modelado del disentildeo detallado de los meacutetodos 3 Se realiza la construccioacuten automaacutetica de los diagramas de secuencias

1 En el modelo de clases no hay informacioacuten o estaacute incompleta 2 En el modelo del disentildeo detallado de los meacutetodos no hay informacioacuten o estaacute

incompleta

Escenario de Falla

Caso de Uso ldquoModelado de Clasesrdquo El diagrama de Clases se utiliza para obtener los nombres de clases y los nombres de los meacutetodos de cada clase

Escenario de Eacutexito 1 Se abre el modelo 2 Se procesa para obtener la informacioacuten de las clases (nombres de clases y nombres

de meacutetodos)

Escenano de Falla h 1 No se puede abrir el modelo J 2 El modelo esta vaciacuteo

Caso de Uso ldquoModelado del Disentildeo detallado 1 los meacutetodosrdquo El disentildeo detallado de los meacutetodos se realiza con diagramas de Warnier aquiacute se establecen las llamadas a funciones dentro del sistema y es aquiacute donde se identifica el dinamismo que se representaraacute en los diagramas de secuencias

Escenario de Eacutexito 1 Se abre el modelo 2 Se realiza la identificacioacuten de las llamadas existentes

Escenario de Falla 1 No se puede abrir el modelo 2 El modelo esta vaciacuteo

24

Desarrollo de la herramienta

Clase Objeto ni I Diagrama I n ____ Nombre Descripcioacuten

i

Mensaje

Tipo

En el Anaacutelisis Orientado a Objetos se crea una especificacioacuteii del dominio del problema y de los requeriinientos desde la perspectiva de una clasificacioacuten por objetos y del entendimiento de los teacuterminos usados en el dominio del problema Una descomposicioacuten del dominio del problema involucra una identificacioacuten de conceptos atributos y asociaciones que son considerados importantes dentro del dominio El resultado puede ser expresado en un Modelo Corzcepttraf el cual es ilustrado en un conjunto de diagramas que definen conceptos (objetos) [LAR97]

312Modelo Conceptual

El modelo conceptual visto en la Figura 33 no es una descripcioacuten de componentes de software representa conceptos en el domino del problema en el mundo Teal [LAR97l

313Diagramas de clases

Por cuestiones dc espacio las clases de la arquitectura del sistema estaraacuten referidas en varios diagramas que de alguna manera estaacuten relacionados entre si

Una de las partes maacutes importantes del Ambiente Visual S3C es la estructura de clases ltCCraJicogt la cual se refiere al control de los diagramas eacutesta por su naturaleza podriacutea considerarse el nuacutecleo del sistema La manipulacioacuten y control de los diagramas estaacute definido en una estructura de clases organizada con el patroacuten de disentildeo Composite que se muestra en la Figura 34

25

Desarrollo de la herramienta

CRecursividadDS CMensajeDS CObjetoDS CDiagramaDS

I Cvisitor I

CApuntadorDS CDblClickDS CAsocAdjusterDS CSelectorDS

26

Desarrollo de la herramienta

n 32 Elementos de la arquitectura

Es necesario describir los elementos que dan soporte a la arquitectura del ambiente donde se implementaraacute el sistema en este caso Microsoft Visual (MV) C++ 6 El MV C++ es un marco de aplicacioacuten poderoso basado en Windows se integran ademaacutes del lenguaje C++ (compilador y enlazador) el programa de desarrollo de programas en lenguaje C para Windows (SDK) la Microsoft Foundation Class Library AppWizzard Classwizard AppStudio y WorkBencli

La Microsoft Foundation Class Library comprende una biblioteca de clases de C++ y es considerada como el nuacutecleo del MV C++

321Microsoft Foundation Class (MFC)

La libreriacutea Microsoft Foundation Class (MFC) es una interfaz orientada a objetos que tiene las siguientes metas de disentildeo

o

Reduccioacuten significante de esfuerzo al escribir una aplicacioacuten para Windows Velocidad de ejecucioacuten comparable a las APIrsquos del lenguaje C Miacutenimo tamantildeo de coacutedigo Capacidad para llamar cualquier funcioacuten de Windows en C directamente Faacutecil conversioacuten de aplicaciones existentes en C a C++ Faacutecil uso de APIrsquos de Windows con C++ como con C Faacutecil uso de complicadas caracteriacutesticas de abstracciones poderosas como ActiveX soporte para base de datos impresioacuten barras de herramientas y barras de estado El API de Windows en C++ si usa tan efectivamente como las caracteriacutesticas mismas del lenguaje C++

La mayoriacutea de las clases de la Libreriacutea de la Microsoft Foundation Class son derivadas de una clase base ltCObjectgt que es la raiacutez de la jerarquiacutea de clases ltCObjectgt da uacutetiles capacidades a las clases que derivan de ella

La jerarquiacutea que existe en las clases derivadas de ltCObjectgt es la siguiente

Arquitectura de Aplicacioacuten Excepciones Servicios de Archivos Arreglos Listas Mapas Servicios de Internet Sockets Sincronizacioacuten Soporte para base de datos D A 0

27

Desarrollo de la herramienta

i

r

Liacutenea de Comandos Menuacute Dibujo Graacutefico Dibujo Graacutefico de Objetos Soporte de Control Soporte de Ventanas

Soporte para base de datos ODBC

o Marco de Ventanas o Barras de control o Hojas de propiedades o Cajas de Dialogo o Vistas o Controles

322Arquitectura Documento Vista

Por defecto las aplicaciones creadas con la MFC usan un modelo de aplicacioacuten que separa los datos del programa de las vistas de interaccioacuten con el usuario En eacuteste modelo un objeto documento de MFC lee y escribe datos en un almacenamiento persistente Un objeto vista administra el despliegue de datos suministrando al usuario los datos para ser seleccionados o editados La vista le comunica al documento cualquier cambio en los datos La razoacuten maacutes conveniente para seguir este modelo es cuando se necesita muacuteltiples vistas del mismo documento (como en una hoja de caacutelculo y un graacutefico)

La arquitectura documentovista hace faacutecil el soporte de muacuteltiples vistas y muacuteltiples tipos de documentos asiacute como la divisioacuten de ventanas y otras caracteriacutesticas de interfaz de usuario Pero el corazoacuten de la arquitectura son cuatro clases (Mostradas en el aacuterbol de clases de la Figura 36)

ltCDocumerrtgt (o ltCOleDocuinentgt) - Se instancia un objeto de este tipo para almacenar y controlar los datos del programa ltCViewgt (o una de sus clases derivadas ltCScrotlViewgt ltCFormViewgt ltCEditView ltCRecordViewgt ltCDaoRecordView ltCtreeViewgt ltCListViewgt b ltCrichEditViewgt) - Un objeto es usado para desplegar los datos y administrar la interaccioacuten del usuario con los datos ltCFrameWndgt (o una de sus variantes) - Establece el marco sobre el que trabajaraacuten una o mas vistas de un documento ltCDocTemolategt (o ltCSingIeDocTemplategt o ltCMultiDocTemplategt) - Coordina la existencia de uno o maacutes documentos de un tipo dado y administra la correcta creacioacuten de los documentos vistas y objetos ventanas para cada tipo

i

28

Desarrollo de la herramienta

______________ 2 Wiew

I - - __ - ------a ________________

323Integrando Ambientes en Visual C t t

Las aplicaciones de Interfaz de Documento Uacutenico (SDI) soporta muacuteltiples tipos de documentos pero este soporte es para un solo objeto documento Debido a esta restriccioacuten y aunado a la necesidad de tener varios objetos documentos a la vez se determina la utilizacioacuten del modelo Interfaz de Muacuteltiples Documentos (MDI) indicado en la Figura 37

324Interfaz de Muacuteltiples Documentos (MDI)

Una aplicacioacuten de Interfaz de Muacuteltiples Documento (MDI) permite la creacioacuten de plantillas para el manejo de los documentos eacutesta plantilla tiene la forma

rn-pDocTemplate = new CMultiDocTernplate ( I DR-SCUMLTY PE RUNTIME-CLASS (CSCUMLDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CTheView))

AddDocTernplate ( rn-pDocTemplate )

Cada plantilla describe una relacion del tipo de documento con la vista asociada La definicioacuten de la plantilla para el ambiente que controla los diagramas de secuencias es la siguiente

29

Desarrollo de la herramienta c

m-pTernplateSeqDlag = new CMultiDocTernplate ( IDR-DS-SJCTYPE RUNTIME-CLASS (CSeqDiagDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CSeqDiagView) )

AddDocTernplate( rn-pTernplateSeqDiag )

Esta plantilla hace uso de la clase CCliildFrame que por defecto el ambiente Visual C++ construye y esto es debido a que no se requieren caracteriacutesticas extras en las ventanas de las que proporciona dicha clasc En un caso en el que se requiriera un comportamiento diferente de la vista tendriacutea que crearse una nueva clase con las caracteriacutesticas deseadas

Vista Documento

Vista

I- Vista Documento I [ Tip- F Vista

L Figura 37 Modelo Interfaz de Muacuteltiples Documentos (MDI)

Para integrar otro Ambiente que utilice otro tipo de documento es necesario definir otra plantilla de la misma forma mencionada Debe tomarse en cuenta los siguientes puntos

Es necesario definir el nombre (mqTemplateNOMBRE) El IDR del tipo que se requiere que sea el documento En la primera liacutenea RUNTIME CLASS debe indicar la clase ltCDocumentgt que desea La segunda liacutenea RUNTIME-CLASS soacutelo la cambia a otra clase si requiere de otro manipulador de ventanas de lo contrario deje que ltCChildFramegt se haga cargo

-

30

Desarrollo de la herramienta

En la uacuteltima liacutenea referente a RUNTIME-CLASS se debe indicar la clase ltCViewgt que desea usar Para finalizar se usa la instruccioacuten AddDocTernplate para finalizar la definicioacuten del template (mgTemplateNOMBRE)

325 Recursos Diaacutelogos Mertuacutes y Barras de Herrattriertias

Son varios los recursos con los que se puede contar al crear un proyecto en Microsoft Visual C++ Los diaacutelogos son un recurso disponible que son utilizados para visualizar ingresar yo modificar informacioacuten que se requiera En el Ambiente Visual que se desarrolla son varios los diaacutelogos que se utilizaraacuten y eacutestos se describen a continuacioacuten

El Diaacutelogo ldquoCaracteriacutesticas del Obietordquo (Figura 38) identifica el nombre del Objeto y la descripcioacuten del mismo Este diaacutelogo se muestra cuando se presiona doble clic sobre un objeto del diagrama

I Nombre

Desciipcion

Figura 38 Dialogo Caracteriacutesticas del Objeto

El Diaacutelogo ldquoMensaierdquo (Figura 39) muestra el nombre del mensaje que puede ser modificado ademaacutes se visualizan el Identificador del Mensaje el tipo de Mensaje asiacute tambieacuten el origen y destino del mensaje

31

Desarrollo de la herramienta

Nornbie delMensaje Edit

IDentificador del Mensaje Edil Tipo de Mensaje (Edil

Edit Objeto Origen

Objeto Destino IEdit

i25El A Figura 39 Dialogo Mensaje

El menuacute es otro de los recursos del que se puede disponer para organizar el ambiente que se estaacute creando Para eacuteste caso en particular no se hizo modificaciones al menuacute estaacutendar (Figura 310) que Visual C++ presenta Los cambios significativos son el manejo del tipo de documento para los Diagramas de Secuencias

Archivo Editar Yer VenLana AyGda

Figura 310 Menuacute de los Diagramas de Secuencias (estaacutendar)

Otro importante recurso del que uno se puede valer en Visual C++ es la barra de herramienta personalizada la cuaacutel es construida en el Editor de Recursos Se ha construido una barra (Figura 311) con los elementos graacuteficos de los Diagramas de Secuencia de UML

Figura 311 Barra de Herramientas de los Diagramas de Secuencias

Es recomendable que al utilizar barras de herramienta personalizada se defina en el tamantildeo estaacutendar ya que puede experimentar problemas al momento de ejecutar la aplicacioacuten

Ademaacutes puede usar la propiedad TBBS-CHECKGROUP en una barra de herramientas para establecer que los botones puedan quedar presionados hasta que un botoacuten diferente sea presionado No olvide que la numeracioacuten inicia con cero ( O )

vuriableToolBurSetButtonStyle(OTBBSCHECKGROUP)

32

Desarrollo de la herramienta

Prefijo ID IDC IDD IDP IDR IDS

326 Notacioacuten estaacutendar

Los nombres descriptivos de los recursos se asocian a un valor uacutenico Para una mayor claridad eacutestos nombres mantienen un prefijo que describe el tipo de recurso asociado (vea la Tabla 31) [MIC99]

Tipo de Recurso Comandos de Menuacute Controles y recursos Cuadros de diaacutelogo Cadenas de solicitud para cuadros de mensaje Menuacute principal barras de herramienta tabla aceleradora y el icono Cadenas

IDR IDD IDC ID

200 - 299 3000 - 3999 34000 - 34999

Estos son los rangos de valores establecidos para el proyecto S3C Si se utiliza el coacutedigo fuente y se planea agregar otro proyecto verifisue que no se invadan estos nuacutemeros para evitar problemas

Para facilitar auacuten maacutes los trabajos futuros se ha definido una estructura de carpetas (ver Figura 312) para incluir en cada una las Clases correspondientes a cada tesis en desarrollo

33

Desarrollo de la herramienta

ill ~~ -

-I SCUML classes + U A N T L R + U App + 0 ClassDiagrams + 0 Common + a Java

t $2 SequenceDiagiams

+ WarnierDiagrams

iJ PackageDiagrams

12 StaterChartDiagrams

+

- f Classview I Resourceview 1 FileView ]

~ ~

Figura 312 Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)

327Estructura de datos persistencia y recuperacioacuten

Existe una gran cantidad de tipos de datos estructuras clases y meacutetodos de los que se puede hacer uso para una mejor y maacutes faacutecil obtencioacuten de los resultados A continuacioacuten hago comentarios en tipos de datos y meacutetodos en los que podriacutea tener problemas

CTypedPtrList

AI usar este tipo de dato o alguno relacionado que le permita utilizar el meacutetodo ltCTvrgtedPtrListGetNextgt tenga especial precaucioacuten al usarlo ya que al devolver el valor requerido la variable POSITION usada no se queda apuntando a ese valor en particular salta al inmediato siguiente de la lista

Si se realiza una creacioacuten dinaacutemica con punteros para los elementos de una CTypedPtrList Despueacutes de haberlo agregado a la lista evite el delete para borrar esta Usted deseando liberar la memoria no lo haga ya que eliminara directamente el elemento de la lista

POSITION

Es un valor usado para denotar una posicioacuten de un elemento en una coleccioacuten Pero CUIDADO no se refiere a un iacutendice es una referencia (no consecutiva) de punteros muy diferente a un iacutendice

CString

Auacuten cuando el operador de comparacioacuten == (igual a) es permitido para ser utilizado en las cadenas evite su uso ya que en ocasiones aunque cuando la e

34

Desarrollo de la herramienta

compilacioacuten no indique error alguno en la ejecucioacuten no realizaraacute lo que se necesita Recomiendo que utilice CStringCompare ()

Para eliminar el contenido de un CString utilice CStringEmpty() ya que asignar a la cadena un ldquonrdquo podriacutea causarle problemas

Serializacioacuten

Una forma en que se puede guardar informacioacuten y recuperarla de manera eficaz es mediante la serializacioacuten de objetos La serializacioacuten es un proceso que permite escribir un objeto en un archivo y tambieacuten leerlo

Para que la serializacioacuten se lleve a cabo son necesarios tres objetos un objeto de tipo ltCFilegt que represente el archivo un objeto de tipo ltCArchivegt que ofrece el entorno para la serializacioacuten y la clase del objeto a ser serializado debe ser heredada de ltCObjectgt y sobrescribir el meacutetodo ltSerializegt para que se encuentre de tal forma en que pueda ser serializado (vea la Figura 313)

Objeto a ser serializado 1

1 CArchive

[f --=I- ---7 Archivoexi

u Figura 313 Serializacioacuten

328Patrones de disentildeo utilizados

Se ha planteado la definicioacuten de una arquitectura de clases utilizando patrones de disentildeo debido a que algunos de ellos hacen maacutes faacutecil la extensioacuten de la funcionalidad y mantenimiento

35

Desarrollo de la herramienta

El patroacuten Composite es utilizado para crear de manera uniforme el diagrama sobre el que se trabaja (ver Figura 34) manteniendo una jerarquiacutea de clases uniforme las clases maacutes bajas en la jerarquiacutea definen primitivas de objetos graacuteficos

Se aplica el patroacuten de disentildeo Iterator para hacer recorridos en listas de objetos para realizar diversas operaciones Otro patroacuten de disentildeo del que se hace uso es el Visilor (ver Figura 35)

Para otras actividades que se realizan podriacutea pensarse en que se deberiacutean aplicar otros patrones pero se han evitado algunos (como el patroacuten de disentildeo Builder) para evitar incrementar la complejidad en la arquitectura ya que ai mantener el modelo de la MFC de documentovista la funcionalidad del patroacuten de disentildeo Builder es faacutecilmente reemplazado si se hiciera Uso de eacuteste se aumentariacutea la complejidad excesivamente (nos llevariacutea a perdemos en ocasiones en el paso de mensajes entre clases) dantildeando la facilidad de la arquitectura

33 Diagrama de secuencias

Un Diagrama de Secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten escenario Oacute comportamiento se usan para definir el curso loacutegico de accioacuten de un posible camino a seguir en la resolucioacuten de un problema Seguacuten John Daniels [DANO2] ldquoel principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildean las interacciones de los objetosrdquo

Los Diagramas de Secuencias se utilizan en el modelado de la implementacioacuten de sistemas de software ademaacutes son aplicables en el modelado de requisitos para establecer las comunicaciones existentes entre actores yo clases del sistema Con eacutestos diagramas se logran hacer descripciones de los escenarios y los comportamientos del sistema Con los Diagramas de Secuencias es posible definir protocolos de comunicacioacuten con paso de mensajes ya que dan esa flexibilidad que se requiere Ademaacutes los Diagramas de Secuencias contienen informacioacuten suficiente para que puedan ser transformados a los diagramas de colaboracioacuten [RUM Ol][BOO Oil

331Ciclo de vida del software

Considerando cualquier modelo de ciclo de vida del software (en la figura 314 se muestra el Modelo de cascada) el aacutembito directo de eacuteste Ambiente Visual es en el disentildeo aunque tiene sus vertientes en la codificacioacuten y mantenimiento

36

Desarrollo de la herramienta

Diseno

Codificacibn

I I I I Mantenimiento I

igura 314 Modelo de cascada del ciclo de vida del software

34 Elementos atoacutemicos de la Gramaacutetica

Definicioacuten de los elementos atoacutemicos del lenguaje y su contenido

1 Actor- Representa roles de entidad externos al sistema con el que interactuacutea directamente Los actores pueden ser humanos dispositivos u otros sistemas

2 ClaseObjeto- Determina una Clase u Objeto participante en la interaccioacuten

3 Mensaje-Es una comunicacioacuten entre objetos que contiene informacioacuten Eacuteste se representa con la finalidad a que una accioacuten sea llevada a cabo

4 Mensaje con tiempo- Tiene la misma finalidad que el mensaje la diferencia es que con eacutel se representa un atributo de tiempo

5 Mensaje asiacutencrono Es un mensaje que ocurre en el tiempo de manera independiente a otros mensajes

6 Mensaje de destruccioacuten de objeto- Es un mensaje cuya finalidad es indicar la destruccioacuten del objeto destino

7 Mensaje de creacioacuten de objeto- Es un mensaje que indica la creacioacuten de un objeto

8 Llamada al mismo objeto (Recursividad)- Es usado para modelar llamadas recursivas en el que una operacioacuten es invocada por el mismo objeto

37

Desarrollo de la herramienta

9 Destruccioacuten del objeto (AutodestrucciOacuten)- Puede o no modelarse es representada con una X al final de la liacutenea de vida del objeto

Elementos aulomaacuteticos

1 Liacutenea de Vida- Representa la vida del objeto durante la interaccioacuten

2 Activacioacuten- Muestra el periacuteodo de tiempo en el cual el objeto alguna operacioacuten

341RepresentaciOacuten visual

Representacioacuten visual de los elementos atoacutemicos del lenguaje

Actor

_- A

Mensaje

Mensaje de Creacioacuten de

Objeto

ClaseObjeto

I

Mensaje de retorno

Mensaje de Destruccioacuten de

Objeto

abla 32 Element(

Activacioacuten

Mensaje con tiempo

Autodestruccioacuten

x

atoacutemicos del lengi

taacute realizz

Texto ===I (letra)+ (letra I

numero) letra= AZ I az numero = 09

I

Recursividad ~

I

i j e

io

38

u

Comentario

iexcl

Conector de Comentario

35 Gramaacutetica desarrollada

La gramaacutetica que se propone es una gramaacutetica visual del tipo relacional Una gramaacutetica relacional pertenece a las gramaacuteticas libres de contexto es una 6-iupla G (N C S R Attr P) donde

N es un conjunto finito de siacutembolos no terminales C es un conjunto de siacutembolos terminales S es un siacutembolo distinguido en N llamado siacutembolo inicial R es un conjunto finito de siacutembolos de relacioacuten Attr es un conjunto finito de siacutembolos de atributos P es un conjunto de producciones

Entonces definiendo nuestra gramaacutetica G (N C S R Attr P)

N = Diagrama GrupoClaseObjeto

S = Diagrama

R = mensaje mensajeTiempo mensajeRetomo mensajeAsincrono mensajecrea mensajeDestruye autodestruccioacuten recursividad

R

Attr = entrada salida entradacrea

39

Desarrollo de la herramienta

Definiendo la posicioacuten de los atributos en los elementos visuales

entradacrea ObetaClase

entrada

salida

P =

Diagrama I GrupoClaseObjeto (mensaje (mensajeRetorno

(salida 1) (entrada 2) ) (salida 2) (entrada 1) )

- Diagrama 0 GrupoClaseObjeto

(mensaje (mensaje (mensajeRetomo (mensajeRetomo (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entradacrea 2) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 1) ) (salida 1) (entrada 1) )

entrada

salida

40

Desarrollo de la herramienta

s

-

GrupoClaseObjeto - 1 1 I 2 (mensaje (mensaje (mensajeRetorno (mensajeRetorno (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entradacrea 2) ) (salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 1) ) (salida I ) (entrada I ) )

1 En las gramaacuteticas relacionales una produccioacuten estaacute acompantildeada de las posibles

relaciones que puedan generarse En la primera produccioacuten Diagrama produce a un Actor seguida de un GrupoClaseObjeto el Actor inicia la interaccioacuten con un mensaje y recibe el mensaje de retorno al finalizar la interaccioacuten La segunda y tercera produccioacuten son similares debido a que un GrupoClaseObjeto contiene dos ClaseObjeto que se relacionan de la misma forma

Existe un elemento de la gramaacutetica llamado Attr (Atributo) el cual define la parte de los elementos visuales donde se establecen las relaciones Se han determinado dos atributos (entrada y salida) que para nuestro propoacutesito estaraacuten establecidos en la liacutenea de vida de cada elemento visual (Actor y ClaseObjeto)

Los Comentarios y la Activacioacuten no se consideran en la gramaacutetica Los comentarios son libres de incluirse y relacionarse con cualquier elemento y relacioacuten mencionada anteriormente y la activacioacuten existe siempre que se presente un mensaje (o podriacutea omitirse) Estas consideraciones se realizaron para hacer auacuten maacutes faacutecil la gramaacutetica ya que si se trata de realizar un sistema las restricciones de estos elementos pueden mantenerse en el lenguaje de programacioacuten en el que se desarrolle el sistema

36

Precondiciones

El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias

1 El diagrama de Clases debe existir y estar completo 2 Debe existir un archivo con un diagrama de Warnier por cada diagrama de Clases y

con el mismo nombre de archivo (excepto la extensioacuten del archivo) 3 En el uacutenico diagrama de Warnier de cada Clase se deben modelar todos los meacutetodos

de la Clase 4 No realizar declaraciones de meacutetodos

41

Desarrollo de la herramienta

5 Debe existir un meacutetodo lsquomain()rsquo en el diagrama de Clases

Restricciones

Los meacutetodos deben mantener nombres distintos en las diferentes Clases

Metodologiacutea para la obtencioacuten automaacutetica de los Diagramas de Secuencias

1 Seleccionar el diagrama de Clases

2 Se construye una lista con los nombres de las Clases y los Meacutetodos

3 Se verifica si exista el meacutetodo lsquomain()rsquo en alguna Clase Se busca la existencia de una uacutenica Clase

a La Clase que contenga lsquomain()rsquo se va al inicio de la lista de Clases

b Si no existe lsquomain()rsquo SE TERMINA EL PROCESO

4 Se verifica la existencia de los archivos que contienen el Disentildeo Detallado de los meacutetodos en Wamier para cada una de las Clases si alguno falta SE TERMINA EL PROCESO

5 Se procesa cada uno de los modelos del Disentildeo Detallado de los Meacutetodos generando una lista de secuencias de llamadas por cada uno de los meacutetodos

6 Se verifica que cada llamada corresponda a alguacuten meacutetodo existente (del diagrama de Clases) De no existir ese meacutetodo la llamada entra a una estructura que

7 Se crea una lista de secuencia

a Se inicia con lsquomain()rsquo b Se recorre cada una de las llamadas de los meacutetodos c Se considera invaacutelido el caso de que un meacutetodo intente una llamada

recursiva al meacutetodo lsquomain()rsquo

8 Se muestra un diaacutelogo de resultados en el que se indican las llamadas que no se encnotraron definidas y que pueden ser Llamada a libreriacutea oacute Llamada Erroacutenea

42

Capiacutetulo 4

Prue6as y su6taaacuteos

En eacuteste capiacutetulo se da a conocer el detalle de las pruebas y de los resultados obtenidos Se describen los casos de prueba con los que se realizoacute la evaluacioacuten del sistema asiacute tambieacuten se presentan comentarios acerca de los resultados obtenidos

Pruebas y Resultados

41 Recursos teacutecnicos utilizados

Para llevar a cabo las pruebas al sistema S3C se utilizaron los siguientes equipos de Coacutemputo

Computadora de escritorio

256MB RAM Disco Duro 80G Monitor 17rdquo SAMSUNG

AMD Athlon XP 1600+ I4Ghz

Computadora de escritorio Intel Pentium 4 - 128MB RAM Disco Duro 40G Monitor 15rdquo i -

42 Descripcioacuten del plan de pruebas

Las pruebas establecen el Uacuteltimo paso desde donde es posible evaluar la calidad y descubrir los errores Las pruebas y la validacioacuten del software se utilizan para comprobar que el sistema cumple con las expectativas del usuario

En esta seccioacuten se describen los casos de prueba que se realizaron al prototipo de S3C en conjunto a la suite cenidet-UML Para cada uno de los casos se presenta el objetivo el procedimiento que se siguioacute para la prueba y se muestran los resultados obtenidos - _

Las pruebas a realizar son los siguientes

Caso 1 Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Caso 2 Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Wamier

Caso3 Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Wamier

Caso4 Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo 5

44

Pruebas y Resultados

43 Resultados

431 Caso 1

5 Y

IZ =

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoSirdquo 4 Seleccionar el archivo ldquoVENTASrdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 41 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

s3c iuevo Proyecto SCUM1

Diagrama de clases

lvendedor I L

3

salida

venta prod

4 venia-oferta vcntaprod =

salida 6

Figura 41 Resultado del caso de prueba 1

45

Pruebas y Resultados

432 Caso 2

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Warnier (almacenwar cajawar vendedorwar) que ya cxisten (del caso de prueba I )

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoNordquo 4 Agregar las siguientes Clases con los respectivos meacutetodos y atributos

a Claseldquovendedorrdquo Meacutetodos ldquoventa mainrdquo b Claseldquoalmacenrdquo Meacutetodos ldquoentrada salidardquo c Claseldquocajardquo Meacutetodos ldquoventagrodrdquo

5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 42 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

Diagrama de daseo lisgrama dcsccucncis

MOIDOC Anivo

venta prod

salida

1 Ycrdquo1a 2

I 4 vcrdquolD~o1cn venta prod gt

salida 6 i Figura 42 Resultado del caso de prueba 2

46

Pruebas y Resultados

r

433 Caso 3

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Warnier

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 43 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

5

Error al tratar de abrir el archivo A bZwar

Aceptar i

Faltan Archivos de Disentildeos Detallados de Meacutetodos 1 1 A No se puede crear el diagrama de secuencias

Figura 43 Resultado del caso de prueba 3

47

Pruebas y Resultados

434 Caso 4

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 44 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

lsquo I

~ _ i i _ l _ Repaado ~~ ~ ~ 6~ ampA Figura 44 Resultado del caso de prueba 4

48

Pruebas y Resultados

PRUEBA DESCNPCION CASO 1 Mostrar la funcionalidad del

Sistema S3C a partir de un

44 Anaacutelisis de Resultados

RESULTADOS Se comproboacute la correcta funcionalidad del Sistema S3C a partir de un diagrama

CASO 3

CASO4

I diagrama de Clases cxistcnte I de Clases existente CASO 2 I Mostrar la funcionalidad del I Sc comproboacute la corrccta funcionalidad

Sistema S3C a partir de un del Sistema S3C a partir de un diagrama diagrama de Clases que se de Clases que se construye al momento construye al momento Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el Secuencias si falta alguno de los diagrama de Secuencia si falta alguno diagramas de Warnier Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el secuencias si hace falta el meacutetodo diagrama de Secuencias al faltar el ldquomain ()rdquo meacutetodo ldquomain()rdquo

de los diagramas de Warnier

Los resultados obtenidos de cada uno de los casos establecidos demuestran que se validoacute la funcionalidad del prototipo con los requisitos definidos en el alcance de este proyecto

a lt

49

Conclusiones y Tru6ajos Futuros

Aquiacute se dan a conocer las conclusiones y se describen los posibles trabajos futuros para la continuacioacuten de eacuteste proyecto

F

51 Conclusiones

Conclusiones y trabajos futuros

Se ha creado un Ambiente Visual que permite obtener de forma automaacutetica los Diagramas de Secuencias en base a los diagramas de Clases y al disentildeo detallado de los meacutetodos descritos con diagramas de Warnier cumpliendo con los objetivos planteados para este trabajo

La tesis aporta principalmente La generacioacuten automaacutetica de los diagramas de secuencias y la eliminacioacuten de inconsistencias al mantener una validacioacuten directa de los diagramas de clases y los diagramas de Warnier que son utilizados

Esta validacioacuten es lograda a traveacutes del uso de la gramaacutetica visual relaciona1 que se ha definido (veacutease el capiacutetulo 3) Esta gramaacutetica visual establece reglas para la correcta construccioacuten de los diagramas de secuencias

P De esta manera se establece que la hipoacutetesis ldquoEs posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodosrdquo Es verdadera

52 Trabajos Futuros

Un Diagrama de Secuencias puede convertirse en un Diagrama de Colaboracioacuten por lo tanto un trabajo futuro es la construccioacuten automaacutetica de un Diagrama de Colaboracioacuten a partir de uno de Secuencias existente

Es posible calcular la meacutetrica de acoplamiento al tener un Diagrama de Secuencias construido

La Ingenieriacutea directa de un Diagrama de Secuencias estableciendo la validacioacuten en la construccioacuten de todos los elementos visuales que UML define

La propagacioacuten de las modificaciones de un Diagrama de Secuencias a los Diagramas de Clases y los Diagramas de Warnier

La modificacioacuten del coacutedigo fuente mediante los cambios establecidos en un Diagrama de Secuencias

51

[ALC03]

[BLA98]

[B0099]

[BOOOi]

[BR097]

[CHA90]

[DAN02]

[GLA02]

[HAC98]

[HER03]

4

Alcate1 Computer Associates International inc Electronic Data Systems Corporation Hewlett-Packard Company IBM Corporation I-Logix IntelliCorp Kabira Technologies Kennedy Carter Microsoft Corporation Object Management Group Oracle Corporation Project Technology Ptech Inc Rational Software Corporation Reich Technologies Softeam Taskon A S Telelogic Unisys Corporation ldquoOMG Unified Modeling Language Specificationrdquo Version 15 Unified Modeling Language 2003

Blaha Michael Rumbaugh James Premerlani William Eddy Frederick Lorensen William ldquoObject-oriented modeling and designrdquo Prentice Hall 484 Paacuteginas ISBN 0-13-629841-9 QA-769-03S-B53-19981998

Booch Grady Rumbaugh James Jacobson Ivar ldquoEl lenguaje unificado de modeladordquo Addison Wesley 432 Paacuteginas ISBN 84-7829-028-1 1999

Booch Grady Rumbaugh James Jacobson Ivar ldquoThe Unified Modeling Language User Guiderdquo Addison Wesley 2001

Brown David ldquoAn introduction to object-oriented analysis objects in plain Englishrdquo John Whiley amp Sons Inc 700 Paginas ISBN 0-471-1 1028-0 QA-769-035-B76-1997 1997

Chang Shi-Kuo ldquoVisual Languages and visual programmingrdquo Plenum Press 340 Paacuteginas ISBN 0-306-43428-8 QA-7665-V57-1990 1990

Daniels John ldquoModeling with a sense of purposerdquo Design - IEEE Software JanuaryEebmary 2002

Glasgow Universidad Reino Unido ldquoA UML Editor in Javardquo (lthttplstudentsdcsglaacuWstudentspainjfproject-reportproject-re port-htmV4thYearReporthtrnlgt 2002)

T Hackos JoAnn C Redish Janice ldquoUser and Task Analysis for Interface Designrdquo Wiley Computer Publishing 488 Paacuteginas ISBN QA-769-U83- H33-1998 1998

Hemaacutendez Velaacutezquez M ldquoIngenieriacutea inversa de coacutedigo fuente en C++ para la obtencioacuten de su disentildeordquo Tesis AT-379 (03-0334) 2003

Conceptos generales

[HIX93]

[JAC93]

[JAC99]

[JOY98]

[LAR97]

[MAR]

[MIC99]

[MIC02]

[MOU98]

Hix Deborah Hartson H Rex ldquoDeveloping user interfacesrdquo 381 Paacuteginas ISBN 0-471-57813-4 QA-769-U83-H59-1993 1993

Jacobson Ivar Christerson Magnus Jonsson Patrik Overgaard Gunnar ldquoObject oriented software engineeringrdquo Addison Wesley ISBN 0-20 1 - 54435-0 QA-7676-D47-J63-1993 1993

Jacobson Ivar Booch Grady Rumbaugh James ldquoEl proceso unificado de desarrollo de softwarerdquo Addison Wesley 438 Paacuteginas ISBN 84-7829-036- 2 1999

Joyanes Aguilar Luis ldquoProgramacioacuten orientada a objetosrdquo McGruw Hill ISBN 84-481-0590-7 1998

Larman Craig ldquoAplying UML and Patternsrdquo Prentice Hull 507 Paacuteginas ISBN 0-13-748880-7 QA-769-035-L37-1997 1997

Marriot Kim Meyer Bemd ldquoVisual Language Theoryrdquo Springer 381 Paacuteginas P-935-V567-1998 1998

Microsoft ldquoMicrosoft Visual C++ 6 manual del programadorrdquo McGraw Hill ISBN 84-481-2127-9 QA-7673-Cl53-23718-1999 1999

Microsoft ldquoVisiordquo (lthttpwwwmicrosoftcomofficevisiogt 2002)

B Mourao Luis X ldquoUniversal Modeling Language Part 11 UML Notation - Case Sequence and Collaboration Diagramsrdquo Lan Times Magazine (~httpwwwlantimescomltpartsdiscussdiscuss6Ohtm~) 1998

No Magic ldquoMagicDrawrdquo (lthttpwwwmagicdrawcomgt 2002)

Object Insight ldquoJvisionrdquo (lthttpwwwobject-insightcomgt 2002)

Rational Software Microsoft I Hewlett-Packard Oracle Sterling Software MCI Systemhouse Unisys ICON Computing IntelliCorp i-Logix IBM ObjectTime Platinum Technology Ptech Taskon Reich Technologies Sofieam ldquoUML Summaryrdquo Version 11 Unified Modeling Language 1997

Rational ldquoRational Roserdquo (lthttpwwwrationalcomproductosrosegt 2002)

Rikki Kirzner ldquoAnalysis Modeling and Design Tools Market Forecast and Analysis 2001-2005rdquo Bulletin Published Under Services Application Design and Construction Tools Application Development and Deployment Strategies Documento Nuacutemero 24809 Junio 2001

53

Conceptos generales

[RIM92] Rimrner Steve ldquoGraphical user interface programmingrdquo 423 Paacuteginas

1992

Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language reference manualrdquo Addison Wesley 550 Paacuteginas ISBN 0-201-

ISBN 0-8306-2475-9 ISBN 0-8306-2472-4 (pbk) QA-769-083-R55G

[RUM99]

30998-X QA-7676-D47-R85-1999 1999

[RUM299] Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language user guiderdquo Addisoiz Wesley 482 Paacuteginas ISBN 0-201 -57 168-4 QA-7676-D47-B66-1999 1999

[SMA02] SmartDraw ldquoSmartDrawrdquo (lthttpwwwsmartdrawcomgt 2002)

[SHU88] 9 - Shu Nun C ldquoVisual Programmingrdquo Van Nostrand Reinhold ISBN 0-422- 28014-9 ISBN 0-422-01 164-4 QA-7665-S55 1988

[THI90] Thimbleby Harold ldquoUser Interface Designrdquo Acm press 470 Paacuteginas ISBN 0-201 -41 61 8-2 QA-769U83-T772~- 1990 1990

[WENO2] Wences Diaz MF ldquoModelo de Ingenieriacutea Inversa para la obtencioacuten de disentildeo detallado basado en LEVISSrdquo Tesis (02-0014) 2002

54

Anexo A

Conampuracioacuten de Microsoft Vkua[C++ 6 O

Este anexo indica las configuraciones que se utilizaron para la compilacioacuten de SCUML y s3c

Configuracioacuten de Microsoft Visual c++ 60

Debido a la integracioacuten de los proyectos de InverSOODA e InverDDVi con S3C se cumplioacute con los requisitos previos de ambos proyectos

El compilador usado en el proyecto fue el Microsoft Visual C++ 60

Para el cumplimiento con la funcionalidad de InverSOODA se instaloacute el ANTLR la versioacuten 271 Se descargoacute del sitio l i l l ~ ~ ~ ~ ~ ~ t l ~ l ~ - ~ t - ~ la versioacuten mencionada en un archivo comprimido (en formato zip) Se colocoacute el paquete descomprimido en el directorio ldquoDIANTLR-271 I rdquo

Recomiendo ampliamente que el directorio principal de ANTLR se copie en el directorio raiacutez de cualquier unidad de disco debido a que experimenteacute problemas de compilacioacuten cuando ANTLR no se encontraba en el directorio raiacutez

Io015

Source Browser AlttF12 I u c Ersquo V I

Visual Component Mgnager

- - ~ ~ ~ ~~

P2 Registrar control

A Contenedor de prueba de controles ActiveX

A Usor de objetos OLE y COM

Buacutesqueda de errores

A Y++ MFC Iracer

Customize options

~ - q- ~ Macro

Eecord Quick Macro Cbl+ShiR+R Pay Quick Macro Ctrl+ShiR+P

En el menuacute Tools (Herramientas) seleccione el sub-menuacute Options ltopcionesgt

56

Configuracioacuten de Microsoft Visual C++ 60

En la siguiente ventana de diaacutelogo debe agregar la direccioacuten en donde se encuentra el ANTLR

Agregar la ruta del directorio de ANTLR hasta el subdirectorio

libcpp

Editor I Tabs I Debug I Compatibility 1 Build Dneclolies I a I Chow directories for - Platfolm -

- Directories I x ) 4 jWin32 -] llnclude files

m cancd I

57

Configuracioacuten de Microsoft Visual C t+ 60

Se ha creado una libreriacutea (anrlrliblib) de ANTLR la cual ya estaacute situada en el directorio del proyecto SCUML (ISCUML) y no debe ser movida o eliminada

I

Geneial 1 Debug I CC++ Link I Category

Output file name bebugSCUMLexe

Objectljibrary modules 4 anllrliblib

li Generate debug lnfo r Ignore all defaull lbaries D ~ i n k j n ~ ~ ~ t a n ~ r ~ e n e r ~ ~ ~ mapfile

r Enable psafilrng

Proiec1 Ootionn

pq Cancel 1 Libreriacutea de ANTLR que debe existir 1 I para que se compile correctamente

58

Anexo B

~ u iacute aacute raacutepida de uso deC Sistema S3C

5 Este anexo indica de forma raacutepida la manera de utilizar S3C para crear un diagrama de secuencias de forma automaacutetica

Guiacutea Raacutepida de uso del Sistema S3C i

Para indicar la creacioacuten de un diagrama de secuencias en forma automaacutetica se debe ir a la barra del costado izquierdo y presionar ldquoNuevo Proyecto SCUMLrdquo

I s3c I ~ Nuevo Proyecto SCUML ~ _ _ - I Diagrama de clases ~ Diagrama de secuencias 1 MDI DOC Activo

-

Apareceraacute un documento llamado ldquoSCUMLV en donde el simbolo corresponde a un numero consecutivo iniciando desde 1 (uno)

$ e Despueacutes se presiona ldquoDiagrama de clasesrdquo Habraacute que para indicarle al sistema si se requiere abrir un diagrama de clases existente o realizar uno nuevo

i

iquestAbrir un documento existente

No Cardquo~ear

AI presionar ldquoSirdquo se debe indicar cual es el archivo del diagrama de Clases en el cuadro de diaacutelogo siguiente

~~ - 11dMis documentos rsquo 2 M i P C i lsquo h s sitios de red

I

AI presionar ldquoNordquo en ldquoAbrir un documento existenterdquo se nos mostraraacute un documento vacio para crear un diagrama de clases

60

Guiacutea Raacutepida de uso del Sistema S3C

Para ambas opciones se requiere que los diagramas de Wamier ya se encuentren construidos Y para continuar el proccso se selecciona el documento ldquoSCUMLVrsquo creado al inicio y despueacutes presionar el botoacuten nombrado ldquoDiagrama de secuenciasrdquo localizado en la barra de hcrraiiiicntas del costado izquierdo

Ha iniciado el proceso de construccioacuten del diagrama de secuencias Si no existen errores al terminar el proceso se le mostraraacute un cuadro de diaacutelogo llamado ldquoResultadosrdquo en donde le mostraraacute las llamadas de las que no localizoacute su definicioacuten

- - -

Cancel 1 D e las siguientes llamadas es posible que esten mal escritas o peitenezcan a la libreiia del Lenguaie Verifique ya que no se encontraron sus definiciones

A continuacioacuten se mencionan los posibles errores que finalizan el proceso de la creacioacuten automaacutetica de los diagramas de secuencias en S3C

Cuando no exista un meacutetodo lsquomainrsquo definido en el diagrama de clases

No se encontro el meacutetodo lsquomain()rsquo que inicie la secuencia I A No se puede crear el diagrama de secuencias

p==amp=q

61

Guia Raacutepida de uso del Sistema S3C

Cuando se definan niultiples metodos lsquoinainrsquo en el diagrama de clases

Multiples meacutetodos lsquomainOlsquo Imposible decidir el inicio de secuencia

Aceptar i

Si un meacutetodo definido en Wamier realiza una llamada a lsquomainrsquo se cancelara el proceso

Llamada NO VALIDA al meacutetodo principal main

(iAcp-j(

4 i

CI Y rdquoldquoldquoI i 11 1-T

IZNTRO Gt INFORMACION

62

  • Tabla de Contenido
  • Listado de Figuras
  • Listado de Tablas
  • Notacioacuten
  • Introduccioacuten
  • Capitulo 1 Conceptos Generales
    • 11 Antecedentes
    • 12 Trabajos relacionados
      • 121 Tabla comparativa
        • 13 Definicioacuten del problema
        • 14 Objetivo de la Tesis
          • Objetivos especiacuteficos de la tesis
            • 15 Hipoacutetesis de investigacioacuten
            • 16 Alcances y limitaciones del trabajo de tesis
              • Capitulo 2 Marco Teoacuterico
                • 21 Modelado de sistemas de software
                • 22 Interfaz de usuario (Mecanismos de interaccioacuten)
                • 23 Lenguajes Visuales
                • 24 Programacioacuten orientada a objetos
                • 25 Lenguaje de Modelado Unificado (UML)
                  • Desarrollo de la herramienta
                    • 31 Disentildeo de la Arquitectura
                      • 311 Requisitos (Diagrama de Casos de uso)
                        • 312Modelo Conceptual
                        • 313Diagramas de clases
                        • 32 Elementos de la arquitectura
                          • 321 Microsoft Foundation Class (MFC)
                            • 322Arquitectura Documento Vista
                            • 323Integrando Ambientes en Visual c++
                              • 324 Interfaz de Muacuteltiples Documentos (MDI)
                                • 325Recursos Diaacutelogos Menus y Barras de Herramientas
                                  • 326 Notacioacuten estaacutendar
                                  • 327 Estructura de datos persistencia y recuperacioacuten
                                    • 328Patrones de disentildeo utilizados
                                      • 33 Diagrama de secuencias
                                        • 331Ciclo de vida del software
                                          • 34 Elementos atoacutemicos de la Gramaacutetica
                                            • 341 Representacioacuten visual
                                              • 35 Gramaacutetica desarrollada
                                              • 36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias
                                                  • Capitulo 4 Pruebas y Resultados
                                                    • 41 Recursos teacutecnicos utilizados
                                                    • 42 Descripcioacuten del plan de pruebas
                                                    • 43 Resultados
                                                      • 431 Caso
                                                      • 432 Caso2
                                                      • 433 Caso
                                                          • Conclusiones y trabajos futuros
                                                            • Trabajos futuros
                                                            • Referencias
                                                            • Anexo A Configuracioacuten de Microsoft Visual C+t
                                                              • Figura 11 - Arquitectura de la suite cenidet-UML
                                                              • Figura 21 -Programacioacuten Visual
                                                              • Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de
                                                              • Figura 32 -Diagrama de Casos de Uso para el S3C
                                                              • Figura 33 -Modelo Conceptual
                                                              • Figura 34 - Diagrama de Clases -Control del Diagrama -
                                                              • Figura 35 - Diagrama de Clases - Patroacuten Visitor -
                                                              • Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento
                                                              • Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)
                                                              • Figura 38 -Dialogo Caracteriacutesticas del Objeto
                                                              • Figura 39 -Dialogo Mensaje
                                                              • Figura 3 IO - Menuacute de los Diagramas de Secuencias (estaacutendar)
                                                              • Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias
                                                              • Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)
                                                              • Figura 313 - Serializacioacuten
                                                              • Figura 314 -Modelo de cascada del ciclo de vida del software
                                                              • Figura 41 - Resultado del caso de prueba
                                                              • Figura 42 -Resultado del caso de prueba
                                                              • Figura 43 -Resultado del caso de prueba
                                                              • Figura 44 -Resultado del caso de prueba
                                                              • Tabla 11 - Tabla comparativa
                                                              • Tabla 31 -Prefijos estaacutendar de identificadores
                                                              • Tabla 32 -Elementos atoacutemicos del lenguaje
                                                              • Tabla 41 - Resumen de los resultados de las pruebas realizadas

Marco teoacuterico

UML se ha hecho el estaacutendar para los desarrollos de modelado de negocios administracioacuten de requerimientos anaacutelisis y disentildeo programacioacuten y pruebas Los objetivos primarios de UML en el disentildeo [RAT97j

o Dar a los usuarios un lenguaje visual expresivo de modelado listo para usarse para que puedan desarrollar y cambiar los significados de sus modelos

o Suministrar mecanismos de extensibilidad y especializacioacuten para extender los conceptos centrales

o Ser independiente de lenguajes de programacioacuten particulares y procesos de desarrollo

o Impulsar el desarrollo de las herramientas Orientadas a Objeto en el mercado o Soportar conceptos de desarrollo de alto nivel como colaboracioacuten marcos de

componentes reutilizables patrones y componentes o Integrar las mejores praacutecticas

9 El aacutembito de UML

UML es un lenguaje para especificacioacuten construccioacuten visualizacioacuten y documentacioacuten de artefactos de un sistema de software UML es la fusioacuten de los conceptos de Booch OMT y OOSE El resultado es un simple comuacuten y ampliamente usado lenguaje de modelado para usuarios de estos y otros meacutetodos UML se enfoca en un lenguaje de modelado estaacutendar no en un proceso estaacutendar los autores de UML recomiendan un proceso de desarrollo manejado por casos de uso de arquitectura central iterativo e incremental [iiquest4T97l

Para la definicioacuten de sistemas de software en UML se definen diagramas Un diagrama es la representacioacuten graacutefica de un conjunto de elementos este se visualiza la mayoriacutea de las veces como un grafo conexo de nodos (elementos) y arcos (relaciones) Los diagramas se dibujan para visualizar un sistema desde diferentes perspectivas de forma que un diagrama es la proyeccioacuten de un sistema uumlML incluye nueve diagramas [B0099]

4 -

I Diagrama de clases 2 Diagrama de objetos 3 Diagrama de casos de uso 4 Diagrama de secuencias 5 Diagrama de colaboracioacuten 6 Diagrama de estados 7 Diagrama de actividades 8 Diagrama de componentes 9 Diagrama de despliegue

Diagramas de secuencias Un diagrama de secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten comportamiento

Un diagrama de secuencias muestra un conjunto de mensajes acomodados en una secuencia de tiempo eacuteste diagrama muestra la interaccioacuten en un esquema de dos - dimensiones [RUM99]

19

Marco teoacuterico

Y -

Un diagrama de secuencia es un diagrama de interaccioacuten que resalta la ordenacioacuten temporal de los mensajes Un diagrama de secuencia presenta un conjunto de objetos y los mensajes enviados y recibidos por ellos Los objetos suelen ser instancias (con nombre o sin nombres) de clases pero tambieacuten pueden representar instancias de otros elementos tales como colaboraciones componentes y nodos Los diagramas de secuencia se utilizan para describir la vista dinaacutemica de un sistema [B0099]

Usar los diagramas de secuencia es mostrar la secuencia que existe en un caso de uso [RUM 991

Los diagramas de secuencia tienen dos dimensiones Una dimensioacuten que representa el tiempo Otra dimensioacuten que representa los diferentes objetos que participan en la secuencia de eventos requeridos para completar el propoacutesito [MOuuml98]

El principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildea las interacciones de los objetos [DAN02]

20

Capiacutetulo 3

DesawoCCo de Ia herramienta

En este capiacutetulo se describe el desarrollo del Ambiente Visual Se describe el modelo conceptual del sistema la arquitectura asiacute como tambieacuten los elementos que componen la Arquitectura Se estudian los Diagramas de Secuencias de UML y algunos Patrones de Disentildeo de los que se hace uso para el mejor desarrollo del sistema Se describe a detalle la Gramaacutetica Visual Relaciona1 utilizada para el de Ambiente de desarrollo

I CENIOET 1FNTRO DE INFORMACION

Desarrollo de la herramienta

t i i

Actualmente existe en el cenidet un Ambiente Visual de Modelado de Clases llamado InverSOODA este Ambiente Visual tiene la capacidad de realizar la generacioacuten automaacutetica de coacutedigo de las clases en C++ a partir del modelo especificado Ademaacutes se puede realizar la Ingenieria Inversa de un coacutedigo legado para obtener el modelo de clases Aunado a este trabajo existe el Ambiente Visual denominado InverDDVi con el cual se puede realizar el Disentildeo Detallado de los Meacutetodos de las Clases con diagramas de Warnier Asiacute tambieacuten es posible obtener el modelo aplicando la Ingenieriacutea Inversa a un coacutedigo legado en C++

Ambos trabajos son retomados en este proyecto para la automatizacioacuten en la obtencioacuten de los Diagramas de Secuencias de UML La figura 31 muestra el modelo propuesto de ingenieriacutea directa

Extraer informacioacuten del diagrama de

rsquo rsquo

Diagrama de 11 clases I o

detallado de

detallado de

o meacutetodos

i ir---- Construir el

secuencias i

Modelo de Ingenieriacutea I directa automaacutetica

I

Figura 31 Modelo de Ingenieria Directa Autombtica de los Diagramas de Secuencias

Para la construccioacuten automaacutetica de un diagrama de secuencias se toma como base a un diagrama de Clases El modulo ldquoExtraer informacioacuten del diagrama de Clasesrdquo sirve para obtener el nombre y los meacutetodos descritos en cada uno de las clases que existan en el diagrama de Clases

22

Desarrollo de la herramienta

Con base en la informacioacuten que se tiene se abren los archivos correspondientes a los diagramas de Warnier El proceso que se emplea sobre cada uno los diagramas de Warnier llamado ldquoExtraer informacioacuten de los disentildeos detallados de los meacutetodosrdquo sirve para recopilar el conjunto de las llamadas de cada meacutetodo definido

En el siguiente paso (ldquoReconocer llamadas a meacutetodosrdquo) consiste en identificar si los meacutetodos que estaacuten descritos en los diagramas de Warnier tambieacuten lo estaacuten en el diagrama de Clases correspondiente

El paso ldquoConstruir los diagramas de secuencias automaacuteticamenterdquo realiza una validacioacuten de los meacutetodos definidos en los diagramas de Clases con los meacutetodos definidos en los diagramas de Warnier Este paso crea una estructura de datos con la secuencia de las llamadas y la recorre para crear los objetos y los mensajes en el diagrama de secuencias

AI terminar la creacioacuten automaacutetica del diagrama de secuencias se dispone de la r opcioacuten de guardar

31 Disentildeo de la Arquitectura

Para definir los procesos que el sistema va a realizar es necesario llevar a cabo un anaacutelisis de requisitos los cuales pueden ser expresados mediante diagramas de Casos de Uso Los Casos de Uso son una descripcioacuten textual narrativa de los procesos de un sistema

311Requisitos (Diagrama de Casos de uso)

Los casos de uso en realidad no son un artefacto de anaacutelisis orientado a objetos estos describen simplemente procesos y pueden ser igualmente efectivos en un proyecto tecnoloacutegico no orientado a objetos Son usados en un paso preliminar a la descripcioacuten de requerimientos de un sistema [LAR971 La Figura 32 muestra el diagrama de casos de uso que especifica al S3C

9

S3C (Diagramas de Secuencias)

usuario I Modelado de

I

Figura 32 Diagrama de Casos de Uso para el S3C

23

Desarrollo de la herramienta

Descripcioacuten de los Casos de Uso

Caso de Uso ldquoDiagramas de Secuenciasrdquo Se inicia cuando el actor ldquousuariordquo solicita la creacioacuten de un Diagrama de Secuencias Se establece la forma de la construccioacuten automaacutetica de los diagramas de secuencias de UML Se hace uso del Modelado de Clases y del Modelado del disentildeo detallado de los meacutetodos

Escenario de Eacutexito 1 Se obtiene la informacioacuten de las clases del modelado de clases 2 Se obtiene la informacioacuten del modelado del disentildeo detallado de los meacutetodos 3 Se realiza la construccioacuten automaacutetica de los diagramas de secuencias

1 En el modelo de clases no hay informacioacuten o estaacute incompleta 2 En el modelo del disentildeo detallado de los meacutetodos no hay informacioacuten o estaacute

incompleta

Escenario de Falla

Caso de Uso ldquoModelado de Clasesrdquo El diagrama de Clases se utiliza para obtener los nombres de clases y los nombres de los meacutetodos de cada clase

Escenario de Eacutexito 1 Se abre el modelo 2 Se procesa para obtener la informacioacuten de las clases (nombres de clases y nombres

de meacutetodos)

Escenano de Falla h 1 No se puede abrir el modelo J 2 El modelo esta vaciacuteo

Caso de Uso ldquoModelado del Disentildeo detallado 1 los meacutetodosrdquo El disentildeo detallado de los meacutetodos se realiza con diagramas de Warnier aquiacute se establecen las llamadas a funciones dentro del sistema y es aquiacute donde se identifica el dinamismo que se representaraacute en los diagramas de secuencias

Escenario de Eacutexito 1 Se abre el modelo 2 Se realiza la identificacioacuten de las llamadas existentes

Escenario de Falla 1 No se puede abrir el modelo 2 El modelo esta vaciacuteo

24

Desarrollo de la herramienta

Clase Objeto ni I Diagrama I n ____ Nombre Descripcioacuten

i

Mensaje

Tipo

En el Anaacutelisis Orientado a Objetos se crea una especificacioacuteii del dominio del problema y de los requeriinientos desde la perspectiva de una clasificacioacuten por objetos y del entendimiento de los teacuterminos usados en el dominio del problema Una descomposicioacuten del dominio del problema involucra una identificacioacuten de conceptos atributos y asociaciones que son considerados importantes dentro del dominio El resultado puede ser expresado en un Modelo Corzcepttraf el cual es ilustrado en un conjunto de diagramas que definen conceptos (objetos) [LAR97]

312Modelo Conceptual

El modelo conceptual visto en la Figura 33 no es una descripcioacuten de componentes de software representa conceptos en el domino del problema en el mundo Teal [LAR97l

313Diagramas de clases

Por cuestiones dc espacio las clases de la arquitectura del sistema estaraacuten referidas en varios diagramas que de alguna manera estaacuten relacionados entre si

Una de las partes maacutes importantes del Ambiente Visual S3C es la estructura de clases ltCCraJicogt la cual se refiere al control de los diagramas eacutesta por su naturaleza podriacutea considerarse el nuacutecleo del sistema La manipulacioacuten y control de los diagramas estaacute definido en una estructura de clases organizada con el patroacuten de disentildeo Composite que se muestra en la Figura 34

25

Desarrollo de la herramienta

CRecursividadDS CMensajeDS CObjetoDS CDiagramaDS

I Cvisitor I

CApuntadorDS CDblClickDS CAsocAdjusterDS CSelectorDS

26

Desarrollo de la herramienta

n 32 Elementos de la arquitectura

Es necesario describir los elementos que dan soporte a la arquitectura del ambiente donde se implementaraacute el sistema en este caso Microsoft Visual (MV) C++ 6 El MV C++ es un marco de aplicacioacuten poderoso basado en Windows se integran ademaacutes del lenguaje C++ (compilador y enlazador) el programa de desarrollo de programas en lenguaje C para Windows (SDK) la Microsoft Foundation Class Library AppWizzard Classwizard AppStudio y WorkBencli

La Microsoft Foundation Class Library comprende una biblioteca de clases de C++ y es considerada como el nuacutecleo del MV C++

321Microsoft Foundation Class (MFC)

La libreriacutea Microsoft Foundation Class (MFC) es una interfaz orientada a objetos que tiene las siguientes metas de disentildeo

o

Reduccioacuten significante de esfuerzo al escribir una aplicacioacuten para Windows Velocidad de ejecucioacuten comparable a las APIrsquos del lenguaje C Miacutenimo tamantildeo de coacutedigo Capacidad para llamar cualquier funcioacuten de Windows en C directamente Faacutecil conversioacuten de aplicaciones existentes en C a C++ Faacutecil uso de APIrsquos de Windows con C++ como con C Faacutecil uso de complicadas caracteriacutesticas de abstracciones poderosas como ActiveX soporte para base de datos impresioacuten barras de herramientas y barras de estado El API de Windows en C++ si usa tan efectivamente como las caracteriacutesticas mismas del lenguaje C++

La mayoriacutea de las clases de la Libreriacutea de la Microsoft Foundation Class son derivadas de una clase base ltCObjectgt que es la raiacutez de la jerarquiacutea de clases ltCObjectgt da uacutetiles capacidades a las clases que derivan de ella

La jerarquiacutea que existe en las clases derivadas de ltCObjectgt es la siguiente

Arquitectura de Aplicacioacuten Excepciones Servicios de Archivos Arreglos Listas Mapas Servicios de Internet Sockets Sincronizacioacuten Soporte para base de datos D A 0

27

Desarrollo de la herramienta

i

r

Liacutenea de Comandos Menuacute Dibujo Graacutefico Dibujo Graacutefico de Objetos Soporte de Control Soporte de Ventanas

Soporte para base de datos ODBC

o Marco de Ventanas o Barras de control o Hojas de propiedades o Cajas de Dialogo o Vistas o Controles

322Arquitectura Documento Vista

Por defecto las aplicaciones creadas con la MFC usan un modelo de aplicacioacuten que separa los datos del programa de las vistas de interaccioacuten con el usuario En eacuteste modelo un objeto documento de MFC lee y escribe datos en un almacenamiento persistente Un objeto vista administra el despliegue de datos suministrando al usuario los datos para ser seleccionados o editados La vista le comunica al documento cualquier cambio en los datos La razoacuten maacutes conveniente para seguir este modelo es cuando se necesita muacuteltiples vistas del mismo documento (como en una hoja de caacutelculo y un graacutefico)

La arquitectura documentovista hace faacutecil el soporte de muacuteltiples vistas y muacuteltiples tipos de documentos asiacute como la divisioacuten de ventanas y otras caracteriacutesticas de interfaz de usuario Pero el corazoacuten de la arquitectura son cuatro clases (Mostradas en el aacuterbol de clases de la Figura 36)

ltCDocumerrtgt (o ltCOleDocuinentgt) - Se instancia un objeto de este tipo para almacenar y controlar los datos del programa ltCViewgt (o una de sus clases derivadas ltCScrotlViewgt ltCFormViewgt ltCEditView ltCRecordViewgt ltCDaoRecordView ltCtreeViewgt ltCListViewgt b ltCrichEditViewgt) - Un objeto es usado para desplegar los datos y administrar la interaccioacuten del usuario con los datos ltCFrameWndgt (o una de sus variantes) - Establece el marco sobre el que trabajaraacuten una o mas vistas de un documento ltCDocTemolategt (o ltCSingIeDocTemplategt o ltCMultiDocTemplategt) - Coordina la existencia de uno o maacutes documentos de un tipo dado y administra la correcta creacioacuten de los documentos vistas y objetos ventanas para cada tipo

i

28

Desarrollo de la herramienta

______________ 2 Wiew

I - - __ - ------a ________________

323Integrando Ambientes en Visual C t t

Las aplicaciones de Interfaz de Documento Uacutenico (SDI) soporta muacuteltiples tipos de documentos pero este soporte es para un solo objeto documento Debido a esta restriccioacuten y aunado a la necesidad de tener varios objetos documentos a la vez se determina la utilizacioacuten del modelo Interfaz de Muacuteltiples Documentos (MDI) indicado en la Figura 37

324Interfaz de Muacuteltiples Documentos (MDI)

Una aplicacioacuten de Interfaz de Muacuteltiples Documento (MDI) permite la creacioacuten de plantillas para el manejo de los documentos eacutesta plantilla tiene la forma

rn-pDocTemplate = new CMultiDocTernplate ( I DR-SCUMLTY PE RUNTIME-CLASS (CSCUMLDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CTheView))

AddDocTernplate ( rn-pDocTemplate )

Cada plantilla describe una relacion del tipo de documento con la vista asociada La definicioacuten de la plantilla para el ambiente que controla los diagramas de secuencias es la siguiente

29

Desarrollo de la herramienta c

m-pTernplateSeqDlag = new CMultiDocTernplate ( IDR-DS-SJCTYPE RUNTIME-CLASS (CSeqDiagDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CSeqDiagView) )

AddDocTernplate( rn-pTernplateSeqDiag )

Esta plantilla hace uso de la clase CCliildFrame que por defecto el ambiente Visual C++ construye y esto es debido a que no se requieren caracteriacutesticas extras en las ventanas de las que proporciona dicha clasc En un caso en el que se requiriera un comportamiento diferente de la vista tendriacutea que crearse una nueva clase con las caracteriacutesticas deseadas

Vista Documento

Vista

I- Vista Documento I [ Tip- F Vista

L Figura 37 Modelo Interfaz de Muacuteltiples Documentos (MDI)

Para integrar otro Ambiente que utilice otro tipo de documento es necesario definir otra plantilla de la misma forma mencionada Debe tomarse en cuenta los siguientes puntos

Es necesario definir el nombre (mqTemplateNOMBRE) El IDR del tipo que se requiere que sea el documento En la primera liacutenea RUNTIME CLASS debe indicar la clase ltCDocumentgt que desea La segunda liacutenea RUNTIME-CLASS soacutelo la cambia a otra clase si requiere de otro manipulador de ventanas de lo contrario deje que ltCChildFramegt se haga cargo

-

30

Desarrollo de la herramienta

En la uacuteltima liacutenea referente a RUNTIME-CLASS se debe indicar la clase ltCViewgt que desea usar Para finalizar se usa la instruccioacuten AddDocTernplate para finalizar la definicioacuten del template (mgTemplateNOMBRE)

325 Recursos Diaacutelogos Mertuacutes y Barras de Herrattriertias

Son varios los recursos con los que se puede contar al crear un proyecto en Microsoft Visual C++ Los diaacutelogos son un recurso disponible que son utilizados para visualizar ingresar yo modificar informacioacuten que se requiera En el Ambiente Visual que se desarrolla son varios los diaacutelogos que se utilizaraacuten y eacutestos se describen a continuacioacuten

El Diaacutelogo ldquoCaracteriacutesticas del Obietordquo (Figura 38) identifica el nombre del Objeto y la descripcioacuten del mismo Este diaacutelogo se muestra cuando se presiona doble clic sobre un objeto del diagrama

I Nombre

Desciipcion

Figura 38 Dialogo Caracteriacutesticas del Objeto

El Diaacutelogo ldquoMensaierdquo (Figura 39) muestra el nombre del mensaje que puede ser modificado ademaacutes se visualizan el Identificador del Mensaje el tipo de Mensaje asiacute tambieacuten el origen y destino del mensaje

31

Desarrollo de la herramienta

Nornbie delMensaje Edit

IDentificador del Mensaje Edil Tipo de Mensaje (Edil

Edit Objeto Origen

Objeto Destino IEdit

i25El A Figura 39 Dialogo Mensaje

El menuacute es otro de los recursos del que se puede disponer para organizar el ambiente que se estaacute creando Para eacuteste caso en particular no se hizo modificaciones al menuacute estaacutendar (Figura 310) que Visual C++ presenta Los cambios significativos son el manejo del tipo de documento para los Diagramas de Secuencias

Archivo Editar Yer VenLana AyGda

Figura 310 Menuacute de los Diagramas de Secuencias (estaacutendar)

Otro importante recurso del que uno se puede valer en Visual C++ es la barra de herramienta personalizada la cuaacutel es construida en el Editor de Recursos Se ha construido una barra (Figura 311) con los elementos graacuteficos de los Diagramas de Secuencia de UML

Figura 311 Barra de Herramientas de los Diagramas de Secuencias

Es recomendable que al utilizar barras de herramienta personalizada se defina en el tamantildeo estaacutendar ya que puede experimentar problemas al momento de ejecutar la aplicacioacuten

Ademaacutes puede usar la propiedad TBBS-CHECKGROUP en una barra de herramientas para establecer que los botones puedan quedar presionados hasta que un botoacuten diferente sea presionado No olvide que la numeracioacuten inicia con cero ( O )

vuriableToolBurSetButtonStyle(OTBBSCHECKGROUP)

32

Desarrollo de la herramienta

Prefijo ID IDC IDD IDP IDR IDS

326 Notacioacuten estaacutendar

Los nombres descriptivos de los recursos se asocian a un valor uacutenico Para una mayor claridad eacutestos nombres mantienen un prefijo que describe el tipo de recurso asociado (vea la Tabla 31) [MIC99]

Tipo de Recurso Comandos de Menuacute Controles y recursos Cuadros de diaacutelogo Cadenas de solicitud para cuadros de mensaje Menuacute principal barras de herramienta tabla aceleradora y el icono Cadenas

IDR IDD IDC ID

200 - 299 3000 - 3999 34000 - 34999

Estos son los rangos de valores establecidos para el proyecto S3C Si se utiliza el coacutedigo fuente y se planea agregar otro proyecto verifisue que no se invadan estos nuacutemeros para evitar problemas

Para facilitar auacuten maacutes los trabajos futuros se ha definido una estructura de carpetas (ver Figura 312) para incluir en cada una las Clases correspondientes a cada tesis en desarrollo

33

Desarrollo de la herramienta

ill ~~ -

-I SCUML classes + U A N T L R + U App + 0 ClassDiagrams + 0 Common + a Java

t $2 SequenceDiagiams

+ WarnierDiagrams

iJ PackageDiagrams

12 StaterChartDiagrams

+

- f Classview I Resourceview 1 FileView ]

~ ~

Figura 312 Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)

327Estructura de datos persistencia y recuperacioacuten

Existe una gran cantidad de tipos de datos estructuras clases y meacutetodos de los que se puede hacer uso para una mejor y maacutes faacutecil obtencioacuten de los resultados A continuacioacuten hago comentarios en tipos de datos y meacutetodos en los que podriacutea tener problemas

CTypedPtrList

AI usar este tipo de dato o alguno relacionado que le permita utilizar el meacutetodo ltCTvrgtedPtrListGetNextgt tenga especial precaucioacuten al usarlo ya que al devolver el valor requerido la variable POSITION usada no se queda apuntando a ese valor en particular salta al inmediato siguiente de la lista

Si se realiza una creacioacuten dinaacutemica con punteros para los elementos de una CTypedPtrList Despueacutes de haberlo agregado a la lista evite el delete para borrar esta Usted deseando liberar la memoria no lo haga ya que eliminara directamente el elemento de la lista

POSITION

Es un valor usado para denotar una posicioacuten de un elemento en una coleccioacuten Pero CUIDADO no se refiere a un iacutendice es una referencia (no consecutiva) de punteros muy diferente a un iacutendice

CString

Auacuten cuando el operador de comparacioacuten == (igual a) es permitido para ser utilizado en las cadenas evite su uso ya que en ocasiones aunque cuando la e

34

Desarrollo de la herramienta

compilacioacuten no indique error alguno en la ejecucioacuten no realizaraacute lo que se necesita Recomiendo que utilice CStringCompare ()

Para eliminar el contenido de un CString utilice CStringEmpty() ya que asignar a la cadena un ldquonrdquo podriacutea causarle problemas

Serializacioacuten

Una forma en que se puede guardar informacioacuten y recuperarla de manera eficaz es mediante la serializacioacuten de objetos La serializacioacuten es un proceso que permite escribir un objeto en un archivo y tambieacuten leerlo

Para que la serializacioacuten se lleve a cabo son necesarios tres objetos un objeto de tipo ltCFilegt que represente el archivo un objeto de tipo ltCArchivegt que ofrece el entorno para la serializacioacuten y la clase del objeto a ser serializado debe ser heredada de ltCObjectgt y sobrescribir el meacutetodo ltSerializegt para que se encuentre de tal forma en que pueda ser serializado (vea la Figura 313)

Objeto a ser serializado 1

1 CArchive

[f --=I- ---7 Archivoexi

u Figura 313 Serializacioacuten

328Patrones de disentildeo utilizados

Se ha planteado la definicioacuten de una arquitectura de clases utilizando patrones de disentildeo debido a que algunos de ellos hacen maacutes faacutecil la extensioacuten de la funcionalidad y mantenimiento

35

Desarrollo de la herramienta

El patroacuten Composite es utilizado para crear de manera uniforme el diagrama sobre el que se trabaja (ver Figura 34) manteniendo una jerarquiacutea de clases uniforme las clases maacutes bajas en la jerarquiacutea definen primitivas de objetos graacuteficos

Se aplica el patroacuten de disentildeo Iterator para hacer recorridos en listas de objetos para realizar diversas operaciones Otro patroacuten de disentildeo del que se hace uso es el Visilor (ver Figura 35)

Para otras actividades que se realizan podriacutea pensarse en que se deberiacutean aplicar otros patrones pero se han evitado algunos (como el patroacuten de disentildeo Builder) para evitar incrementar la complejidad en la arquitectura ya que ai mantener el modelo de la MFC de documentovista la funcionalidad del patroacuten de disentildeo Builder es faacutecilmente reemplazado si se hiciera Uso de eacuteste se aumentariacutea la complejidad excesivamente (nos llevariacutea a perdemos en ocasiones en el paso de mensajes entre clases) dantildeando la facilidad de la arquitectura

33 Diagrama de secuencias

Un Diagrama de Secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten escenario Oacute comportamiento se usan para definir el curso loacutegico de accioacuten de un posible camino a seguir en la resolucioacuten de un problema Seguacuten John Daniels [DANO2] ldquoel principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildean las interacciones de los objetosrdquo

Los Diagramas de Secuencias se utilizan en el modelado de la implementacioacuten de sistemas de software ademaacutes son aplicables en el modelado de requisitos para establecer las comunicaciones existentes entre actores yo clases del sistema Con eacutestos diagramas se logran hacer descripciones de los escenarios y los comportamientos del sistema Con los Diagramas de Secuencias es posible definir protocolos de comunicacioacuten con paso de mensajes ya que dan esa flexibilidad que se requiere Ademaacutes los Diagramas de Secuencias contienen informacioacuten suficiente para que puedan ser transformados a los diagramas de colaboracioacuten [RUM Ol][BOO Oil

331Ciclo de vida del software

Considerando cualquier modelo de ciclo de vida del software (en la figura 314 se muestra el Modelo de cascada) el aacutembito directo de eacuteste Ambiente Visual es en el disentildeo aunque tiene sus vertientes en la codificacioacuten y mantenimiento

36

Desarrollo de la herramienta

Diseno

Codificacibn

I I I I Mantenimiento I

igura 314 Modelo de cascada del ciclo de vida del software

34 Elementos atoacutemicos de la Gramaacutetica

Definicioacuten de los elementos atoacutemicos del lenguaje y su contenido

1 Actor- Representa roles de entidad externos al sistema con el que interactuacutea directamente Los actores pueden ser humanos dispositivos u otros sistemas

2 ClaseObjeto- Determina una Clase u Objeto participante en la interaccioacuten

3 Mensaje-Es una comunicacioacuten entre objetos que contiene informacioacuten Eacuteste se representa con la finalidad a que una accioacuten sea llevada a cabo

4 Mensaje con tiempo- Tiene la misma finalidad que el mensaje la diferencia es que con eacutel se representa un atributo de tiempo

5 Mensaje asiacutencrono Es un mensaje que ocurre en el tiempo de manera independiente a otros mensajes

6 Mensaje de destruccioacuten de objeto- Es un mensaje cuya finalidad es indicar la destruccioacuten del objeto destino

7 Mensaje de creacioacuten de objeto- Es un mensaje que indica la creacioacuten de un objeto

8 Llamada al mismo objeto (Recursividad)- Es usado para modelar llamadas recursivas en el que una operacioacuten es invocada por el mismo objeto

37

Desarrollo de la herramienta

9 Destruccioacuten del objeto (AutodestrucciOacuten)- Puede o no modelarse es representada con una X al final de la liacutenea de vida del objeto

Elementos aulomaacuteticos

1 Liacutenea de Vida- Representa la vida del objeto durante la interaccioacuten

2 Activacioacuten- Muestra el periacuteodo de tiempo en el cual el objeto alguna operacioacuten

341RepresentaciOacuten visual

Representacioacuten visual de los elementos atoacutemicos del lenguaje

Actor

_- A

Mensaje

Mensaje de Creacioacuten de

Objeto

ClaseObjeto

I

Mensaje de retorno

Mensaje de Destruccioacuten de

Objeto

abla 32 Element(

Activacioacuten

Mensaje con tiempo

Autodestruccioacuten

x

atoacutemicos del lengi

taacute realizz

Texto ===I (letra)+ (letra I

numero) letra= AZ I az numero = 09

I

Recursividad ~

I

i j e

io

38

u

Comentario

iexcl

Conector de Comentario

35 Gramaacutetica desarrollada

La gramaacutetica que se propone es una gramaacutetica visual del tipo relacional Una gramaacutetica relacional pertenece a las gramaacuteticas libres de contexto es una 6-iupla G (N C S R Attr P) donde

N es un conjunto finito de siacutembolos no terminales C es un conjunto de siacutembolos terminales S es un siacutembolo distinguido en N llamado siacutembolo inicial R es un conjunto finito de siacutembolos de relacioacuten Attr es un conjunto finito de siacutembolos de atributos P es un conjunto de producciones

Entonces definiendo nuestra gramaacutetica G (N C S R Attr P)

N = Diagrama GrupoClaseObjeto

S = Diagrama

R = mensaje mensajeTiempo mensajeRetomo mensajeAsincrono mensajecrea mensajeDestruye autodestruccioacuten recursividad

R

Attr = entrada salida entradacrea

39

Desarrollo de la herramienta

Definiendo la posicioacuten de los atributos en los elementos visuales

entradacrea ObetaClase

entrada

salida

P =

Diagrama I GrupoClaseObjeto (mensaje (mensajeRetorno

(salida 1) (entrada 2) ) (salida 2) (entrada 1) )

- Diagrama 0 GrupoClaseObjeto

(mensaje (mensaje (mensajeRetomo (mensajeRetomo (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entradacrea 2) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 1) ) (salida 1) (entrada 1) )

entrada

salida

40

Desarrollo de la herramienta

s

-

GrupoClaseObjeto - 1 1 I 2 (mensaje (mensaje (mensajeRetorno (mensajeRetorno (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entradacrea 2) ) (salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 1) ) (salida I ) (entrada I ) )

1 En las gramaacuteticas relacionales una produccioacuten estaacute acompantildeada de las posibles

relaciones que puedan generarse En la primera produccioacuten Diagrama produce a un Actor seguida de un GrupoClaseObjeto el Actor inicia la interaccioacuten con un mensaje y recibe el mensaje de retorno al finalizar la interaccioacuten La segunda y tercera produccioacuten son similares debido a que un GrupoClaseObjeto contiene dos ClaseObjeto que se relacionan de la misma forma

Existe un elemento de la gramaacutetica llamado Attr (Atributo) el cual define la parte de los elementos visuales donde se establecen las relaciones Se han determinado dos atributos (entrada y salida) que para nuestro propoacutesito estaraacuten establecidos en la liacutenea de vida de cada elemento visual (Actor y ClaseObjeto)

Los Comentarios y la Activacioacuten no se consideran en la gramaacutetica Los comentarios son libres de incluirse y relacionarse con cualquier elemento y relacioacuten mencionada anteriormente y la activacioacuten existe siempre que se presente un mensaje (o podriacutea omitirse) Estas consideraciones se realizaron para hacer auacuten maacutes faacutecil la gramaacutetica ya que si se trata de realizar un sistema las restricciones de estos elementos pueden mantenerse en el lenguaje de programacioacuten en el que se desarrolle el sistema

36

Precondiciones

El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias

1 El diagrama de Clases debe existir y estar completo 2 Debe existir un archivo con un diagrama de Warnier por cada diagrama de Clases y

con el mismo nombre de archivo (excepto la extensioacuten del archivo) 3 En el uacutenico diagrama de Warnier de cada Clase se deben modelar todos los meacutetodos

de la Clase 4 No realizar declaraciones de meacutetodos

41

Desarrollo de la herramienta

5 Debe existir un meacutetodo lsquomain()rsquo en el diagrama de Clases

Restricciones

Los meacutetodos deben mantener nombres distintos en las diferentes Clases

Metodologiacutea para la obtencioacuten automaacutetica de los Diagramas de Secuencias

1 Seleccionar el diagrama de Clases

2 Se construye una lista con los nombres de las Clases y los Meacutetodos

3 Se verifica si exista el meacutetodo lsquomain()rsquo en alguna Clase Se busca la existencia de una uacutenica Clase

a La Clase que contenga lsquomain()rsquo se va al inicio de la lista de Clases

b Si no existe lsquomain()rsquo SE TERMINA EL PROCESO

4 Se verifica la existencia de los archivos que contienen el Disentildeo Detallado de los meacutetodos en Wamier para cada una de las Clases si alguno falta SE TERMINA EL PROCESO

5 Se procesa cada uno de los modelos del Disentildeo Detallado de los Meacutetodos generando una lista de secuencias de llamadas por cada uno de los meacutetodos

6 Se verifica que cada llamada corresponda a alguacuten meacutetodo existente (del diagrama de Clases) De no existir ese meacutetodo la llamada entra a una estructura que

7 Se crea una lista de secuencia

a Se inicia con lsquomain()rsquo b Se recorre cada una de las llamadas de los meacutetodos c Se considera invaacutelido el caso de que un meacutetodo intente una llamada

recursiva al meacutetodo lsquomain()rsquo

8 Se muestra un diaacutelogo de resultados en el que se indican las llamadas que no se encnotraron definidas y que pueden ser Llamada a libreriacutea oacute Llamada Erroacutenea

42

Capiacutetulo 4

Prue6as y su6taaacuteos

En eacuteste capiacutetulo se da a conocer el detalle de las pruebas y de los resultados obtenidos Se describen los casos de prueba con los que se realizoacute la evaluacioacuten del sistema asiacute tambieacuten se presentan comentarios acerca de los resultados obtenidos

Pruebas y Resultados

41 Recursos teacutecnicos utilizados

Para llevar a cabo las pruebas al sistema S3C se utilizaron los siguientes equipos de Coacutemputo

Computadora de escritorio

256MB RAM Disco Duro 80G Monitor 17rdquo SAMSUNG

AMD Athlon XP 1600+ I4Ghz

Computadora de escritorio Intel Pentium 4 - 128MB RAM Disco Duro 40G Monitor 15rdquo i -

42 Descripcioacuten del plan de pruebas

Las pruebas establecen el Uacuteltimo paso desde donde es posible evaluar la calidad y descubrir los errores Las pruebas y la validacioacuten del software se utilizan para comprobar que el sistema cumple con las expectativas del usuario

En esta seccioacuten se describen los casos de prueba que se realizaron al prototipo de S3C en conjunto a la suite cenidet-UML Para cada uno de los casos se presenta el objetivo el procedimiento que se siguioacute para la prueba y se muestran los resultados obtenidos - _

Las pruebas a realizar son los siguientes

Caso 1 Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Caso 2 Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Wamier

Caso3 Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Wamier

Caso4 Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo 5

44

Pruebas y Resultados

43 Resultados

431 Caso 1

5 Y

IZ =

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoSirdquo 4 Seleccionar el archivo ldquoVENTASrdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 41 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

s3c iuevo Proyecto SCUM1

Diagrama de clases

lvendedor I L

3

salida

venta prod

4 venia-oferta vcntaprod =

salida 6

Figura 41 Resultado del caso de prueba 1

45

Pruebas y Resultados

432 Caso 2

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Warnier (almacenwar cajawar vendedorwar) que ya cxisten (del caso de prueba I )

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoNordquo 4 Agregar las siguientes Clases con los respectivos meacutetodos y atributos

a Claseldquovendedorrdquo Meacutetodos ldquoventa mainrdquo b Claseldquoalmacenrdquo Meacutetodos ldquoentrada salidardquo c Claseldquocajardquo Meacutetodos ldquoventagrodrdquo

5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 42 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

Diagrama de daseo lisgrama dcsccucncis

MOIDOC Anivo

venta prod

salida

1 Ycrdquo1a 2

I 4 vcrdquolD~o1cn venta prod gt

salida 6 i Figura 42 Resultado del caso de prueba 2

46

Pruebas y Resultados

r

433 Caso 3

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Warnier

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 43 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

5

Error al tratar de abrir el archivo A bZwar

Aceptar i

Faltan Archivos de Disentildeos Detallados de Meacutetodos 1 1 A No se puede crear el diagrama de secuencias

Figura 43 Resultado del caso de prueba 3

47

Pruebas y Resultados

434 Caso 4

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 44 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

lsquo I

~ _ i i _ l _ Repaado ~~ ~ ~ 6~ ampA Figura 44 Resultado del caso de prueba 4

48

Pruebas y Resultados

PRUEBA DESCNPCION CASO 1 Mostrar la funcionalidad del

Sistema S3C a partir de un

44 Anaacutelisis de Resultados

RESULTADOS Se comproboacute la correcta funcionalidad del Sistema S3C a partir de un diagrama

CASO 3

CASO4

I diagrama de Clases cxistcnte I de Clases existente CASO 2 I Mostrar la funcionalidad del I Sc comproboacute la corrccta funcionalidad

Sistema S3C a partir de un del Sistema S3C a partir de un diagrama diagrama de Clases que se de Clases que se construye al momento construye al momento Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el Secuencias si falta alguno de los diagrama de Secuencia si falta alguno diagramas de Warnier Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el secuencias si hace falta el meacutetodo diagrama de Secuencias al faltar el ldquomain ()rdquo meacutetodo ldquomain()rdquo

de los diagramas de Warnier

Los resultados obtenidos de cada uno de los casos establecidos demuestran que se validoacute la funcionalidad del prototipo con los requisitos definidos en el alcance de este proyecto

a lt

49

Conclusiones y Tru6ajos Futuros

Aquiacute se dan a conocer las conclusiones y se describen los posibles trabajos futuros para la continuacioacuten de eacuteste proyecto

F

51 Conclusiones

Conclusiones y trabajos futuros

Se ha creado un Ambiente Visual que permite obtener de forma automaacutetica los Diagramas de Secuencias en base a los diagramas de Clases y al disentildeo detallado de los meacutetodos descritos con diagramas de Warnier cumpliendo con los objetivos planteados para este trabajo

La tesis aporta principalmente La generacioacuten automaacutetica de los diagramas de secuencias y la eliminacioacuten de inconsistencias al mantener una validacioacuten directa de los diagramas de clases y los diagramas de Warnier que son utilizados

Esta validacioacuten es lograda a traveacutes del uso de la gramaacutetica visual relaciona1 que se ha definido (veacutease el capiacutetulo 3) Esta gramaacutetica visual establece reglas para la correcta construccioacuten de los diagramas de secuencias

P De esta manera se establece que la hipoacutetesis ldquoEs posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodosrdquo Es verdadera

52 Trabajos Futuros

Un Diagrama de Secuencias puede convertirse en un Diagrama de Colaboracioacuten por lo tanto un trabajo futuro es la construccioacuten automaacutetica de un Diagrama de Colaboracioacuten a partir de uno de Secuencias existente

Es posible calcular la meacutetrica de acoplamiento al tener un Diagrama de Secuencias construido

La Ingenieriacutea directa de un Diagrama de Secuencias estableciendo la validacioacuten en la construccioacuten de todos los elementos visuales que UML define

La propagacioacuten de las modificaciones de un Diagrama de Secuencias a los Diagramas de Clases y los Diagramas de Warnier

La modificacioacuten del coacutedigo fuente mediante los cambios establecidos en un Diagrama de Secuencias

51

[ALC03]

[BLA98]

[B0099]

[BOOOi]

[BR097]

[CHA90]

[DAN02]

[GLA02]

[HAC98]

[HER03]

4

Alcate1 Computer Associates International inc Electronic Data Systems Corporation Hewlett-Packard Company IBM Corporation I-Logix IntelliCorp Kabira Technologies Kennedy Carter Microsoft Corporation Object Management Group Oracle Corporation Project Technology Ptech Inc Rational Software Corporation Reich Technologies Softeam Taskon A S Telelogic Unisys Corporation ldquoOMG Unified Modeling Language Specificationrdquo Version 15 Unified Modeling Language 2003

Blaha Michael Rumbaugh James Premerlani William Eddy Frederick Lorensen William ldquoObject-oriented modeling and designrdquo Prentice Hall 484 Paacuteginas ISBN 0-13-629841-9 QA-769-03S-B53-19981998

Booch Grady Rumbaugh James Jacobson Ivar ldquoEl lenguaje unificado de modeladordquo Addison Wesley 432 Paacuteginas ISBN 84-7829-028-1 1999

Booch Grady Rumbaugh James Jacobson Ivar ldquoThe Unified Modeling Language User Guiderdquo Addison Wesley 2001

Brown David ldquoAn introduction to object-oriented analysis objects in plain Englishrdquo John Whiley amp Sons Inc 700 Paginas ISBN 0-471-1 1028-0 QA-769-035-B76-1997 1997

Chang Shi-Kuo ldquoVisual Languages and visual programmingrdquo Plenum Press 340 Paacuteginas ISBN 0-306-43428-8 QA-7665-V57-1990 1990

Daniels John ldquoModeling with a sense of purposerdquo Design - IEEE Software JanuaryEebmary 2002

Glasgow Universidad Reino Unido ldquoA UML Editor in Javardquo (lthttplstudentsdcsglaacuWstudentspainjfproject-reportproject-re port-htmV4thYearReporthtrnlgt 2002)

T Hackos JoAnn C Redish Janice ldquoUser and Task Analysis for Interface Designrdquo Wiley Computer Publishing 488 Paacuteginas ISBN QA-769-U83- H33-1998 1998

Hemaacutendez Velaacutezquez M ldquoIngenieriacutea inversa de coacutedigo fuente en C++ para la obtencioacuten de su disentildeordquo Tesis AT-379 (03-0334) 2003

Conceptos generales

[HIX93]

[JAC93]

[JAC99]

[JOY98]

[LAR97]

[MAR]

[MIC99]

[MIC02]

[MOU98]

Hix Deborah Hartson H Rex ldquoDeveloping user interfacesrdquo 381 Paacuteginas ISBN 0-471-57813-4 QA-769-U83-H59-1993 1993

Jacobson Ivar Christerson Magnus Jonsson Patrik Overgaard Gunnar ldquoObject oriented software engineeringrdquo Addison Wesley ISBN 0-20 1 - 54435-0 QA-7676-D47-J63-1993 1993

Jacobson Ivar Booch Grady Rumbaugh James ldquoEl proceso unificado de desarrollo de softwarerdquo Addison Wesley 438 Paacuteginas ISBN 84-7829-036- 2 1999

Joyanes Aguilar Luis ldquoProgramacioacuten orientada a objetosrdquo McGruw Hill ISBN 84-481-0590-7 1998

Larman Craig ldquoAplying UML and Patternsrdquo Prentice Hull 507 Paacuteginas ISBN 0-13-748880-7 QA-769-035-L37-1997 1997

Marriot Kim Meyer Bemd ldquoVisual Language Theoryrdquo Springer 381 Paacuteginas P-935-V567-1998 1998

Microsoft ldquoMicrosoft Visual C++ 6 manual del programadorrdquo McGraw Hill ISBN 84-481-2127-9 QA-7673-Cl53-23718-1999 1999

Microsoft ldquoVisiordquo (lthttpwwwmicrosoftcomofficevisiogt 2002)

B Mourao Luis X ldquoUniversal Modeling Language Part 11 UML Notation - Case Sequence and Collaboration Diagramsrdquo Lan Times Magazine (~httpwwwlantimescomltpartsdiscussdiscuss6Ohtm~) 1998

No Magic ldquoMagicDrawrdquo (lthttpwwwmagicdrawcomgt 2002)

Object Insight ldquoJvisionrdquo (lthttpwwwobject-insightcomgt 2002)

Rational Software Microsoft I Hewlett-Packard Oracle Sterling Software MCI Systemhouse Unisys ICON Computing IntelliCorp i-Logix IBM ObjectTime Platinum Technology Ptech Taskon Reich Technologies Sofieam ldquoUML Summaryrdquo Version 11 Unified Modeling Language 1997

Rational ldquoRational Roserdquo (lthttpwwwrationalcomproductosrosegt 2002)

Rikki Kirzner ldquoAnalysis Modeling and Design Tools Market Forecast and Analysis 2001-2005rdquo Bulletin Published Under Services Application Design and Construction Tools Application Development and Deployment Strategies Documento Nuacutemero 24809 Junio 2001

53

Conceptos generales

[RIM92] Rimrner Steve ldquoGraphical user interface programmingrdquo 423 Paacuteginas

1992

Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language reference manualrdquo Addison Wesley 550 Paacuteginas ISBN 0-201-

ISBN 0-8306-2475-9 ISBN 0-8306-2472-4 (pbk) QA-769-083-R55G

[RUM99]

30998-X QA-7676-D47-R85-1999 1999

[RUM299] Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language user guiderdquo Addisoiz Wesley 482 Paacuteginas ISBN 0-201 -57 168-4 QA-7676-D47-B66-1999 1999

[SMA02] SmartDraw ldquoSmartDrawrdquo (lthttpwwwsmartdrawcomgt 2002)

[SHU88] 9 - Shu Nun C ldquoVisual Programmingrdquo Van Nostrand Reinhold ISBN 0-422- 28014-9 ISBN 0-422-01 164-4 QA-7665-S55 1988

[THI90] Thimbleby Harold ldquoUser Interface Designrdquo Acm press 470 Paacuteginas ISBN 0-201 -41 61 8-2 QA-769U83-T772~- 1990 1990

[WENO2] Wences Diaz MF ldquoModelo de Ingenieriacutea Inversa para la obtencioacuten de disentildeo detallado basado en LEVISSrdquo Tesis (02-0014) 2002

54

Anexo A

Conampuracioacuten de Microsoft Vkua[C++ 6 O

Este anexo indica las configuraciones que se utilizaron para la compilacioacuten de SCUML y s3c

Configuracioacuten de Microsoft Visual c++ 60

Debido a la integracioacuten de los proyectos de InverSOODA e InverDDVi con S3C se cumplioacute con los requisitos previos de ambos proyectos

El compilador usado en el proyecto fue el Microsoft Visual C++ 60

Para el cumplimiento con la funcionalidad de InverSOODA se instaloacute el ANTLR la versioacuten 271 Se descargoacute del sitio l i l l ~ ~ ~ ~ ~ ~ t l ~ l ~ - ~ t - ~ la versioacuten mencionada en un archivo comprimido (en formato zip) Se colocoacute el paquete descomprimido en el directorio ldquoDIANTLR-271 I rdquo

Recomiendo ampliamente que el directorio principal de ANTLR se copie en el directorio raiacutez de cualquier unidad de disco debido a que experimenteacute problemas de compilacioacuten cuando ANTLR no se encontraba en el directorio raiacutez

Io015

Source Browser AlttF12 I u c Ersquo V I

Visual Component Mgnager

- - ~ ~ ~ ~~

P2 Registrar control

A Contenedor de prueba de controles ActiveX

A Usor de objetos OLE y COM

Buacutesqueda de errores

A Y++ MFC Iracer

Customize options

~ - q- ~ Macro

Eecord Quick Macro Cbl+ShiR+R Pay Quick Macro Ctrl+ShiR+P

En el menuacute Tools (Herramientas) seleccione el sub-menuacute Options ltopcionesgt

56

Configuracioacuten de Microsoft Visual C++ 60

En la siguiente ventana de diaacutelogo debe agregar la direccioacuten en donde se encuentra el ANTLR

Agregar la ruta del directorio de ANTLR hasta el subdirectorio

libcpp

Editor I Tabs I Debug I Compatibility 1 Build Dneclolies I a I Chow directories for - Platfolm -

- Directories I x ) 4 jWin32 -] llnclude files

m cancd I

57

Configuracioacuten de Microsoft Visual C t+ 60

Se ha creado una libreriacutea (anrlrliblib) de ANTLR la cual ya estaacute situada en el directorio del proyecto SCUML (ISCUML) y no debe ser movida o eliminada

I

Geneial 1 Debug I CC++ Link I Category

Output file name bebugSCUMLexe

Objectljibrary modules 4 anllrliblib

li Generate debug lnfo r Ignore all defaull lbaries D ~ i n k j n ~ ~ ~ t a n ~ r ~ e n e r ~ ~ ~ mapfile

r Enable psafilrng

Proiec1 Ootionn

pq Cancel 1 Libreriacutea de ANTLR que debe existir 1 I para que se compile correctamente

58

Anexo B

~ u iacute aacute raacutepida de uso deC Sistema S3C

5 Este anexo indica de forma raacutepida la manera de utilizar S3C para crear un diagrama de secuencias de forma automaacutetica

Guiacutea Raacutepida de uso del Sistema S3C i

Para indicar la creacioacuten de un diagrama de secuencias en forma automaacutetica se debe ir a la barra del costado izquierdo y presionar ldquoNuevo Proyecto SCUMLrdquo

I s3c I ~ Nuevo Proyecto SCUML ~ _ _ - I Diagrama de clases ~ Diagrama de secuencias 1 MDI DOC Activo

-

Apareceraacute un documento llamado ldquoSCUMLV en donde el simbolo corresponde a un numero consecutivo iniciando desde 1 (uno)

$ e Despueacutes se presiona ldquoDiagrama de clasesrdquo Habraacute que para indicarle al sistema si se requiere abrir un diagrama de clases existente o realizar uno nuevo

i

iquestAbrir un documento existente

No Cardquo~ear

AI presionar ldquoSirdquo se debe indicar cual es el archivo del diagrama de Clases en el cuadro de diaacutelogo siguiente

~~ - 11dMis documentos rsquo 2 M i P C i lsquo h s sitios de red

I

AI presionar ldquoNordquo en ldquoAbrir un documento existenterdquo se nos mostraraacute un documento vacio para crear un diagrama de clases

60

Guiacutea Raacutepida de uso del Sistema S3C

Para ambas opciones se requiere que los diagramas de Wamier ya se encuentren construidos Y para continuar el proccso se selecciona el documento ldquoSCUMLVrsquo creado al inicio y despueacutes presionar el botoacuten nombrado ldquoDiagrama de secuenciasrdquo localizado en la barra de hcrraiiiicntas del costado izquierdo

Ha iniciado el proceso de construccioacuten del diagrama de secuencias Si no existen errores al terminar el proceso se le mostraraacute un cuadro de diaacutelogo llamado ldquoResultadosrdquo en donde le mostraraacute las llamadas de las que no localizoacute su definicioacuten

- - -

Cancel 1 D e las siguientes llamadas es posible que esten mal escritas o peitenezcan a la libreiia del Lenguaie Verifique ya que no se encontraron sus definiciones

A continuacioacuten se mencionan los posibles errores que finalizan el proceso de la creacioacuten automaacutetica de los diagramas de secuencias en S3C

Cuando no exista un meacutetodo lsquomainrsquo definido en el diagrama de clases

No se encontro el meacutetodo lsquomain()rsquo que inicie la secuencia I A No se puede crear el diagrama de secuencias

p==amp=q

61

Guia Raacutepida de uso del Sistema S3C

Cuando se definan niultiples metodos lsquoinainrsquo en el diagrama de clases

Multiples meacutetodos lsquomainOlsquo Imposible decidir el inicio de secuencia

Aceptar i

Si un meacutetodo definido en Wamier realiza una llamada a lsquomainrsquo se cancelara el proceso

Llamada NO VALIDA al meacutetodo principal main

(iAcp-j(

4 i

CI Y rdquoldquoldquoI i 11 1-T

IZNTRO Gt INFORMACION

62

  • Tabla de Contenido
  • Listado de Figuras
  • Listado de Tablas
  • Notacioacuten
  • Introduccioacuten
  • Capitulo 1 Conceptos Generales
    • 11 Antecedentes
    • 12 Trabajos relacionados
      • 121 Tabla comparativa
        • 13 Definicioacuten del problema
        • 14 Objetivo de la Tesis
          • Objetivos especiacuteficos de la tesis
            • 15 Hipoacutetesis de investigacioacuten
            • 16 Alcances y limitaciones del trabajo de tesis
              • Capitulo 2 Marco Teoacuterico
                • 21 Modelado de sistemas de software
                • 22 Interfaz de usuario (Mecanismos de interaccioacuten)
                • 23 Lenguajes Visuales
                • 24 Programacioacuten orientada a objetos
                • 25 Lenguaje de Modelado Unificado (UML)
                  • Desarrollo de la herramienta
                    • 31 Disentildeo de la Arquitectura
                      • 311 Requisitos (Diagrama de Casos de uso)
                        • 312Modelo Conceptual
                        • 313Diagramas de clases
                        • 32 Elementos de la arquitectura
                          • 321 Microsoft Foundation Class (MFC)
                            • 322Arquitectura Documento Vista
                            • 323Integrando Ambientes en Visual c++
                              • 324 Interfaz de Muacuteltiples Documentos (MDI)
                                • 325Recursos Diaacutelogos Menus y Barras de Herramientas
                                  • 326 Notacioacuten estaacutendar
                                  • 327 Estructura de datos persistencia y recuperacioacuten
                                    • 328Patrones de disentildeo utilizados
                                      • 33 Diagrama de secuencias
                                        • 331Ciclo de vida del software
                                          • 34 Elementos atoacutemicos de la Gramaacutetica
                                            • 341 Representacioacuten visual
                                              • 35 Gramaacutetica desarrollada
                                              • 36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias
                                                  • Capitulo 4 Pruebas y Resultados
                                                    • 41 Recursos teacutecnicos utilizados
                                                    • 42 Descripcioacuten del plan de pruebas
                                                    • 43 Resultados
                                                      • 431 Caso
                                                      • 432 Caso2
                                                      • 433 Caso
                                                          • Conclusiones y trabajos futuros
                                                            • Trabajos futuros
                                                            • Referencias
                                                            • Anexo A Configuracioacuten de Microsoft Visual C+t
                                                              • Figura 11 - Arquitectura de la suite cenidet-UML
                                                              • Figura 21 -Programacioacuten Visual
                                                              • Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de
                                                              • Figura 32 -Diagrama de Casos de Uso para el S3C
                                                              • Figura 33 -Modelo Conceptual
                                                              • Figura 34 - Diagrama de Clases -Control del Diagrama -
                                                              • Figura 35 - Diagrama de Clases - Patroacuten Visitor -
                                                              • Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento
                                                              • Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)
                                                              • Figura 38 -Dialogo Caracteriacutesticas del Objeto
                                                              • Figura 39 -Dialogo Mensaje
                                                              • Figura 3 IO - Menuacute de los Diagramas de Secuencias (estaacutendar)
                                                              • Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias
                                                              • Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)
                                                              • Figura 313 - Serializacioacuten
                                                              • Figura 314 -Modelo de cascada del ciclo de vida del software
                                                              • Figura 41 - Resultado del caso de prueba
                                                              • Figura 42 -Resultado del caso de prueba
                                                              • Figura 43 -Resultado del caso de prueba
                                                              • Figura 44 -Resultado del caso de prueba
                                                              • Tabla 11 - Tabla comparativa
                                                              • Tabla 31 -Prefijos estaacutendar de identificadores
                                                              • Tabla 32 -Elementos atoacutemicos del lenguaje
                                                              • Tabla 41 - Resumen de los resultados de las pruebas realizadas

Marco teoacuterico

Y -

Un diagrama de secuencia es un diagrama de interaccioacuten que resalta la ordenacioacuten temporal de los mensajes Un diagrama de secuencia presenta un conjunto de objetos y los mensajes enviados y recibidos por ellos Los objetos suelen ser instancias (con nombre o sin nombres) de clases pero tambieacuten pueden representar instancias de otros elementos tales como colaboraciones componentes y nodos Los diagramas de secuencia se utilizan para describir la vista dinaacutemica de un sistema [B0099]

Usar los diagramas de secuencia es mostrar la secuencia que existe en un caso de uso [RUM 991

Los diagramas de secuencia tienen dos dimensiones Una dimensioacuten que representa el tiempo Otra dimensioacuten que representa los diferentes objetos que participan en la secuencia de eventos requeridos para completar el propoacutesito [MOuuml98]

El principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildea las interacciones de los objetos [DAN02]

20

Capiacutetulo 3

DesawoCCo de Ia herramienta

En este capiacutetulo se describe el desarrollo del Ambiente Visual Se describe el modelo conceptual del sistema la arquitectura asiacute como tambieacuten los elementos que componen la Arquitectura Se estudian los Diagramas de Secuencias de UML y algunos Patrones de Disentildeo de los que se hace uso para el mejor desarrollo del sistema Se describe a detalle la Gramaacutetica Visual Relaciona1 utilizada para el de Ambiente de desarrollo

I CENIOET 1FNTRO DE INFORMACION

Desarrollo de la herramienta

t i i

Actualmente existe en el cenidet un Ambiente Visual de Modelado de Clases llamado InverSOODA este Ambiente Visual tiene la capacidad de realizar la generacioacuten automaacutetica de coacutedigo de las clases en C++ a partir del modelo especificado Ademaacutes se puede realizar la Ingenieria Inversa de un coacutedigo legado para obtener el modelo de clases Aunado a este trabajo existe el Ambiente Visual denominado InverDDVi con el cual se puede realizar el Disentildeo Detallado de los Meacutetodos de las Clases con diagramas de Warnier Asiacute tambieacuten es posible obtener el modelo aplicando la Ingenieriacutea Inversa a un coacutedigo legado en C++

Ambos trabajos son retomados en este proyecto para la automatizacioacuten en la obtencioacuten de los Diagramas de Secuencias de UML La figura 31 muestra el modelo propuesto de ingenieriacutea directa

Extraer informacioacuten del diagrama de

rsquo rsquo

Diagrama de 11 clases I o

detallado de

detallado de

o meacutetodos

i ir---- Construir el

secuencias i

Modelo de Ingenieriacutea I directa automaacutetica

I

Figura 31 Modelo de Ingenieria Directa Autombtica de los Diagramas de Secuencias

Para la construccioacuten automaacutetica de un diagrama de secuencias se toma como base a un diagrama de Clases El modulo ldquoExtraer informacioacuten del diagrama de Clasesrdquo sirve para obtener el nombre y los meacutetodos descritos en cada uno de las clases que existan en el diagrama de Clases

22

Desarrollo de la herramienta

Con base en la informacioacuten que se tiene se abren los archivos correspondientes a los diagramas de Warnier El proceso que se emplea sobre cada uno los diagramas de Warnier llamado ldquoExtraer informacioacuten de los disentildeos detallados de los meacutetodosrdquo sirve para recopilar el conjunto de las llamadas de cada meacutetodo definido

En el siguiente paso (ldquoReconocer llamadas a meacutetodosrdquo) consiste en identificar si los meacutetodos que estaacuten descritos en los diagramas de Warnier tambieacuten lo estaacuten en el diagrama de Clases correspondiente

El paso ldquoConstruir los diagramas de secuencias automaacuteticamenterdquo realiza una validacioacuten de los meacutetodos definidos en los diagramas de Clases con los meacutetodos definidos en los diagramas de Warnier Este paso crea una estructura de datos con la secuencia de las llamadas y la recorre para crear los objetos y los mensajes en el diagrama de secuencias

AI terminar la creacioacuten automaacutetica del diagrama de secuencias se dispone de la r opcioacuten de guardar

31 Disentildeo de la Arquitectura

Para definir los procesos que el sistema va a realizar es necesario llevar a cabo un anaacutelisis de requisitos los cuales pueden ser expresados mediante diagramas de Casos de Uso Los Casos de Uso son una descripcioacuten textual narrativa de los procesos de un sistema

311Requisitos (Diagrama de Casos de uso)

Los casos de uso en realidad no son un artefacto de anaacutelisis orientado a objetos estos describen simplemente procesos y pueden ser igualmente efectivos en un proyecto tecnoloacutegico no orientado a objetos Son usados en un paso preliminar a la descripcioacuten de requerimientos de un sistema [LAR971 La Figura 32 muestra el diagrama de casos de uso que especifica al S3C

9

S3C (Diagramas de Secuencias)

usuario I Modelado de

I

Figura 32 Diagrama de Casos de Uso para el S3C

23

Desarrollo de la herramienta

Descripcioacuten de los Casos de Uso

Caso de Uso ldquoDiagramas de Secuenciasrdquo Se inicia cuando el actor ldquousuariordquo solicita la creacioacuten de un Diagrama de Secuencias Se establece la forma de la construccioacuten automaacutetica de los diagramas de secuencias de UML Se hace uso del Modelado de Clases y del Modelado del disentildeo detallado de los meacutetodos

Escenario de Eacutexito 1 Se obtiene la informacioacuten de las clases del modelado de clases 2 Se obtiene la informacioacuten del modelado del disentildeo detallado de los meacutetodos 3 Se realiza la construccioacuten automaacutetica de los diagramas de secuencias

1 En el modelo de clases no hay informacioacuten o estaacute incompleta 2 En el modelo del disentildeo detallado de los meacutetodos no hay informacioacuten o estaacute

incompleta

Escenario de Falla

Caso de Uso ldquoModelado de Clasesrdquo El diagrama de Clases se utiliza para obtener los nombres de clases y los nombres de los meacutetodos de cada clase

Escenario de Eacutexito 1 Se abre el modelo 2 Se procesa para obtener la informacioacuten de las clases (nombres de clases y nombres

de meacutetodos)

Escenano de Falla h 1 No se puede abrir el modelo J 2 El modelo esta vaciacuteo

Caso de Uso ldquoModelado del Disentildeo detallado 1 los meacutetodosrdquo El disentildeo detallado de los meacutetodos se realiza con diagramas de Warnier aquiacute se establecen las llamadas a funciones dentro del sistema y es aquiacute donde se identifica el dinamismo que se representaraacute en los diagramas de secuencias

Escenario de Eacutexito 1 Se abre el modelo 2 Se realiza la identificacioacuten de las llamadas existentes

Escenario de Falla 1 No se puede abrir el modelo 2 El modelo esta vaciacuteo

24

Desarrollo de la herramienta

Clase Objeto ni I Diagrama I n ____ Nombre Descripcioacuten

i

Mensaje

Tipo

En el Anaacutelisis Orientado a Objetos se crea una especificacioacuteii del dominio del problema y de los requeriinientos desde la perspectiva de una clasificacioacuten por objetos y del entendimiento de los teacuterminos usados en el dominio del problema Una descomposicioacuten del dominio del problema involucra una identificacioacuten de conceptos atributos y asociaciones que son considerados importantes dentro del dominio El resultado puede ser expresado en un Modelo Corzcepttraf el cual es ilustrado en un conjunto de diagramas que definen conceptos (objetos) [LAR97]

312Modelo Conceptual

El modelo conceptual visto en la Figura 33 no es una descripcioacuten de componentes de software representa conceptos en el domino del problema en el mundo Teal [LAR97l

313Diagramas de clases

Por cuestiones dc espacio las clases de la arquitectura del sistema estaraacuten referidas en varios diagramas que de alguna manera estaacuten relacionados entre si

Una de las partes maacutes importantes del Ambiente Visual S3C es la estructura de clases ltCCraJicogt la cual se refiere al control de los diagramas eacutesta por su naturaleza podriacutea considerarse el nuacutecleo del sistema La manipulacioacuten y control de los diagramas estaacute definido en una estructura de clases organizada con el patroacuten de disentildeo Composite que se muestra en la Figura 34

25

Desarrollo de la herramienta

CRecursividadDS CMensajeDS CObjetoDS CDiagramaDS

I Cvisitor I

CApuntadorDS CDblClickDS CAsocAdjusterDS CSelectorDS

26

Desarrollo de la herramienta

n 32 Elementos de la arquitectura

Es necesario describir los elementos que dan soporte a la arquitectura del ambiente donde se implementaraacute el sistema en este caso Microsoft Visual (MV) C++ 6 El MV C++ es un marco de aplicacioacuten poderoso basado en Windows se integran ademaacutes del lenguaje C++ (compilador y enlazador) el programa de desarrollo de programas en lenguaje C para Windows (SDK) la Microsoft Foundation Class Library AppWizzard Classwizard AppStudio y WorkBencli

La Microsoft Foundation Class Library comprende una biblioteca de clases de C++ y es considerada como el nuacutecleo del MV C++

321Microsoft Foundation Class (MFC)

La libreriacutea Microsoft Foundation Class (MFC) es una interfaz orientada a objetos que tiene las siguientes metas de disentildeo

o

Reduccioacuten significante de esfuerzo al escribir una aplicacioacuten para Windows Velocidad de ejecucioacuten comparable a las APIrsquos del lenguaje C Miacutenimo tamantildeo de coacutedigo Capacidad para llamar cualquier funcioacuten de Windows en C directamente Faacutecil conversioacuten de aplicaciones existentes en C a C++ Faacutecil uso de APIrsquos de Windows con C++ como con C Faacutecil uso de complicadas caracteriacutesticas de abstracciones poderosas como ActiveX soporte para base de datos impresioacuten barras de herramientas y barras de estado El API de Windows en C++ si usa tan efectivamente como las caracteriacutesticas mismas del lenguaje C++

La mayoriacutea de las clases de la Libreriacutea de la Microsoft Foundation Class son derivadas de una clase base ltCObjectgt que es la raiacutez de la jerarquiacutea de clases ltCObjectgt da uacutetiles capacidades a las clases que derivan de ella

La jerarquiacutea que existe en las clases derivadas de ltCObjectgt es la siguiente

Arquitectura de Aplicacioacuten Excepciones Servicios de Archivos Arreglos Listas Mapas Servicios de Internet Sockets Sincronizacioacuten Soporte para base de datos D A 0

27

Desarrollo de la herramienta

i

r

Liacutenea de Comandos Menuacute Dibujo Graacutefico Dibujo Graacutefico de Objetos Soporte de Control Soporte de Ventanas

Soporte para base de datos ODBC

o Marco de Ventanas o Barras de control o Hojas de propiedades o Cajas de Dialogo o Vistas o Controles

322Arquitectura Documento Vista

Por defecto las aplicaciones creadas con la MFC usan un modelo de aplicacioacuten que separa los datos del programa de las vistas de interaccioacuten con el usuario En eacuteste modelo un objeto documento de MFC lee y escribe datos en un almacenamiento persistente Un objeto vista administra el despliegue de datos suministrando al usuario los datos para ser seleccionados o editados La vista le comunica al documento cualquier cambio en los datos La razoacuten maacutes conveniente para seguir este modelo es cuando se necesita muacuteltiples vistas del mismo documento (como en una hoja de caacutelculo y un graacutefico)

La arquitectura documentovista hace faacutecil el soporte de muacuteltiples vistas y muacuteltiples tipos de documentos asiacute como la divisioacuten de ventanas y otras caracteriacutesticas de interfaz de usuario Pero el corazoacuten de la arquitectura son cuatro clases (Mostradas en el aacuterbol de clases de la Figura 36)

ltCDocumerrtgt (o ltCOleDocuinentgt) - Se instancia un objeto de este tipo para almacenar y controlar los datos del programa ltCViewgt (o una de sus clases derivadas ltCScrotlViewgt ltCFormViewgt ltCEditView ltCRecordViewgt ltCDaoRecordView ltCtreeViewgt ltCListViewgt b ltCrichEditViewgt) - Un objeto es usado para desplegar los datos y administrar la interaccioacuten del usuario con los datos ltCFrameWndgt (o una de sus variantes) - Establece el marco sobre el que trabajaraacuten una o mas vistas de un documento ltCDocTemolategt (o ltCSingIeDocTemplategt o ltCMultiDocTemplategt) - Coordina la existencia de uno o maacutes documentos de un tipo dado y administra la correcta creacioacuten de los documentos vistas y objetos ventanas para cada tipo

i

28

Desarrollo de la herramienta

______________ 2 Wiew

I - - __ - ------a ________________

323Integrando Ambientes en Visual C t t

Las aplicaciones de Interfaz de Documento Uacutenico (SDI) soporta muacuteltiples tipos de documentos pero este soporte es para un solo objeto documento Debido a esta restriccioacuten y aunado a la necesidad de tener varios objetos documentos a la vez se determina la utilizacioacuten del modelo Interfaz de Muacuteltiples Documentos (MDI) indicado en la Figura 37

324Interfaz de Muacuteltiples Documentos (MDI)

Una aplicacioacuten de Interfaz de Muacuteltiples Documento (MDI) permite la creacioacuten de plantillas para el manejo de los documentos eacutesta plantilla tiene la forma

rn-pDocTemplate = new CMultiDocTernplate ( I DR-SCUMLTY PE RUNTIME-CLASS (CSCUMLDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CTheView))

AddDocTernplate ( rn-pDocTemplate )

Cada plantilla describe una relacion del tipo de documento con la vista asociada La definicioacuten de la plantilla para el ambiente que controla los diagramas de secuencias es la siguiente

29

Desarrollo de la herramienta c

m-pTernplateSeqDlag = new CMultiDocTernplate ( IDR-DS-SJCTYPE RUNTIME-CLASS (CSeqDiagDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CSeqDiagView) )

AddDocTernplate( rn-pTernplateSeqDiag )

Esta plantilla hace uso de la clase CCliildFrame que por defecto el ambiente Visual C++ construye y esto es debido a que no se requieren caracteriacutesticas extras en las ventanas de las que proporciona dicha clasc En un caso en el que se requiriera un comportamiento diferente de la vista tendriacutea que crearse una nueva clase con las caracteriacutesticas deseadas

Vista Documento

Vista

I- Vista Documento I [ Tip- F Vista

L Figura 37 Modelo Interfaz de Muacuteltiples Documentos (MDI)

Para integrar otro Ambiente que utilice otro tipo de documento es necesario definir otra plantilla de la misma forma mencionada Debe tomarse en cuenta los siguientes puntos

Es necesario definir el nombre (mqTemplateNOMBRE) El IDR del tipo que se requiere que sea el documento En la primera liacutenea RUNTIME CLASS debe indicar la clase ltCDocumentgt que desea La segunda liacutenea RUNTIME-CLASS soacutelo la cambia a otra clase si requiere de otro manipulador de ventanas de lo contrario deje que ltCChildFramegt se haga cargo

-

30

Desarrollo de la herramienta

En la uacuteltima liacutenea referente a RUNTIME-CLASS se debe indicar la clase ltCViewgt que desea usar Para finalizar se usa la instruccioacuten AddDocTernplate para finalizar la definicioacuten del template (mgTemplateNOMBRE)

325 Recursos Diaacutelogos Mertuacutes y Barras de Herrattriertias

Son varios los recursos con los que se puede contar al crear un proyecto en Microsoft Visual C++ Los diaacutelogos son un recurso disponible que son utilizados para visualizar ingresar yo modificar informacioacuten que se requiera En el Ambiente Visual que se desarrolla son varios los diaacutelogos que se utilizaraacuten y eacutestos se describen a continuacioacuten

El Diaacutelogo ldquoCaracteriacutesticas del Obietordquo (Figura 38) identifica el nombre del Objeto y la descripcioacuten del mismo Este diaacutelogo se muestra cuando se presiona doble clic sobre un objeto del diagrama

I Nombre

Desciipcion

Figura 38 Dialogo Caracteriacutesticas del Objeto

El Diaacutelogo ldquoMensaierdquo (Figura 39) muestra el nombre del mensaje que puede ser modificado ademaacutes se visualizan el Identificador del Mensaje el tipo de Mensaje asiacute tambieacuten el origen y destino del mensaje

31

Desarrollo de la herramienta

Nornbie delMensaje Edit

IDentificador del Mensaje Edil Tipo de Mensaje (Edil

Edit Objeto Origen

Objeto Destino IEdit

i25El A Figura 39 Dialogo Mensaje

El menuacute es otro de los recursos del que se puede disponer para organizar el ambiente que se estaacute creando Para eacuteste caso en particular no se hizo modificaciones al menuacute estaacutendar (Figura 310) que Visual C++ presenta Los cambios significativos son el manejo del tipo de documento para los Diagramas de Secuencias

Archivo Editar Yer VenLana AyGda

Figura 310 Menuacute de los Diagramas de Secuencias (estaacutendar)

Otro importante recurso del que uno se puede valer en Visual C++ es la barra de herramienta personalizada la cuaacutel es construida en el Editor de Recursos Se ha construido una barra (Figura 311) con los elementos graacuteficos de los Diagramas de Secuencia de UML

Figura 311 Barra de Herramientas de los Diagramas de Secuencias

Es recomendable que al utilizar barras de herramienta personalizada se defina en el tamantildeo estaacutendar ya que puede experimentar problemas al momento de ejecutar la aplicacioacuten

Ademaacutes puede usar la propiedad TBBS-CHECKGROUP en una barra de herramientas para establecer que los botones puedan quedar presionados hasta que un botoacuten diferente sea presionado No olvide que la numeracioacuten inicia con cero ( O )

vuriableToolBurSetButtonStyle(OTBBSCHECKGROUP)

32

Desarrollo de la herramienta

Prefijo ID IDC IDD IDP IDR IDS

326 Notacioacuten estaacutendar

Los nombres descriptivos de los recursos se asocian a un valor uacutenico Para una mayor claridad eacutestos nombres mantienen un prefijo que describe el tipo de recurso asociado (vea la Tabla 31) [MIC99]

Tipo de Recurso Comandos de Menuacute Controles y recursos Cuadros de diaacutelogo Cadenas de solicitud para cuadros de mensaje Menuacute principal barras de herramienta tabla aceleradora y el icono Cadenas

IDR IDD IDC ID

200 - 299 3000 - 3999 34000 - 34999

Estos son los rangos de valores establecidos para el proyecto S3C Si se utiliza el coacutedigo fuente y se planea agregar otro proyecto verifisue que no se invadan estos nuacutemeros para evitar problemas

Para facilitar auacuten maacutes los trabajos futuros se ha definido una estructura de carpetas (ver Figura 312) para incluir en cada una las Clases correspondientes a cada tesis en desarrollo

33

Desarrollo de la herramienta

ill ~~ -

-I SCUML classes + U A N T L R + U App + 0 ClassDiagrams + 0 Common + a Java

t $2 SequenceDiagiams

+ WarnierDiagrams

iJ PackageDiagrams

12 StaterChartDiagrams

+

- f Classview I Resourceview 1 FileView ]

~ ~

Figura 312 Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)

327Estructura de datos persistencia y recuperacioacuten

Existe una gran cantidad de tipos de datos estructuras clases y meacutetodos de los que se puede hacer uso para una mejor y maacutes faacutecil obtencioacuten de los resultados A continuacioacuten hago comentarios en tipos de datos y meacutetodos en los que podriacutea tener problemas

CTypedPtrList

AI usar este tipo de dato o alguno relacionado que le permita utilizar el meacutetodo ltCTvrgtedPtrListGetNextgt tenga especial precaucioacuten al usarlo ya que al devolver el valor requerido la variable POSITION usada no se queda apuntando a ese valor en particular salta al inmediato siguiente de la lista

Si se realiza una creacioacuten dinaacutemica con punteros para los elementos de una CTypedPtrList Despueacutes de haberlo agregado a la lista evite el delete para borrar esta Usted deseando liberar la memoria no lo haga ya que eliminara directamente el elemento de la lista

POSITION

Es un valor usado para denotar una posicioacuten de un elemento en una coleccioacuten Pero CUIDADO no se refiere a un iacutendice es una referencia (no consecutiva) de punteros muy diferente a un iacutendice

CString

Auacuten cuando el operador de comparacioacuten == (igual a) es permitido para ser utilizado en las cadenas evite su uso ya que en ocasiones aunque cuando la e

34

Desarrollo de la herramienta

compilacioacuten no indique error alguno en la ejecucioacuten no realizaraacute lo que se necesita Recomiendo que utilice CStringCompare ()

Para eliminar el contenido de un CString utilice CStringEmpty() ya que asignar a la cadena un ldquonrdquo podriacutea causarle problemas

Serializacioacuten

Una forma en que se puede guardar informacioacuten y recuperarla de manera eficaz es mediante la serializacioacuten de objetos La serializacioacuten es un proceso que permite escribir un objeto en un archivo y tambieacuten leerlo

Para que la serializacioacuten se lleve a cabo son necesarios tres objetos un objeto de tipo ltCFilegt que represente el archivo un objeto de tipo ltCArchivegt que ofrece el entorno para la serializacioacuten y la clase del objeto a ser serializado debe ser heredada de ltCObjectgt y sobrescribir el meacutetodo ltSerializegt para que se encuentre de tal forma en que pueda ser serializado (vea la Figura 313)

Objeto a ser serializado 1

1 CArchive

[f --=I- ---7 Archivoexi

u Figura 313 Serializacioacuten

328Patrones de disentildeo utilizados

Se ha planteado la definicioacuten de una arquitectura de clases utilizando patrones de disentildeo debido a que algunos de ellos hacen maacutes faacutecil la extensioacuten de la funcionalidad y mantenimiento

35

Desarrollo de la herramienta

El patroacuten Composite es utilizado para crear de manera uniforme el diagrama sobre el que se trabaja (ver Figura 34) manteniendo una jerarquiacutea de clases uniforme las clases maacutes bajas en la jerarquiacutea definen primitivas de objetos graacuteficos

Se aplica el patroacuten de disentildeo Iterator para hacer recorridos en listas de objetos para realizar diversas operaciones Otro patroacuten de disentildeo del que se hace uso es el Visilor (ver Figura 35)

Para otras actividades que se realizan podriacutea pensarse en que se deberiacutean aplicar otros patrones pero se han evitado algunos (como el patroacuten de disentildeo Builder) para evitar incrementar la complejidad en la arquitectura ya que ai mantener el modelo de la MFC de documentovista la funcionalidad del patroacuten de disentildeo Builder es faacutecilmente reemplazado si se hiciera Uso de eacuteste se aumentariacutea la complejidad excesivamente (nos llevariacutea a perdemos en ocasiones en el paso de mensajes entre clases) dantildeando la facilidad de la arquitectura

33 Diagrama de secuencias

Un Diagrama de Secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten escenario Oacute comportamiento se usan para definir el curso loacutegico de accioacuten de un posible camino a seguir en la resolucioacuten de un problema Seguacuten John Daniels [DANO2] ldquoel principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildean las interacciones de los objetosrdquo

Los Diagramas de Secuencias se utilizan en el modelado de la implementacioacuten de sistemas de software ademaacutes son aplicables en el modelado de requisitos para establecer las comunicaciones existentes entre actores yo clases del sistema Con eacutestos diagramas se logran hacer descripciones de los escenarios y los comportamientos del sistema Con los Diagramas de Secuencias es posible definir protocolos de comunicacioacuten con paso de mensajes ya que dan esa flexibilidad que se requiere Ademaacutes los Diagramas de Secuencias contienen informacioacuten suficiente para que puedan ser transformados a los diagramas de colaboracioacuten [RUM Ol][BOO Oil

331Ciclo de vida del software

Considerando cualquier modelo de ciclo de vida del software (en la figura 314 se muestra el Modelo de cascada) el aacutembito directo de eacuteste Ambiente Visual es en el disentildeo aunque tiene sus vertientes en la codificacioacuten y mantenimiento

36

Desarrollo de la herramienta

Diseno

Codificacibn

I I I I Mantenimiento I

igura 314 Modelo de cascada del ciclo de vida del software

34 Elementos atoacutemicos de la Gramaacutetica

Definicioacuten de los elementos atoacutemicos del lenguaje y su contenido

1 Actor- Representa roles de entidad externos al sistema con el que interactuacutea directamente Los actores pueden ser humanos dispositivos u otros sistemas

2 ClaseObjeto- Determina una Clase u Objeto participante en la interaccioacuten

3 Mensaje-Es una comunicacioacuten entre objetos que contiene informacioacuten Eacuteste se representa con la finalidad a que una accioacuten sea llevada a cabo

4 Mensaje con tiempo- Tiene la misma finalidad que el mensaje la diferencia es que con eacutel se representa un atributo de tiempo

5 Mensaje asiacutencrono Es un mensaje que ocurre en el tiempo de manera independiente a otros mensajes

6 Mensaje de destruccioacuten de objeto- Es un mensaje cuya finalidad es indicar la destruccioacuten del objeto destino

7 Mensaje de creacioacuten de objeto- Es un mensaje que indica la creacioacuten de un objeto

8 Llamada al mismo objeto (Recursividad)- Es usado para modelar llamadas recursivas en el que una operacioacuten es invocada por el mismo objeto

37

Desarrollo de la herramienta

9 Destruccioacuten del objeto (AutodestrucciOacuten)- Puede o no modelarse es representada con una X al final de la liacutenea de vida del objeto

Elementos aulomaacuteticos

1 Liacutenea de Vida- Representa la vida del objeto durante la interaccioacuten

2 Activacioacuten- Muestra el periacuteodo de tiempo en el cual el objeto alguna operacioacuten

341RepresentaciOacuten visual

Representacioacuten visual de los elementos atoacutemicos del lenguaje

Actor

_- A

Mensaje

Mensaje de Creacioacuten de

Objeto

ClaseObjeto

I

Mensaje de retorno

Mensaje de Destruccioacuten de

Objeto

abla 32 Element(

Activacioacuten

Mensaje con tiempo

Autodestruccioacuten

x

atoacutemicos del lengi

taacute realizz

Texto ===I (letra)+ (letra I

numero) letra= AZ I az numero = 09

I

Recursividad ~

I

i j e

io

38

u

Comentario

iexcl

Conector de Comentario

35 Gramaacutetica desarrollada

La gramaacutetica que se propone es una gramaacutetica visual del tipo relacional Una gramaacutetica relacional pertenece a las gramaacuteticas libres de contexto es una 6-iupla G (N C S R Attr P) donde

N es un conjunto finito de siacutembolos no terminales C es un conjunto de siacutembolos terminales S es un siacutembolo distinguido en N llamado siacutembolo inicial R es un conjunto finito de siacutembolos de relacioacuten Attr es un conjunto finito de siacutembolos de atributos P es un conjunto de producciones

Entonces definiendo nuestra gramaacutetica G (N C S R Attr P)

N = Diagrama GrupoClaseObjeto

S = Diagrama

R = mensaje mensajeTiempo mensajeRetomo mensajeAsincrono mensajecrea mensajeDestruye autodestruccioacuten recursividad

R

Attr = entrada salida entradacrea

39

Desarrollo de la herramienta

Definiendo la posicioacuten de los atributos en los elementos visuales

entradacrea ObetaClase

entrada

salida

P =

Diagrama I GrupoClaseObjeto (mensaje (mensajeRetorno

(salida 1) (entrada 2) ) (salida 2) (entrada 1) )

- Diagrama 0 GrupoClaseObjeto

(mensaje (mensaje (mensajeRetomo (mensajeRetomo (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entradacrea 2) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 1) ) (salida 1) (entrada 1) )

entrada

salida

40

Desarrollo de la herramienta

s

-

GrupoClaseObjeto - 1 1 I 2 (mensaje (mensaje (mensajeRetorno (mensajeRetorno (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entradacrea 2) ) (salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 1) ) (salida I ) (entrada I ) )

1 En las gramaacuteticas relacionales una produccioacuten estaacute acompantildeada de las posibles

relaciones que puedan generarse En la primera produccioacuten Diagrama produce a un Actor seguida de un GrupoClaseObjeto el Actor inicia la interaccioacuten con un mensaje y recibe el mensaje de retorno al finalizar la interaccioacuten La segunda y tercera produccioacuten son similares debido a que un GrupoClaseObjeto contiene dos ClaseObjeto que se relacionan de la misma forma

Existe un elemento de la gramaacutetica llamado Attr (Atributo) el cual define la parte de los elementos visuales donde se establecen las relaciones Se han determinado dos atributos (entrada y salida) que para nuestro propoacutesito estaraacuten establecidos en la liacutenea de vida de cada elemento visual (Actor y ClaseObjeto)

Los Comentarios y la Activacioacuten no se consideran en la gramaacutetica Los comentarios son libres de incluirse y relacionarse con cualquier elemento y relacioacuten mencionada anteriormente y la activacioacuten existe siempre que se presente un mensaje (o podriacutea omitirse) Estas consideraciones se realizaron para hacer auacuten maacutes faacutecil la gramaacutetica ya que si se trata de realizar un sistema las restricciones de estos elementos pueden mantenerse en el lenguaje de programacioacuten en el que se desarrolle el sistema

36

Precondiciones

El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias

1 El diagrama de Clases debe existir y estar completo 2 Debe existir un archivo con un diagrama de Warnier por cada diagrama de Clases y

con el mismo nombre de archivo (excepto la extensioacuten del archivo) 3 En el uacutenico diagrama de Warnier de cada Clase se deben modelar todos los meacutetodos

de la Clase 4 No realizar declaraciones de meacutetodos

41

Desarrollo de la herramienta

5 Debe existir un meacutetodo lsquomain()rsquo en el diagrama de Clases

Restricciones

Los meacutetodos deben mantener nombres distintos en las diferentes Clases

Metodologiacutea para la obtencioacuten automaacutetica de los Diagramas de Secuencias

1 Seleccionar el diagrama de Clases

2 Se construye una lista con los nombres de las Clases y los Meacutetodos

3 Se verifica si exista el meacutetodo lsquomain()rsquo en alguna Clase Se busca la existencia de una uacutenica Clase

a La Clase que contenga lsquomain()rsquo se va al inicio de la lista de Clases

b Si no existe lsquomain()rsquo SE TERMINA EL PROCESO

4 Se verifica la existencia de los archivos que contienen el Disentildeo Detallado de los meacutetodos en Wamier para cada una de las Clases si alguno falta SE TERMINA EL PROCESO

5 Se procesa cada uno de los modelos del Disentildeo Detallado de los Meacutetodos generando una lista de secuencias de llamadas por cada uno de los meacutetodos

6 Se verifica que cada llamada corresponda a alguacuten meacutetodo existente (del diagrama de Clases) De no existir ese meacutetodo la llamada entra a una estructura que

7 Se crea una lista de secuencia

a Se inicia con lsquomain()rsquo b Se recorre cada una de las llamadas de los meacutetodos c Se considera invaacutelido el caso de que un meacutetodo intente una llamada

recursiva al meacutetodo lsquomain()rsquo

8 Se muestra un diaacutelogo de resultados en el que se indican las llamadas que no se encnotraron definidas y que pueden ser Llamada a libreriacutea oacute Llamada Erroacutenea

42

Capiacutetulo 4

Prue6as y su6taaacuteos

En eacuteste capiacutetulo se da a conocer el detalle de las pruebas y de los resultados obtenidos Se describen los casos de prueba con los que se realizoacute la evaluacioacuten del sistema asiacute tambieacuten se presentan comentarios acerca de los resultados obtenidos

Pruebas y Resultados

41 Recursos teacutecnicos utilizados

Para llevar a cabo las pruebas al sistema S3C se utilizaron los siguientes equipos de Coacutemputo

Computadora de escritorio

256MB RAM Disco Duro 80G Monitor 17rdquo SAMSUNG

AMD Athlon XP 1600+ I4Ghz

Computadora de escritorio Intel Pentium 4 - 128MB RAM Disco Duro 40G Monitor 15rdquo i -

42 Descripcioacuten del plan de pruebas

Las pruebas establecen el Uacuteltimo paso desde donde es posible evaluar la calidad y descubrir los errores Las pruebas y la validacioacuten del software se utilizan para comprobar que el sistema cumple con las expectativas del usuario

En esta seccioacuten se describen los casos de prueba que se realizaron al prototipo de S3C en conjunto a la suite cenidet-UML Para cada uno de los casos se presenta el objetivo el procedimiento que se siguioacute para la prueba y se muestran los resultados obtenidos - _

Las pruebas a realizar son los siguientes

Caso 1 Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Caso 2 Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Wamier

Caso3 Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Wamier

Caso4 Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo 5

44

Pruebas y Resultados

43 Resultados

431 Caso 1

5 Y

IZ =

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoSirdquo 4 Seleccionar el archivo ldquoVENTASrdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 41 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

s3c iuevo Proyecto SCUM1

Diagrama de clases

lvendedor I L

3

salida

venta prod

4 venia-oferta vcntaprod =

salida 6

Figura 41 Resultado del caso de prueba 1

45

Pruebas y Resultados

432 Caso 2

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Warnier (almacenwar cajawar vendedorwar) que ya cxisten (del caso de prueba I )

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoNordquo 4 Agregar las siguientes Clases con los respectivos meacutetodos y atributos

a Claseldquovendedorrdquo Meacutetodos ldquoventa mainrdquo b Claseldquoalmacenrdquo Meacutetodos ldquoentrada salidardquo c Claseldquocajardquo Meacutetodos ldquoventagrodrdquo

5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 42 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

Diagrama de daseo lisgrama dcsccucncis

MOIDOC Anivo

venta prod

salida

1 Ycrdquo1a 2

I 4 vcrdquolD~o1cn venta prod gt

salida 6 i Figura 42 Resultado del caso de prueba 2

46

Pruebas y Resultados

r

433 Caso 3

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Warnier

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 43 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

5

Error al tratar de abrir el archivo A bZwar

Aceptar i

Faltan Archivos de Disentildeos Detallados de Meacutetodos 1 1 A No se puede crear el diagrama de secuencias

Figura 43 Resultado del caso de prueba 3

47

Pruebas y Resultados

434 Caso 4

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 44 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

lsquo I

~ _ i i _ l _ Repaado ~~ ~ ~ 6~ ampA Figura 44 Resultado del caso de prueba 4

48

Pruebas y Resultados

PRUEBA DESCNPCION CASO 1 Mostrar la funcionalidad del

Sistema S3C a partir de un

44 Anaacutelisis de Resultados

RESULTADOS Se comproboacute la correcta funcionalidad del Sistema S3C a partir de un diagrama

CASO 3

CASO4

I diagrama de Clases cxistcnte I de Clases existente CASO 2 I Mostrar la funcionalidad del I Sc comproboacute la corrccta funcionalidad

Sistema S3C a partir de un del Sistema S3C a partir de un diagrama diagrama de Clases que se de Clases que se construye al momento construye al momento Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el Secuencias si falta alguno de los diagrama de Secuencia si falta alguno diagramas de Warnier Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el secuencias si hace falta el meacutetodo diagrama de Secuencias al faltar el ldquomain ()rdquo meacutetodo ldquomain()rdquo

de los diagramas de Warnier

Los resultados obtenidos de cada uno de los casos establecidos demuestran que se validoacute la funcionalidad del prototipo con los requisitos definidos en el alcance de este proyecto

a lt

49

Conclusiones y Tru6ajos Futuros

Aquiacute se dan a conocer las conclusiones y se describen los posibles trabajos futuros para la continuacioacuten de eacuteste proyecto

F

51 Conclusiones

Conclusiones y trabajos futuros

Se ha creado un Ambiente Visual que permite obtener de forma automaacutetica los Diagramas de Secuencias en base a los diagramas de Clases y al disentildeo detallado de los meacutetodos descritos con diagramas de Warnier cumpliendo con los objetivos planteados para este trabajo

La tesis aporta principalmente La generacioacuten automaacutetica de los diagramas de secuencias y la eliminacioacuten de inconsistencias al mantener una validacioacuten directa de los diagramas de clases y los diagramas de Warnier que son utilizados

Esta validacioacuten es lograda a traveacutes del uso de la gramaacutetica visual relaciona1 que se ha definido (veacutease el capiacutetulo 3) Esta gramaacutetica visual establece reglas para la correcta construccioacuten de los diagramas de secuencias

P De esta manera se establece que la hipoacutetesis ldquoEs posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodosrdquo Es verdadera

52 Trabajos Futuros

Un Diagrama de Secuencias puede convertirse en un Diagrama de Colaboracioacuten por lo tanto un trabajo futuro es la construccioacuten automaacutetica de un Diagrama de Colaboracioacuten a partir de uno de Secuencias existente

Es posible calcular la meacutetrica de acoplamiento al tener un Diagrama de Secuencias construido

La Ingenieriacutea directa de un Diagrama de Secuencias estableciendo la validacioacuten en la construccioacuten de todos los elementos visuales que UML define

La propagacioacuten de las modificaciones de un Diagrama de Secuencias a los Diagramas de Clases y los Diagramas de Warnier

La modificacioacuten del coacutedigo fuente mediante los cambios establecidos en un Diagrama de Secuencias

51

[ALC03]

[BLA98]

[B0099]

[BOOOi]

[BR097]

[CHA90]

[DAN02]

[GLA02]

[HAC98]

[HER03]

4

Alcate1 Computer Associates International inc Electronic Data Systems Corporation Hewlett-Packard Company IBM Corporation I-Logix IntelliCorp Kabira Technologies Kennedy Carter Microsoft Corporation Object Management Group Oracle Corporation Project Technology Ptech Inc Rational Software Corporation Reich Technologies Softeam Taskon A S Telelogic Unisys Corporation ldquoOMG Unified Modeling Language Specificationrdquo Version 15 Unified Modeling Language 2003

Blaha Michael Rumbaugh James Premerlani William Eddy Frederick Lorensen William ldquoObject-oriented modeling and designrdquo Prentice Hall 484 Paacuteginas ISBN 0-13-629841-9 QA-769-03S-B53-19981998

Booch Grady Rumbaugh James Jacobson Ivar ldquoEl lenguaje unificado de modeladordquo Addison Wesley 432 Paacuteginas ISBN 84-7829-028-1 1999

Booch Grady Rumbaugh James Jacobson Ivar ldquoThe Unified Modeling Language User Guiderdquo Addison Wesley 2001

Brown David ldquoAn introduction to object-oriented analysis objects in plain Englishrdquo John Whiley amp Sons Inc 700 Paginas ISBN 0-471-1 1028-0 QA-769-035-B76-1997 1997

Chang Shi-Kuo ldquoVisual Languages and visual programmingrdquo Plenum Press 340 Paacuteginas ISBN 0-306-43428-8 QA-7665-V57-1990 1990

Daniels John ldquoModeling with a sense of purposerdquo Design - IEEE Software JanuaryEebmary 2002

Glasgow Universidad Reino Unido ldquoA UML Editor in Javardquo (lthttplstudentsdcsglaacuWstudentspainjfproject-reportproject-re port-htmV4thYearReporthtrnlgt 2002)

T Hackos JoAnn C Redish Janice ldquoUser and Task Analysis for Interface Designrdquo Wiley Computer Publishing 488 Paacuteginas ISBN QA-769-U83- H33-1998 1998

Hemaacutendez Velaacutezquez M ldquoIngenieriacutea inversa de coacutedigo fuente en C++ para la obtencioacuten de su disentildeordquo Tesis AT-379 (03-0334) 2003

Conceptos generales

[HIX93]

[JAC93]

[JAC99]

[JOY98]

[LAR97]

[MAR]

[MIC99]

[MIC02]

[MOU98]

Hix Deborah Hartson H Rex ldquoDeveloping user interfacesrdquo 381 Paacuteginas ISBN 0-471-57813-4 QA-769-U83-H59-1993 1993

Jacobson Ivar Christerson Magnus Jonsson Patrik Overgaard Gunnar ldquoObject oriented software engineeringrdquo Addison Wesley ISBN 0-20 1 - 54435-0 QA-7676-D47-J63-1993 1993

Jacobson Ivar Booch Grady Rumbaugh James ldquoEl proceso unificado de desarrollo de softwarerdquo Addison Wesley 438 Paacuteginas ISBN 84-7829-036- 2 1999

Joyanes Aguilar Luis ldquoProgramacioacuten orientada a objetosrdquo McGruw Hill ISBN 84-481-0590-7 1998

Larman Craig ldquoAplying UML and Patternsrdquo Prentice Hull 507 Paacuteginas ISBN 0-13-748880-7 QA-769-035-L37-1997 1997

Marriot Kim Meyer Bemd ldquoVisual Language Theoryrdquo Springer 381 Paacuteginas P-935-V567-1998 1998

Microsoft ldquoMicrosoft Visual C++ 6 manual del programadorrdquo McGraw Hill ISBN 84-481-2127-9 QA-7673-Cl53-23718-1999 1999

Microsoft ldquoVisiordquo (lthttpwwwmicrosoftcomofficevisiogt 2002)

B Mourao Luis X ldquoUniversal Modeling Language Part 11 UML Notation - Case Sequence and Collaboration Diagramsrdquo Lan Times Magazine (~httpwwwlantimescomltpartsdiscussdiscuss6Ohtm~) 1998

No Magic ldquoMagicDrawrdquo (lthttpwwwmagicdrawcomgt 2002)

Object Insight ldquoJvisionrdquo (lthttpwwwobject-insightcomgt 2002)

Rational Software Microsoft I Hewlett-Packard Oracle Sterling Software MCI Systemhouse Unisys ICON Computing IntelliCorp i-Logix IBM ObjectTime Platinum Technology Ptech Taskon Reich Technologies Sofieam ldquoUML Summaryrdquo Version 11 Unified Modeling Language 1997

Rational ldquoRational Roserdquo (lthttpwwwrationalcomproductosrosegt 2002)

Rikki Kirzner ldquoAnalysis Modeling and Design Tools Market Forecast and Analysis 2001-2005rdquo Bulletin Published Under Services Application Design and Construction Tools Application Development and Deployment Strategies Documento Nuacutemero 24809 Junio 2001

53

Conceptos generales

[RIM92] Rimrner Steve ldquoGraphical user interface programmingrdquo 423 Paacuteginas

1992

Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language reference manualrdquo Addison Wesley 550 Paacuteginas ISBN 0-201-

ISBN 0-8306-2475-9 ISBN 0-8306-2472-4 (pbk) QA-769-083-R55G

[RUM99]

30998-X QA-7676-D47-R85-1999 1999

[RUM299] Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language user guiderdquo Addisoiz Wesley 482 Paacuteginas ISBN 0-201 -57 168-4 QA-7676-D47-B66-1999 1999

[SMA02] SmartDraw ldquoSmartDrawrdquo (lthttpwwwsmartdrawcomgt 2002)

[SHU88] 9 - Shu Nun C ldquoVisual Programmingrdquo Van Nostrand Reinhold ISBN 0-422- 28014-9 ISBN 0-422-01 164-4 QA-7665-S55 1988

[THI90] Thimbleby Harold ldquoUser Interface Designrdquo Acm press 470 Paacuteginas ISBN 0-201 -41 61 8-2 QA-769U83-T772~- 1990 1990

[WENO2] Wences Diaz MF ldquoModelo de Ingenieriacutea Inversa para la obtencioacuten de disentildeo detallado basado en LEVISSrdquo Tesis (02-0014) 2002

54

Anexo A

Conampuracioacuten de Microsoft Vkua[C++ 6 O

Este anexo indica las configuraciones que se utilizaron para la compilacioacuten de SCUML y s3c

Configuracioacuten de Microsoft Visual c++ 60

Debido a la integracioacuten de los proyectos de InverSOODA e InverDDVi con S3C se cumplioacute con los requisitos previos de ambos proyectos

El compilador usado en el proyecto fue el Microsoft Visual C++ 60

Para el cumplimiento con la funcionalidad de InverSOODA se instaloacute el ANTLR la versioacuten 271 Se descargoacute del sitio l i l l ~ ~ ~ ~ ~ ~ t l ~ l ~ - ~ t - ~ la versioacuten mencionada en un archivo comprimido (en formato zip) Se colocoacute el paquete descomprimido en el directorio ldquoDIANTLR-271 I rdquo

Recomiendo ampliamente que el directorio principal de ANTLR se copie en el directorio raiacutez de cualquier unidad de disco debido a que experimenteacute problemas de compilacioacuten cuando ANTLR no se encontraba en el directorio raiacutez

Io015

Source Browser AlttF12 I u c Ersquo V I

Visual Component Mgnager

- - ~ ~ ~ ~~

P2 Registrar control

A Contenedor de prueba de controles ActiveX

A Usor de objetos OLE y COM

Buacutesqueda de errores

A Y++ MFC Iracer

Customize options

~ - q- ~ Macro

Eecord Quick Macro Cbl+ShiR+R Pay Quick Macro Ctrl+ShiR+P

En el menuacute Tools (Herramientas) seleccione el sub-menuacute Options ltopcionesgt

56

Configuracioacuten de Microsoft Visual C++ 60

En la siguiente ventana de diaacutelogo debe agregar la direccioacuten en donde se encuentra el ANTLR

Agregar la ruta del directorio de ANTLR hasta el subdirectorio

libcpp

Editor I Tabs I Debug I Compatibility 1 Build Dneclolies I a I Chow directories for - Platfolm -

- Directories I x ) 4 jWin32 -] llnclude files

m cancd I

57

Configuracioacuten de Microsoft Visual C t+ 60

Se ha creado una libreriacutea (anrlrliblib) de ANTLR la cual ya estaacute situada en el directorio del proyecto SCUML (ISCUML) y no debe ser movida o eliminada

I

Geneial 1 Debug I CC++ Link I Category

Output file name bebugSCUMLexe

Objectljibrary modules 4 anllrliblib

li Generate debug lnfo r Ignore all defaull lbaries D ~ i n k j n ~ ~ ~ t a n ~ r ~ e n e r ~ ~ ~ mapfile

r Enable psafilrng

Proiec1 Ootionn

pq Cancel 1 Libreriacutea de ANTLR que debe existir 1 I para que se compile correctamente

58

Anexo B

~ u iacute aacute raacutepida de uso deC Sistema S3C

5 Este anexo indica de forma raacutepida la manera de utilizar S3C para crear un diagrama de secuencias de forma automaacutetica

Guiacutea Raacutepida de uso del Sistema S3C i

Para indicar la creacioacuten de un diagrama de secuencias en forma automaacutetica se debe ir a la barra del costado izquierdo y presionar ldquoNuevo Proyecto SCUMLrdquo

I s3c I ~ Nuevo Proyecto SCUML ~ _ _ - I Diagrama de clases ~ Diagrama de secuencias 1 MDI DOC Activo

-

Apareceraacute un documento llamado ldquoSCUMLV en donde el simbolo corresponde a un numero consecutivo iniciando desde 1 (uno)

$ e Despueacutes se presiona ldquoDiagrama de clasesrdquo Habraacute que para indicarle al sistema si se requiere abrir un diagrama de clases existente o realizar uno nuevo

i

iquestAbrir un documento existente

No Cardquo~ear

AI presionar ldquoSirdquo se debe indicar cual es el archivo del diagrama de Clases en el cuadro de diaacutelogo siguiente

~~ - 11dMis documentos rsquo 2 M i P C i lsquo h s sitios de red

I

AI presionar ldquoNordquo en ldquoAbrir un documento existenterdquo se nos mostraraacute un documento vacio para crear un diagrama de clases

60

Guiacutea Raacutepida de uso del Sistema S3C

Para ambas opciones se requiere que los diagramas de Wamier ya se encuentren construidos Y para continuar el proccso se selecciona el documento ldquoSCUMLVrsquo creado al inicio y despueacutes presionar el botoacuten nombrado ldquoDiagrama de secuenciasrdquo localizado en la barra de hcrraiiiicntas del costado izquierdo

Ha iniciado el proceso de construccioacuten del diagrama de secuencias Si no existen errores al terminar el proceso se le mostraraacute un cuadro de diaacutelogo llamado ldquoResultadosrdquo en donde le mostraraacute las llamadas de las que no localizoacute su definicioacuten

- - -

Cancel 1 D e las siguientes llamadas es posible que esten mal escritas o peitenezcan a la libreiia del Lenguaie Verifique ya que no se encontraron sus definiciones

A continuacioacuten se mencionan los posibles errores que finalizan el proceso de la creacioacuten automaacutetica de los diagramas de secuencias en S3C

Cuando no exista un meacutetodo lsquomainrsquo definido en el diagrama de clases

No se encontro el meacutetodo lsquomain()rsquo que inicie la secuencia I A No se puede crear el diagrama de secuencias

p==amp=q

61

Guia Raacutepida de uso del Sistema S3C

Cuando se definan niultiples metodos lsquoinainrsquo en el diagrama de clases

Multiples meacutetodos lsquomainOlsquo Imposible decidir el inicio de secuencia

Aceptar i

Si un meacutetodo definido en Wamier realiza una llamada a lsquomainrsquo se cancelara el proceso

Llamada NO VALIDA al meacutetodo principal main

(iAcp-j(

4 i

CI Y rdquoldquoldquoI i 11 1-T

IZNTRO Gt INFORMACION

62

  • Tabla de Contenido
  • Listado de Figuras
  • Listado de Tablas
  • Notacioacuten
  • Introduccioacuten
  • Capitulo 1 Conceptos Generales
    • 11 Antecedentes
    • 12 Trabajos relacionados
      • 121 Tabla comparativa
        • 13 Definicioacuten del problema
        • 14 Objetivo de la Tesis
          • Objetivos especiacuteficos de la tesis
            • 15 Hipoacutetesis de investigacioacuten
            • 16 Alcances y limitaciones del trabajo de tesis
              • Capitulo 2 Marco Teoacuterico
                • 21 Modelado de sistemas de software
                • 22 Interfaz de usuario (Mecanismos de interaccioacuten)
                • 23 Lenguajes Visuales
                • 24 Programacioacuten orientada a objetos
                • 25 Lenguaje de Modelado Unificado (UML)
                  • Desarrollo de la herramienta
                    • 31 Disentildeo de la Arquitectura
                      • 311 Requisitos (Diagrama de Casos de uso)
                        • 312Modelo Conceptual
                        • 313Diagramas de clases
                        • 32 Elementos de la arquitectura
                          • 321 Microsoft Foundation Class (MFC)
                            • 322Arquitectura Documento Vista
                            • 323Integrando Ambientes en Visual c++
                              • 324 Interfaz de Muacuteltiples Documentos (MDI)
                                • 325Recursos Diaacutelogos Menus y Barras de Herramientas
                                  • 326 Notacioacuten estaacutendar
                                  • 327 Estructura de datos persistencia y recuperacioacuten
                                    • 328Patrones de disentildeo utilizados
                                      • 33 Diagrama de secuencias
                                        • 331Ciclo de vida del software
                                          • 34 Elementos atoacutemicos de la Gramaacutetica
                                            • 341 Representacioacuten visual
                                              • 35 Gramaacutetica desarrollada
                                              • 36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias
                                                  • Capitulo 4 Pruebas y Resultados
                                                    • 41 Recursos teacutecnicos utilizados
                                                    • 42 Descripcioacuten del plan de pruebas
                                                    • 43 Resultados
                                                      • 431 Caso
                                                      • 432 Caso2
                                                      • 433 Caso
                                                          • Conclusiones y trabajos futuros
                                                            • Trabajos futuros
                                                            • Referencias
                                                            • Anexo A Configuracioacuten de Microsoft Visual C+t
                                                              • Figura 11 - Arquitectura de la suite cenidet-UML
                                                              • Figura 21 -Programacioacuten Visual
                                                              • Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de
                                                              • Figura 32 -Diagrama de Casos de Uso para el S3C
                                                              • Figura 33 -Modelo Conceptual
                                                              • Figura 34 - Diagrama de Clases -Control del Diagrama -
                                                              • Figura 35 - Diagrama de Clases - Patroacuten Visitor -
                                                              • Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento
                                                              • Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)
                                                              • Figura 38 -Dialogo Caracteriacutesticas del Objeto
                                                              • Figura 39 -Dialogo Mensaje
                                                              • Figura 3 IO - Menuacute de los Diagramas de Secuencias (estaacutendar)
                                                              • Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias
                                                              • Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)
                                                              • Figura 313 - Serializacioacuten
                                                              • Figura 314 -Modelo de cascada del ciclo de vida del software
                                                              • Figura 41 - Resultado del caso de prueba
                                                              • Figura 42 -Resultado del caso de prueba
                                                              • Figura 43 -Resultado del caso de prueba
                                                              • Figura 44 -Resultado del caso de prueba
                                                              • Tabla 11 - Tabla comparativa
                                                              • Tabla 31 -Prefijos estaacutendar de identificadores
                                                              • Tabla 32 -Elementos atoacutemicos del lenguaje
                                                              • Tabla 41 - Resumen de los resultados de las pruebas realizadas

Capiacutetulo 3

DesawoCCo de Ia herramienta

En este capiacutetulo se describe el desarrollo del Ambiente Visual Se describe el modelo conceptual del sistema la arquitectura asiacute como tambieacuten los elementos que componen la Arquitectura Se estudian los Diagramas de Secuencias de UML y algunos Patrones de Disentildeo de los que se hace uso para el mejor desarrollo del sistema Se describe a detalle la Gramaacutetica Visual Relaciona1 utilizada para el de Ambiente de desarrollo

I CENIOET 1FNTRO DE INFORMACION

Desarrollo de la herramienta

t i i

Actualmente existe en el cenidet un Ambiente Visual de Modelado de Clases llamado InverSOODA este Ambiente Visual tiene la capacidad de realizar la generacioacuten automaacutetica de coacutedigo de las clases en C++ a partir del modelo especificado Ademaacutes se puede realizar la Ingenieria Inversa de un coacutedigo legado para obtener el modelo de clases Aunado a este trabajo existe el Ambiente Visual denominado InverDDVi con el cual se puede realizar el Disentildeo Detallado de los Meacutetodos de las Clases con diagramas de Warnier Asiacute tambieacuten es posible obtener el modelo aplicando la Ingenieriacutea Inversa a un coacutedigo legado en C++

Ambos trabajos son retomados en este proyecto para la automatizacioacuten en la obtencioacuten de los Diagramas de Secuencias de UML La figura 31 muestra el modelo propuesto de ingenieriacutea directa

Extraer informacioacuten del diagrama de

rsquo rsquo

Diagrama de 11 clases I o

detallado de

detallado de

o meacutetodos

i ir---- Construir el

secuencias i

Modelo de Ingenieriacutea I directa automaacutetica

I

Figura 31 Modelo de Ingenieria Directa Autombtica de los Diagramas de Secuencias

Para la construccioacuten automaacutetica de un diagrama de secuencias se toma como base a un diagrama de Clases El modulo ldquoExtraer informacioacuten del diagrama de Clasesrdquo sirve para obtener el nombre y los meacutetodos descritos en cada uno de las clases que existan en el diagrama de Clases

22

Desarrollo de la herramienta

Con base en la informacioacuten que se tiene se abren los archivos correspondientes a los diagramas de Warnier El proceso que se emplea sobre cada uno los diagramas de Warnier llamado ldquoExtraer informacioacuten de los disentildeos detallados de los meacutetodosrdquo sirve para recopilar el conjunto de las llamadas de cada meacutetodo definido

En el siguiente paso (ldquoReconocer llamadas a meacutetodosrdquo) consiste en identificar si los meacutetodos que estaacuten descritos en los diagramas de Warnier tambieacuten lo estaacuten en el diagrama de Clases correspondiente

El paso ldquoConstruir los diagramas de secuencias automaacuteticamenterdquo realiza una validacioacuten de los meacutetodos definidos en los diagramas de Clases con los meacutetodos definidos en los diagramas de Warnier Este paso crea una estructura de datos con la secuencia de las llamadas y la recorre para crear los objetos y los mensajes en el diagrama de secuencias

AI terminar la creacioacuten automaacutetica del diagrama de secuencias se dispone de la r opcioacuten de guardar

31 Disentildeo de la Arquitectura

Para definir los procesos que el sistema va a realizar es necesario llevar a cabo un anaacutelisis de requisitos los cuales pueden ser expresados mediante diagramas de Casos de Uso Los Casos de Uso son una descripcioacuten textual narrativa de los procesos de un sistema

311Requisitos (Diagrama de Casos de uso)

Los casos de uso en realidad no son un artefacto de anaacutelisis orientado a objetos estos describen simplemente procesos y pueden ser igualmente efectivos en un proyecto tecnoloacutegico no orientado a objetos Son usados en un paso preliminar a la descripcioacuten de requerimientos de un sistema [LAR971 La Figura 32 muestra el diagrama de casos de uso que especifica al S3C

9

S3C (Diagramas de Secuencias)

usuario I Modelado de

I

Figura 32 Diagrama de Casos de Uso para el S3C

23

Desarrollo de la herramienta

Descripcioacuten de los Casos de Uso

Caso de Uso ldquoDiagramas de Secuenciasrdquo Se inicia cuando el actor ldquousuariordquo solicita la creacioacuten de un Diagrama de Secuencias Se establece la forma de la construccioacuten automaacutetica de los diagramas de secuencias de UML Se hace uso del Modelado de Clases y del Modelado del disentildeo detallado de los meacutetodos

Escenario de Eacutexito 1 Se obtiene la informacioacuten de las clases del modelado de clases 2 Se obtiene la informacioacuten del modelado del disentildeo detallado de los meacutetodos 3 Se realiza la construccioacuten automaacutetica de los diagramas de secuencias

1 En el modelo de clases no hay informacioacuten o estaacute incompleta 2 En el modelo del disentildeo detallado de los meacutetodos no hay informacioacuten o estaacute

incompleta

Escenario de Falla

Caso de Uso ldquoModelado de Clasesrdquo El diagrama de Clases se utiliza para obtener los nombres de clases y los nombres de los meacutetodos de cada clase

Escenario de Eacutexito 1 Se abre el modelo 2 Se procesa para obtener la informacioacuten de las clases (nombres de clases y nombres

de meacutetodos)

Escenano de Falla h 1 No se puede abrir el modelo J 2 El modelo esta vaciacuteo

Caso de Uso ldquoModelado del Disentildeo detallado 1 los meacutetodosrdquo El disentildeo detallado de los meacutetodos se realiza con diagramas de Warnier aquiacute se establecen las llamadas a funciones dentro del sistema y es aquiacute donde se identifica el dinamismo que se representaraacute en los diagramas de secuencias

Escenario de Eacutexito 1 Se abre el modelo 2 Se realiza la identificacioacuten de las llamadas existentes

Escenario de Falla 1 No se puede abrir el modelo 2 El modelo esta vaciacuteo

24

Desarrollo de la herramienta

Clase Objeto ni I Diagrama I n ____ Nombre Descripcioacuten

i

Mensaje

Tipo

En el Anaacutelisis Orientado a Objetos se crea una especificacioacuteii del dominio del problema y de los requeriinientos desde la perspectiva de una clasificacioacuten por objetos y del entendimiento de los teacuterminos usados en el dominio del problema Una descomposicioacuten del dominio del problema involucra una identificacioacuten de conceptos atributos y asociaciones que son considerados importantes dentro del dominio El resultado puede ser expresado en un Modelo Corzcepttraf el cual es ilustrado en un conjunto de diagramas que definen conceptos (objetos) [LAR97]

312Modelo Conceptual

El modelo conceptual visto en la Figura 33 no es una descripcioacuten de componentes de software representa conceptos en el domino del problema en el mundo Teal [LAR97l

313Diagramas de clases

Por cuestiones dc espacio las clases de la arquitectura del sistema estaraacuten referidas en varios diagramas que de alguna manera estaacuten relacionados entre si

Una de las partes maacutes importantes del Ambiente Visual S3C es la estructura de clases ltCCraJicogt la cual se refiere al control de los diagramas eacutesta por su naturaleza podriacutea considerarse el nuacutecleo del sistema La manipulacioacuten y control de los diagramas estaacute definido en una estructura de clases organizada con el patroacuten de disentildeo Composite que se muestra en la Figura 34

25

Desarrollo de la herramienta

CRecursividadDS CMensajeDS CObjetoDS CDiagramaDS

I Cvisitor I

CApuntadorDS CDblClickDS CAsocAdjusterDS CSelectorDS

26

Desarrollo de la herramienta

n 32 Elementos de la arquitectura

Es necesario describir los elementos que dan soporte a la arquitectura del ambiente donde se implementaraacute el sistema en este caso Microsoft Visual (MV) C++ 6 El MV C++ es un marco de aplicacioacuten poderoso basado en Windows se integran ademaacutes del lenguaje C++ (compilador y enlazador) el programa de desarrollo de programas en lenguaje C para Windows (SDK) la Microsoft Foundation Class Library AppWizzard Classwizard AppStudio y WorkBencli

La Microsoft Foundation Class Library comprende una biblioteca de clases de C++ y es considerada como el nuacutecleo del MV C++

321Microsoft Foundation Class (MFC)

La libreriacutea Microsoft Foundation Class (MFC) es una interfaz orientada a objetos que tiene las siguientes metas de disentildeo

o

Reduccioacuten significante de esfuerzo al escribir una aplicacioacuten para Windows Velocidad de ejecucioacuten comparable a las APIrsquos del lenguaje C Miacutenimo tamantildeo de coacutedigo Capacidad para llamar cualquier funcioacuten de Windows en C directamente Faacutecil conversioacuten de aplicaciones existentes en C a C++ Faacutecil uso de APIrsquos de Windows con C++ como con C Faacutecil uso de complicadas caracteriacutesticas de abstracciones poderosas como ActiveX soporte para base de datos impresioacuten barras de herramientas y barras de estado El API de Windows en C++ si usa tan efectivamente como las caracteriacutesticas mismas del lenguaje C++

La mayoriacutea de las clases de la Libreriacutea de la Microsoft Foundation Class son derivadas de una clase base ltCObjectgt que es la raiacutez de la jerarquiacutea de clases ltCObjectgt da uacutetiles capacidades a las clases que derivan de ella

La jerarquiacutea que existe en las clases derivadas de ltCObjectgt es la siguiente

Arquitectura de Aplicacioacuten Excepciones Servicios de Archivos Arreglos Listas Mapas Servicios de Internet Sockets Sincronizacioacuten Soporte para base de datos D A 0

27

Desarrollo de la herramienta

i

r

Liacutenea de Comandos Menuacute Dibujo Graacutefico Dibujo Graacutefico de Objetos Soporte de Control Soporte de Ventanas

Soporte para base de datos ODBC

o Marco de Ventanas o Barras de control o Hojas de propiedades o Cajas de Dialogo o Vistas o Controles

322Arquitectura Documento Vista

Por defecto las aplicaciones creadas con la MFC usan un modelo de aplicacioacuten que separa los datos del programa de las vistas de interaccioacuten con el usuario En eacuteste modelo un objeto documento de MFC lee y escribe datos en un almacenamiento persistente Un objeto vista administra el despliegue de datos suministrando al usuario los datos para ser seleccionados o editados La vista le comunica al documento cualquier cambio en los datos La razoacuten maacutes conveniente para seguir este modelo es cuando se necesita muacuteltiples vistas del mismo documento (como en una hoja de caacutelculo y un graacutefico)

La arquitectura documentovista hace faacutecil el soporte de muacuteltiples vistas y muacuteltiples tipos de documentos asiacute como la divisioacuten de ventanas y otras caracteriacutesticas de interfaz de usuario Pero el corazoacuten de la arquitectura son cuatro clases (Mostradas en el aacuterbol de clases de la Figura 36)

ltCDocumerrtgt (o ltCOleDocuinentgt) - Se instancia un objeto de este tipo para almacenar y controlar los datos del programa ltCViewgt (o una de sus clases derivadas ltCScrotlViewgt ltCFormViewgt ltCEditView ltCRecordViewgt ltCDaoRecordView ltCtreeViewgt ltCListViewgt b ltCrichEditViewgt) - Un objeto es usado para desplegar los datos y administrar la interaccioacuten del usuario con los datos ltCFrameWndgt (o una de sus variantes) - Establece el marco sobre el que trabajaraacuten una o mas vistas de un documento ltCDocTemolategt (o ltCSingIeDocTemplategt o ltCMultiDocTemplategt) - Coordina la existencia de uno o maacutes documentos de un tipo dado y administra la correcta creacioacuten de los documentos vistas y objetos ventanas para cada tipo

i

28

Desarrollo de la herramienta

______________ 2 Wiew

I - - __ - ------a ________________

323Integrando Ambientes en Visual C t t

Las aplicaciones de Interfaz de Documento Uacutenico (SDI) soporta muacuteltiples tipos de documentos pero este soporte es para un solo objeto documento Debido a esta restriccioacuten y aunado a la necesidad de tener varios objetos documentos a la vez se determina la utilizacioacuten del modelo Interfaz de Muacuteltiples Documentos (MDI) indicado en la Figura 37

324Interfaz de Muacuteltiples Documentos (MDI)

Una aplicacioacuten de Interfaz de Muacuteltiples Documento (MDI) permite la creacioacuten de plantillas para el manejo de los documentos eacutesta plantilla tiene la forma

rn-pDocTemplate = new CMultiDocTernplate ( I DR-SCUMLTY PE RUNTIME-CLASS (CSCUMLDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CTheView))

AddDocTernplate ( rn-pDocTemplate )

Cada plantilla describe una relacion del tipo de documento con la vista asociada La definicioacuten de la plantilla para el ambiente que controla los diagramas de secuencias es la siguiente

29

Desarrollo de la herramienta c

m-pTernplateSeqDlag = new CMultiDocTernplate ( IDR-DS-SJCTYPE RUNTIME-CLASS (CSeqDiagDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CSeqDiagView) )

AddDocTernplate( rn-pTernplateSeqDiag )

Esta plantilla hace uso de la clase CCliildFrame que por defecto el ambiente Visual C++ construye y esto es debido a que no se requieren caracteriacutesticas extras en las ventanas de las que proporciona dicha clasc En un caso en el que se requiriera un comportamiento diferente de la vista tendriacutea que crearse una nueva clase con las caracteriacutesticas deseadas

Vista Documento

Vista

I- Vista Documento I [ Tip- F Vista

L Figura 37 Modelo Interfaz de Muacuteltiples Documentos (MDI)

Para integrar otro Ambiente que utilice otro tipo de documento es necesario definir otra plantilla de la misma forma mencionada Debe tomarse en cuenta los siguientes puntos

Es necesario definir el nombre (mqTemplateNOMBRE) El IDR del tipo que se requiere que sea el documento En la primera liacutenea RUNTIME CLASS debe indicar la clase ltCDocumentgt que desea La segunda liacutenea RUNTIME-CLASS soacutelo la cambia a otra clase si requiere de otro manipulador de ventanas de lo contrario deje que ltCChildFramegt se haga cargo

-

30

Desarrollo de la herramienta

En la uacuteltima liacutenea referente a RUNTIME-CLASS se debe indicar la clase ltCViewgt que desea usar Para finalizar se usa la instruccioacuten AddDocTernplate para finalizar la definicioacuten del template (mgTemplateNOMBRE)

325 Recursos Diaacutelogos Mertuacutes y Barras de Herrattriertias

Son varios los recursos con los que se puede contar al crear un proyecto en Microsoft Visual C++ Los diaacutelogos son un recurso disponible que son utilizados para visualizar ingresar yo modificar informacioacuten que se requiera En el Ambiente Visual que se desarrolla son varios los diaacutelogos que se utilizaraacuten y eacutestos se describen a continuacioacuten

El Diaacutelogo ldquoCaracteriacutesticas del Obietordquo (Figura 38) identifica el nombre del Objeto y la descripcioacuten del mismo Este diaacutelogo se muestra cuando se presiona doble clic sobre un objeto del diagrama

I Nombre

Desciipcion

Figura 38 Dialogo Caracteriacutesticas del Objeto

El Diaacutelogo ldquoMensaierdquo (Figura 39) muestra el nombre del mensaje que puede ser modificado ademaacutes se visualizan el Identificador del Mensaje el tipo de Mensaje asiacute tambieacuten el origen y destino del mensaje

31

Desarrollo de la herramienta

Nornbie delMensaje Edit

IDentificador del Mensaje Edil Tipo de Mensaje (Edil

Edit Objeto Origen

Objeto Destino IEdit

i25El A Figura 39 Dialogo Mensaje

El menuacute es otro de los recursos del que se puede disponer para organizar el ambiente que se estaacute creando Para eacuteste caso en particular no se hizo modificaciones al menuacute estaacutendar (Figura 310) que Visual C++ presenta Los cambios significativos son el manejo del tipo de documento para los Diagramas de Secuencias

Archivo Editar Yer VenLana AyGda

Figura 310 Menuacute de los Diagramas de Secuencias (estaacutendar)

Otro importante recurso del que uno se puede valer en Visual C++ es la barra de herramienta personalizada la cuaacutel es construida en el Editor de Recursos Se ha construido una barra (Figura 311) con los elementos graacuteficos de los Diagramas de Secuencia de UML

Figura 311 Barra de Herramientas de los Diagramas de Secuencias

Es recomendable que al utilizar barras de herramienta personalizada se defina en el tamantildeo estaacutendar ya que puede experimentar problemas al momento de ejecutar la aplicacioacuten

Ademaacutes puede usar la propiedad TBBS-CHECKGROUP en una barra de herramientas para establecer que los botones puedan quedar presionados hasta que un botoacuten diferente sea presionado No olvide que la numeracioacuten inicia con cero ( O )

vuriableToolBurSetButtonStyle(OTBBSCHECKGROUP)

32

Desarrollo de la herramienta

Prefijo ID IDC IDD IDP IDR IDS

326 Notacioacuten estaacutendar

Los nombres descriptivos de los recursos se asocian a un valor uacutenico Para una mayor claridad eacutestos nombres mantienen un prefijo que describe el tipo de recurso asociado (vea la Tabla 31) [MIC99]

Tipo de Recurso Comandos de Menuacute Controles y recursos Cuadros de diaacutelogo Cadenas de solicitud para cuadros de mensaje Menuacute principal barras de herramienta tabla aceleradora y el icono Cadenas

IDR IDD IDC ID

200 - 299 3000 - 3999 34000 - 34999

Estos son los rangos de valores establecidos para el proyecto S3C Si se utiliza el coacutedigo fuente y se planea agregar otro proyecto verifisue que no se invadan estos nuacutemeros para evitar problemas

Para facilitar auacuten maacutes los trabajos futuros se ha definido una estructura de carpetas (ver Figura 312) para incluir en cada una las Clases correspondientes a cada tesis en desarrollo

33

Desarrollo de la herramienta

ill ~~ -

-I SCUML classes + U A N T L R + U App + 0 ClassDiagrams + 0 Common + a Java

t $2 SequenceDiagiams

+ WarnierDiagrams

iJ PackageDiagrams

12 StaterChartDiagrams

+

- f Classview I Resourceview 1 FileView ]

~ ~

Figura 312 Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)

327Estructura de datos persistencia y recuperacioacuten

Existe una gran cantidad de tipos de datos estructuras clases y meacutetodos de los que se puede hacer uso para una mejor y maacutes faacutecil obtencioacuten de los resultados A continuacioacuten hago comentarios en tipos de datos y meacutetodos en los que podriacutea tener problemas

CTypedPtrList

AI usar este tipo de dato o alguno relacionado que le permita utilizar el meacutetodo ltCTvrgtedPtrListGetNextgt tenga especial precaucioacuten al usarlo ya que al devolver el valor requerido la variable POSITION usada no se queda apuntando a ese valor en particular salta al inmediato siguiente de la lista

Si se realiza una creacioacuten dinaacutemica con punteros para los elementos de una CTypedPtrList Despueacutes de haberlo agregado a la lista evite el delete para borrar esta Usted deseando liberar la memoria no lo haga ya que eliminara directamente el elemento de la lista

POSITION

Es un valor usado para denotar una posicioacuten de un elemento en una coleccioacuten Pero CUIDADO no se refiere a un iacutendice es una referencia (no consecutiva) de punteros muy diferente a un iacutendice

CString

Auacuten cuando el operador de comparacioacuten == (igual a) es permitido para ser utilizado en las cadenas evite su uso ya que en ocasiones aunque cuando la e

34

Desarrollo de la herramienta

compilacioacuten no indique error alguno en la ejecucioacuten no realizaraacute lo que se necesita Recomiendo que utilice CStringCompare ()

Para eliminar el contenido de un CString utilice CStringEmpty() ya que asignar a la cadena un ldquonrdquo podriacutea causarle problemas

Serializacioacuten

Una forma en que se puede guardar informacioacuten y recuperarla de manera eficaz es mediante la serializacioacuten de objetos La serializacioacuten es un proceso que permite escribir un objeto en un archivo y tambieacuten leerlo

Para que la serializacioacuten se lleve a cabo son necesarios tres objetos un objeto de tipo ltCFilegt que represente el archivo un objeto de tipo ltCArchivegt que ofrece el entorno para la serializacioacuten y la clase del objeto a ser serializado debe ser heredada de ltCObjectgt y sobrescribir el meacutetodo ltSerializegt para que se encuentre de tal forma en que pueda ser serializado (vea la Figura 313)

Objeto a ser serializado 1

1 CArchive

[f --=I- ---7 Archivoexi

u Figura 313 Serializacioacuten

328Patrones de disentildeo utilizados

Se ha planteado la definicioacuten de una arquitectura de clases utilizando patrones de disentildeo debido a que algunos de ellos hacen maacutes faacutecil la extensioacuten de la funcionalidad y mantenimiento

35

Desarrollo de la herramienta

El patroacuten Composite es utilizado para crear de manera uniforme el diagrama sobre el que se trabaja (ver Figura 34) manteniendo una jerarquiacutea de clases uniforme las clases maacutes bajas en la jerarquiacutea definen primitivas de objetos graacuteficos

Se aplica el patroacuten de disentildeo Iterator para hacer recorridos en listas de objetos para realizar diversas operaciones Otro patroacuten de disentildeo del que se hace uso es el Visilor (ver Figura 35)

Para otras actividades que se realizan podriacutea pensarse en que se deberiacutean aplicar otros patrones pero se han evitado algunos (como el patroacuten de disentildeo Builder) para evitar incrementar la complejidad en la arquitectura ya que ai mantener el modelo de la MFC de documentovista la funcionalidad del patroacuten de disentildeo Builder es faacutecilmente reemplazado si se hiciera Uso de eacuteste se aumentariacutea la complejidad excesivamente (nos llevariacutea a perdemos en ocasiones en el paso de mensajes entre clases) dantildeando la facilidad de la arquitectura

33 Diagrama de secuencias

Un Diagrama de Secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten escenario Oacute comportamiento se usan para definir el curso loacutegico de accioacuten de un posible camino a seguir en la resolucioacuten de un problema Seguacuten John Daniels [DANO2] ldquoel principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildean las interacciones de los objetosrdquo

Los Diagramas de Secuencias se utilizan en el modelado de la implementacioacuten de sistemas de software ademaacutes son aplicables en el modelado de requisitos para establecer las comunicaciones existentes entre actores yo clases del sistema Con eacutestos diagramas se logran hacer descripciones de los escenarios y los comportamientos del sistema Con los Diagramas de Secuencias es posible definir protocolos de comunicacioacuten con paso de mensajes ya que dan esa flexibilidad que se requiere Ademaacutes los Diagramas de Secuencias contienen informacioacuten suficiente para que puedan ser transformados a los diagramas de colaboracioacuten [RUM Ol][BOO Oil

331Ciclo de vida del software

Considerando cualquier modelo de ciclo de vida del software (en la figura 314 se muestra el Modelo de cascada) el aacutembito directo de eacuteste Ambiente Visual es en el disentildeo aunque tiene sus vertientes en la codificacioacuten y mantenimiento

36

Desarrollo de la herramienta

Diseno

Codificacibn

I I I I Mantenimiento I

igura 314 Modelo de cascada del ciclo de vida del software

34 Elementos atoacutemicos de la Gramaacutetica

Definicioacuten de los elementos atoacutemicos del lenguaje y su contenido

1 Actor- Representa roles de entidad externos al sistema con el que interactuacutea directamente Los actores pueden ser humanos dispositivos u otros sistemas

2 ClaseObjeto- Determina una Clase u Objeto participante en la interaccioacuten

3 Mensaje-Es una comunicacioacuten entre objetos que contiene informacioacuten Eacuteste se representa con la finalidad a que una accioacuten sea llevada a cabo

4 Mensaje con tiempo- Tiene la misma finalidad que el mensaje la diferencia es que con eacutel se representa un atributo de tiempo

5 Mensaje asiacutencrono Es un mensaje que ocurre en el tiempo de manera independiente a otros mensajes

6 Mensaje de destruccioacuten de objeto- Es un mensaje cuya finalidad es indicar la destruccioacuten del objeto destino

7 Mensaje de creacioacuten de objeto- Es un mensaje que indica la creacioacuten de un objeto

8 Llamada al mismo objeto (Recursividad)- Es usado para modelar llamadas recursivas en el que una operacioacuten es invocada por el mismo objeto

37

Desarrollo de la herramienta

9 Destruccioacuten del objeto (AutodestrucciOacuten)- Puede o no modelarse es representada con una X al final de la liacutenea de vida del objeto

Elementos aulomaacuteticos

1 Liacutenea de Vida- Representa la vida del objeto durante la interaccioacuten

2 Activacioacuten- Muestra el periacuteodo de tiempo en el cual el objeto alguna operacioacuten

341RepresentaciOacuten visual

Representacioacuten visual de los elementos atoacutemicos del lenguaje

Actor

_- A

Mensaje

Mensaje de Creacioacuten de

Objeto

ClaseObjeto

I

Mensaje de retorno

Mensaje de Destruccioacuten de

Objeto

abla 32 Element(

Activacioacuten

Mensaje con tiempo

Autodestruccioacuten

x

atoacutemicos del lengi

taacute realizz

Texto ===I (letra)+ (letra I

numero) letra= AZ I az numero = 09

I

Recursividad ~

I

i j e

io

38

u

Comentario

iexcl

Conector de Comentario

35 Gramaacutetica desarrollada

La gramaacutetica que se propone es una gramaacutetica visual del tipo relacional Una gramaacutetica relacional pertenece a las gramaacuteticas libres de contexto es una 6-iupla G (N C S R Attr P) donde

N es un conjunto finito de siacutembolos no terminales C es un conjunto de siacutembolos terminales S es un siacutembolo distinguido en N llamado siacutembolo inicial R es un conjunto finito de siacutembolos de relacioacuten Attr es un conjunto finito de siacutembolos de atributos P es un conjunto de producciones

Entonces definiendo nuestra gramaacutetica G (N C S R Attr P)

N = Diagrama GrupoClaseObjeto

S = Diagrama

R = mensaje mensajeTiempo mensajeRetomo mensajeAsincrono mensajecrea mensajeDestruye autodestruccioacuten recursividad

R

Attr = entrada salida entradacrea

39

Desarrollo de la herramienta

Definiendo la posicioacuten de los atributos en los elementos visuales

entradacrea ObetaClase

entrada

salida

P =

Diagrama I GrupoClaseObjeto (mensaje (mensajeRetorno

(salida 1) (entrada 2) ) (salida 2) (entrada 1) )

- Diagrama 0 GrupoClaseObjeto

(mensaje (mensaje (mensajeRetomo (mensajeRetomo (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entradacrea 2) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 1) ) (salida 1) (entrada 1) )

entrada

salida

40

Desarrollo de la herramienta

s

-

GrupoClaseObjeto - 1 1 I 2 (mensaje (mensaje (mensajeRetorno (mensajeRetorno (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entradacrea 2) ) (salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 1) ) (salida I ) (entrada I ) )

1 En las gramaacuteticas relacionales una produccioacuten estaacute acompantildeada de las posibles

relaciones que puedan generarse En la primera produccioacuten Diagrama produce a un Actor seguida de un GrupoClaseObjeto el Actor inicia la interaccioacuten con un mensaje y recibe el mensaje de retorno al finalizar la interaccioacuten La segunda y tercera produccioacuten son similares debido a que un GrupoClaseObjeto contiene dos ClaseObjeto que se relacionan de la misma forma

Existe un elemento de la gramaacutetica llamado Attr (Atributo) el cual define la parte de los elementos visuales donde se establecen las relaciones Se han determinado dos atributos (entrada y salida) que para nuestro propoacutesito estaraacuten establecidos en la liacutenea de vida de cada elemento visual (Actor y ClaseObjeto)

Los Comentarios y la Activacioacuten no se consideran en la gramaacutetica Los comentarios son libres de incluirse y relacionarse con cualquier elemento y relacioacuten mencionada anteriormente y la activacioacuten existe siempre que se presente un mensaje (o podriacutea omitirse) Estas consideraciones se realizaron para hacer auacuten maacutes faacutecil la gramaacutetica ya que si se trata de realizar un sistema las restricciones de estos elementos pueden mantenerse en el lenguaje de programacioacuten en el que se desarrolle el sistema

36

Precondiciones

El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias

1 El diagrama de Clases debe existir y estar completo 2 Debe existir un archivo con un diagrama de Warnier por cada diagrama de Clases y

con el mismo nombre de archivo (excepto la extensioacuten del archivo) 3 En el uacutenico diagrama de Warnier de cada Clase se deben modelar todos los meacutetodos

de la Clase 4 No realizar declaraciones de meacutetodos

41

Desarrollo de la herramienta

5 Debe existir un meacutetodo lsquomain()rsquo en el diagrama de Clases

Restricciones

Los meacutetodos deben mantener nombres distintos en las diferentes Clases

Metodologiacutea para la obtencioacuten automaacutetica de los Diagramas de Secuencias

1 Seleccionar el diagrama de Clases

2 Se construye una lista con los nombres de las Clases y los Meacutetodos

3 Se verifica si exista el meacutetodo lsquomain()rsquo en alguna Clase Se busca la existencia de una uacutenica Clase

a La Clase que contenga lsquomain()rsquo se va al inicio de la lista de Clases

b Si no existe lsquomain()rsquo SE TERMINA EL PROCESO

4 Se verifica la existencia de los archivos que contienen el Disentildeo Detallado de los meacutetodos en Wamier para cada una de las Clases si alguno falta SE TERMINA EL PROCESO

5 Se procesa cada uno de los modelos del Disentildeo Detallado de los Meacutetodos generando una lista de secuencias de llamadas por cada uno de los meacutetodos

6 Se verifica que cada llamada corresponda a alguacuten meacutetodo existente (del diagrama de Clases) De no existir ese meacutetodo la llamada entra a una estructura que

7 Se crea una lista de secuencia

a Se inicia con lsquomain()rsquo b Se recorre cada una de las llamadas de los meacutetodos c Se considera invaacutelido el caso de que un meacutetodo intente una llamada

recursiva al meacutetodo lsquomain()rsquo

8 Se muestra un diaacutelogo de resultados en el que se indican las llamadas que no se encnotraron definidas y que pueden ser Llamada a libreriacutea oacute Llamada Erroacutenea

42

Capiacutetulo 4

Prue6as y su6taaacuteos

En eacuteste capiacutetulo se da a conocer el detalle de las pruebas y de los resultados obtenidos Se describen los casos de prueba con los que se realizoacute la evaluacioacuten del sistema asiacute tambieacuten se presentan comentarios acerca de los resultados obtenidos

Pruebas y Resultados

41 Recursos teacutecnicos utilizados

Para llevar a cabo las pruebas al sistema S3C se utilizaron los siguientes equipos de Coacutemputo

Computadora de escritorio

256MB RAM Disco Duro 80G Monitor 17rdquo SAMSUNG

AMD Athlon XP 1600+ I4Ghz

Computadora de escritorio Intel Pentium 4 - 128MB RAM Disco Duro 40G Monitor 15rdquo i -

42 Descripcioacuten del plan de pruebas

Las pruebas establecen el Uacuteltimo paso desde donde es posible evaluar la calidad y descubrir los errores Las pruebas y la validacioacuten del software se utilizan para comprobar que el sistema cumple con las expectativas del usuario

En esta seccioacuten se describen los casos de prueba que se realizaron al prototipo de S3C en conjunto a la suite cenidet-UML Para cada uno de los casos se presenta el objetivo el procedimiento que se siguioacute para la prueba y se muestran los resultados obtenidos - _

Las pruebas a realizar son los siguientes

Caso 1 Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Caso 2 Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Wamier

Caso3 Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Wamier

Caso4 Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo 5

44

Pruebas y Resultados

43 Resultados

431 Caso 1

5 Y

IZ =

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoSirdquo 4 Seleccionar el archivo ldquoVENTASrdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 41 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

s3c iuevo Proyecto SCUM1

Diagrama de clases

lvendedor I L

3

salida

venta prod

4 venia-oferta vcntaprod =

salida 6

Figura 41 Resultado del caso de prueba 1

45

Pruebas y Resultados

432 Caso 2

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Warnier (almacenwar cajawar vendedorwar) que ya cxisten (del caso de prueba I )

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoNordquo 4 Agregar las siguientes Clases con los respectivos meacutetodos y atributos

a Claseldquovendedorrdquo Meacutetodos ldquoventa mainrdquo b Claseldquoalmacenrdquo Meacutetodos ldquoentrada salidardquo c Claseldquocajardquo Meacutetodos ldquoventagrodrdquo

5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 42 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

Diagrama de daseo lisgrama dcsccucncis

MOIDOC Anivo

venta prod

salida

1 Ycrdquo1a 2

I 4 vcrdquolD~o1cn venta prod gt

salida 6 i Figura 42 Resultado del caso de prueba 2

46

Pruebas y Resultados

r

433 Caso 3

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Warnier

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 43 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

5

Error al tratar de abrir el archivo A bZwar

Aceptar i

Faltan Archivos de Disentildeos Detallados de Meacutetodos 1 1 A No se puede crear el diagrama de secuencias

Figura 43 Resultado del caso de prueba 3

47

Pruebas y Resultados

434 Caso 4

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 44 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

lsquo I

~ _ i i _ l _ Repaado ~~ ~ ~ 6~ ampA Figura 44 Resultado del caso de prueba 4

48

Pruebas y Resultados

PRUEBA DESCNPCION CASO 1 Mostrar la funcionalidad del

Sistema S3C a partir de un

44 Anaacutelisis de Resultados

RESULTADOS Se comproboacute la correcta funcionalidad del Sistema S3C a partir de un diagrama

CASO 3

CASO4

I diagrama de Clases cxistcnte I de Clases existente CASO 2 I Mostrar la funcionalidad del I Sc comproboacute la corrccta funcionalidad

Sistema S3C a partir de un del Sistema S3C a partir de un diagrama diagrama de Clases que se de Clases que se construye al momento construye al momento Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el Secuencias si falta alguno de los diagrama de Secuencia si falta alguno diagramas de Warnier Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el secuencias si hace falta el meacutetodo diagrama de Secuencias al faltar el ldquomain ()rdquo meacutetodo ldquomain()rdquo

de los diagramas de Warnier

Los resultados obtenidos de cada uno de los casos establecidos demuestran que se validoacute la funcionalidad del prototipo con los requisitos definidos en el alcance de este proyecto

a lt

49

Conclusiones y Tru6ajos Futuros

Aquiacute se dan a conocer las conclusiones y se describen los posibles trabajos futuros para la continuacioacuten de eacuteste proyecto

F

51 Conclusiones

Conclusiones y trabajos futuros

Se ha creado un Ambiente Visual que permite obtener de forma automaacutetica los Diagramas de Secuencias en base a los diagramas de Clases y al disentildeo detallado de los meacutetodos descritos con diagramas de Warnier cumpliendo con los objetivos planteados para este trabajo

La tesis aporta principalmente La generacioacuten automaacutetica de los diagramas de secuencias y la eliminacioacuten de inconsistencias al mantener una validacioacuten directa de los diagramas de clases y los diagramas de Warnier que son utilizados

Esta validacioacuten es lograda a traveacutes del uso de la gramaacutetica visual relaciona1 que se ha definido (veacutease el capiacutetulo 3) Esta gramaacutetica visual establece reglas para la correcta construccioacuten de los diagramas de secuencias

P De esta manera se establece que la hipoacutetesis ldquoEs posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodosrdquo Es verdadera

52 Trabajos Futuros

Un Diagrama de Secuencias puede convertirse en un Diagrama de Colaboracioacuten por lo tanto un trabajo futuro es la construccioacuten automaacutetica de un Diagrama de Colaboracioacuten a partir de uno de Secuencias existente

Es posible calcular la meacutetrica de acoplamiento al tener un Diagrama de Secuencias construido

La Ingenieriacutea directa de un Diagrama de Secuencias estableciendo la validacioacuten en la construccioacuten de todos los elementos visuales que UML define

La propagacioacuten de las modificaciones de un Diagrama de Secuencias a los Diagramas de Clases y los Diagramas de Warnier

La modificacioacuten del coacutedigo fuente mediante los cambios establecidos en un Diagrama de Secuencias

51

[ALC03]

[BLA98]

[B0099]

[BOOOi]

[BR097]

[CHA90]

[DAN02]

[GLA02]

[HAC98]

[HER03]

4

Alcate1 Computer Associates International inc Electronic Data Systems Corporation Hewlett-Packard Company IBM Corporation I-Logix IntelliCorp Kabira Technologies Kennedy Carter Microsoft Corporation Object Management Group Oracle Corporation Project Technology Ptech Inc Rational Software Corporation Reich Technologies Softeam Taskon A S Telelogic Unisys Corporation ldquoOMG Unified Modeling Language Specificationrdquo Version 15 Unified Modeling Language 2003

Blaha Michael Rumbaugh James Premerlani William Eddy Frederick Lorensen William ldquoObject-oriented modeling and designrdquo Prentice Hall 484 Paacuteginas ISBN 0-13-629841-9 QA-769-03S-B53-19981998

Booch Grady Rumbaugh James Jacobson Ivar ldquoEl lenguaje unificado de modeladordquo Addison Wesley 432 Paacuteginas ISBN 84-7829-028-1 1999

Booch Grady Rumbaugh James Jacobson Ivar ldquoThe Unified Modeling Language User Guiderdquo Addison Wesley 2001

Brown David ldquoAn introduction to object-oriented analysis objects in plain Englishrdquo John Whiley amp Sons Inc 700 Paginas ISBN 0-471-1 1028-0 QA-769-035-B76-1997 1997

Chang Shi-Kuo ldquoVisual Languages and visual programmingrdquo Plenum Press 340 Paacuteginas ISBN 0-306-43428-8 QA-7665-V57-1990 1990

Daniels John ldquoModeling with a sense of purposerdquo Design - IEEE Software JanuaryEebmary 2002

Glasgow Universidad Reino Unido ldquoA UML Editor in Javardquo (lthttplstudentsdcsglaacuWstudentspainjfproject-reportproject-re port-htmV4thYearReporthtrnlgt 2002)

T Hackos JoAnn C Redish Janice ldquoUser and Task Analysis for Interface Designrdquo Wiley Computer Publishing 488 Paacuteginas ISBN QA-769-U83- H33-1998 1998

Hemaacutendez Velaacutezquez M ldquoIngenieriacutea inversa de coacutedigo fuente en C++ para la obtencioacuten de su disentildeordquo Tesis AT-379 (03-0334) 2003

Conceptos generales

[HIX93]

[JAC93]

[JAC99]

[JOY98]

[LAR97]

[MAR]

[MIC99]

[MIC02]

[MOU98]

Hix Deborah Hartson H Rex ldquoDeveloping user interfacesrdquo 381 Paacuteginas ISBN 0-471-57813-4 QA-769-U83-H59-1993 1993

Jacobson Ivar Christerson Magnus Jonsson Patrik Overgaard Gunnar ldquoObject oriented software engineeringrdquo Addison Wesley ISBN 0-20 1 - 54435-0 QA-7676-D47-J63-1993 1993

Jacobson Ivar Booch Grady Rumbaugh James ldquoEl proceso unificado de desarrollo de softwarerdquo Addison Wesley 438 Paacuteginas ISBN 84-7829-036- 2 1999

Joyanes Aguilar Luis ldquoProgramacioacuten orientada a objetosrdquo McGruw Hill ISBN 84-481-0590-7 1998

Larman Craig ldquoAplying UML and Patternsrdquo Prentice Hull 507 Paacuteginas ISBN 0-13-748880-7 QA-769-035-L37-1997 1997

Marriot Kim Meyer Bemd ldquoVisual Language Theoryrdquo Springer 381 Paacuteginas P-935-V567-1998 1998

Microsoft ldquoMicrosoft Visual C++ 6 manual del programadorrdquo McGraw Hill ISBN 84-481-2127-9 QA-7673-Cl53-23718-1999 1999

Microsoft ldquoVisiordquo (lthttpwwwmicrosoftcomofficevisiogt 2002)

B Mourao Luis X ldquoUniversal Modeling Language Part 11 UML Notation - Case Sequence and Collaboration Diagramsrdquo Lan Times Magazine (~httpwwwlantimescomltpartsdiscussdiscuss6Ohtm~) 1998

No Magic ldquoMagicDrawrdquo (lthttpwwwmagicdrawcomgt 2002)

Object Insight ldquoJvisionrdquo (lthttpwwwobject-insightcomgt 2002)

Rational Software Microsoft I Hewlett-Packard Oracle Sterling Software MCI Systemhouse Unisys ICON Computing IntelliCorp i-Logix IBM ObjectTime Platinum Technology Ptech Taskon Reich Technologies Sofieam ldquoUML Summaryrdquo Version 11 Unified Modeling Language 1997

Rational ldquoRational Roserdquo (lthttpwwwrationalcomproductosrosegt 2002)

Rikki Kirzner ldquoAnalysis Modeling and Design Tools Market Forecast and Analysis 2001-2005rdquo Bulletin Published Under Services Application Design and Construction Tools Application Development and Deployment Strategies Documento Nuacutemero 24809 Junio 2001

53

Conceptos generales

[RIM92] Rimrner Steve ldquoGraphical user interface programmingrdquo 423 Paacuteginas

1992

Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language reference manualrdquo Addison Wesley 550 Paacuteginas ISBN 0-201-

ISBN 0-8306-2475-9 ISBN 0-8306-2472-4 (pbk) QA-769-083-R55G

[RUM99]

30998-X QA-7676-D47-R85-1999 1999

[RUM299] Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language user guiderdquo Addisoiz Wesley 482 Paacuteginas ISBN 0-201 -57 168-4 QA-7676-D47-B66-1999 1999

[SMA02] SmartDraw ldquoSmartDrawrdquo (lthttpwwwsmartdrawcomgt 2002)

[SHU88] 9 - Shu Nun C ldquoVisual Programmingrdquo Van Nostrand Reinhold ISBN 0-422- 28014-9 ISBN 0-422-01 164-4 QA-7665-S55 1988

[THI90] Thimbleby Harold ldquoUser Interface Designrdquo Acm press 470 Paacuteginas ISBN 0-201 -41 61 8-2 QA-769U83-T772~- 1990 1990

[WENO2] Wences Diaz MF ldquoModelo de Ingenieriacutea Inversa para la obtencioacuten de disentildeo detallado basado en LEVISSrdquo Tesis (02-0014) 2002

54

Anexo A

Conampuracioacuten de Microsoft Vkua[C++ 6 O

Este anexo indica las configuraciones que se utilizaron para la compilacioacuten de SCUML y s3c

Configuracioacuten de Microsoft Visual c++ 60

Debido a la integracioacuten de los proyectos de InverSOODA e InverDDVi con S3C se cumplioacute con los requisitos previos de ambos proyectos

El compilador usado en el proyecto fue el Microsoft Visual C++ 60

Para el cumplimiento con la funcionalidad de InverSOODA se instaloacute el ANTLR la versioacuten 271 Se descargoacute del sitio l i l l ~ ~ ~ ~ ~ ~ t l ~ l ~ - ~ t - ~ la versioacuten mencionada en un archivo comprimido (en formato zip) Se colocoacute el paquete descomprimido en el directorio ldquoDIANTLR-271 I rdquo

Recomiendo ampliamente que el directorio principal de ANTLR se copie en el directorio raiacutez de cualquier unidad de disco debido a que experimenteacute problemas de compilacioacuten cuando ANTLR no se encontraba en el directorio raiacutez

Io015

Source Browser AlttF12 I u c Ersquo V I

Visual Component Mgnager

- - ~ ~ ~ ~~

P2 Registrar control

A Contenedor de prueba de controles ActiveX

A Usor de objetos OLE y COM

Buacutesqueda de errores

A Y++ MFC Iracer

Customize options

~ - q- ~ Macro

Eecord Quick Macro Cbl+ShiR+R Pay Quick Macro Ctrl+ShiR+P

En el menuacute Tools (Herramientas) seleccione el sub-menuacute Options ltopcionesgt

56

Configuracioacuten de Microsoft Visual C++ 60

En la siguiente ventana de diaacutelogo debe agregar la direccioacuten en donde se encuentra el ANTLR

Agregar la ruta del directorio de ANTLR hasta el subdirectorio

libcpp

Editor I Tabs I Debug I Compatibility 1 Build Dneclolies I a I Chow directories for - Platfolm -

- Directories I x ) 4 jWin32 -] llnclude files

m cancd I

57

Configuracioacuten de Microsoft Visual C t+ 60

Se ha creado una libreriacutea (anrlrliblib) de ANTLR la cual ya estaacute situada en el directorio del proyecto SCUML (ISCUML) y no debe ser movida o eliminada

I

Geneial 1 Debug I CC++ Link I Category

Output file name bebugSCUMLexe

Objectljibrary modules 4 anllrliblib

li Generate debug lnfo r Ignore all defaull lbaries D ~ i n k j n ~ ~ ~ t a n ~ r ~ e n e r ~ ~ ~ mapfile

r Enable psafilrng

Proiec1 Ootionn

pq Cancel 1 Libreriacutea de ANTLR que debe existir 1 I para que se compile correctamente

58

Anexo B

~ u iacute aacute raacutepida de uso deC Sistema S3C

5 Este anexo indica de forma raacutepida la manera de utilizar S3C para crear un diagrama de secuencias de forma automaacutetica

Guiacutea Raacutepida de uso del Sistema S3C i

Para indicar la creacioacuten de un diagrama de secuencias en forma automaacutetica se debe ir a la barra del costado izquierdo y presionar ldquoNuevo Proyecto SCUMLrdquo

I s3c I ~ Nuevo Proyecto SCUML ~ _ _ - I Diagrama de clases ~ Diagrama de secuencias 1 MDI DOC Activo

-

Apareceraacute un documento llamado ldquoSCUMLV en donde el simbolo corresponde a un numero consecutivo iniciando desde 1 (uno)

$ e Despueacutes se presiona ldquoDiagrama de clasesrdquo Habraacute que para indicarle al sistema si se requiere abrir un diagrama de clases existente o realizar uno nuevo

i

iquestAbrir un documento existente

No Cardquo~ear

AI presionar ldquoSirdquo se debe indicar cual es el archivo del diagrama de Clases en el cuadro de diaacutelogo siguiente

~~ - 11dMis documentos rsquo 2 M i P C i lsquo h s sitios de red

I

AI presionar ldquoNordquo en ldquoAbrir un documento existenterdquo se nos mostraraacute un documento vacio para crear un diagrama de clases

60

Guiacutea Raacutepida de uso del Sistema S3C

Para ambas opciones se requiere que los diagramas de Wamier ya se encuentren construidos Y para continuar el proccso se selecciona el documento ldquoSCUMLVrsquo creado al inicio y despueacutes presionar el botoacuten nombrado ldquoDiagrama de secuenciasrdquo localizado en la barra de hcrraiiiicntas del costado izquierdo

Ha iniciado el proceso de construccioacuten del diagrama de secuencias Si no existen errores al terminar el proceso se le mostraraacute un cuadro de diaacutelogo llamado ldquoResultadosrdquo en donde le mostraraacute las llamadas de las que no localizoacute su definicioacuten

- - -

Cancel 1 D e las siguientes llamadas es posible que esten mal escritas o peitenezcan a la libreiia del Lenguaie Verifique ya que no se encontraron sus definiciones

A continuacioacuten se mencionan los posibles errores que finalizan el proceso de la creacioacuten automaacutetica de los diagramas de secuencias en S3C

Cuando no exista un meacutetodo lsquomainrsquo definido en el diagrama de clases

No se encontro el meacutetodo lsquomain()rsquo que inicie la secuencia I A No se puede crear el diagrama de secuencias

p==amp=q

61

Guia Raacutepida de uso del Sistema S3C

Cuando se definan niultiples metodos lsquoinainrsquo en el diagrama de clases

Multiples meacutetodos lsquomainOlsquo Imposible decidir el inicio de secuencia

Aceptar i

Si un meacutetodo definido en Wamier realiza una llamada a lsquomainrsquo se cancelara el proceso

Llamada NO VALIDA al meacutetodo principal main

(iAcp-j(

4 i

CI Y rdquoldquoldquoI i 11 1-T

IZNTRO Gt INFORMACION

62

  • Tabla de Contenido
  • Listado de Figuras
  • Listado de Tablas
  • Notacioacuten
  • Introduccioacuten
  • Capitulo 1 Conceptos Generales
    • 11 Antecedentes
    • 12 Trabajos relacionados
      • 121 Tabla comparativa
        • 13 Definicioacuten del problema
        • 14 Objetivo de la Tesis
          • Objetivos especiacuteficos de la tesis
            • 15 Hipoacutetesis de investigacioacuten
            • 16 Alcances y limitaciones del trabajo de tesis
              • Capitulo 2 Marco Teoacuterico
                • 21 Modelado de sistemas de software
                • 22 Interfaz de usuario (Mecanismos de interaccioacuten)
                • 23 Lenguajes Visuales
                • 24 Programacioacuten orientada a objetos
                • 25 Lenguaje de Modelado Unificado (UML)
                  • Desarrollo de la herramienta
                    • 31 Disentildeo de la Arquitectura
                      • 311 Requisitos (Diagrama de Casos de uso)
                        • 312Modelo Conceptual
                        • 313Diagramas de clases
                        • 32 Elementos de la arquitectura
                          • 321 Microsoft Foundation Class (MFC)
                            • 322Arquitectura Documento Vista
                            • 323Integrando Ambientes en Visual c++
                              • 324 Interfaz de Muacuteltiples Documentos (MDI)
                                • 325Recursos Diaacutelogos Menus y Barras de Herramientas
                                  • 326 Notacioacuten estaacutendar
                                  • 327 Estructura de datos persistencia y recuperacioacuten
                                    • 328Patrones de disentildeo utilizados
                                      • 33 Diagrama de secuencias
                                        • 331Ciclo de vida del software
                                          • 34 Elementos atoacutemicos de la Gramaacutetica
                                            • 341 Representacioacuten visual
                                              • 35 Gramaacutetica desarrollada
                                              • 36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias
                                                  • Capitulo 4 Pruebas y Resultados
                                                    • 41 Recursos teacutecnicos utilizados
                                                    • 42 Descripcioacuten del plan de pruebas
                                                    • 43 Resultados
                                                      • 431 Caso
                                                      • 432 Caso2
                                                      • 433 Caso
                                                          • Conclusiones y trabajos futuros
                                                            • Trabajos futuros
                                                            • Referencias
                                                            • Anexo A Configuracioacuten de Microsoft Visual C+t
                                                              • Figura 11 - Arquitectura de la suite cenidet-UML
                                                              • Figura 21 -Programacioacuten Visual
                                                              • Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de
                                                              • Figura 32 -Diagrama de Casos de Uso para el S3C
                                                              • Figura 33 -Modelo Conceptual
                                                              • Figura 34 - Diagrama de Clases -Control del Diagrama -
                                                              • Figura 35 - Diagrama de Clases - Patroacuten Visitor -
                                                              • Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento
                                                              • Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)
                                                              • Figura 38 -Dialogo Caracteriacutesticas del Objeto
                                                              • Figura 39 -Dialogo Mensaje
                                                              • Figura 3 IO - Menuacute de los Diagramas de Secuencias (estaacutendar)
                                                              • Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias
                                                              • Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)
                                                              • Figura 313 - Serializacioacuten
                                                              • Figura 314 -Modelo de cascada del ciclo de vida del software
                                                              • Figura 41 - Resultado del caso de prueba
                                                              • Figura 42 -Resultado del caso de prueba
                                                              • Figura 43 -Resultado del caso de prueba
                                                              • Figura 44 -Resultado del caso de prueba
                                                              • Tabla 11 - Tabla comparativa
                                                              • Tabla 31 -Prefijos estaacutendar de identificadores
                                                              • Tabla 32 -Elementos atoacutemicos del lenguaje
                                                              • Tabla 41 - Resumen de los resultados de las pruebas realizadas

Desarrollo de la herramienta

t i i

Actualmente existe en el cenidet un Ambiente Visual de Modelado de Clases llamado InverSOODA este Ambiente Visual tiene la capacidad de realizar la generacioacuten automaacutetica de coacutedigo de las clases en C++ a partir del modelo especificado Ademaacutes se puede realizar la Ingenieria Inversa de un coacutedigo legado para obtener el modelo de clases Aunado a este trabajo existe el Ambiente Visual denominado InverDDVi con el cual se puede realizar el Disentildeo Detallado de los Meacutetodos de las Clases con diagramas de Warnier Asiacute tambieacuten es posible obtener el modelo aplicando la Ingenieriacutea Inversa a un coacutedigo legado en C++

Ambos trabajos son retomados en este proyecto para la automatizacioacuten en la obtencioacuten de los Diagramas de Secuencias de UML La figura 31 muestra el modelo propuesto de ingenieriacutea directa

Extraer informacioacuten del diagrama de

rsquo rsquo

Diagrama de 11 clases I o

detallado de

detallado de

o meacutetodos

i ir---- Construir el

secuencias i

Modelo de Ingenieriacutea I directa automaacutetica

I

Figura 31 Modelo de Ingenieria Directa Autombtica de los Diagramas de Secuencias

Para la construccioacuten automaacutetica de un diagrama de secuencias se toma como base a un diagrama de Clases El modulo ldquoExtraer informacioacuten del diagrama de Clasesrdquo sirve para obtener el nombre y los meacutetodos descritos en cada uno de las clases que existan en el diagrama de Clases

22

Desarrollo de la herramienta

Con base en la informacioacuten que se tiene se abren los archivos correspondientes a los diagramas de Warnier El proceso que se emplea sobre cada uno los diagramas de Warnier llamado ldquoExtraer informacioacuten de los disentildeos detallados de los meacutetodosrdquo sirve para recopilar el conjunto de las llamadas de cada meacutetodo definido

En el siguiente paso (ldquoReconocer llamadas a meacutetodosrdquo) consiste en identificar si los meacutetodos que estaacuten descritos en los diagramas de Warnier tambieacuten lo estaacuten en el diagrama de Clases correspondiente

El paso ldquoConstruir los diagramas de secuencias automaacuteticamenterdquo realiza una validacioacuten de los meacutetodos definidos en los diagramas de Clases con los meacutetodos definidos en los diagramas de Warnier Este paso crea una estructura de datos con la secuencia de las llamadas y la recorre para crear los objetos y los mensajes en el diagrama de secuencias

AI terminar la creacioacuten automaacutetica del diagrama de secuencias se dispone de la r opcioacuten de guardar

31 Disentildeo de la Arquitectura

Para definir los procesos que el sistema va a realizar es necesario llevar a cabo un anaacutelisis de requisitos los cuales pueden ser expresados mediante diagramas de Casos de Uso Los Casos de Uso son una descripcioacuten textual narrativa de los procesos de un sistema

311Requisitos (Diagrama de Casos de uso)

Los casos de uso en realidad no son un artefacto de anaacutelisis orientado a objetos estos describen simplemente procesos y pueden ser igualmente efectivos en un proyecto tecnoloacutegico no orientado a objetos Son usados en un paso preliminar a la descripcioacuten de requerimientos de un sistema [LAR971 La Figura 32 muestra el diagrama de casos de uso que especifica al S3C

9

S3C (Diagramas de Secuencias)

usuario I Modelado de

I

Figura 32 Diagrama de Casos de Uso para el S3C

23

Desarrollo de la herramienta

Descripcioacuten de los Casos de Uso

Caso de Uso ldquoDiagramas de Secuenciasrdquo Se inicia cuando el actor ldquousuariordquo solicita la creacioacuten de un Diagrama de Secuencias Se establece la forma de la construccioacuten automaacutetica de los diagramas de secuencias de UML Se hace uso del Modelado de Clases y del Modelado del disentildeo detallado de los meacutetodos

Escenario de Eacutexito 1 Se obtiene la informacioacuten de las clases del modelado de clases 2 Se obtiene la informacioacuten del modelado del disentildeo detallado de los meacutetodos 3 Se realiza la construccioacuten automaacutetica de los diagramas de secuencias

1 En el modelo de clases no hay informacioacuten o estaacute incompleta 2 En el modelo del disentildeo detallado de los meacutetodos no hay informacioacuten o estaacute

incompleta

Escenario de Falla

Caso de Uso ldquoModelado de Clasesrdquo El diagrama de Clases se utiliza para obtener los nombres de clases y los nombres de los meacutetodos de cada clase

Escenario de Eacutexito 1 Se abre el modelo 2 Se procesa para obtener la informacioacuten de las clases (nombres de clases y nombres

de meacutetodos)

Escenano de Falla h 1 No se puede abrir el modelo J 2 El modelo esta vaciacuteo

Caso de Uso ldquoModelado del Disentildeo detallado 1 los meacutetodosrdquo El disentildeo detallado de los meacutetodos se realiza con diagramas de Warnier aquiacute se establecen las llamadas a funciones dentro del sistema y es aquiacute donde se identifica el dinamismo que se representaraacute en los diagramas de secuencias

Escenario de Eacutexito 1 Se abre el modelo 2 Se realiza la identificacioacuten de las llamadas existentes

Escenario de Falla 1 No se puede abrir el modelo 2 El modelo esta vaciacuteo

24

Desarrollo de la herramienta

Clase Objeto ni I Diagrama I n ____ Nombre Descripcioacuten

i

Mensaje

Tipo

En el Anaacutelisis Orientado a Objetos se crea una especificacioacuteii del dominio del problema y de los requeriinientos desde la perspectiva de una clasificacioacuten por objetos y del entendimiento de los teacuterminos usados en el dominio del problema Una descomposicioacuten del dominio del problema involucra una identificacioacuten de conceptos atributos y asociaciones que son considerados importantes dentro del dominio El resultado puede ser expresado en un Modelo Corzcepttraf el cual es ilustrado en un conjunto de diagramas que definen conceptos (objetos) [LAR97]

312Modelo Conceptual

El modelo conceptual visto en la Figura 33 no es una descripcioacuten de componentes de software representa conceptos en el domino del problema en el mundo Teal [LAR97l

313Diagramas de clases

Por cuestiones dc espacio las clases de la arquitectura del sistema estaraacuten referidas en varios diagramas que de alguna manera estaacuten relacionados entre si

Una de las partes maacutes importantes del Ambiente Visual S3C es la estructura de clases ltCCraJicogt la cual se refiere al control de los diagramas eacutesta por su naturaleza podriacutea considerarse el nuacutecleo del sistema La manipulacioacuten y control de los diagramas estaacute definido en una estructura de clases organizada con el patroacuten de disentildeo Composite que se muestra en la Figura 34

25

Desarrollo de la herramienta

CRecursividadDS CMensajeDS CObjetoDS CDiagramaDS

I Cvisitor I

CApuntadorDS CDblClickDS CAsocAdjusterDS CSelectorDS

26

Desarrollo de la herramienta

n 32 Elementos de la arquitectura

Es necesario describir los elementos que dan soporte a la arquitectura del ambiente donde se implementaraacute el sistema en este caso Microsoft Visual (MV) C++ 6 El MV C++ es un marco de aplicacioacuten poderoso basado en Windows se integran ademaacutes del lenguaje C++ (compilador y enlazador) el programa de desarrollo de programas en lenguaje C para Windows (SDK) la Microsoft Foundation Class Library AppWizzard Classwizard AppStudio y WorkBencli

La Microsoft Foundation Class Library comprende una biblioteca de clases de C++ y es considerada como el nuacutecleo del MV C++

321Microsoft Foundation Class (MFC)

La libreriacutea Microsoft Foundation Class (MFC) es una interfaz orientada a objetos que tiene las siguientes metas de disentildeo

o

Reduccioacuten significante de esfuerzo al escribir una aplicacioacuten para Windows Velocidad de ejecucioacuten comparable a las APIrsquos del lenguaje C Miacutenimo tamantildeo de coacutedigo Capacidad para llamar cualquier funcioacuten de Windows en C directamente Faacutecil conversioacuten de aplicaciones existentes en C a C++ Faacutecil uso de APIrsquos de Windows con C++ como con C Faacutecil uso de complicadas caracteriacutesticas de abstracciones poderosas como ActiveX soporte para base de datos impresioacuten barras de herramientas y barras de estado El API de Windows en C++ si usa tan efectivamente como las caracteriacutesticas mismas del lenguaje C++

La mayoriacutea de las clases de la Libreriacutea de la Microsoft Foundation Class son derivadas de una clase base ltCObjectgt que es la raiacutez de la jerarquiacutea de clases ltCObjectgt da uacutetiles capacidades a las clases que derivan de ella

La jerarquiacutea que existe en las clases derivadas de ltCObjectgt es la siguiente

Arquitectura de Aplicacioacuten Excepciones Servicios de Archivos Arreglos Listas Mapas Servicios de Internet Sockets Sincronizacioacuten Soporte para base de datos D A 0

27

Desarrollo de la herramienta

i

r

Liacutenea de Comandos Menuacute Dibujo Graacutefico Dibujo Graacutefico de Objetos Soporte de Control Soporte de Ventanas

Soporte para base de datos ODBC

o Marco de Ventanas o Barras de control o Hojas de propiedades o Cajas de Dialogo o Vistas o Controles

322Arquitectura Documento Vista

Por defecto las aplicaciones creadas con la MFC usan un modelo de aplicacioacuten que separa los datos del programa de las vistas de interaccioacuten con el usuario En eacuteste modelo un objeto documento de MFC lee y escribe datos en un almacenamiento persistente Un objeto vista administra el despliegue de datos suministrando al usuario los datos para ser seleccionados o editados La vista le comunica al documento cualquier cambio en los datos La razoacuten maacutes conveniente para seguir este modelo es cuando se necesita muacuteltiples vistas del mismo documento (como en una hoja de caacutelculo y un graacutefico)

La arquitectura documentovista hace faacutecil el soporte de muacuteltiples vistas y muacuteltiples tipos de documentos asiacute como la divisioacuten de ventanas y otras caracteriacutesticas de interfaz de usuario Pero el corazoacuten de la arquitectura son cuatro clases (Mostradas en el aacuterbol de clases de la Figura 36)

ltCDocumerrtgt (o ltCOleDocuinentgt) - Se instancia un objeto de este tipo para almacenar y controlar los datos del programa ltCViewgt (o una de sus clases derivadas ltCScrotlViewgt ltCFormViewgt ltCEditView ltCRecordViewgt ltCDaoRecordView ltCtreeViewgt ltCListViewgt b ltCrichEditViewgt) - Un objeto es usado para desplegar los datos y administrar la interaccioacuten del usuario con los datos ltCFrameWndgt (o una de sus variantes) - Establece el marco sobre el que trabajaraacuten una o mas vistas de un documento ltCDocTemolategt (o ltCSingIeDocTemplategt o ltCMultiDocTemplategt) - Coordina la existencia de uno o maacutes documentos de un tipo dado y administra la correcta creacioacuten de los documentos vistas y objetos ventanas para cada tipo

i

28

Desarrollo de la herramienta

______________ 2 Wiew

I - - __ - ------a ________________

323Integrando Ambientes en Visual C t t

Las aplicaciones de Interfaz de Documento Uacutenico (SDI) soporta muacuteltiples tipos de documentos pero este soporte es para un solo objeto documento Debido a esta restriccioacuten y aunado a la necesidad de tener varios objetos documentos a la vez se determina la utilizacioacuten del modelo Interfaz de Muacuteltiples Documentos (MDI) indicado en la Figura 37

324Interfaz de Muacuteltiples Documentos (MDI)

Una aplicacioacuten de Interfaz de Muacuteltiples Documento (MDI) permite la creacioacuten de plantillas para el manejo de los documentos eacutesta plantilla tiene la forma

rn-pDocTemplate = new CMultiDocTernplate ( I DR-SCUMLTY PE RUNTIME-CLASS (CSCUMLDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CTheView))

AddDocTernplate ( rn-pDocTemplate )

Cada plantilla describe una relacion del tipo de documento con la vista asociada La definicioacuten de la plantilla para el ambiente que controla los diagramas de secuencias es la siguiente

29

Desarrollo de la herramienta c

m-pTernplateSeqDlag = new CMultiDocTernplate ( IDR-DS-SJCTYPE RUNTIME-CLASS (CSeqDiagDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CSeqDiagView) )

AddDocTernplate( rn-pTernplateSeqDiag )

Esta plantilla hace uso de la clase CCliildFrame que por defecto el ambiente Visual C++ construye y esto es debido a que no se requieren caracteriacutesticas extras en las ventanas de las que proporciona dicha clasc En un caso en el que se requiriera un comportamiento diferente de la vista tendriacutea que crearse una nueva clase con las caracteriacutesticas deseadas

Vista Documento

Vista

I- Vista Documento I [ Tip- F Vista

L Figura 37 Modelo Interfaz de Muacuteltiples Documentos (MDI)

Para integrar otro Ambiente que utilice otro tipo de documento es necesario definir otra plantilla de la misma forma mencionada Debe tomarse en cuenta los siguientes puntos

Es necesario definir el nombre (mqTemplateNOMBRE) El IDR del tipo que se requiere que sea el documento En la primera liacutenea RUNTIME CLASS debe indicar la clase ltCDocumentgt que desea La segunda liacutenea RUNTIME-CLASS soacutelo la cambia a otra clase si requiere de otro manipulador de ventanas de lo contrario deje que ltCChildFramegt se haga cargo

-

30

Desarrollo de la herramienta

En la uacuteltima liacutenea referente a RUNTIME-CLASS se debe indicar la clase ltCViewgt que desea usar Para finalizar se usa la instruccioacuten AddDocTernplate para finalizar la definicioacuten del template (mgTemplateNOMBRE)

325 Recursos Diaacutelogos Mertuacutes y Barras de Herrattriertias

Son varios los recursos con los que se puede contar al crear un proyecto en Microsoft Visual C++ Los diaacutelogos son un recurso disponible que son utilizados para visualizar ingresar yo modificar informacioacuten que se requiera En el Ambiente Visual que se desarrolla son varios los diaacutelogos que se utilizaraacuten y eacutestos se describen a continuacioacuten

El Diaacutelogo ldquoCaracteriacutesticas del Obietordquo (Figura 38) identifica el nombre del Objeto y la descripcioacuten del mismo Este diaacutelogo se muestra cuando se presiona doble clic sobre un objeto del diagrama

I Nombre

Desciipcion

Figura 38 Dialogo Caracteriacutesticas del Objeto

El Diaacutelogo ldquoMensaierdquo (Figura 39) muestra el nombre del mensaje que puede ser modificado ademaacutes se visualizan el Identificador del Mensaje el tipo de Mensaje asiacute tambieacuten el origen y destino del mensaje

31

Desarrollo de la herramienta

Nornbie delMensaje Edit

IDentificador del Mensaje Edil Tipo de Mensaje (Edil

Edit Objeto Origen

Objeto Destino IEdit

i25El A Figura 39 Dialogo Mensaje

El menuacute es otro de los recursos del que se puede disponer para organizar el ambiente que se estaacute creando Para eacuteste caso en particular no se hizo modificaciones al menuacute estaacutendar (Figura 310) que Visual C++ presenta Los cambios significativos son el manejo del tipo de documento para los Diagramas de Secuencias

Archivo Editar Yer VenLana AyGda

Figura 310 Menuacute de los Diagramas de Secuencias (estaacutendar)

Otro importante recurso del que uno se puede valer en Visual C++ es la barra de herramienta personalizada la cuaacutel es construida en el Editor de Recursos Se ha construido una barra (Figura 311) con los elementos graacuteficos de los Diagramas de Secuencia de UML

Figura 311 Barra de Herramientas de los Diagramas de Secuencias

Es recomendable que al utilizar barras de herramienta personalizada se defina en el tamantildeo estaacutendar ya que puede experimentar problemas al momento de ejecutar la aplicacioacuten

Ademaacutes puede usar la propiedad TBBS-CHECKGROUP en una barra de herramientas para establecer que los botones puedan quedar presionados hasta que un botoacuten diferente sea presionado No olvide que la numeracioacuten inicia con cero ( O )

vuriableToolBurSetButtonStyle(OTBBSCHECKGROUP)

32

Desarrollo de la herramienta

Prefijo ID IDC IDD IDP IDR IDS

326 Notacioacuten estaacutendar

Los nombres descriptivos de los recursos se asocian a un valor uacutenico Para una mayor claridad eacutestos nombres mantienen un prefijo que describe el tipo de recurso asociado (vea la Tabla 31) [MIC99]

Tipo de Recurso Comandos de Menuacute Controles y recursos Cuadros de diaacutelogo Cadenas de solicitud para cuadros de mensaje Menuacute principal barras de herramienta tabla aceleradora y el icono Cadenas

IDR IDD IDC ID

200 - 299 3000 - 3999 34000 - 34999

Estos son los rangos de valores establecidos para el proyecto S3C Si se utiliza el coacutedigo fuente y se planea agregar otro proyecto verifisue que no se invadan estos nuacutemeros para evitar problemas

Para facilitar auacuten maacutes los trabajos futuros se ha definido una estructura de carpetas (ver Figura 312) para incluir en cada una las Clases correspondientes a cada tesis en desarrollo

33

Desarrollo de la herramienta

ill ~~ -

-I SCUML classes + U A N T L R + U App + 0 ClassDiagrams + 0 Common + a Java

t $2 SequenceDiagiams

+ WarnierDiagrams

iJ PackageDiagrams

12 StaterChartDiagrams

+

- f Classview I Resourceview 1 FileView ]

~ ~

Figura 312 Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)

327Estructura de datos persistencia y recuperacioacuten

Existe una gran cantidad de tipos de datos estructuras clases y meacutetodos de los que se puede hacer uso para una mejor y maacutes faacutecil obtencioacuten de los resultados A continuacioacuten hago comentarios en tipos de datos y meacutetodos en los que podriacutea tener problemas

CTypedPtrList

AI usar este tipo de dato o alguno relacionado que le permita utilizar el meacutetodo ltCTvrgtedPtrListGetNextgt tenga especial precaucioacuten al usarlo ya que al devolver el valor requerido la variable POSITION usada no se queda apuntando a ese valor en particular salta al inmediato siguiente de la lista

Si se realiza una creacioacuten dinaacutemica con punteros para los elementos de una CTypedPtrList Despueacutes de haberlo agregado a la lista evite el delete para borrar esta Usted deseando liberar la memoria no lo haga ya que eliminara directamente el elemento de la lista

POSITION

Es un valor usado para denotar una posicioacuten de un elemento en una coleccioacuten Pero CUIDADO no se refiere a un iacutendice es una referencia (no consecutiva) de punteros muy diferente a un iacutendice

CString

Auacuten cuando el operador de comparacioacuten == (igual a) es permitido para ser utilizado en las cadenas evite su uso ya que en ocasiones aunque cuando la e

34

Desarrollo de la herramienta

compilacioacuten no indique error alguno en la ejecucioacuten no realizaraacute lo que se necesita Recomiendo que utilice CStringCompare ()

Para eliminar el contenido de un CString utilice CStringEmpty() ya que asignar a la cadena un ldquonrdquo podriacutea causarle problemas

Serializacioacuten

Una forma en que se puede guardar informacioacuten y recuperarla de manera eficaz es mediante la serializacioacuten de objetos La serializacioacuten es un proceso que permite escribir un objeto en un archivo y tambieacuten leerlo

Para que la serializacioacuten se lleve a cabo son necesarios tres objetos un objeto de tipo ltCFilegt que represente el archivo un objeto de tipo ltCArchivegt que ofrece el entorno para la serializacioacuten y la clase del objeto a ser serializado debe ser heredada de ltCObjectgt y sobrescribir el meacutetodo ltSerializegt para que se encuentre de tal forma en que pueda ser serializado (vea la Figura 313)

Objeto a ser serializado 1

1 CArchive

[f --=I- ---7 Archivoexi

u Figura 313 Serializacioacuten

328Patrones de disentildeo utilizados

Se ha planteado la definicioacuten de una arquitectura de clases utilizando patrones de disentildeo debido a que algunos de ellos hacen maacutes faacutecil la extensioacuten de la funcionalidad y mantenimiento

35

Desarrollo de la herramienta

El patroacuten Composite es utilizado para crear de manera uniforme el diagrama sobre el que se trabaja (ver Figura 34) manteniendo una jerarquiacutea de clases uniforme las clases maacutes bajas en la jerarquiacutea definen primitivas de objetos graacuteficos

Se aplica el patroacuten de disentildeo Iterator para hacer recorridos en listas de objetos para realizar diversas operaciones Otro patroacuten de disentildeo del que se hace uso es el Visilor (ver Figura 35)

Para otras actividades que se realizan podriacutea pensarse en que se deberiacutean aplicar otros patrones pero se han evitado algunos (como el patroacuten de disentildeo Builder) para evitar incrementar la complejidad en la arquitectura ya que ai mantener el modelo de la MFC de documentovista la funcionalidad del patroacuten de disentildeo Builder es faacutecilmente reemplazado si se hiciera Uso de eacuteste se aumentariacutea la complejidad excesivamente (nos llevariacutea a perdemos en ocasiones en el paso de mensajes entre clases) dantildeando la facilidad de la arquitectura

33 Diagrama de secuencias

Un Diagrama de Secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten escenario Oacute comportamiento se usan para definir el curso loacutegico de accioacuten de un posible camino a seguir en la resolucioacuten de un problema Seguacuten John Daniels [DANO2] ldquoel principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildean las interacciones de los objetosrdquo

Los Diagramas de Secuencias se utilizan en el modelado de la implementacioacuten de sistemas de software ademaacutes son aplicables en el modelado de requisitos para establecer las comunicaciones existentes entre actores yo clases del sistema Con eacutestos diagramas se logran hacer descripciones de los escenarios y los comportamientos del sistema Con los Diagramas de Secuencias es posible definir protocolos de comunicacioacuten con paso de mensajes ya que dan esa flexibilidad que se requiere Ademaacutes los Diagramas de Secuencias contienen informacioacuten suficiente para que puedan ser transformados a los diagramas de colaboracioacuten [RUM Ol][BOO Oil

331Ciclo de vida del software

Considerando cualquier modelo de ciclo de vida del software (en la figura 314 se muestra el Modelo de cascada) el aacutembito directo de eacuteste Ambiente Visual es en el disentildeo aunque tiene sus vertientes en la codificacioacuten y mantenimiento

36

Desarrollo de la herramienta

Diseno

Codificacibn

I I I I Mantenimiento I

igura 314 Modelo de cascada del ciclo de vida del software

34 Elementos atoacutemicos de la Gramaacutetica

Definicioacuten de los elementos atoacutemicos del lenguaje y su contenido

1 Actor- Representa roles de entidad externos al sistema con el que interactuacutea directamente Los actores pueden ser humanos dispositivos u otros sistemas

2 ClaseObjeto- Determina una Clase u Objeto participante en la interaccioacuten

3 Mensaje-Es una comunicacioacuten entre objetos que contiene informacioacuten Eacuteste se representa con la finalidad a que una accioacuten sea llevada a cabo

4 Mensaje con tiempo- Tiene la misma finalidad que el mensaje la diferencia es que con eacutel se representa un atributo de tiempo

5 Mensaje asiacutencrono Es un mensaje que ocurre en el tiempo de manera independiente a otros mensajes

6 Mensaje de destruccioacuten de objeto- Es un mensaje cuya finalidad es indicar la destruccioacuten del objeto destino

7 Mensaje de creacioacuten de objeto- Es un mensaje que indica la creacioacuten de un objeto

8 Llamada al mismo objeto (Recursividad)- Es usado para modelar llamadas recursivas en el que una operacioacuten es invocada por el mismo objeto

37

Desarrollo de la herramienta

9 Destruccioacuten del objeto (AutodestrucciOacuten)- Puede o no modelarse es representada con una X al final de la liacutenea de vida del objeto

Elementos aulomaacuteticos

1 Liacutenea de Vida- Representa la vida del objeto durante la interaccioacuten

2 Activacioacuten- Muestra el periacuteodo de tiempo en el cual el objeto alguna operacioacuten

341RepresentaciOacuten visual

Representacioacuten visual de los elementos atoacutemicos del lenguaje

Actor

_- A

Mensaje

Mensaje de Creacioacuten de

Objeto

ClaseObjeto

I

Mensaje de retorno

Mensaje de Destruccioacuten de

Objeto

abla 32 Element(

Activacioacuten

Mensaje con tiempo

Autodestruccioacuten

x

atoacutemicos del lengi

taacute realizz

Texto ===I (letra)+ (letra I

numero) letra= AZ I az numero = 09

I

Recursividad ~

I

i j e

io

38

u

Comentario

iexcl

Conector de Comentario

35 Gramaacutetica desarrollada

La gramaacutetica que se propone es una gramaacutetica visual del tipo relacional Una gramaacutetica relacional pertenece a las gramaacuteticas libres de contexto es una 6-iupla G (N C S R Attr P) donde

N es un conjunto finito de siacutembolos no terminales C es un conjunto de siacutembolos terminales S es un siacutembolo distinguido en N llamado siacutembolo inicial R es un conjunto finito de siacutembolos de relacioacuten Attr es un conjunto finito de siacutembolos de atributos P es un conjunto de producciones

Entonces definiendo nuestra gramaacutetica G (N C S R Attr P)

N = Diagrama GrupoClaseObjeto

S = Diagrama

R = mensaje mensajeTiempo mensajeRetomo mensajeAsincrono mensajecrea mensajeDestruye autodestruccioacuten recursividad

R

Attr = entrada salida entradacrea

39

Desarrollo de la herramienta

Definiendo la posicioacuten de los atributos en los elementos visuales

entradacrea ObetaClase

entrada

salida

P =

Diagrama I GrupoClaseObjeto (mensaje (mensajeRetorno

(salida 1) (entrada 2) ) (salida 2) (entrada 1) )

- Diagrama 0 GrupoClaseObjeto

(mensaje (mensaje (mensajeRetomo (mensajeRetomo (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entradacrea 2) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 1) ) (salida 1) (entrada 1) )

entrada

salida

40

Desarrollo de la herramienta

s

-

GrupoClaseObjeto - 1 1 I 2 (mensaje (mensaje (mensajeRetorno (mensajeRetorno (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entradacrea 2) ) (salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 1) ) (salida I ) (entrada I ) )

1 En las gramaacuteticas relacionales una produccioacuten estaacute acompantildeada de las posibles

relaciones que puedan generarse En la primera produccioacuten Diagrama produce a un Actor seguida de un GrupoClaseObjeto el Actor inicia la interaccioacuten con un mensaje y recibe el mensaje de retorno al finalizar la interaccioacuten La segunda y tercera produccioacuten son similares debido a que un GrupoClaseObjeto contiene dos ClaseObjeto que se relacionan de la misma forma

Existe un elemento de la gramaacutetica llamado Attr (Atributo) el cual define la parte de los elementos visuales donde se establecen las relaciones Se han determinado dos atributos (entrada y salida) que para nuestro propoacutesito estaraacuten establecidos en la liacutenea de vida de cada elemento visual (Actor y ClaseObjeto)

Los Comentarios y la Activacioacuten no se consideran en la gramaacutetica Los comentarios son libres de incluirse y relacionarse con cualquier elemento y relacioacuten mencionada anteriormente y la activacioacuten existe siempre que se presente un mensaje (o podriacutea omitirse) Estas consideraciones se realizaron para hacer auacuten maacutes faacutecil la gramaacutetica ya que si se trata de realizar un sistema las restricciones de estos elementos pueden mantenerse en el lenguaje de programacioacuten en el que se desarrolle el sistema

36

Precondiciones

El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias

1 El diagrama de Clases debe existir y estar completo 2 Debe existir un archivo con un diagrama de Warnier por cada diagrama de Clases y

con el mismo nombre de archivo (excepto la extensioacuten del archivo) 3 En el uacutenico diagrama de Warnier de cada Clase se deben modelar todos los meacutetodos

de la Clase 4 No realizar declaraciones de meacutetodos

41

Desarrollo de la herramienta

5 Debe existir un meacutetodo lsquomain()rsquo en el diagrama de Clases

Restricciones

Los meacutetodos deben mantener nombres distintos en las diferentes Clases

Metodologiacutea para la obtencioacuten automaacutetica de los Diagramas de Secuencias

1 Seleccionar el diagrama de Clases

2 Se construye una lista con los nombres de las Clases y los Meacutetodos

3 Se verifica si exista el meacutetodo lsquomain()rsquo en alguna Clase Se busca la existencia de una uacutenica Clase

a La Clase que contenga lsquomain()rsquo se va al inicio de la lista de Clases

b Si no existe lsquomain()rsquo SE TERMINA EL PROCESO

4 Se verifica la existencia de los archivos que contienen el Disentildeo Detallado de los meacutetodos en Wamier para cada una de las Clases si alguno falta SE TERMINA EL PROCESO

5 Se procesa cada uno de los modelos del Disentildeo Detallado de los Meacutetodos generando una lista de secuencias de llamadas por cada uno de los meacutetodos

6 Se verifica que cada llamada corresponda a alguacuten meacutetodo existente (del diagrama de Clases) De no existir ese meacutetodo la llamada entra a una estructura que

7 Se crea una lista de secuencia

a Se inicia con lsquomain()rsquo b Se recorre cada una de las llamadas de los meacutetodos c Se considera invaacutelido el caso de que un meacutetodo intente una llamada

recursiva al meacutetodo lsquomain()rsquo

8 Se muestra un diaacutelogo de resultados en el que se indican las llamadas que no se encnotraron definidas y que pueden ser Llamada a libreriacutea oacute Llamada Erroacutenea

42

Capiacutetulo 4

Prue6as y su6taaacuteos

En eacuteste capiacutetulo se da a conocer el detalle de las pruebas y de los resultados obtenidos Se describen los casos de prueba con los que se realizoacute la evaluacioacuten del sistema asiacute tambieacuten se presentan comentarios acerca de los resultados obtenidos

Pruebas y Resultados

41 Recursos teacutecnicos utilizados

Para llevar a cabo las pruebas al sistema S3C se utilizaron los siguientes equipos de Coacutemputo

Computadora de escritorio

256MB RAM Disco Duro 80G Monitor 17rdquo SAMSUNG

AMD Athlon XP 1600+ I4Ghz

Computadora de escritorio Intel Pentium 4 - 128MB RAM Disco Duro 40G Monitor 15rdquo i -

42 Descripcioacuten del plan de pruebas

Las pruebas establecen el Uacuteltimo paso desde donde es posible evaluar la calidad y descubrir los errores Las pruebas y la validacioacuten del software se utilizan para comprobar que el sistema cumple con las expectativas del usuario

En esta seccioacuten se describen los casos de prueba que se realizaron al prototipo de S3C en conjunto a la suite cenidet-UML Para cada uno de los casos se presenta el objetivo el procedimiento que se siguioacute para la prueba y se muestran los resultados obtenidos - _

Las pruebas a realizar son los siguientes

Caso 1 Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Caso 2 Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Wamier

Caso3 Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Wamier

Caso4 Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo 5

44

Pruebas y Resultados

43 Resultados

431 Caso 1

5 Y

IZ =

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoSirdquo 4 Seleccionar el archivo ldquoVENTASrdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 41 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

s3c iuevo Proyecto SCUM1

Diagrama de clases

lvendedor I L

3

salida

venta prod

4 venia-oferta vcntaprod =

salida 6

Figura 41 Resultado del caso de prueba 1

45

Pruebas y Resultados

432 Caso 2

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Warnier (almacenwar cajawar vendedorwar) que ya cxisten (del caso de prueba I )

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoNordquo 4 Agregar las siguientes Clases con los respectivos meacutetodos y atributos

a Claseldquovendedorrdquo Meacutetodos ldquoventa mainrdquo b Claseldquoalmacenrdquo Meacutetodos ldquoentrada salidardquo c Claseldquocajardquo Meacutetodos ldquoventagrodrdquo

5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 42 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

Diagrama de daseo lisgrama dcsccucncis

MOIDOC Anivo

venta prod

salida

1 Ycrdquo1a 2

I 4 vcrdquolD~o1cn venta prod gt

salida 6 i Figura 42 Resultado del caso de prueba 2

46

Pruebas y Resultados

r

433 Caso 3

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Warnier

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 43 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

5

Error al tratar de abrir el archivo A bZwar

Aceptar i

Faltan Archivos de Disentildeos Detallados de Meacutetodos 1 1 A No se puede crear el diagrama de secuencias

Figura 43 Resultado del caso de prueba 3

47

Pruebas y Resultados

434 Caso 4

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 44 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

lsquo I

~ _ i i _ l _ Repaado ~~ ~ ~ 6~ ampA Figura 44 Resultado del caso de prueba 4

48

Pruebas y Resultados

PRUEBA DESCNPCION CASO 1 Mostrar la funcionalidad del

Sistema S3C a partir de un

44 Anaacutelisis de Resultados

RESULTADOS Se comproboacute la correcta funcionalidad del Sistema S3C a partir de un diagrama

CASO 3

CASO4

I diagrama de Clases cxistcnte I de Clases existente CASO 2 I Mostrar la funcionalidad del I Sc comproboacute la corrccta funcionalidad

Sistema S3C a partir de un del Sistema S3C a partir de un diagrama diagrama de Clases que se de Clases que se construye al momento construye al momento Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el Secuencias si falta alguno de los diagrama de Secuencia si falta alguno diagramas de Warnier Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el secuencias si hace falta el meacutetodo diagrama de Secuencias al faltar el ldquomain ()rdquo meacutetodo ldquomain()rdquo

de los diagramas de Warnier

Los resultados obtenidos de cada uno de los casos establecidos demuestran que se validoacute la funcionalidad del prototipo con los requisitos definidos en el alcance de este proyecto

a lt

49

Conclusiones y Tru6ajos Futuros

Aquiacute se dan a conocer las conclusiones y se describen los posibles trabajos futuros para la continuacioacuten de eacuteste proyecto

F

51 Conclusiones

Conclusiones y trabajos futuros

Se ha creado un Ambiente Visual que permite obtener de forma automaacutetica los Diagramas de Secuencias en base a los diagramas de Clases y al disentildeo detallado de los meacutetodos descritos con diagramas de Warnier cumpliendo con los objetivos planteados para este trabajo

La tesis aporta principalmente La generacioacuten automaacutetica de los diagramas de secuencias y la eliminacioacuten de inconsistencias al mantener una validacioacuten directa de los diagramas de clases y los diagramas de Warnier que son utilizados

Esta validacioacuten es lograda a traveacutes del uso de la gramaacutetica visual relaciona1 que se ha definido (veacutease el capiacutetulo 3) Esta gramaacutetica visual establece reglas para la correcta construccioacuten de los diagramas de secuencias

P De esta manera se establece que la hipoacutetesis ldquoEs posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodosrdquo Es verdadera

52 Trabajos Futuros

Un Diagrama de Secuencias puede convertirse en un Diagrama de Colaboracioacuten por lo tanto un trabajo futuro es la construccioacuten automaacutetica de un Diagrama de Colaboracioacuten a partir de uno de Secuencias existente

Es posible calcular la meacutetrica de acoplamiento al tener un Diagrama de Secuencias construido

La Ingenieriacutea directa de un Diagrama de Secuencias estableciendo la validacioacuten en la construccioacuten de todos los elementos visuales que UML define

La propagacioacuten de las modificaciones de un Diagrama de Secuencias a los Diagramas de Clases y los Diagramas de Warnier

La modificacioacuten del coacutedigo fuente mediante los cambios establecidos en un Diagrama de Secuencias

51

[ALC03]

[BLA98]

[B0099]

[BOOOi]

[BR097]

[CHA90]

[DAN02]

[GLA02]

[HAC98]

[HER03]

4

Alcate1 Computer Associates International inc Electronic Data Systems Corporation Hewlett-Packard Company IBM Corporation I-Logix IntelliCorp Kabira Technologies Kennedy Carter Microsoft Corporation Object Management Group Oracle Corporation Project Technology Ptech Inc Rational Software Corporation Reich Technologies Softeam Taskon A S Telelogic Unisys Corporation ldquoOMG Unified Modeling Language Specificationrdquo Version 15 Unified Modeling Language 2003

Blaha Michael Rumbaugh James Premerlani William Eddy Frederick Lorensen William ldquoObject-oriented modeling and designrdquo Prentice Hall 484 Paacuteginas ISBN 0-13-629841-9 QA-769-03S-B53-19981998

Booch Grady Rumbaugh James Jacobson Ivar ldquoEl lenguaje unificado de modeladordquo Addison Wesley 432 Paacuteginas ISBN 84-7829-028-1 1999

Booch Grady Rumbaugh James Jacobson Ivar ldquoThe Unified Modeling Language User Guiderdquo Addison Wesley 2001

Brown David ldquoAn introduction to object-oriented analysis objects in plain Englishrdquo John Whiley amp Sons Inc 700 Paginas ISBN 0-471-1 1028-0 QA-769-035-B76-1997 1997

Chang Shi-Kuo ldquoVisual Languages and visual programmingrdquo Plenum Press 340 Paacuteginas ISBN 0-306-43428-8 QA-7665-V57-1990 1990

Daniels John ldquoModeling with a sense of purposerdquo Design - IEEE Software JanuaryEebmary 2002

Glasgow Universidad Reino Unido ldquoA UML Editor in Javardquo (lthttplstudentsdcsglaacuWstudentspainjfproject-reportproject-re port-htmV4thYearReporthtrnlgt 2002)

T Hackos JoAnn C Redish Janice ldquoUser and Task Analysis for Interface Designrdquo Wiley Computer Publishing 488 Paacuteginas ISBN QA-769-U83- H33-1998 1998

Hemaacutendez Velaacutezquez M ldquoIngenieriacutea inversa de coacutedigo fuente en C++ para la obtencioacuten de su disentildeordquo Tesis AT-379 (03-0334) 2003

Conceptos generales

[HIX93]

[JAC93]

[JAC99]

[JOY98]

[LAR97]

[MAR]

[MIC99]

[MIC02]

[MOU98]

Hix Deborah Hartson H Rex ldquoDeveloping user interfacesrdquo 381 Paacuteginas ISBN 0-471-57813-4 QA-769-U83-H59-1993 1993

Jacobson Ivar Christerson Magnus Jonsson Patrik Overgaard Gunnar ldquoObject oriented software engineeringrdquo Addison Wesley ISBN 0-20 1 - 54435-0 QA-7676-D47-J63-1993 1993

Jacobson Ivar Booch Grady Rumbaugh James ldquoEl proceso unificado de desarrollo de softwarerdquo Addison Wesley 438 Paacuteginas ISBN 84-7829-036- 2 1999

Joyanes Aguilar Luis ldquoProgramacioacuten orientada a objetosrdquo McGruw Hill ISBN 84-481-0590-7 1998

Larman Craig ldquoAplying UML and Patternsrdquo Prentice Hull 507 Paacuteginas ISBN 0-13-748880-7 QA-769-035-L37-1997 1997

Marriot Kim Meyer Bemd ldquoVisual Language Theoryrdquo Springer 381 Paacuteginas P-935-V567-1998 1998

Microsoft ldquoMicrosoft Visual C++ 6 manual del programadorrdquo McGraw Hill ISBN 84-481-2127-9 QA-7673-Cl53-23718-1999 1999

Microsoft ldquoVisiordquo (lthttpwwwmicrosoftcomofficevisiogt 2002)

B Mourao Luis X ldquoUniversal Modeling Language Part 11 UML Notation - Case Sequence and Collaboration Diagramsrdquo Lan Times Magazine (~httpwwwlantimescomltpartsdiscussdiscuss6Ohtm~) 1998

No Magic ldquoMagicDrawrdquo (lthttpwwwmagicdrawcomgt 2002)

Object Insight ldquoJvisionrdquo (lthttpwwwobject-insightcomgt 2002)

Rational Software Microsoft I Hewlett-Packard Oracle Sterling Software MCI Systemhouse Unisys ICON Computing IntelliCorp i-Logix IBM ObjectTime Platinum Technology Ptech Taskon Reich Technologies Sofieam ldquoUML Summaryrdquo Version 11 Unified Modeling Language 1997

Rational ldquoRational Roserdquo (lthttpwwwrationalcomproductosrosegt 2002)

Rikki Kirzner ldquoAnalysis Modeling and Design Tools Market Forecast and Analysis 2001-2005rdquo Bulletin Published Under Services Application Design and Construction Tools Application Development and Deployment Strategies Documento Nuacutemero 24809 Junio 2001

53

Conceptos generales

[RIM92] Rimrner Steve ldquoGraphical user interface programmingrdquo 423 Paacuteginas

1992

Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language reference manualrdquo Addison Wesley 550 Paacuteginas ISBN 0-201-

ISBN 0-8306-2475-9 ISBN 0-8306-2472-4 (pbk) QA-769-083-R55G

[RUM99]

30998-X QA-7676-D47-R85-1999 1999

[RUM299] Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language user guiderdquo Addisoiz Wesley 482 Paacuteginas ISBN 0-201 -57 168-4 QA-7676-D47-B66-1999 1999

[SMA02] SmartDraw ldquoSmartDrawrdquo (lthttpwwwsmartdrawcomgt 2002)

[SHU88] 9 - Shu Nun C ldquoVisual Programmingrdquo Van Nostrand Reinhold ISBN 0-422- 28014-9 ISBN 0-422-01 164-4 QA-7665-S55 1988

[THI90] Thimbleby Harold ldquoUser Interface Designrdquo Acm press 470 Paacuteginas ISBN 0-201 -41 61 8-2 QA-769U83-T772~- 1990 1990

[WENO2] Wences Diaz MF ldquoModelo de Ingenieriacutea Inversa para la obtencioacuten de disentildeo detallado basado en LEVISSrdquo Tesis (02-0014) 2002

54

Anexo A

Conampuracioacuten de Microsoft Vkua[C++ 6 O

Este anexo indica las configuraciones que se utilizaron para la compilacioacuten de SCUML y s3c

Configuracioacuten de Microsoft Visual c++ 60

Debido a la integracioacuten de los proyectos de InverSOODA e InverDDVi con S3C se cumplioacute con los requisitos previos de ambos proyectos

El compilador usado en el proyecto fue el Microsoft Visual C++ 60

Para el cumplimiento con la funcionalidad de InverSOODA se instaloacute el ANTLR la versioacuten 271 Se descargoacute del sitio l i l l ~ ~ ~ ~ ~ ~ t l ~ l ~ - ~ t - ~ la versioacuten mencionada en un archivo comprimido (en formato zip) Se colocoacute el paquete descomprimido en el directorio ldquoDIANTLR-271 I rdquo

Recomiendo ampliamente que el directorio principal de ANTLR se copie en el directorio raiacutez de cualquier unidad de disco debido a que experimenteacute problemas de compilacioacuten cuando ANTLR no se encontraba en el directorio raiacutez

Io015

Source Browser AlttF12 I u c Ersquo V I

Visual Component Mgnager

- - ~ ~ ~ ~~

P2 Registrar control

A Contenedor de prueba de controles ActiveX

A Usor de objetos OLE y COM

Buacutesqueda de errores

A Y++ MFC Iracer

Customize options

~ - q- ~ Macro

Eecord Quick Macro Cbl+ShiR+R Pay Quick Macro Ctrl+ShiR+P

En el menuacute Tools (Herramientas) seleccione el sub-menuacute Options ltopcionesgt

56

Configuracioacuten de Microsoft Visual C++ 60

En la siguiente ventana de diaacutelogo debe agregar la direccioacuten en donde se encuentra el ANTLR

Agregar la ruta del directorio de ANTLR hasta el subdirectorio

libcpp

Editor I Tabs I Debug I Compatibility 1 Build Dneclolies I a I Chow directories for - Platfolm -

- Directories I x ) 4 jWin32 -] llnclude files

m cancd I

57

Configuracioacuten de Microsoft Visual C t+ 60

Se ha creado una libreriacutea (anrlrliblib) de ANTLR la cual ya estaacute situada en el directorio del proyecto SCUML (ISCUML) y no debe ser movida o eliminada

I

Geneial 1 Debug I CC++ Link I Category

Output file name bebugSCUMLexe

Objectljibrary modules 4 anllrliblib

li Generate debug lnfo r Ignore all defaull lbaries D ~ i n k j n ~ ~ ~ t a n ~ r ~ e n e r ~ ~ ~ mapfile

r Enable psafilrng

Proiec1 Ootionn

pq Cancel 1 Libreriacutea de ANTLR que debe existir 1 I para que se compile correctamente

58

Anexo B

~ u iacute aacute raacutepida de uso deC Sistema S3C

5 Este anexo indica de forma raacutepida la manera de utilizar S3C para crear un diagrama de secuencias de forma automaacutetica

Guiacutea Raacutepida de uso del Sistema S3C i

Para indicar la creacioacuten de un diagrama de secuencias en forma automaacutetica se debe ir a la barra del costado izquierdo y presionar ldquoNuevo Proyecto SCUMLrdquo

I s3c I ~ Nuevo Proyecto SCUML ~ _ _ - I Diagrama de clases ~ Diagrama de secuencias 1 MDI DOC Activo

-

Apareceraacute un documento llamado ldquoSCUMLV en donde el simbolo corresponde a un numero consecutivo iniciando desde 1 (uno)

$ e Despueacutes se presiona ldquoDiagrama de clasesrdquo Habraacute que para indicarle al sistema si se requiere abrir un diagrama de clases existente o realizar uno nuevo

i

iquestAbrir un documento existente

No Cardquo~ear

AI presionar ldquoSirdquo se debe indicar cual es el archivo del diagrama de Clases en el cuadro de diaacutelogo siguiente

~~ - 11dMis documentos rsquo 2 M i P C i lsquo h s sitios de red

I

AI presionar ldquoNordquo en ldquoAbrir un documento existenterdquo se nos mostraraacute un documento vacio para crear un diagrama de clases

60

Guiacutea Raacutepida de uso del Sistema S3C

Para ambas opciones se requiere que los diagramas de Wamier ya se encuentren construidos Y para continuar el proccso se selecciona el documento ldquoSCUMLVrsquo creado al inicio y despueacutes presionar el botoacuten nombrado ldquoDiagrama de secuenciasrdquo localizado en la barra de hcrraiiiicntas del costado izquierdo

Ha iniciado el proceso de construccioacuten del diagrama de secuencias Si no existen errores al terminar el proceso se le mostraraacute un cuadro de diaacutelogo llamado ldquoResultadosrdquo en donde le mostraraacute las llamadas de las que no localizoacute su definicioacuten

- - -

Cancel 1 D e las siguientes llamadas es posible que esten mal escritas o peitenezcan a la libreiia del Lenguaie Verifique ya que no se encontraron sus definiciones

A continuacioacuten se mencionan los posibles errores que finalizan el proceso de la creacioacuten automaacutetica de los diagramas de secuencias en S3C

Cuando no exista un meacutetodo lsquomainrsquo definido en el diagrama de clases

No se encontro el meacutetodo lsquomain()rsquo que inicie la secuencia I A No se puede crear el diagrama de secuencias

p==amp=q

61

Guia Raacutepida de uso del Sistema S3C

Cuando se definan niultiples metodos lsquoinainrsquo en el diagrama de clases

Multiples meacutetodos lsquomainOlsquo Imposible decidir el inicio de secuencia

Aceptar i

Si un meacutetodo definido en Wamier realiza una llamada a lsquomainrsquo se cancelara el proceso

Llamada NO VALIDA al meacutetodo principal main

(iAcp-j(

4 i

CI Y rdquoldquoldquoI i 11 1-T

IZNTRO Gt INFORMACION

62

  • Tabla de Contenido
  • Listado de Figuras
  • Listado de Tablas
  • Notacioacuten
  • Introduccioacuten
  • Capitulo 1 Conceptos Generales
    • 11 Antecedentes
    • 12 Trabajos relacionados
      • 121 Tabla comparativa
        • 13 Definicioacuten del problema
        • 14 Objetivo de la Tesis
          • Objetivos especiacuteficos de la tesis
            • 15 Hipoacutetesis de investigacioacuten
            • 16 Alcances y limitaciones del trabajo de tesis
              • Capitulo 2 Marco Teoacuterico
                • 21 Modelado de sistemas de software
                • 22 Interfaz de usuario (Mecanismos de interaccioacuten)
                • 23 Lenguajes Visuales
                • 24 Programacioacuten orientada a objetos
                • 25 Lenguaje de Modelado Unificado (UML)
                  • Desarrollo de la herramienta
                    • 31 Disentildeo de la Arquitectura
                      • 311 Requisitos (Diagrama de Casos de uso)
                        • 312Modelo Conceptual
                        • 313Diagramas de clases
                        • 32 Elementos de la arquitectura
                          • 321 Microsoft Foundation Class (MFC)
                            • 322Arquitectura Documento Vista
                            • 323Integrando Ambientes en Visual c++
                              • 324 Interfaz de Muacuteltiples Documentos (MDI)
                                • 325Recursos Diaacutelogos Menus y Barras de Herramientas
                                  • 326 Notacioacuten estaacutendar
                                  • 327 Estructura de datos persistencia y recuperacioacuten
                                    • 328Patrones de disentildeo utilizados
                                      • 33 Diagrama de secuencias
                                        • 331Ciclo de vida del software
                                          • 34 Elementos atoacutemicos de la Gramaacutetica
                                            • 341 Representacioacuten visual
                                              • 35 Gramaacutetica desarrollada
                                              • 36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias
                                                  • Capitulo 4 Pruebas y Resultados
                                                    • 41 Recursos teacutecnicos utilizados
                                                    • 42 Descripcioacuten del plan de pruebas
                                                    • 43 Resultados
                                                      • 431 Caso
                                                      • 432 Caso2
                                                      • 433 Caso
                                                          • Conclusiones y trabajos futuros
                                                            • Trabajos futuros
                                                            • Referencias
                                                            • Anexo A Configuracioacuten de Microsoft Visual C+t
                                                              • Figura 11 - Arquitectura de la suite cenidet-UML
                                                              • Figura 21 -Programacioacuten Visual
                                                              • Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de
                                                              • Figura 32 -Diagrama de Casos de Uso para el S3C
                                                              • Figura 33 -Modelo Conceptual
                                                              • Figura 34 - Diagrama de Clases -Control del Diagrama -
                                                              • Figura 35 - Diagrama de Clases - Patroacuten Visitor -
                                                              • Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento
                                                              • Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)
                                                              • Figura 38 -Dialogo Caracteriacutesticas del Objeto
                                                              • Figura 39 -Dialogo Mensaje
                                                              • Figura 3 IO - Menuacute de los Diagramas de Secuencias (estaacutendar)
                                                              • Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias
                                                              • Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)
                                                              • Figura 313 - Serializacioacuten
                                                              • Figura 314 -Modelo de cascada del ciclo de vida del software
                                                              • Figura 41 - Resultado del caso de prueba
                                                              • Figura 42 -Resultado del caso de prueba
                                                              • Figura 43 -Resultado del caso de prueba
                                                              • Figura 44 -Resultado del caso de prueba
                                                              • Tabla 11 - Tabla comparativa
                                                              • Tabla 31 -Prefijos estaacutendar de identificadores
                                                              • Tabla 32 -Elementos atoacutemicos del lenguaje
                                                              • Tabla 41 - Resumen de los resultados de las pruebas realizadas

Desarrollo de la herramienta

Con base en la informacioacuten que se tiene se abren los archivos correspondientes a los diagramas de Warnier El proceso que se emplea sobre cada uno los diagramas de Warnier llamado ldquoExtraer informacioacuten de los disentildeos detallados de los meacutetodosrdquo sirve para recopilar el conjunto de las llamadas de cada meacutetodo definido

En el siguiente paso (ldquoReconocer llamadas a meacutetodosrdquo) consiste en identificar si los meacutetodos que estaacuten descritos en los diagramas de Warnier tambieacuten lo estaacuten en el diagrama de Clases correspondiente

El paso ldquoConstruir los diagramas de secuencias automaacuteticamenterdquo realiza una validacioacuten de los meacutetodos definidos en los diagramas de Clases con los meacutetodos definidos en los diagramas de Warnier Este paso crea una estructura de datos con la secuencia de las llamadas y la recorre para crear los objetos y los mensajes en el diagrama de secuencias

AI terminar la creacioacuten automaacutetica del diagrama de secuencias se dispone de la r opcioacuten de guardar

31 Disentildeo de la Arquitectura

Para definir los procesos que el sistema va a realizar es necesario llevar a cabo un anaacutelisis de requisitos los cuales pueden ser expresados mediante diagramas de Casos de Uso Los Casos de Uso son una descripcioacuten textual narrativa de los procesos de un sistema

311Requisitos (Diagrama de Casos de uso)

Los casos de uso en realidad no son un artefacto de anaacutelisis orientado a objetos estos describen simplemente procesos y pueden ser igualmente efectivos en un proyecto tecnoloacutegico no orientado a objetos Son usados en un paso preliminar a la descripcioacuten de requerimientos de un sistema [LAR971 La Figura 32 muestra el diagrama de casos de uso que especifica al S3C

9

S3C (Diagramas de Secuencias)

usuario I Modelado de

I

Figura 32 Diagrama de Casos de Uso para el S3C

23

Desarrollo de la herramienta

Descripcioacuten de los Casos de Uso

Caso de Uso ldquoDiagramas de Secuenciasrdquo Se inicia cuando el actor ldquousuariordquo solicita la creacioacuten de un Diagrama de Secuencias Se establece la forma de la construccioacuten automaacutetica de los diagramas de secuencias de UML Se hace uso del Modelado de Clases y del Modelado del disentildeo detallado de los meacutetodos

Escenario de Eacutexito 1 Se obtiene la informacioacuten de las clases del modelado de clases 2 Se obtiene la informacioacuten del modelado del disentildeo detallado de los meacutetodos 3 Se realiza la construccioacuten automaacutetica de los diagramas de secuencias

1 En el modelo de clases no hay informacioacuten o estaacute incompleta 2 En el modelo del disentildeo detallado de los meacutetodos no hay informacioacuten o estaacute

incompleta

Escenario de Falla

Caso de Uso ldquoModelado de Clasesrdquo El diagrama de Clases se utiliza para obtener los nombres de clases y los nombres de los meacutetodos de cada clase

Escenario de Eacutexito 1 Se abre el modelo 2 Se procesa para obtener la informacioacuten de las clases (nombres de clases y nombres

de meacutetodos)

Escenano de Falla h 1 No se puede abrir el modelo J 2 El modelo esta vaciacuteo

Caso de Uso ldquoModelado del Disentildeo detallado 1 los meacutetodosrdquo El disentildeo detallado de los meacutetodos se realiza con diagramas de Warnier aquiacute se establecen las llamadas a funciones dentro del sistema y es aquiacute donde se identifica el dinamismo que se representaraacute en los diagramas de secuencias

Escenario de Eacutexito 1 Se abre el modelo 2 Se realiza la identificacioacuten de las llamadas existentes

Escenario de Falla 1 No se puede abrir el modelo 2 El modelo esta vaciacuteo

24

Desarrollo de la herramienta

Clase Objeto ni I Diagrama I n ____ Nombre Descripcioacuten

i

Mensaje

Tipo

En el Anaacutelisis Orientado a Objetos se crea una especificacioacuteii del dominio del problema y de los requeriinientos desde la perspectiva de una clasificacioacuten por objetos y del entendimiento de los teacuterminos usados en el dominio del problema Una descomposicioacuten del dominio del problema involucra una identificacioacuten de conceptos atributos y asociaciones que son considerados importantes dentro del dominio El resultado puede ser expresado en un Modelo Corzcepttraf el cual es ilustrado en un conjunto de diagramas que definen conceptos (objetos) [LAR97]

312Modelo Conceptual

El modelo conceptual visto en la Figura 33 no es una descripcioacuten de componentes de software representa conceptos en el domino del problema en el mundo Teal [LAR97l

313Diagramas de clases

Por cuestiones dc espacio las clases de la arquitectura del sistema estaraacuten referidas en varios diagramas que de alguna manera estaacuten relacionados entre si

Una de las partes maacutes importantes del Ambiente Visual S3C es la estructura de clases ltCCraJicogt la cual se refiere al control de los diagramas eacutesta por su naturaleza podriacutea considerarse el nuacutecleo del sistema La manipulacioacuten y control de los diagramas estaacute definido en una estructura de clases organizada con el patroacuten de disentildeo Composite que se muestra en la Figura 34

25

Desarrollo de la herramienta

CRecursividadDS CMensajeDS CObjetoDS CDiagramaDS

I Cvisitor I

CApuntadorDS CDblClickDS CAsocAdjusterDS CSelectorDS

26

Desarrollo de la herramienta

n 32 Elementos de la arquitectura

Es necesario describir los elementos que dan soporte a la arquitectura del ambiente donde se implementaraacute el sistema en este caso Microsoft Visual (MV) C++ 6 El MV C++ es un marco de aplicacioacuten poderoso basado en Windows se integran ademaacutes del lenguaje C++ (compilador y enlazador) el programa de desarrollo de programas en lenguaje C para Windows (SDK) la Microsoft Foundation Class Library AppWizzard Classwizard AppStudio y WorkBencli

La Microsoft Foundation Class Library comprende una biblioteca de clases de C++ y es considerada como el nuacutecleo del MV C++

321Microsoft Foundation Class (MFC)

La libreriacutea Microsoft Foundation Class (MFC) es una interfaz orientada a objetos que tiene las siguientes metas de disentildeo

o

Reduccioacuten significante de esfuerzo al escribir una aplicacioacuten para Windows Velocidad de ejecucioacuten comparable a las APIrsquos del lenguaje C Miacutenimo tamantildeo de coacutedigo Capacidad para llamar cualquier funcioacuten de Windows en C directamente Faacutecil conversioacuten de aplicaciones existentes en C a C++ Faacutecil uso de APIrsquos de Windows con C++ como con C Faacutecil uso de complicadas caracteriacutesticas de abstracciones poderosas como ActiveX soporte para base de datos impresioacuten barras de herramientas y barras de estado El API de Windows en C++ si usa tan efectivamente como las caracteriacutesticas mismas del lenguaje C++

La mayoriacutea de las clases de la Libreriacutea de la Microsoft Foundation Class son derivadas de una clase base ltCObjectgt que es la raiacutez de la jerarquiacutea de clases ltCObjectgt da uacutetiles capacidades a las clases que derivan de ella

La jerarquiacutea que existe en las clases derivadas de ltCObjectgt es la siguiente

Arquitectura de Aplicacioacuten Excepciones Servicios de Archivos Arreglos Listas Mapas Servicios de Internet Sockets Sincronizacioacuten Soporte para base de datos D A 0

27

Desarrollo de la herramienta

i

r

Liacutenea de Comandos Menuacute Dibujo Graacutefico Dibujo Graacutefico de Objetos Soporte de Control Soporte de Ventanas

Soporte para base de datos ODBC

o Marco de Ventanas o Barras de control o Hojas de propiedades o Cajas de Dialogo o Vistas o Controles

322Arquitectura Documento Vista

Por defecto las aplicaciones creadas con la MFC usan un modelo de aplicacioacuten que separa los datos del programa de las vistas de interaccioacuten con el usuario En eacuteste modelo un objeto documento de MFC lee y escribe datos en un almacenamiento persistente Un objeto vista administra el despliegue de datos suministrando al usuario los datos para ser seleccionados o editados La vista le comunica al documento cualquier cambio en los datos La razoacuten maacutes conveniente para seguir este modelo es cuando se necesita muacuteltiples vistas del mismo documento (como en una hoja de caacutelculo y un graacutefico)

La arquitectura documentovista hace faacutecil el soporte de muacuteltiples vistas y muacuteltiples tipos de documentos asiacute como la divisioacuten de ventanas y otras caracteriacutesticas de interfaz de usuario Pero el corazoacuten de la arquitectura son cuatro clases (Mostradas en el aacuterbol de clases de la Figura 36)

ltCDocumerrtgt (o ltCOleDocuinentgt) - Se instancia un objeto de este tipo para almacenar y controlar los datos del programa ltCViewgt (o una de sus clases derivadas ltCScrotlViewgt ltCFormViewgt ltCEditView ltCRecordViewgt ltCDaoRecordView ltCtreeViewgt ltCListViewgt b ltCrichEditViewgt) - Un objeto es usado para desplegar los datos y administrar la interaccioacuten del usuario con los datos ltCFrameWndgt (o una de sus variantes) - Establece el marco sobre el que trabajaraacuten una o mas vistas de un documento ltCDocTemolategt (o ltCSingIeDocTemplategt o ltCMultiDocTemplategt) - Coordina la existencia de uno o maacutes documentos de un tipo dado y administra la correcta creacioacuten de los documentos vistas y objetos ventanas para cada tipo

i

28

Desarrollo de la herramienta

______________ 2 Wiew

I - - __ - ------a ________________

323Integrando Ambientes en Visual C t t

Las aplicaciones de Interfaz de Documento Uacutenico (SDI) soporta muacuteltiples tipos de documentos pero este soporte es para un solo objeto documento Debido a esta restriccioacuten y aunado a la necesidad de tener varios objetos documentos a la vez se determina la utilizacioacuten del modelo Interfaz de Muacuteltiples Documentos (MDI) indicado en la Figura 37

324Interfaz de Muacuteltiples Documentos (MDI)

Una aplicacioacuten de Interfaz de Muacuteltiples Documento (MDI) permite la creacioacuten de plantillas para el manejo de los documentos eacutesta plantilla tiene la forma

rn-pDocTemplate = new CMultiDocTernplate ( I DR-SCUMLTY PE RUNTIME-CLASS (CSCUMLDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CTheView))

AddDocTernplate ( rn-pDocTemplate )

Cada plantilla describe una relacion del tipo de documento con la vista asociada La definicioacuten de la plantilla para el ambiente que controla los diagramas de secuencias es la siguiente

29

Desarrollo de la herramienta c

m-pTernplateSeqDlag = new CMultiDocTernplate ( IDR-DS-SJCTYPE RUNTIME-CLASS (CSeqDiagDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CSeqDiagView) )

AddDocTernplate( rn-pTernplateSeqDiag )

Esta plantilla hace uso de la clase CCliildFrame que por defecto el ambiente Visual C++ construye y esto es debido a que no se requieren caracteriacutesticas extras en las ventanas de las que proporciona dicha clasc En un caso en el que se requiriera un comportamiento diferente de la vista tendriacutea que crearse una nueva clase con las caracteriacutesticas deseadas

Vista Documento

Vista

I- Vista Documento I [ Tip- F Vista

L Figura 37 Modelo Interfaz de Muacuteltiples Documentos (MDI)

Para integrar otro Ambiente que utilice otro tipo de documento es necesario definir otra plantilla de la misma forma mencionada Debe tomarse en cuenta los siguientes puntos

Es necesario definir el nombre (mqTemplateNOMBRE) El IDR del tipo que se requiere que sea el documento En la primera liacutenea RUNTIME CLASS debe indicar la clase ltCDocumentgt que desea La segunda liacutenea RUNTIME-CLASS soacutelo la cambia a otra clase si requiere de otro manipulador de ventanas de lo contrario deje que ltCChildFramegt se haga cargo

-

30

Desarrollo de la herramienta

En la uacuteltima liacutenea referente a RUNTIME-CLASS se debe indicar la clase ltCViewgt que desea usar Para finalizar se usa la instruccioacuten AddDocTernplate para finalizar la definicioacuten del template (mgTemplateNOMBRE)

325 Recursos Diaacutelogos Mertuacutes y Barras de Herrattriertias

Son varios los recursos con los que se puede contar al crear un proyecto en Microsoft Visual C++ Los diaacutelogos son un recurso disponible que son utilizados para visualizar ingresar yo modificar informacioacuten que se requiera En el Ambiente Visual que se desarrolla son varios los diaacutelogos que se utilizaraacuten y eacutestos se describen a continuacioacuten

El Diaacutelogo ldquoCaracteriacutesticas del Obietordquo (Figura 38) identifica el nombre del Objeto y la descripcioacuten del mismo Este diaacutelogo se muestra cuando se presiona doble clic sobre un objeto del diagrama

I Nombre

Desciipcion

Figura 38 Dialogo Caracteriacutesticas del Objeto

El Diaacutelogo ldquoMensaierdquo (Figura 39) muestra el nombre del mensaje que puede ser modificado ademaacutes se visualizan el Identificador del Mensaje el tipo de Mensaje asiacute tambieacuten el origen y destino del mensaje

31

Desarrollo de la herramienta

Nornbie delMensaje Edit

IDentificador del Mensaje Edil Tipo de Mensaje (Edil

Edit Objeto Origen

Objeto Destino IEdit

i25El A Figura 39 Dialogo Mensaje

El menuacute es otro de los recursos del que se puede disponer para organizar el ambiente que se estaacute creando Para eacuteste caso en particular no se hizo modificaciones al menuacute estaacutendar (Figura 310) que Visual C++ presenta Los cambios significativos son el manejo del tipo de documento para los Diagramas de Secuencias

Archivo Editar Yer VenLana AyGda

Figura 310 Menuacute de los Diagramas de Secuencias (estaacutendar)

Otro importante recurso del que uno se puede valer en Visual C++ es la barra de herramienta personalizada la cuaacutel es construida en el Editor de Recursos Se ha construido una barra (Figura 311) con los elementos graacuteficos de los Diagramas de Secuencia de UML

Figura 311 Barra de Herramientas de los Diagramas de Secuencias

Es recomendable que al utilizar barras de herramienta personalizada se defina en el tamantildeo estaacutendar ya que puede experimentar problemas al momento de ejecutar la aplicacioacuten

Ademaacutes puede usar la propiedad TBBS-CHECKGROUP en una barra de herramientas para establecer que los botones puedan quedar presionados hasta que un botoacuten diferente sea presionado No olvide que la numeracioacuten inicia con cero ( O )

vuriableToolBurSetButtonStyle(OTBBSCHECKGROUP)

32

Desarrollo de la herramienta

Prefijo ID IDC IDD IDP IDR IDS

326 Notacioacuten estaacutendar

Los nombres descriptivos de los recursos se asocian a un valor uacutenico Para una mayor claridad eacutestos nombres mantienen un prefijo que describe el tipo de recurso asociado (vea la Tabla 31) [MIC99]

Tipo de Recurso Comandos de Menuacute Controles y recursos Cuadros de diaacutelogo Cadenas de solicitud para cuadros de mensaje Menuacute principal barras de herramienta tabla aceleradora y el icono Cadenas

IDR IDD IDC ID

200 - 299 3000 - 3999 34000 - 34999

Estos son los rangos de valores establecidos para el proyecto S3C Si se utiliza el coacutedigo fuente y se planea agregar otro proyecto verifisue que no se invadan estos nuacutemeros para evitar problemas

Para facilitar auacuten maacutes los trabajos futuros se ha definido una estructura de carpetas (ver Figura 312) para incluir en cada una las Clases correspondientes a cada tesis en desarrollo

33

Desarrollo de la herramienta

ill ~~ -

-I SCUML classes + U A N T L R + U App + 0 ClassDiagrams + 0 Common + a Java

t $2 SequenceDiagiams

+ WarnierDiagrams

iJ PackageDiagrams

12 StaterChartDiagrams

+

- f Classview I Resourceview 1 FileView ]

~ ~

Figura 312 Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)

327Estructura de datos persistencia y recuperacioacuten

Existe una gran cantidad de tipos de datos estructuras clases y meacutetodos de los que se puede hacer uso para una mejor y maacutes faacutecil obtencioacuten de los resultados A continuacioacuten hago comentarios en tipos de datos y meacutetodos en los que podriacutea tener problemas

CTypedPtrList

AI usar este tipo de dato o alguno relacionado que le permita utilizar el meacutetodo ltCTvrgtedPtrListGetNextgt tenga especial precaucioacuten al usarlo ya que al devolver el valor requerido la variable POSITION usada no se queda apuntando a ese valor en particular salta al inmediato siguiente de la lista

Si se realiza una creacioacuten dinaacutemica con punteros para los elementos de una CTypedPtrList Despueacutes de haberlo agregado a la lista evite el delete para borrar esta Usted deseando liberar la memoria no lo haga ya que eliminara directamente el elemento de la lista

POSITION

Es un valor usado para denotar una posicioacuten de un elemento en una coleccioacuten Pero CUIDADO no se refiere a un iacutendice es una referencia (no consecutiva) de punteros muy diferente a un iacutendice

CString

Auacuten cuando el operador de comparacioacuten == (igual a) es permitido para ser utilizado en las cadenas evite su uso ya que en ocasiones aunque cuando la e

34

Desarrollo de la herramienta

compilacioacuten no indique error alguno en la ejecucioacuten no realizaraacute lo que se necesita Recomiendo que utilice CStringCompare ()

Para eliminar el contenido de un CString utilice CStringEmpty() ya que asignar a la cadena un ldquonrdquo podriacutea causarle problemas

Serializacioacuten

Una forma en que se puede guardar informacioacuten y recuperarla de manera eficaz es mediante la serializacioacuten de objetos La serializacioacuten es un proceso que permite escribir un objeto en un archivo y tambieacuten leerlo

Para que la serializacioacuten se lleve a cabo son necesarios tres objetos un objeto de tipo ltCFilegt que represente el archivo un objeto de tipo ltCArchivegt que ofrece el entorno para la serializacioacuten y la clase del objeto a ser serializado debe ser heredada de ltCObjectgt y sobrescribir el meacutetodo ltSerializegt para que se encuentre de tal forma en que pueda ser serializado (vea la Figura 313)

Objeto a ser serializado 1

1 CArchive

[f --=I- ---7 Archivoexi

u Figura 313 Serializacioacuten

328Patrones de disentildeo utilizados

Se ha planteado la definicioacuten de una arquitectura de clases utilizando patrones de disentildeo debido a que algunos de ellos hacen maacutes faacutecil la extensioacuten de la funcionalidad y mantenimiento

35

Desarrollo de la herramienta

El patroacuten Composite es utilizado para crear de manera uniforme el diagrama sobre el que se trabaja (ver Figura 34) manteniendo una jerarquiacutea de clases uniforme las clases maacutes bajas en la jerarquiacutea definen primitivas de objetos graacuteficos

Se aplica el patroacuten de disentildeo Iterator para hacer recorridos en listas de objetos para realizar diversas operaciones Otro patroacuten de disentildeo del que se hace uso es el Visilor (ver Figura 35)

Para otras actividades que se realizan podriacutea pensarse en que se deberiacutean aplicar otros patrones pero se han evitado algunos (como el patroacuten de disentildeo Builder) para evitar incrementar la complejidad en la arquitectura ya que ai mantener el modelo de la MFC de documentovista la funcionalidad del patroacuten de disentildeo Builder es faacutecilmente reemplazado si se hiciera Uso de eacuteste se aumentariacutea la complejidad excesivamente (nos llevariacutea a perdemos en ocasiones en el paso de mensajes entre clases) dantildeando la facilidad de la arquitectura

33 Diagrama de secuencias

Un Diagrama de Secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten escenario Oacute comportamiento se usan para definir el curso loacutegico de accioacuten de un posible camino a seguir en la resolucioacuten de un problema Seguacuten John Daniels [DANO2] ldquoel principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildean las interacciones de los objetosrdquo

Los Diagramas de Secuencias se utilizan en el modelado de la implementacioacuten de sistemas de software ademaacutes son aplicables en el modelado de requisitos para establecer las comunicaciones existentes entre actores yo clases del sistema Con eacutestos diagramas se logran hacer descripciones de los escenarios y los comportamientos del sistema Con los Diagramas de Secuencias es posible definir protocolos de comunicacioacuten con paso de mensajes ya que dan esa flexibilidad que se requiere Ademaacutes los Diagramas de Secuencias contienen informacioacuten suficiente para que puedan ser transformados a los diagramas de colaboracioacuten [RUM Ol][BOO Oil

331Ciclo de vida del software

Considerando cualquier modelo de ciclo de vida del software (en la figura 314 se muestra el Modelo de cascada) el aacutembito directo de eacuteste Ambiente Visual es en el disentildeo aunque tiene sus vertientes en la codificacioacuten y mantenimiento

36

Desarrollo de la herramienta

Diseno

Codificacibn

I I I I Mantenimiento I

igura 314 Modelo de cascada del ciclo de vida del software

34 Elementos atoacutemicos de la Gramaacutetica

Definicioacuten de los elementos atoacutemicos del lenguaje y su contenido

1 Actor- Representa roles de entidad externos al sistema con el que interactuacutea directamente Los actores pueden ser humanos dispositivos u otros sistemas

2 ClaseObjeto- Determina una Clase u Objeto participante en la interaccioacuten

3 Mensaje-Es una comunicacioacuten entre objetos que contiene informacioacuten Eacuteste se representa con la finalidad a que una accioacuten sea llevada a cabo

4 Mensaje con tiempo- Tiene la misma finalidad que el mensaje la diferencia es que con eacutel se representa un atributo de tiempo

5 Mensaje asiacutencrono Es un mensaje que ocurre en el tiempo de manera independiente a otros mensajes

6 Mensaje de destruccioacuten de objeto- Es un mensaje cuya finalidad es indicar la destruccioacuten del objeto destino

7 Mensaje de creacioacuten de objeto- Es un mensaje que indica la creacioacuten de un objeto

8 Llamada al mismo objeto (Recursividad)- Es usado para modelar llamadas recursivas en el que una operacioacuten es invocada por el mismo objeto

37

Desarrollo de la herramienta

9 Destruccioacuten del objeto (AutodestrucciOacuten)- Puede o no modelarse es representada con una X al final de la liacutenea de vida del objeto

Elementos aulomaacuteticos

1 Liacutenea de Vida- Representa la vida del objeto durante la interaccioacuten

2 Activacioacuten- Muestra el periacuteodo de tiempo en el cual el objeto alguna operacioacuten

341RepresentaciOacuten visual

Representacioacuten visual de los elementos atoacutemicos del lenguaje

Actor

_- A

Mensaje

Mensaje de Creacioacuten de

Objeto

ClaseObjeto

I

Mensaje de retorno

Mensaje de Destruccioacuten de

Objeto

abla 32 Element(

Activacioacuten

Mensaje con tiempo

Autodestruccioacuten

x

atoacutemicos del lengi

taacute realizz

Texto ===I (letra)+ (letra I

numero) letra= AZ I az numero = 09

I

Recursividad ~

I

i j e

io

38

u

Comentario

iexcl

Conector de Comentario

35 Gramaacutetica desarrollada

La gramaacutetica que se propone es una gramaacutetica visual del tipo relacional Una gramaacutetica relacional pertenece a las gramaacuteticas libres de contexto es una 6-iupla G (N C S R Attr P) donde

N es un conjunto finito de siacutembolos no terminales C es un conjunto de siacutembolos terminales S es un siacutembolo distinguido en N llamado siacutembolo inicial R es un conjunto finito de siacutembolos de relacioacuten Attr es un conjunto finito de siacutembolos de atributos P es un conjunto de producciones

Entonces definiendo nuestra gramaacutetica G (N C S R Attr P)

N = Diagrama GrupoClaseObjeto

S = Diagrama

R = mensaje mensajeTiempo mensajeRetomo mensajeAsincrono mensajecrea mensajeDestruye autodestruccioacuten recursividad

R

Attr = entrada salida entradacrea

39

Desarrollo de la herramienta

Definiendo la posicioacuten de los atributos en los elementos visuales

entradacrea ObetaClase

entrada

salida

P =

Diagrama I GrupoClaseObjeto (mensaje (mensajeRetorno

(salida 1) (entrada 2) ) (salida 2) (entrada 1) )

- Diagrama 0 GrupoClaseObjeto

(mensaje (mensaje (mensajeRetomo (mensajeRetomo (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entradacrea 2) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 1) ) (salida 1) (entrada 1) )

entrada

salida

40

Desarrollo de la herramienta

s

-

GrupoClaseObjeto - 1 1 I 2 (mensaje (mensaje (mensajeRetorno (mensajeRetorno (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entradacrea 2) ) (salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 1) ) (salida I ) (entrada I ) )

1 En las gramaacuteticas relacionales una produccioacuten estaacute acompantildeada de las posibles

relaciones que puedan generarse En la primera produccioacuten Diagrama produce a un Actor seguida de un GrupoClaseObjeto el Actor inicia la interaccioacuten con un mensaje y recibe el mensaje de retorno al finalizar la interaccioacuten La segunda y tercera produccioacuten son similares debido a que un GrupoClaseObjeto contiene dos ClaseObjeto que se relacionan de la misma forma

Existe un elemento de la gramaacutetica llamado Attr (Atributo) el cual define la parte de los elementos visuales donde se establecen las relaciones Se han determinado dos atributos (entrada y salida) que para nuestro propoacutesito estaraacuten establecidos en la liacutenea de vida de cada elemento visual (Actor y ClaseObjeto)

Los Comentarios y la Activacioacuten no se consideran en la gramaacutetica Los comentarios son libres de incluirse y relacionarse con cualquier elemento y relacioacuten mencionada anteriormente y la activacioacuten existe siempre que se presente un mensaje (o podriacutea omitirse) Estas consideraciones se realizaron para hacer auacuten maacutes faacutecil la gramaacutetica ya que si se trata de realizar un sistema las restricciones de estos elementos pueden mantenerse en el lenguaje de programacioacuten en el que se desarrolle el sistema

36

Precondiciones

El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias

1 El diagrama de Clases debe existir y estar completo 2 Debe existir un archivo con un diagrama de Warnier por cada diagrama de Clases y

con el mismo nombre de archivo (excepto la extensioacuten del archivo) 3 En el uacutenico diagrama de Warnier de cada Clase se deben modelar todos los meacutetodos

de la Clase 4 No realizar declaraciones de meacutetodos

41

Desarrollo de la herramienta

5 Debe existir un meacutetodo lsquomain()rsquo en el diagrama de Clases

Restricciones

Los meacutetodos deben mantener nombres distintos en las diferentes Clases

Metodologiacutea para la obtencioacuten automaacutetica de los Diagramas de Secuencias

1 Seleccionar el diagrama de Clases

2 Se construye una lista con los nombres de las Clases y los Meacutetodos

3 Se verifica si exista el meacutetodo lsquomain()rsquo en alguna Clase Se busca la existencia de una uacutenica Clase

a La Clase que contenga lsquomain()rsquo se va al inicio de la lista de Clases

b Si no existe lsquomain()rsquo SE TERMINA EL PROCESO

4 Se verifica la existencia de los archivos que contienen el Disentildeo Detallado de los meacutetodos en Wamier para cada una de las Clases si alguno falta SE TERMINA EL PROCESO

5 Se procesa cada uno de los modelos del Disentildeo Detallado de los Meacutetodos generando una lista de secuencias de llamadas por cada uno de los meacutetodos

6 Se verifica que cada llamada corresponda a alguacuten meacutetodo existente (del diagrama de Clases) De no existir ese meacutetodo la llamada entra a una estructura que

7 Se crea una lista de secuencia

a Se inicia con lsquomain()rsquo b Se recorre cada una de las llamadas de los meacutetodos c Se considera invaacutelido el caso de que un meacutetodo intente una llamada

recursiva al meacutetodo lsquomain()rsquo

8 Se muestra un diaacutelogo de resultados en el que se indican las llamadas que no se encnotraron definidas y que pueden ser Llamada a libreriacutea oacute Llamada Erroacutenea

42

Capiacutetulo 4

Prue6as y su6taaacuteos

En eacuteste capiacutetulo se da a conocer el detalle de las pruebas y de los resultados obtenidos Se describen los casos de prueba con los que se realizoacute la evaluacioacuten del sistema asiacute tambieacuten se presentan comentarios acerca de los resultados obtenidos

Pruebas y Resultados

41 Recursos teacutecnicos utilizados

Para llevar a cabo las pruebas al sistema S3C se utilizaron los siguientes equipos de Coacutemputo

Computadora de escritorio

256MB RAM Disco Duro 80G Monitor 17rdquo SAMSUNG

AMD Athlon XP 1600+ I4Ghz

Computadora de escritorio Intel Pentium 4 - 128MB RAM Disco Duro 40G Monitor 15rdquo i -

42 Descripcioacuten del plan de pruebas

Las pruebas establecen el Uacuteltimo paso desde donde es posible evaluar la calidad y descubrir los errores Las pruebas y la validacioacuten del software se utilizan para comprobar que el sistema cumple con las expectativas del usuario

En esta seccioacuten se describen los casos de prueba que se realizaron al prototipo de S3C en conjunto a la suite cenidet-UML Para cada uno de los casos se presenta el objetivo el procedimiento que se siguioacute para la prueba y se muestran los resultados obtenidos - _

Las pruebas a realizar son los siguientes

Caso 1 Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Caso 2 Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Wamier

Caso3 Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Wamier

Caso4 Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo 5

44

Pruebas y Resultados

43 Resultados

431 Caso 1

5 Y

IZ =

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoSirdquo 4 Seleccionar el archivo ldquoVENTASrdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 41 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

s3c iuevo Proyecto SCUM1

Diagrama de clases

lvendedor I L

3

salida

venta prod

4 venia-oferta vcntaprod =

salida 6

Figura 41 Resultado del caso de prueba 1

45

Pruebas y Resultados

432 Caso 2

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Warnier (almacenwar cajawar vendedorwar) que ya cxisten (del caso de prueba I )

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoNordquo 4 Agregar las siguientes Clases con los respectivos meacutetodos y atributos

a Claseldquovendedorrdquo Meacutetodos ldquoventa mainrdquo b Claseldquoalmacenrdquo Meacutetodos ldquoentrada salidardquo c Claseldquocajardquo Meacutetodos ldquoventagrodrdquo

5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 42 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

Diagrama de daseo lisgrama dcsccucncis

MOIDOC Anivo

venta prod

salida

1 Ycrdquo1a 2

I 4 vcrdquolD~o1cn venta prod gt

salida 6 i Figura 42 Resultado del caso de prueba 2

46

Pruebas y Resultados

r

433 Caso 3

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Warnier

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 43 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

5

Error al tratar de abrir el archivo A bZwar

Aceptar i

Faltan Archivos de Disentildeos Detallados de Meacutetodos 1 1 A No se puede crear el diagrama de secuencias

Figura 43 Resultado del caso de prueba 3

47

Pruebas y Resultados

434 Caso 4

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 44 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

lsquo I

~ _ i i _ l _ Repaado ~~ ~ ~ 6~ ampA Figura 44 Resultado del caso de prueba 4

48

Pruebas y Resultados

PRUEBA DESCNPCION CASO 1 Mostrar la funcionalidad del

Sistema S3C a partir de un

44 Anaacutelisis de Resultados

RESULTADOS Se comproboacute la correcta funcionalidad del Sistema S3C a partir de un diagrama

CASO 3

CASO4

I diagrama de Clases cxistcnte I de Clases existente CASO 2 I Mostrar la funcionalidad del I Sc comproboacute la corrccta funcionalidad

Sistema S3C a partir de un del Sistema S3C a partir de un diagrama diagrama de Clases que se de Clases que se construye al momento construye al momento Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el Secuencias si falta alguno de los diagrama de Secuencia si falta alguno diagramas de Warnier Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el secuencias si hace falta el meacutetodo diagrama de Secuencias al faltar el ldquomain ()rdquo meacutetodo ldquomain()rdquo

de los diagramas de Warnier

Los resultados obtenidos de cada uno de los casos establecidos demuestran que se validoacute la funcionalidad del prototipo con los requisitos definidos en el alcance de este proyecto

a lt

49

Conclusiones y Tru6ajos Futuros

Aquiacute se dan a conocer las conclusiones y se describen los posibles trabajos futuros para la continuacioacuten de eacuteste proyecto

F

51 Conclusiones

Conclusiones y trabajos futuros

Se ha creado un Ambiente Visual que permite obtener de forma automaacutetica los Diagramas de Secuencias en base a los diagramas de Clases y al disentildeo detallado de los meacutetodos descritos con diagramas de Warnier cumpliendo con los objetivos planteados para este trabajo

La tesis aporta principalmente La generacioacuten automaacutetica de los diagramas de secuencias y la eliminacioacuten de inconsistencias al mantener una validacioacuten directa de los diagramas de clases y los diagramas de Warnier que son utilizados

Esta validacioacuten es lograda a traveacutes del uso de la gramaacutetica visual relaciona1 que se ha definido (veacutease el capiacutetulo 3) Esta gramaacutetica visual establece reglas para la correcta construccioacuten de los diagramas de secuencias

P De esta manera se establece que la hipoacutetesis ldquoEs posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodosrdquo Es verdadera

52 Trabajos Futuros

Un Diagrama de Secuencias puede convertirse en un Diagrama de Colaboracioacuten por lo tanto un trabajo futuro es la construccioacuten automaacutetica de un Diagrama de Colaboracioacuten a partir de uno de Secuencias existente

Es posible calcular la meacutetrica de acoplamiento al tener un Diagrama de Secuencias construido

La Ingenieriacutea directa de un Diagrama de Secuencias estableciendo la validacioacuten en la construccioacuten de todos los elementos visuales que UML define

La propagacioacuten de las modificaciones de un Diagrama de Secuencias a los Diagramas de Clases y los Diagramas de Warnier

La modificacioacuten del coacutedigo fuente mediante los cambios establecidos en un Diagrama de Secuencias

51

[ALC03]

[BLA98]

[B0099]

[BOOOi]

[BR097]

[CHA90]

[DAN02]

[GLA02]

[HAC98]

[HER03]

4

Alcate1 Computer Associates International inc Electronic Data Systems Corporation Hewlett-Packard Company IBM Corporation I-Logix IntelliCorp Kabira Technologies Kennedy Carter Microsoft Corporation Object Management Group Oracle Corporation Project Technology Ptech Inc Rational Software Corporation Reich Technologies Softeam Taskon A S Telelogic Unisys Corporation ldquoOMG Unified Modeling Language Specificationrdquo Version 15 Unified Modeling Language 2003

Blaha Michael Rumbaugh James Premerlani William Eddy Frederick Lorensen William ldquoObject-oriented modeling and designrdquo Prentice Hall 484 Paacuteginas ISBN 0-13-629841-9 QA-769-03S-B53-19981998

Booch Grady Rumbaugh James Jacobson Ivar ldquoEl lenguaje unificado de modeladordquo Addison Wesley 432 Paacuteginas ISBN 84-7829-028-1 1999

Booch Grady Rumbaugh James Jacobson Ivar ldquoThe Unified Modeling Language User Guiderdquo Addison Wesley 2001

Brown David ldquoAn introduction to object-oriented analysis objects in plain Englishrdquo John Whiley amp Sons Inc 700 Paginas ISBN 0-471-1 1028-0 QA-769-035-B76-1997 1997

Chang Shi-Kuo ldquoVisual Languages and visual programmingrdquo Plenum Press 340 Paacuteginas ISBN 0-306-43428-8 QA-7665-V57-1990 1990

Daniels John ldquoModeling with a sense of purposerdquo Design - IEEE Software JanuaryEebmary 2002

Glasgow Universidad Reino Unido ldquoA UML Editor in Javardquo (lthttplstudentsdcsglaacuWstudentspainjfproject-reportproject-re port-htmV4thYearReporthtrnlgt 2002)

T Hackos JoAnn C Redish Janice ldquoUser and Task Analysis for Interface Designrdquo Wiley Computer Publishing 488 Paacuteginas ISBN QA-769-U83- H33-1998 1998

Hemaacutendez Velaacutezquez M ldquoIngenieriacutea inversa de coacutedigo fuente en C++ para la obtencioacuten de su disentildeordquo Tesis AT-379 (03-0334) 2003

Conceptos generales

[HIX93]

[JAC93]

[JAC99]

[JOY98]

[LAR97]

[MAR]

[MIC99]

[MIC02]

[MOU98]

Hix Deborah Hartson H Rex ldquoDeveloping user interfacesrdquo 381 Paacuteginas ISBN 0-471-57813-4 QA-769-U83-H59-1993 1993

Jacobson Ivar Christerson Magnus Jonsson Patrik Overgaard Gunnar ldquoObject oriented software engineeringrdquo Addison Wesley ISBN 0-20 1 - 54435-0 QA-7676-D47-J63-1993 1993

Jacobson Ivar Booch Grady Rumbaugh James ldquoEl proceso unificado de desarrollo de softwarerdquo Addison Wesley 438 Paacuteginas ISBN 84-7829-036- 2 1999

Joyanes Aguilar Luis ldquoProgramacioacuten orientada a objetosrdquo McGruw Hill ISBN 84-481-0590-7 1998

Larman Craig ldquoAplying UML and Patternsrdquo Prentice Hull 507 Paacuteginas ISBN 0-13-748880-7 QA-769-035-L37-1997 1997

Marriot Kim Meyer Bemd ldquoVisual Language Theoryrdquo Springer 381 Paacuteginas P-935-V567-1998 1998

Microsoft ldquoMicrosoft Visual C++ 6 manual del programadorrdquo McGraw Hill ISBN 84-481-2127-9 QA-7673-Cl53-23718-1999 1999

Microsoft ldquoVisiordquo (lthttpwwwmicrosoftcomofficevisiogt 2002)

B Mourao Luis X ldquoUniversal Modeling Language Part 11 UML Notation - Case Sequence and Collaboration Diagramsrdquo Lan Times Magazine (~httpwwwlantimescomltpartsdiscussdiscuss6Ohtm~) 1998

No Magic ldquoMagicDrawrdquo (lthttpwwwmagicdrawcomgt 2002)

Object Insight ldquoJvisionrdquo (lthttpwwwobject-insightcomgt 2002)

Rational Software Microsoft I Hewlett-Packard Oracle Sterling Software MCI Systemhouse Unisys ICON Computing IntelliCorp i-Logix IBM ObjectTime Platinum Technology Ptech Taskon Reich Technologies Sofieam ldquoUML Summaryrdquo Version 11 Unified Modeling Language 1997

Rational ldquoRational Roserdquo (lthttpwwwrationalcomproductosrosegt 2002)

Rikki Kirzner ldquoAnalysis Modeling and Design Tools Market Forecast and Analysis 2001-2005rdquo Bulletin Published Under Services Application Design and Construction Tools Application Development and Deployment Strategies Documento Nuacutemero 24809 Junio 2001

53

Conceptos generales

[RIM92] Rimrner Steve ldquoGraphical user interface programmingrdquo 423 Paacuteginas

1992

Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language reference manualrdquo Addison Wesley 550 Paacuteginas ISBN 0-201-

ISBN 0-8306-2475-9 ISBN 0-8306-2472-4 (pbk) QA-769-083-R55G

[RUM99]

30998-X QA-7676-D47-R85-1999 1999

[RUM299] Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language user guiderdquo Addisoiz Wesley 482 Paacuteginas ISBN 0-201 -57 168-4 QA-7676-D47-B66-1999 1999

[SMA02] SmartDraw ldquoSmartDrawrdquo (lthttpwwwsmartdrawcomgt 2002)

[SHU88] 9 - Shu Nun C ldquoVisual Programmingrdquo Van Nostrand Reinhold ISBN 0-422- 28014-9 ISBN 0-422-01 164-4 QA-7665-S55 1988

[THI90] Thimbleby Harold ldquoUser Interface Designrdquo Acm press 470 Paacuteginas ISBN 0-201 -41 61 8-2 QA-769U83-T772~- 1990 1990

[WENO2] Wences Diaz MF ldquoModelo de Ingenieriacutea Inversa para la obtencioacuten de disentildeo detallado basado en LEVISSrdquo Tesis (02-0014) 2002

54

Anexo A

Conampuracioacuten de Microsoft Vkua[C++ 6 O

Este anexo indica las configuraciones que se utilizaron para la compilacioacuten de SCUML y s3c

Configuracioacuten de Microsoft Visual c++ 60

Debido a la integracioacuten de los proyectos de InverSOODA e InverDDVi con S3C se cumplioacute con los requisitos previos de ambos proyectos

El compilador usado en el proyecto fue el Microsoft Visual C++ 60

Para el cumplimiento con la funcionalidad de InverSOODA se instaloacute el ANTLR la versioacuten 271 Se descargoacute del sitio l i l l ~ ~ ~ ~ ~ ~ t l ~ l ~ - ~ t - ~ la versioacuten mencionada en un archivo comprimido (en formato zip) Se colocoacute el paquete descomprimido en el directorio ldquoDIANTLR-271 I rdquo

Recomiendo ampliamente que el directorio principal de ANTLR se copie en el directorio raiacutez de cualquier unidad de disco debido a que experimenteacute problemas de compilacioacuten cuando ANTLR no se encontraba en el directorio raiacutez

Io015

Source Browser AlttF12 I u c Ersquo V I

Visual Component Mgnager

- - ~ ~ ~ ~~

P2 Registrar control

A Contenedor de prueba de controles ActiveX

A Usor de objetos OLE y COM

Buacutesqueda de errores

A Y++ MFC Iracer

Customize options

~ - q- ~ Macro

Eecord Quick Macro Cbl+ShiR+R Pay Quick Macro Ctrl+ShiR+P

En el menuacute Tools (Herramientas) seleccione el sub-menuacute Options ltopcionesgt

56

Configuracioacuten de Microsoft Visual C++ 60

En la siguiente ventana de diaacutelogo debe agregar la direccioacuten en donde se encuentra el ANTLR

Agregar la ruta del directorio de ANTLR hasta el subdirectorio

libcpp

Editor I Tabs I Debug I Compatibility 1 Build Dneclolies I a I Chow directories for - Platfolm -

- Directories I x ) 4 jWin32 -] llnclude files

m cancd I

57

Configuracioacuten de Microsoft Visual C t+ 60

Se ha creado una libreriacutea (anrlrliblib) de ANTLR la cual ya estaacute situada en el directorio del proyecto SCUML (ISCUML) y no debe ser movida o eliminada

I

Geneial 1 Debug I CC++ Link I Category

Output file name bebugSCUMLexe

Objectljibrary modules 4 anllrliblib

li Generate debug lnfo r Ignore all defaull lbaries D ~ i n k j n ~ ~ ~ t a n ~ r ~ e n e r ~ ~ ~ mapfile

r Enable psafilrng

Proiec1 Ootionn

pq Cancel 1 Libreriacutea de ANTLR que debe existir 1 I para que se compile correctamente

58

Anexo B

~ u iacute aacute raacutepida de uso deC Sistema S3C

5 Este anexo indica de forma raacutepida la manera de utilizar S3C para crear un diagrama de secuencias de forma automaacutetica

Guiacutea Raacutepida de uso del Sistema S3C i

Para indicar la creacioacuten de un diagrama de secuencias en forma automaacutetica se debe ir a la barra del costado izquierdo y presionar ldquoNuevo Proyecto SCUMLrdquo

I s3c I ~ Nuevo Proyecto SCUML ~ _ _ - I Diagrama de clases ~ Diagrama de secuencias 1 MDI DOC Activo

-

Apareceraacute un documento llamado ldquoSCUMLV en donde el simbolo corresponde a un numero consecutivo iniciando desde 1 (uno)

$ e Despueacutes se presiona ldquoDiagrama de clasesrdquo Habraacute que para indicarle al sistema si se requiere abrir un diagrama de clases existente o realizar uno nuevo

i

iquestAbrir un documento existente

No Cardquo~ear

AI presionar ldquoSirdquo se debe indicar cual es el archivo del diagrama de Clases en el cuadro de diaacutelogo siguiente

~~ - 11dMis documentos rsquo 2 M i P C i lsquo h s sitios de red

I

AI presionar ldquoNordquo en ldquoAbrir un documento existenterdquo se nos mostraraacute un documento vacio para crear un diagrama de clases

60

Guiacutea Raacutepida de uso del Sistema S3C

Para ambas opciones se requiere que los diagramas de Wamier ya se encuentren construidos Y para continuar el proccso se selecciona el documento ldquoSCUMLVrsquo creado al inicio y despueacutes presionar el botoacuten nombrado ldquoDiagrama de secuenciasrdquo localizado en la barra de hcrraiiiicntas del costado izquierdo

Ha iniciado el proceso de construccioacuten del diagrama de secuencias Si no existen errores al terminar el proceso se le mostraraacute un cuadro de diaacutelogo llamado ldquoResultadosrdquo en donde le mostraraacute las llamadas de las que no localizoacute su definicioacuten

- - -

Cancel 1 D e las siguientes llamadas es posible que esten mal escritas o peitenezcan a la libreiia del Lenguaie Verifique ya que no se encontraron sus definiciones

A continuacioacuten se mencionan los posibles errores que finalizan el proceso de la creacioacuten automaacutetica de los diagramas de secuencias en S3C

Cuando no exista un meacutetodo lsquomainrsquo definido en el diagrama de clases

No se encontro el meacutetodo lsquomain()rsquo que inicie la secuencia I A No se puede crear el diagrama de secuencias

p==amp=q

61

Guia Raacutepida de uso del Sistema S3C

Cuando se definan niultiples metodos lsquoinainrsquo en el diagrama de clases

Multiples meacutetodos lsquomainOlsquo Imposible decidir el inicio de secuencia

Aceptar i

Si un meacutetodo definido en Wamier realiza una llamada a lsquomainrsquo se cancelara el proceso

Llamada NO VALIDA al meacutetodo principal main

(iAcp-j(

4 i

CI Y rdquoldquoldquoI i 11 1-T

IZNTRO Gt INFORMACION

62

  • Tabla de Contenido
  • Listado de Figuras
  • Listado de Tablas
  • Notacioacuten
  • Introduccioacuten
  • Capitulo 1 Conceptos Generales
    • 11 Antecedentes
    • 12 Trabajos relacionados
      • 121 Tabla comparativa
        • 13 Definicioacuten del problema
        • 14 Objetivo de la Tesis
          • Objetivos especiacuteficos de la tesis
            • 15 Hipoacutetesis de investigacioacuten
            • 16 Alcances y limitaciones del trabajo de tesis
              • Capitulo 2 Marco Teoacuterico
                • 21 Modelado de sistemas de software
                • 22 Interfaz de usuario (Mecanismos de interaccioacuten)
                • 23 Lenguajes Visuales
                • 24 Programacioacuten orientada a objetos
                • 25 Lenguaje de Modelado Unificado (UML)
                  • Desarrollo de la herramienta
                    • 31 Disentildeo de la Arquitectura
                      • 311 Requisitos (Diagrama de Casos de uso)
                        • 312Modelo Conceptual
                        • 313Diagramas de clases
                        • 32 Elementos de la arquitectura
                          • 321 Microsoft Foundation Class (MFC)
                            • 322Arquitectura Documento Vista
                            • 323Integrando Ambientes en Visual c++
                              • 324 Interfaz de Muacuteltiples Documentos (MDI)
                                • 325Recursos Diaacutelogos Menus y Barras de Herramientas
                                  • 326 Notacioacuten estaacutendar
                                  • 327 Estructura de datos persistencia y recuperacioacuten
                                    • 328Patrones de disentildeo utilizados
                                      • 33 Diagrama de secuencias
                                        • 331Ciclo de vida del software
                                          • 34 Elementos atoacutemicos de la Gramaacutetica
                                            • 341 Representacioacuten visual
                                              • 35 Gramaacutetica desarrollada
                                              • 36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias
                                                  • Capitulo 4 Pruebas y Resultados
                                                    • 41 Recursos teacutecnicos utilizados
                                                    • 42 Descripcioacuten del plan de pruebas
                                                    • 43 Resultados
                                                      • 431 Caso
                                                      • 432 Caso2
                                                      • 433 Caso
                                                          • Conclusiones y trabajos futuros
                                                            • Trabajos futuros
                                                            • Referencias
                                                            • Anexo A Configuracioacuten de Microsoft Visual C+t
                                                              • Figura 11 - Arquitectura de la suite cenidet-UML
                                                              • Figura 21 -Programacioacuten Visual
                                                              • Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de
                                                              • Figura 32 -Diagrama de Casos de Uso para el S3C
                                                              • Figura 33 -Modelo Conceptual
                                                              • Figura 34 - Diagrama de Clases -Control del Diagrama -
                                                              • Figura 35 - Diagrama de Clases - Patroacuten Visitor -
                                                              • Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento
                                                              • Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)
                                                              • Figura 38 -Dialogo Caracteriacutesticas del Objeto
                                                              • Figura 39 -Dialogo Mensaje
                                                              • Figura 3 IO - Menuacute de los Diagramas de Secuencias (estaacutendar)
                                                              • Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias
                                                              • Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)
                                                              • Figura 313 - Serializacioacuten
                                                              • Figura 314 -Modelo de cascada del ciclo de vida del software
                                                              • Figura 41 - Resultado del caso de prueba
                                                              • Figura 42 -Resultado del caso de prueba
                                                              • Figura 43 -Resultado del caso de prueba
                                                              • Figura 44 -Resultado del caso de prueba
                                                              • Tabla 11 - Tabla comparativa
                                                              • Tabla 31 -Prefijos estaacutendar de identificadores
                                                              • Tabla 32 -Elementos atoacutemicos del lenguaje
                                                              • Tabla 41 - Resumen de los resultados de las pruebas realizadas

Desarrollo de la herramienta

Descripcioacuten de los Casos de Uso

Caso de Uso ldquoDiagramas de Secuenciasrdquo Se inicia cuando el actor ldquousuariordquo solicita la creacioacuten de un Diagrama de Secuencias Se establece la forma de la construccioacuten automaacutetica de los diagramas de secuencias de UML Se hace uso del Modelado de Clases y del Modelado del disentildeo detallado de los meacutetodos

Escenario de Eacutexito 1 Se obtiene la informacioacuten de las clases del modelado de clases 2 Se obtiene la informacioacuten del modelado del disentildeo detallado de los meacutetodos 3 Se realiza la construccioacuten automaacutetica de los diagramas de secuencias

1 En el modelo de clases no hay informacioacuten o estaacute incompleta 2 En el modelo del disentildeo detallado de los meacutetodos no hay informacioacuten o estaacute

incompleta

Escenario de Falla

Caso de Uso ldquoModelado de Clasesrdquo El diagrama de Clases se utiliza para obtener los nombres de clases y los nombres de los meacutetodos de cada clase

Escenario de Eacutexito 1 Se abre el modelo 2 Se procesa para obtener la informacioacuten de las clases (nombres de clases y nombres

de meacutetodos)

Escenano de Falla h 1 No se puede abrir el modelo J 2 El modelo esta vaciacuteo

Caso de Uso ldquoModelado del Disentildeo detallado 1 los meacutetodosrdquo El disentildeo detallado de los meacutetodos se realiza con diagramas de Warnier aquiacute se establecen las llamadas a funciones dentro del sistema y es aquiacute donde se identifica el dinamismo que se representaraacute en los diagramas de secuencias

Escenario de Eacutexito 1 Se abre el modelo 2 Se realiza la identificacioacuten de las llamadas existentes

Escenario de Falla 1 No se puede abrir el modelo 2 El modelo esta vaciacuteo

24

Desarrollo de la herramienta

Clase Objeto ni I Diagrama I n ____ Nombre Descripcioacuten

i

Mensaje

Tipo

En el Anaacutelisis Orientado a Objetos se crea una especificacioacuteii del dominio del problema y de los requeriinientos desde la perspectiva de una clasificacioacuten por objetos y del entendimiento de los teacuterminos usados en el dominio del problema Una descomposicioacuten del dominio del problema involucra una identificacioacuten de conceptos atributos y asociaciones que son considerados importantes dentro del dominio El resultado puede ser expresado en un Modelo Corzcepttraf el cual es ilustrado en un conjunto de diagramas que definen conceptos (objetos) [LAR97]

312Modelo Conceptual

El modelo conceptual visto en la Figura 33 no es una descripcioacuten de componentes de software representa conceptos en el domino del problema en el mundo Teal [LAR97l

313Diagramas de clases

Por cuestiones dc espacio las clases de la arquitectura del sistema estaraacuten referidas en varios diagramas que de alguna manera estaacuten relacionados entre si

Una de las partes maacutes importantes del Ambiente Visual S3C es la estructura de clases ltCCraJicogt la cual se refiere al control de los diagramas eacutesta por su naturaleza podriacutea considerarse el nuacutecleo del sistema La manipulacioacuten y control de los diagramas estaacute definido en una estructura de clases organizada con el patroacuten de disentildeo Composite que se muestra en la Figura 34

25

Desarrollo de la herramienta

CRecursividadDS CMensajeDS CObjetoDS CDiagramaDS

I Cvisitor I

CApuntadorDS CDblClickDS CAsocAdjusterDS CSelectorDS

26

Desarrollo de la herramienta

n 32 Elementos de la arquitectura

Es necesario describir los elementos que dan soporte a la arquitectura del ambiente donde se implementaraacute el sistema en este caso Microsoft Visual (MV) C++ 6 El MV C++ es un marco de aplicacioacuten poderoso basado en Windows se integran ademaacutes del lenguaje C++ (compilador y enlazador) el programa de desarrollo de programas en lenguaje C para Windows (SDK) la Microsoft Foundation Class Library AppWizzard Classwizard AppStudio y WorkBencli

La Microsoft Foundation Class Library comprende una biblioteca de clases de C++ y es considerada como el nuacutecleo del MV C++

321Microsoft Foundation Class (MFC)

La libreriacutea Microsoft Foundation Class (MFC) es una interfaz orientada a objetos que tiene las siguientes metas de disentildeo

o

Reduccioacuten significante de esfuerzo al escribir una aplicacioacuten para Windows Velocidad de ejecucioacuten comparable a las APIrsquos del lenguaje C Miacutenimo tamantildeo de coacutedigo Capacidad para llamar cualquier funcioacuten de Windows en C directamente Faacutecil conversioacuten de aplicaciones existentes en C a C++ Faacutecil uso de APIrsquos de Windows con C++ como con C Faacutecil uso de complicadas caracteriacutesticas de abstracciones poderosas como ActiveX soporte para base de datos impresioacuten barras de herramientas y barras de estado El API de Windows en C++ si usa tan efectivamente como las caracteriacutesticas mismas del lenguaje C++

La mayoriacutea de las clases de la Libreriacutea de la Microsoft Foundation Class son derivadas de una clase base ltCObjectgt que es la raiacutez de la jerarquiacutea de clases ltCObjectgt da uacutetiles capacidades a las clases que derivan de ella

La jerarquiacutea que existe en las clases derivadas de ltCObjectgt es la siguiente

Arquitectura de Aplicacioacuten Excepciones Servicios de Archivos Arreglos Listas Mapas Servicios de Internet Sockets Sincronizacioacuten Soporte para base de datos D A 0

27

Desarrollo de la herramienta

i

r

Liacutenea de Comandos Menuacute Dibujo Graacutefico Dibujo Graacutefico de Objetos Soporte de Control Soporte de Ventanas

Soporte para base de datos ODBC

o Marco de Ventanas o Barras de control o Hojas de propiedades o Cajas de Dialogo o Vistas o Controles

322Arquitectura Documento Vista

Por defecto las aplicaciones creadas con la MFC usan un modelo de aplicacioacuten que separa los datos del programa de las vistas de interaccioacuten con el usuario En eacuteste modelo un objeto documento de MFC lee y escribe datos en un almacenamiento persistente Un objeto vista administra el despliegue de datos suministrando al usuario los datos para ser seleccionados o editados La vista le comunica al documento cualquier cambio en los datos La razoacuten maacutes conveniente para seguir este modelo es cuando se necesita muacuteltiples vistas del mismo documento (como en una hoja de caacutelculo y un graacutefico)

La arquitectura documentovista hace faacutecil el soporte de muacuteltiples vistas y muacuteltiples tipos de documentos asiacute como la divisioacuten de ventanas y otras caracteriacutesticas de interfaz de usuario Pero el corazoacuten de la arquitectura son cuatro clases (Mostradas en el aacuterbol de clases de la Figura 36)

ltCDocumerrtgt (o ltCOleDocuinentgt) - Se instancia un objeto de este tipo para almacenar y controlar los datos del programa ltCViewgt (o una de sus clases derivadas ltCScrotlViewgt ltCFormViewgt ltCEditView ltCRecordViewgt ltCDaoRecordView ltCtreeViewgt ltCListViewgt b ltCrichEditViewgt) - Un objeto es usado para desplegar los datos y administrar la interaccioacuten del usuario con los datos ltCFrameWndgt (o una de sus variantes) - Establece el marco sobre el que trabajaraacuten una o mas vistas de un documento ltCDocTemolategt (o ltCSingIeDocTemplategt o ltCMultiDocTemplategt) - Coordina la existencia de uno o maacutes documentos de un tipo dado y administra la correcta creacioacuten de los documentos vistas y objetos ventanas para cada tipo

i

28

Desarrollo de la herramienta

______________ 2 Wiew

I - - __ - ------a ________________

323Integrando Ambientes en Visual C t t

Las aplicaciones de Interfaz de Documento Uacutenico (SDI) soporta muacuteltiples tipos de documentos pero este soporte es para un solo objeto documento Debido a esta restriccioacuten y aunado a la necesidad de tener varios objetos documentos a la vez se determina la utilizacioacuten del modelo Interfaz de Muacuteltiples Documentos (MDI) indicado en la Figura 37

324Interfaz de Muacuteltiples Documentos (MDI)

Una aplicacioacuten de Interfaz de Muacuteltiples Documento (MDI) permite la creacioacuten de plantillas para el manejo de los documentos eacutesta plantilla tiene la forma

rn-pDocTemplate = new CMultiDocTernplate ( I DR-SCUMLTY PE RUNTIME-CLASS (CSCUMLDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CTheView))

AddDocTernplate ( rn-pDocTemplate )

Cada plantilla describe una relacion del tipo de documento con la vista asociada La definicioacuten de la plantilla para el ambiente que controla los diagramas de secuencias es la siguiente

29

Desarrollo de la herramienta c

m-pTernplateSeqDlag = new CMultiDocTernplate ( IDR-DS-SJCTYPE RUNTIME-CLASS (CSeqDiagDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CSeqDiagView) )

AddDocTernplate( rn-pTernplateSeqDiag )

Esta plantilla hace uso de la clase CCliildFrame que por defecto el ambiente Visual C++ construye y esto es debido a que no se requieren caracteriacutesticas extras en las ventanas de las que proporciona dicha clasc En un caso en el que se requiriera un comportamiento diferente de la vista tendriacutea que crearse una nueva clase con las caracteriacutesticas deseadas

Vista Documento

Vista

I- Vista Documento I [ Tip- F Vista

L Figura 37 Modelo Interfaz de Muacuteltiples Documentos (MDI)

Para integrar otro Ambiente que utilice otro tipo de documento es necesario definir otra plantilla de la misma forma mencionada Debe tomarse en cuenta los siguientes puntos

Es necesario definir el nombre (mqTemplateNOMBRE) El IDR del tipo que se requiere que sea el documento En la primera liacutenea RUNTIME CLASS debe indicar la clase ltCDocumentgt que desea La segunda liacutenea RUNTIME-CLASS soacutelo la cambia a otra clase si requiere de otro manipulador de ventanas de lo contrario deje que ltCChildFramegt se haga cargo

-

30

Desarrollo de la herramienta

En la uacuteltima liacutenea referente a RUNTIME-CLASS se debe indicar la clase ltCViewgt que desea usar Para finalizar se usa la instruccioacuten AddDocTernplate para finalizar la definicioacuten del template (mgTemplateNOMBRE)

325 Recursos Diaacutelogos Mertuacutes y Barras de Herrattriertias

Son varios los recursos con los que se puede contar al crear un proyecto en Microsoft Visual C++ Los diaacutelogos son un recurso disponible que son utilizados para visualizar ingresar yo modificar informacioacuten que se requiera En el Ambiente Visual que se desarrolla son varios los diaacutelogos que se utilizaraacuten y eacutestos se describen a continuacioacuten

El Diaacutelogo ldquoCaracteriacutesticas del Obietordquo (Figura 38) identifica el nombre del Objeto y la descripcioacuten del mismo Este diaacutelogo se muestra cuando se presiona doble clic sobre un objeto del diagrama

I Nombre

Desciipcion

Figura 38 Dialogo Caracteriacutesticas del Objeto

El Diaacutelogo ldquoMensaierdquo (Figura 39) muestra el nombre del mensaje que puede ser modificado ademaacutes se visualizan el Identificador del Mensaje el tipo de Mensaje asiacute tambieacuten el origen y destino del mensaje

31

Desarrollo de la herramienta

Nornbie delMensaje Edit

IDentificador del Mensaje Edil Tipo de Mensaje (Edil

Edit Objeto Origen

Objeto Destino IEdit

i25El A Figura 39 Dialogo Mensaje

El menuacute es otro de los recursos del que se puede disponer para organizar el ambiente que se estaacute creando Para eacuteste caso en particular no se hizo modificaciones al menuacute estaacutendar (Figura 310) que Visual C++ presenta Los cambios significativos son el manejo del tipo de documento para los Diagramas de Secuencias

Archivo Editar Yer VenLana AyGda

Figura 310 Menuacute de los Diagramas de Secuencias (estaacutendar)

Otro importante recurso del que uno se puede valer en Visual C++ es la barra de herramienta personalizada la cuaacutel es construida en el Editor de Recursos Se ha construido una barra (Figura 311) con los elementos graacuteficos de los Diagramas de Secuencia de UML

Figura 311 Barra de Herramientas de los Diagramas de Secuencias

Es recomendable que al utilizar barras de herramienta personalizada se defina en el tamantildeo estaacutendar ya que puede experimentar problemas al momento de ejecutar la aplicacioacuten

Ademaacutes puede usar la propiedad TBBS-CHECKGROUP en una barra de herramientas para establecer que los botones puedan quedar presionados hasta que un botoacuten diferente sea presionado No olvide que la numeracioacuten inicia con cero ( O )

vuriableToolBurSetButtonStyle(OTBBSCHECKGROUP)

32

Desarrollo de la herramienta

Prefijo ID IDC IDD IDP IDR IDS

326 Notacioacuten estaacutendar

Los nombres descriptivos de los recursos se asocian a un valor uacutenico Para una mayor claridad eacutestos nombres mantienen un prefijo que describe el tipo de recurso asociado (vea la Tabla 31) [MIC99]

Tipo de Recurso Comandos de Menuacute Controles y recursos Cuadros de diaacutelogo Cadenas de solicitud para cuadros de mensaje Menuacute principal barras de herramienta tabla aceleradora y el icono Cadenas

IDR IDD IDC ID

200 - 299 3000 - 3999 34000 - 34999

Estos son los rangos de valores establecidos para el proyecto S3C Si se utiliza el coacutedigo fuente y se planea agregar otro proyecto verifisue que no se invadan estos nuacutemeros para evitar problemas

Para facilitar auacuten maacutes los trabajos futuros se ha definido una estructura de carpetas (ver Figura 312) para incluir en cada una las Clases correspondientes a cada tesis en desarrollo

33

Desarrollo de la herramienta

ill ~~ -

-I SCUML classes + U A N T L R + U App + 0 ClassDiagrams + 0 Common + a Java

t $2 SequenceDiagiams

+ WarnierDiagrams

iJ PackageDiagrams

12 StaterChartDiagrams

+

- f Classview I Resourceview 1 FileView ]

~ ~

Figura 312 Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)

327Estructura de datos persistencia y recuperacioacuten

Existe una gran cantidad de tipos de datos estructuras clases y meacutetodos de los que se puede hacer uso para una mejor y maacutes faacutecil obtencioacuten de los resultados A continuacioacuten hago comentarios en tipos de datos y meacutetodos en los que podriacutea tener problemas

CTypedPtrList

AI usar este tipo de dato o alguno relacionado que le permita utilizar el meacutetodo ltCTvrgtedPtrListGetNextgt tenga especial precaucioacuten al usarlo ya que al devolver el valor requerido la variable POSITION usada no se queda apuntando a ese valor en particular salta al inmediato siguiente de la lista

Si se realiza una creacioacuten dinaacutemica con punteros para los elementos de una CTypedPtrList Despueacutes de haberlo agregado a la lista evite el delete para borrar esta Usted deseando liberar la memoria no lo haga ya que eliminara directamente el elemento de la lista

POSITION

Es un valor usado para denotar una posicioacuten de un elemento en una coleccioacuten Pero CUIDADO no se refiere a un iacutendice es una referencia (no consecutiva) de punteros muy diferente a un iacutendice

CString

Auacuten cuando el operador de comparacioacuten == (igual a) es permitido para ser utilizado en las cadenas evite su uso ya que en ocasiones aunque cuando la e

34

Desarrollo de la herramienta

compilacioacuten no indique error alguno en la ejecucioacuten no realizaraacute lo que se necesita Recomiendo que utilice CStringCompare ()

Para eliminar el contenido de un CString utilice CStringEmpty() ya que asignar a la cadena un ldquonrdquo podriacutea causarle problemas

Serializacioacuten

Una forma en que se puede guardar informacioacuten y recuperarla de manera eficaz es mediante la serializacioacuten de objetos La serializacioacuten es un proceso que permite escribir un objeto en un archivo y tambieacuten leerlo

Para que la serializacioacuten se lleve a cabo son necesarios tres objetos un objeto de tipo ltCFilegt que represente el archivo un objeto de tipo ltCArchivegt que ofrece el entorno para la serializacioacuten y la clase del objeto a ser serializado debe ser heredada de ltCObjectgt y sobrescribir el meacutetodo ltSerializegt para que se encuentre de tal forma en que pueda ser serializado (vea la Figura 313)

Objeto a ser serializado 1

1 CArchive

[f --=I- ---7 Archivoexi

u Figura 313 Serializacioacuten

328Patrones de disentildeo utilizados

Se ha planteado la definicioacuten de una arquitectura de clases utilizando patrones de disentildeo debido a que algunos de ellos hacen maacutes faacutecil la extensioacuten de la funcionalidad y mantenimiento

35

Desarrollo de la herramienta

El patroacuten Composite es utilizado para crear de manera uniforme el diagrama sobre el que se trabaja (ver Figura 34) manteniendo una jerarquiacutea de clases uniforme las clases maacutes bajas en la jerarquiacutea definen primitivas de objetos graacuteficos

Se aplica el patroacuten de disentildeo Iterator para hacer recorridos en listas de objetos para realizar diversas operaciones Otro patroacuten de disentildeo del que se hace uso es el Visilor (ver Figura 35)

Para otras actividades que se realizan podriacutea pensarse en que se deberiacutean aplicar otros patrones pero se han evitado algunos (como el patroacuten de disentildeo Builder) para evitar incrementar la complejidad en la arquitectura ya que ai mantener el modelo de la MFC de documentovista la funcionalidad del patroacuten de disentildeo Builder es faacutecilmente reemplazado si se hiciera Uso de eacuteste se aumentariacutea la complejidad excesivamente (nos llevariacutea a perdemos en ocasiones en el paso de mensajes entre clases) dantildeando la facilidad de la arquitectura

33 Diagrama de secuencias

Un Diagrama de Secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten escenario Oacute comportamiento se usan para definir el curso loacutegico de accioacuten de un posible camino a seguir en la resolucioacuten de un problema Seguacuten John Daniels [DANO2] ldquoel principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildean las interacciones de los objetosrdquo

Los Diagramas de Secuencias se utilizan en el modelado de la implementacioacuten de sistemas de software ademaacutes son aplicables en el modelado de requisitos para establecer las comunicaciones existentes entre actores yo clases del sistema Con eacutestos diagramas se logran hacer descripciones de los escenarios y los comportamientos del sistema Con los Diagramas de Secuencias es posible definir protocolos de comunicacioacuten con paso de mensajes ya que dan esa flexibilidad que se requiere Ademaacutes los Diagramas de Secuencias contienen informacioacuten suficiente para que puedan ser transformados a los diagramas de colaboracioacuten [RUM Ol][BOO Oil

331Ciclo de vida del software

Considerando cualquier modelo de ciclo de vida del software (en la figura 314 se muestra el Modelo de cascada) el aacutembito directo de eacuteste Ambiente Visual es en el disentildeo aunque tiene sus vertientes en la codificacioacuten y mantenimiento

36

Desarrollo de la herramienta

Diseno

Codificacibn

I I I I Mantenimiento I

igura 314 Modelo de cascada del ciclo de vida del software

34 Elementos atoacutemicos de la Gramaacutetica

Definicioacuten de los elementos atoacutemicos del lenguaje y su contenido

1 Actor- Representa roles de entidad externos al sistema con el que interactuacutea directamente Los actores pueden ser humanos dispositivos u otros sistemas

2 ClaseObjeto- Determina una Clase u Objeto participante en la interaccioacuten

3 Mensaje-Es una comunicacioacuten entre objetos que contiene informacioacuten Eacuteste se representa con la finalidad a que una accioacuten sea llevada a cabo

4 Mensaje con tiempo- Tiene la misma finalidad que el mensaje la diferencia es que con eacutel se representa un atributo de tiempo

5 Mensaje asiacutencrono Es un mensaje que ocurre en el tiempo de manera independiente a otros mensajes

6 Mensaje de destruccioacuten de objeto- Es un mensaje cuya finalidad es indicar la destruccioacuten del objeto destino

7 Mensaje de creacioacuten de objeto- Es un mensaje que indica la creacioacuten de un objeto

8 Llamada al mismo objeto (Recursividad)- Es usado para modelar llamadas recursivas en el que una operacioacuten es invocada por el mismo objeto

37

Desarrollo de la herramienta

9 Destruccioacuten del objeto (AutodestrucciOacuten)- Puede o no modelarse es representada con una X al final de la liacutenea de vida del objeto

Elementos aulomaacuteticos

1 Liacutenea de Vida- Representa la vida del objeto durante la interaccioacuten

2 Activacioacuten- Muestra el periacuteodo de tiempo en el cual el objeto alguna operacioacuten

341RepresentaciOacuten visual

Representacioacuten visual de los elementos atoacutemicos del lenguaje

Actor

_- A

Mensaje

Mensaje de Creacioacuten de

Objeto

ClaseObjeto

I

Mensaje de retorno

Mensaje de Destruccioacuten de

Objeto

abla 32 Element(

Activacioacuten

Mensaje con tiempo

Autodestruccioacuten

x

atoacutemicos del lengi

taacute realizz

Texto ===I (letra)+ (letra I

numero) letra= AZ I az numero = 09

I

Recursividad ~

I

i j e

io

38

u

Comentario

iexcl

Conector de Comentario

35 Gramaacutetica desarrollada

La gramaacutetica que se propone es una gramaacutetica visual del tipo relacional Una gramaacutetica relacional pertenece a las gramaacuteticas libres de contexto es una 6-iupla G (N C S R Attr P) donde

N es un conjunto finito de siacutembolos no terminales C es un conjunto de siacutembolos terminales S es un siacutembolo distinguido en N llamado siacutembolo inicial R es un conjunto finito de siacutembolos de relacioacuten Attr es un conjunto finito de siacutembolos de atributos P es un conjunto de producciones

Entonces definiendo nuestra gramaacutetica G (N C S R Attr P)

N = Diagrama GrupoClaseObjeto

S = Diagrama

R = mensaje mensajeTiempo mensajeRetomo mensajeAsincrono mensajecrea mensajeDestruye autodestruccioacuten recursividad

R

Attr = entrada salida entradacrea

39

Desarrollo de la herramienta

Definiendo la posicioacuten de los atributos en los elementos visuales

entradacrea ObetaClase

entrada

salida

P =

Diagrama I GrupoClaseObjeto (mensaje (mensajeRetorno

(salida 1) (entrada 2) ) (salida 2) (entrada 1) )

- Diagrama 0 GrupoClaseObjeto

(mensaje (mensaje (mensajeRetomo (mensajeRetomo (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entradacrea 2) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 1) ) (salida 1) (entrada 1) )

entrada

salida

40

Desarrollo de la herramienta

s

-

GrupoClaseObjeto - 1 1 I 2 (mensaje (mensaje (mensajeRetorno (mensajeRetorno (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entradacrea 2) ) (salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 1) ) (salida I ) (entrada I ) )

1 En las gramaacuteticas relacionales una produccioacuten estaacute acompantildeada de las posibles

relaciones que puedan generarse En la primera produccioacuten Diagrama produce a un Actor seguida de un GrupoClaseObjeto el Actor inicia la interaccioacuten con un mensaje y recibe el mensaje de retorno al finalizar la interaccioacuten La segunda y tercera produccioacuten son similares debido a que un GrupoClaseObjeto contiene dos ClaseObjeto que se relacionan de la misma forma

Existe un elemento de la gramaacutetica llamado Attr (Atributo) el cual define la parte de los elementos visuales donde se establecen las relaciones Se han determinado dos atributos (entrada y salida) que para nuestro propoacutesito estaraacuten establecidos en la liacutenea de vida de cada elemento visual (Actor y ClaseObjeto)

Los Comentarios y la Activacioacuten no se consideran en la gramaacutetica Los comentarios son libres de incluirse y relacionarse con cualquier elemento y relacioacuten mencionada anteriormente y la activacioacuten existe siempre que se presente un mensaje (o podriacutea omitirse) Estas consideraciones se realizaron para hacer auacuten maacutes faacutecil la gramaacutetica ya que si se trata de realizar un sistema las restricciones de estos elementos pueden mantenerse en el lenguaje de programacioacuten en el que se desarrolle el sistema

36

Precondiciones

El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias

1 El diagrama de Clases debe existir y estar completo 2 Debe existir un archivo con un diagrama de Warnier por cada diagrama de Clases y

con el mismo nombre de archivo (excepto la extensioacuten del archivo) 3 En el uacutenico diagrama de Warnier de cada Clase se deben modelar todos los meacutetodos

de la Clase 4 No realizar declaraciones de meacutetodos

41

Desarrollo de la herramienta

5 Debe existir un meacutetodo lsquomain()rsquo en el diagrama de Clases

Restricciones

Los meacutetodos deben mantener nombres distintos en las diferentes Clases

Metodologiacutea para la obtencioacuten automaacutetica de los Diagramas de Secuencias

1 Seleccionar el diagrama de Clases

2 Se construye una lista con los nombres de las Clases y los Meacutetodos

3 Se verifica si exista el meacutetodo lsquomain()rsquo en alguna Clase Se busca la existencia de una uacutenica Clase

a La Clase que contenga lsquomain()rsquo se va al inicio de la lista de Clases

b Si no existe lsquomain()rsquo SE TERMINA EL PROCESO

4 Se verifica la existencia de los archivos que contienen el Disentildeo Detallado de los meacutetodos en Wamier para cada una de las Clases si alguno falta SE TERMINA EL PROCESO

5 Se procesa cada uno de los modelos del Disentildeo Detallado de los Meacutetodos generando una lista de secuencias de llamadas por cada uno de los meacutetodos

6 Se verifica que cada llamada corresponda a alguacuten meacutetodo existente (del diagrama de Clases) De no existir ese meacutetodo la llamada entra a una estructura que

7 Se crea una lista de secuencia

a Se inicia con lsquomain()rsquo b Se recorre cada una de las llamadas de los meacutetodos c Se considera invaacutelido el caso de que un meacutetodo intente una llamada

recursiva al meacutetodo lsquomain()rsquo

8 Se muestra un diaacutelogo de resultados en el que se indican las llamadas que no se encnotraron definidas y que pueden ser Llamada a libreriacutea oacute Llamada Erroacutenea

42

Capiacutetulo 4

Prue6as y su6taaacuteos

En eacuteste capiacutetulo se da a conocer el detalle de las pruebas y de los resultados obtenidos Se describen los casos de prueba con los que se realizoacute la evaluacioacuten del sistema asiacute tambieacuten se presentan comentarios acerca de los resultados obtenidos

Pruebas y Resultados

41 Recursos teacutecnicos utilizados

Para llevar a cabo las pruebas al sistema S3C se utilizaron los siguientes equipos de Coacutemputo

Computadora de escritorio

256MB RAM Disco Duro 80G Monitor 17rdquo SAMSUNG

AMD Athlon XP 1600+ I4Ghz

Computadora de escritorio Intel Pentium 4 - 128MB RAM Disco Duro 40G Monitor 15rdquo i -

42 Descripcioacuten del plan de pruebas

Las pruebas establecen el Uacuteltimo paso desde donde es posible evaluar la calidad y descubrir los errores Las pruebas y la validacioacuten del software se utilizan para comprobar que el sistema cumple con las expectativas del usuario

En esta seccioacuten se describen los casos de prueba que se realizaron al prototipo de S3C en conjunto a la suite cenidet-UML Para cada uno de los casos se presenta el objetivo el procedimiento que se siguioacute para la prueba y se muestran los resultados obtenidos - _

Las pruebas a realizar son los siguientes

Caso 1 Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Caso 2 Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Wamier

Caso3 Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Wamier

Caso4 Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo 5

44

Pruebas y Resultados

43 Resultados

431 Caso 1

5 Y

IZ =

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoSirdquo 4 Seleccionar el archivo ldquoVENTASrdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 41 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

s3c iuevo Proyecto SCUM1

Diagrama de clases

lvendedor I L

3

salida

venta prod

4 venia-oferta vcntaprod =

salida 6

Figura 41 Resultado del caso de prueba 1

45

Pruebas y Resultados

432 Caso 2

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Warnier (almacenwar cajawar vendedorwar) que ya cxisten (del caso de prueba I )

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoNordquo 4 Agregar las siguientes Clases con los respectivos meacutetodos y atributos

a Claseldquovendedorrdquo Meacutetodos ldquoventa mainrdquo b Claseldquoalmacenrdquo Meacutetodos ldquoentrada salidardquo c Claseldquocajardquo Meacutetodos ldquoventagrodrdquo

5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 42 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

Diagrama de daseo lisgrama dcsccucncis

MOIDOC Anivo

venta prod

salida

1 Ycrdquo1a 2

I 4 vcrdquolD~o1cn venta prod gt

salida 6 i Figura 42 Resultado del caso de prueba 2

46

Pruebas y Resultados

r

433 Caso 3

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Warnier

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 43 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

5

Error al tratar de abrir el archivo A bZwar

Aceptar i

Faltan Archivos de Disentildeos Detallados de Meacutetodos 1 1 A No se puede crear el diagrama de secuencias

Figura 43 Resultado del caso de prueba 3

47

Pruebas y Resultados

434 Caso 4

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 44 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

lsquo I

~ _ i i _ l _ Repaado ~~ ~ ~ 6~ ampA Figura 44 Resultado del caso de prueba 4

48

Pruebas y Resultados

PRUEBA DESCNPCION CASO 1 Mostrar la funcionalidad del

Sistema S3C a partir de un

44 Anaacutelisis de Resultados

RESULTADOS Se comproboacute la correcta funcionalidad del Sistema S3C a partir de un diagrama

CASO 3

CASO4

I diagrama de Clases cxistcnte I de Clases existente CASO 2 I Mostrar la funcionalidad del I Sc comproboacute la corrccta funcionalidad

Sistema S3C a partir de un del Sistema S3C a partir de un diagrama diagrama de Clases que se de Clases que se construye al momento construye al momento Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el Secuencias si falta alguno de los diagrama de Secuencia si falta alguno diagramas de Warnier Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el secuencias si hace falta el meacutetodo diagrama de Secuencias al faltar el ldquomain ()rdquo meacutetodo ldquomain()rdquo

de los diagramas de Warnier

Los resultados obtenidos de cada uno de los casos establecidos demuestran que se validoacute la funcionalidad del prototipo con los requisitos definidos en el alcance de este proyecto

a lt

49

Conclusiones y Tru6ajos Futuros

Aquiacute se dan a conocer las conclusiones y se describen los posibles trabajos futuros para la continuacioacuten de eacuteste proyecto

F

51 Conclusiones

Conclusiones y trabajos futuros

Se ha creado un Ambiente Visual que permite obtener de forma automaacutetica los Diagramas de Secuencias en base a los diagramas de Clases y al disentildeo detallado de los meacutetodos descritos con diagramas de Warnier cumpliendo con los objetivos planteados para este trabajo

La tesis aporta principalmente La generacioacuten automaacutetica de los diagramas de secuencias y la eliminacioacuten de inconsistencias al mantener una validacioacuten directa de los diagramas de clases y los diagramas de Warnier que son utilizados

Esta validacioacuten es lograda a traveacutes del uso de la gramaacutetica visual relaciona1 que se ha definido (veacutease el capiacutetulo 3) Esta gramaacutetica visual establece reglas para la correcta construccioacuten de los diagramas de secuencias

P De esta manera se establece que la hipoacutetesis ldquoEs posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodosrdquo Es verdadera

52 Trabajos Futuros

Un Diagrama de Secuencias puede convertirse en un Diagrama de Colaboracioacuten por lo tanto un trabajo futuro es la construccioacuten automaacutetica de un Diagrama de Colaboracioacuten a partir de uno de Secuencias existente

Es posible calcular la meacutetrica de acoplamiento al tener un Diagrama de Secuencias construido

La Ingenieriacutea directa de un Diagrama de Secuencias estableciendo la validacioacuten en la construccioacuten de todos los elementos visuales que UML define

La propagacioacuten de las modificaciones de un Diagrama de Secuencias a los Diagramas de Clases y los Diagramas de Warnier

La modificacioacuten del coacutedigo fuente mediante los cambios establecidos en un Diagrama de Secuencias

51

[ALC03]

[BLA98]

[B0099]

[BOOOi]

[BR097]

[CHA90]

[DAN02]

[GLA02]

[HAC98]

[HER03]

4

Alcate1 Computer Associates International inc Electronic Data Systems Corporation Hewlett-Packard Company IBM Corporation I-Logix IntelliCorp Kabira Technologies Kennedy Carter Microsoft Corporation Object Management Group Oracle Corporation Project Technology Ptech Inc Rational Software Corporation Reich Technologies Softeam Taskon A S Telelogic Unisys Corporation ldquoOMG Unified Modeling Language Specificationrdquo Version 15 Unified Modeling Language 2003

Blaha Michael Rumbaugh James Premerlani William Eddy Frederick Lorensen William ldquoObject-oriented modeling and designrdquo Prentice Hall 484 Paacuteginas ISBN 0-13-629841-9 QA-769-03S-B53-19981998

Booch Grady Rumbaugh James Jacobson Ivar ldquoEl lenguaje unificado de modeladordquo Addison Wesley 432 Paacuteginas ISBN 84-7829-028-1 1999

Booch Grady Rumbaugh James Jacobson Ivar ldquoThe Unified Modeling Language User Guiderdquo Addison Wesley 2001

Brown David ldquoAn introduction to object-oriented analysis objects in plain Englishrdquo John Whiley amp Sons Inc 700 Paginas ISBN 0-471-1 1028-0 QA-769-035-B76-1997 1997

Chang Shi-Kuo ldquoVisual Languages and visual programmingrdquo Plenum Press 340 Paacuteginas ISBN 0-306-43428-8 QA-7665-V57-1990 1990

Daniels John ldquoModeling with a sense of purposerdquo Design - IEEE Software JanuaryEebmary 2002

Glasgow Universidad Reino Unido ldquoA UML Editor in Javardquo (lthttplstudentsdcsglaacuWstudentspainjfproject-reportproject-re port-htmV4thYearReporthtrnlgt 2002)

T Hackos JoAnn C Redish Janice ldquoUser and Task Analysis for Interface Designrdquo Wiley Computer Publishing 488 Paacuteginas ISBN QA-769-U83- H33-1998 1998

Hemaacutendez Velaacutezquez M ldquoIngenieriacutea inversa de coacutedigo fuente en C++ para la obtencioacuten de su disentildeordquo Tesis AT-379 (03-0334) 2003

Conceptos generales

[HIX93]

[JAC93]

[JAC99]

[JOY98]

[LAR97]

[MAR]

[MIC99]

[MIC02]

[MOU98]

Hix Deborah Hartson H Rex ldquoDeveloping user interfacesrdquo 381 Paacuteginas ISBN 0-471-57813-4 QA-769-U83-H59-1993 1993

Jacobson Ivar Christerson Magnus Jonsson Patrik Overgaard Gunnar ldquoObject oriented software engineeringrdquo Addison Wesley ISBN 0-20 1 - 54435-0 QA-7676-D47-J63-1993 1993

Jacobson Ivar Booch Grady Rumbaugh James ldquoEl proceso unificado de desarrollo de softwarerdquo Addison Wesley 438 Paacuteginas ISBN 84-7829-036- 2 1999

Joyanes Aguilar Luis ldquoProgramacioacuten orientada a objetosrdquo McGruw Hill ISBN 84-481-0590-7 1998

Larman Craig ldquoAplying UML and Patternsrdquo Prentice Hull 507 Paacuteginas ISBN 0-13-748880-7 QA-769-035-L37-1997 1997

Marriot Kim Meyer Bemd ldquoVisual Language Theoryrdquo Springer 381 Paacuteginas P-935-V567-1998 1998

Microsoft ldquoMicrosoft Visual C++ 6 manual del programadorrdquo McGraw Hill ISBN 84-481-2127-9 QA-7673-Cl53-23718-1999 1999

Microsoft ldquoVisiordquo (lthttpwwwmicrosoftcomofficevisiogt 2002)

B Mourao Luis X ldquoUniversal Modeling Language Part 11 UML Notation - Case Sequence and Collaboration Diagramsrdquo Lan Times Magazine (~httpwwwlantimescomltpartsdiscussdiscuss6Ohtm~) 1998

No Magic ldquoMagicDrawrdquo (lthttpwwwmagicdrawcomgt 2002)

Object Insight ldquoJvisionrdquo (lthttpwwwobject-insightcomgt 2002)

Rational Software Microsoft I Hewlett-Packard Oracle Sterling Software MCI Systemhouse Unisys ICON Computing IntelliCorp i-Logix IBM ObjectTime Platinum Technology Ptech Taskon Reich Technologies Sofieam ldquoUML Summaryrdquo Version 11 Unified Modeling Language 1997

Rational ldquoRational Roserdquo (lthttpwwwrationalcomproductosrosegt 2002)

Rikki Kirzner ldquoAnalysis Modeling and Design Tools Market Forecast and Analysis 2001-2005rdquo Bulletin Published Under Services Application Design and Construction Tools Application Development and Deployment Strategies Documento Nuacutemero 24809 Junio 2001

53

Conceptos generales

[RIM92] Rimrner Steve ldquoGraphical user interface programmingrdquo 423 Paacuteginas

1992

Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language reference manualrdquo Addison Wesley 550 Paacuteginas ISBN 0-201-

ISBN 0-8306-2475-9 ISBN 0-8306-2472-4 (pbk) QA-769-083-R55G

[RUM99]

30998-X QA-7676-D47-R85-1999 1999

[RUM299] Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language user guiderdquo Addisoiz Wesley 482 Paacuteginas ISBN 0-201 -57 168-4 QA-7676-D47-B66-1999 1999

[SMA02] SmartDraw ldquoSmartDrawrdquo (lthttpwwwsmartdrawcomgt 2002)

[SHU88] 9 - Shu Nun C ldquoVisual Programmingrdquo Van Nostrand Reinhold ISBN 0-422- 28014-9 ISBN 0-422-01 164-4 QA-7665-S55 1988

[THI90] Thimbleby Harold ldquoUser Interface Designrdquo Acm press 470 Paacuteginas ISBN 0-201 -41 61 8-2 QA-769U83-T772~- 1990 1990

[WENO2] Wences Diaz MF ldquoModelo de Ingenieriacutea Inversa para la obtencioacuten de disentildeo detallado basado en LEVISSrdquo Tesis (02-0014) 2002

54

Anexo A

Conampuracioacuten de Microsoft Vkua[C++ 6 O

Este anexo indica las configuraciones que se utilizaron para la compilacioacuten de SCUML y s3c

Configuracioacuten de Microsoft Visual c++ 60

Debido a la integracioacuten de los proyectos de InverSOODA e InverDDVi con S3C se cumplioacute con los requisitos previos de ambos proyectos

El compilador usado en el proyecto fue el Microsoft Visual C++ 60

Para el cumplimiento con la funcionalidad de InverSOODA se instaloacute el ANTLR la versioacuten 271 Se descargoacute del sitio l i l l ~ ~ ~ ~ ~ ~ t l ~ l ~ - ~ t - ~ la versioacuten mencionada en un archivo comprimido (en formato zip) Se colocoacute el paquete descomprimido en el directorio ldquoDIANTLR-271 I rdquo

Recomiendo ampliamente que el directorio principal de ANTLR se copie en el directorio raiacutez de cualquier unidad de disco debido a que experimenteacute problemas de compilacioacuten cuando ANTLR no se encontraba en el directorio raiacutez

Io015

Source Browser AlttF12 I u c Ersquo V I

Visual Component Mgnager

- - ~ ~ ~ ~~

P2 Registrar control

A Contenedor de prueba de controles ActiveX

A Usor de objetos OLE y COM

Buacutesqueda de errores

A Y++ MFC Iracer

Customize options

~ - q- ~ Macro

Eecord Quick Macro Cbl+ShiR+R Pay Quick Macro Ctrl+ShiR+P

En el menuacute Tools (Herramientas) seleccione el sub-menuacute Options ltopcionesgt

56

Configuracioacuten de Microsoft Visual C++ 60

En la siguiente ventana de diaacutelogo debe agregar la direccioacuten en donde se encuentra el ANTLR

Agregar la ruta del directorio de ANTLR hasta el subdirectorio

libcpp

Editor I Tabs I Debug I Compatibility 1 Build Dneclolies I a I Chow directories for - Platfolm -

- Directories I x ) 4 jWin32 -] llnclude files

m cancd I

57

Configuracioacuten de Microsoft Visual C t+ 60

Se ha creado una libreriacutea (anrlrliblib) de ANTLR la cual ya estaacute situada en el directorio del proyecto SCUML (ISCUML) y no debe ser movida o eliminada

I

Geneial 1 Debug I CC++ Link I Category

Output file name bebugSCUMLexe

Objectljibrary modules 4 anllrliblib

li Generate debug lnfo r Ignore all defaull lbaries D ~ i n k j n ~ ~ ~ t a n ~ r ~ e n e r ~ ~ ~ mapfile

r Enable psafilrng

Proiec1 Ootionn

pq Cancel 1 Libreriacutea de ANTLR que debe existir 1 I para que se compile correctamente

58

Anexo B

~ u iacute aacute raacutepida de uso deC Sistema S3C

5 Este anexo indica de forma raacutepida la manera de utilizar S3C para crear un diagrama de secuencias de forma automaacutetica

Guiacutea Raacutepida de uso del Sistema S3C i

Para indicar la creacioacuten de un diagrama de secuencias en forma automaacutetica se debe ir a la barra del costado izquierdo y presionar ldquoNuevo Proyecto SCUMLrdquo

I s3c I ~ Nuevo Proyecto SCUML ~ _ _ - I Diagrama de clases ~ Diagrama de secuencias 1 MDI DOC Activo

-

Apareceraacute un documento llamado ldquoSCUMLV en donde el simbolo corresponde a un numero consecutivo iniciando desde 1 (uno)

$ e Despueacutes se presiona ldquoDiagrama de clasesrdquo Habraacute que para indicarle al sistema si se requiere abrir un diagrama de clases existente o realizar uno nuevo

i

iquestAbrir un documento existente

No Cardquo~ear

AI presionar ldquoSirdquo se debe indicar cual es el archivo del diagrama de Clases en el cuadro de diaacutelogo siguiente

~~ - 11dMis documentos rsquo 2 M i P C i lsquo h s sitios de red

I

AI presionar ldquoNordquo en ldquoAbrir un documento existenterdquo se nos mostraraacute un documento vacio para crear un diagrama de clases

60

Guiacutea Raacutepida de uso del Sistema S3C

Para ambas opciones se requiere que los diagramas de Wamier ya se encuentren construidos Y para continuar el proccso se selecciona el documento ldquoSCUMLVrsquo creado al inicio y despueacutes presionar el botoacuten nombrado ldquoDiagrama de secuenciasrdquo localizado en la barra de hcrraiiiicntas del costado izquierdo

Ha iniciado el proceso de construccioacuten del diagrama de secuencias Si no existen errores al terminar el proceso se le mostraraacute un cuadro de diaacutelogo llamado ldquoResultadosrdquo en donde le mostraraacute las llamadas de las que no localizoacute su definicioacuten

- - -

Cancel 1 D e las siguientes llamadas es posible que esten mal escritas o peitenezcan a la libreiia del Lenguaie Verifique ya que no se encontraron sus definiciones

A continuacioacuten se mencionan los posibles errores que finalizan el proceso de la creacioacuten automaacutetica de los diagramas de secuencias en S3C

Cuando no exista un meacutetodo lsquomainrsquo definido en el diagrama de clases

No se encontro el meacutetodo lsquomain()rsquo que inicie la secuencia I A No se puede crear el diagrama de secuencias

p==amp=q

61

Guia Raacutepida de uso del Sistema S3C

Cuando se definan niultiples metodos lsquoinainrsquo en el diagrama de clases

Multiples meacutetodos lsquomainOlsquo Imposible decidir el inicio de secuencia

Aceptar i

Si un meacutetodo definido en Wamier realiza una llamada a lsquomainrsquo se cancelara el proceso

Llamada NO VALIDA al meacutetodo principal main

(iAcp-j(

4 i

CI Y rdquoldquoldquoI i 11 1-T

IZNTRO Gt INFORMACION

62

  • Tabla de Contenido
  • Listado de Figuras
  • Listado de Tablas
  • Notacioacuten
  • Introduccioacuten
  • Capitulo 1 Conceptos Generales
    • 11 Antecedentes
    • 12 Trabajos relacionados
      • 121 Tabla comparativa
        • 13 Definicioacuten del problema
        • 14 Objetivo de la Tesis
          • Objetivos especiacuteficos de la tesis
            • 15 Hipoacutetesis de investigacioacuten
            • 16 Alcances y limitaciones del trabajo de tesis
              • Capitulo 2 Marco Teoacuterico
                • 21 Modelado de sistemas de software
                • 22 Interfaz de usuario (Mecanismos de interaccioacuten)
                • 23 Lenguajes Visuales
                • 24 Programacioacuten orientada a objetos
                • 25 Lenguaje de Modelado Unificado (UML)
                  • Desarrollo de la herramienta
                    • 31 Disentildeo de la Arquitectura
                      • 311 Requisitos (Diagrama de Casos de uso)
                        • 312Modelo Conceptual
                        • 313Diagramas de clases
                        • 32 Elementos de la arquitectura
                          • 321 Microsoft Foundation Class (MFC)
                            • 322Arquitectura Documento Vista
                            • 323Integrando Ambientes en Visual c++
                              • 324 Interfaz de Muacuteltiples Documentos (MDI)
                                • 325Recursos Diaacutelogos Menus y Barras de Herramientas
                                  • 326 Notacioacuten estaacutendar
                                  • 327 Estructura de datos persistencia y recuperacioacuten
                                    • 328Patrones de disentildeo utilizados
                                      • 33 Diagrama de secuencias
                                        • 331Ciclo de vida del software
                                          • 34 Elementos atoacutemicos de la Gramaacutetica
                                            • 341 Representacioacuten visual
                                              • 35 Gramaacutetica desarrollada
                                              • 36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias
                                                  • Capitulo 4 Pruebas y Resultados
                                                    • 41 Recursos teacutecnicos utilizados
                                                    • 42 Descripcioacuten del plan de pruebas
                                                    • 43 Resultados
                                                      • 431 Caso
                                                      • 432 Caso2
                                                      • 433 Caso
                                                          • Conclusiones y trabajos futuros
                                                            • Trabajos futuros
                                                            • Referencias
                                                            • Anexo A Configuracioacuten de Microsoft Visual C+t
                                                              • Figura 11 - Arquitectura de la suite cenidet-UML
                                                              • Figura 21 -Programacioacuten Visual
                                                              • Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de
                                                              • Figura 32 -Diagrama de Casos de Uso para el S3C
                                                              • Figura 33 -Modelo Conceptual
                                                              • Figura 34 - Diagrama de Clases -Control del Diagrama -
                                                              • Figura 35 - Diagrama de Clases - Patroacuten Visitor -
                                                              • Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento
                                                              • Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)
                                                              • Figura 38 -Dialogo Caracteriacutesticas del Objeto
                                                              • Figura 39 -Dialogo Mensaje
                                                              • Figura 3 IO - Menuacute de los Diagramas de Secuencias (estaacutendar)
                                                              • Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias
                                                              • Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)
                                                              • Figura 313 - Serializacioacuten
                                                              • Figura 314 -Modelo de cascada del ciclo de vida del software
                                                              • Figura 41 - Resultado del caso de prueba
                                                              • Figura 42 -Resultado del caso de prueba
                                                              • Figura 43 -Resultado del caso de prueba
                                                              • Figura 44 -Resultado del caso de prueba
                                                              • Tabla 11 - Tabla comparativa
                                                              • Tabla 31 -Prefijos estaacutendar de identificadores
                                                              • Tabla 32 -Elementos atoacutemicos del lenguaje
                                                              • Tabla 41 - Resumen de los resultados de las pruebas realizadas

Desarrollo de la herramienta

Clase Objeto ni I Diagrama I n ____ Nombre Descripcioacuten

i

Mensaje

Tipo

En el Anaacutelisis Orientado a Objetos se crea una especificacioacuteii del dominio del problema y de los requeriinientos desde la perspectiva de una clasificacioacuten por objetos y del entendimiento de los teacuterminos usados en el dominio del problema Una descomposicioacuten del dominio del problema involucra una identificacioacuten de conceptos atributos y asociaciones que son considerados importantes dentro del dominio El resultado puede ser expresado en un Modelo Corzcepttraf el cual es ilustrado en un conjunto de diagramas que definen conceptos (objetos) [LAR97]

312Modelo Conceptual

El modelo conceptual visto en la Figura 33 no es una descripcioacuten de componentes de software representa conceptos en el domino del problema en el mundo Teal [LAR97l

313Diagramas de clases

Por cuestiones dc espacio las clases de la arquitectura del sistema estaraacuten referidas en varios diagramas que de alguna manera estaacuten relacionados entre si

Una de las partes maacutes importantes del Ambiente Visual S3C es la estructura de clases ltCCraJicogt la cual se refiere al control de los diagramas eacutesta por su naturaleza podriacutea considerarse el nuacutecleo del sistema La manipulacioacuten y control de los diagramas estaacute definido en una estructura de clases organizada con el patroacuten de disentildeo Composite que se muestra en la Figura 34

25

Desarrollo de la herramienta

CRecursividadDS CMensajeDS CObjetoDS CDiagramaDS

I Cvisitor I

CApuntadorDS CDblClickDS CAsocAdjusterDS CSelectorDS

26

Desarrollo de la herramienta

n 32 Elementos de la arquitectura

Es necesario describir los elementos que dan soporte a la arquitectura del ambiente donde se implementaraacute el sistema en este caso Microsoft Visual (MV) C++ 6 El MV C++ es un marco de aplicacioacuten poderoso basado en Windows se integran ademaacutes del lenguaje C++ (compilador y enlazador) el programa de desarrollo de programas en lenguaje C para Windows (SDK) la Microsoft Foundation Class Library AppWizzard Classwizard AppStudio y WorkBencli

La Microsoft Foundation Class Library comprende una biblioteca de clases de C++ y es considerada como el nuacutecleo del MV C++

321Microsoft Foundation Class (MFC)

La libreriacutea Microsoft Foundation Class (MFC) es una interfaz orientada a objetos que tiene las siguientes metas de disentildeo

o

Reduccioacuten significante de esfuerzo al escribir una aplicacioacuten para Windows Velocidad de ejecucioacuten comparable a las APIrsquos del lenguaje C Miacutenimo tamantildeo de coacutedigo Capacidad para llamar cualquier funcioacuten de Windows en C directamente Faacutecil conversioacuten de aplicaciones existentes en C a C++ Faacutecil uso de APIrsquos de Windows con C++ como con C Faacutecil uso de complicadas caracteriacutesticas de abstracciones poderosas como ActiveX soporte para base de datos impresioacuten barras de herramientas y barras de estado El API de Windows en C++ si usa tan efectivamente como las caracteriacutesticas mismas del lenguaje C++

La mayoriacutea de las clases de la Libreriacutea de la Microsoft Foundation Class son derivadas de una clase base ltCObjectgt que es la raiacutez de la jerarquiacutea de clases ltCObjectgt da uacutetiles capacidades a las clases que derivan de ella

La jerarquiacutea que existe en las clases derivadas de ltCObjectgt es la siguiente

Arquitectura de Aplicacioacuten Excepciones Servicios de Archivos Arreglos Listas Mapas Servicios de Internet Sockets Sincronizacioacuten Soporte para base de datos D A 0

27

Desarrollo de la herramienta

i

r

Liacutenea de Comandos Menuacute Dibujo Graacutefico Dibujo Graacutefico de Objetos Soporte de Control Soporte de Ventanas

Soporte para base de datos ODBC

o Marco de Ventanas o Barras de control o Hojas de propiedades o Cajas de Dialogo o Vistas o Controles

322Arquitectura Documento Vista

Por defecto las aplicaciones creadas con la MFC usan un modelo de aplicacioacuten que separa los datos del programa de las vistas de interaccioacuten con el usuario En eacuteste modelo un objeto documento de MFC lee y escribe datos en un almacenamiento persistente Un objeto vista administra el despliegue de datos suministrando al usuario los datos para ser seleccionados o editados La vista le comunica al documento cualquier cambio en los datos La razoacuten maacutes conveniente para seguir este modelo es cuando se necesita muacuteltiples vistas del mismo documento (como en una hoja de caacutelculo y un graacutefico)

La arquitectura documentovista hace faacutecil el soporte de muacuteltiples vistas y muacuteltiples tipos de documentos asiacute como la divisioacuten de ventanas y otras caracteriacutesticas de interfaz de usuario Pero el corazoacuten de la arquitectura son cuatro clases (Mostradas en el aacuterbol de clases de la Figura 36)

ltCDocumerrtgt (o ltCOleDocuinentgt) - Se instancia un objeto de este tipo para almacenar y controlar los datos del programa ltCViewgt (o una de sus clases derivadas ltCScrotlViewgt ltCFormViewgt ltCEditView ltCRecordViewgt ltCDaoRecordView ltCtreeViewgt ltCListViewgt b ltCrichEditViewgt) - Un objeto es usado para desplegar los datos y administrar la interaccioacuten del usuario con los datos ltCFrameWndgt (o una de sus variantes) - Establece el marco sobre el que trabajaraacuten una o mas vistas de un documento ltCDocTemolategt (o ltCSingIeDocTemplategt o ltCMultiDocTemplategt) - Coordina la existencia de uno o maacutes documentos de un tipo dado y administra la correcta creacioacuten de los documentos vistas y objetos ventanas para cada tipo

i

28

Desarrollo de la herramienta

______________ 2 Wiew

I - - __ - ------a ________________

323Integrando Ambientes en Visual C t t

Las aplicaciones de Interfaz de Documento Uacutenico (SDI) soporta muacuteltiples tipos de documentos pero este soporte es para un solo objeto documento Debido a esta restriccioacuten y aunado a la necesidad de tener varios objetos documentos a la vez se determina la utilizacioacuten del modelo Interfaz de Muacuteltiples Documentos (MDI) indicado en la Figura 37

324Interfaz de Muacuteltiples Documentos (MDI)

Una aplicacioacuten de Interfaz de Muacuteltiples Documento (MDI) permite la creacioacuten de plantillas para el manejo de los documentos eacutesta plantilla tiene la forma

rn-pDocTemplate = new CMultiDocTernplate ( I DR-SCUMLTY PE RUNTIME-CLASS (CSCUMLDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CTheView))

AddDocTernplate ( rn-pDocTemplate )

Cada plantilla describe una relacion del tipo de documento con la vista asociada La definicioacuten de la plantilla para el ambiente que controla los diagramas de secuencias es la siguiente

29

Desarrollo de la herramienta c

m-pTernplateSeqDlag = new CMultiDocTernplate ( IDR-DS-SJCTYPE RUNTIME-CLASS (CSeqDiagDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CSeqDiagView) )

AddDocTernplate( rn-pTernplateSeqDiag )

Esta plantilla hace uso de la clase CCliildFrame que por defecto el ambiente Visual C++ construye y esto es debido a que no se requieren caracteriacutesticas extras en las ventanas de las que proporciona dicha clasc En un caso en el que se requiriera un comportamiento diferente de la vista tendriacutea que crearse una nueva clase con las caracteriacutesticas deseadas

Vista Documento

Vista

I- Vista Documento I [ Tip- F Vista

L Figura 37 Modelo Interfaz de Muacuteltiples Documentos (MDI)

Para integrar otro Ambiente que utilice otro tipo de documento es necesario definir otra plantilla de la misma forma mencionada Debe tomarse en cuenta los siguientes puntos

Es necesario definir el nombre (mqTemplateNOMBRE) El IDR del tipo que se requiere que sea el documento En la primera liacutenea RUNTIME CLASS debe indicar la clase ltCDocumentgt que desea La segunda liacutenea RUNTIME-CLASS soacutelo la cambia a otra clase si requiere de otro manipulador de ventanas de lo contrario deje que ltCChildFramegt se haga cargo

-

30

Desarrollo de la herramienta

En la uacuteltima liacutenea referente a RUNTIME-CLASS se debe indicar la clase ltCViewgt que desea usar Para finalizar se usa la instruccioacuten AddDocTernplate para finalizar la definicioacuten del template (mgTemplateNOMBRE)

325 Recursos Diaacutelogos Mertuacutes y Barras de Herrattriertias

Son varios los recursos con los que se puede contar al crear un proyecto en Microsoft Visual C++ Los diaacutelogos son un recurso disponible que son utilizados para visualizar ingresar yo modificar informacioacuten que se requiera En el Ambiente Visual que se desarrolla son varios los diaacutelogos que se utilizaraacuten y eacutestos se describen a continuacioacuten

El Diaacutelogo ldquoCaracteriacutesticas del Obietordquo (Figura 38) identifica el nombre del Objeto y la descripcioacuten del mismo Este diaacutelogo se muestra cuando se presiona doble clic sobre un objeto del diagrama

I Nombre

Desciipcion

Figura 38 Dialogo Caracteriacutesticas del Objeto

El Diaacutelogo ldquoMensaierdquo (Figura 39) muestra el nombre del mensaje que puede ser modificado ademaacutes se visualizan el Identificador del Mensaje el tipo de Mensaje asiacute tambieacuten el origen y destino del mensaje

31

Desarrollo de la herramienta

Nornbie delMensaje Edit

IDentificador del Mensaje Edil Tipo de Mensaje (Edil

Edit Objeto Origen

Objeto Destino IEdit

i25El A Figura 39 Dialogo Mensaje

El menuacute es otro de los recursos del que se puede disponer para organizar el ambiente que se estaacute creando Para eacuteste caso en particular no se hizo modificaciones al menuacute estaacutendar (Figura 310) que Visual C++ presenta Los cambios significativos son el manejo del tipo de documento para los Diagramas de Secuencias

Archivo Editar Yer VenLana AyGda

Figura 310 Menuacute de los Diagramas de Secuencias (estaacutendar)

Otro importante recurso del que uno se puede valer en Visual C++ es la barra de herramienta personalizada la cuaacutel es construida en el Editor de Recursos Se ha construido una barra (Figura 311) con los elementos graacuteficos de los Diagramas de Secuencia de UML

Figura 311 Barra de Herramientas de los Diagramas de Secuencias

Es recomendable que al utilizar barras de herramienta personalizada se defina en el tamantildeo estaacutendar ya que puede experimentar problemas al momento de ejecutar la aplicacioacuten

Ademaacutes puede usar la propiedad TBBS-CHECKGROUP en una barra de herramientas para establecer que los botones puedan quedar presionados hasta que un botoacuten diferente sea presionado No olvide que la numeracioacuten inicia con cero ( O )

vuriableToolBurSetButtonStyle(OTBBSCHECKGROUP)

32

Desarrollo de la herramienta

Prefijo ID IDC IDD IDP IDR IDS

326 Notacioacuten estaacutendar

Los nombres descriptivos de los recursos se asocian a un valor uacutenico Para una mayor claridad eacutestos nombres mantienen un prefijo que describe el tipo de recurso asociado (vea la Tabla 31) [MIC99]

Tipo de Recurso Comandos de Menuacute Controles y recursos Cuadros de diaacutelogo Cadenas de solicitud para cuadros de mensaje Menuacute principal barras de herramienta tabla aceleradora y el icono Cadenas

IDR IDD IDC ID

200 - 299 3000 - 3999 34000 - 34999

Estos son los rangos de valores establecidos para el proyecto S3C Si se utiliza el coacutedigo fuente y se planea agregar otro proyecto verifisue que no se invadan estos nuacutemeros para evitar problemas

Para facilitar auacuten maacutes los trabajos futuros se ha definido una estructura de carpetas (ver Figura 312) para incluir en cada una las Clases correspondientes a cada tesis en desarrollo

33

Desarrollo de la herramienta

ill ~~ -

-I SCUML classes + U A N T L R + U App + 0 ClassDiagrams + 0 Common + a Java

t $2 SequenceDiagiams

+ WarnierDiagrams

iJ PackageDiagrams

12 StaterChartDiagrams

+

- f Classview I Resourceview 1 FileView ]

~ ~

Figura 312 Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)

327Estructura de datos persistencia y recuperacioacuten

Existe una gran cantidad de tipos de datos estructuras clases y meacutetodos de los que se puede hacer uso para una mejor y maacutes faacutecil obtencioacuten de los resultados A continuacioacuten hago comentarios en tipos de datos y meacutetodos en los que podriacutea tener problemas

CTypedPtrList

AI usar este tipo de dato o alguno relacionado que le permita utilizar el meacutetodo ltCTvrgtedPtrListGetNextgt tenga especial precaucioacuten al usarlo ya que al devolver el valor requerido la variable POSITION usada no se queda apuntando a ese valor en particular salta al inmediato siguiente de la lista

Si se realiza una creacioacuten dinaacutemica con punteros para los elementos de una CTypedPtrList Despueacutes de haberlo agregado a la lista evite el delete para borrar esta Usted deseando liberar la memoria no lo haga ya que eliminara directamente el elemento de la lista

POSITION

Es un valor usado para denotar una posicioacuten de un elemento en una coleccioacuten Pero CUIDADO no se refiere a un iacutendice es una referencia (no consecutiva) de punteros muy diferente a un iacutendice

CString

Auacuten cuando el operador de comparacioacuten == (igual a) es permitido para ser utilizado en las cadenas evite su uso ya que en ocasiones aunque cuando la e

34

Desarrollo de la herramienta

compilacioacuten no indique error alguno en la ejecucioacuten no realizaraacute lo que se necesita Recomiendo que utilice CStringCompare ()

Para eliminar el contenido de un CString utilice CStringEmpty() ya que asignar a la cadena un ldquonrdquo podriacutea causarle problemas

Serializacioacuten

Una forma en que se puede guardar informacioacuten y recuperarla de manera eficaz es mediante la serializacioacuten de objetos La serializacioacuten es un proceso que permite escribir un objeto en un archivo y tambieacuten leerlo

Para que la serializacioacuten se lleve a cabo son necesarios tres objetos un objeto de tipo ltCFilegt que represente el archivo un objeto de tipo ltCArchivegt que ofrece el entorno para la serializacioacuten y la clase del objeto a ser serializado debe ser heredada de ltCObjectgt y sobrescribir el meacutetodo ltSerializegt para que se encuentre de tal forma en que pueda ser serializado (vea la Figura 313)

Objeto a ser serializado 1

1 CArchive

[f --=I- ---7 Archivoexi

u Figura 313 Serializacioacuten

328Patrones de disentildeo utilizados

Se ha planteado la definicioacuten de una arquitectura de clases utilizando patrones de disentildeo debido a que algunos de ellos hacen maacutes faacutecil la extensioacuten de la funcionalidad y mantenimiento

35

Desarrollo de la herramienta

El patroacuten Composite es utilizado para crear de manera uniforme el diagrama sobre el que se trabaja (ver Figura 34) manteniendo una jerarquiacutea de clases uniforme las clases maacutes bajas en la jerarquiacutea definen primitivas de objetos graacuteficos

Se aplica el patroacuten de disentildeo Iterator para hacer recorridos en listas de objetos para realizar diversas operaciones Otro patroacuten de disentildeo del que se hace uso es el Visilor (ver Figura 35)

Para otras actividades que se realizan podriacutea pensarse en que se deberiacutean aplicar otros patrones pero se han evitado algunos (como el patroacuten de disentildeo Builder) para evitar incrementar la complejidad en la arquitectura ya que ai mantener el modelo de la MFC de documentovista la funcionalidad del patroacuten de disentildeo Builder es faacutecilmente reemplazado si se hiciera Uso de eacuteste se aumentariacutea la complejidad excesivamente (nos llevariacutea a perdemos en ocasiones en el paso de mensajes entre clases) dantildeando la facilidad de la arquitectura

33 Diagrama de secuencias

Un Diagrama de Secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten escenario Oacute comportamiento se usan para definir el curso loacutegico de accioacuten de un posible camino a seguir en la resolucioacuten de un problema Seguacuten John Daniels [DANO2] ldquoel principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildean las interacciones de los objetosrdquo

Los Diagramas de Secuencias se utilizan en el modelado de la implementacioacuten de sistemas de software ademaacutes son aplicables en el modelado de requisitos para establecer las comunicaciones existentes entre actores yo clases del sistema Con eacutestos diagramas se logran hacer descripciones de los escenarios y los comportamientos del sistema Con los Diagramas de Secuencias es posible definir protocolos de comunicacioacuten con paso de mensajes ya que dan esa flexibilidad que se requiere Ademaacutes los Diagramas de Secuencias contienen informacioacuten suficiente para que puedan ser transformados a los diagramas de colaboracioacuten [RUM Ol][BOO Oil

331Ciclo de vida del software

Considerando cualquier modelo de ciclo de vida del software (en la figura 314 se muestra el Modelo de cascada) el aacutembito directo de eacuteste Ambiente Visual es en el disentildeo aunque tiene sus vertientes en la codificacioacuten y mantenimiento

36

Desarrollo de la herramienta

Diseno

Codificacibn

I I I I Mantenimiento I

igura 314 Modelo de cascada del ciclo de vida del software

34 Elementos atoacutemicos de la Gramaacutetica

Definicioacuten de los elementos atoacutemicos del lenguaje y su contenido

1 Actor- Representa roles de entidad externos al sistema con el que interactuacutea directamente Los actores pueden ser humanos dispositivos u otros sistemas

2 ClaseObjeto- Determina una Clase u Objeto participante en la interaccioacuten

3 Mensaje-Es una comunicacioacuten entre objetos que contiene informacioacuten Eacuteste se representa con la finalidad a que una accioacuten sea llevada a cabo

4 Mensaje con tiempo- Tiene la misma finalidad que el mensaje la diferencia es que con eacutel se representa un atributo de tiempo

5 Mensaje asiacutencrono Es un mensaje que ocurre en el tiempo de manera independiente a otros mensajes

6 Mensaje de destruccioacuten de objeto- Es un mensaje cuya finalidad es indicar la destruccioacuten del objeto destino

7 Mensaje de creacioacuten de objeto- Es un mensaje que indica la creacioacuten de un objeto

8 Llamada al mismo objeto (Recursividad)- Es usado para modelar llamadas recursivas en el que una operacioacuten es invocada por el mismo objeto

37

Desarrollo de la herramienta

9 Destruccioacuten del objeto (AutodestrucciOacuten)- Puede o no modelarse es representada con una X al final de la liacutenea de vida del objeto

Elementos aulomaacuteticos

1 Liacutenea de Vida- Representa la vida del objeto durante la interaccioacuten

2 Activacioacuten- Muestra el periacuteodo de tiempo en el cual el objeto alguna operacioacuten

341RepresentaciOacuten visual

Representacioacuten visual de los elementos atoacutemicos del lenguaje

Actor

_- A

Mensaje

Mensaje de Creacioacuten de

Objeto

ClaseObjeto

I

Mensaje de retorno

Mensaje de Destruccioacuten de

Objeto

abla 32 Element(

Activacioacuten

Mensaje con tiempo

Autodestruccioacuten

x

atoacutemicos del lengi

taacute realizz

Texto ===I (letra)+ (letra I

numero) letra= AZ I az numero = 09

I

Recursividad ~

I

i j e

io

38

u

Comentario

iexcl

Conector de Comentario

35 Gramaacutetica desarrollada

La gramaacutetica que se propone es una gramaacutetica visual del tipo relacional Una gramaacutetica relacional pertenece a las gramaacuteticas libres de contexto es una 6-iupla G (N C S R Attr P) donde

N es un conjunto finito de siacutembolos no terminales C es un conjunto de siacutembolos terminales S es un siacutembolo distinguido en N llamado siacutembolo inicial R es un conjunto finito de siacutembolos de relacioacuten Attr es un conjunto finito de siacutembolos de atributos P es un conjunto de producciones

Entonces definiendo nuestra gramaacutetica G (N C S R Attr P)

N = Diagrama GrupoClaseObjeto

S = Diagrama

R = mensaje mensajeTiempo mensajeRetomo mensajeAsincrono mensajecrea mensajeDestruye autodestruccioacuten recursividad

R

Attr = entrada salida entradacrea

39

Desarrollo de la herramienta

Definiendo la posicioacuten de los atributos en los elementos visuales

entradacrea ObetaClase

entrada

salida

P =

Diagrama I GrupoClaseObjeto (mensaje (mensajeRetorno

(salida 1) (entrada 2) ) (salida 2) (entrada 1) )

- Diagrama 0 GrupoClaseObjeto

(mensaje (mensaje (mensajeRetomo (mensajeRetomo (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entradacrea 2) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 1) ) (salida 1) (entrada 1) )

entrada

salida

40

Desarrollo de la herramienta

s

-

GrupoClaseObjeto - 1 1 I 2 (mensaje (mensaje (mensajeRetorno (mensajeRetorno (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entradacrea 2) ) (salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 1) ) (salida I ) (entrada I ) )

1 En las gramaacuteticas relacionales una produccioacuten estaacute acompantildeada de las posibles

relaciones que puedan generarse En la primera produccioacuten Diagrama produce a un Actor seguida de un GrupoClaseObjeto el Actor inicia la interaccioacuten con un mensaje y recibe el mensaje de retorno al finalizar la interaccioacuten La segunda y tercera produccioacuten son similares debido a que un GrupoClaseObjeto contiene dos ClaseObjeto que se relacionan de la misma forma

Existe un elemento de la gramaacutetica llamado Attr (Atributo) el cual define la parte de los elementos visuales donde se establecen las relaciones Se han determinado dos atributos (entrada y salida) que para nuestro propoacutesito estaraacuten establecidos en la liacutenea de vida de cada elemento visual (Actor y ClaseObjeto)

Los Comentarios y la Activacioacuten no se consideran en la gramaacutetica Los comentarios son libres de incluirse y relacionarse con cualquier elemento y relacioacuten mencionada anteriormente y la activacioacuten existe siempre que se presente un mensaje (o podriacutea omitirse) Estas consideraciones se realizaron para hacer auacuten maacutes faacutecil la gramaacutetica ya que si se trata de realizar un sistema las restricciones de estos elementos pueden mantenerse en el lenguaje de programacioacuten en el que se desarrolle el sistema

36

Precondiciones

El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias

1 El diagrama de Clases debe existir y estar completo 2 Debe existir un archivo con un diagrama de Warnier por cada diagrama de Clases y

con el mismo nombre de archivo (excepto la extensioacuten del archivo) 3 En el uacutenico diagrama de Warnier de cada Clase se deben modelar todos los meacutetodos

de la Clase 4 No realizar declaraciones de meacutetodos

41

Desarrollo de la herramienta

5 Debe existir un meacutetodo lsquomain()rsquo en el diagrama de Clases

Restricciones

Los meacutetodos deben mantener nombres distintos en las diferentes Clases

Metodologiacutea para la obtencioacuten automaacutetica de los Diagramas de Secuencias

1 Seleccionar el diagrama de Clases

2 Se construye una lista con los nombres de las Clases y los Meacutetodos

3 Se verifica si exista el meacutetodo lsquomain()rsquo en alguna Clase Se busca la existencia de una uacutenica Clase

a La Clase que contenga lsquomain()rsquo se va al inicio de la lista de Clases

b Si no existe lsquomain()rsquo SE TERMINA EL PROCESO

4 Se verifica la existencia de los archivos que contienen el Disentildeo Detallado de los meacutetodos en Wamier para cada una de las Clases si alguno falta SE TERMINA EL PROCESO

5 Se procesa cada uno de los modelos del Disentildeo Detallado de los Meacutetodos generando una lista de secuencias de llamadas por cada uno de los meacutetodos

6 Se verifica que cada llamada corresponda a alguacuten meacutetodo existente (del diagrama de Clases) De no existir ese meacutetodo la llamada entra a una estructura que

7 Se crea una lista de secuencia

a Se inicia con lsquomain()rsquo b Se recorre cada una de las llamadas de los meacutetodos c Se considera invaacutelido el caso de que un meacutetodo intente una llamada

recursiva al meacutetodo lsquomain()rsquo

8 Se muestra un diaacutelogo de resultados en el que se indican las llamadas que no se encnotraron definidas y que pueden ser Llamada a libreriacutea oacute Llamada Erroacutenea

42

Capiacutetulo 4

Prue6as y su6taaacuteos

En eacuteste capiacutetulo se da a conocer el detalle de las pruebas y de los resultados obtenidos Se describen los casos de prueba con los que se realizoacute la evaluacioacuten del sistema asiacute tambieacuten se presentan comentarios acerca de los resultados obtenidos

Pruebas y Resultados

41 Recursos teacutecnicos utilizados

Para llevar a cabo las pruebas al sistema S3C se utilizaron los siguientes equipos de Coacutemputo

Computadora de escritorio

256MB RAM Disco Duro 80G Monitor 17rdquo SAMSUNG

AMD Athlon XP 1600+ I4Ghz

Computadora de escritorio Intel Pentium 4 - 128MB RAM Disco Duro 40G Monitor 15rdquo i -

42 Descripcioacuten del plan de pruebas

Las pruebas establecen el Uacuteltimo paso desde donde es posible evaluar la calidad y descubrir los errores Las pruebas y la validacioacuten del software se utilizan para comprobar que el sistema cumple con las expectativas del usuario

En esta seccioacuten se describen los casos de prueba que se realizaron al prototipo de S3C en conjunto a la suite cenidet-UML Para cada uno de los casos se presenta el objetivo el procedimiento que se siguioacute para la prueba y se muestran los resultados obtenidos - _

Las pruebas a realizar son los siguientes

Caso 1 Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Caso 2 Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Wamier

Caso3 Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Wamier

Caso4 Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo 5

44

Pruebas y Resultados

43 Resultados

431 Caso 1

5 Y

IZ =

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoSirdquo 4 Seleccionar el archivo ldquoVENTASrdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 41 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

s3c iuevo Proyecto SCUM1

Diagrama de clases

lvendedor I L

3

salida

venta prod

4 venia-oferta vcntaprod =

salida 6

Figura 41 Resultado del caso de prueba 1

45

Pruebas y Resultados

432 Caso 2

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Warnier (almacenwar cajawar vendedorwar) que ya cxisten (del caso de prueba I )

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoNordquo 4 Agregar las siguientes Clases con los respectivos meacutetodos y atributos

a Claseldquovendedorrdquo Meacutetodos ldquoventa mainrdquo b Claseldquoalmacenrdquo Meacutetodos ldquoentrada salidardquo c Claseldquocajardquo Meacutetodos ldquoventagrodrdquo

5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 42 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

Diagrama de daseo lisgrama dcsccucncis

MOIDOC Anivo

venta prod

salida

1 Ycrdquo1a 2

I 4 vcrdquolD~o1cn venta prod gt

salida 6 i Figura 42 Resultado del caso de prueba 2

46

Pruebas y Resultados

r

433 Caso 3

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Warnier

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 43 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

5

Error al tratar de abrir el archivo A bZwar

Aceptar i

Faltan Archivos de Disentildeos Detallados de Meacutetodos 1 1 A No se puede crear el diagrama de secuencias

Figura 43 Resultado del caso de prueba 3

47

Pruebas y Resultados

434 Caso 4

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 44 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

lsquo I

~ _ i i _ l _ Repaado ~~ ~ ~ 6~ ampA Figura 44 Resultado del caso de prueba 4

48

Pruebas y Resultados

PRUEBA DESCNPCION CASO 1 Mostrar la funcionalidad del

Sistema S3C a partir de un

44 Anaacutelisis de Resultados

RESULTADOS Se comproboacute la correcta funcionalidad del Sistema S3C a partir de un diagrama

CASO 3

CASO4

I diagrama de Clases cxistcnte I de Clases existente CASO 2 I Mostrar la funcionalidad del I Sc comproboacute la corrccta funcionalidad

Sistema S3C a partir de un del Sistema S3C a partir de un diagrama diagrama de Clases que se de Clases que se construye al momento construye al momento Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el Secuencias si falta alguno de los diagrama de Secuencia si falta alguno diagramas de Warnier Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el secuencias si hace falta el meacutetodo diagrama de Secuencias al faltar el ldquomain ()rdquo meacutetodo ldquomain()rdquo

de los diagramas de Warnier

Los resultados obtenidos de cada uno de los casos establecidos demuestran que se validoacute la funcionalidad del prototipo con los requisitos definidos en el alcance de este proyecto

a lt

49

Conclusiones y Tru6ajos Futuros

Aquiacute se dan a conocer las conclusiones y se describen los posibles trabajos futuros para la continuacioacuten de eacuteste proyecto

F

51 Conclusiones

Conclusiones y trabajos futuros

Se ha creado un Ambiente Visual que permite obtener de forma automaacutetica los Diagramas de Secuencias en base a los diagramas de Clases y al disentildeo detallado de los meacutetodos descritos con diagramas de Warnier cumpliendo con los objetivos planteados para este trabajo

La tesis aporta principalmente La generacioacuten automaacutetica de los diagramas de secuencias y la eliminacioacuten de inconsistencias al mantener una validacioacuten directa de los diagramas de clases y los diagramas de Warnier que son utilizados

Esta validacioacuten es lograda a traveacutes del uso de la gramaacutetica visual relaciona1 que se ha definido (veacutease el capiacutetulo 3) Esta gramaacutetica visual establece reglas para la correcta construccioacuten de los diagramas de secuencias

P De esta manera se establece que la hipoacutetesis ldquoEs posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodosrdquo Es verdadera

52 Trabajos Futuros

Un Diagrama de Secuencias puede convertirse en un Diagrama de Colaboracioacuten por lo tanto un trabajo futuro es la construccioacuten automaacutetica de un Diagrama de Colaboracioacuten a partir de uno de Secuencias existente

Es posible calcular la meacutetrica de acoplamiento al tener un Diagrama de Secuencias construido

La Ingenieriacutea directa de un Diagrama de Secuencias estableciendo la validacioacuten en la construccioacuten de todos los elementos visuales que UML define

La propagacioacuten de las modificaciones de un Diagrama de Secuencias a los Diagramas de Clases y los Diagramas de Warnier

La modificacioacuten del coacutedigo fuente mediante los cambios establecidos en un Diagrama de Secuencias

51

[ALC03]

[BLA98]

[B0099]

[BOOOi]

[BR097]

[CHA90]

[DAN02]

[GLA02]

[HAC98]

[HER03]

4

Alcate1 Computer Associates International inc Electronic Data Systems Corporation Hewlett-Packard Company IBM Corporation I-Logix IntelliCorp Kabira Technologies Kennedy Carter Microsoft Corporation Object Management Group Oracle Corporation Project Technology Ptech Inc Rational Software Corporation Reich Technologies Softeam Taskon A S Telelogic Unisys Corporation ldquoOMG Unified Modeling Language Specificationrdquo Version 15 Unified Modeling Language 2003

Blaha Michael Rumbaugh James Premerlani William Eddy Frederick Lorensen William ldquoObject-oriented modeling and designrdquo Prentice Hall 484 Paacuteginas ISBN 0-13-629841-9 QA-769-03S-B53-19981998

Booch Grady Rumbaugh James Jacobson Ivar ldquoEl lenguaje unificado de modeladordquo Addison Wesley 432 Paacuteginas ISBN 84-7829-028-1 1999

Booch Grady Rumbaugh James Jacobson Ivar ldquoThe Unified Modeling Language User Guiderdquo Addison Wesley 2001

Brown David ldquoAn introduction to object-oriented analysis objects in plain Englishrdquo John Whiley amp Sons Inc 700 Paginas ISBN 0-471-1 1028-0 QA-769-035-B76-1997 1997

Chang Shi-Kuo ldquoVisual Languages and visual programmingrdquo Plenum Press 340 Paacuteginas ISBN 0-306-43428-8 QA-7665-V57-1990 1990

Daniels John ldquoModeling with a sense of purposerdquo Design - IEEE Software JanuaryEebmary 2002

Glasgow Universidad Reino Unido ldquoA UML Editor in Javardquo (lthttplstudentsdcsglaacuWstudentspainjfproject-reportproject-re port-htmV4thYearReporthtrnlgt 2002)

T Hackos JoAnn C Redish Janice ldquoUser and Task Analysis for Interface Designrdquo Wiley Computer Publishing 488 Paacuteginas ISBN QA-769-U83- H33-1998 1998

Hemaacutendez Velaacutezquez M ldquoIngenieriacutea inversa de coacutedigo fuente en C++ para la obtencioacuten de su disentildeordquo Tesis AT-379 (03-0334) 2003

Conceptos generales

[HIX93]

[JAC93]

[JAC99]

[JOY98]

[LAR97]

[MAR]

[MIC99]

[MIC02]

[MOU98]

Hix Deborah Hartson H Rex ldquoDeveloping user interfacesrdquo 381 Paacuteginas ISBN 0-471-57813-4 QA-769-U83-H59-1993 1993

Jacobson Ivar Christerson Magnus Jonsson Patrik Overgaard Gunnar ldquoObject oriented software engineeringrdquo Addison Wesley ISBN 0-20 1 - 54435-0 QA-7676-D47-J63-1993 1993

Jacobson Ivar Booch Grady Rumbaugh James ldquoEl proceso unificado de desarrollo de softwarerdquo Addison Wesley 438 Paacuteginas ISBN 84-7829-036- 2 1999

Joyanes Aguilar Luis ldquoProgramacioacuten orientada a objetosrdquo McGruw Hill ISBN 84-481-0590-7 1998

Larman Craig ldquoAplying UML and Patternsrdquo Prentice Hull 507 Paacuteginas ISBN 0-13-748880-7 QA-769-035-L37-1997 1997

Marriot Kim Meyer Bemd ldquoVisual Language Theoryrdquo Springer 381 Paacuteginas P-935-V567-1998 1998

Microsoft ldquoMicrosoft Visual C++ 6 manual del programadorrdquo McGraw Hill ISBN 84-481-2127-9 QA-7673-Cl53-23718-1999 1999

Microsoft ldquoVisiordquo (lthttpwwwmicrosoftcomofficevisiogt 2002)

B Mourao Luis X ldquoUniversal Modeling Language Part 11 UML Notation - Case Sequence and Collaboration Diagramsrdquo Lan Times Magazine (~httpwwwlantimescomltpartsdiscussdiscuss6Ohtm~) 1998

No Magic ldquoMagicDrawrdquo (lthttpwwwmagicdrawcomgt 2002)

Object Insight ldquoJvisionrdquo (lthttpwwwobject-insightcomgt 2002)

Rational Software Microsoft I Hewlett-Packard Oracle Sterling Software MCI Systemhouse Unisys ICON Computing IntelliCorp i-Logix IBM ObjectTime Platinum Technology Ptech Taskon Reich Technologies Sofieam ldquoUML Summaryrdquo Version 11 Unified Modeling Language 1997

Rational ldquoRational Roserdquo (lthttpwwwrationalcomproductosrosegt 2002)

Rikki Kirzner ldquoAnalysis Modeling and Design Tools Market Forecast and Analysis 2001-2005rdquo Bulletin Published Under Services Application Design and Construction Tools Application Development and Deployment Strategies Documento Nuacutemero 24809 Junio 2001

53

Conceptos generales

[RIM92] Rimrner Steve ldquoGraphical user interface programmingrdquo 423 Paacuteginas

1992

Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language reference manualrdquo Addison Wesley 550 Paacuteginas ISBN 0-201-

ISBN 0-8306-2475-9 ISBN 0-8306-2472-4 (pbk) QA-769-083-R55G

[RUM99]

30998-X QA-7676-D47-R85-1999 1999

[RUM299] Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language user guiderdquo Addisoiz Wesley 482 Paacuteginas ISBN 0-201 -57 168-4 QA-7676-D47-B66-1999 1999

[SMA02] SmartDraw ldquoSmartDrawrdquo (lthttpwwwsmartdrawcomgt 2002)

[SHU88] 9 - Shu Nun C ldquoVisual Programmingrdquo Van Nostrand Reinhold ISBN 0-422- 28014-9 ISBN 0-422-01 164-4 QA-7665-S55 1988

[THI90] Thimbleby Harold ldquoUser Interface Designrdquo Acm press 470 Paacuteginas ISBN 0-201 -41 61 8-2 QA-769U83-T772~- 1990 1990

[WENO2] Wences Diaz MF ldquoModelo de Ingenieriacutea Inversa para la obtencioacuten de disentildeo detallado basado en LEVISSrdquo Tesis (02-0014) 2002

54

Anexo A

Conampuracioacuten de Microsoft Vkua[C++ 6 O

Este anexo indica las configuraciones que se utilizaron para la compilacioacuten de SCUML y s3c

Configuracioacuten de Microsoft Visual c++ 60

Debido a la integracioacuten de los proyectos de InverSOODA e InverDDVi con S3C se cumplioacute con los requisitos previos de ambos proyectos

El compilador usado en el proyecto fue el Microsoft Visual C++ 60

Para el cumplimiento con la funcionalidad de InverSOODA se instaloacute el ANTLR la versioacuten 271 Se descargoacute del sitio l i l l ~ ~ ~ ~ ~ ~ t l ~ l ~ - ~ t - ~ la versioacuten mencionada en un archivo comprimido (en formato zip) Se colocoacute el paquete descomprimido en el directorio ldquoDIANTLR-271 I rdquo

Recomiendo ampliamente que el directorio principal de ANTLR se copie en el directorio raiacutez de cualquier unidad de disco debido a que experimenteacute problemas de compilacioacuten cuando ANTLR no se encontraba en el directorio raiacutez

Io015

Source Browser AlttF12 I u c Ersquo V I

Visual Component Mgnager

- - ~ ~ ~ ~~

P2 Registrar control

A Contenedor de prueba de controles ActiveX

A Usor de objetos OLE y COM

Buacutesqueda de errores

A Y++ MFC Iracer

Customize options

~ - q- ~ Macro

Eecord Quick Macro Cbl+ShiR+R Pay Quick Macro Ctrl+ShiR+P

En el menuacute Tools (Herramientas) seleccione el sub-menuacute Options ltopcionesgt

56

Configuracioacuten de Microsoft Visual C++ 60

En la siguiente ventana de diaacutelogo debe agregar la direccioacuten en donde se encuentra el ANTLR

Agregar la ruta del directorio de ANTLR hasta el subdirectorio

libcpp

Editor I Tabs I Debug I Compatibility 1 Build Dneclolies I a I Chow directories for - Platfolm -

- Directories I x ) 4 jWin32 -] llnclude files

m cancd I

57

Configuracioacuten de Microsoft Visual C t+ 60

Se ha creado una libreriacutea (anrlrliblib) de ANTLR la cual ya estaacute situada en el directorio del proyecto SCUML (ISCUML) y no debe ser movida o eliminada

I

Geneial 1 Debug I CC++ Link I Category

Output file name bebugSCUMLexe

Objectljibrary modules 4 anllrliblib

li Generate debug lnfo r Ignore all defaull lbaries D ~ i n k j n ~ ~ ~ t a n ~ r ~ e n e r ~ ~ ~ mapfile

r Enable psafilrng

Proiec1 Ootionn

pq Cancel 1 Libreriacutea de ANTLR que debe existir 1 I para que se compile correctamente

58

Anexo B

~ u iacute aacute raacutepida de uso deC Sistema S3C

5 Este anexo indica de forma raacutepida la manera de utilizar S3C para crear un diagrama de secuencias de forma automaacutetica

Guiacutea Raacutepida de uso del Sistema S3C i

Para indicar la creacioacuten de un diagrama de secuencias en forma automaacutetica se debe ir a la barra del costado izquierdo y presionar ldquoNuevo Proyecto SCUMLrdquo

I s3c I ~ Nuevo Proyecto SCUML ~ _ _ - I Diagrama de clases ~ Diagrama de secuencias 1 MDI DOC Activo

-

Apareceraacute un documento llamado ldquoSCUMLV en donde el simbolo corresponde a un numero consecutivo iniciando desde 1 (uno)

$ e Despueacutes se presiona ldquoDiagrama de clasesrdquo Habraacute que para indicarle al sistema si se requiere abrir un diagrama de clases existente o realizar uno nuevo

i

iquestAbrir un documento existente

No Cardquo~ear

AI presionar ldquoSirdquo se debe indicar cual es el archivo del diagrama de Clases en el cuadro de diaacutelogo siguiente

~~ - 11dMis documentos rsquo 2 M i P C i lsquo h s sitios de red

I

AI presionar ldquoNordquo en ldquoAbrir un documento existenterdquo se nos mostraraacute un documento vacio para crear un diagrama de clases

60

Guiacutea Raacutepida de uso del Sistema S3C

Para ambas opciones se requiere que los diagramas de Wamier ya se encuentren construidos Y para continuar el proccso se selecciona el documento ldquoSCUMLVrsquo creado al inicio y despueacutes presionar el botoacuten nombrado ldquoDiagrama de secuenciasrdquo localizado en la barra de hcrraiiiicntas del costado izquierdo

Ha iniciado el proceso de construccioacuten del diagrama de secuencias Si no existen errores al terminar el proceso se le mostraraacute un cuadro de diaacutelogo llamado ldquoResultadosrdquo en donde le mostraraacute las llamadas de las que no localizoacute su definicioacuten

- - -

Cancel 1 D e las siguientes llamadas es posible que esten mal escritas o peitenezcan a la libreiia del Lenguaie Verifique ya que no se encontraron sus definiciones

A continuacioacuten se mencionan los posibles errores que finalizan el proceso de la creacioacuten automaacutetica de los diagramas de secuencias en S3C

Cuando no exista un meacutetodo lsquomainrsquo definido en el diagrama de clases

No se encontro el meacutetodo lsquomain()rsquo que inicie la secuencia I A No se puede crear el diagrama de secuencias

p==amp=q

61

Guia Raacutepida de uso del Sistema S3C

Cuando se definan niultiples metodos lsquoinainrsquo en el diagrama de clases

Multiples meacutetodos lsquomainOlsquo Imposible decidir el inicio de secuencia

Aceptar i

Si un meacutetodo definido en Wamier realiza una llamada a lsquomainrsquo se cancelara el proceso

Llamada NO VALIDA al meacutetodo principal main

(iAcp-j(

4 i

CI Y rdquoldquoldquoI i 11 1-T

IZNTRO Gt INFORMACION

62

  • Tabla de Contenido
  • Listado de Figuras
  • Listado de Tablas
  • Notacioacuten
  • Introduccioacuten
  • Capitulo 1 Conceptos Generales
    • 11 Antecedentes
    • 12 Trabajos relacionados
      • 121 Tabla comparativa
        • 13 Definicioacuten del problema
        • 14 Objetivo de la Tesis
          • Objetivos especiacuteficos de la tesis
            • 15 Hipoacutetesis de investigacioacuten
            • 16 Alcances y limitaciones del trabajo de tesis
              • Capitulo 2 Marco Teoacuterico
                • 21 Modelado de sistemas de software
                • 22 Interfaz de usuario (Mecanismos de interaccioacuten)
                • 23 Lenguajes Visuales
                • 24 Programacioacuten orientada a objetos
                • 25 Lenguaje de Modelado Unificado (UML)
                  • Desarrollo de la herramienta
                    • 31 Disentildeo de la Arquitectura
                      • 311 Requisitos (Diagrama de Casos de uso)
                        • 312Modelo Conceptual
                        • 313Diagramas de clases
                        • 32 Elementos de la arquitectura
                          • 321 Microsoft Foundation Class (MFC)
                            • 322Arquitectura Documento Vista
                            • 323Integrando Ambientes en Visual c++
                              • 324 Interfaz de Muacuteltiples Documentos (MDI)
                                • 325Recursos Diaacutelogos Menus y Barras de Herramientas
                                  • 326 Notacioacuten estaacutendar
                                  • 327 Estructura de datos persistencia y recuperacioacuten
                                    • 328Patrones de disentildeo utilizados
                                      • 33 Diagrama de secuencias
                                        • 331Ciclo de vida del software
                                          • 34 Elementos atoacutemicos de la Gramaacutetica
                                            • 341 Representacioacuten visual
                                              • 35 Gramaacutetica desarrollada
                                              • 36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias
                                                  • Capitulo 4 Pruebas y Resultados
                                                    • 41 Recursos teacutecnicos utilizados
                                                    • 42 Descripcioacuten del plan de pruebas
                                                    • 43 Resultados
                                                      • 431 Caso
                                                      • 432 Caso2
                                                      • 433 Caso
                                                          • Conclusiones y trabajos futuros
                                                            • Trabajos futuros
                                                            • Referencias
                                                            • Anexo A Configuracioacuten de Microsoft Visual C+t
                                                              • Figura 11 - Arquitectura de la suite cenidet-UML
                                                              • Figura 21 -Programacioacuten Visual
                                                              • Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de
                                                              • Figura 32 -Diagrama de Casos de Uso para el S3C
                                                              • Figura 33 -Modelo Conceptual
                                                              • Figura 34 - Diagrama de Clases -Control del Diagrama -
                                                              • Figura 35 - Diagrama de Clases - Patroacuten Visitor -
                                                              • Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento
                                                              • Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)
                                                              • Figura 38 -Dialogo Caracteriacutesticas del Objeto
                                                              • Figura 39 -Dialogo Mensaje
                                                              • Figura 3 IO - Menuacute de los Diagramas de Secuencias (estaacutendar)
                                                              • Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias
                                                              • Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)
                                                              • Figura 313 - Serializacioacuten
                                                              • Figura 314 -Modelo de cascada del ciclo de vida del software
                                                              • Figura 41 - Resultado del caso de prueba
                                                              • Figura 42 -Resultado del caso de prueba
                                                              • Figura 43 -Resultado del caso de prueba
                                                              • Figura 44 -Resultado del caso de prueba
                                                              • Tabla 11 - Tabla comparativa
                                                              • Tabla 31 -Prefijos estaacutendar de identificadores
                                                              • Tabla 32 -Elementos atoacutemicos del lenguaje
                                                              • Tabla 41 - Resumen de los resultados de las pruebas realizadas

Desarrollo de la herramienta

CRecursividadDS CMensajeDS CObjetoDS CDiagramaDS

I Cvisitor I

CApuntadorDS CDblClickDS CAsocAdjusterDS CSelectorDS

26

Desarrollo de la herramienta

n 32 Elementos de la arquitectura

Es necesario describir los elementos que dan soporte a la arquitectura del ambiente donde se implementaraacute el sistema en este caso Microsoft Visual (MV) C++ 6 El MV C++ es un marco de aplicacioacuten poderoso basado en Windows se integran ademaacutes del lenguaje C++ (compilador y enlazador) el programa de desarrollo de programas en lenguaje C para Windows (SDK) la Microsoft Foundation Class Library AppWizzard Classwizard AppStudio y WorkBencli

La Microsoft Foundation Class Library comprende una biblioteca de clases de C++ y es considerada como el nuacutecleo del MV C++

321Microsoft Foundation Class (MFC)

La libreriacutea Microsoft Foundation Class (MFC) es una interfaz orientada a objetos que tiene las siguientes metas de disentildeo

o

Reduccioacuten significante de esfuerzo al escribir una aplicacioacuten para Windows Velocidad de ejecucioacuten comparable a las APIrsquos del lenguaje C Miacutenimo tamantildeo de coacutedigo Capacidad para llamar cualquier funcioacuten de Windows en C directamente Faacutecil conversioacuten de aplicaciones existentes en C a C++ Faacutecil uso de APIrsquos de Windows con C++ como con C Faacutecil uso de complicadas caracteriacutesticas de abstracciones poderosas como ActiveX soporte para base de datos impresioacuten barras de herramientas y barras de estado El API de Windows en C++ si usa tan efectivamente como las caracteriacutesticas mismas del lenguaje C++

La mayoriacutea de las clases de la Libreriacutea de la Microsoft Foundation Class son derivadas de una clase base ltCObjectgt que es la raiacutez de la jerarquiacutea de clases ltCObjectgt da uacutetiles capacidades a las clases que derivan de ella

La jerarquiacutea que existe en las clases derivadas de ltCObjectgt es la siguiente

Arquitectura de Aplicacioacuten Excepciones Servicios de Archivos Arreglos Listas Mapas Servicios de Internet Sockets Sincronizacioacuten Soporte para base de datos D A 0

27

Desarrollo de la herramienta

i

r

Liacutenea de Comandos Menuacute Dibujo Graacutefico Dibujo Graacutefico de Objetos Soporte de Control Soporte de Ventanas

Soporte para base de datos ODBC

o Marco de Ventanas o Barras de control o Hojas de propiedades o Cajas de Dialogo o Vistas o Controles

322Arquitectura Documento Vista

Por defecto las aplicaciones creadas con la MFC usan un modelo de aplicacioacuten que separa los datos del programa de las vistas de interaccioacuten con el usuario En eacuteste modelo un objeto documento de MFC lee y escribe datos en un almacenamiento persistente Un objeto vista administra el despliegue de datos suministrando al usuario los datos para ser seleccionados o editados La vista le comunica al documento cualquier cambio en los datos La razoacuten maacutes conveniente para seguir este modelo es cuando se necesita muacuteltiples vistas del mismo documento (como en una hoja de caacutelculo y un graacutefico)

La arquitectura documentovista hace faacutecil el soporte de muacuteltiples vistas y muacuteltiples tipos de documentos asiacute como la divisioacuten de ventanas y otras caracteriacutesticas de interfaz de usuario Pero el corazoacuten de la arquitectura son cuatro clases (Mostradas en el aacuterbol de clases de la Figura 36)

ltCDocumerrtgt (o ltCOleDocuinentgt) - Se instancia un objeto de este tipo para almacenar y controlar los datos del programa ltCViewgt (o una de sus clases derivadas ltCScrotlViewgt ltCFormViewgt ltCEditView ltCRecordViewgt ltCDaoRecordView ltCtreeViewgt ltCListViewgt b ltCrichEditViewgt) - Un objeto es usado para desplegar los datos y administrar la interaccioacuten del usuario con los datos ltCFrameWndgt (o una de sus variantes) - Establece el marco sobre el que trabajaraacuten una o mas vistas de un documento ltCDocTemolategt (o ltCSingIeDocTemplategt o ltCMultiDocTemplategt) - Coordina la existencia de uno o maacutes documentos de un tipo dado y administra la correcta creacioacuten de los documentos vistas y objetos ventanas para cada tipo

i

28

Desarrollo de la herramienta

______________ 2 Wiew

I - - __ - ------a ________________

323Integrando Ambientes en Visual C t t

Las aplicaciones de Interfaz de Documento Uacutenico (SDI) soporta muacuteltiples tipos de documentos pero este soporte es para un solo objeto documento Debido a esta restriccioacuten y aunado a la necesidad de tener varios objetos documentos a la vez se determina la utilizacioacuten del modelo Interfaz de Muacuteltiples Documentos (MDI) indicado en la Figura 37

324Interfaz de Muacuteltiples Documentos (MDI)

Una aplicacioacuten de Interfaz de Muacuteltiples Documento (MDI) permite la creacioacuten de plantillas para el manejo de los documentos eacutesta plantilla tiene la forma

rn-pDocTemplate = new CMultiDocTernplate ( I DR-SCUMLTY PE RUNTIME-CLASS (CSCUMLDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CTheView))

AddDocTernplate ( rn-pDocTemplate )

Cada plantilla describe una relacion del tipo de documento con la vista asociada La definicioacuten de la plantilla para el ambiente que controla los diagramas de secuencias es la siguiente

29

Desarrollo de la herramienta c

m-pTernplateSeqDlag = new CMultiDocTernplate ( IDR-DS-SJCTYPE RUNTIME-CLASS (CSeqDiagDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CSeqDiagView) )

AddDocTernplate( rn-pTernplateSeqDiag )

Esta plantilla hace uso de la clase CCliildFrame que por defecto el ambiente Visual C++ construye y esto es debido a que no se requieren caracteriacutesticas extras en las ventanas de las que proporciona dicha clasc En un caso en el que se requiriera un comportamiento diferente de la vista tendriacutea que crearse una nueva clase con las caracteriacutesticas deseadas

Vista Documento

Vista

I- Vista Documento I [ Tip- F Vista

L Figura 37 Modelo Interfaz de Muacuteltiples Documentos (MDI)

Para integrar otro Ambiente que utilice otro tipo de documento es necesario definir otra plantilla de la misma forma mencionada Debe tomarse en cuenta los siguientes puntos

Es necesario definir el nombre (mqTemplateNOMBRE) El IDR del tipo que se requiere que sea el documento En la primera liacutenea RUNTIME CLASS debe indicar la clase ltCDocumentgt que desea La segunda liacutenea RUNTIME-CLASS soacutelo la cambia a otra clase si requiere de otro manipulador de ventanas de lo contrario deje que ltCChildFramegt se haga cargo

-

30

Desarrollo de la herramienta

En la uacuteltima liacutenea referente a RUNTIME-CLASS se debe indicar la clase ltCViewgt que desea usar Para finalizar se usa la instruccioacuten AddDocTernplate para finalizar la definicioacuten del template (mgTemplateNOMBRE)

325 Recursos Diaacutelogos Mertuacutes y Barras de Herrattriertias

Son varios los recursos con los que se puede contar al crear un proyecto en Microsoft Visual C++ Los diaacutelogos son un recurso disponible que son utilizados para visualizar ingresar yo modificar informacioacuten que se requiera En el Ambiente Visual que se desarrolla son varios los diaacutelogos que se utilizaraacuten y eacutestos se describen a continuacioacuten

El Diaacutelogo ldquoCaracteriacutesticas del Obietordquo (Figura 38) identifica el nombre del Objeto y la descripcioacuten del mismo Este diaacutelogo se muestra cuando se presiona doble clic sobre un objeto del diagrama

I Nombre

Desciipcion

Figura 38 Dialogo Caracteriacutesticas del Objeto

El Diaacutelogo ldquoMensaierdquo (Figura 39) muestra el nombre del mensaje que puede ser modificado ademaacutes se visualizan el Identificador del Mensaje el tipo de Mensaje asiacute tambieacuten el origen y destino del mensaje

31

Desarrollo de la herramienta

Nornbie delMensaje Edit

IDentificador del Mensaje Edil Tipo de Mensaje (Edil

Edit Objeto Origen

Objeto Destino IEdit

i25El A Figura 39 Dialogo Mensaje

El menuacute es otro de los recursos del que se puede disponer para organizar el ambiente que se estaacute creando Para eacuteste caso en particular no se hizo modificaciones al menuacute estaacutendar (Figura 310) que Visual C++ presenta Los cambios significativos son el manejo del tipo de documento para los Diagramas de Secuencias

Archivo Editar Yer VenLana AyGda

Figura 310 Menuacute de los Diagramas de Secuencias (estaacutendar)

Otro importante recurso del que uno se puede valer en Visual C++ es la barra de herramienta personalizada la cuaacutel es construida en el Editor de Recursos Se ha construido una barra (Figura 311) con los elementos graacuteficos de los Diagramas de Secuencia de UML

Figura 311 Barra de Herramientas de los Diagramas de Secuencias

Es recomendable que al utilizar barras de herramienta personalizada se defina en el tamantildeo estaacutendar ya que puede experimentar problemas al momento de ejecutar la aplicacioacuten

Ademaacutes puede usar la propiedad TBBS-CHECKGROUP en una barra de herramientas para establecer que los botones puedan quedar presionados hasta que un botoacuten diferente sea presionado No olvide que la numeracioacuten inicia con cero ( O )

vuriableToolBurSetButtonStyle(OTBBSCHECKGROUP)

32

Desarrollo de la herramienta

Prefijo ID IDC IDD IDP IDR IDS

326 Notacioacuten estaacutendar

Los nombres descriptivos de los recursos se asocian a un valor uacutenico Para una mayor claridad eacutestos nombres mantienen un prefijo que describe el tipo de recurso asociado (vea la Tabla 31) [MIC99]

Tipo de Recurso Comandos de Menuacute Controles y recursos Cuadros de diaacutelogo Cadenas de solicitud para cuadros de mensaje Menuacute principal barras de herramienta tabla aceleradora y el icono Cadenas

IDR IDD IDC ID

200 - 299 3000 - 3999 34000 - 34999

Estos son los rangos de valores establecidos para el proyecto S3C Si se utiliza el coacutedigo fuente y se planea agregar otro proyecto verifisue que no se invadan estos nuacutemeros para evitar problemas

Para facilitar auacuten maacutes los trabajos futuros se ha definido una estructura de carpetas (ver Figura 312) para incluir en cada una las Clases correspondientes a cada tesis en desarrollo

33

Desarrollo de la herramienta

ill ~~ -

-I SCUML classes + U A N T L R + U App + 0 ClassDiagrams + 0 Common + a Java

t $2 SequenceDiagiams

+ WarnierDiagrams

iJ PackageDiagrams

12 StaterChartDiagrams

+

- f Classview I Resourceview 1 FileView ]

~ ~

Figura 312 Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)

327Estructura de datos persistencia y recuperacioacuten

Existe una gran cantidad de tipos de datos estructuras clases y meacutetodos de los que se puede hacer uso para una mejor y maacutes faacutecil obtencioacuten de los resultados A continuacioacuten hago comentarios en tipos de datos y meacutetodos en los que podriacutea tener problemas

CTypedPtrList

AI usar este tipo de dato o alguno relacionado que le permita utilizar el meacutetodo ltCTvrgtedPtrListGetNextgt tenga especial precaucioacuten al usarlo ya que al devolver el valor requerido la variable POSITION usada no se queda apuntando a ese valor en particular salta al inmediato siguiente de la lista

Si se realiza una creacioacuten dinaacutemica con punteros para los elementos de una CTypedPtrList Despueacutes de haberlo agregado a la lista evite el delete para borrar esta Usted deseando liberar la memoria no lo haga ya que eliminara directamente el elemento de la lista

POSITION

Es un valor usado para denotar una posicioacuten de un elemento en una coleccioacuten Pero CUIDADO no se refiere a un iacutendice es una referencia (no consecutiva) de punteros muy diferente a un iacutendice

CString

Auacuten cuando el operador de comparacioacuten == (igual a) es permitido para ser utilizado en las cadenas evite su uso ya que en ocasiones aunque cuando la e

34

Desarrollo de la herramienta

compilacioacuten no indique error alguno en la ejecucioacuten no realizaraacute lo que se necesita Recomiendo que utilice CStringCompare ()

Para eliminar el contenido de un CString utilice CStringEmpty() ya que asignar a la cadena un ldquonrdquo podriacutea causarle problemas

Serializacioacuten

Una forma en que se puede guardar informacioacuten y recuperarla de manera eficaz es mediante la serializacioacuten de objetos La serializacioacuten es un proceso que permite escribir un objeto en un archivo y tambieacuten leerlo

Para que la serializacioacuten se lleve a cabo son necesarios tres objetos un objeto de tipo ltCFilegt que represente el archivo un objeto de tipo ltCArchivegt que ofrece el entorno para la serializacioacuten y la clase del objeto a ser serializado debe ser heredada de ltCObjectgt y sobrescribir el meacutetodo ltSerializegt para que se encuentre de tal forma en que pueda ser serializado (vea la Figura 313)

Objeto a ser serializado 1

1 CArchive

[f --=I- ---7 Archivoexi

u Figura 313 Serializacioacuten

328Patrones de disentildeo utilizados

Se ha planteado la definicioacuten de una arquitectura de clases utilizando patrones de disentildeo debido a que algunos de ellos hacen maacutes faacutecil la extensioacuten de la funcionalidad y mantenimiento

35

Desarrollo de la herramienta

El patroacuten Composite es utilizado para crear de manera uniforme el diagrama sobre el que se trabaja (ver Figura 34) manteniendo una jerarquiacutea de clases uniforme las clases maacutes bajas en la jerarquiacutea definen primitivas de objetos graacuteficos

Se aplica el patroacuten de disentildeo Iterator para hacer recorridos en listas de objetos para realizar diversas operaciones Otro patroacuten de disentildeo del que se hace uso es el Visilor (ver Figura 35)

Para otras actividades que se realizan podriacutea pensarse en que se deberiacutean aplicar otros patrones pero se han evitado algunos (como el patroacuten de disentildeo Builder) para evitar incrementar la complejidad en la arquitectura ya que ai mantener el modelo de la MFC de documentovista la funcionalidad del patroacuten de disentildeo Builder es faacutecilmente reemplazado si se hiciera Uso de eacuteste se aumentariacutea la complejidad excesivamente (nos llevariacutea a perdemos en ocasiones en el paso de mensajes entre clases) dantildeando la facilidad de la arquitectura

33 Diagrama de secuencias

Un Diagrama de Secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten escenario Oacute comportamiento se usan para definir el curso loacutegico de accioacuten de un posible camino a seguir en la resolucioacuten de un problema Seguacuten John Daniels [DANO2] ldquoel principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildean las interacciones de los objetosrdquo

Los Diagramas de Secuencias se utilizan en el modelado de la implementacioacuten de sistemas de software ademaacutes son aplicables en el modelado de requisitos para establecer las comunicaciones existentes entre actores yo clases del sistema Con eacutestos diagramas se logran hacer descripciones de los escenarios y los comportamientos del sistema Con los Diagramas de Secuencias es posible definir protocolos de comunicacioacuten con paso de mensajes ya que dan esa flexibilidad que se requiere Ademaacutes los Diagramas de Secuencias contienen informacioacuten suficiente para que puedan ser transformados a los diagramas de colaboracioacuten [RUM Ol][BOO Oil

331Ciclo de vida del software

Considerando cualquier modelo de ciclo de vida del software (en la figura 314 se muestra el Modelo de cascada) el aacutembito directo de eacuteste Ambiente Visual es en el disentildeo aunque tiene sus vertientes en la codificacioacuten y mantenimiento

36

Desarrollo de la herramienta

Diseno

Codificacibn

I I I I Mantenimiento I

igura 314 Modelo de cascada del ciclo de vida del software

34 Elementos atoacutemicos de la Gramaacutetica

Definicioacuten de los elementos atoacutemicos del lenguaje y su contenido

1 Actor- Representa roles de entidad externos al sistema con el que interactuacutea directamente Los actores pueden ser humanos dispositivos u otros sistemas

2 ClaseObjeto- Determina una Clase u Objeto participante en la interaccioacuten

3 Mensaje-Es una comunicacioacuten entre objetos que contiene informacioacuten Eacuteste se representa con la finalidad a que una accioacuten sea llevada a cabo

4 Mensaje con tiempo- Tiene la misma finalidad que el mensaje la diferencia es que con eacutel se representa un atributo de tiempo

5 Mensaje asiacutencrono Es un mensaje que ocurre en el tiempo de manera independiente a otros mensajes

6 Mensaje de destruccioacuten de objeto- Es un mensaje cuya finalidad es indicar la destruccioacuten del objeto destino

7 Mensaje de creacioacuten de objeto- Es un mensaje que indica la creacioacuten de un objeto

8 Llamada al mismo objeto (Recursividad)- Es usado para modelar llamadas recursivas en el que una operacioacuten es invocada por el mismo objeto

37

Desarrollo de la herramienta

9 Destruccioacuten del objeto (AutodestrucciOacuten)- Puede o no modelarse es representada con una X al final de la liacutenea de vida del objeto

Elementos aulomaacuteticos

1 Liacutenea de Vida- Representa la vida del objeto durante la interaccioacuten

2 Activacioacuten- Muestra el periacuteodo de tiempo en el cual el objeto alguna operacioacuten

341RepresentaciOacuten visual

Representacioacuten visual de los elementos atoacutemicos del lenguaje

Actor

_- A

Mensaje

Mensaje de Creacioacuten de

Objeto

ClaseObjeto

I

Mensaje de retorno

Mensaje de Destruccioacuten de

Objeto

abla 32 Element(

Activacioacuten

Mensaje con tiempo

Autodestruccioacuten

x

atoacutemicos del lengi

taacute realizz

Texto ===I (letra)+ (letra I

numero) letra= AZ I az numero = 09

I

Recursividad ~

I

i j e

io

38

u

Comentario

iexcl

Conector de Comentario

35 Gramaacutetica desarrollada

La gramaacutetica que se propone es una gramaacutetica visual del tipo relacional Una gramaacutetica relacional pertenece a las gramaacuteticas libres de contexto es una 6-iupla G (N C S R Attr P) donde

N es un conjunto finito de siacutembolos no terminales C es un conjunto de siacutembolos terminales S es un siacutembolo distinguido en N llamado siacutembolo inicial R es un conjunto finito de siacutembolos de relacioacuten Attr es un conjunto finito de siacutembolos de atributos P es un conjunto de producciones

Entonces definiendo nuestra gramaacutetica G (N C S R Attr P)

N = Diagrama GrupoClaseObjeto

S = Diagrama

R = mensaje mensajeTiempo mensajeRetomo mensajeAsincrono mensajecrea mensajeDestruye autodestruccioacuten recursividad

R

Attr = entrada salida entradacrea

39

Desarrollo de la herramienta

Definiendo la posicioacuten de los atributos en los elementos visuales

entradacrea ObetaClase

entrada

salida

P =

Diagrama I GrupoClaseObjeto (mensaje (mensajeRetorno

(salida 1) (entrada 2) ) (salida 2) (entrada 1) )

- Diagrama 0 GrupoClaseObjeto

(mensaje (mensaje (mensajeRetomo (mensajeRetomo (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entradacrea 2) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 1) ) (salida 1) (entrada 1) )

entrada

salida

40

Desarrollo de la herramienta

s

-

GrupoClaseObjeto - 1 1 I 2 (mensaje (mensaje (mensajeRetorno (mensajeRetorno (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entradacrea 2) ) (salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 1) ) (salida I ) (entrada I ) )

1 En las gramaacuteticas relacionales una produccioacuten estaacute acompantildeada de las posibles

relaciones que puedan generarse En la primera produccioacuten Diagrama produce a un Actor seguida de un GrupoClaseObjeto el Actor inicia la interaccioacuten con un mensaje y recibe el mensaje de retorno al finalizar la interaccioacuten La segunda y tercera produccioacuten son similares debido a que un GrupoClaseObjeto contiene dos ClaseObjeto que se relacionan de la misma forma

Existe un elemento de la gramaacutetica llamado Attr (Atributo) el cual define la parte de los elementos visuales donde se establecen las relaciones Se han determinado dos atributos (entrada y salida) que para nuestro propoacutesito estaraacuten establecidos en la liacutenea de vida de cada elemento visual (Actor y ClaseObjeto)

Los Comentarios y la Activacioacuten no se consideran en la gramaacutetica Los comentarios son libres de incluirse y relacionarse con cualquier elemento y relacioacuten mencionada anteriormente y la activacioacuten existe siempre que se presente un mensaje (o podriacutea omitirse) Estas consideraciones se realizaron para hacer auacuten maacutes faacutecil la gramaacutetica ya que si se trata de realizar un sistema las restricciones de estos elementos pueden mantenerse en el lenguaje de programacioacuten en el que se desarrolle el sistema

36

Precondiciones

El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias

1 El diagrama de Clases debe existir y estar completo 2 Debe existir un archivo con un diagrama de Warnier por cada diagrama de Clases y

con el mismo nombre de archivo (excepto la extensioacuten del archivo) 3 En el uacutenico diagrama de Warnier de cada Clase se deben modelar todos los meacutetodos

de la Clase 4 No realizar declaraciones de meacutetodos

41

Desarrollo de la herramienta

5 Debe existir un meacutetodo lsquomain()rsquo en el diagrama de Clases

Restricciones

Los meacutetodos deben mantener nombres distintos en las diferentes Clases

Metodologiacutea para la obtencioacuten automaacutetica de los Diagramas de Secuencias

1 Seleccionar el diagrama de Clases

2 Se construye una lista con los nombres de las Clases y los Meacutetodos

3 Se verifica si exista el meacutetodo lsquomain()rsquo en alguna Clase Se busca la existencia de una uacutenica Clase

a La Clase que contenga lsquomain()rsquo se va al inicio de la lista de Clases

b Si no existe lsquomain()rsquo SE TERMINA EL PROCESO

4 Se verifica la existencia de los archivos que contienen el Disentildeo Detallado de los meacutetodos en Wamier para cada una de las Clases si alguno falta SE TERMINA EL PROCESO

5 Se procesa cada uno de los modelos del Disentildeo Detallado de los Meacutetodos generando una lista de secuencias de llamadas por cada uno de los meacutetodos

6 Se verifica que cada llamada corresponda a alguacuten meacutetodo existente (del diagrama de Clases) De no existir ese meacutetodo la llamada entra a una estructura que

7 Se crea una lista de secuencia

a Se inicia con lsquomain()rsquo b Se recorre cada una de las llamadas de los meacutetodos c Se considera invaacutelido el caso de que un meacutetodo intente una llamada

recursiva al meacutetodo lsquomain()rsquo

8 Se muestra un diaacutelogo de resultados en el que se indican las llamadas que no se encnotraron definidas y que pueden ser Llamada a libreriacutea oacute Llamada Erroacutenea

42

Capiacutetulo 4

Prue6as y su6taaacuteos

En eacuteste capiacutetulo se da a conocer el detalle de las pruebas y de los resultados obtenidos Se describen los casos de prueba con los que se realizoacute la evaluacioacuten del sistema asiacute tambieacuten se presentan comentarios acerca de los resultados obtenidos

Pruebas y Resultados

41 Recursos teacutecnicos utilizados

Para llevar a cabo las pruebas al sistema S3C se utilizaron los siguientes equipos de Coacutemputo

Computadora de escritorio

256MB RAM Disco Duro 80G Monitor 17rdquo SAMSUNG

AMD Athlon XP 1600+ I4Ghz

Computadora de escritorio Intel Pentium 4 - 128MB RAM Disco Duro 40G Monitor 15rdquo i -

42 Descripcioacuten del plan de pruebas

Las pruebas establecen el Uacuteltimo paso desde donde es posible evaluar la calidad y descubrir los errores Las pruebas y la validacioacuten del software se utilizan para comprobar que el sistema cumple con las expectativas del usuario

En esta seccioacuten se describen los casos de prueba que se realizaron al prototipo de S3C en conjunto a la suite cenidet-UML Para cada uno de los casos se presenta el objetivo el procedimiento que se siguioacute para la prueba y se muestran los resultados obtenidos - _

Las pruebas a realizar son los siguientes

Caso 1 Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Caso 2 Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Wamier

Caso3 Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Wamier

Caso4 Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo 5

44

Pruebas y Resultados

43 Resultados

431 Caso 1

5 Y

IZ =

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoSirdquo 4 Seleccionar el archivo ldquoVENTASrdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 41 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

s3c iuevo Proyecto SCUM1

Diagrama de clases

lvendedor I L

3

salida

venta prod

4 venia-oferta vcntaprod =

salida 6

Figura 41 Resultado del caso de prueba 1

45

Pruebas y Resultados

432 Caso 2

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Warnier (almacenwar cajawar vendedorwar) que ya cxisten (del caso de prueba I )

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoNordquo 4 Agregar las siguientes Clases con los respectivos meacutetodos y atributos

a Claseldquovendedorrdquo Meacutetodos ldquoventa mainrdquo b Claseldquoalmacenrdquo Meacutetodos ldquoentrada salidardquo c Claseldquocajardquo Meacutetodos ldquoventagrodrdquo

5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 42 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

Diagrama de daseo lisgrama dcsccucncis

MOIDOC Anivo

venta prod

salida

1 Ycrdquo1a 2

I 4 vcrdquolD~o1cn venta prod gt

salida 6 i Figura 42 Resultado del caso de prueba 2

46

Pruebas y Resultados

r

433 Caso 3

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Warnier

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 43 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

5

Error al tratar de abrir el archivo A bZwar

Aceptar i

Faltan Archivos de Disentildeos Detallados de Meacutetodos 1 1 A No se puede crear el diagrama de secuencias

Figura 43 Resultado del caso de prueba 3

47

Pruebas y Resultados

434 Caso 4

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 44 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

lsquo I

~ _ i i _ l _ Repaado ~~ ~ ~ 6~ ampA Figura 44 Resultado del caso de prueba 4

48

Pruebas y Resultados

PRUEBA DESCNPCION CASO 1 Mostrar la funcionalidad del

Sistema S3C a partir de un

44 Anaacutelisis de Resultados

RESULTADOS Se comproboacute la correcta funcionalidad del Sistema S3C a partir de un diagrama

CASO 3

CASO4

I diagrama de Clases cxistcnte I de Clases existente CASO 2 I Mostrar la funcionalidad del I Sc comproboacute la corrccta funcionalidad

Sistema S3C a partir de un del Sistema S3C a partir de un diagrama diagrama de Clases que se de Clases que se construye al momento construye al momento Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el Secuencias si falta alguno de los diagrama de Secuencia si falta alguno diagramas de Warnier Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el secuencias si hace falta el meacutetodo diagrama de Secuencias al faltar el ldquomain ()rdquo meacutetodo ldquomain()rdquo

de los diagramas de Warnier

Los resultados obtenidos de cada uno de los casos establecidos demuestran que se validoacute la funcionalidad del prototipo con los requisitos definidos en el alcance de este proyecto

a lt

49

Conclusiones y Tru6ajos Futuros

Aquiacute se dan a conocer las conclusiones y se describen los posibles trabajos futuros para la continuacioacuten de eacuteste proyecto

F

51 Conclusiones

Conclusiones y trabajos futuros

Se ha creado un Ambiente Visual que permite obtener de forma automaacutetica los Diagramas de Secuencias en base a los diagramas de Clases y al disentildeo detallado de los meacutetodos descritos con diagramas de Warnier cumpliendo con los objetivos planteados para este trabajo

La tesis aporta principalmente La generacioacuten automaacutetica de los diagramas de secuencias y la eliminacioacuten de inconsistencias al mantener una validacioacuten directa de los diagramas de clases y los diagramas de Warnier que son utilizados

Esta validacioacuten es lograda a traveacutes del uso de la gramaacutetica visual relaciona1 que se ha definido (veacutease el capiacutetulo 3) Esta gramaacutetica visual establece reglas para la correcta construccioacuten de los diagramas de secuencias

P De esta manera se establece que la hipoacutetesis ldquoEs posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodosrdquo Es verdadera

52 Trabajos Futuros

Un Diagrama de Secuencias puede convertirse en un Diagrama de Colaboracioacuten por lo tanto un trabajo futuro es la construccioacuten automaacutetica de un Diagrama de Colaboracioacuten a partir de uno de Secuencias existente

Es posible calcular la meacutetrica de acoplamiento al tener un Diagrama de Secuencias construido

La Ingenieriacutea directa de un Diagrama de Secuencias estableciendo la validacioacuten en la construccioacuten de todos los elementos visuales que UML define

La propagacioacuten de las modificaciones de un Diagrama de Secuencias a los Diagramas de Clases y los Diagramas de Warnier

La modificacioacuten del coacutedigo fuente mediante los cambios establecidos en un Diagrama de Secuencias

51

[ALC03]

[BLA98]

[B0099]

[BOOOi]

[BR097]

[CHA90]

[DAN02]

[GLA02]

[HAC98]

[HER03]

4

Alcate1 Computer Associates International inc Electronic Data Systems Corporation Hewlett-Packard Company IBM Corporation I-Logix IntelliCorp Kabira Technologies Kennedy Carter Microsoft Corporation Object Management Group Oracle Corporation Project Technology Ptech Inc Rational Software Corporation Reich Technologies Softeam Taskon A S Telelogic Unisys Corporation ldquoOMG Unified Modeling Language Specificationrdquo Version 15 Unified Modeling Language 2003

Blaha Michael Rumbaugh James Premerlani William Eddy Frederick Lorensen William ldquoObject-oriented modeling and designrdquo Prentice Hall 484 Paacuteginas ISBN 0-13-629841-9 QA-769-03S-B53-19981998

Booch Grady Rumbaugh James Jacobson Ivar ldquoEl lenguaje unificado de modeladordquo Addison Wesley 432 Paacuteginas ISBN 84-7829-028-1 1999

Booch Grady Rumbaugh James Jacobson Ivar ldquoThe Unified Modeling Language User Guiderdquo Addison Wesley 2001

Brown David ldquoAn introduction to object-oriented analysis objects in plain Englishrdquo John Whiley amp Sons Inc 700 Paginas ISBN 0-471-1 1028-0 QA-769-035-B76-1997 1997

Chang Shi-Kuo ldquoVisual Languages and visual programmingrdquo Plenum Press 340 Paacuteginas ISBN 0-306-43428-8 QA-7665-V57-1990 1990

Daniels John ldquoModeling with a sense of purposerdquo Design - IEEE Software JanuaryEebmary 2002

Glasgow Universidad Reino Unido ldquoA UML Editor in Javardquo (lthttplstudentsdcsglaacuWstudentspainjfproject-reportproject-re port-htmV4thYearReporthtrnlgt 2002)

T Hackos JoAnn C Redish Janice ldquoUser and Task Analysis for Interface Designrdquo Wiley Computer Publishing 488 Paacuteginas ISBN QA-769-U83- H33-1998 1998

Hemaacutendez Velaacutezquez M ldquoIngenieriacutea inversa de coacutedigo fuente en C++ para la obtencioacuten de su disentildeordquo Tesis AT-379 (03-0334) 2003

Conceptos generales

[HIX93]

[JAC93]

[JAC99]

[JOY98]

[LAR97]

[MAR]

[MIC99]

[MIC02]

[MOU98]

Hix Deborah Hartson H Rex ldquoDeveloping user interfacesrdquo 381 Paacuteginas ISBN 0-471-57813-4 QA-769-U83-H59-1993 1993

Jacobson Ivar Christerson Magnus Jonsson Patrik Overgaard Gunnar ldquoObject oriented software engineeringrdquo Addison Wesley ISBN 0-20 1 - 54435-0 QA-7676-D47-J63-1993 1993

Jacobson Ivar Booch Grady Rumbaugh James ldquoEl proceso unificado de desarrollo de softwarerdquo Addison Wesley 438 Paacuteginas ISBN 84-7829-036- 2 1999

Joyanes Aguilar Luis ldquoProgramacioacuten orientada a objetosrdquo McGruw Hill ISBN 84-481-0590-7 1998

Larman Craig ldquoAplying UML and Patternsrdquo Prentice Hull 507 Paacuteginas ISBN 0-13-748880-7 QA-769-035-L37-1997 1997

Marriot Kim Meyer Bemd ldquoVisual Language Theoryrdquo Springer 381 Paacuteginas P-935-V567-1998 1998

Microsoft ldquoMicrosoft Visual C++ 6 manual del programadorrdquo McGraw Hill ISBN 84-481-2127-9 QA-7673-Cl53-23718-1999 1999

Microsoft ldquoVisiordquo (lthttpwwwmicrosoftcomofficevisiogt 2002)

B Mourao Luis X ldquoUniversal Modeling Language Part 11 UML Notation - Case Sequence and Collaboration Diagramsrdquo Lan Times Magazine (~httpwwwlantimescomltpartsdiscussdiscuss6Ohtm~) 1998

No Magic ldquoMagicDrawrdquo (lthttpwwwmagicdrawcomgt 2002)

Object Insight ldquoJvisionrdquo (lthttpwwwobject-insightcomgt 2002)

Rational Software Microsoft I Hewlett-Packard Oracle Sterling Software MCI Systemhouse Unisys ICON Computing IntelliCorp i-Logix IBM ObjectTime Platinum Technology Ptech Taskon Reich Technologies Sofieam ldquoUML Summaryrdquo Version 11 Unified Modeling Language 1997

Rational ldquoRational Roserdquo (lthttpwwwrationalcomproductosrosegt 2002)

Rikki Kirzner ldquoAnalysis Modeling and Design Tools Market Forecast and Analysis 2001-2005rdquo Bulletin Published Under Services Application Design and Construction Tools Application Development and Deployment Strategies Documento Nuacutemero 24809 Junio 2001

53

Conceptos generales

[RIM92] Rimrner Steve ldquoGraphical user interface programmingrdquo 423 Paacuteginas

1992

Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language reference manualrdquo Addison Wesley 550 Paacuteginas ISBN 0-201-

ISBN 0-8306-2475-9 ISBN 0-8306-2472-4 (pbk) QA-769-083-R55G

[RUM99]

30998-X QA-7676-D47-R85-1999 1999

[RUM299] Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language user guiderdquo Addisoiz Wesley 482 Paacuteginas ISBN 0-201 -57 168-4 QA-7676-D47-B66-1999 1999

[SMA02] SmartDraw ldquoSmartDrawrdquo (lthttpwwwsmartdrawcomgt 2002)

[SHU88] 9 - Shu Nun C ldquoVisual Programmingrdquo Van Nostrand Reinhold ISBN 0-422- 28014-9 ISBN 0-422-01 164-4 QA-7665-S55 1988

[THI90] Thimbleby Harold ldquoUser Interface Designrdquo Acm press 470 Paacuteginas ISBN 0-201 -41 61 8-2 QA-769U83-T772~- 1990 1990

[WENO2] Wences Diaz MF ldquoModelo de Ingenieriacutea Inversa para la obtencioacuten de disentildeo detallado basado en LEVISSrdquo Tesis (02-0014) 2002

54

Anexo A

Conampuracioacuten de Microsoft Vkua[C++ 6 O

Este anexo indica las configuraciones que se utilizaron para la compilacioacuten de SCUML y s3c

Configuracioacuten de Microsoft Visual c++ 60

Debido a la integracioacuten de los proyectos de InverSOODA e InverDDVi con S3C se cumplioacute con los requisitos previos de ambos proyectos

El compilador usado en el proyecto fue el Microsoft Visual C++ 60

Para el cumplimiento con la funcionalidad de InverSOODA se instaloacute el ANTLR la versioacuten 271 Se descargoacute del sitio l i l l ~ ~ ~ ~ ~ ~ t l ~ l ~ - ~ t - ~ la versioacuten mencionada en un archivo comprimido (en formato zip) Se colocoacute el paquete descomprimido en el directorio ldquoDIANTLR-271 I rdquo

Recomiendo ampliamente que el directorio principal de ANTLR se copie en el directorio raiacutez de cualquier unidad de disco debido a que experimenteacute problemas de compilacioacuten cuando ANTLR no se encontraba en el directorio raiacutez

Io015

Source Browser AlttF12 I u c Ersquo V I

Visual Component Mgnager

- - ~ ~ ~ ~~

P2 Registrar control

A Contenedor de prueba de controles ActiveX

A Usor de objetos OLE y COM

Buacutesqueda de errores

A Y++ MFC Iracer

Customize options

~ - q- ~ Macro

Eecord Quick Macro Cbl+ShiR+R Pay Quick Macro Ctrl+ShiR+P

En el menuacute Tools (Herramientas) seleccione el sub-menuacute Options ltopcionesgt

56

Configuracioacuten de Microsoft Visual C++ 60

En la siguiente ventana de diaacutelogo debe agregar la direccioacuten en donde se encuentra el ANTLR

Agregar la ruta del directorio de ANTLR hasta el subdirectorio

libcpp

Editor I Tabs I Debug I Compatibility 1 Build Dneclolies I a I Chow directories for - Platfolm -

- Directories I x ) 4 jWin32 -] llnclude files

m cancd I

57

Configuracioacuten de Microsoft Visual C t+ 60

Se ha creado una libreriacutea (anrlrliblib) de ANTLR la cual ya estaacute situada en el directorio del proyecto SCUML (ISCUML) y no debe ser movida o eliminada

I

Geneial 1 Debug I CC++ Link I Category

Output file name bebugSCUMLexe

Objectljibrary modules 4 anllrliblib

li Generate debug lnfo r Ignore all defaull lbaries D ~ i n k j n ~ ~ ~ t a n ~ r ~ e n e r ~ ~ ~ mapfile

r Enable psafilrng

Proiec1 Ootionn

pq Cancel 1 Libreriacutea de ANTLR que debe existir 1 I para que se compile correctamente

58

Anexo B

~ u iacute aacute raacutepida de uso deC Sistema S3C

5 Este anexo indica de forma raacutepida la manera de utilizar S3C para crear un diagrama de secuencias de forma automaacutetica

Guiacutea Raacutepida de uso del Sistema S3C i

Para indicar la creacioacuten de un diagrama de secuencias en forma automaacutetica se debe ir a la barra del costado izquierdo y presionar ldquoNuevo Proyecto SCUMLrdquo

I s3c I ~ Nuevo Proyecto SCUML ~ _ _ - I Diagrama de clases ~ Diagrama de secuencias 1 MDI DOC Activo

-

Apareceraacute un documento llamado ldquoSCUMLV en donde el simbolo corresponde a un numero consecutivo iniciando desde 1 (uno)

$ e Despueacutes se presiona ldquoDiagrama de clasesrdquo Habraacute que para indicarle al sistema si se requiere abrir un diagrama de clases existente o realizar uno nuevo

i

iquestAbrir un documento existente

No Cardquo~ear

AI presionar ldquoSirdquo se debe indicar cual es el archivo del diagrama de Clases en el cuadro de diaacutelogo siguiente

~~ - 11dMis documentos rsquo 2 M i P C i lsquo h s sitios de red

I

AI presionar ldquoNordquo en ldquoAbrir un documento existenterdquo se nos mostraraacute un documento vacio para crear un diagrama de clases

60

Guiacutea Raacutepida de uso del Sistema S3C

Para ambas opciones se requiere que los diagramas de Wamier ya se encuentren construidos Y para continuar el proccso se selecciona el documento ldquoSCUMLVrsquo creado al inicio y despueacutes presionar el botoacuten nombrado ldquoDiagrama de secuenciasrdquo localizado en la barra de hcrraiiiicntas del costado izquierdo

Ha iniciado el proceso de construccioacuten del diagrama de secuencias Si no existen errores al terminar el proceso se le mostraraacute un cuadro de diaacutelogo llamado ldquoResultadosrdquo en donde le mostraraacute las llamadas de las que no localizoacute su definicioacuten

- - -

Cancel 1 D e las siguientes llamadas es posible que esten mal escritas o peitenezcan a la libreiia del Lenguaie Verifique ya que no se encontraron sus definiciones

A continuacioacuten se mencionan los posibles errores que finalizan el proceso de la creacioacuten automaacutetica de los diagramas de secuencias en S3C

Cuando no exista un meacutetodo lsquomainrsquo definido en el diagrama de clases

No se encontro el meacutetodo lsquomain()rsquo que inicie la secuencia I A No se puede crear el diagrama de secuencias

p==amp=q

61

Guia Raacutepida de uso del Sistema S3C

Cuando se definan niultiples metodos lsquoinainrsquo en el diagrama de clases

Multiples meacutetodos lsquomainOlsquo Imposible decidir el inicio de secuencia

Aceptar i

Si un meacutetodo definido en Wamier realiza una llamada a lsquomainrsquo se cancelara el proceso

Llamada NO VALIDA al meacutetodo principal main

(iAcp-j(

4 i

CI Y rdquoldquoldquoI i 11 1-T

IZNTRO Gt INFORMACION

62

  • Tabla de Contenido
  • Listado de Figuras
  • Listado de Tablas
  • Notacioacuten
  • Introduccioacuten
  • Capitulo 1 Conceptos Generales
    • 11 Antecedentes
    • 12 Trabajos relacionados
      • 121 Tabla comparativa
        • 13 Definicioacuten del problema
        • 14 Objetivo de la Tesis
          • Objetivos especiacuteficos de la tesis
            • 15 Hipoacutetesis de investigacioacuten
            • 16 Alcances y limitaciones del trabajo de tesis
              • Capitulo 2 Marco Teoacuterico
                • 21 Modelado de sistemas de software
                • 22 Interfaz de usuario (Mecanismos de interaccioacuten)
                • 23 Lenguajes Visuales
                • 24 Programacioacuten orientada a objetos
                • 25 Lenguaje de Modelado Unificado (UML)
                  • Desarrollo de la herramienta
                    • 31 Disentildeo de la Arquitectura
                      • 311 Requisitos (Diagrama de Casos de uso)
                        • 312Modelo Conceptual
                        • 313Diagramas de clases
                        • 32 Elementos de la arquitectura
                          • 321 Microsoft Foundation Class (MFC)
                            • 322Arquitectura Documento Vista
                            • 323Integrando Ambientes en Visual c++
                              • 324 Interfaz de Muacuteltiples Documentos (MDI)
                                • 325Recursos Diaacutelogos Menus y Barras de Herramientas
                                  • 326 Notacioacuten estaacutendar
                                  • 327 Estructura de datos persistencia y recuperacioacuten
                                    • 328Patrones de disentildeo utilizados
                                      • 33 Diagrama de secuencias
                                        • 331Ciclo de vida del software
                                          • 34 Elementos atoacutemicos de la Gramaacutetica
                                            • 341 Representacioacuten visual
                                              • 35 Gramaacutetica desarrollada
                                              • 36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias
                                                  • Capitulo 4 Pruebas y Resultados
                                                    • 41 Recursos teacutecnicos utilizados
                                                    • 42 Descripcioacuten del plan de pruebas
                                                    • 43 Resultados
                                                      • 431 Caso
                                                      • 432 Caso2
                                                      • 433 Caso
                                                          • Conclusiones y trabajos futuros
                                                            • Trabajos futuros
                                                            • Referencias
                                                            • Anexo A Configuracioacuten de Microsoft Visual C+t
                                                              • Figura 11 - Arquitectura de la suite cenidet-UML
                                                              • Figura 21 -Programacioacuten Visual
                                                              • Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de
                                                              • Figura 32 -Diagrama de Casos de Uso para el S3C
                                                              • Figura 33 -Modelo Conceptual
                                                              • Figura 34 - Diagrama de Clases -Control del Diagrama -
                                                              • Figura 35 - Diagrama de Clases - Patroacuten Visitor -
                                                              • Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento
                                                              • Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)
                                                              • Figura 38 -Dialogo Caracteriacutesticas del Objeto
                                                              • Figura 39 -Dialogo Mensaje
                                                              • Figura 3 IO - Menuacute de los Diagramas de Secuencias (estaacutendar)
                                                              • Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias
                                                              • Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)
                                                              • Figura 313 - Serializacioacuten
                                                              • Figura 314 -Modelo de cascada del ciclo de vida del software
                                                              • Figura 41 - Resultado del caso de prueba
                                                              • Figura 42 -Resultado del caso de prueba
                                                              • Figura 43 -Resultado del caso de prueba
                                                              • Figura 44 -Resultado del caso de prueba
                                                              • Tabla 11 - Tabla comparativa
                                                              • Tabla 31 -Prefijos estaacutendar de identificadores
                                                              • Tabla 32 -Elementos atoacutemicos del lenguaje
                                                              • Tabla 41 - Resumen de los resultados de las pruebas realizadas

Desarrollo de la herramienta

n 32 Elementos de la arquitectura

Es necesario describir los elementos que dan soporte a la arquitectura del ambiente donde se implementaraacute el sistema en este caso Microsoft Visual (MV) C++ 6 El MV C++ es un marco de aplicacioacuten poderoso basado en Windows se integran ademaacutes del lenguaje C++ (compilador y enlazador) el programa de desarrollo de programas en lenguaje C para Windows (SDK) la Microsoft Foundation Class Library AppWizzard Classwizard AppStudio y WorkBencli

La Microsoft Foundation Class Library comprende una biblioteca de clases de C++ y es considerada como el nuacutecleo del MV C++

321Microsoft Foundation Class (MFC)

La libreriacutea Microsoft Foundation Class (MFC) es una interfaz orientada a objetos que tiene las siguientes metas de disentildeo

o

Reduccioacuten significante de esfuerzo al escribir una aplicacioacuten para Windows Velocidad de ejecucioacuten comparable a las APIrsquos del lenguaje C Miacutenimo tamantildeo de coacutedigo Capacidad para llamar cualquier funcioacuten de Windows en C directamente Faacutecil conversioacuten de aplicaciones existentes en C a C++ Faacutecil uso de APIrsquos de Windows con C++ como con C Faacutecil uso de complicadas caracteriacutesticas de abstracciones poderosas como ActiveX soporte para base de datos impresioacuten barras de herramientas y barras de estado El API de Windows en C++ si usa tan efectivamente como las caracteriacutesticas mismas del lenguaje C++

La mayoriacutea de las clases de la Libreriacutea de la Microsoft Foundation Class son derivadas de una clase base ltCObjectgt que es la raiacutez de la jerarquiacutea de clases ltCObjectgt da uacutetiles capacidades a las clases que derivan de ella

La jerarquiacutea que existe en las clases derivadas de ltCObjectgt es la siguiente

Arquitectura de Aplicacioacuten Excepciones Servicios de Archivos Arreglos Listas Mapas Servicios de Internet Sockets Sincronizacioacuten Soporte para base de datos D A 0

27

Desarrollo de la herramienta

i

r

Liacutenea de Comandos Menuacute Dibujo Graacutefico Dibujo Graacutefico de Objetos Soporte de Control Soporte de Ventanas

Soporte para base de datos ODBC

o Marco de Ventanas o Barras de control o Hojas de propiedades o Cajas de Dialogo o Vistas o Controles

322Arquitectura Documento Vista

Por defecto las aplicaciones creadas con la MFC usan un modelo de aplicacioacuten que separa los datos del programa de las vistas de interaccioacuten con el usuario En eacuteste modelo un objeto documento de MFC lee y escribe datos en un almacenamiento persistente Un objeto vista administra el despliegue de datos suministrando al usuario los datos para ser seleccionados o editados La vista le comunica al documento cualquier cambio en los datos La razoacuten maacutes conveniente para seguir este modelo es cuando se necesita muacuteltiples vistas del mismo documento (como en una hoja de caacutelculo y un graacutefico)

La arquitectura documentovista hace faacutecil el soporte de muacuteltiples vistas y muacuteltiples tipos de documentos asiacute como la divisioacuten de ventanas y otras caracteriacutesticas de interfaz de usuario Pero el corazoacuten de la arquitectura son cuatro clases (Mostradas en el aacuterbol de clases de la Figura 36)

ltCDocumerrtgt (o ltCOleDocuinentgt) - Se instancia un objeto de este tipo para almacenar y controlar los datos del programa ltCViewgt (o una de sus clases derivadas ltCScrotlViewgt ltCFormViewgt ltCEditView ltCRecordViewgt ltCDaoRecordView ltCtreeViewgt ltCListViewgt b ltCrichEditViewgt) - Un objeto es usado para desplegar los datos y administrar la interaccioacuten del usuario con los datos ltCFrameWndgt (o una de sus variantes) - Establece el marco sobre el que trabajaraacuten una o mas vistas de un documento ltCDocTemolategt (o ltCSingIeDocTemplategt o ltCMultiDocTemplategt) - Coordina la existencia de uno o maacutes documentos de un tipo dado y administra la correcta creacioacuten de los documentos vistas y objetos ventanas para cada tipo

i

28

Desarrollo de la herramienta

______________ 2 Wiew

I - - __ - ------a ________________

323Integrando Ambientes en Visual C t t

Las aplicaciones de Interfaz de Documento Uacutenico (SDI) soporta muacuteltiples tipos de documentos pero este soporte es para un solo objeto documento Debido a esta restriccioacuten y aunado a la necesidad de tener varios objetos documentos a la vez se determina la utilizacioacuten del modelo Interfaz de Muacuteltiples Documentos (MDI) indicado en la Figura 37

324Interfaz de Muacuteltiples Documentos (MDI)

Una aplicacioacuten de Interfaz de Muacuteltiples Documento (MDI) permite la creacioacuten de plantillas para el manejo de los documentos eacutesta plantilla tiene la forma

rn-pDocTemplate = new CMultiDocTernplate ( I DR-SCUMLTY PE RUNTIME-CLASS (CSCUMLDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CTheView))

AddDocTernplate ( rn-pDocTemplate )

Cada plantilla describe una relacion del tipo de documento con la vista asociada La definicioacuten de la plantilla para el ambiente que controla los diagramas de secuencias es la siguiente

29

Desarrollo de la herramienta c

m-pTernplateSeqDlag = new CMultiDocTernplate ( IDR-DS-SJCTYPE RUNTIME-CLASS (CSeqDiagDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CSeqDiagView) )

AddDocTernplate( rn-pTernplateSeqDiag )

Esta plantilla hace uso de la clase CCliildFrame que por defecto el ambiente Visual C++ construye y esto es debido a que no se requieren caracteriacutesticas extras en las ventanas de las que proporciona dicha clasc En un caso en el que se requiriera un comportamiento diferente de la vista tendriacutea que crearse una nueva clase con las caracteriacutesticas deseadas

Vista Documento

Vista

I- Vista Documento I [ Tip- F Vista

L Figura 37 Modelo Interfaz de Muacuteltiples Documentos (MDI)

Para integrar otro Ambiente que utilice otro tipo de documento es necesario definir otra plantilla de la misma forma mencionada Debe tomarse en cuenta los siguientes puntos

Es necesario definir el nombre (mqTemplateNOMBRE) El IDR del tipo que se requiere que sea el documento En la primera liacutenea RUNTIME CLASS debe indicar la clase ltCDocumentgt que desea La segunda liacutenea RUNTIME-CLASS soacutelo la cambia a otra clase si requiere de otro manipulador de ventanas de lo contrario deje que ltCChildFramegt se haga cargo

-

30

Desarrollo de la herramienta

En la uacuteltima liacutenea referente a RUNTIME-CLASS se debe indicar la clase ltCViewgt que desea usar Para finalizar se usa la instruccioacuten AddDocTernplate para finalizar la definicioacuten del template (mgTemplateNOMBRE)

325 Recursos Diaacutelogos Mertuacutes y Barras de Herrattriertias

Son varios los recursos con los que se puede contar al crear un proyecto en Microsoft Visual C++ Los diaacutelogos son un recurso disponible que son utilizados para visualizar ingresar yo modificar informacioacuten que se requiera En el Ambiente Visual que se desarrolla son varios los diaacutelogos que se utilizaraacuten y eacutestos se describen a continuacioacuten

El Diaacutelogo ldquoCaracteriacutesticas del Obietordquo (Figura 38) identifica el nombre del Objeto y la descripcioacuten del mismo Este diaacutelogo se muestra cuando se presiona doble clic sobre un objeto del diagrama

I Nombre

Desciipcion

Figura 38 Dialogo Caracteriacutesticas del Objeto

El Diaacutelogo ldquoMensaierdquo (Figura 39) muestra el nombre del mensaje que puede ser modificado ademaacutes se visualizan el Identificador del Mensaje el tipo de Mensaje asiacute tambieacuten el origen y destino del mensaje

31

Desarrollo de la herramienta

Nornbie delMensaje Edit

IDentificador del Mensaje Edil Tipo de Mensaje (Edil

Edit Objeto Origen

Objeto Destino IEdit

i25El A Figura 39 Dialogo Mensaje

El menuacute es otro de los recursos del que se puede disponer para organizar el ambiente que se estaacute creando Para eacuteste caso en particular no se hizo modificaciones al menuacute estaacutendar (Figura 310) que Visual C++ presenta Los cambios significativos son el manejo del tipo de documento para los Diagramas de Secuencias

Archivo Editar Yer VenLana AyGda

Figura 310 Menuacute de los Diagramas de Secuencias (estaacutendar)

Otro importante recurso del que uno se puede valer en Visual C++ es la barra de herramienta personalizada la cuaacutel es construida en el Editor de Recursos Se ha construido una barra (Figura 311) con los elementos graacuteficos de los Diagramas de Secuencia de UML

Figura 311 Barra de Herramientas de los Diagramas de Secuencias

Es recomendable que al utilizar barras de herramienta personalizada se defina en el tamantildeo estaacutendar ya que puede experimentar problemas al momento de ejecutar la aplicacioacuten

Ademaacutes puede usar la propiedad TBBS-CHECKGROUP en una barra de herramientas para establecer que los botones puedan quedar presionados hasta que un botoacuten diferente sea presionado No olvide que la numeracioacuten inicia con cero ( O )

vuriableToolBurSetButtonStyle(OTBBSCHECKGROUP)

32

Desarrollo de la herramienta

Prefijo ID IDC IDD IDP IDR IDS

326 Notacioacuten estaacutendar

Los nombres descriptivos de los recursos se asocian a un valor uacutenico Para una mayor claridad eacutestos nombres mantienen un prefijo que describe el tipo de recurso asociado (vea la Tabla 31) [MIC99]

Tipo de Recurso Comandos de Menuacute Controles y recursos Cuadros de diaacutelogo Cadenas de solicitud para cuadros de mensaje Menuacute principal barras de herramienta tabla aceleradora y el icono Cadenas

IDR IDD IDC ID

200 - 299 3000 - 3999 34000 - 34999

Estos son los rangos de valores establecidos para el proyecto S3C Si se utiliza el coacutedigo fuente y se planea agregar otro proyecto verifisue que no se invadan estos nuacutemeros para evitar problemas

Para facilitar auacuten maacutes los trabajos futuros se ha definido una estructura de carpetas (ver Figura 312) para incluir en cada una las Clases correspondientes a cada tesis en desarrollo

33

Desarrollo de la herramienta

ill ~~ -

-I SCUML classes + U A N T L R + U App + 0 ClassDiagrams + 0 Common + a Java

t $2 SequenceDiagiams

+ WarnierDiagrams

iJ PackageDiagrams

12 StaterChartDiagrams

+

- f Classview I Resourceview 1 FileView ]

~ ~

Figura 312 Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)

327Estructura de datos persistencia y recuperacioacuten

Existe una gran cantidad de tipos de datos estructuras clases y meacutetodos de los que se puede hacer uso para una mejor y maacutes faacutecil obtencioacuten de los resultados A continuacioacuten hago comentarios en tipos de datos y meacutetodos en los que podriacutea tener problemas

CTypedPtrList

AI usar este tipo de dato o alguno relacionado que le permita utilizar el meacutetodo ltCTvrgtedPtrListGetNextgt tenga especial precaucioacuten al usarlo ya que al devolver el valor requerido la variable POSITION usada no se queda apuntando a ese valor en particular salta al inmediato siguiente de la lista

Si se realiza una creacioacuten dinaacutemica con punteros para los elementos de una CTypedPtrList Despueacutes de haberlo agregado a la lista evite el delete para borrar esta Usted deseando liberar la memoria no lo haga ya que eliminara directamente el elemento de la lista

POSITION

Es un valor usado para denotar una posicioacuten de un elemento en una coleccioacuten Pero CUIDADO no se refiere a un iacutendice es una referencia (no consecutiva) de punteros muy diferente a un iacutendice

CString

Auacuten cuando el operador de comparacioacuten == (igual a) es permitido para ser utilizado en las cadenas evite su uso ya que en ocasiones aunque cuando la e

34

Desarrollo de la herramienta

compilacioacuten no indique error alguno en la ejecucioacuten no realizaraacute lo que se necesita Recomiendo que utilice CStringCompare ()

Para eliminar el contenido de un CString utilice CStringEmpty() ya que asignar a la cadena un ldquonrdquo podriacutea causarle problemas

Serializacioacuten

Una forma en que se puede guardar informacioacuten y recuperarla de manera eficaz es mediante la serializacioacuten de objetos La serializacioacuten es un proceso que permite escribir un objeto en un archivo y tambieacuten leerlo

Para que la serializacioacuten se lleve a cabo son necesarios tres objetos un objeto de tipo ltCFilegt que represente el archivo un objeto de tipo ltCArchivegt que ofrece el entorno para la serializacioacuten y la clase del objeto a ser serializado debe ser heredada de ltCObjectgt y sobrescribir el meacutetodo ltSerializegt para que se encuentre de tal forma en que pueda ser serializado (vea la Figura 313)

Objeto a ser serializado 1

1 CArchive

[f --=I- ---7 Archivoexi

u Figura 313 Serializacioacuten

328Patrones de disentildeo utilizados

Se ha planteado la definicioacuten de una arquitectura de clases utilizando patrones de disentildeo debido a que algunos de ellos hacen maacutes faacutecil la extensioacuten de la funcionalidad y mantenimiento

35

Desarrollo de la herramienta

El patroacuten Composite es utilizado para crear de manera uniforme el diagrama sobre el que se trabaja (ver Figura 34) manteniendo una jerarquiacutea de clases uniforme las clases maacutes bajas en la jerarquiacutea definen primitivas de objetos graacuteficos

Se aplica el patroacuten de disentildeo Iterator para hacer recorridos en listas de objetos para realizar diversas operaciones Otro patroacuten de disentildeo del que se hace uso es el Visilor (ver Figura 35)

Para otras actividades que se realizan podriacutea pensarse en que se deberiacutean aplicar otros patrones pero se han evitado algunos (como el patroacuten de disentildeo Builder) para evitar incrementar la complejidad en la arquitectura ya que ai mantener el modelo de la MFC de documentovista la funcionalidad del patroacuten de disentildeo Builder es faacutecilmente reemplazado si se hiciera Uso de eacuteste se aumentariacutea la complejidad excesivamente (nos llevariacutea a perdemos en ocasiones en el paso de mensajes entre clases) dantildeando la facilidad de la arquitectura

33 Diagrama de secuencias

Un Diagrama de Secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten escenario Oacute comportamiento se usan para definir el curso loacutegico de accioacuten de un posible camino a seguir en la resolucioacuten de un problema Seguacuten John Daniels [DANO2] ldquoel principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildean las interacciones de los objetosrdquo

Los Diagramas de Secuencias se utilizan en el modelado de la implementacioacuten de sistemas de software ademaacutes son aplicables en el modelado de requisitos para establecer las comunicaciones existentes entre actores yo clases del sistema Con eacutestos diagramas se logran hacer descripciones de los escenarios y los comportamientos del sistema Con los Diagramas de Secuencias es posible definir protocolos de comunicacioacuten con paso de mensajes ya que dan esa flexibilidad que se requiere Ademaacutes los Diagramas de Secuencias contienen informacioacuten suficiente para que puedan ser transformados a los diagramas de colaboracioacuten [RUM Ol][BOO Oil

331Ciclo de vida del software

Considerando cualquier modelo de ciclo de vida del software (en la figura 314 se muestra el Modelo de cascada) el aacutembito directo de eacuteste Ambiente Visual es en el disentildeo aunque tiene sus vertientes en la codificacioacuten y mantenimiento

36

Desarrollo de la herramienta

Diseno

Codificacibn

I I I I Mantenimiento I

igura 314 Modelo de cascada del ciclo de vida del software

34 Elementos atoacutemicos de la Gramaacutetica

Definicioacuten de los elementos atoacutemicos del lenguaje y su contenido

1 Actor- Representa roles de entidad externos al sistema con el que interactuacutea directamente Los actores pueden ser humanos dispositivos u otros sistemas

2 ClaseObjeto- Determina una Clase u Objeto participante en la interaccioacuten

3 Mensaje-Es una comunicacioacuten entre objetos que contiene informacioacuten Eacuteste se representa con la finalidad a que una accioacuten sea llevada a cabo

4 Mensaje con tiempo- Tiene la misma finalidad que el mensaje la diferencia es que con eacutel se representa un atributo de tiempo

5 Mensaje asiacutencrono Es un mensaje que ocurre en el tiempo de manera independiente a otros mensajes

6 Mensaje de destruccioacuten de objeto- Es un mensaje cuya finalidad es indicar la destruccioacuten del objeto destino

7 Mensaje de creacioacuten de objeto- Es un mensaje que indica la creacioacuten de un objeto

8 Llamada al mismo objeto (Recursividad)- Es usado para modelar llamadas recursivas en el que una operacioacuten es invocada por el mismo objeto

37

Desarrollo de la herramienta

9 Destruccioacuten del objeto (AutodestrucciOacuten)- Puede o no modelarse es representada con una X al final de la liacutenea de vida del objeto

Elementos aulomaacuteticos

1 Liacutenea de Vida- Representa la vida del objeto durante la interaccioacuten

2 Activacioacuten- Muestra el periacuteodo de tiempo en el cual el objeto alguna operacioacuten

341RepresentaciOacuten visual

Representacioacuten visual de los elementos atoacutemicos del lenguaje

Actor

_- A

Mensaje

Mensaje de Creacioacuten de

Objeto

ClaseObjeto

I

Mensaje de retorno

Mensaje de Destruccioacuten de

Objeto

abla 32 Element(

Activacioacuten

Mensaje con tiempo

Autodestruccioacuten

x

atoacutemicos del lengi

taacute realizz

Texto ===I (letra)+ (letra I

numero) letra= AZ I az numero = 09

I

Recursividad ~

I

i j e

io

38

u

Comentario

iexcl

Conector de Comentario

35 Gramaacutetica desarrollada

La gramaacutetica que se propone es una gramaacutetica visual del tipo relacional Una gramaacutetica relacional pertenece a las gramaacuteticas libres de contexto es una 6-iupla G (N C S R Attr P) donde

N es un conjunto finito de siacutembolos no terminales C es un conjunto de siacutembolos terminales S es un siacutembolo distinguido en N llamado siacutembolo inicial R es un conjunto finito de siacutembolos de relacioacuten Attr es un conjunto finito de siacutembolos de atributos P es un conjunto de producciones

Entonces definiendo nuestra gramaacutetica G (N C S R Attr P)

N = Diagrama GrupoClaseObjeto

S = Diagrama

R = mensaje mensajeTiempo mensajeRetomo mensajeAsincrono mensajecrea mensajeDestruye autodestruccioacuten recursividad

R

Attr = entrada salida entradacrea

39

Desarrollo de la herramienta

Definiendo la posicioacuten de los atributos en los elementos visuales

entradacrea ObetaClase

entrada

salida

P =

Diagrama I GrupoClaseObjeto (mensaje (mensajeRetorno

(salida 1) (entrada 2) ) (salida 2) (entrada 1) )

- Diagrama 0 GrupoClaseObjeto

(mensaje (mensaje (mensajeRetomo (mensajeRetomo (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entradacrea 2) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 1) ) (salida 1) (entrada 1) )

entrada

salida

40

Desarrollo de la herramienta

s

-

GrupoClaseObjeto - 1 1 I 2 (mensaje (mensaje (mensajeRetorno (mensajeRetorno (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entradacrea 2) ) (salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 1) ) (salida I ) (entrada I ) )

1 En las gramaacuteticas relacionales una produccioacuten estaacute acompantildeada de las posibles

relaciones que puedan generarse En la primera produccioacuten Diagrama produce a un Actor seguida de un GrupoClaseObjeto el Actor inicia la interaccioacuten con un mensaje y recibe el mensaje de retorno al finalizar la interaccioacuten La segunda y tercera produccioacuten son similares debido a que un GrupoClaseObjeto contiene dos ClaseObjeto que se relacionan de la misma forma

Existe un elemento de la gramaacutetica llamado Attr (Atributo) el cual define la parte de los elementos visuales donde se establecen las relaciones Se han determinado dos atributos (entrada y salida) que para nuestro propoacutesito estaraacuten establecidos en la liacutenea de vida de cada elemento visual (Actor y ClaseObjeto)

Los Comentarios y la Activacioacuten no se consideran en la gramaacutetica Los comentarios son libres de incluirse y relacionarse con cualquier elemento y relacioacuten mencionada anteriormente y la activacioacuten existe siempre que se presente un mensaje (o podriacutea omitirse) Estas consideraciones se realizaron para hacer auacuten maacutes faacutecil la gramaacutetica ya que si se trata de realizar un sistema las restricciones de estos elementos pueden mantenerse en el lenguaje de programacioacuten en el que se desarrolle el sistema

36

Precondiciones

El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias

1 El diagrama de Clases debe existir y estar completo 2 Debe existir un archivo con un diagrama de Warnier por cada diagrama de Clases y

con el mismo nombre de archivo (excepto la extensioacuten del archivo) 3 En el uacutenico diagrama de Warnier de cada Clase se deben modelar todos los meacutetodos

de la Clase 4 No realizar declaraciones de meacutetodos

41

Desarrollo de la herramienta

5 Debe existir un meacutetodo lsquomain()rsquo en el diagrama de Clases

Restricciones

Los meacutetodos deben mantener nombres distintos en las diferentes Clases

Metodologiacutea para la obtencioacuten automaacutetica de los Diagramas de Secuencias

1 Seleccionar el diagrama de Clases

2 Se construye una lista con los nombres de las Clases y los Meacutetodos

3 Se verifica si exista el meacutetodo lsquomain()rsquo en alguna Clase Se busca la existencia de una uacutenica Clase

a La Clase que contenga lsquomain()rsquo se va al inicio de la lista de Clases

b Si no existe lsquomain()rsquo SE TERMINA EL PROCESO

4 Se verifica la existencia de los archivos que contienen el Disentildeo Detallado de los meacutetodos en Wamier para cada una de las Clases si alguno falta SE TERMINA EL PROCESO

5 Se procesa cada uno de los modelos del Disentildeo Detallado de los Meacutetodos generando una lista de secuencias de llamadas por cada uno de los meacutetodos

6 Se verifica que cada llamada corresponda a alguacuten meacutetodo existente (del diagrama de Clases) De no existir ese meacutetodo la llamada entra a una estructura que

7 Se crea una lista de secuencia

a Se inicia con lsquomain()rsquo b Se recorre cada una de las llamadas de los meacutetodos c Se considera invaacutelido el caso de que un meacutetodo intente una llamada

recursiva al meacutetodo lsquomain()rsquo

8 Se muestra un diaacutelogo de resultados en el que se indican las llamadas que no se encnotraron definidas y que pueden ser Llamada a libreriacutea oacute Llamada Erroacutenea

42

Capiacutetulo 4

Prue6as y su6taaacuteos

En eacuteste capiacutetulo se da a conocer el detalle de las pruebas y de los resultados obtenidos Se describen los casos de prueba con los que se realizoacute la evaluacioacuten del sistema asiacute tambieacuten se presentan comentarios acerca de los resultados obtenidos

Pruebas y Resultados

41 Recursos teacutecnicos utilizados

Para llevar a cabo las pruebas al sistema S3C se utilizaron los siguientes equipos de Coacutemputo

Computadora de escritorio

256MB RAM Disco Duro 80G Monitor 17rdquo SAMSUNG

AMD Athlon XP 1600+ I4Ghz

Computadora de escritorio Intel Pentium 4 - 128MB RAM Disco Duro 40G Monitor 15rdquo i -

42 Descripcioacuten del plan de pruebas

Las pruebas establecen el Uacuteltimo paso desde donde es posible evaluar la calidad y descubrir los errores Las pruebas y la validacioacuten del software se utilizan para comprobar que el sistema cumple con las expectativas del usuario

En esta seccioacuten se describen los casos de prueba que se realizaron al prototipo de S3C en conjunto a la suite cenidet-UML Para cada uno de los casos se presenta el objetivo el procedimiento que se siguioacute para la prueba y se muestran los resultados obtenidos - _

Las pruebas a realizar son los siguientes

Caso 1 Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Caso 2 Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Wamier

Caso3 Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Wamier

Caso4 Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo 5

44

Pruebas y Resultados

43 Resultados

431 Caso 1

5 Y

IZ =

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoSirdquo 4 Seleccionar el archivo ldquoVENTASrdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 41 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

s3c iuevo Proyecto SCUM1

Diagrama de clases

lvendedor I L

3

salida

venta prod

4 venia-oferta vcntaprod =

salida 6

Figura 41 Resultado del caso de prueba 1

45

Pruebas y Resultados

432 Caso 2

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Warnier (almacenwar cajawar vendedorwar) que ya cxisten (del caso de prueba I )

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoNordquo 4 Agregar las siguientes Clases con los respectivos meacutetodos y atributos

a Claseldquovendedorrdquo Meacutetodos ldquoventa mainrdquo b Claseldquoalmacenrdquo Meacutetodos ldquoentrada salidardquo c Claseldquocajardquo Meacutetodos ldquoventagrodrdquo

5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 42 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

Diagrama de daseo lisgrama dcsccucncis

MOIDOC Anivo

venta prod

salida

1 Ycrdquo1a 2

I 4 vcrdquolD~o1cn venta prod gt

salida 6 i Figura 42 Resultado del caso de prueba 2

46

Pruebas y Resultados

r

433 Caso 3

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Warnier

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 43 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

5

Error al tratar de abrir el archivo A bZwar

Aceptar i

Faltan Archivos de Disentildeos Detallados de Meacutetodos 1 1 A No se puede crear el diagrama de secuencias

Figura 43 Resultado del caso de prueba 3

47

Pruebas y Resultados

434 Caso 4

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 44 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

lsquo I

~ _ i i _ l _ Repaado ~~ ~ ~ 6~ ampA Figura 44 Resultado del caso de prueba 4

48

Pruebas y Resultados

PRUEBA DESCNPCION CASO 1 Mostrar la funcionalidad del

Sistema S3C a partir de un

44 Anaacutelisis de Resultados

RESULTADOS Se comproboacute la correcta funcionalidad del Sistema S3C a partir de un diagrama

CASO 3

CASO4

I diagrama de Clases cxistcnte I de Clases existente CASO 2 I Mostrar la funcionalidad del I Sc comproboacute la corrccta funcionalidad

Sistema S3C a partir de un del Sistema S3C a partir de un diagrama diagrama de Clases que se de Clases que se construye al momento construye al momento Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el Secuencias si falta alguno de los diagrama de Secuencia si falta alguno diagramas de Warnier Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el secuencias si hace falta el meacutetodo diagrama de Secuencias al faltar el ldquomain ()rdquo meacutetodo ldquomain()rdquo

de los diagramas de Warnier

Los resultados obtenidos de cada uno de los casos establecidos demuestran que se validoacute la funcionalidad del prototipo con los requisitos definidos en el alcance de este proyecto

a lt

49

Conclusiones y Tru6ajos Futuros

Aquiacute se dan a conocer las conclusiones y se describen los posibles trabajos futuros para la continuacioacuten de eacuteste proyecto

F

51 Conclusiones

Conclusiones y trabajos futuros

Se ha creado un Ambiente Visual que permite obtener de forma automaacutetica los Diagramas de Secuencias en base a los diagramas de Clases y al disentildeo detallado de los meacutetodos descritos con diagramas de Warnier cumpliendo con los objetivos planteados para este trabajo

La tesis aporta principalmente La generacioacuten automaacutetica de los diagramas de secuencias y la eliminacioacuten de inconsistencias al mantener una validacioacuten directa de los diagramas de clases y los diagramas de Warnier que son utilizados

Esta validacioacuten es lograda a traveacutes del uso de la gramaacutetica visual relaciona1 que se ha definido (veacutease el capiacutetulo 3) Esta gramaacutetica visual establece reglas para la correcta construccioacuten de los diagramas de secuencias

P De esta manera se establece que la hipoacutetesis ldquoEs posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodosrdquo Es verdadera

52 Trabajos Futuros

Un Diagrama de Secuencias puede convertirse en un Diagrama de Colaboracioacuten por lo tanto un trabajo futuro es la construccioacuten automaacutetica de un Diagrama de Colaboracioacuten a partir de uno de Secuencias existente

Es posible calcular la meacutetrica de acoplamiento al tener un Diagrama de Secuencias construido

La Ingenieriacutea directa de un Diagrama de Secuencias estableciendo la validacioacuten en la construccioacuten de todos los elementos visuales que UML define

La propagacioacuten de las modificaciones de un Diagrama de Secuencias a los Diagramas de Clases y los Diagramas de Warnier

La modificacioacuten del coacutedigo fuente mediante los cambios establecidos en un Diagrama de Secuencias

51

[ALC03]

[BLA98]

[B0099]

[BOOOi]

[BR097]

[CHA90]

[DAN02]

[GLA02]

[HAC98]

[HER03]

4

Alcate1 Computer Associates International inc Electronic Data Systems Corporation Hewlett-Packard Company IBM Corporation I-Logix IntelliCorp Kabira Technologies Kennedy Carter Microsoft Corporation Object Management Group Oracle Corporation Project Technology Ptech Inc Rational Software Corporation Reich Technologies Softeam Taskon A S Telelogic Unisys Corporation ldquoOMG Unified Modeling Language Specificationrdquo Version 15 Unified Modeling Language 2003

Blaha Michael Rumbaugh James Premerlani William Eddy Frederick Lorensen William ldquoObject-oriented modeling and designrdquo Prentice Hall 484 Paacuteginas ISBN 0-13-629841-9 QA-769-03S-B53-19981998

Booch Grady Rumbaugh James Jacobson Ivar ldquoEl lenguaje unificado de modeladordquo Addison Wesley 432 Paacuteginas ISBN 84-7829-028-1 1999

Booch Grady Rumbaugh James Jacobson Ivar ldquoThe Unified Modeling Language User Guiderdquo Addison Wesley 2001

Brown David ldquoAn introduction to object-oriented analysis objects in plain Englishrdquo John Whiley amp Sons Inc 700 Paginas ISBN 0-471-1 1028-0 QA-769-035-B76-1997 1997

Chang Shi-Kuo ldquoVisual Languages and visual programmingrdquo Plenum Press 340 Paacuteginas ISBN 0-306-43428-8 QA-7665-V57-1990 1990

Daniels John ldquoModeling with a sense of purposerdquo Design - IEEE Software JanuaryEebmary 2002

Glasgow Universidad Reino Unido ldquoA UML Editor in Javardquo (lthttplstudentsdcsglaacuWstudentspainjfproject-reportproject-re port-htmV4thYearReporthtrnlgt 2002)

T Hackos JoAnn C Redish Janice ldquoUser and Task Analysis for Interface Designrdquo Wiley Computer Publishing 488 Paacuteginas ISBN QA-769-U83- H33-1998 1998

Hemaacutendez Velaacutezquez M ldquoIngenieriacutea inversa de coacutedigo fuente en C++ para la obtencioacuten de su disentildeordquo Tesis AT-379 (03-0334) 2003

Conceptos generales

[HIX93]

[JAC93]

[JAC99]

[JOY98]

[LAR97]

[MAR]

[MIC99]

[MIC02]

[MOU98]

Hix Deborah Hartson H Rex ldquoDeveloping user interfacesrdquo 381 Paacuteginas ISBN 0-471-57813-4 QA-769-U83-H59-1993 1993

Jacobson Ivar Christerson Magnus Jonsson Patrik Overgaard Gunnar ldquoObject oriented software engineeringrdquo Addison Wesley ISBN 0-20 1 - 54435-0 QA-7676-D47-J63-1993 1993

Jacobson Ivar Booch Grady Rumbaugh James ldquoEl proceso unificado de desarrollo de softwarerdquo Addison Wesley 438 Paacuteginas ISBN 84-7829-036- 2 1999

Joyanes Aguilar Luis ldquoProgramacioacuten orientada a objetosrdquo McGruw Hill ISBN 84-481-0590-7 1998

Larman Craig ldquoAplying UML and Patternsrdquo Prentice Hull 507 Paacuteginas ISBN 0-13-748880-7 QA-769-035-L37-1997 1997

Marriot Kim Meyer Bemd ldquoVisual Language Theoryrdquo Springer 381 Paacuteginas P-935-V567-1998 1998

Microsoft ldquoMicrosoft Visual C++ 6 manual del programadorrdquo McGraw Hill ISBN 84-481-2127-9 QA-7673-Cl53-23718-1999 1999

Microsoft ldquoVisiordquo (lthttpwwwmicrosoftcomofficevisiogt 2002)

B Mourao Luis X ldquoUniversal Modeling Language Part 11 UML Notation - Case Sequence and Collaboration Diagramsrdquo Lan Times Magazine (~httpwwwlantimescomltpartsdiscussdiscuss6Ohtm~) 1998

No Magic ldquoMagicDrawrdquo (lthttpwwwmagicdrawcomgt 2002)

Object Insight ldquoJvisionrdquo (lthttpwwwobject-insightcomgt 2002)

Rational Software Microsoft I Hewlett-Packard Oracle Sterling Software MCI Systemhouse Unisys ICON Computing IntelliCorp i-Logix IBM ObjectTime Platinum Technology Ptech Taskon Reich Technologies Sofieam ldquoUML Summaryrdquo Version 11 Unified Modeling Language 1997

Rational ldquoRational Roserdquo (lthttpwwwrationalcomproductosrosegt 2002)

Rikki Kirzner ldquoAnalysis Modeling and Design Tools Market Forecast and Analysis 2001-2005rdquo Bulletin Published Under Services Application Design and Construction Tools Application Development and Deployment Strategies Documento Nuacutemero 24809 Junio 2001

53

Conceptos generales

[RIM92] Rimrner Steve ldquoGraphical user interface programmingrdquo 423 Paacuteginas

1992

Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language reference manualrdquo Addison Wesley 550 Paacuteginas ISBN 0-201-

ISBN 0-8306-2475-9 ISBN 0-8306-2472-4 (pbk) QA-769-083-R55G

[RUM99]

30998-X QA-7676-D47-R85-1999 1999

[RUM299] Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language user guiderdquo Addisoiz Wesley 482 Paacuteginas ISBN 0-201 -57 168-4 QA-7676-D47-B66-1999 1999

[SMA02] SmartDraw ldquoSmartDrawrdquo (lthttpwwwsmartdrawcomgt 2002)

[SHU88] 9 - Shu Nun C ldquoVisual Programmingrdquo Van Nostrand Reinhold ISBN 0-422- 28014-9 ISBN 0-422-01 164-4 QA-7665-S55 1988

[THI90] Thimbleby Harold ldquoUser Interface Designrdquo Acm press 470 Paacuteginas ISBN 0-201 -41 61 8-2 QA-769U83-T772~- 1990 1990

[WENO2] Wences Diaz MF ldquoModelo de Ingenieriacutea Inversa para la obtencioacuten de disentildeo detallado basado en LEVISSrdquo Tesis (02-0014) 2002

54

Anexo A

Conampuracioacuten de Microsoft Vkua[C++ 6 O

Este anexo indica las configuraciones que se utilizaron para la compilacioacuten de SCUML y s3c

Configuracioacuten de Microsoft Visual c++ 60

Debido a la integracioacuten de los proyectos de InverSOODA e InverDDVi con S3C se cumplioacute con los requisitos previos de ambos proyectos

El compilador usado en el proyecto fue el Microsoft Visual C++ 60

Para el cumplimiento con la funcionalidad de InverSOODA se instaloacute el ANTLR la versioacuten 271 Se descargoacute del sitio l i l l ~ ~ ~ ~ ~ ~ t l ~ l ~ - ~ t - ~ la versioacuten mencionada en un archivo comprimido (en formato zip) Se colocoacute el paquete descomprimido en el directorio ldquoDIANTLR-271 I rdquo

Recomiendo ampliamente que el directorio principal de ANTLR se copie en el directorio raiacutez de cualquier unidad de disco debido a que experimenteacute problemas de compilacioacuten cuando ANTLR no se encontraba en el directorio raiacutez

Io015

Source Browser AlttF12 I u c Ersquo V I

Visual Component Mgnager

- - ~ ~ ~ ~~

P2 Registrar control

A Contenedor de prueba de controles ActiveX

A Usor de objetos OLE y COM

Buacutesqueda de errores

A Y++ MFC Iracer

Customize options

~ - q- ~ Macro

Eecord Quick Macro Cbl+ShiR+R Pay Quick Macro Ctrl+ShiR+P

En el menuacute Tools (Herramientas) seleccione el sub-menuacute Options ltopcionesgt

56

Configuracioacuten de Microsoft Visual C++ 60

En la siguiente ventana de diaacutelogo debe agregar la direccioacuten en donde se encuentra el ANTLR

Agregar la ruta del directorio de ANTLR hasta el subdirectorio

libcpp

Editor I Tabs I Debug I Compatibility 1 Build Dneclolies I a I Chow directories for - Platfolm -

- Directories I x ) 4 jWin32 -] llnclude files

m cancd I

57

Configuracioacuten de Microsoft Visual C t+ 60

Se ha creado una libreriacutea (anrlrliblib) de ANTLR la cual ya estaacute situada en el directorio del proyecto SCUML (ISCUML) y no debe ser movida o eliminada

I

Geneial 1 Debug I CC++ Link I Category

Output file name bebugSCUMLexe

Objectljibrary modules 4 anllrliblib

li Generate debug lnfo r Ignore all defaull lbaries D ~ i n k j n ~ ~ ~ t a n ~ r ~ e n e r ~ ~ ~ mapfile

r Enable psafilrng

Proiec1 Ootionn

pq Cancel 1 Libreriacutea de ANTLR que debe existir 1 I para que se compile correctamente

58

Anexo B

~ u iacute aacute raacutepida de uso deC Sistema S3C

5 Este anexo indica de forma raacutepida la manera de utilizar S3C para crear un diagrama de secuencias de forma automaacutetica

Guiacutea Raacutepida de uso del Sistema S3C i

Para indicar la creacioacuten de un diagrama de secuencias en forma automaacutetica se debe ir a la barra del costado izquierdo y presionar ldquoNuevo Proyecto SCUMLrdquo

I s3c I ~ Nuevo Proyecto SCUML ~ _ _ - I Diagrama de clases ~ Diagrama de secuencias 1 MDI DOC Activo

-

Apareceraacute un documento llamado ldquoSCUMLV en donde el simbolo corresponde a un numero consecutivo iniciando desde 1 (uno)

$ e Despueacutes se presiona ldquoDiagrama de clasesrdquo Habraacute que para indicarle al sistema si se requiere abrir un diagrama de clases existente o realizar uno nuevo

i

iquestAbrir un documento existente

No Cardquo~ear

AI presionar ldquoSirdquo se debe indicar cual es el archivo del diagrama de Clases en el cuadro de diaacutelogo siguiente

~~ - 11dMis documentos rsquo 2 M i P C i lsquo h s sitios de red

I

AI presionar ldquoNordquo en ldquoAbrir un documento existenterdquo se nos mostraraacute un documento vacio para crear un diagrama de clases

60

Guiacutea Raacutepida de uso del Sistema S3C

Para ambas opciones se requiere que los diagramas de Wamier ya se encuentren construidos Y para continuar el proccso se selecciona el documento ldquoSCUMLVrsquo creado al inicio y despueacutes presionar el botoacuten nombrado ldquoDiagrama de secuenciasrdquo localizado en la barra de hcrraiiiicntas del costado izquierdo

Ha iniciado el proceso de construccioacuten del diagrama de secuencias Si no existen errores al terminar el proceso se le mostraraacute un cuadro de diaacutelogo llamado ldquoResultadosrdquo en donde le mostraraacute las llamadas de las que no localizoacute su definicioacuten

- - -

Cancel 1 D e las siguientes llamadas es posible que esten mal escritas o peitenezcan a la libreiia del Lenguaie Verifique ya que no se encontraron sus definiciones

A continuacioacuten se mencionan los posibles errores que finalizan el proceso de la creacioacuten automaacutetica de los diagramas de secuencias en S3C

Cuando no exista un meacutetodo lsquomainrsquo definido en el diagrama de clases

No se encontro el meacutetodo lsquomain()rsquo que inicie la secuencia I A No se puede crear el diagrama de secuencias

p==amp=q

61

Guia Raacutepida de uso del Sistema S3C

Cuando se definan niultiples metodos lsquoinainrsquo en el diagrama de clases

Multiples meacutetodos lsquomainOlsquo Imposible decidir el inicio de secuencia

Aceptar i

Si un meacutetodo definido en Wamier realiza una llamada a lsquomainrsquo se cancelara el proceso

Llamada NO VALIDA al meacutetodo principal main

(iAcp-j(

4 i

CI Y rdquoldquoldquoI i 11 1-T

IZNTRO Gt INFORMACION

62

  • Tabla de Contenido
  • Listado de Figuras
  • Listado de Tablas
  • Notacioacuten
  • Introduccioacuten
  • Capitulo 1 Conceptos Generales
    • 11 Antecedentes
    • 12 Trabajos relacionados
      • 121 Tabla comparativa
        • 13 Definicioacuten del problema
        • 14 Objetivo de la Tesis
          • Objetivos especiacuteficos de la tesis
            • 15 Hipoacutetesis de investigacioacuten
            • 16 Alcances y limitaciones del trabajo de tesis
              • Capitulo 2 Marco Teoacuterico
                • 21 Modelado de sistemas de software
                • 22 Interfaz de usuario (Mecanismos de interaccioacuten)
                • 23 Lenguajes Visuales
                • 24 Programacioacuten orientada a objetos
                • 25 Lenguaje de Modelado Unificado (UML)
                  • Desarrollo de la herramienta
                    • 31 Disentildeo de la Arquitectura
                      • 311 Requisitos (Diagrama de Casos de uso)
                        • 312Modelo Conceptual
                        • 313Diagramas de clases
                        • 32 Elementos de la arquitectura
                          • 321 Microsoft Foundation Class (MFC)
                            • 322Arquitectura Documento Vista
                            • 323Integrando Ambientes en Visual c++
                              • 324 Interfaz de Muacuteltiples Documentos (MDI)
                                • 325Recursos Diaacutelogos Menus y Barras de Herramientas
                                  • 326 Notacioacuten estaacutendar
                                  • 327 Estructura de datos persistencia y recuperacioacuten
                                    • 328Patrones de disentildeo utilizados
                                      • 33 Diagrama de secuencias
                                        • 331Ciclo de vida del software
                                          • 34 Elementos atoacutemicos de la Gramaacutetica
                                            • 341 Representacioacuten visual
                                              • 35 Gramaacutetica desarrollada
                                              • 36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias
                                                  • Capitulo 4 Pruebas y Resultados
                                                    • 41 Recursos teacutecnicos utilizados
                                                    • 42 Descripcioacuten del plan de pruebas
                                                    • 43 Resultados
                                                      • 431 Caso
                                                      • 432 Caso2
                                                      • 433 Caso
                                                          • Conclusiones y trabajos futuros
                                                            • Trabajos futuros
                                                            • Referencias
                                                            • Anexo A Configuracioacuten de Microsoft Visual C+t
                                                              • Figura 11 - Arquitectura de la suite cenidet-UML
                                                              • Figura 21 -Programacioacuten Visual
                                                              • Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de
                                                              • Figura 32 -Diagrama de Casos de Uso para el S3C
                                                              • Figura 33 -Modelo Conceptual
                                                              • Figura 34 - Diagrama de Clases -Control del Diagrama -
                                                              • Figura 35 - Diagrama de Clases - Patroacuten Visitor -
                                                              • Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento
                                                              • Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)
                                                              • Figura 38 -Dialogo Caracteriacutesticas del Objeto
                                                              • Figura 39 -Dialogo Mensaje
                                                              • Figura 3 IO - Menuacute de los Diagramas de Secuencias (estaacutendar)
                                                              • Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias
                                                              • Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)
                                                              • Figura 313 - Serializacioacuten
                                                              • Figura 314 -Modelo de cascada del ciclo de vida del software
                                                              • Figura 41 - Resultado del caso de prueba
                                                              • Figura 42 -Resultado del caso de prueba
                                                              • Figura 43 -Resultado del caso de prueba
                                                              • Figura 44 -Resultado del caso de prueba
                                                              • Tabla 11 - Tabla comparativa
                                                              • Tabla 31 -Prefijos estaacutendar de identificadores
                                                              • Tabla 32 -Elementos atoacutemicos del lenguaje
                                                              • Tabla 41 - Resumen de los resultados de las pruebas realizadas

Desarrollo de la herramienta

i

r

Liacutenea de Comandos Menuacute Dibujo Graacutefico Dibujo Graacutefico de Objetos Soporte de Control Soporte de Ventanas

Soporte para base de datos ODBC

o Marco de Ventanas o Barras de control o Hojas de propiedades o Cajas de Dialogo o Vistas o Controles

322Arquitectura Documento Vista

Por defecto las aplicaciones creadas con la MFC usan un modelo de aplicacioacuten que separa los datos del programa de las vistas de interaccioacuten con el usuario En eacuteste modelo un objeto documento de MFC lee y escribe datos en un almacenamiento persistente Un objeto vista administra el despliegue de datos suministrando al usuario los datos para ser seleccionados o editados La vista le comunica al documento cualquier cambio en los datos La razoacuten maacutes conveniente para seguir este modelo es cuando se necesita muacuteltiples vistas del mismo documento (como en una hoja de caacutelculo y un graacutefico)

La arquitectura documentovista hace faacutecil el soporte de muacuteltiples vistas y muacuteltiples tipos de documentos asiacute como la divisioacuten de ventanas y otras caracteriacutesticas de interfaz de usuario Pero el corazoacuten de la arquitectura son cuatro clases (Mostradas en el aacuterbol de clases de la Figura 36)

ltCDocumerrtgt (o ltCOleDocuinentgt) - Se instancia un objeto de este tipo para almacenar y controlar los datos del programa ltCViewgt (o una de sus clases derivadas ltCScrotlViewgt ltCFormViewgt ltCEditView ltCRecordViewgt ltCDaoRecordView ltCtreeViewgt ltCListViewgt b ltCrichEditViewgt) - Un objeto es usado para desplegar los datos y administrar la interaccioacuten del usuario con los datos ltCFrameWndgt (o una de sus variantes) - Establece el marco sobre el que trabajaraacuten una o mas vistas de un documento ltCDocTemolategt (o ltCSingIeDocTemplategt o ltCMultiDocTemplategt) - Coordina la existencia de uno o maacutes documentos de un tipo dado y administra la correcta creacioacuten de los documentos vistas y objetos ventanas para cada tipo

i

28

Desarrollo de la herramienta

______________ 2 Wiew

I - - __ - ------a ________________

323Integrando Ambientes en Visual C t t

Las aplicaciones de Interfaz de Documento Uacutenico (SDI) soporta muacuteltiples tipos de documentos pero este soporte es para un solo objeto documento Debido a esta restriccioacuten y aunado a la necesidad de tener varios objetos documentos a la vez se determina la utilizacioacuten del modelo Interfaz de Muacuteltiples Documentos (MDI) indicado en la Figura 37

324Interfaz de Muacuteltiples Documentos (MDI)

Una aplicacioacuten de Interfaz de Muacuteltiples Documento (MDI) permite la creacioacuten de plantillas para el manejo de los documentos eacutesta plantilla tiene la forma

rn-pDocTemplate = new CMultiDocTernplate ( I DR-SCUMLTY PE RUNTIME-CLASS (CSCUMLDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CTheView))

AddDocTernplate ( rn-pDocTemplate )

Cada plantilla describe una relacion del tipo de documento con la vista asociada La definicioacuten de la plantilla para el ambiente que controla los diagramas de secuencias es la siguiente

29

Desarrollo de la herramienta c

m-pTernplateSeqDlag = new CMultiDocTernplate ( IDR-DS-SJCTYPE RUNTIME-CLASS (CSeqDiagDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CSeqDiagView) )

AddDocTernplate( rn-pTernplateSeqDiag )

Esta plantilla hace uso de la clase CCliildFrame que por defecto el ambiente Visual C++ construye y esto es debido a que no se requieren caracteriacutesticas extras en las ventanas de las que proporciona dicha clasc En un caso en el que se requiriera un comportamiento diferente de la vista tendriacutea que crearse una nueva clase con las caracteriacutesticas deseadas

Vista Documento

Vista

I- Vista Documento I [ Tip- F Vista

L Figura 37 Modelo Interfaz de Muacuteltiples Documentos (MDI)

Para integrar otro Ambiente que utilice otro tipo de documento es necesario definir otra plantilla de la misma forma mencionada Debe tomarse en cuenta los siguientes puntos

Es necesario definir el nombre (mqTemplateNOMBRE) El IDR del tipo que se requiere que sea el documento En la primera liacutenea RUNTIME CLASS debe indicar la clase ltCDocumentgt que desea La segunda liacutenea RUNTIME-CLASS soacutelo la cambia a otra clase si requiere de otro manipulador de ventanas de lo contrario deje que ltCChildFramegt se haga cargo

-

30

Desarrollo de la herramienta

En la uacuteltima liacutenea referente a RUNTIME-CLASS se debe indicar la clase ltCViewgt que desea usar Para finalizar se usa la instruccioacuten AddDocTernplate para finalizar la definicioacuten del template (mgTemplateNOMBRE)

325 Recursos Diaacutelogos Mertuacutes y Barras de Herrattriertias

Son varios los recursos con los que se puede contar al crear un proyecto en Microsoft Visual C++ Los diaacutelogos son un recurso disponible que son utilizados para visualizar ingresar yo modificar informacioacuten que se requiera En el Ambiente Visual que se desarrolla son varios los diaacutelogos que se utilizaraacuten y eacutestos se describen a continuacioacuten

El Diaacutelogo ldquoCaracteriacutesticas del Obietordquo (Figura 38) identifica el nombre del Objeto y la descripcioacuten del mismo Este diaacutelogo se muestra cuando se presiona doble clic sobre un objeto del diagrama

I Nombre

Desciipcion

Figura 38 Dialogo Caracteriacutesticas del Objeto

El Diaacutelogo ldquoMensaierdquo (Figura 39) muestra el nombre del mensaje que puede ser modificado ademaacutes se visualizan el Identificador del Mensaje el tipo de Mensaje asiacute tambieacuten el origen y destino del mensaje

31

Desarrollo de la herramienta

Nornbie delMensaje Edit

IDentificador del Mensaje Edil Tipo de Mensaje (Edil

Edit Objeto Origen

Objeto Destino IEdit

i25El A Figura 39 Dialogo Mensaje

El menuacute es otro de los recursos del que se puede disponer para organizar el ambiente que se estaacute creando Para eacuteste caso en particular no se hizo modificaciones al menuacute estaacutendar (Figura 310) que Visual C++ presenta Los cambios significativos son el manejo del tipo de documento para los Diagramas de Secuencias

Archivo Editar Yer VenLana AyGda

Figura 310 Menuacute de los Diagramas de Secuencias (estaacutendar)

Otro importante recurso del que uno se puede valer en Visual C++ es la barra de herramienta personalizada la cuaacutel es construida en el Editor de Recursos Se ha construido una barra (Figura 311) con los elementos graacuteficos de los Diagramas de Secuencia de UML

Figura 311 Barra de Herramientas de los Diagramas de Secuencias

Es recomendable que al utilizar barras de herramienta personalizada se defina en el tamantildeo estaacutendar ya que puede experimentar problemas al momento de ejecutar la aplicacioacuten

Ademaacutes puede usar la propiedad TBBS-CHECKGROUP en una barra de herramientas para establecer que los botones puedan quedar presionados hasta que un botoacuten diferente sea presionado No olvide que la numeracioacuten inicia con cero ( O )

vuriableToolBurSetButtonStyle(OTBBSCHECKGROUP)

32

Desarrollo de la herramienta

Prefijo ID IDC IDD IDP IDR IDS

326 Notacioacuten estaacutendar

Los nombres descriptivos de los recursos se asocian a un valor uacutenico Para una mayor claridad eacutestos nombres mantienen un prefijo que describe el tipo de recurso asociado (vea la Tabla 31) [MIC99]

Tipo de Recurso Comandos de Menuacute Controles y recursos Cuadros de diaacutelogo Cadenas de solicitud para cuadros de mensaje Menuacute principal barras de herramienta tabla aceleradora y el icono Cadenas

IDR IDD IDC ID

200 - 299 3000 - 3999 34000 - 34999

Estos son los rangos de valores establecidos para el proyecto S3C Si se utiliza el coacutedigo fuente y se planea agregar otro proyecto verifisue que no se invadan estos nuacutemeros para evitar problemas

Para facilitar auacuten maacutes los trabajos futuros se ha definido una estructura de carpetas (ver Figura 312) para incluir en cada una las Clases correspondientes a cada tesis en desarrollo

33

Desarrollo de la herramienta

ill ~~ -

-I SCUML classes + U A N T L R + U App + 0 ClassDiagrams + 0 Common + a Java

t $2 SequenceDiagiams

+ WarnierDiagrams

iJ PackageDiagrams

12 StaterChartDiagrams

+

- f Classview I Resourceview 1 FileView ]

~ ~

Figura 312 Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)

327Estructura de datos persistencia y recuperacioacuten

Existe una gran cantidad de tipos de datos estructuras clases y meacutetodos de los que se puede hacer uso para una mejor y maacutes faacutecil obtencioacuten de los resultados A continuacioacuten hago comentarios en tipos de datos y meacutetodos en los que podriacutea tener problemas

CTypedPtrList

AI usar este tipo de dato o alguno relacionado que le permita utilizar el meacutetodo ltCTvrgtedPtrListGetNextgt tenga especial precaucioacuten al usarlo ya que al devolver el valor requerido la variable POSITION usada no se queda apuntando a ese valor en particular salta al inmediato siguiente de la lista

Si se realiza una creacioacuten dinaacutemica con punteros para los elementos de una CTypedPtrList Despueacutes de haberlo agregado a la lista evite el delete para borrar esta Usted deseando liberar la memoria no lo haga ya que eliminara directamente el elemento de la lista

POSITION

Es un valor usado para denotar una posicioacuten de un elemento en una coleccioacuten Pero CUIDADO no se refiere a un iacutendice es una referencia (no consecutiva) de punteros muy diferente a un iacutendice

CString

Auacuten cuando el operador de comparacioacuten == (igual a) es permitido para ser utilizado en las cadenas evite su uso ya que en ocasiones aunque cuando la e

34

Desarrollo de la herramienta

compilacioacuten no indique error alguno en la ejecucioacuten no realizaraacute lo que se necesita Recomiendo que utilice CStringCompare ()

Para eliminar el contenido de un CString utilice CStringEmpty() ya que asignar a la cadena un ldquonrdquo podriacutea causarle problemas

Serializacioacuten

Una forma en que se puede guardar informacioacuten y recuperarla de manera eficaz es mediante la serializacioacuten de objetos La serializacioacuten es un proceso que permite escribir un objeto en un archivo y tambieacuten leerlo

Para que la serializacioacuten se lleve a cabo son necesarios tres objetos un objeto de tipo ltCFilegt que represente el archivo un objeto de tipo ltCArchivegt que ofrece el entorno para la serializacioacuten y la clase del objeto a ser serializado debe ser heredada de ltCObjectgt y sobrescribir el meacutetodo ltSerializegt para que se encuentre de tal forma en que pueda ser serializado (vea la Figura 313)

Objeto a ser serializado 1

1 CArchive

[f --=I- ---7 Archivoexi

u Figura 313 Serializacioacuten

328Patrones de disentildeo utilizados

Se ha planteado la definicioacuten de una arquitectura de clases utilizando patrones de disentildeo debido a que algunos de ellos hacen maacutes faacutecil la extensioacuten de la funcionalidad y mantenimiento

35

Desarrollo de la herramienta

El patroacuten Composite es utilizado para crear de manera uniforme el diagrama sobre el que se trabaja (ver Figura 34) manteniendo una jerarquiacutea de clases uniforme las clases maacutes bajas en la jerarquiacutea definen primitivas de objetos graacuteficos

Se aplica el patroacuten de disentildeo Iterator para hacer recorridos en listas de objetos para realizar diversas operaciones Otro patroacuten de disentildeo del que se hace uso es el Visilor (ver Figura 35)

Para otras actividades que se realizan podriacutea pensarse en que se deberiacutean aplicar otros patrones pero se han evitado algunos (como el patroacuten de disentildeo Builder) para evitar incrementar la complejidad en la arquitectura ya que ai mantener el modelo de la MFC de documentovista la funcionalidad del patroacuten de disentildeo Builder es faacutecilmente reemplazado si se hiciera Uso de eacuteste se aumentariacutea la complejidad excesivamente (nos llevariacutea a perdemos en ocasiones en el paso de mensajes entre clases) dantildeando la facilidad de la arquitectura

33 Diagrama de secuencias

Un Diagrama de Secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten escenario Oacute comportamiento se usan para definir el curso loacutegico de accioacuten de un posible camino a seguir en la resolucioacuten de un problema Seguacuten John Daniels [DANO2] ldquoel principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildean las interacciones de los objetosrdquo

Los Diagramas de Secuencias se utilizan en el modelado de la implementacioacuten de sistemas de software ademaacutes son aplicables en el modelado de requisitos para establecer las comunicaciones existentes entre actores yo clases del sistema Con eacutestos diagramas se logran hacer descripciones de los escenarios y los comportamientos del sistema Con los Diagramas de Secuencias es posible definir protocolos de comunicacioacuten con paso de mensajes ya que dan esa flexibilidad que se requiere Ademaacutes los Diagramas de Secuencias contienen informacioacuten suficiente para que puedan ser transformados a los diagramas de colaboracioacuten [RUM Ol][BOO Oil

331Ciclo de vida del software

Considerando cualquier modelo de ciclo de vida del software (en la figura 314 se muestra el Modelo de cascada) el aacutembito directo de eacuteste Ambiente Visual es en el disentildeo aunque tiene sus vertientes en la codificacioacuten y mantenimiento

36

Desarrollo de la herramienta

Diseno

Codificacibn

I I I I Mantenimiento I

igura 314 Modelo de cascada del ciclo de vida del software

34 Elementos atoacutemicos de la Gramaacutetica

Definicioacuten de los elementos atoacutemicos del lenguaje y su contenido

1 Actor- Representa roles de entidad externos al sistema con el que interactuacutea directamente Los actores pueden ser humanos dispositivos u otros sistemas

2 ClaseObjeto- Determina una Clase u Objeto participante en la interaccioacuten

3 Mensaje-Es una comunicacioacuten entre objetos que contiene informacioacuten Eacuteste se representa con la finalidad a que una accioacuten sea llevada a cabo

4 Mensaje con tiempo- Tiene la misma finalidad que el mensaje la diferencia es que con eacutel se representa un atributo de tiempo

5 Mensaje asiacutencrono Es un mensaje que ocurre en el tiempo de manera independiente a otros mensajes

6 Mensaje de destruccioacuten de objeto- Es un mensaje cuya finalidad es indicar la destruccioacuten del objeto destino

7 Mensaje de creacioacuten de objeto- Es un mensaje que indica la creacioacuten de un objeto

8 Llamada al mismo objeto (Recursividad)- Es usado para modelar llamadas recursivas en el que una operacioacuten es invocada por el mismo objeto

37

Desarrollo de la herramienta

9 Destruccioacuten del objeto (AutodestrucciOacuten)- Puede o no modelarse es representada con una X al final de la liacutenea de vida del objeto

Elementos aulomaacuteticos

1 Liacutenea de Vida- Representa la vida del objeto durante la interaccioacuten

2 Activacioacuten- Muestra el periacuteodo de tiempo en el cual el objeto alguna operacioacuten

341RepresentaciOacuten visual

Representacioacuten visual de los elementos atoacutemicos del lenguaje

Actor

_- A

Mensaje

Mensaje de Creacioacuten de

Objeto

ClaseObjeto

I

Mensaje de retorno

Mensaje de Destruccioacuten de

Objeto

abla 32 Element(

Activacioacuten

Mensaje con tiempo

Autodestruccioacuten

x

atoacutemicos del lengi

taacute realizz

Texto ===I (letra)+ (letra I

numero) letra= AZ I az numero = 09

I

Recursividad ~

I

i j e

io

38

u

Comentario

iexcl

Conector de Comentario

35 Gramaacutetica desarrollada

La gramaacutetica que se propone es una gramaacutetica visual del tipo relacional Una gramaacutetica relacional pertenece a las gramaacuteticas libres de contexto es una 6-iupla G (N C S R Attr P) donde

N es un conjunto finito de siacutembolos no terminales C es un conjunto de siacutembolos terminales S es un siacutembolo distinguido en N llamado siacutembolo inicial R es un conjunto finito de siacutembolos de relacioacuten Attr es un conjunto finito de siacutembolos de atributos P es un conjunto de producciones

Entonces definiendo nuestra gramaacutetica G (N C S R Attr P)

N = Diagrama GrupoClaseObjeto

S = Diagrama

R = mensaje mensajeTiempo mensajeRetomo mensajeAsincrono mensajecrea mensajeDestruye autodestruccioacuten recursividad

R

Attr = entrada salida entradacrea

39

Desarrollo de la herramienta

Definiendo la posicioacuten de los atributos en los elementos visuales

entradacrea ObetaClase

entrada

salida

P =

Diagrama I GrupoClaseObjeto (mensaje (mensajeRetorno

(salida 1) (entrada 2) ) (salida 2) (entrada 1) )

- Diagrama 0 GrupoClaseObjeto

(mensaje (mensaje (mensajeRetomo (mensajeRetomo (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entradacrea 2) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 1) ) (salida 1) (entrada 1) )

entrada

salida

40

Desarrollo de la herramienta

s

-

GrupoClaseObjeto - 1 1 I 2 (mensaje (mensaje (mensajeRetorno (mensajeRetorno (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entradacrea 2) ) (salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 1) ) (salida I ) (entrada I ) )

1 En las gramaacuteticas relacionales una produccioacuten estaacute acompantildeada de las posibles

relaciones que puedan generarse En la primera produccioacuten Diagrama produce a un Actor seguida de un GrupoClaseObjeto el Actor inicia la interaccioacuten con un mensaje y recibe el mensaje de retorno al finalizar la interaccioacuten La segunda y tercera produccioacuten son similares debido a que un GrupoClaseObjeto contiene dos ClaseObjeto que se relacionan de la misma forma

Existe un elemento de la gramaacutetica llamado Attr (Atributo) el cual define la parte de los elementos visuales donde se establecen las relaciones Se han determinado dos atributos (entrada y salida) que para nuestro propoacutesito estaraacuten establecidos en la liacutenea de vida de cada elemento visual (Actor y ClaseObjeto)

Los Comentarios y la Activacioacuten no se consideran en la gramaacutetica Los comentarios son libres de incluirse y relacionarse con cualquier elemento y relacioacuten mencionada anteriormente y la activacioacuten existe siempre que se presente un mensaje (o podriacutea omitirse) Estas consideraciones se realizaron para hacer auacuten maacutes faacutecil la gramaacutetica ya que si se trata de realizar un sistema las restricciones de estos elementos pueden mantenerse en el lenguaje de programacioacuten en el que se desarrolle el sistema

36

Precondiciones

El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias

1 El diagrama de Clases debe existir y estar completo 2 Debe existir un archivo con un diagrama de Warnier por cada diagrama de Clases y

con el mismo nombre de archivo (excepto la extensioacuten del archivo) 3 En el uacutenico diagrama de Warnier de cada Clase se deben modelar todos los meacutetodos

de la Clase 4 No realizar declaraciones de meacutetodos

41

Desarrollo de la herramienta

5 Debe existir un meacutetodo lsquomain()rsquo en el diagrama de Clases

Restricciones

Los meacutetodos deben mantener nombres distintos en las diferentes Clases

Metodologiacutea para la obtencioacuten automaacutetica de los Diagramas de Secuencias

1 Seleccionar el diagrama de Clases

2 Se construye una lista con los nombres de las Clases y los Meacutetodos

3 Se verifica si exista el meacutetodo lsquomain()rsquo en alguna Clase Se busca la existencia de una uacutenica Clase

a La Clase que contenga lsquomain()rsquo se va al inicio de la lista de Clases

b Si no existe lsquomain()rsquo SE TERMINA EL PROCESO

4 Se verifica la existencia de los archivos que contienen el Disentildeo Detallado de los meacutetodos en Wamier para cada una de las Clases si alguno falta SE TERMINA EL PROCESO

5 Se procesa cada uno de los modelos del Disentildeo Detallado de los Meacutetodos generando una lista de secuencias de llamadas por cada uno de los meacutetodos

6 Se verifica que cada llamada corresponda a alguacuten meacutetodo existente (del diagrama de Clases) De no existir ese meacutetodo la llamada entra a una estructura que

7 Se crea una lista de secuencia

a Se inicia con lsquomain()rsquo b Se recorre cada una de las llamadas de los meacutetodos c Se considera invaacutelido el caso de que un meacutetodo intente una llamada

recursiva al meacutetodo lsquomain()rsquo

8 Se muestra un diaacutelogo de resultados en el que se indican las llamadas que no se encnotraron definidas y que pueden ser Llamada a libreriacutea oacute Llamada Erroacutenea

42

Capiacutetulo 4

Prue6as y su6taaacuteos

En eacuteste capiacutetulo se da a conocer el detalle de las pruebas y de los resultados obtenidos Se describen los casos de prueba con los que se realizoacute la evaluacioacuten del sistema asiacute tambieacuten se presentan comentarios acerca de los resultados obtenidos

Pruebas y Resultados

41 Recursos teacutecnicos utilizados

Para llevar a cabo las pruebas al sistema S3C se utilizaron los siguientes equipos de Coacutemputo

Computadora de escritorio

256MB RAM Disco Duro 80G Monitor 17rdquo SAMSUNG

AMD Athlon XP 1600+ I4Ghz

Computadora de escritorio Intel Pentium 4 - 128MB RAM Disco Duro 40G Monitor 15rdquo i -

42 Descripcioacuten del plan de pruebas

Las pruebas establecen el Uacuteltimo paso desde donde es posible evaluar la calidad y descubrir los errores Las pruebas y la validacioacuten del software se utilizan para comprobar que el sistema cumple con las expectativas del usuario

En esta seccioacuten se describen los casos de prueba que se realizaron al prototipo de S3C en conjunto a la suite cenidet-UML Para cada uno de los casos se presenta el objetivo el procedimiento que se siguioacute para la prueba y se muestran los resultados obtenidos - _

Las pruebas a realizar son los siguientes

Caso 1 Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Caso 2 Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Wamier

Caso3 Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Wamier

Caso4 Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo 5

44

Pruebas y Resultados

43 Resultados

431 Caso 1

5 Y

IZ =

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoSirdquo 4 Seleccionar el archivo ldquoVENTASrdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 41 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

s3c iuevo Proyecto SCUM1

Diagrama de clases

lvendedor I L

3

salida

venta prod

4 venia-oferta vcntaprod =

salida 6

Figura 41 Resultado del caso de prueba 1

45

Pruebas y Resultados

432 Caso 2

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Warnier (almacenwar cajawar vendedorwar) que ya cxisten (del caso de prueba I )

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoNordquo 4 Agregar las siguientes Clases con los respectivos meacutetodos y atributos

a Claseldquovendedorrdquo Meacutetodos ldquoventa mainrdquo b Claseldquoalmacenrdquo Meacutetodos ldquoentrada salidardquo c Claseldquocajardquo Meacutetodos ldquoventagrodrdquo

5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 42 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

Diagrama de daseo lisgrama dcsccucncis

MOIDOC Anivo

venta prod

salida

1 Ycrdquo1a 2

I 4 vcrdquolD~o1cn venta prod gt

salida 6 i Figura 42 Resultado del caso de prueba 2

46

Pruebas y Resultados

r

433 Caso 3

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Warnier

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 43 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

5

Error al tratar de abrir el archivo A bZwar

Aceptar i

Faltan Archivos de Disentildeos Detallados de Meacutetodos 1 1 A No se puede crear el diagrama de secuencias

Figura 43 Resultado del caso de prueba 3

47

Pruebas y Resultados

434 Caso 4

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 44 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

lsquo I

~ _ i i _ l _ Repaado ~~ ~ ~ 6~ ampA Figura 44 Resultado del caso de prueba 4

48

Pruebas y Resultados

PRUEBA DESCNPCION CASO 1 Mostrar la funcionalidad del

Sistema S3C a partir de un

44 Anaacutelisis de Resultados

RESULTADOS Se comproboacute la correcta funcionalidad del Sistema S3C a partir de un diagrama

CASO 3

CASO4

I diagrama de Clases cxistcnte I de Clases existente CASO 2 I Mostrar la funcionalidad del I Sc comproboacute la corrccta funcionalidad

Sistema S3C a partir de un del Sistema S3C a partir de un diagrama diagrama de Clases que se de Clases que se construye al momento construye al momento Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el Secuencias si falta alguno de los diagrama de Secuencia si falta alguno diagramas de Warnier Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el secuencias si hace falta el meacutetodo diagrama de Secuencias al faltar el ldquomain ()rdquo meacutetodo ldquomain()rdquo

de los diagramas de Warnier

Los resultados obtenidos de cada uno de los casos establecidos demuestran que se validoacute la funcionalidad del prototipo con los requisitos definidos en el alcance de este proyecto

a lt

49

Conclusiones y Tru6ajos Futuros

Aquiacute se dan a conocer las conclusiones y se describen los posibles trabajos futuros para la continuacioacuten de eacuteste proyecto

F

51 Conclusiones

Conclusiones y trabajos futuros

Se ha creado un Ambiente Visual que permite obtener de forma automaacutetica los Diagramas de Secuencias en base a los diagramas de Clases y al disentildeo detallado de los meacutetodos descritos con diagramas de Warnier cumpliendo con los objetivos planteados para este trabajo

La tesis aporta principalmente La generacioacuten automaacutetica de los diagramas de secuencias y la eliminacioacuten de inconsistencias al mantener una validacioacuten directa de los diagramas de clases y los diagramas de Warnier que son utilizados

Esta validacioacuten es lograda a traveacutes del uso de la gramaacutetica visual relaciona1 que se ha definido (veacutease el capiacutetulo 3) Esta gramaacutetica visual establece reglas para la correcta construccioacuten de los diagramas de secuencias

P De esta manera se establece que la hipoacutetesis ldquoEs posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodosrdquo Es verdadera

52 Trabajos Futuros

Un Diagrama de Secuencias puede convertirse en un Diagrama de Colaboracioacuten por lo tanto un trabajo futuro es la construccioacuten automaacutetica de un Diagrama de Colaboracioacuten a partir de uno de Secuencias existente

Es posible calcular la meacutetrica de acoplamiento al tener un Diagrama de Secuencias construido

La Ingenieriacutea directa de un Diagrama de Secuencias estableciendo la validacioacuten en la construccioacuten de todos los elementos visuales que UML define

La propagacioacuten de las modificaciones de un Diagrama de Secuencias a los Diagramas de Clases y los Diagramas de Warnier

La modificacioacuten del coacutedigo fuente mediante los cambios establecidos en un Diagrama de Secuencias

51

[ALC03]

[BLA98]

[B0099]

[BOOOi]

[BR097]

[CHA90]

[DAN02]

[GLA02]

[HAC98]

[HER03]

4

Alcate1 Computer Associates International inc Electronic Data Systems Corporation Hewlett-Packard Company IBM Corporation I-Logix IntelliCorp Kabira Technologies Kennedy Carter Microsoft Corporation Object Management Group Oracle Corporation Project Technology Ptech Inc Rational Software Corporation Reich Technologies Softeam Taskon A S Telelogic Unisys Corporation ldquoOMG Unified Modeling Language Specificationrdquo Version 15 Unified Modeling Language 2003

Blaha Michael Rumbaugh James Premerlani William Eddy Frederick Lorensen William ldquoObject-oriented modeling and designrdquo Prentice Hall 484 Paacuteginas ISBN 0-13-629841-9 QA-769-03S-B53-19981998

Booch Grady Rumbaugh James Jacobson Ivar ldquoEl lenguaje unificado de modeladordquo Addison Wesley 432 Paacuteginas ISBN 84-7829-028-1 1999

Booch Grady Rumbaugh James Jacobson Ivar ldquoThe Unified Modeling Language User Guiderdquo Addison Wesley 2001

Brown David ldquoAn introduction to object-oriented analysis objects in plain Englishrdquo John Whiley amp Sons Inc 700 Paginas ISBN 0-471-1 1028-0 QA-769-035-B76-1997 1997

Chang Shi-Kuo ldquoVisual Languages and visual programmingrdquo Plenum Press 340 Paacuteginas ISBN 0-306-43428-8 QA-7665-V57-1990 1990

Daniels John ldquoModeling with a sense of purposerdquo Design - IEEE Software JanuaryEebmary 2002

Glasgow Universidad Reino Unido ldquoA UML Editor in Javardquo (lthttplstudentsdcsglaacuWstudentspainjfproject-reportproject-re port-htmV4thYearReporthtrnlgt 2002)

T Hackos JoAnn C Redish Janice ldquoUser and Task Analysis for Interface Designrdquo Wiley Computer Publishing 488 Paacuteginas ISBN QA-769-U83- H33-1998 1998

Hemaacutendez Velaacutezquez M ldquoIngenieriacutea inversa de coacutedigo fuente en C++ para la obtencioacuten de su disentildeordquo Tesis AT-379 (03-0334) 2003

Conceptos generales

[HIX93]

[JAC93]

[JAC99]

[JOY98]

[LAR97]

[MAR]

[MIC99]

[MIC02]

[MOU98]

Hix Deborah Hartson H Rex ldquoDeveloping user interfacesrdquo 381 Paacuteginas ISBN 0-471-57813-4 QA-769-U83-H59-1993 1993

Jacobson Ivar Christerson Magnus Jonsson Patrik Overgaard Gunnar ldquoObject oriented software engineeringrdquo Addison Wesley ISBN 0-20 1 - 54435-0 QA-7676-D47-J63-1993 1993

Jacobson Ivar Booch Grady Rumbaugh James ldquoEl proceso unificado de desarrollo de softwarerdquo Addison Wesley 438 Paacuteginas ISBN 84-7829-036- 2 1999

Joyanes Aguilar Luis ldquoProgramacioacuten orientada a objetosrdquo McGruw Hill ISBN 84-481-0590-7 1998

Larman Craig ldquoAplying UML and Patternsrdquo Prentice Hull 507 Paacuteginas ISBN 0-13-748880-7 QA-769-035-L37-1997 1997

Marriot Kim Meyer Bemd ldquoVisual Language Theoryrdquo Springer 381 Paacuteginas P-935-V567-1998 1998

Microsoft ldquoMicrosoft Visual C++ 6 manual del programadorrdquo McGraw Hill ISBN 84-481-2127-9 QA-7673-Cl53-23718-1999 1999

Microsoft ldquoVisiordquo (lthttpwwwmicrosoftcomofficevisiogt 2002)

B Mourao Luis X ldquoUniversal Modeling Language Part 11 UML Notation - Case Sequence and Collaboration Diagramsrdquo Lan Times Magazine (~httpwwwlantimescomltpartsdiscussdiscuss6Ohtm~) 1998

No Magic ldquoMagicDrawrdquo (lthttpwwwmagicdrawcomgt 2002)

Object Insight ldquoJvisionrdquo (lthttpwwwobject-insightcomgt 2002)

Rational Software Microsoft I Hewlett-Packard Oracle Sterling Software MCI Systemhouse Unisys ICON Computing IntelliCorp i-Logix IBM ObjectTime Platinum Technology Ptech Taskon Reich Technologies Sofieam ldquoUML Summaryrdquo Version 11 Unified Modeling Language 1997

Rational ldquoRational Roserdquo (lthttpwwwrationalcomproductosrosegt 2002)

Rikki Kirzner ldquoAnalysis Modeling and Design Tools Market Forecast and Analysis 2001-2005rdquo Bulletin Published Under Services Application Design and Construction Tools Application Development and Deployment Strategies Documento Nuacutemero 24809 Junio 2001

53

Conceptos generales

[RIM92] Rimrner Steve ldquoGraphical user interface programmingrdquo 423 Paacuteginas

1992

Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language reference manualrdquo Addison Wesley 550 Paacuteginas ISBN 0-201-

ISBN 0-8306-2475-9 ISBN 0-8306-2472-4 (pbk) QA-769-083-R55G

[RUM99]

30998-X QA-7676-D47-R85-1999 1999

[RUM299] Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language user guiderdquo Addisoiz Wesley 482 Paacuteginas ISBN 0-201 -57 168-4 QA-7676-D47-B66-1999 1999

[SMA02] SmartDraw ldquoSmartDrawrdquo (lthttpwwwsmartdrawcomgt 2002)

[SHU88] 9 - Shu Nun C ldquoVisual Programmingrdquo Van Nostrand Reinhold ISBN 0-422- 28014-9 ISBN 0-422-01 164-4 QA-7665-S55 1988

[THI90] Thimbleby Harold ldquoUser Interface Designrdquo Acm press 470 Paacuteginas ISBN 0-201 -41 61 8-2 QA-769U83-T772~- 1990 1990

[WENO2] Wences Diaz MF ldquoModelo de Ingenieriacutea Inversa para la obtencioacuten de disentildeo detallado basado en LEVISSrdquo Tesis (02-0014) 2002

54

Anexo A

Conampuracioacuten de Microsoft Vkua[C++ 6 O

Este anexo indica las configuraciones que se utilizaron para la compilacioacuten de SCUML y s3c

Configuracioacuten de Microsoft Visual c++ 60

Debido a la integracioacuten de los proyectos de InverSOODA e InverDDVi con S3C se cumplioacute con los requisitos previos de ambos proyectos

El compilador usado en el proyecto fue el Microsoft Visual C++ 60

Para el cumplimiento con la funcionalidad de InverSOODA se instaloacute el ANTLR la versioacuten 271 Se descargoacute del sitio l i l l ~ ~ ~ ~ ~ ~ t l ~ l ~ - ~ t - ~ la versioacuten mencionada en un archivo comprimido (en formato zip) Se colocoacute el paquete descomprimido en el directorio ldquoDIANTLR-271 I rdquo

Recomiendo ampliamente que el directorio principal de ANTLR se copie en el directorio raiacutez de cualquier unidad de disco debido a que experimenteacute problemas de compilacioacuten cuando ANTLR no se encontraba en el directorio raiacutez

Io015

Source Browser AlttF12 I u c Ersquo V I

Visual Component Mgnager

- - ~ ~ ~ ~~

P2 Registrar control

A Contenedor de prueba de controles ActiveX

A Usor de objetos OLE y COM

Buacutesqueda de errores

A Y++ MFC Iracer

Customize options

~ - q- ~ Macro

Eecord Quick Macro Cbl+ShiR+R Pay Quick Macro Ctrl+ShiR+P

En el menuacute Tools (Herramientas) seleccione el sub-menuacute Options ltopcionesgt

56

Configuracioacuten de Microsoft Visual C++ 60

En la siguiente ventana de diaacutelogo debe agregar la direccioacuten en donde se encuentra el ANTLR

Agregar la ruta del directorio de ANTLR hasta el subdirectorio

libcpp

Editor I Tabs I Debug I Compatibility 1 Build Dneclolies I a I Chow directories for - Platfolm -

- Directories I x ) 4 jWin32 -] llnclude files

m cancd I

57

Configuracioacuten de Microsoft Visual C t+ 60

Se ha creado una libreriacutea (anrlrliblib) de ANTLR la cual ya estaacute situada en el directorio del proyecto SCUML (ISCUML) y no debe ser movida o eliminada

I

Geneial 1 Debug I CC++ Link I Category

Output file name bebugSCUMLexe

Objectljibrary modules 4 anllrliblib

li Generate debug lnfo r Ignore all defaull lbaries D ~ i n k j n ~ ~ ~ t a n ~ r ~ e n e r ~ ~ ~ mapfile

r Enable psafilrng

Proiec1 Ootionn

pq Cancel 1 Libreriacutea de ANTLR que debe existir 1 I para que se compile correctamente

58

Anexo B

~ u iacute aacute raacutepida de uso deC Sistema S3C

5 Este anexo indica de forma raacutepida la manera de utilizar S3C para crear un diagrama de secuencias de forma automaacutetica

Guiacutea Raacutepida de uso del Sistema S3C i

Para indicar la creacioacuten de un diagrama de secuencias en forma automaacutetica se debe ir a la barra del costado izquierdo y presionar ldquoNuevo Proyecto SCUMLrdquo

I s3c I ~ Nuevo Proyecto SCUML ~ _ _ - I Diagrama de clases ~ Diagrama de secuencias 1 MDI DOC Activo

-

Apareceraacute un documento llamado ldquoSCUMLV en donde el simbolo corresponde a un numero consecutivo iniciando desde 1 (uno)

$ e Despueacutes se presiona ldquoDiagrama de clasesrdquo Habraacute que para indicarle al sistema si se requiere abrir un diagrama de clases existente o realizar uno nuevo

i

iquestAbrir un documento existente

No Cardquo~ear

AI presionar ldquoSirdquo se debe indicar cual es el archivo del diagrama de Clases en el cuadro de diaacutelogo siguiente

~~ - 11dMis documentos rsquo 2 M i P C i lsquo h s sitios de red

I

AI presionar ldquoNordquo en ldquoAbrir un documento existenterdquo se nos mostraraacute un documento vacio para crear un diagrama de clases

60

Guiacutea Raacutepida de uso del Sistema S3C

Para ambas opciones se requiere que los diagramas de Wamier ya se encuentren construidos Y para continuar el proccso se selecciona el documento ldquoSCUMLVrsquo creado al inicio y despueacutes presionar el botoacuten nombrado ldquoDiagrama de secuenciasrdquo localizado en la barra de hcrraiiiicntas del costado izquierdo

Ha iniciado el proceso de construccioacuten del diagrama de secuencias Si no existen errores al terminar el proceso se le mostraraacute un cuadro de diaacutelogo llamado ldquoResultadosrdquo en donde le mostraraacute las llamadas de las que no localizoacute su definicioacuten

- - -

Cancel 1 D e las siguientes llamadas es posible que esten mal escritas o peitenezcan a la libreiia del Lenguaie Verifique ya que no se encontraron sus definiciones

A continuacioacuten se mencionan los posibles errores que finalizan el proceso de la creacioacuten automaacutetica de los diagramas de secuencias en S3C

Cuando no exista un meacutetodo lsquomainrsquo definido en el diagrama de clases

No se encontro el meacutetodo lsquomain()rsquo que inicie la secuencia I A No se puede crear el diagrama de secuencias

p==amp=q

61

Guia Raacutepida de uso del Sistema S3C

Cuando se definan niultiples metodos lsquoinainrsquo en el diagrama de clases

Multiples meacutetodos lsquomainOlsquo Imposible decidir el inicio de secuencia

Aceptar i

Si un meacutetodo definido en Wamier realiza una llamada a lsquomainrsquo se cancelara el proceso

Llamada NO VALIDA al meacutetodo principal main

(iAcp-j(

4 i

CI Y rdquoldquoldquoI i 11 1-T

IZNTRO Gt INFORMACION

62

  • Tabla de Contenido
  • Listado de Figuras
  • Listado de Tablas
  • Notacioacuten
  • Introduccioacuten
  • Capitulo 1 Conceptos Generales
    • 11 Antecedentes
    • 12 Trabajos relacionados
      • 121 Tabla comparativa
        • 13 Definicioacuten del problema
        • 14 Objetivo de la Tesis
          • Objetivos especiacuteficos de la tesis
            • 15 Hipoacutetesis de investigacioacuten
            • 16 Alcances y limitaciones del trabajo de tesis
              • Capitulo 2 Marco Teoacuterico
                • 21 Modelado de sistemas de software
                • 22 Interfaz de usuario (Mecanismos de interaccioacuten)
                • 23 Lenguajes Visuales
                • 24 Programacioacuten orientada a objetos
                • 25 Lenguaje de Modelado Unificado (UML)
                  • Desarrollo de la herramienta
                    • 31 Disentildeo de la Arquitectura
                      • 311 Requisitos (Diagrama de Casos de uso)
                        • 312Modelo Conceptual
                        • 313Diagramas de clases
                        • 32 Elementos de la arquitectura
                          • 321 Microsoft Foundation Class (MFC)
                            • 322Arquitectura Documento Vista
                            • 323Integrando Ambientes en Visual c++
                              • 324 Interfaz de Muacuteltiples Documentos (MDI)
                                • 325Recursos Diaacutelogos Menus y Barras de Herramientas
                                  • 326 Notacioacuten estaacutendar
                                  • 327 Estructura de datos persistencia y recuperacioacuten
                                    • 328Patrones de disentildeo utilizados
                                      • 33 Diagrama de secuencias
                                        • 331Ciclo de vida del software
                                          • 34 Elementos atoacutemicos de la Gramaacutetica
                                            • 341 Representacioacuten visual
                                              • 35 Gramaacutetica desarrollada
                                              • 36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias
                                                  • Capitulo 4 Pruebas y Resultados
                                                    • 41 Recursos teacutecnicos utilizados
                                                    • 42 Descripcioacuten del plan de pruebas
                                                    • 43 Resultados
                                                      • 431 Caso
                                                      • 432 Caso2
                                                      • 433 Caso
                                                          • Conclusiones y trabajos futuros
                                                            • Trabajos futuros
                                                            • Referencias
                                                            • Anexo A Configuracioacuten de Microsoft Visual C+t
                                                              • Figura 11 - Arquitectura de la suite cenidet-UML
                                                              • Figura 21 -Programacioacuten Visual
                                                              • Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de
                                                              • Figura 32 -Diagrama de Casos de Uso para el S3C
                                                              • Figura 33 -Modelo Conceptual
                                                              • Figura 34 - Diagrama de Clases -Control del Diagrama -
                                                              • Figura 35 - Diagrama de Clases - Patroacuten Visitor -
                                                              • Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento
                                                              • Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)
                                                              • Figura 38 -Dialogo Caracteriacutesticas del Objeto
                                                              • Figura 39 -Dialogo Mensaje
                                                              • Figura 3 IO - Menuacute de los Diagramas de Secuencias (estaacutendar)
                                                              • Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias
                                                              • Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)
                                                              • Figura 313 - Serializacioacuten
                                                              • Figura 314 -Modelo de cascada del ciclo de vida del software
                                                              • Figura 41 - Resultado del caso de prueba
                                                              • Figura 42 -Resultado del caso de prueba
                                                              • Figura 43 -Resultado del caso de prueba
                                                              • Figura 44 -Resultado del caso de prueba
                                                              • Tabla 11 - Tabla comparativa
                                                              • Tabla 31 -Prefijos estaacutendar de identificadores
                                                              • Tabla 32 -Elementos atoacutemicos del lenguaje
                                                              • Tabla 41 - Resumen de los resultados de las pruebas realizadas

Desarrollo de la herramienta

______________ 2 Wiew

I - - __ - ------a ________________

323Integrando Ambientes en Visual C t t

Las aplicaciones de Interfaz de Documento Uacutenico (SDI) soporta muacuteltiples tipos de documentos pero este soporte es para un solo objeto documento Debido a esta restriccioacuten y aunado a la necesidad de tener varios objetos documentos a la vez se determina la utilizacioacuten del modelo Interfaz de Muacuteltiples Documentos (MDI) indicado en la Figura 37

324Interfaz de Muacuteltiples Documentos (MDI)

Una aplicacioacuten de Interfaz de Muacuteltiples Documento (MDI) permite la creacioacuten de plantillas para el manejo de los documentos eacutesta plantilla tiene la forma

rn-pDocTemplate = new CMultiDocTernplate ( I DR-SCUMLTY PE RUNTIME-CLASS (CSCUMLDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CTheView))

AddDocTernplate ( rn-pDocTemplate )

Cada plantilla describe una relacion del tipo de documento con la vista asociada La definicioacuten de la plantilla para el ambiente que controla los diagramas de secuencias es la siguiente

29

Desarrollo de la herramienta c

m-pTernplateSeqDlag = new CMultiDocTernplate ( IDR-DS-SJCTYPE RUNTIME-CLASS (CSeqDiagDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CSeqDiagView) )

AddDocTernplate( rn-pTernplateSeqDiag )

Esta plantilla hace uso de la clase CCliildFrame que por defecto el ambiente Visual C++ construye y esto es debido a que no se requieren caracteriacutesticas extras en las ventanas de las que proporciona dicha clasc En un caso en el que se requiriera un comportamiento diferente de la vista tendriacutea que crearse una nueva clase con las caracteriacutesticas deseadas

Vista Documento

Vista

I- Vista Documento I [ Tip- F Vista

L Figura 37 Modelo Interfaz de Muacuteltiples Documentos (MDI)

Para integrar otro Ambiente que utilice otro tipo de documento es necesario definir otra plantilla de la misma forma mencionada Debe tomarse en cuenta los siguientes puntos

Es necesario definir el nombre (mqTemplateNOMBRE) El IDR del tipo que se requiere que sea el documento En la primera liacutenea RUNTIME CLASS debe indicar la clase ltCDocumentgt que desea La segunda liacutenea RUNTIME-CLASS soacutelo la cambia a otra clase si requiere de otro manipulador de ventanas de lo contrario deje que ltCChildFramegt se haga cargo

-

30

Desarrollo de la herramienta

En la uacuteltima liacutenea referente a RUNTIME-CLASS se debe indicar la clase ltCViewgt que desea usar Para finalizar se usa la instruccioacuten AddDocTernplate para finalizar la definicioacuten del template (mgTemplateNOMBRE)

325 Recursos Diaacutelogos Mertuacutes y Barras de Herrattriertias

Son varios los recursos con los que se puede contar al crear un proyecto en Microsoft Visual C++ Los diaacutelogos son un recurso disponible que son utilizados para visualizar ingresar yo modificar informacioacuten que se requiera En el Ambiente Visual que se desarrolla son varios los diaacutelogos que se utilizaraacuten y eacutestos se describen a continuacioacuten

El Diaacutelogo ldquoCaracteriacutesticas del Obietordquo (Figura 38) identifica el nombre del Objeto y la descripcioacuten del mismo Este diaacutelogo se muestra cuando se presiona doble clic sobre un objeto del diagrama

I Nombre

Desciipcion

Figura 38 Dialogo Caracteriacutesticas del Objeto

El Diaacutelogo ldquoMensaierdquo (Figura 39) muestra el nombre del mensaje que puede ser modificado ademaacutes se visualizan el Identificador del Mensaje el tipo de Mensaje asiacute tambieacuten el origen y destino del mensaje

31

Desarrollo de la herramienta

Nornbie delMensaje Edit

IDentificador del Mensaje Edil Tipo de Mensaje (Edil

Edit Objeto Origen

Objeto Destino IEdit

i25El A Figura 39 Dialogo Mensaje

El menuacute es otro de los recursos del que se puede disponer para organizar el ambiente que se estaacute creando Para eacuteste caso en particular no se hizo modificaciones al menuacute estaacutendar (Figura 310) que Visual C++ presenta Los cambios significativos son el manejo del tipo de documento para los Diagramas de Secuencias

Archivo Editar Yer VenLana AyGda

Figura 310 Menuacute de los Diagramas de Secuencias (estaacutendar)

Otro importante recurso del que uno se puede valer en Visual C++ es la barra de herramienta personalizada la cuaacutel es construida en el Editor de Recursos Se ha construido una barra (Figura 311) con los elementos graacuteficos de los Diagramas de Secuencia de UML

Figura 311 Barra de Herramientas de los Diagramas de Secuencias

Es recomendable que al utilizar barras de herramienta personalizada se defina en el tamantildeo estaacutendar ya que puede experimentar problemas al momento de ejecutar la aplicacioacuten

Ademaacutes puede usar la propiedad TBBS-CHECKGROUP en una barra de herramientas para establecer que los botones puedan quedar presionados hasta que un botoacuten diferente sea presionado No olvide que la numeracioacuten inicia con cero ( O )

vuriableToolBurSetButtonStyle(OTBBSCHECKGROUP)

32

Desarrollo de la herramienta

Prefijo ID IDC IDD IDP IDR IDS

326 Notacioacuten estaacutendar

Los nombres descriptivos de los recursos se asocian a un valor uacutenico Para una mayor claridad eacutestos nombres mantienen un prefijo que describe el tipo de recurso asociado (vea la Tabla 31) [MIC99]

Tipo de Recurso Comandos de Menuacute Controles y recursos Cuadros de diaacutelogo Cadenas de solicitud para cuadros de mensaje Menuacute principal barras de herramienta tabla aceleradora y el icono Cadenas

IDR IDD IDC ID

200 - 299 3000 - 3999 34000 - 34999

Estos son los rangos de valores establecidos para el proyecto S3C Si se utiliza el coacutedigo fuente y se planea agregar otro proyecto verifisue que no se invadan estos nuacutemeros para evitar problemas

Para facilitar auacuten maacutes los trabajos futuros se ha definido una estructura de carpetas (ver Figura 312) para incluir en cada una las Clases correspondientes a cada tesis en desarrollo

33

Desarrollo de la herramienta

ill ~~ -

-I SCUML classes + U A N T L R + U App + 0 ClassDiagrams + 0 Common + a Java

t $2 SequenceDiagiams

+ WarnierDiagrams

iJ PackageDiagrams

12 StaterChartDiagrams

+

- f Classview I Resourceview 1 FileView ]

~ ~

Figura 312 Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)

327Estructura de datos persistencia y recuperacioacuten

Existe una gran cantidad de tipos de datos estructuras clases y meacutetodos de los que se puede hacer uso para una mejor y maacutes faacutecil obtencioacuten de los resultados A continuacioacuten hago comentarios en tipos de datos y meacutetodos en los que podriacutea tener problemas

CTypedPtrList

AI usar este tipo de dato o alguno relacionado que le permita utilizar el meacutetodo ltCTvrgtedPtrListGetNextgt tenga especial precaucioacuten al usarlo ya que al devolver el valor requerido la variable POSITION usada no se queda apuntando a ese valor en particular salta al inmediato siguiente de la lista

Si se realiza una creacioacuten dinaacutemica con punteros para los elementos de una CTypedPtrList Despueacutes de haberlo agregado a la lista evite el delete para borrar esta Usted deseando liberar la memoria no lo haga ya que eliminara directamente el elemento de la lista

POSITION

Es un valor usado para denotar una posicioacuten de un elemento en una coleccioacuten Pero CUIDADO no se refiere a un iacutendice es una referencia (no consecutiva) de punteros muy diferente a un iacutendice

CString

Auacuten cuando el operador de comparacioacuten == (igual a) es permitido para ser utilizado en las cadenas evite su uso ya que en ocasiones aunque cuando la e

34

Desarrollo de la herramienta

compilacioacuten no indique error alguno en la ejecucioacuten no realizaraacute lo que se necesita Recomiendo que utilice CStringCompare ()

Para eliminar el contenido de un CString utilice CStringEmpty() ya que asignar a la cadena un ldquonrdquo podriacutea causarle problemas

Serializacioacuten

Una forma en que se puede guardar informacioacuten y recuperarla de manera eficaz es mediante la serializacioacuten de objetos La serializacioacuten es un proceso que permite escribir un objeto en un archivo y tambieacuten leerlo

Para que la serializacioacuten se lleve a cabo son necesarios tres objetos un objeto de tipo ltCFilegt que represente el archivo un objeto de tipo ltCArchivegt que ofrece el entorno para la serializacioacuten y la clase del objeto a ser serializado debe ser heredada de ltCObjectgt y sobrescribir el meacutetodo ltSerializegt para que se encuentre de tal forma en que pueda ser serializado (vea la Figura 313)

Objeto a ser serializado 1

1 CArchive

[f --=I- ---7 Archivoexi

u Figura 313 Serializacioacuten

328Patrones de disentildeo utilizados

Se ha planteado la definicioacuten de una arquitectura de clases utilizando patrones de disentildeo debido a que algunos de ellos hacen maacutes faacutecil la extensioacuten de la funcionalidad y mantenimiento

35

Desarrollo de la herramienta

El patroacuten Composite es utilizado para crear de manera uniforme el diagrama sobre el que se trabaja (ver Figura 34) manteniendo una jerarquiacutea de clases uniforme las clases maacutes bajas en la jerarquiacutea definen primitivas de objetos graacuteficos

Se aplica el patroacuten de disentildeo Iterator para hacer recorridos en listas de objetos para realizar diversas operaciones Otro patroacuten de disentildeo del que se hace uso es el Visilor (ver Figura 35)

Para otras actividades que se realizan podriacutea pensarse en que se deberiacutean aplicar otros patrones pero se han evitado algunos (como el patroacuten de disentildeo Builder) para evitar incrementar la complejidad en la arquitectura ya que ai mantener el modelo de la MFC de documentovista la funcionalidad del patroacuten de disentildeo Builder es faacutecilmente reemplazado si se hiciera Uso de eacuteste se aumentariacutea la complejidad excesivamente (nos llevariacutea a perdemos en ocasiones en el paso de mensajes entre clases) dantildeando la facilidad de la arquitectura

33 Diagrama de secuencias

Un Diagrama de Secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten escenario Oacute comportamiento se usan para definir el curso loacutegico de accioacuten de un posible camino a seguir en la resolucioacuten de un problema Seguacuten John Daniels [DANO2] ldquoel principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildean las interacciones de los objetosrdquo

Los Diagramas de Secuencias se utilizan en el modelado de la implementacioacuten de sistemas de software ademaacutes son aplicables en el modelado de requisitos para establecer las comunicaciones existentes entre actores yo clases del sistema Con eacutestos diagramas se logran hacer descripciones de los escenarios y los comportamientos del sistema Con los Diagramas de Secuencias es posible definir protocolos de comunicacioacuten con paso de mensajes ya que dan esa flexibilidad que se requiere Ademaacutes los Diagramas de Secuencias contienen informacioacuten suficiente para que puedan ser transformados a los diagramas de colaboracioacuten [RUM Ol][BOO Oil

331Ciclo de vida del software

Considerando cualquier modelo de ciclo de vida del software (en la figura 314 se muestra el Modelo de cascada) el aacutembito directo de eacuteste Ambiente Visual es en el disentildeo aunque tiene sus vertientes en la codificacioacuten y mantenimiento

36

Desarrollo de la herramienta

Diseno

Codificacibn

I I I I Mantenimiento I

igura 314 Modelo de cascada del ciclo de vida del software

34 Elementos atoacutemicos de la Gramaacutetica

Definicioacuten de los elementos atoacutemicos del lenguaje y su contenido

1 Actor- Representa roles de entidad externos al sistema con el que interactuacutea directamente Los actores pueden ser humanos dispositivos u otros sistemas

2 ClaseObjeto- Determina una Clase u Objeto participante en la interaccioacuten

3 Mensaje-Es una comunicacioacuten entre objetos que contiene informacioacuten Eacuteste se representa con la finalidad a que una accioacuten sea llevada a cabo

4 Mensaje con tiempo- Tiene la misma finalidad que el mensaje la diferencia es que con eacutel se representa un atributo de tiempo

5 Mensaje asiacutencrono Es un mensaje que ocurre en el tiempo de manera independiente a otros mensajes

6 Mensaje de destruccioacuten de objeto- Es un mensaje cuya finalidad es indicar la destruccioacuten del objeto destino

7 Mensaje de creacioacuten de objeto- Es un mensaje que indica la creacioacuten de un objeto

8 Llamada al mismo objeto (Recursividad)- Es usado para modelar llamadas recursivas en el que una operacioacuten es invocada por el mismo objeto

37

Desarrollo de la herramienta

9 Destruccioacuten del objeto (AutodestrucciOacuten)- Puede o no modelarse es representada con una X al final de la liacutenea de vida del objeto

Elementos aulomaacuteticos

1 Liacutenea de Vida- Representa la vida del objeto durante la interaccioacuten

2 Activacioacuten- Muestra el periacuteodo de tiempo en el cual el objeto alguna operacioacuten

341RepresentaciOacuten visual

Representacioacuten visual de los elementos atoacutemicos del lenguaje

Actor

_- A

Mensaje

Mensaje de Creacioacuten de

Objeto

ClaseObjeto

I

Mensaje de retorno

Mensaje de Destruccioacuten de

Objeto

abla 32 Element(

Activacioacuten

Mensaje con tiempo

Autodestruccioacuten

x

atoacutemicos del lengi

taacute realizz

Texto ===I (letra)+ (letra I

numero) letra= AZ I az numero = 09

I

Recursividad ~

I

i j e

io

38

u

Comentario

iexcl

Conector de Comentario

35 Gramaacutetica desarrollada

La gramaacutetica que se propone es una gramaacutetica visual del tipo relacional Una gramaacutetica relacional pertenece a las gramaacuteticas libres de contexto es una 6-iupla G (N C S R Attr P) donde

N es un conjunto finito de siacutembolos no terminales C es un conjunto de siacutembolos terminales S es un siacutembolo distinguido en N llamado siacutembolo inicial R es un conjunto finito de siacutembolos de relacioacuten Attr es un conjunto finito de siacutembolos de atributos P es un conjunto de producciones

Entonces definiendo nuestra gramaacutetica G (N C S R Attr P)

N = Diagrama GrupoClaseObjeto

S = Diagrama

R = mensaje mensajeTiempo mensajeRetomo mensajeAsincrono mensajecrea mensajeDestruye autodestruccioacuten recursividad

R

Attr = entrada salida entradacrea

39

Desarrollo de la herramienta

Definiendo la posicioacuten de los atributos en los elementos visuales

entradacrea ObetaClase

entrada

salida

P =

Diagrama I GrupoClaseObjeto (mensaje (mensajeRetorno

(salida 1) (entrada 2) ) (salida 2) (entrada 1) )

- Diagrama 0 GrupoClaseObjeto

(mensaje (mensaje (mensajeRetomo (mensajeRetomo (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entradacrea 2) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 1) ) (salida 1) (entrada 1) )

entrada

salida

40

Desarrollo de la herramienta

s

-

GrupoClaseObjeto - 1 1 I 2 (mensaje (mensaje (mensajeRetorno (mensajeRetorno (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entradacrea 2) ) (salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 1) ) (salida I ) (entrada I ) )

1 En las gramaacuteticas relacionales una produccioacuten estaacute acompantildeada de las posibles

relaciones que puedan generarse En la primera produccioacuten Diagrama produce a un Actor seguida de un GrupoClaseObjeto el Actor inicia la interaccioacuten con un mensaje y recibe el mensaje de retorno al finalizar la interaccioacuten La segunda y tercera produccioacuten son similares debido a que un GrupoClaseObjeto contiene dos ClaseObjeto que se relacionan de la misma forma

Existe un elemento de la gramaacutetica llamado Attr (Atributo) el cual define la parte de los elementos visuales donde se establecen las relaciones Se han determinado dos atributos (entrada y salida) que para nuestro propoacutesito estaraacuten establecidos en la liacutenea de vida de cada elemento visual (Actor y ClaseObjeto)

Los Comentarios y la Activacioacuten no se consideran en la gramaacutetica Los comentarios son libres de incluirse y relacionarse con cualquier elemento y relacioacuten mencionada anteriormente y la activacioacuten existe siempre que se presente un mensaje (o podriacutea omitirse) Estas consideraciones se realizaron para hacer auacuten maacutes faacutecil la gramaacutetica ya que si se trata de realizar un sistema las restricciones de estos elementos pueden mantenerse en el lenguaje de programacioacuten en el que se desarrolle el sistema

36

Precondiciones

El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias

1 El diagrama de Clases debe existir y estar completo 2 Debe existir un archivo con un diagrama de Warnier por cada diagrama de Clases y

con el mismo nombre de archivo (excepto la extensioacuten del archivo) 3 En el uacutenico diagrama de Warnier de cada Clase se deben modelar todos los meacutetodos

de la Clase 4 No realizar declaraciones de meacutetodos

41

Desarrollo de la herramienta

5 Debe existir un meacutetodo lsquomain()rsquo en el diagrama de Clases

Restricciones

Los meacutetodos deben mantener nombres distintos en las diferentes Clases

Metodologiacutea para la obtencioacuten automaacutetica de los Diagramas de Secuencias

1 Seleccionar el diagrama de Clases

2 Se construye una lista con los nombres de las Clases y los Meacutetodos

3 Se verifica si exista el meacutetodo lsquomain()rsquo en alguna Clase Se busca la existencia de una uacutenica Clase

a La Clase que contenga lsquomain()rsquo se va al inicio de la lista de Clases

b Si no existe lsquomain()rsquo SE TERMINA EL PROCESO

4 Se verifica la existencia de los archivos que contienen el Disentildeo Detallado de los meacutetodos en Wamier para cada una de las Clases si alguno falta SE TERMINA EL PROCESO

5 Se procesa cada uno de los modelos del Disentildeo Detallado de los Meacutetodos generando una lista de secuencias de llamadas por cada uno de los meacutetodos

6 Se verifica que cada llamada corresponda a alguacuten meacutetodo existente (del diagrama de Clases) De no existir ese meacutetodo la llamada entra a una estructura que

7 Se crea una lista de secuencia

a Se inicia con lsquomain()rsquo b Se recorre cada una de las llamadas de los meacutetodos c Se considera invaacutelido el caso de que un meacutetodo intente una llamada

recursiva al meacutetodo lsquomain()rsquo

8 Se muestra un diaacutelogo de resultados en el que se indican las llamadas que no se encnotraron definidas y que pueden ser Llamada a libreriacutea oacute Llamada Erroacutenea

42

Capiacutetulo 4

Prue6as y su6taaacuteos

En eacuteste capiacutetulo se da a conocer el detalle de las pruebas y de los resultados obtenidos Se describen los casos de prueba con los que se realizoacute la evaluacioacuten del sistema asiacute tambieacuten se presentan comentarios acerca de los resultados obtenidos

Pruebas y Resultados

41 Recursos teacutecnicos utilizados

Para llevar a cabo las pruebas al sistema S3C se utilizaron los siguientes equipos de Coacutemputo

Computadora de escritorio

256MB RAM Disco Duro 80G Monitor 17rdquo SAMSUNG

AMD Athlon XP 1600+ I4Ghz

Computadora de escritorio Intel Pentium 4 - 128MB RAM Disco Duro 40G Monitor 15rdquo i -

42 Descripcioacuten del plan de pruebas

Las pruebas establecen el Uacuteltimo paso desde donde es posible evaluar la calidad y descubrir los errores Las pruebas y la validacioacuten del software se utilizan para comprobar que el sistema cumple con las expectativas del usuario

En esta seccioacuten se describen los casos de prueba que se realizaron al prototipo de S3C en conjunto a la suite cenidet-UML Para cada uno de los casos se presenta el objetivo el procedimiento que se siguioacute para la prueba y se muestran los resultados obtenidos - _

Las pruebas a realizar son los siguientes

Caso 1 Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Caso 2 Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Wamier

Caso3 Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Wamier

Caso4 Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo 5

44

Pruebas y Resultados

43 Resultados

431 Caso 1

5 Y

IZ =

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoSirdquo 4 Seleccionar el archivo ldquoVENTASrdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 41 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

s3c iuevo Proyecto SCUM1

Diagrama de clases

lvendedor I L

3

salida

venta prod

4 venia-oferta vcntaprod =

salida 6

Figura 41 Resultado del caso de prueba 1

45

Pruebas y Resultados

432 Caso 2

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Warnier (almacenwar cajawar vendedorwar) que ya cxisten (del caso de prueba I )

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoNordquo 4 Agregar las siguientes Clases con los respectivos meacutetodos y atributos

a Claseldquovendedorrdquo Meacutetodos ldquoventa mainrdquo b Claseldquoalmacenrdquo Meacutetodos ldquoentrada salidardquo c Claseldquocajardquo Meacutetodos ldquoventagrodrdquo

5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 42 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

Diagrama de daseo lisgrama dcsccucncis

MOIDOC Anivo

venta prod

salida

1 Ycrdquo1a 2

I 4 vcrdquolD~o1cn venta prod gt

salida 6 i Figura 42 Resultado del caso de prueba 2

46

Pruebas y Resultados

r

433 Caso 3

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Warnier

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 43 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

5

Error al tratar de abrir el archivo A bZwar

Aceptar i

Faltan Archivos de Disentildeos Detallados de Meacutetodos 1 1 A No se puede crear el diagrama de secuencias

Figura 43 Resultado del caso de prueba 3

47

Pruebas y Resultados

434 Caso 4

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 44 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

lsquo I

~ _ i i _ l _ Repaado ~~ ~ ~ 6~ ampA Figura 44 Resultado del caso de prueba 4

48

Pruebas y Resultados

PRUEBA DESCNPCION CASO 1 Mostrar la funcionalidad del

Sistema S3C a partir de un

44 Anaacutelisis de Resultados

RESULTADOS Se comproboacute la correcta funcionalidad del Sistema S3C a partir de un diagrama

CASO 3

CASO4

I diagrama de Clases cxistcnte I de Clases existente CASO 2 I Mostrar la funcionalidad del I Sc comproboacute la corrccta funcionalidad

Sistema S3C a partir de un del Sistema S3C a partir de un diagrama diagrama de Clases que se de Clases que se construye al momento construye al momento Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el Secuencias si falta alguno de los diagrama de Secuencia si falta alguno diagramas de Warnier Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el secuencias si hace falta el meacutetodo diagrama de Secuencias al faltar el ldquomain ()rdquo meacutetodo ldquomain()rdquo

de los diagramas de Warnier

Los resultados obtenidos de cada uno de los casos establecidos demuestran que se validoacute la funcionalidad del prototipo con los requisitos definidos en el alcance de este proyecto

a lt

49

Conclusiones y Tru6ajos Futuros

Aquiacute se dan a conocer las conclusiones y se describen los posibles trabajos futuros para la continuacioacuten de eacuteste proyecto

F

51 Conclusiones

Conclusiones y trabajos futuros

Se ha creado un Ambiente Visual que permite obtener de forma automaacutetica los Diagramas de Secuencias en base a los diagramas de Clases y al disentildeo detallado de los meacutetodos descritos con diagramas de Warnier cumpliendo con los objetivos planteados para este trabajo

La tesis aporta principalmente La generacioacuten automaacutetica de los diagramas de secuencias y la eliminacioacuten de inconsistencias al mantener una validacioacuten directa de los diagramas de clases y los diagramas de Warnier que son utilizados

Esta validacioacuten es lograda a traveacutes del uso de la gramaacutetica visual relaciona1 que se ha definido (veacutease el capiacutetulo 3) Esta gramaacutetica visual establece reglas para la correcta construccioacuten de los diagramas de secuencias

P De esta manera se establece que la hipoacutetesis ldquoEs posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodosrdquo Es verdadera

52 Trabajos Futuros

Un Diagrama de Secuencias puede convertirse en un Diagrama de Colaboracioacuten por lo tanto un trabajo futuro es la construccioacuten automaacutetica de un Diagrama de Colaboracioacuten a partir de uno de Secuencias existente

Es posible calcular la meacutetrica de acoplamiento al tener un Diagrama de Secuencias construido

La Ingenieriacutea directa de un Diagrama de Secuencias estableciendo la validacioacuten en la construccioacuten de todos los elementos visuales que UML define

La propagacioacuten de las modificaciones de un Diagrama de Secuencias a los Diagramas de Clases y los Diagramas de Warnier

La modificacioacuten del coacutedigo fuente mediante los cambios establecidos en un Diagrama de Secuencias

51

[ALC03]

[BLA98]

[B0099]

[BOOOi]

[BR097]

[CHA90]

[DAN02]

[GLA02]

[HAC98]

[HER03]

4

Alcate1 Computer Associates International inc Electronic Data Systems Corporation Hewlett-Packard Company IBM Corporation I-Logix IntelliCorp Kabira Technologies Kennedy Carter Microsoft Corporation Object Management Group Oracle Corporation Project Technology Ptech Inc Rational Software Corporation Reich Technologies Softeam Taskon A S Telelogic Unisys Corporation ldquoOMG Unified Modeling Language Specificationrdquo Version 15 Unified Modeling Language 2003

Blaha Michael Rumbaugh James Premerlani William Eddy Frederick Lorensen William ldquoObject-oriented modeling and designrdquo Prentice Hall 484 Paacuteginas ISBN 0-13-629841-9 QA-769-03S-B53-19981998

Booch Grady Rumbaugh James Jacobson Ivar ldquoEl lenguaje unificado de modeladordquo Addison Wesley 432 Paacuteginas ISBN 84-7829-028-1 1999

Booch Grady Rumbaugh James Jacobson Ivar ldquoThe Unified Modeling Language User Guiderdquo Addison Wesley 2001

Brown David ldquoAn introduction to object-oriented analysis objects in plain Englishrdquo John Whiley amp Sons Inc 700 Paginas ISBN 0-471-1 1028-0 QA-769-035-B76-1997 1997

Chang Shi-Kuo ldquoVisual Languages and visual programmingrdquo Plenum Press 340 Paacuteginas ISBN 0-306-43428-8 QA-7665-V57-1990 1990

Daniels John ldquoModeling with a sense of purposerdquo Design - IEEE Software JanuaryEebmary 2002

Glasgow Universidad Reino Unido ldquoA UML Editor in Javardquo (lthttplstudentsdcsglaacuWstudentspainjfproject-reportproject-re port-htmV4thYearReporthtrnlgt 2002)

T Hackos JoAnn C Redish Janice ldquoUser and Task Analysis for Interface Designrdquo Wiley Computer Publishing 488 Paacuteginas ISBN QA-769-U83- H33-1998 1998

Hemaacutendez Velaacutezquez M ldquoIngenieriacutea inversa de coacutedigo fuente en C++ para la obtencioacuten de su disentildeordquo Tesis AT-379 (03-0334) 2003

Conceptos generales

[HIX93]

[JAC93]

[JAC99]

[JOY98]

[LAR97]

[MAR]

[MIC99]

[MIC02]

[MOU98]

Hix Deborah Hartson H Rex ldquoDeveloping user interfacesrdquo 381 Paacuteginas ISBN 0-471-57813-4 QA-769-U83-H59-1993 1993

Jacobson Ivar Christerson Magnus Jonsson Patrik Overgaard Gunnar ldquoObject oriented software engineeringrdquo Addison Wesley ISBN 0-20 1 - 54435-0 QA-7676-D47-J63-1993 1993

Jacobson Ivar Booch Grady Rumbaugh James ldquoEl proceso unificado de desarrollo de softwarerdquo Addison Wesley 438 Paacuteginas ISBN 84-7829-036- 2 1999

Joyanes Aguilar Luis ldquoProgramacioacuten orientada a objetosrdquo McGruw Hill ISBN 84-481-0590-7 1998

Larman Craig ldquoAplying UML and Patternsrdquo Prentice Hull 507 Paacuteginas ISBN 0-13-748880-7 QA-769-035-L37-1997 1997

Marriot Kim Meyer Bemd ldquoVisual Language Theoryrdquo Springer 381 Paacuteginas P-935-V567-1998 1998

Microsoft ldquoMicrosoft Visual C++ 6 manual del programadorrdquo McGraw Hill ISBN 84-481-2127-9 QA-7673-Cl53-23718-1999 1999

Microsoft ldquoVisiordquo (lthttpwwwmicrosoftcomofficevisiogt 2002)

B Mourao Luis X ldquoUniversal Modeling Language Part 11 UML Notation - Case Sequence and Collaboration Diagramsrdquo Lan Times Magazine (~httpwwwlantimescomltpartsdiscussdiscuss6Ohtm~) 1998

No Magic ldquoMagicDrawrdquo (lthttpwwwmagicdrawcomgt 2002)

Object Insight ldquoJvisionrdquo (lthttpwwwobject-insightcomgt 2002)

Rational Software Microsoft I Hewlett-Packard Oracle Sterling Software MCI Systemhouse Unisys ICON Computing IntelliCorp i-Logix IBM ObjectTime Platinum Technology Ptech Taskon Reich Technologies Sofieam ldquoUML Summaryrdquo Version 11 Unified Modeling Language 1997

Rational ldquoRational Roserdquo (lthttpwwwrationalcomproductosrosegt 2002)

Rikki Kirzner ldquoAnalysis Modeling and Design Tools Market Forecast and Analysis 2001-2005rdquo Bulletin Published Under Services Application Design and Construction Tools Application Development and Deployment Strategies Documento Nuacutemero 24809 Junio 2001

53

Conceptos generales

[RIM92] Rimrner Steve ldquoGraphical user interface programmingrdquo 423 Paacuteginas

1992

Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language reference manualrdquo Addison Wesley 550 Paacuteginas ISBN 0-201-

ISBN 0-8306-2475-9 ISBN 0-8306-2472-4 (pbk) QA-769-083-R55G

[RUM99]

30998-X QA-7676-D47-R85-1999 1999

[RUM299] Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language user guiderdquo Addisoiz Wesley 482 Paacuteginas ISBN 0-201 -57 168-4 QA-7676-D47-B66-1999 1999

[SMA02] SmartDraw ldquoSmartDrawrdquo (lthttpwwwsmartdrawcomgt 2002)

[SHU88] 9 - Shu Nun C ldquoVisual Programmingrdquo Van Nostrand Reinhold ISBN 0-422- 28014-9 ISBN 0-422-01 164-4 QA-7665-S55 1988

[THI90] Thimbleby Harold ldquoUser Interface Designrdquo Acm press 470 Paacuteginas ISBN 0-201 -41 61 8-2 QA-769U83-T772~- 1990 1990

[WENO2] Wences Diaz MF ldquoModelo de Ingenieriacutea Inversa para la obtencioacuten de disentildeo detallado basado en LEVISSrdquo Tesis (02-0014) 2002

54

Anexo A

Conampuracioacuten de Microsoft Vkua[C++ 6 O

Este anexo indica las configuraciones que se utilizaron para la compilacioacuten de SCUML y s3c

Configuracioacuten de Microsoft Visual c++ 60

Debido a la integracioacuten de los proyectos de InverSOODA e InverDDVi con S3C se cumplioacute con los requisitos previos de ambos proyectos

El compilador usado en el proyecto fue el Microsoft Visual C++ 60

Para el cumplimiento con la funcionalidad de InverSOODA se instaloacute el ANTLR la versioacuten 271 Se descargoacute del sitio l i l l ~ ~ ~ ~ ~ ~ t l ~ l ~ - ~ t - ~ la versioacuten mencionada en un archivo comprimido (en formato zip) Se colocoacute el paquete descomprimido en el directorio ldquoDIANTLR-271 I rdquo

Recomiendo ampliamente que el directorio principal de ANTLR se copie en el directorio raiacutez de cualquier unidad de disco debido a que experimenteacute problemas de compilacioacuten cuando ANTLR no se encontraba en el directorio raiacutez

Io015

Source Browser AlttF12 I u c Ersquo V I

Visual Component Mgnager

- - ~ ~ ~ ~~

P2 Registrar control

A Contenedor de prueba de controles ActiveX

A Usor de objetos OLE y COM

Buacutesqueda de errores

A Y++ MFC Iracer

Customize options

~ - q- ~ Macro

Eecord Quick Macro Cbl+ShiR+R Pay Quick Macro Ctrl+ShiR+P

En el menuacute Tools (Herramientas) seleccione el sub-menuacute Options ltopcionesgt

56

Configuracioacuten de Microsoft Visual C++ 60

En la siguiente ventana de diaacutelogo debe agregar la direccioacuten en donde se encuentra el ANTLR

Agregar la ruta del directorio de ANTLR hasta el subdirectorio

libcpp

Editor I Tabs I Debug I Compatibility 1 Build Dneclolies I a I Chow directories for - Platfolm -

- Directories I x ) 4 jWin32 -] llnclude files

m cancd I

57

Configuracioacuten de Microsoft Visual C t+ 60

Se ha creado una libreriacutea (anrlrliblib) de ANTLR la cual ya estaacute situada en el directorio del proyecto SCUML (ISCUML) y no debe ser movida o eliminada

I

Geneial 1 Debug I CC++ Link I Category

Output file name bebugSCUMLexe

Objectljibrary modules 4 anllrliblib

li Generate debug lnfo r Ignore all defaull lbaries D ~ i n k j n ~ ~ ~ t a n ~ r ~ e n e r ~ ~ ~ mapfile

r Enable psafilrng

Proiec1 Ootionn

pq Cancel 1 Libreriacutea de ANTLR que debe existir 1 I para que se compile correctamente

58

Anexo B

~ u iacute aacute raacutepida de uso deC Sistema S3C

5 Este anexo indica de forma raacutepida la manera de utilizar S3C para crear un diagrama de secuencias de forma automaacutetica

Guiacutea Raacutepida de uso del Sistema S3C i

Para indicar la creacioacuten de un diagrama de secuencias en forma automaacutetica se debe ir a la barra del costado izquierdo y presionar ldquoNuevo Proyecto SCUMLrdquo

I s3c I ~ Nuevo Proyecto SCUML ~ _ _ - I Diagrama de clases ~ Diagrama de secuencias 1 MDI DOC Activo

-

Apareceraacute un documento llamado ldquoSCUMLV en donde el simbolo corresponde a un numero consecutivo iniciando desde 1 (uno)

$ e Despueacutes se presiona ldquoDiagrama de clasesrdquo Habraacute que para indicarle al sistema si se requiere abrir un diagrama de clases existente o realizar uno nuevo

i

iquestAbrir un documento existente

No Cardquo~ear

AI presionar ldquoSirdquo se debe indicar cual es el archivo del diagrama de Clases en el cuadro de diaacutelogo siguiente

~~ - 11dMis documentos rsquo 2 M i P C i lsquo h s sitios de red

I

AI presionar ldquoNordquo en ldquoAbrir un documento existenterdquo se nos mostraraacute un documento vacio para crear un diagrama de clases

60

Guiacutea Raacutepida de uso del Sistema S3C

Para ambas opciones se requiere que los diagramas de Wamier ya se encuentren construidos Y para continuar el proccso se selecciona el documento ldquoSCUMLVrsquo creado al inicio y despueacutes presionar el botoacuten nombrado ldquoDiagrama de secuenciasrdquo localizado en la barra de hcrraiiiicntas del costado izquierdo

Ha iniciado el proceso de construccioacuten del diagrama de secuencias Si no existen errores al terminar el proceso se le mostraraacute un cuadro de diaacutelogo llamado ldquoResultadosrdquo en donde le mostraraacute las llamadas de las que no localizoacute su definicioacuten

- - -

Cancel 1 D e las siguientes llamadas es posible que esten mal escritas o peitenezcan a la libreiia del Lenguaie Verifique ya que no se encontraron sus definiciones

A continuacioacuten se mencionan los posibles errores que finalizan el proceso de la creacioacuten automaacutetica de los diagramas de secuencias en S3C

Cuando no exista un meacutetodo lsquomainrsquo definido en el diagrama de clases

No se encontro el meacutetodo lsquomain()rsquo que inicie la secuencia I A No se puede crear el diagrama de secuencias

p==amp=q

61

Guia Raacutepida de uso del Sistema S3C

Cuando se definan niultiples metodos lsquoinainrsquo en el diagrama de clases

Multiples meacutetodos lsquomainOlsquo Imposible decidir el inicio de secuencia

Aceptar i

Si un meacutetodo definido en Wamier realiza una llamada a lsquomainrsquo se cancelara el proceso

Llamada NO VALIDA al meacutetodo principal main

(iAcp-j(

4 i

CI Y rdquoldquoldquoI i 11 1-T

IZNTRO Gt INFORMACION

62

  • Tabla de Contenido
  • Listado de Figuras
  • Listado de Tablas
  • Notacioacuten
  • Introduccioacuten
  • Capitulo 1 Conceptos Generales
    • 11 Antecedentes
    • 12 Trabajos relacionados
      • 121 Tabla comparativa
        • 13 Definicioacuten del problema
        • 14 Objetivo de la Tesis
          • Objetivos especiacuteficos de la tesis
            • 15 Hipoacutetesis de investigacioacuten
            • 16 Alcances y limitaciones del trabajo de tesis
              • Capitulo 2 Marco Teoacuterico
                • 21 Modelado de sistemas de software
                • 22 Interfaz de usuario (Mecanismos de interaccioacuten)
                • 23 Lenguajes Visuales
                • 24 Programacioacuten orientada a objetos
                • 25 Lenguaje de Modelado Unificado (UML)
                  • Desarrollo de la herramienta
                    • 31 Disentildeo de la Arquitectura
                      • 311 Requisitos (Diagrama de Casos de uso)
                        • 312Modelo Conceptual
                        • 313Diagramas de clases
                        • 32 Elementos de la arquitectura
                          • 321 Microsoft Foundation Class (MFC)
                            • 322Arquitectura Documento Vista
                            • 323Integrando Ambientes en Visual c++
                              • 324 Interfaz de Muacuteltiples Documentos (MDI)
                                • 325Recursos Diaacutelogos Menus y Barras de Herramientas
                                  • 326 Notacioacuten estaacutendar
                                  • 327 Estructura de datos persistencia y recuperacioacuten
                                    • 328Patrones de disentildeo utilizados
                                      • 33 Diagrama de secuencias
                                        • 331Ciclo de vida del software
                                          • 34 Elementos atoacutemicos de la Gramaacutetica
                                            • 341 Representacioacuten visual
                                              • 35 Gramaacutetica desarrollada
                                              • 36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias
                                                  • Capitulo 4 Pruebas y Resultados
                                                    • 41 Recursos teacutecnicos utilizados
                                                    • 42 Descripcioacuten del plan de pruebas
                                                    • 43 Resultados
                                                      • 431 Caso
                                                      • 432 Caso2
                                                      • 433 Caso
                                                          • Conclusiones y trabajos futuros
                                                            • Trabajos futuros
                                                            • Referencias
                                                            • Anexo A Configuracioacuten de Microsoft Visual C+t
                                                              • Figura 11 - Arquitectura de la suite cenidet-UML
                                                              • Figura 21 -Programacioacuten Visual
                                                              • Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de
                                                              • Figura 32 -Diagrama de Casos de Uso para el S3C
                                                              • Figura 33 -Modelo Conceptual
                                                              • Figura 34 - Diagrama de Clases -Control del Diagrama -
                                                              • Figura 35 - Diagrama de Clases - Patroacuten Visitor -
                                                              • Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento
                                                              • Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)
                                                              • Figura 38 -Dialogo Caracteriacutesticas del Objeto
                                                              • Figura 39 -Dialogo Mensaje
                                                              • Figura 3 IO - Menuacute de los Diagramas de Secuencias (estaacutendar)
                                                              • Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias
                                                              • Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)
                                                              • Figura 313 - Serializacioacuten
                                                              • Figura 314 -Modelo de cascada del ciclo de vida del software
                                                              • Figura 41 - Resultado del caso de prueba
                                                              • Figura 42 -Resultado del caso de prueba
                                                              • Figura 43 -Resultado del caso de prueba
                                                              • Figura 44 -Resultado del caso de prueba
                                                              • Tabla 11 - Tabla comparativa
                                                              • Tabla 31 -Prefijos estaacutendar de identificadores
                                                              • Tabla 32 -Elementos atoacutemicos del lenguaje
                                                              • Tabla 41 - Resumen de los resultados de las pruebas realizadas

Desarrollo de la herramienta c

m-pTernplateSeqDlag = new CMultiDocTernplate ( IDR-DS-SJCTYPE RUNTIME-CLASS (CSeqDiagDoc) RUNTIME-CLASS (CChildFrarne) RUNTIME-CLASS (CSeqDiagView) )

AddDocTernplate( rn-pTernplateSeqDiag )

Esta plantilla hace uso de la clase CCliildFrame que por defecto el ambiente Visual C++ construye y esto es debido a que no se requieren caracteriacutesticas extras en las ventanas de las que proporciona dicha clasc En un caso en el que se requiriera un comportamiento diferente de la vista tendriacutea que crearse una nueva clase con las caracteriacutesticas deseadas

Vista Documento

Vista

I- Vista Documento I [ Tip- F Vista

L Figura 37 Modelo Interfaz de Muacuteltiples Documentos (MDI)

Para integrar otro Ambiente que utilice otro tipo de documento es necesario definir otra plantilla de la misma forma mencionada Debe tomarse en cuenta los siguientes puntos

Es necesario definir el nombre (mqTemplateNOMBRE) El IDR del tipo que se requiere que sea el documento En la primera liacutenea RUNTIME CLASS debe indicar la clase ltCDocumentgt que desea La segunda liacutenea RUNTIME-CLASS soacutelo la cambia a otra clase si requiere de otro manipulador de ventanas de lo contrario deje que ltCChildFramegt se haga cargo

-

30

Desarrollo de la herramienta

En la uacuteltima liacutenea referente a RUNTIME-CLASS se debe indicar la clase ltCViewgt que desea usar Para finalizar se usa la instruccioacuten AddDocTernplate para finalizar la definicioacuten del template (mgTemplateNOMBRE)

325 Recursos Diaacutelogos Mertuacutes y Barras de Herrattriertias

Son varios los recursos con los que se puede contar al crear un proyecto en Microsoft Visual C++ Los diaacutelogos son un recurso disponible que son utilizados para visualizar ingresar yo modificar informacioacuten que se requiera En el Ambiente Visual que se desarrolla son varios los diaacutelogos que se utilizaraacuten y eacutestos se describen a continuacioacuten

El Diaacutelogo ldquoCaracteriacutesticas del Obietordquo (Figura 38) identifica el nombre del Objeto y la descripcioacuten del mismo Este diaacutelogo se muestra cuando se presiona doble clic sobre un objeto del diagrama

I Nombre

Desciipcion

Figura 38 Dialogo Caracteriacutesticas del Objeto

El Diaacutelogo ldquoMensaierdquo (Figura 39) muestra el nombre del mensaje que puede ser modificado ademaacutes se visualizan el Identificador del Mensaje el tipo de Mensaje asiacute tambieacuten el origen y destino del mensaje

31

Desarrollo de la herramienta

Nornbie delMensaje Edit

IDentificador del Mensaje Edil Tipo de Mensaje (Edil

Edit Objeto Origen

Objeto Destino IEdit

i25El A Figura 39 Dialogo Mensaje

El menuacute es otro de los recursos del que se puede disponer para organizar el ambiente que se estaacute creando Para eacuteste caso en particular no se hizo modificaciones al menuacute estaacutendar (Figura 310) que Visual C++ presenta Los cambios significativos son el manejo del tipo de documento para los Diagramas de Secuencias

Archivo Editar Yer VenLana AyGda

Figura 310 Menuacute de los Diagramas de Secuencias (estaacutendar)

Otro importante recurso del que uno se puede valer en Visual C++ es la barra de herramienta personalizada la cuaacutel es construida en el Editor de Recursos Se ha construido una barra (Figura 311) con los elementos graacuteficos de los Diagramas de Secuencia de UML

Figura 311 Barra de Herramientas de los Diagramas de Secuencias

Es recomendable que al utilizar barras de herramienta personalizada se defina en el tamantildeo estaacutendar ya que puede experimentar problemas al momento de ejecutar la aplicacioacuten

Ademaacutes puede usar la propiedad TBBS-CHECKGROUP en una barra de herramientas para establecer que los botones puedan quedar presionados hasta que un botoacuten diferente sea presionado No olvide que la numeracioacuten inicia con cero ( O )

vuriableToolBurSetButtonStyle(OTBBSCHECKGROUP)

32

Desarrollo de la herramienta

Prefijo ID IDC IDD IDP IDR IDS

326 Notacioacuten estaacutendar

Los nombres descriptivos de los recursos se asocian a un valor uacutenico Para una mayor claridad eacutestos nombres mantienen un prefijo que describe el tipo de recurso asociado (vea la Tabla 31) [MIC99]

Tipo de Recurso Comandos de Menuacute Controles y recursos Cuadros de diaacutelogo Cadenas de solicitud para cuadros de mensaje Menuacute principal barras de herramienta tabla aceleradora y el icono Cadenas

IDR IDD IDC ID

200 - 299 3000 - 3999 34000 - 34999

Estos son los rangos de valores establecidos para el proyecto S3C Si se utiliza el coacutedigo fuente y se planea agregar otro proyecto verifisue que no se invadan estos nuacutemeros para evitar problemas

Para facilitar auacuten maacutes los trabajos futuros se ha definido una estructura de carpetas (ver Figura 312) para incluir en cada una las Clases correspondientes a cada tesis en desarrollo

33

Desarrollo de la herramienta

ill ~~ -

-I SCUML classes + U A N T L R + U App + 0 ClassDiagrams + 0 Common + a Java

t $2 SequenceDiagiams

+ WarnierDiagrams

iJ PackageDiagrams

12 StaterChartDiagrams

+

- f Classview I Resourceview 1 FileView ]

~ ~

Figura 312 Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)

327Estructura de datos persistencia y recuperacioacuten

Existe una gran cantidad de tipos de datos estructuras clases y meacutetodos de los que se puede hacer uso para una mejor y maacutes faacutecil obtencioacuten de los resultados A continuacioacuten hago comentarios en tipos de datos y meacutetodos en los que podriacutea tener problemas

CTypedPtrList

AI usar este tipo de dato o alguno relacionado que le permita utilizar el meacutetodo ltCTvrgtedPtrListGetNextgt tenga especial precaucioacuten al usarlo ya que al devolver el valor requerido la variable POSITION usada no se queda apuntando a ese valor en particular salta al inmediato siguiente de la lista

Si se realiza una creacioacuten dinaacutemica con punteros para los elementos de una CTypedPtrList Despueacutes de haberlo agregado a la lista evite el delete para borrar esta Usted deseando liberar la memoria no lo haga ya que eliminara directamente el elemento de la lista

POSITION

Es un valor usado para denotar una posicioacuten de un elemento en una coleccioacuten Pero CUIDADO no se refiere a un iacutendice es una referencia (no consecutiva) de punteros muy diferente a un iacutendice

CString

Auacuten cuando el operador de comparacioacuten == (igual a) es permitido para ser utilizado en las cadenas evite su uso ya que en ocasiones aunque cuando la e

34

Desarrollo de la herramienta

compilacioacuten no indique error alguno en la ejecucioacuten no realizaraacute lo que se necesita Recomiendo que utilice CStringCompare ()

Para eliminar el contenido de un CString utilice CStringEmpty() ya que asignar a la cadena un ldquonrdquo podriacutea causarle problemas

Serializacioacuten

Una forma en que se puede guardar informacioacuten y recuperarla de manera eficaz es mediante la serializacioacuten de objetos La serializacioacuten es un proceso que permite escribir un objeto en un archivo y tambieacuten leerlo

Para que la serializacioacuten se lleve a cabo son necesarios tres objetos un objeto de tipo ltCFilegt que represente el archivo un objeto de tipo ltCArchivegt que ofrece el entorno para la serializacioacuten y la clase del objeto a ser serializado debe ser heredada de ltCObjectgt y sobrescribir el meacutetodo ltSerializegt para que se encuentre de tal forma en que pueda ser serializado (vea la Figura 313)

Objeto a ser serializado 1

1 CArchive

[f --=I- ---7 Archivoexi

u Figura 313 Serializacioacuten

328Patrones de disentildeo utilizados

Se ha planteado la definicioacuten de una arquitectura de clases utilizando patrones de disentildeo debido a que algunos de ellos hacen maacutes faacutecil la extensioacuten de la funcionalidad y mantenimiento

35

Desarrollo de la herramienta

El patroacuten Composite es utilizado para crear de manera uniforme el diagrama sobre el que se trabaja (ver Figura 34) manteniendo una jerarquiacutea de clases uniforme las clases maacutes bajas en la jerarquiacutea definen primitivas de objetos graacuteficos

Se aplica el patroacuten de disentildeo Iterator para hacer recorridos en listas de objetos para realizar diversas operaciones Otro patroacuten de disentildeo del que se hace uso es el Visilor (ver Figura 35)

Para otras actividades que se realizan podriacutea pensarse en que se deberiacutean aplicar otros patrones pero se han evitado algunos (como el patroacuten de disentildeo Builder) para evitar incrementar la complejidad en la arquitectura ya que ai mantener el modelo de la MFC de documentovista la funcionalidad del patroacuten de disentildeo Builder es faacutecilmente reemplazado si se hiciera Uso de eacuteste se aumentariacutea la complejidad excesivamente (nos llevariacutea a perdemos en ocasiones en el paso de mensajes entre clases) dantildeando la facilidad de la arquitectura

33 Diagrama de secuencias

Un Diagrama de Secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten escenario Oacute comportamiento se usan para definir el curso loacutegico de accioacuten de un posible camino a seguir en la resolucioacuten de un problema Seguacuten John Daniels [DANO2] ldquoel principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildean las interacciones de los objetosrdquo

Los Diagramas de Secuencias se utilizan en el modelado de la implementacioacuten de sistemas de software ademaacutes son aplicables en el modelado de requisitos para establecer las comunicaciones existentes entre actores yo clases del sistema Con eacutestos diagramas se logran hacer descripciones de los escenarios y los comportamientos del sistema Con los Diagramas de Secuencias es posible definir protocolos de comunicacioacuten con paso de mensajes ya que dan esa flexibilidad que se requiere Ademaacutes los Diagramas de Secuencias contienen informacioacuten suficiente para que puedan ser transformados a los diagramas de colaboracioacuten [RUM Ol][BOO Oil

331Ciclo de vida del software

Considerando cualquier modelo de ciclo de vida del software (en la figura 314 se muestra el Modelo de cascada) el aacutembito directo de eacuteste Ambiente Visual es en el disentildeo aunque tiene sus vertientes en la codificacioacuten y mantenimiento

36

Desarrollo de la herramienta

Diseno

Codificacibn

I I I I Mantenimiento I

igura 314 Modelo de cascada del ciclo de vida del software

34 Elementos atoacutemicos de la Gramaacutetica

Definicioacuten de los elementos atoacutemicos del lenguaje y su contenido

1 Actor- Representa roles de entidad externos al sistema con el que interactuacutea directamente Los actores pueden ser humanos dispositivos u otros sistemas

2 ClaseObjeto- Determina una Clase u Objeto participante en la interaccioacuten

3 Mensaje-Es una comunicacioacuten entre objetos que contiene informacioacuten Eacuteste se representa con la finalidad a que una accioacuten sea llevada a cabo

4 Mensaje con tiempo- Tiene la misma finalidad que el mensaje la diferencia es que con eacutel se representa un atributo de tiempo

5 Mensaje asiacutencrono Es un mensaje que ocurre en el tiempo de manera independiente a otros mensajes

6 Mensaje de destruccioacuten de objeto- Es un mensaje cuya finalidad es indicar la destruccioacuten del objeto destino

7 Mensaje de creacioacuten de objeto- Es un mensaje que indica la creacioacuten de un objeto

8 Llamada al mismo objeto (Recursividad)- Es usado para modelar llamadas recursivas en el que una operacioacuten es invocada por el mismo objeto

37

Desarrollo de la herramienta

9 Destruccioacuten del objeto (AutodestrucciOacuten)- Puede o no modelarse es representada con una X al final de la liacutenea de vida del objeto

Elementos aulomaacuteticos

1 Liacutenea de Vida- Representa la vida del objeto durante la interaccioacuten

2 Activacioacuten- Muestra el periacuteodo de tiempo en el cual el objeto alguna operacioacuten

341RepresentaciOacuten visual

Representacioacuten visual de los elementos atoacutemicos del lenguaje

Actor

_- A

Mensaje

Mensaje de Creacioacuten de

Objeto

ClaseObjeto

I

Mensaje de retorno

Mensaje de Destruccioacuten de

Objeto

abla 32 Element(

Activacioacuten

Mensaje con tiempo

Autodestruccioacuten

x

atoacutemicos del lengi

taacute realizz

Texto ===I (letra)+ (letra I

numero) letra= AZ I az numero = 09

I

Recursividad ~

I

i j e

io

38

u

Comentario

iexcl

Conector de Comentario

35 Gramaacutetica desarrollada

La gramaacutetica que se propone es una gramaacutetica visual del tipo relacional Una gramaacutetica relacional pertenece a las gramaacuteticas libres de contexto es una 6-iupla G (N C S R Attr P) donde

N es un conjunto finito de siacutembolos no terminales C es un conjunto de siacutembolos terminales S es un siacutembolo distinguido en N llamado siacutembolo inicial R es un conjunto finito de siacutembolos de relacioacuten Attr es un conjunto finito de siacutembolos de atributos P es un conjunto de producciones

Entonces definiendo nuestra gramaacutetica G (N C S R Attr P)

N = Diagrama GrupoClaseObjeto

S = Diagrama

R = mensaje mensajeTiempo mensajeRetomo mensajeAsincrono mensajecrea mensajeDestruye autodestruccioacuten recursividad

R

Attr = entrada salida entradacrea

39

Desarrollo de la herramienta

Definiendo la posicioacuten de los atributos en los elementos visuales

entradacrea ObetaClase

entrada

salida

P =

Diagrama I GrupoClaseObjeto (mensaje (mensajeRetorno

(salida 1) (entrada 2) ) (salida 2) (entrada 1) )

- Diagrama 0 GrupoClaseObjeto

(mensaje (mensaje (mensajeRetomo (mensajeRetomo (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entradacrea 2) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 1) ) (salida 1) (entrada 1) )

entrada

salida

40

Desarrollo de la herramienta

s

-

GrupoClaseObjeto - 1 1 I 2 (mensaje (mensaje (mensajeRetorno (mensajeRetorno (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entradacrea 2) ) (salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 1) ) (salida I ) (entrada I ) )

1 En las gramaacuteticas relacionales una produccioacuten estaacute acompantildeada de las posibles

relaciones que puedan generarse En la primera produccioacuten Diagrama produce a un Actor seguida de un GrupoClaseObjeto el Actor inicia la interaccioacuten con un mensaje y recibe el mensaje de retorno al finalizar la interaccioacuten La segunda y tercera produccioacuten son similares debido a que un GrupoClaseObjeto contiene dos ClaseObjeto que se relacionan de la misma forma

Existe un elemento de la gramaacutetica llamado Attr (Atributo) el cual define la parte de los elementos visuales donde se establecen las relaciones Se han determinado dos atributos (entrada y salida) que para nuestro propoacutesito estaraacuten establecidos en la liacutenea de vida de cada elemento visual (Actor y ClaseObjeto)

Los Comentarios y la Activacioacuten no se consideran en la gramaacutetica Los comentarios son libres de incluirse y relacionarse con cualquier elemento y relacioacuten mencionada anteriormente y la activacioacuten existe siempre que se presente un mensaje (o podriacutea omitirse) Estas consideraciones se realizaron para hacer auacuten maacutes faacutecil la gramaacutetica ya que si se trata de realizar un sistema las restricciones de estos elementos pueden mantenerse en el lenguaje de programacioacuten en el que se desarrolle el sistema

36

Precondiciones

El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias

1 El diagrama de Clases debe existir y estar completo 2 Debe existir un archivo con un diagrama de Warnier por cada diagrama de Clases y

con el mismo nombre de archivo (excepto la extensioacuten del archivo) 3 En el uacutenico diagrama de Warnier de cada Clase se deben modelar todos los meacutetodos

de la Clase 4 No realizar declaraciones de meacutetodos

41

Desarrollo de la herramienta

5 Debe existir un meacutetodo lsquomain()rsquo en el diagrama de Clases

Restricciones

Los meacutetodos deben mantener nombres distintos en las diferentes Clases

Metodologiacutea para la obtencioacuten automaacutetica de los Diagramas de Secuencias

1 Seleccionar el diagrama de Clases

2 Se construye una lista con los nombres de las Clases y los Meacutetodos

3 Se verifica si exista el meacutetodo lsquomain()rsquo en alguna Clase Se busca la existencia de una uacutenica Clase

a La Clase que contenga lsquomain()rsquo se va al inicio de la lista de Clases

b Si no existe lsquomain()rsquo SE TERMINA EL PROCESO

4 Se verifica la existencia de los archivos que contienen el Disentildeo Detallado de los meacutetodos en Wamier para cada una de las Clases si alguno falta SE TERMINA EL PROCESO

5 Se procesa cada uno de los modelos del Disentildeo Detallado de los Meacutetodos generando una lista de secuencias de llamadas por cada uno de los meacutetodos

6 Se verifica que cada llamada corresponda a alguacuten meacutetodo existente (del diagrama de Clases) De no existir ese meacutetodo la llamada entra a una estructura que

7 Se crea una lista de secuencia

a Se inicia con lsquomain()rsquo b Se recorre cada una de las llamadas de los meacutetodos c Se considera invaacutelido el caso de que un meacutetodo intente una llamada

recursiva al meacutetodo lsquomain()rsquo

8 Se muestra un diaacutelogo de resultados en el que se indican las llamadas que no se encnotraron definidas y que pueden ser Llamada a libreriacutea oacute Llamada Erroacutenea

42

Capiacutetulo 4

Prue6as y su6taaacuteos

En eacuteste capiacutetulo se da a conocer el detalle de las pruebas y de los resultados obtenidos Se describen los casos de prueba con los que se realizoacute la evaluacioacuten del sistema asiacute tambieacuten se presentan comentarios acerca de los resultados obtenidos

Pruebas y Resultados

41 Recursos teacutecnicos utilizados

Para llevar a cabo las pruebas al sistema S3C se utilizaron los siguientes equipos de Coacutemputo

Computadora de escritorio

256MB RAM Disco Duro 80G Monitor 17rdquo SAMSUNG

AMD Athlon XP 1600+ I4Ghz

Computadora de escritorio Intel Pentium 4 - 128MB RAM Disco Duro 40G Monitor 15rdquo i -

42 Descripcioacuten del plan de pruebas

Las pruebas establecen el Uacuteltimo paso desde donde es posible evaluar la calidad y descubrir los errores Las pruebas y la validacioacuten del software se utilizan para comprobar que el sistema cumple con las expectativas del usuario

En esta seccioacuten se describen los casos de prueba que se realizaron al prototipo de S3C en conjunto a la suite cenidet-UML Para cada uno de los casos se presenta el objetivo el procedimiento que se siguioacute para la prueba y se muestran los resultados obtenidos - _

Las pruebas a realizar son los siguientes

Caso 1 Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Caso 2 Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Wamier

Caso3 Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Wamier

Caso4 Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo 5

44

Pruebas y Resultados

43 Resultados

431 Caso 1

5 Y

IZ =

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoSirdquo 4 Seleccionar el archivo ldquoVENTASrdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 41 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

s3c iuevo Proyecto SCUM1

Diagrama de clases

lvendedor I L

3

salida

venta prod

4 venia-oferta vcntaprod =

salida 6

Figura 41 Resultado del caso de prueba 1

45

Pruebas y Resultados

432 Caso 2

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Warnier (almacenwar cajawar vendedorwar) que ya cxisten (del caso de prueba I )

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoNordquo 4 Agregar las siguientes Clases con los respectivos meacutetodos y atributos

a Claseldquovendedorrdquo Meacutetodos ldquoventa mainrdquo b Claseldquoalmacenrdquo Meacutetodos ldquoentrada salidardquo c Claseldquocajardquo Meacutetodos ldquoventagrodrdquo

5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 42 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

Diagrama de daseo lisgrama dcsccucncis

MOIDOC Anivo

venta prod

salida

1 Ycrdquo1a 2

I 4 vcrdquolD~o1cn venta prod gt

salida 6 i Figura 42 Resultado del caso de prueba 2

46

Pruebas y Resultados

r

433 Caso 3

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Warnier

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 43 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

5

Error al tratar de abrir el archivo A bZwar

Aceptar i

Faltan Archivos de Disentildeos Detallados de Meacutetodos 1 1 A No se puede crear el diagrama de secuencias

Figura 43 Resultado del caso de prueba 3

47

Pruebas y Resultados

434 Caso 4

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 44 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

lsquo I

~ _ i i _ l _ Repaado ~~ ~ ~ 6~ ampA Figura 44 Resultado del caso de prueba 4

48

Pruebas y Resultados

PRUEBA DESCNPCION CASO 1 Mostrar la funcionalidad del

Sistema S3C a partir de un

44 Anaacutelisis de Resultados

RESULTADOS Se comproboacute la correcta funcionalidad del Sistema S3C a partir de un diagrama

CASO 3

CASO4

I diagrama de Clases cxistcnte I de Clases existente CASO 2 I Mostrar la funcionalidad del I Sc comproboacute la corrccta funcionalidad

Sistema S3C a partir de un del Sistema S3C a partir de un diagrama diagrama de Clases que se de Clases que se construye al momento construye al momento Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el Secuencias si falta alguno de los diagrama de Secuencia si falta alguno diagramas de Warnier Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el secuencias si hace falta el meacutetodo diagrama de Secuencias al faltar el ldquomain ()rdquo meacutetodo ldquomain()rdquo

de los diagramas de Warnier

Los resultados obtenidos de cada uno de los casos establecidos demuestran que se validoacute la funcionalidad del prototipo con los requisitos definidos en el alcance de este proyecto

a lt

49

Conclusiones y Tru6ajos Futuros

Aquiacute se dan a conocer las conclusiones y se describen los posibles trabajos futuros para la continuacioacuten de eacuteste proyecto

F

51 Conclusiones

Conclusiones y trabajos futuros

Se ha creado un Ambiente Visual que permite obtener de forma automaacutetica los Diagramas de Secuencias en base a los diagramas de Clases y al disentildeo detallado de los meacutetodos descritos con diagramas de Warnier cumpliendo con los objetivos planteados para este trabajo

La tesis aporta principalmente La generacioacuten automaacutetica de los diagramas de secuencias y la eliminacioacuten de inconsistencias al mantener una validacioacuten directa de los diagramas de clases y los diagramas de Warnier que son utilizados

Esta validacioacuten es lograda a traveacutes del uso de la gramaacutetica visual relaciona1 que se ha definido (veacutease el capiacutetulo 3) Esta gramaacutetica visual establece reglas para la correcta construccioacuten de los diagramas de secuencias

P De esta manera se establece que la hipoacutetesis ldquoEs posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodosrdquo Es verdadera

52 Trabajos Futuros

Un Diagrama de Secuencias puede convertirse en un Diagrama de Colaboracioacuten por lo tanto un trabajo futuro es la construccioacuten automaacutetica de un Diagrama de Colaboracioacuten a partir de uno de Secuencias existente

Es posible calcular la meacutetrica de acoplamiento al tener un Diagrama de Secuencias construido

La Ingenieriacutea directa de un Diagrama de Secuencias estableciendo la validacioacuten en la construccioacuten de todos los elementos visuales que UML define

La propagacioacuten de las modificaciones de un Diagrama de Secuencias a los Diagramas de Clases y los Diagramas de Warnier

La modificacioacuten del coacutedigo fuente mediante los cambios establecidos en un Diagrama de Secuencias

51

[ALC03]

[BLA98]

[B0099]

[BOOOi]

[BR097]

[CHA90]

[DAN02]

[GLA02]

[HAC98]

[HER03]

4

Alcate1 Computer Associates International inc Electronic Data Systems Corporation Hewlett-Packard Company IBM Corporation I-Logix IntelliCorp Kabira Technologies Kennedy Carter Microsoft Corporation Object Management Group Oracle Corporation Project Technology Ptech Inc Rational Software Corporation Reich Technologies Softeam Taskon A S Telelogic Unisys Corporation ldquoOMG Unified Modeling Language Specificationrdquo Version 15 Unified Modeling Language 2003

Blaha Michael Rumbaugh James Premerlani William Eddy Frederick Lorensen William ldquoObject-oriented modeling and designrdquo Prentice Hall 484 Paacuteginas ISBN 0-13-629841-9 QA-769-03S-B53-19981998

Booch Grady Rumbaugh James Jacobson Ivar ldquoEl lenguaje unificado de modeladordquo Addison Wesley 432 Paacuteginas ISBN 84-7829-028-1 1999

Booch Grady Rumbaugh James Jacobson Ivar ldquoThe Unified Modeling Language User Guiderdquo Addison Wesley 2001

Brown David ldquoAn introduction to object-oriented analysis objects in plain Englishrdquo John Whiley amp Sons Inc 700 Paginas ISBN 0-471-1 1028-0 QA-769-035-B76-1997 1997

Chang Shi-Kuo ldquoVisual Languages and visual programmingrdquo Plenum Press 340 Paacuteginas ISBN 0-306-43428-8 QA-7665-V57-1990 1990

Daniels John ldquoModeling with a sense of purposerdquo Design - IEEE Software JanuaryEebmary 2002

Glasgow Universidad Reino Unido ldquoA UML Editor in Javardquo (lthttplstudentsdcsglaacuWstudentspainjfproject-reportproject-re port-htmV4thYearReporthtrnlgt 2002)

T Hackos JoAnn C Redish Janice ldquoUser and Task Analysis for Interface Designrdquo Wiley Computer Publishing 488 Paacuteginas ISBN QA-769-U83- H33-1998 1998

Hemaacutendez Velaacutezquez M ldquoIngenieriacutea inversa de coacutedigo fuente en C++ para la obtencioacuten de su disentildeordquo Tesis AT-379 (03-0334) 2003

Conceptos generales

[HIX93]

[JAC93]

[JAC99]

[JOY98]

[LAR97]

[MAR]

[MIC99]

[MIC02]

[MOU98]

Hix Deborah Hartson H Rex ldquoDeveloping user interfacesrdquo 381 Paacuteginas ISBN 0-471-57813-4 QA-769-U83-H59-1993 1993

Jacobson Ivar Christerson Magnus Jonsson Patrik Overgaard Gunnar ldquoObject oriented software engineeringrdquo Addison Wesley ISBN 0-20 1 - 54435-0 QA-7676-D47-J63-1993 1993

Jacobson Ivar Booch Grady Rumbaugh James ldquoEl proceso unificado de desarrollo de softwarerdquo Addison Wesley 438 Paacuteginas ISBN 84-7829-036- 2 1999

Joyanes Aguilar Luis ldquoProgramacioacuten orientada a objetosrdquo McGruw Hill ISBN 84-481-0590-7 1998

Larman Craig ldquoAplying UML and Patternsrdquo Prentice Hull 507 Paacuteginas ISBN 0-13-748880-7 QA-769-035-L37-1997 1997

Marriot Kim Meyer Bemd ldquoVisual Language Theoryrdquo Springer 381 Paacuteginas P-935-V567-1998 1998

Microsoft ldquoMicrosoft Visual C++ 6 manual del programadorrdquo McGraw Hill ISBN 84-481-2127-9 QA-7673-Cl53-23718-1999 1999

Microsoft ldquoVisiordquo (lthttpwwwmicrosoftcomofficevisiogt 2002)

B Mourao Luis X ldquoUniversal Modeling Language Part 11 UML Notation - Case Sequence and Collaboration Diagramsrdquo Lan Times Magazine (~httpwwwlantimescomltpartsdiscussdiscuss6Ohtm~) 1998

No Magic ldquoMagicDrawrdquo (lthttpwwwmagicdrawcomgt 2002)

Object Insight ldquoJvisionrdquo (lthttpwwwobject-insightcomgt 2002)

Rational Software Microsoft I Hewlett-Packard Oracle Sterling Software MCI Systemhouse Unisys ICON Computing IntelliCorp i-Logix IBM ObjectTime Platinum Technology Ptech Taskon Reich Technologies Sofieam ldquoUML Summaryrdquo Version 11 Unified Modeling Language 1997

Rational ldquoRational Roserdquo (lthttpwwwrationalcomproductosrosegt 2002)

Rikki Kirzner ldquoAnalysis Modeling and Design Tools Market Forecast and Analysis 2001-2005rdquo Bulletin Published Under Services Application Design and Construction Tools Application Development and Deployment Strategies Documento Nuacutemero 24809 Junio 2001

53

Conceptos generales

[RIM92] Rimrner Steve ldquoGraphical user interface programmingrdquo 423 Paacuteginas

1992

Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language reference manualrdquo Addison Wesley 550 Paacuteginas ISBN 0-201-

ISBN 0-8306-2475-9 ISBN 0-8306-2472-4 (pbk) QA-769-083-R55G

[RUM99]

30998-X QA-7676-D47-R85-1999 1999

[RUM299] Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language user guiderdquo Addisoiz Wesley 482 Paacuteginas ISBN 0-201 -57 168-4 QA-7676-D47-B66-1999 1999

[SMA02] SmartDraw ldquoSmartDrawrdquo (lthttpwwwsmartdrawcomgt 2002)

[SHU88] 9 - Shu Nun C ldquoVisual Programmingrdquo Van Nostrand Reinhold ISBN 0-422- 28014-9 ISBN 0-422-01 164-4 QA-7665-S55 1988

[THI90] Thimbleby Harold ldquoUser Interface Designrdquo Acm press 470 Paacuteginas ISBN 0-201 -41 61 8-2 QA-769U83-T772~- 1990 1990

[WENO2] Wences Diaz MF ldquoModelo de Ingenieriacutea Inversa para la obtencioacuten de disentildeo detallado basado en LEVISSrdquo Tesis (02-0014) 2002

54

Anexo A

Conampuracioacuten de Microsoft Vkua[C++ 6 O

Este anexo indica las configuraciones que se utilizaron para la compilacioacuten de SCUML y s3c

Configuracioacuten de Microsoft Visual c++ 60

Debido a la integracioacuten de los proyectos de InverSOODA e InverDDVi con S3C se cumplioacute con los requisitos previos de ambos proyectos

El compilador usado en el proyecto fue el Microsoft Visual C++ 60

Para el cumplimiento con la funcionalidad de InverSOODA se instaloacute el ANTLR la versioacuten 271 Se descargoacute del sitio l i l l ~ ~ ~ ~ ~ ~ t l ~ l ~ - ~ t - ~ la versioacuten mencionada en un archivo comprimido (en formato zip) Se colocoacute el paquete descomprimido en el directorio ldquoDIANTLR-271 I rdquo

Recomiendo ampliamente que el directorio principal de ANTLR se copie en el directorio raiacutez de cualquier unidad de disco debido a que experimenteacute problemas de compilacioacuten cuando ANTLR no se encontraba en el directorio raiacutez

Io015

Source Browser AlttF12 I u c Ersquo V I

Visual Component Mgnager

- - ~ ~ ~ ~~

P2 Registrar control

A Contenedor de prueba de controles ActiveX

A Usor de objetos OLE y COM

Buacutesqueda de errores

A Y++ MFC Iracer

Customize options

~ - q- ~ Macro

Eecord Quick Macro Cbl+ShiR+R Pay Quick Macro Ctrl+ShiR+P

En el menuacute Tools (Herramientas) seleccione el sub-menuacute Options ltopcionesgt

56

Configuracioacuten de Microsoft Visual C++ 60

En la siguiente ventana de diaacutelogo debe agregar la direccioacuten en donde se encuentra el ANTLR

Agregar la ruta del directorio de ANTLR hasta el subdirectorio

libcpp

Editor I Tabs I Debug I Compatibility 1 Build Dneclolies I a I Chow directories for - Platfolm -

- Directories I x ) 4 jWin32 -] llnclude files

m cancd I

57

Configuracioacuten de Microsoft Visual C t+ 60

Se ha creado una libreriacutea (anrlrliblib) de ANTLR la cual ya estaacute situada en el directorio del proyecto SCUML (ISCUML) y no debe ser movida o eliminada

I

Geneial 1 Debug I CC++ Link I Category

Output file name bebugSCUMLexe

Objectljibrary modules 4 anllrliblib

li Generate debug lnfo r Ignore all defaull lbaries D ~ i n k j n ~ ~ ~ t a n ~ r ~ e n e r ~ ~ ~ mapfile

r Enable psafilrng

Proiec1 Ootionn

pq Cancel 1 Libreriacutea de ANTLR que debe existir 1 I para que se compile correctamente

58

Anexo B

~ u iacute aacute raacutepida de uso deC Sistema S3C

5 Este anexo indica de forma raacutepida la manera de utilizar S3C para crear un diagrama de secuencias de forma automaacutetica

Guiacutea Raacutepida de uso del Sistema S3C i

Para indicar la creacioacuten de un diagrama de secuencias en forma automaacutetica se debe ir a la barra del costado izquierdo y presionar ldquoNuevo Proyecto SCUMLrdquo

I s3c I ~ Nuevo Proyecto SCUML ~ _ _ - I Diagrama de clases ~ Diagrama de secuencias 1 MDI DOC Activo

-

Apareceraacute un documento llamado ldquoSCUMLV en donde el simbolo corresponde a un numero consecutivo iniciando desde 1 (uno)

$ e Despueacutes se presiona ldquoDiagrama de clasesrdquo Habraacute que para indicarle al sistema si se requiere abrir un diagrama de clases existente o realizar uno nuevo

i

iquestAbrir un documento existente

No Cardquo~ear

AI presionar ldquoSirdquo se debe indicar cual es el archivo del diagrama de Clases en el cuadro de diaacutelogo siguiente

~~ - 11dMis documentos rsquo 2 M i P C i lsquo h s sitios de red

I

AI presionar ldquoNordquo en ldquoAbrir un documento existenterdquo se nos mostraraacute un documento vacio para crear un diagrama de clases

60

Guiacutea Raacutepida de uso del Sistema S3C

Para ambas opciones se requiere que los diagramas de Wamier ya se encuentren construidos Y para continuar el proccso se selecciona el documento ldquoSCUMLVrsquo creado al inicio y despueacutes presionar el botoacuten nombrado ldquoDiagrama de secuenciasrdquo localizado en la barra de hcrraiiiicntas del costado izquierdo

Ha iniciado el proceso de construccioacuten del diagrama de secuencias Si no existen errores al terminar el proceso se le mostraraacute un cuadro de diaacutelogo llamado ldquoResultadosrdquo en donde le mostraraacute las llamadas de las que no localizoacute su definicioacuten

- - -

Cancel 1 D e las siguientes llamadas es posible que esten mal escritas o peitenezcan a la libreiia del Lenguaie Verifique ya que no se encontraron sus definiciones

A continuacioacuten se mencionan los posibles errores que finalizan el proceso de la creacioacuten automaacutetica de los diagramas de secuencias en S3C

Cuando no exista un meacutetodo lsquomainrsquo definido en el diagrama de clases

No se encontro el meacutetodo lsquomain()rsquo que inicie la secuencia I A No se puede crear el diagrama de secuencias

p==amp=q

61

Guia Raacutepida de uso del Sistema S3C

Cuando se definan niultiples metodos lsquoinainrsquo en el diagrama de clases

Multiples meacutetodos lsquomainOlsquo Imposible decidir el inicio de secuencia

Aceptar i

Si un meacutetodo definido en Wamier realiza una llamada a lsquomainrsquo se cancelara el proceso

Llamada NO VALIDA al meacutetodo principal main

(iAcp-j(

4 i

CI Y rdquoldquoldquoI i 11 1-T

IZNTRO Gt INFORMACION

62

  • Tabla de Contenido
  • Listado de Figuras
  • Listado de Tablas
  • Notacioacuten
  • Introduccioacuten
  • Capitulo 1 Conceptos Generales
    • 11 Antecedentes
    • 12 Trabajos relacionados
      • 121 Tabla comparativa
        • 13 Definicioacuten del problema
        • 14 Objetivo de la Tesis
          • Objetivos especiacuteficos de la tesis
            • 15 Hipoacutetesis de investigacioacuten
            • 16 Alcances y limitaciones del trabajo de tesis
              • Capitulo 2 Marco Teoacuterico
                • 21 Modelado de sistemas de software
                • 22 Interfaz de usuario (Mecanismos de interaccioacuten)
                • 23 Lenguajes Visuales
                • 24 Programacioacuten orientada a objetos
                • 25 Lenguaje de Modelado Unificado (UML)
                  • Desarrollo de la herramienta
                    • 31 Disentildeo de la Arquitectura
                      • 311 Requisitos (Diagrama de Casos de uso)
                        • 312Modelo Conceptual
                        • 313Diagramas de clases
                        • 32 Elementos de la arquitectura
                          • 321 Microsoft Foundation Class (MFC)
                            • 322Arquitectura Documento Vista
                            • 323Integrando Ambientes en Visual c++
                              • 324 Interfaz de Muacuteltiples Documentos (MDI)
                                • 325Recursos Diaacutelogos Menus y Barras de Herramientas
                                  • 326 Notacioacuten estaacutendar
                                  • 327 Estructura de datos persistencia y recuperacioacuten
                                    • 328Patrones de disentildeo utilizados
                                      • 33 Diagrama de secuencias
                                        • 331Ciclo de vida del software
                                          • 34 Elementos atoacutemicos de la Gramaacutetica
                                            • 341 Representacioacuten visual
                                              • 35 Gramaacutetica desarrollada
                                              • 36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias
                                                  • Capitulo 4 Pruebas y Resultados
                                                    • 41 Recursos teacutecnicos utilizados
                                                    • 42 Descripcioacuten del plan de pruebas
                                                    • 43 Resultados
                                                      • 431 Caso
                                                      • 432 Caso2
                                                      • 433 Caso
                                                          • Conclusiones y trabajos futuros
                                                            • Trabajos futuros
                                                            • Referencias
                                                            • Anexo A Configuracioacuten de Microsoft Visual C+t
                                                              • Figura 11 - Arquitectura de la suite cenidet-UML
                                                              • Figura 21 -Programacioacuten Visual
                                                              • Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de
                                                              • Figura 32 -Diagrama de Casos de Uso para el S3C
                                                              • Figura 33 -Modelo Conceptual
                                                              • Figura 34 - Diagrama de Clases -Control del Diagrama -
                                                              • Figura 35 - Diagrama de Clases - Patroacuten Visitor -
                                                              • Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento
                                                              • Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)
                                                              • Figura 38 -Dialogo Caracteriacutesticas del Objeto
                                                              • Figura 39 -Dialogo Mensaje
                                                              • Figura 3 IO - Menuacute de los Diagramas de Secuencias (estaacutendar)
                                                              • Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias
                                                              • Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)
                                                              • Figura 313 - Serializacioacuten
                                                              • Figura 314 -Modelo de cascada del ciclo de vida del software
                                                              • Figura 41 - Resultado del caso de prueba
                                                              • Figura 42 -Resultado del caso de prueba
                                                              • Figura 43 -Resultado del caso de prueba
                                                              • Figura 44 -Resultado del caso de prueba
                                                              • Tabla 11 - Tabla comparativa
                                                              • Tabla 31 -Prefijos estaacutendar de identificadores
                                                              • Tabla 32 -Elementos atoacutemicos del lenguaje
                                                              • Tabla 41 - Resumen de los resultados de las pruebas realizadas

Desarrollo de la herramienta

En la uacuteltima liacutenea referente a RUNTIME-CLASS se debe indicar la clase ltCViewgt que desea usar Para finalizar se usa la instruccioacuten AddDocTernplate para finalizar la definicioacuten del template (mgTemplateNOMBRE)

325 Recursos Diaacutelogos Mertuacutes y Barras de Herrattriertias

Son varios los recursos con los que se puede contar al crear un proyecto en Microsoft Visual C++ Los diaacutelogos son un recurso disponible que son utilizados para visualizar ingresar yo modificar informacioacuten que se requiera En el Ambiente Visual que se desarrolla son varios los diaacutelogos que se utilizaraacuten y eacutestos se describen a continuacioacuten

El Diaacutelogo ldquoCaracteriacutesticas del Obietordquo (Figura 38) identifica el nombre del Objeto y la descripcioacuten del mismo Este diaacutelogo se muestra cuando se presiona doble clic sobre un objeto del diagrama

I Nombre

Desciipcion

Figura 38 Dialogo Caracteriacutesticas del Objeto

El Diaacutelogo ldquoMensaierdquo (Figura 39) muestra el nombre del mensaje que puede ser modificado ademaacutes se visualizan el Identificador del Mensaje el tipo de Mensaje asiacute tambieacuten el origen y destino del mensaje

31

Desarrollo de la herramienta

Nornbie delMensaje Edit

IDentificador del Mensaje Edil Tipo de Mensaje (Edil

Edit Objeto Origen

Objeto Destino IEdit

i25El A Figura 39 Dialogo Mensaje

El menuacute es otro de los recursos del que se puede disponer para organizar el ambiente que se estaacute creando Para eacuteste caso en particular no se hizo modificaciones al menuacute estaacutendar (Figura 310) que Visual C++ presenta Los cambios significativos son el manejo del tipo de documento para los Diagramas de Secuencias

Archivo Editar Yer VenLana AyGda

Figura 310 Menuacute de los Diagramas de Secuencias (estaacutendar)

Otro importante recurso del que uno se puede valer en Visual C++ es la barra de herramienta personalizada la cuaacutel es construida en el Editor de Recursos Se ha construido una barra (Figura 311) con los elementos graacuteficos de los Diagramas de Secuencia de UML

Figura 311 Barra de Herramientas de los Diagramas de Secuencias

Es recomendable que al utilizar barras de herramienta personalizada se defina en el tamantildeo estaacutendar ya que puede experimentar problemas al momento de ejecutar la aplicacioacuten

Ademaacutes puede usar la propiedad TBBS-CHECKGROUP en una barra de herramientas para establecer que los botones puedan quedar presionados hasta que un botoacuten diferente sea presionado No olvide que la numeracioacuten inicia con cero ( O )

vuriableToolBurSetButtonStyle(OTBBSCHECKGROUP)

32

Desarrollo de la herramienta

Prefijo ID IDC IDD IDP IDR IDS

326 Notacioacuten estaacutendar

Los nombres descriptivos de los recursos se asocian a un valor uacutenico Para una mayor claridad eacutestos nombres mantienen un prefijo que describe el tipo de recurso asociado (vea la Tabla 31) [MIC99]

Tipo de Recurso Comandos de Menuacute Controles y recursos Cuadros de diaacutelogo Cadenas de solicitud para cuadros de mensaje Menuacute principal barras de herramienta tabla aceleradora y el icono Cadenas

IDR IDD IDC ID

200 - 299 3000 - 3999 34000 - 34999

Estos son los rangos de valores establecidos para el proyecto S3C Si se utiliza el coacutedigo fuente y se planea agregar otro proyecto verifisue que no se invadan estos nuacutemeros para evitar problemas

Para facilitar auacuten maacutes los trabajos futuros se ha definido una estructura de carpetas (ver Figura 312) para incluir en cada una las Clases correspondientes a cada tesis en desarrollo

33

Desarrollo de la herramienta

ill ~~ -

-I SCUML classes + U A N T L R + U App + 0 ClassDiagrams + 0 Common + a Java

t $2 SequenceDiagiams

+ WarnierDiagrams

iJ PackageDiagrams

12 StaterChartDiagrams

+

- f Classview I Resourceview 1 FileView ]

~ ~

Figura 312 Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)

327Estructura de datos persistencia y recuperacioacuten

Existe una gran cantidad de tipos de datos estructuras clases y meacutetodos de los que se puede hacer uso para una mejor y maacutes faacutecil obtencioacuten de los resultados A continuacioacuten hago comentarios en tipos de datos y meacutetodos en los que podriacutea tener problemas

CTypedPtrList

AI usar este tipo de dato o alguno relacionado que le permita utilizar el meacutetodo ltCTvrgtedPtrListGetNextgt tenga especial precaucioacuten al usarlo ya que al devolver el valor requerido la variable POSITION usada no se queda apuntando a ese valor en particular salta al inmediato siguiente de la lista

Si se realiza una creacioacuten dinaacutemica con punteros para los elementos de una CTypedPtrList Despueacutes de haberlo agregado a la lista evite el delete para borrar esta Usted deseando liberar la memoria no lo haga ya que eliminara directamente el elemento de la lista

POSITION

Es un valor usado para denotar una posicioacuten de un elemento en una coleccioacuten Pero CUIDADO no se refiere a un iacutendice es una referencia (no consecutiva) de punteros muy diferente a un iacutendice

CString

Auacuten cuando el operador de comparacioacuten == (igual a) es permitido para ser utilizado en las cadenas evite su uso ya que en ocasiones aunque cuando la e

34

Desarrollo de la herramienta

compilacioacuten no indique error alguno en la ejecucioacuten no realizaraacute lo que se necesita Recomiendo que utilice CStringCompare ()

Para eliminar el contenido de un CString utilice CStringEmpty() ya que asignar a la cadena un ldquonrdquo podriacutea causarle problemas

Serializacioacuten

Una forma en que se puede guardar informacioacuten y recuperarla de manera eficaz es mediante la serializacioacuten de objetos La serializacioacuten es un proceso que permite escribir un objeto en un archivo y tambieacuten leerlo

Para que la serializacioacuten se lleve a cabo son necesarios tres objetos un objeto de tipo ltCFilegt que represente el archivo un objeto de tipo ltCArchivegt que ofrece el entorno para la serializacioacuten y la clase del objeto a ser serializado debe ser heredada de ltCObjectgt y sobrescribir el meacutetodo ltSerializegt para que se encuentre de tal forma en que pueda ser serializado (vea la Figura 313)

Objeto a ser serializado 1

1 CArchive

[f --=I- ---7 Archivoexi

u Figura 313 Serializacioacuten

328Patrones de disentildeo utilizados

Se ha planteado la definicioacuten de una arquitectura de clases utilizando patrones de disentildeo debido a que algunos de ellos hacen maacutes faacutecil la extensioacuten de la funcionalidad y mantenimiento

35

Desarrollo de la herramienta

El patroacuten Composite es utilizado para crear de manera uniforme el diagrama sobre el que se trabaja (ver Figura 34) manteniendo una jerarquiacutea de clases uniforme las clases maacutes bajas en la jerarquiacutea definen primitivas de objetos graacuteficos

Se aplica el patroacuten de disentildeo Iterator para hacer recorridos en listas de objetos para realizar diversas operaciones Otro patroacuten de disentildeo del que se hace uso es el Visilor (ver Figura 35)

Para otras actividades que se realizan podriacutea pensarse en que se deberiacutean aplicar otros patrones pero se han evitado algunos (como el patroacuten de disentildeo Builder) para evitar incrementar la complejidad en la arquitectura ya que ai mantener el modelo de la MFC de documentovista la funcionalidad del patroacuten de disentildeo Builder es faacutecilmente reemplazado si se hiciera Uso de eacuteste se aumentariacutea la complejidad excesivamente (nos llevariacutea a perdemos en ocasiones en el paso de mensajes entre clases) dantildeando la facilidad de la arquitectura

33 Diagrama de secuencias

Un Diagrama de Secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten escenario Oacute comportamiento se usan para definir el curso loacutegico de accioacuten de un posible camino a seguir en la resolucioacuten de un problema Seguacuten John Daniels [DANO2] ldquoel principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildean las interacciones de los objetosrdquo

Los Diagramas de Secuencias se utilizan en el modelado de la implementacioacuten de sistemas de software ademaacutes son aplicables en el modelado de requisitos para establecer las comunicaciones existentes entre actores yo clases del sistema Con eacutestos diagramas se logran hacer descripciones de los escenarios y los comportamientos del sistema Con los Diagramas de Secuencias es posible definir protocolos de comunicacioacuten con paso de mensajes ya que dan esa flexibilidad que se requiere Ademaacutes los Diagramas de Secuencias contienen informacioacuten suficiente para que puedan ser transformados a los diagramas de colaboracioacuten [RUM Ol][BOO Oil

331Ciclo de vida del software

Considerando cualquier modelo de ciclo de vida del software (en la figura 314 se muestra el Modelo de cascada) el aacutembito directo de eacuteste Ambiente Visual es en el disentildeo aunque tiene sus vertientes en la codificacioacuten y mantenimiento

36

Desarrollo de la herramienta

Diseno

Codificacibn

I I I I Mantenimiento I

igura 314 Modelo de cascada del ciclo de vida del software

34 Elementos atoacutemicos de la Gramaacutetica

Definicioacuten de los elementos atoacutemicos del lenguaje y su contenido

1 Actor- Representa roles de entidad externos al sistema con el que interactuacutea directamente Los actores pueden ser humanos dispositivos u otros sistemas

2 ClaseObjeto- Determina una Clase u Objeto participante en la interaccioacuten

3 Mensaje-Es una comunicacioacuten entre objetos que contiene informacioacuten Eacuteste se representa con la finalidad a que una accioacuten sea llevada a cabo

4 Mensaje con tiempo- Tiene la misma finalidad que el mensaje la diferencia es que con eacutel se representa un atributo de tiempo

5 Mensaje asiacutencrono Es un mensaje que ocurre en el tiempo de manera independiente a otros mensajes

6 Mensaje de destruccioacuten de objeto- Es un mensaje cuya finalidad es indicar la destruccioacuten del objeto destino

7 Mensaje de creacioacuten de objeto- Es un mensaje que indica la creacioacuten de un objeto

8 Llamada al mismo objeto (Recursividad)- Es usado para modelar llamadas recursivas en el que una operacioacuten es invocada por el mismo objeto

37

Desarrollo de la herramienta

9 Destruccioacuten del objeto (AutodestrucciOacuten)- Puede o no modelarse es representada con una X al final de la liacutenea de vida del objeto

Elementos aulomaacuteticos

1 Liacutenea de Vida- Representa la vida del objeto durante la interaccioacuten

2 Activacioacuten- Muestra el periacuteodo de tiempo en el cual el objeto alguna operacioacuten

341RepresentaciOacuten visual

Representacioacuten visual de los elementos atoacutemicos del lenguaje

Actor

_- A

Mensaje

Mensaje de Creacioacuten de

Objeto

ClaseObjeto

I

Mensaje de retorno

Mensaje de Destruccioacuten de

Objeto

abla 32 Element(

Activacioacuten

Mensaje con tiempo

Autodestruccioacuten

x

atoacutemicos del lengi

taacute realizz

Texto ===I (letra)+ (letra I

numero) letra= AZ I az numero = 09

I

Recursividad ~

I

i j e

io

38

u

Comentario

iexcl

Conector de Comentario

35 Gramaacutetica desarrollada

La gramaacutetica que se propone es una gramaacutetica visual del tipo relacional Una gramaacutetica relacional pertenece a las gramaacuteticas libres de contexto es una 6-iupla G (N C S R Attr P) donde

N es un conjunto finito de siacutembolos no terminales C es un conjunto de siacutembolos terminales S es un siacutembolo distinguido en N llamado siacutembolo inicial R es un conjunto finito de siacutembolos de relacioacuten Attr es un conjunto finito de siacutembolos de atributos P es un conjunto de producciones

Entonces definiendo nuestra gramaacutetica G (N C S R Attr P)

N = Diagrama GrupoClaseObjeto

S = Diagrama

R = mensaje mensajeTiempo mensajeRetomo mensajeAsincrono mensajecrea mensajeDestruye autodestruccioacuten recursividad

R

Attr = entrada salida entradacrea

39

Desarrollo de la herramienta

Definiendo la posicioacuten de los atributos en los elementos visuales

entradacrea ObetaClase

entrada

salida

P =

Diagrama I GrupoClaseObjeto (mensaje (mensajeRetorno

(salida 1) (entrada 2) ) (salida 2) (entrada 1) )

- Diagrama 0 GrupoClaseObjeto

(mensaje (mensaje (mensajeRetomo (mensajeRetomo (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entradacrea 2) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 1) ) (salida 1) (entrada 1) )

entrada

salida

40

Desarrollo de la herramienta

s

-

GrupoClaseObjeto - 1 1 I 2 (mensaje (mensaje (mensajeRetorno (mensajeRetorno (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entradacrea 2) ) (salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 1) ) (salida I ) (entrada I ) )

1 En las gramaacuteticas relacionales una produccioacuten estaacute acompantildeada de las posibles

relaciones que puedan generarse En la primera produccioacuten Diagrama produce a un Actor seguida de un GrupoClaseObjeto el Actor inicia la interaccioacuten con un mensaje y recibe el mensaje de retorno al finalizar la interaccioacuten La segunda y tercera produccioacuten son similares debido a que un GrupoClaseObjeto contiene dos ClaseObjeto que se relacionan de la misma forma

Existe un elemento de la gramaacutetica llamado Attr (Atributo) el cual define la parte de los elementos visuales donde se establecen las relaciones Se han determinado dos atributos (entrada y salida) que para nuestro propoacutesito estaraacuten establecidos en la liacutenea de vida de cada elemento visual (Actor y ClaseObjeto)

Los Comentarios y la Activacioacuten no se consideran en la gramaacutetica Los comentarios son libres de incluirse y relacionarse con cualquier elemento y relacioacuten mencionada anteriormente y la activacioacuten existe siempre que se presente un mensaje (o podriacutea omitirse) Estas consideraciones se realizaron para hacer auacuten maacutes faacutecil la gramaacutetica ya que si se trata de realizar un sistema las restricciones de estos elementos pueden mantenerse en el lenguaje de programacioacuten en el que se desarrolle el sistema

36

Precondiciones

El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias

1 El diagrama de Clases debe existir y estar completo 2 Debe existir un archivo con un diagrama de Warnier por cada diagrama de Clases y

con el mismo nombre de archivo (excepto la extensioacuten del archivo) 3 En el uacutenico diagrama de Warnier de cada Clase se deben modelar todos los meacutetodos

de la Clase 4 No realizar declaraciones de meacutetodos

41

Desarrollo de la herramienta

5 Debe existir un meacutetodo lsquomain()rsquo en el diagrama de Clases

Restricciones

Los meacutetodos deben mantener nombres distintos en las diferentes Clases

Metodologiacutea para la obtencioacuten automaacutetica de los Diagramas de Secuencias

1 Seleccionar el diagrama de Clases

2 Se construye una lista con los nombres de las Clases y los Meacutetodos

3 Se verifica si exista el meacutetodo lsquomain()rsquo en alguna Clase Se busca la existencia de una uacutenica Clase

a La Clase que contenga lsquomain()rsquo se va al inicio de la lista de Clases

b Si no existe lsquomain()rsquo SE TERMINA EL PROCESO

4 Se verifica la existencia de los archivos que contienen el Disentildeo Detallado de los meacutetodos en Wamier para cada una de las Clases si alguno falta SE TERMINA EL PROCESO

5 Se procesa cada uno de los modelos del Disentildeo Detallado de los Meacutetodos generando una lista de secuencias de llamadas por cada uno de los meacutetodos

6 Se verifica que cada llamada corresponda a alguacuten meacutetodo existente (del diagrama de Clases) De no existir ese meacutetodo la llamada entra a una estructura que

7 Se crea una lista de secuencia

a Se inicia con lsquomain()rsquo b Se recorre cada una de las llamadas de los meacutetodos c Se considera invaacutelido el caso de que un meacutetodo intente una llamada

recursiva al meacutetodo lsquomain()rsquo

8 Se muestra un diaacutelogo de resultados en el que se indican las llamadas que no se encnotraron definidas y que pueden ser Llamada a libreriacutea oacute Llamada Erroacutenea

42

Capiacutetulo 4

Prue6as y su6taaacuteos

En eacuteste capiacutetulo se da a conocer el detalle de las pruebas y de los resultados obtenidos Se describen los casos de prueba con los que se realizoacute la evaluacioacuten del sistema asiacute tambieacuten se presentan comentarios acerca de los resultados obtenidos

Pruebas y Resultados

41 Recursos teacutecnicos utilizados

Para llevar a cabo las pruebas al sistema S3C se utilizaron los siguientes equipos de Coacutemputo

Computadora de escritorio

256MB RAM Disco Duro 80G Monitor 17rdquo SAMSUNG

AMD Athlon XP 1600+ I4Ghz

Computadora de escritorio Intel Pentium 4 - 128MB RAM Disco Duro 40G Monitor 15rdquo i -

42 Descripcioacuten del plan de pruebas

Las pruebas establecen el Uacuteltimo paso desde donde es posible evaluar la calidad y descubrir los errores Las pruebas y la validacioacuten del software se utilizan para comprobar que el sistema cumple con las expectativas del usuario

En esta seccioacuten se describen los casos de prueba que se realizaron al prototipo de S3C en conjunto a la suite cenidet-UML Para cada uno de los casos se presenta el objetivo el procedimiento que se siguioacute para la prueba y se muestran los resultados obtenidos - _

Las pruebas a realizar son los siguientes

Caso 1 Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Caso 2 Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Wamier

Caso3 Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Wamier

Caso4 Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo 5

44

Pruebas y Resultados

43 Resultados

431 Caso 1

5 Y

IZ =

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoSirdquo 4 Seleccionar el archivo ldquoVENTASrdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 41 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

s3c iuevo Proyecto SCUM1

Diagrama de clases

lvendedor I L

3

salida

venta prod

4 venia-oferta vcntaprod =

salida 6

Figura 41 Resultado del caso de prueba 1

45

Pruebas y Resultados

432 Caso 2

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Warnier (almacenwar cajawar vendedorwar) que ya cxisten (del caso de prueba I )

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoNordquo 4 Agregar las siguientes Clases con los respectivos meacutetodos y atributos

a Claseldquovendedorrdquo Meacutetodos ldquoventa mainrdquo b Claseldquoalmacenrdquo Meacutetodos ldquoentrada salidardquo c Claseldquocajardquo Meacutetodos ldquoventagrodrdquo

5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 42 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

Diagrama de daseo lisgrama dcsccucncis

MOIDOC Anivo

venta prod

salida

1 Ycrdquo1a 2

I 4 vcrdquolD~o1cn venta prod gt

salida 6 i Figura 42 Resultado del caso de prueba 2

46

Pruebas y Resultados

r

433 Caso 3

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Warnier

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 43 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

5

Error al tratar de abrir el archivo A bZwar

Aceptar i

Faltan Archivos de Disentildeos Detallados de Meacutetodos 1 1 A No se puede crear el diagrama de secuencias

Figura 43 Resultado del caso de prueba 3

47

Pruebas y Resultados

434 Caso 4

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 44 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

lsquo I

~ _ i i _ l _ Repaado ~~ ~ ~ 6~ ampA Figura 44 Resultado del caso de prueba 4

48

Pruebas y Resultados

PRUEBA DESCNPCION CASO 1 Mostrar la funcionalidad del

Sistema S3C a partir de un

44 Anaacutelisis de Resultados

RESULTADOS Se comproboacute la correcta funcionalidad del Sistema S3C a partir de un diagrama

CASO 3

CASO4

I diagrama de Clases cxistcnte I de Clases existente CASO 2 I Mostrar la funcionalidad del I Sc comproboacute la corrccta funcionalidad

Sistema S3C a partir de un del Sistema S3C a partir de un diagrama diagrama de Clases que se de Clases que se construye al momento construye al momento Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el Secuencias si falta alguno de los diagrama de Secuencia si falta alguno diagramas de Warnier Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el secuencias si hace falta el meacutetodo diagrama de Secuencias al faltar el ldquomain ()rdquo meacutetodo ldquomain()rdquo

de los diagramas de Warnier

Los resultados obtenidos de cada uno de los casos establecidos demuestran que se validoacute la funcionalidad del prototipo con los requisitos definidos en el alcance de este proyecto

a lt

49

Conclusiones y Tru6ajos Futuros

Aquiacute se dan a conocer las conclusiones y se describen los posibles trabajos futuros para la continuacioacuten de eacuteste proyecto

F

51 Conclusiones

Conclusiones y trabajos futuros

Se ha creado un Ambiente Visual que permite obtener de forma automaacutetica los Diagramas de Secuencias en base a los diagramas de Clases y al disentildeo detallado de los meacutetodos descritos con diagramas de Warnier cumpliendo con los objetivos planteados para este trabajo

La tesis aporta principalmente La generacioacuten automaacutetica de los diagramas de secuencias y la eliminacioacuten de inconsistencias al mantener una validacioacuten directa de los diagramas de clases y los diagramas de Warnier que son utilizados

Esta validacioacuten es lograda a traveacutes del uso de la gramaacutetica visual relaciona1 que se ha definido (veacutease el capiacutetulo 3) Esta gramaacutetica visual establece reglas para la correcta construccioacuten de los diagramas de secuencias

P De esta manera se establece que la hipoacutetesis ldquoEs posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodosrdquo Es verdadera

52 Trabajos Futuros

Un Diagrama de Secuencias puede convertirse en un Diagrama de Colaboracioacuten por lo tanto un trabajo futuro es la construccioacuten automaacutetica de un Diagrama de Colaboracioacuten a partir de uno de Secuencias existente

Es posible calcular la meacutetrica de acoplamiento al tener un Diagrama de Secuencias construido

La Ingenieriacutea directa de un Diagrama de Secuencias estableciendo la validacioacuten en la construccioacuten de todos los elementos visuales que UML define

La propagacioacuten de las modificaciones de un Diagrama de Secuencias a los Diagramas de Clases y los Diagramas de Warnier

La modificacioacuten del coacutedigo fuente mediante los cambios establecidos en un Diagrama de Secuencias

51

[ALC03]

[BLA98]

[B0099]

[BOOOi]

[BR097]

[CHA90]

[DAN02]

[GLA02]

[HAC98]

[HER03]

4

Alcate1 Computer Associates International inc Electronic Data Systems Corporation Hewlett-Packard Company IBM Corporation I-Logix IntelliCorp Kabira Technologies Kennedy Carter Microsoft Corporation Object Management Group Oracle Corporation Project Technology Ptech Inc Rational Software Corporation Reich Technologies Softeam Taskon A S Telelogic Unisys Corporation ldquoOMG Unified Modeling Language Specificationrdquo Version 15 Unified Modeling Language 2003

Blaha Michael Rumbaugh James Premerlani William Eddy Frederick Lorensen William ldquoObject-oriented modeling and designrdquo Prentice Hall 484 Paacuteginas ISBN 0-13-629841-9 QA-769-03S-B53-19981998

Booch Grady Rumbaugh James Jacobson Ivar ldquoEl lenguaje unificado de modeladordquo Addison Wesley 432 Paacuteginas ISBN 84-7829-028-1 1999

Booch Grady Rumbaugh James Jacobson Ivar ldquoThe Unified Modeling Language User Guiderdquo Addison Wesley 2001

Brown David ldquoAn introduction to object-oriented analysis objects in plain Englishrdquo John Whiley amp Sons Inc 700 Paginas ISBN 0-471-1 1028-0 QA-769-035-B76-1997 1997

Chang Shi-Kuo ldquoVisual Languages and visual programmingrdquo Plenum Press 340 Paacuteginas ISBN 0-306-43428-8 QA-7665-V57-1990 1990

Daniels John ldquoModeling with a sense of purposerdquo Design - IEEE Software JanuaryEebmary 2002

Glasgow Universidad Reino Unido ldquoA UML Editor in Javardquo (lthttplstudentsdcsglaacuWstudentspainjfproject-reportproject-re port-htmV4thYearReporthtrnlgt 2002)

T Hackos JoAnn C Redish Janice ldquoUser and Task Analysis for Interface Designrdquo Wiley Computer Publishing 488 Paacuteginas ISBN QA-769-U83- H33-1998 1998

Hemaacutendez Velaacutezquez M ldquoIngenieriacutea inversa de coacutedigo fuente en C++ para la obtencioacuten de su disentildeordquo Tesis AT-379 (03-0334) 2003

Conceptos generales

[HIX93]

[JAC93]

[JAC99]

[JOY98]

[LAR97]

[MAR]

[MIC99]

[MIC02]

[MOU98]

Hix Deborah Hartson H Rex ldquoDeveloping user interfacesrdquo 381 Paacuteginas ISBN 0-471-57813-4 QA-769-U83-H59-1993 1993

Jacobson Ivar Christerson Magnus Jonsson Patrik Overgaard Gunnar ldquoObject oriented software engineeringrdquo Addison Wesley ISBN 0-20 1 - 54435-0 QA-7676-D47-J63-1993 1993

Jacobson Ivar Booch Grady Rumbaugh James ldquoEl proceso unificado de desarrollo de softwarerdquo Addison Wesley 438 Paacuteginas ISBN 84-7829-036- 2 1999

Joyanes Aguilar Luis ldquoProgramacioacuten orientada a objetosrdquo McGruw Hill ISBN 84-481-0590-7 1998

Larman Craig ldquoAplying UML and Patternsrdquo Prentice Hull 507 Paacuteginas ISBN 0-13-748880-7 QA-769-035-L37-1997 1997

Marriot Kim Meyer Bemd ldquoVisual Language Theoryrdquo Springer 381 Paacuteginas P-935-V567-1998 1998

Microsoft ldquoMicrosoft Visual C++ 6 manual del programadorrdquo McGraw Hill ISBN 84-481-2127-9 QA-7673-Cl53-23718-1999 1999

Microsoft ldquoVisiordquo (lthttpwwwmicrosoftcomofficevisiogt 2002)

B Mourao Luis X ldquoUniversal Modeling Language Part 11 UML Notation - Case Sequence and Collaboration Diagramsrdquo Lan Times Magazine (~httpwwwlantimescomltpartsdiscussdiscuss6Ohtm~) 1998

No Magic ldquoMagicDrawrdquo (lthttpwwwmagicdrawcomgt 2002)

Object Insight ldquoJvisionrdquo (lthttpwwwobject-insightcomgt 2002)

Rational Software Microsoft I Hewlett-Packard Oracle Sterling Software MCI Systemhouse Unisys ICON Computing IntelliCorp i-Logix IBM ObjectTime Platinum Technology Ptech Taskon Reich Technologies Sofieam ldquoUML Summaryrdquo Version 11 Unified Modeling Language 1997

Rational ldquoRational Roserdquo (lthttpwwwrationalcomproductosrosegt 2002)

Rikki Kirzner ldquoAnalysis Modeling and Design Tools Market Forecast and Analysis 2001-2005rdquo Bulletin Published Under Services Application Design and Construction Tools Application Development and Deployment Strategies Documento Nuacutemero 24809 Junio 2001

53

Conceptos generales

[RIM92] Rimrner Steve ldquoGraphical user interface programmingrdquo 423 Paacuteginas

1992

Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language reference manualrdquo Addison Wesley 550 Paacuteginas ISBN 0-201-

ISBN 0-8306-2475-9 ISBN 0-8306-2472-4 (pbk) QA-769-083-R55G

[RUM99]

30998-X QA-7676-D47-R85-1999 1999

[RUM299] Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language user guiderdquo Addisoiz Wesley 482 Paacuteginas ISBN 0-201 -57 168-4 QA-7676-D47-B66-1999 1999

[SMA02] SmartDraw ldquoSmartDrawrdquo (lthttpwwwsmartdrawcomgt 2002)

[SHU88] 9 - Shu Nun C ldquoVisual Programmingrdquo Van Nostrand Reinhold ISBN 0-422- 28014-9 ISBN 0-422-01 164-4 QA-7665-S55 1988

[THI90] Thimbleby Harold ldquoUser Interface Designrdquo Acm press 470 Paacuteginas ISBN 0-201 -41 61 8-2 QA-769U83-T772~- 1990 1990

[WENO2] Wences Diaz MF ldquoModelo de Ingenieriacutea Inversa para la obtencioacuten de disentildeo detallado basado en LEVISSrdquo Tesis (02-0014) 2002

54

Anexo A

Conampuracioacuten de Microsoft Vkua[C++ 6 O

Este anexo indica las configuraciones que se utilizaron para la compilacioacuten de SCUML y s3c

Configuracioacuten de Microsoft Visual c++ 60

Debido a la integracioacuten de los proyectos de InverSOODA e InverDDVi con S3C se cumplioacute con los requisitos previos de ambos proyectos

El compilador usado en el proyecto fue el Microsoft Visual C++ 60

Para el cumplimiento con la funcionalidad de InverSOODA se instaloacute el ANTLR la versioacuten 271 Se descargoacute del sitio l i l l ~ ~ ~ ~ ~ ~ t l ~ l ~ - ~ t - ~ la versioacuten mencionada en un archivo comprimido (en formato zip) Se colocoacute el paquete descomprimido en el directorio ldquoDIANTLR-271 I rdquo

Recomiendo ampliamente que el directorio principal de ANTLR se copie en el directorio raiacutez de cualquier unidad de disco debido a que experimenteacute problemas de compilacioacuten cuando ANTLR no se encontraba en el directorio raiacutez

Io015

Source Browser AlttF12 I u c Ersquo V I

Visual Component Mgnager

- - ~ ~ ~ ~~

P2 Registrar control

A Contenedor de prueba de controles ActiveX

A Usor de objetos OLE y COM

Buacutesqueda de errores

A Y++ MFC Iracer

Customize options

~ - q- ~ Macro

Eecord Quick Macro Cbl+ShiR+R Pay Quick Macro Ctrl+ShiR+P

En el menuacute Tools (Herramientas) seleccione el sub-menuacute Options ltopcionesgt

56

Configuracioacuten de Microsoft Visual C++ 60

En la siguiente ventana de diaacutelogo debe agregar la direccioacuten en donde se encuentra el ANTLR

Agregar la ruta del directorio de ANTLR hasta el subdirectorio

libcpp

Editor I Tabs I Debug I Compatibility 1 Build Dneclolies I a I Chow directories for - Platfolm -

- Directories I x ) 4 jWin32 -] llnclude files

m cancd I

57

Configuracioacuten de Microsoft Visual C t+ 60

Se ha creado una libreriacutea (anrlrliblib) de ANTLR la cual ya estaacute situada en el directorio del proyecto SCUML (ISCUML) y no debe ser movida o eliminada

I

Geneial 1 Debug I CC++ Link I Category

Output file name bebugSCUMLexe

Objectljibrary modules 4 anllrliblib

li Generate debug lnfo r Ignore all defaull lbaries D ~ i n k j n ~ ~ ~ t a n ~ r ~ e n e r ~ ~ ~ mapfile

r Enable psafilrng

Proiec1 Ootionn

pq Cancel 1 Libreriacutea de ANTLR que debe existir 1 I para que se compile correctamente

58

Anexo B

~ u iacute aacute raacutepida de uso deC Sistema S3C

5 Este anexo indica de forma raacutepida la manera de utilizar S3C para crear un diagrama de secuencias de forma automaacutetica

Guiacutea Raacutepida de uso del Sistema S3C i

Para indicar la creacioacuten de un diagrama de secuencias en forma automaacutetica se debe ir a la barra del costado izquierdo y presionar ldquoNuevo Proyecto SCUMLrdquo

I s3c I ~ Nuevo Proyecto SCUML ~ _ _ - I Diagrama de clases ~ Diagrama de secuencias 1 MDI DOC Activo

-

Apareceraacute un documento llamado ldquoSCUMLV en donde el simbolo corresponde a un numero consecutivo iniciando desde 1 (uno)

$ e Despueacutes se presiona ldquoDiagrama de clasesrdquo Habraacute que para indicarle al sistema si se requiere abrir un diagrama de clases existente o realizar uno nuevo

i

iquestAbrir un documento existente

No Cardquo~ear

AI presionar ldquoSirdquo se debe indicar cual es el archivo del diagrama de Clases en el cuadro de diaacutelogo siguiente

~~ - 11dMis documentos rsquo 2 M i P C i lsquo h s sitios de red

I

AI presionar ldquoNordquo en ldquoAbrir un documento existenterdquo se nos mostraraacute un documento vacio para crear un diagrama de clases

60

Guiacutea Raacutepida de uso del Sistema S3C

Para ambas opciones se requiere que los diagramas de Wamier ya se encuentren construidos Y para continuar el proccso se selecciona el documento ldquoSCUMLVrsquo creado al inicio y despueacutes presionar el botoacuten nombrado ldquoDiagrama de secuenciasrdquo localizado en la barra de hcrraiiiicntas del costado izquierdo

Ha iniciado el proceso de construccioacuten del diagrama de secuencias Si no existen errores al terminar el proceso se le mostraraacute un cuadro de diaacutelogo llamado ldquoResultadosrdquo en donde le mostraraacute las llamadas de las que no localizoacute su definicioacuten

- - -

Cancel 1 D e las siguientes llamadas es posible que esten mal escritas o peitenezcan a la libreiia del Lenguaie Verifique ya que no se encontraron sus definiciones

A continuacioacuten se mencionan los posibles errores que finalizan el proceso de la creacioacuten automaacutetica de los diagramas de secuencias en S3C

Cuando no exista un meacutetodo lsquomainrsquo definido en el diagrama de clases

No se encontro el meacutetodo lsquomain()rsquo que inicie la secuencia I A No se puede crear el diagrama de secuencias

p==amp=q

61

Guia Raacutepida de uso del Sistema S3C

Cuando se definan niultiples metodos lsquoinainrsquo en el diagrama de clases

Multiples meacutetodos lsquomainOlsquo Imposible decidir el inicio de secuencia

Aceptar i

Si un meacutetodo definido en Wamier realiza una llamada a lsquomainrsquo se cancelara el proceso

Llamada NO VALIDA al meacutetodo principal main

(iAcp-j(

4 i

CI Y rdquoldquoldquoI i 11 1-T

IZNTRO Gt INFORMACION

62

  • Tabla de Contenido
  • Listado de Figuras
  • Listado de Tablas
  • Notacioacuten
  • Introduccioacuten
  • Capitulo 1 Conceptos Generales
    • 11 Antecedentes
    • 12 Trabajos relacionados
      • 121 Tabla comparativa
        • 13 Definicioacuten del problema
        • 14 Objetivo de la Tesis
          • Objetivos especiacuteficos de la tesis
            • 15 Hipoacutetesis de investigacioacuten
            • 16 Alcances y limitaciones del trabajo de tesis
              • Capitulo 2 Marco Teoacuterico
                • 21 Modelado de sistemas de software
                • 22 Interfaz de usuario (Mecanismos de interaccioacuten)
                • 23 Lenguajes Visuales
                • 24 Programacioacuten orientada a objetos
                • 25 Lenguaje de Modelado Unificado (UML)
                  • Desarrollo de la herramienta
                    • 31 Disentildeo de la Arquitectura
                      • 311 Requisitos (Diagrama de Casos de uso)
                        • 312Modelo Conceptual
                        • 313Diagramas de clases
                        • 32 Elementos de la arquitectura
                          • 321 Microsoft Foundation Class (MFC)
                            • 322Arquitectura Documento Vista
                            • 323Integrando Ambientes en Visual c++
                              • 324 Interfaz de Muacuteltiples Documentos (MDI)
                                • 325Recursos Diaacutelogos Menus y Barras de Herramientas
                                  • 326 Notacioacuten estaacutendar
                                  • 327 Estructura de datos persistencia y recuperacioacuten
                                    • 328Patrones de disentildeo utilizados
                                      • 33 Diagrama de secuencias
                                        • 331Ciclo de vida del software
                                          • 34 Elementos atoacutemicos de la Gramaacutetica
                                            • 341 Representacioacuten visual
                                              • 35 Gramaacutetica desarrollada
                                              • 36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias
                                                  • Capitulo 4 Pruebas y Resultados
                                                    • 41 Recursos teacutecnicos utilizados
                                                    • 42 Descripcioacuten del plan de pruebas
                                                    • 43 Resultados
                                                      • 431 Caso
                                                      • 432 Caso2
                                                      • 433 Caso
                                                          • Conclusiones y trabajos futuros
                                                            • Trabajos futuros
                                                            • Referencias
                                                            • Anexo A Configuracioacuten de Microsoft Visual C+t
                                                              • Figura 11 - Arquitectura de la suite cenidet-UML
                                                              • Figura 21 -Programacioacuten Visual
                                                              • Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de
                                                              • Figura 32 -Diagrama de Casos de Uso para el S3C
                                                              • Figura 33 -Modelo Conceptual
                                                              • Figura 34 - Diagrama de Clases -Control del Diagrama -
                                                              • Figura 35 - Diagrama de Clases - Patroacuten Visitor -
                                                              • Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento
                                                              • Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)
                                                              • Figura 38 -Dialogo Caracteriacutesticas del Objeto
                                                              • Figura 39 -Dialogo Mensaje
                                                              • Figura 3 IO - Menuacute de los Diagramas de Secuencias (estaacutendar)
                                                              • Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias
                                                              • Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)
                                                              • Figura 313 - Serializacioacuten
                                                              • Figura 314 -Modelo de cascada del ciclo de vida del software
                                                              • Figura 41 - Resultado del caso de prueba
                                                              • Figura 42 -Resultado del caso de prueba
                                                              • Figura 43 -Resultado del caso de prueba
                                                              • Figura 44 -Resultado del caso de prueba
                                                              • Tabla 11 - Tabla comparativa
                                                              • Tabla 31 -Prefijos estaacutendar de identificadores
                                                              • Tabla 32 -Elementos atoacutemicos del lenguaje
                                                              • Tabla 41 - Resumen de los resultados de las pruebas realizadas

Desarrollo de la herramienta

Nornbie delMensaje Edit

IDentificador del Mensaje Edil Tipo de Mensaje (Edil

Edit Objeto Origen

Objeto Destino IEdit

i25El A Figura 39 Dialogo Mensaje

El menuacute es otro de los recursos del que se puede disponer para organizar el ambiente que se estaacute creando Para eacuteste caso en particular no se hizo modificaciones al menuacute estaacutendar (Figura 310) que Visual C++ presenta Los cambios significativos son el manejo del tipo de documento para los Diagramas de Secuencias

Archivo Editar Yer VenLana AyGda

Figura 310 Menuacute de los Diagramas de Secuencias (estaacutendar)

Otro importante recurso del que uno se puede valer en Visual C++ es la barra de herramienta personalizada la cuaacutel es construida en el Editor de Recursos Se ha construido una barra (Figura 311) con los elementos graacuteficos de los Diagramas de Secuencia de UML

Figura 311 Barra de Herramientas de los Diagramas de Secuencias

Es recomendable que al utilizar barras de herramienta personalizada se defina en el tamantildeo estaacutendar ya que puede experimentar problemas al momento de ejecutar la aplicacioacuten

Ademaacutes puede usar la propiedad TBBS-CHECKGROUP en una barra de herramientas para establecer que los botones puedan quedar presionados hasta que un botoacuten diferente sea presionado No olvide que la numeracioacuten inicia con cero ( O )

vuriableToolBurSetButtonStyle(OTBBSCHECKGROUP)

32

Desarrollo de la herramienta

Prefijo ID IDC IDD IDP IDR IDS

326 Notacioacuten estaacutendar

Los nombres descriptivos de los recursos se asocian a un valor uacutenico Para una mayor claridad eacutestos nombres mantienen un prefijo que describe el tipo de recurso asociado (vea la Tabla 31) [MIC99]

Tipo de Recurso Comandos de Menuacute Controles y recursos Cuadros de diaacutelogo Cadenas de solicitud para cuadros de mensaje Menuacute principal barras de herramienta tabla aceleradora y el icono Cadenas

IDR IDD IDC ID

200 - 299 3000 - 3999 34000 - 34999

Estos son los rangos de valores establecidos para el proyecto S3C Si se utiliza el coacutedigo fuente y se planea agregar otro proyecto verifisue que no se invadan estos nuacutemeros para evitar problemas

Para facilitar auacuten maacutes los trabajos futuros se ha definido una estructura de carpetas (ver Figura 312) para incluir en cada una las Clases correspondientes a cada tesis en desarrollo

33

Desarrollo de la herramienta

ill ~~ -

-I SCUML classes + U A N T L R + U App + 0 ClassDiagrams + 0 Common + a Java

t $2 SequenceDiagiams

+ WarnierDiagrams

iJ PackageDiagrams

12 StaterChartDiagrams

+

- f Classview I Resourceview 1 FileView ]

~ ~

Figura 312 Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)

327Estructura de datos persistencia y recuperacioacuten

Existe una gran cantidad de tipos de datos estructuras clases y meacutetodos de los que se puede hacer uso para una mejor y maacutes faacutecil obtencioacuten de los resultados A continuacioacuten hago comentarios en tipos de datos y meacutetodos en los que podriacutea tener problemas

CTypedPtrList

AI usar este tipo de dato o alguno relacionado que le permita utilizar el meacutetodo ltCTvrgtedPtrListGetNextgt tenga especial precaucioacuten al usarlo ya que al devolver el valor requerido la variable POSITION usada no se queda apuntando a ese valor en particular salta al inmediato siguiente de la lista

Si se realiza una creacioacuten dinaacutemica con punteros para los elementos de una CTypedPtrList Despueacutes de haberlo agregado a la lista evite el delete para borrar esta Usted deseando liberar la memoria no lo haga ya que eliminara directamente el elemento de la lista

POSITION

Es un valor usado para denotar una posicioacuten de un elemento en una coleccioacuten Pero CUIDADO no se refiere a un iacutendice es una referencia (no consecutiva) de punteros muy diferente a un iacutendice

CString

Auacuten cuando el operador de comparacioacuten == (igual a) es permitido para ser utilizado en las cadenas evite su uso ya que en ocasiones aunque cuando la e

34

Desarrollo de la herramienta

compilacioacuten no indique error alguno en la ejecucioacuten no realizaraacute lo que se necesita Recomiendo que utilice CStringCompare ()

Para eliminar el contenido de un CString utilice CStringEmpty() ya que asignar a la cadena un ldquonrdquo podriacutea causarle problemas

Serializacioacuten

Una forma en que se puede guardar informacioacuten y recuperarla de manera eficaz es mediante la serializacioacuten de objetos La serializacioacuten es un proceso que permite escribir un objeto en un archivo y tambieacuten leerlo

Para que la serializacioacuten se lleve a cabo son necesarios tres objetos un objeto de tipo ltCFilegt que represente el archivo un objeto de tipo ltCArchivegt que ofrece el entorno para la serializacioacuten y la clase del objeto a ser serializado debe ser heredada de ltCObjectgt y sobrescribir el meacutetodo ltSerializegt para que se encuentre de tal forma en que pueda ser serializado (vea la Figura 313)

Objeto a ser serializado 1

1 CArchive

[f --=I- ---7 Archivoexi

u Figura 313 Serializacioacuten

328Patrones de disentildeo utilizados

Se ha planteado la definicioacuten de una arquitectura de clases utilizando patrones de disentildeo debido a que algunos de ellos hacen maacutes faacutecil la extensioacuten de la funcionalidad y mantenimiento

35

Desarrollo de la herramienta

El patroacuten Composite es utilizado para crear de manera uniforme el diagrama sobre el que se trabaja (ver Figura 34) manteniendo una jerarquiacutea de clases uniforme las clases maacutes bajas en la jerarquiacutea definen primitivas de objetos graacuteficos

Se aplica el patroacuten de disentildeo Iterator para hacer recorridos en listas de objetos para realizar diversas operaciones Otro patroacuten de disentildeo del que se hace uso es el Visilor (ver Figura 35)

Para otras actividades que se realizan podriacutea pensarse en que se deberiacutean aplicar otros patrones pero se han evitado algunos (como el patroacuten de disentildeo Builder) para evitar incrementar la complejidad en la arquitectura ya que ai mantener el modelo de la MFC de documentovista la funcionalidad del patroacuten de disentildeo Builder es faacutecilmente reemplazado si se hiciera Uso de eacuteste se aumentariacutea la complejidad excesivamente (nos llevariacutea a perdemos en ocasiones en el paso de mensajes entre clases) dantildeando la facilidad de la arquitectura

33 Diagrama de secuencias

Un Diagrama de Secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten escenario Oacute comportamiento se usan para definir el curso loacutegico de accioacuten de un posible camino a seguir en la resolucioacuten de un problema Seguacuten John Daniels [DANO2] ldquoel principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildean las interacciones de los objetosrdquo

Los Diagramas de Secuencias se utilizan en el modelado de la implementacioacuten de sistemas de software ademaacutes son aplicables en el modelado de requisitos para establecer las comunicaciones existentes entre actores yo clases del sistema Con eacutestos diagramas se logran hacer descripciones de los escenarios y los comportamientos del sistema Con los Diagramas de Secuencias es posible definir protocolos de comunicacioacuten con paso de mensajes ya que dan esa flexibilidad que se requiere Ademaacutes los Diagramas de Secuencias contienen informacioacuten suficiente para que puedan ser transformados a los diagramas de colaboracioacuten [RUM Ol][BOO Oil

331Ciclo de vida del software

Considerando cualquier modelo de ciclo de vida del software (en la figura 314 se muestra el Modelo de cascada) el aacutembito directo de eacuteste Ambiente Visual es en el disentildeo aunque tiene sus vertientes en la codificacioacuten y mantenimiento

36

Desarrollo de la herramienta

Diseno

Codificacibn

I I I I Mantenimiento I

igura 314 Modelo de cascada del ciclo de vida del software

34 Elementos atoacutemicos de la Gramaacutetica

Definicioacuten de los elementos atoacutemicos del lenguaje y su contenido

1 Actor- Representa roles de entidad externos al sistema con el que interactuacutea directamente Los actores pueden ser humanos dispositivos u otros sistemas

2 ClaseObjeto- Determina una Clase u Objeto participante en la interaccioacuten

3 Mensaje-Es una comunicacioacuten entre objetos que contiene informacioacuten Eacuteste se representa con la finalidad a que una accioacuten sea llevada a cabo

4 Mensaje con tiempo- Tiene la misma finalidad que el mensaje la diferencia es que con eacutel se representa un atributo de tiempo

5 Mensaje asiacutencrono Es un mensaje que ocurre en el tiempo de manera independiente a otros mensajes

6 Mensaje de destruccioacuten de objeto- Es un mensaje cuya finalidad es indicar la destruccioacuten del objeto destino

7 Mensaje de creacioacuten de objeto- Es un mensaje que indica la creacioacuten de un objeto

8 Llamada al mismo objeto (Recursividad)- Es usado para modelar llamadas recursivas en el que una operacioacuten es invocada por el mismo objeto

37

Desarrollo de la herramienta

9 Destruccioacuten del objeto (AutodestrucciOacuten)- Puede o no modelarse es representada con una X al final de la liacutenea de vida del objeto

Elementos aulomaacuteticos

1 Liacutenea de Vida- Representa la vida del objeto durante la interaccioacuten

2 Activacioacuten- Muestra el periacuteodo de tiempo en el cual el objeto alguna operacioacuten

341RepresentaciOacuten visual

Representacioacuten visual de los elementos atoacutemicos del lenguaje

Actor

_- A

Mensaje

Mensaje de Creacioacuten de

Objeto

ClaseObjeto

I

Mensaje de retorno

Mensaje de Destruccioacuten de

Objeto

abla 32 Element(

Activacioacuten

Mensaje con tiempo

Autodestruccioacuten

x

atoacutemicos del lengi

taacute realizz

Texto ===I (letra)+ (letra I

numero) letra= AZ I az numero = 09

I

Recursividad ~

I

i j e

io

38

u

Comentario

iexcl

Conector de Comentario

35 Gramaacutetica desarrollada

La gramaacutetica que se propone es una gramaacutetica visual del tipo relacional Una gramaacutetica relacional pertenece a las gramaacuteticas libres de contexto es una 6-iupla G (N C S R Attr P) donde

N es un conjunto finito de siacutembolos no terminales C es un conjunto de siacutembolos terminales S es un siacutembolo distinguido en N llamado siacutembolo inicial R es un conjunto finito de siacutembolos de relacioacuten Attr es un conjunto finito de siacutembolos de atributos P es un conjunto de producciones

Entonces definiendo nuestra gramaacutetica G (N C S R Attr P)

N = Diagrama GrupoClaseObjeto

S = Diagrama

R = mensaje mensajeTiempo mensajeRetomo mensajeAsincrono mensajecrea mensajeDestruye autodestruccioacuten recursividad

R

Attr = entrada salida entradacrea

39

Desarrollo de la herramienta

Definiendo la posicioacuten de los atributos en los elementos visuales

entradacrea ObetaClase

entrada

salida

P =

Diagrama I GrupoClaseObjeto (mensaje (mensajeRetorno

(salida 1) (entrada 2) ) (salida 2) (entrada 1) )

- Diagrama 0 GrupoClaseObjeto

(mensaje (mensaje (mensajeRetomo (mensajeRetomo (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entradacrea 2) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 1) ) (salida 1) (entrada 1) )

entrada

salida

40

Desarrollo de la herramienta

s

-

GrupoClaseObjeto - 1 1 I 2 (mensaje (mensaje (mensajeRetorno (mensajeRetorno (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entradacrea 2) ) (salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 1) ) (salida I ) (entrada I ) )

1 En las gramaacuteticas relacionales una produccioacuten estaacute acompantildeada de las posibles

relaciones que puedan generarse En la primera produccioacuten Diagrama produce a un Actor seguida de un GrupoClaseObjeto el Actor inicia la interaccioacuten con un mensaje y recibe el mensaje de retorno al finalizar la interaccioacuten La segunda y tercera produccioacuten son similares debido a que un GrupoClaseObjeto contiene dos ClaseObjeto que se relacionan de la misma forma

Existe un elemento de la gramaacutetica llamado Attr (Atributo) el cual define la parte de los elementos visuales donde se establecen las relaciones Se han determinado dos atributos (entrada y salida) que para nuestro propoacutesito estaraacuten establecidos en la liacutenea de vida de cada elemento visual (Actor y ClaseObjeto)

Los Comentarios y la Activacioacuten no se consideran en la gramaacutetica Los comentarios son libres de incluirse y relacionarse con cualquier elemento y relacioacuten mencionada anteriormente y la activacioacuten existe siempre que se presente un mensaje (o podriacutea omitirse) Estas consideraciones se realizaron para hacer auacuten maacutes faacutecil la gramaacutetica ya que si se trata de realizar un sistema las restricciones de estos elementos pueden mantenerse en el lenguaje de programacioacuten en el que se desarrolle el sistema

36

Precondiciones

El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias

1 El diagrama de Clases debe existir y estar completo 2 Debe existir un archivo con un diagrama de Warnier por cada diagrama de Clases y

con el mismo nombre de archivo (excepto la extensioacuten del archivo) 3 En el uacutenico diagrama de Warnier de cada Clase se deben modelar todos los meacutetodos

de la Clase 4 No realizar declaraciones de meacutetodos

41

Desarrollo de la herramienta

5 Debe existir un meacutetodo lsquomain()rsquo en el diagrama de Clases

Restricciones

Los meacutetodos deben mantener nombres distintos en las diferentes Clases

Metodologiacutea para la obtencioacuten automaacutetica de los Diagramas de Secuencias

1 Seleccionar el diagrama de Clases

2 Se construye una lista con los nombres de las Clases y los Meacutetodos

3 Se verifica si exista el meacutetodo lsquomain()rsquo en alguna Clase Se busca la existencia de una uacutenica Clase

a La Clase que contenga lsquomain()rsquo se va al inicio de la lista de Clases

b Si no existe lsquomain()rsquo SE TERMINA EL PROCESO

4 Se verifica la existencia de los archivos que contienen el Disentildeo Detallado de los meacutetodos en Wamier para cada una de las Clases si alguno falta SE TERMINA EL PROCESO

5 Se procesa cada uno de los modelos del Disentildeo Detallado de los Meacutetodos generando una lista de secuencias de llamadas por cada uno de los meacutetodos

6 Se verifica que cada llamada corresponda a alguacuten meacutetodo existente (del diagrama de Clases) De no existir ese meacutetodo la llamada entra a una estructura que

7 Se crea una lista de secuencia

a Se inicia con lsquomain()rsquo b Se recorre cada una de las llamadas de los meacutetodos c Se considera invaacutelido el caso de que un meacutetodo intente una llamada

recursiva al meacutetodo lsquomain()rsquo

8 Se muestra un diaacutelogo de resultados en el que se indican las llamadas que no se encnotraron definidas y que pueden ser Llamada a libreriacutea oacute Llamada Erroacutenea

42

Capiacutetulo 4

Prue6as y su6taaacuteos

En eacuteste capiacutetulo se da a conocer el detalle de las pruebas y de los resultados obtenidos Se describen los casos de prueba con los que se realizoacute la evaluacioacuten del sistema asiacute tambieacuten se presentan comentarios acerca de los resultados obtenidos

Pruebas y Resultados

41 Recursos teacutecnicos utilizados

Para llevar a cabo las pruebas al sistema S3C se utilizaron los siguientes equipos de Coacutemputo

Computadora de escritorio

256MB RAM Disco Duro 80G Monitor 17rdquo SAMSUNG

AMD Athlon XP 1600+ I4Ghz

Computadora de escritorio Intel Pentium 4 - 128MB RAM Disco Duro 40G Monitor 15rdquo i -

42 Descripcioacuten del plan de pruebas

Las pruebas establecen el Uacuteltimo paso desde donde es posible evaluar la calidad y descubrir los errores Las pruebas y la validacioacuten del software se utilizan para comprobar que el sistema cumple con las expectativas del usuario

En esta seccioacuten se describen los casos de prueba que se realizaron al prototipo de S3C en conjunto a la suite cenidet-UML Para cada uno de los casos se presenta el objetivo el procedimiento que se siguioacute para la prueba y se muestran los resultados obtenidos - _

Las pruebas a realizar son los siguientes

Caso 1 Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Caso 2 Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Wamier

Caso3 Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Wamier

Caso4 Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo 5

44

Pruebas y Resultados

43 Resultados

431 Caso 1

5 Y

IZ =

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoSirdquo 4 Seleccionar el archivo ldquoVENTASrdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 41 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

s3c iuevo Proyecto SCUM1

Diagrama de clases

lvendedor I L

3

salida

venta prod

4 venia-oferta vcntaprod =

salida 6

Figura 41 Resultado del caso de prueba 1

45

Pruebas y Resultados

432 Caso 2

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Warnier (almacenwar cajawar vendedorwar) que ya cxisten (del caso de prueba I )

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoNordquo 4 Agregar las siguientes Clases con los respectivos meacutetodos y atributos

a Claseldquovendedorrdquo Meacutetodos ldquoventa mainrdquo b Claseldquoalmacenrdquo Meacutetodos ldquoentrada salidardquo c Claseldquocajardquo Meacutetodos ldquoventagrodrdquo

5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 42 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

Diagrama de daseo lisgrama dcsccucncis

MOIDOC Anivo

venta prod

salida

1 Ycrdquo1a 2

I 4 vcrdquolD~o1cn venta prod gt

salida 6 i Figura 42 Resultado del caso de prueba 2

46

Pruebas y Resultados

r

433 Caso 3

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Warnier

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 43 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

5

Error al tratar de abrir el archivo A bZwar

Aceptar i

Faltan Archivos de Disentildeos Detallados de Meacutetodos 1 1 A No se puede crear el diagrama de secuencias

Figura 43 Resultado del caso de prueba 3

47

Pruebas y Resultados

434 Caso 4

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 44 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

lsquo I

~ _ i i _ l _ Repaado ~~ ~ ~ 6~ ampA Figura 44 Resultado del caso de prueba 4

48

Pruebas y Resultados

PRUEBA DESCNPCION CASO 1 Mostrar la funcionalidad del

Sistema S3C a partir de un

44 Anaacutelisis de Resultados

RESULTADOS Se comproboacute la correcta funcionalidad del Sistema S3C a partir de un diagrama

CASO 3

CASO4

I diagrama de Clases cxistcnte I de Clases existente CASO 2 I Mostrar la funcionalidad del I Sc comproboacute la corrccta funcionalidad

Sistema S3C a partir de un del Sistema S3C a partir de un diagrama diagrama de Clases que se de Clases que se construye al momento construye al momento Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el Secuencias si falta alguno de los diagrama de Secuencia si falta alguno diagramas de Warnier Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el secuencias si hace falta el meacutetodo diagrama de Secuencias al faltar el ldquomain ()rdquo meacutetodo ldquomain()rdquo

de los diagramas de Warnier

Los resultados obtenidos de cada uno de los casos establecidos demuestran que se validoacute la funcionalidad del prototipo con los requisitos definidos en el alcance de este proyecto

a lt

49

Conclusiones y Tru6ajos Futuros

Aquiacute se dan a conocer las conclusiones y se describen los posibles trabajos futuros para la continuacioacuten de eacuteste proyecto

F

51 Conclusiones

Conclusiones y trabajos futuros

Se ha creado un Ambiente Visual que permite obtener de forma automaacutetica los Diagramas de Secuencias en base a los diagramas de Clases y al disentildeo detallado de los meacutetodos descritos con diagramas de Warnier cumpliendo con los objetivos planteados para este trabajo

La tesis aporta principalmente La generacioacuten automaacutetica de los diagramas de secuencias y la eliminacioacuten de inconsistencias al mantener una validacioacuten directa de los diagramas de clases y los diagramas de Warnier que son utilizados

Esta validacioacuten es lograda a traveacutes del uso de la gramaacutetica visual relaciona1 que se ha definido (veacutease el capiacutetulo 3) Esta gramaacutetica visual establece reglas para la correcta construccioacuten de los diagramas de secuencias

P De esta manera se establece que la hipoacutetesis ldquoEs posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodosrdquo Es verdadera

52 Trabajos Futuros

Un Diagrama de Secuencias puede convertirse en un Diagrama de Colaboracioacuten por lo tanto un trabajo futuro es la construccioacuten automaacutetica de un Diagrama de Colaboracioacuten a partir de uno de Secuencias existente

Es posible calcular la meacutetrica de acoplamiento al tener un Diagrama de Secuencias construido

La Ingenieriacutea directa de un Diagrama de Secuencias estableciendo la validacioacuten en la construccioacuten de todos los elementos visuales que UML define

La propagacioacuten de las modificaciones de un Diagrama de Secuencias a los Diagramas de Clases y los Diagramas de Warnier

La modificacioacuten del coacutedigo fuente mediante los cambios establecidos en un Diagrama de Secuencias

51

[ALC03]

[BLA98]

[B0099]

[BOOOi]

[BR097]

[CHA90]

[DAN02]

[GLA02]

[HAC98]

[HER03]

4

Alcate1 Computer Associates International inc Electronic Data Systems Corporation Hewlett-Packard Company IBM Corporation I-Logix IntelliCorp Kabira Technologies Kennedy Carter Microsoft Corporation Object Management Group Oracle Corporation Project Technology Ptech Inc Rational Software Corporation Reich Technologies Softeam Taskon A S Telelogic Unisys Corporation ldquoOMG Unified Modeling Language Specificationrdquo Version 15 Unified Modeling Language 2003

Blaha Michael Rumbaugh James Premerlani William Eddy Frederick Lorensen William ldquoObject-oriented modeling and designrdquo Prentice Hall 484 Paacuteginas ISBN 0-13-629841-9 QA-769-03S-B53-19981998

Booch Grady Rumbaugh James Jacobson Ivar ldquoEl lenguaje unificado de modeladordquo Addison Wesley 432 Paacuteginas ISBN 84-7829-028-1 1999

Booch Grady Rumbaugh James Jacobson Ivar ldquoThe Unified Modeling Language User Guiderdquo Addison Wesley 2001

Brown David ldquoAn introduction to object-oriented analysis objects in plain Englishrdquo John Whiley amp Sons Inc 700 Paginas ISBN 0-471-1 1028-0 QA-769-035-B76-1997 1997

Chang Shi-Kuo ldquoVisual Languages and visual programmingrdquo Plenum Press 340 Paacuteginas ISBN 0-306-43428-8 QA-7665-V57-1990 1990

Daniels John ldquoModeling with a sense of purposerdquo Design - IEEE Software JanuaryEebmary 2002

Glasgow Universidad Reino Unido ldquoA UML Editor in Javardquo (lthttplstudentsdcsglaacuWstudentspainjfproject-reportproject-re port-htmV4thYearReporthtrnlgt 2002)

T Hackos JoAnn C Redish Janice ldquoUser and Task Analysis for Interface Designrdquo Wiley Computer Publishing 488 Paacuteginas ISBN QA-769-U83- H33-1998 1998

Hemaacutendez Velaacutezquez M ldquoIngenieriacutea inversa de coacutedigo fuente en C++ para la obtencioacuten de su disentildeordquo Tesis AT-379 (03-0334) 2003

Conceptos generales

[HIX93]

[JAC93]

[JAC99]

[JOY98]

[LAR97]

[MAR]

[MIC99]

[MIC02]

[MOU98]

Hix Deborah Hartson H Rex ldquoDeveloping user interfacesrdquo 381 Paacuteginas ISBN 0-471-57813-4 QA-769-U83-H59-1993 1993

Jacobson Ivar Christerson Magnus Jonsson Patrik Overgaard Gunnar ldquoObject oriented software engineeringrdquo Addison Wesley ISBN 0-20 1 - 54435-0 QA-7676-D47-J63-1993 1993

Jacobson Ivar Booch Grady Rumbaugh James ldquoEl proceso unificado de desarrollo de softwarerdquo Addison Wesley 438 Paacuteginas ISBN 84-7829-036- 2 1999

Joyanes Aguilar Luis ldquoProgramacioacuten orientada a objetosrdquo McGruw Hill ISBN 84-481-0590-7 1998

Larman Craig ldquoAplying UML and Patternsrdquo Prentice Hull 507 Paacuteginas ISBN 0-13-748880-7 QA-769-035-L37-1997 1997

Marriot Kim Meyer Bemd ldquoVisual Language Theoryrdquo Springer 381 Paacuteginas P-935-V567-1998 1998

Microsoft ldquoMicrosoft Visual C++ 6 manual del programadorrdquo McGraw Hill ISBN 84-481-2127-9 QA-7673-Cl53-23718-1999 1999

Microsoft ldquoVisiordquo (lthttpwwwmicrosoftcomofficevisiogt 2002)

B Mourao Luis X ldquoUniversal Modeling Language Part 11 UML Notation - Case Sequence and Collaboration Diagramsrdquo Lan Times Magazine (~httpwwwlantimescomltpartsdiscussdiscuss6Ohtm~) 1998

No Magic ldquoMagicDrawrdquo (lthttpwwwmagicdrawcomgt 2002)

Object Insight ldquoJvisionrdquo (lthttpwwwobject-insightcomgt 2002)

Rational Software Microsoft I Hewlett-Packard Oracle Sterling Software MCI Systemhouse Unisys ICON Computing IntelliCorp i-Logix IBM ObjectTime Platinum Technology Ptech Taskon Reich Technologies Sofieam ldquoUML Summaryrdquo Version 11 Unified Modeling Language 1997

Rational ldquoRational Roserdquo (lthttpwwwrationalcomproductosrosegt 2002)

Rikki Kirzner ldquoAnalysis Modeling and Design Tools Market Forecast and Analysis 2001-2005rdquo Bulletin Published Under Services Application Design and Construction Tools Application Development and Deployment Strategies Documento Nuacutemero 24809 Junio 2001

53

Conceptos generales

[RIM92] Rimrner Steve ldquoGraphical user interface programmingrdquo 423 Paacuteginas

1992

Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language reference manualrdquo Addison Wesley 550 Paacuteginas ISBN 0-201-

ISBN 0-8306-2475-9 ISBN 0-8306-2472-4 (pbk) QA-769-083-R55G

[RUM99]

30998-X QA-7676-D47-R85-1999 1999

[RUM299] Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language user guiderdquo Addisoiz Wesley 482 Paacuteginas ISBN 0-201 -57 168-4 QA-7676-D47-B66-1999 1999

[SMA02] SmartDraw ldquoSmartDrawrdquo (lthttpwwwsmartdrawcomgt 2002)

[SHU88] 9 - Shu Nun C ldquoVisual Programmingrdquo Van Nostrand Reinhold ISBN 0-422- 28014-9 ISBN 0-422-01 164-4 QA-7665-S55 1988

[THI90] Thimbleby Harold ldquoUser Interface Designrdquo Acm press 470 Paacuteginas ISBN 0-201 -41 61 8-2 QA-769U83-T772~- 1990 1990

[WENO2] Wences Diaz MF ldquoModelo de Ingenieriacutea Inversa para la obtencioacuten de disentildeo detallado basado en LEVISSrdquo Tesis (02-0014) 2002

54

Anexo A

Conampuracioacuten de Microsoft Vkua[C++ 6 O

Este anexo indica las configuraciones que se utilizaron para la compilacioacuten de SCUML y s3c

Configuracioacuten de Microsoft Visual c++ 60

Debido a la integracioacuten de los proyectos de InverSOODA e InverDDVi con S3C se cumplioacute con los requisitos previos de ambos proyectos

El compilador usado en el proyecto fue el Microsoft Visual C++ 60

Para el cumplimiento con la funcionalidad de InverSOODA se instaloacute el ANTLR la versioacuten 271 Se descargoacute del sitio l i l l ~ ~ ~ ~ ~ ~ t l ~ l ~ - ~ t - ~ la versioacuten mencionada en un archivo comprimido (en formato zip) Se colocoacute el paquete descomprimido en el directorio ldquoDIANTLR-271 I rdquo

Recomiendo ampliamente que el directorio principal de ANTLR se copie en el directorio raiacutez de cualquier unidad de disco debido a que experimenteacute problemas de compilacioacuten cuando ANTLR no se encontraba en el directorio raiacutez

Io015

Source Browser AlttF12 I u c Ersquo V I

Visual Component Mgnager

- - ~ ~ ~ ~~

P2 Registrar control

A Contenedor de prueba de controles ActiveX

A Usor de objetos OLE y COM

Buacutesqueda de errores

A Y++ MFC Iracer

Customize options

~ - q- ~ Macro

Eecord Quick Macro Cbl+ShiR+R Pay Quick Macro Ctrl+ShiR+P

En el menuacute Tools (Herramientas) seleccione el sub-menuacute Options ltopcionesgt

56

Configuracioacuten de Microsoft Visual C++ 60

En la siguiente ventana de diaacutelogo debe agregar la direccioacuten en donde se encuentra el ANTLR

Agregar la ruta del directorio de ANTLR hasta el subdirectorio

libcpp

Editor I Tabs I Debug I Compatibility 1 Build Dneclolies I a I Chow directories for - Platfolm -

- Directories I x ) 4 jWin32 -] llnclude files

m cancd I

57

Configuracioacuten de Microsoft Visual C t+ 60

Se ha creado una libreriacutea (anrlrliblib) de ANTLR la cual ya estaacute situada en el directorio del proyecto SCUML (ISCUML) y no debe ser movida o eliminada

I

Geneial 1 Debug I CC++ Link I Category

Output file name bebugSCUMLexe

Objectljibrary modules 4 anllrliblib

li Generate debug lnfo r Ignore all defaull lbaries D ~ i n k j n ~ ~ ~ t a n ~ r ~ e n e r ~ ~ ~ mapfile

r Enable psafilrng

Proiec1 Ootionn

pq Cancel 1 Libreriacutea de ANTLR que debe existir 1 I para que se compile correctamente

58

Anexo B

~ u iacute aacute raacutepida de uso deC Sistema S3C

5 Este anexo indica de forma raacutepida la manera de utilizar S3C para crear un diagrama de secuencias de forma automaacutetica

Guiacutea Raacutepida de uso del Sistema S3C i

Para indicar la creacioacuten de un diagrama de secuencias en forma automaacutetica se debe ir a la barra del costado izquierdo y presionar ldquoNuevo Proyecto SCUMLrdquo

I s3c I ~ Nuevo Proyecto SCUML ~ _ _ - I Diagrama de clases ~ Diagrama de secuencias 1 MDI DOC Activo

-

Apareceraacute un documento llamado ldquoSCUMLV en donde el simbolo corresponde a un numero consecutivo iniciando desde 1 (uno)

$ e Despueacutes se presiona ldquoDiagrama de clasesrdquo Habraacute que para indicarle al sistema si se requiere abrir un diagrama de clases existente o realizar uno nuevo

i

iquestAbrir un documento existente

No Cardquo~ear

AI presionar ldquoSirdquo se debe indicar cual es el archivo del diagrama de Clases en el cuadro de diaacutelogo siguiente

~~ - 11dMis documentos rsquo 2 M i P C i lsquo h s sitios de red

I

AI presionar ldquoNordquo en ldquoAbrir un documento existenterdquo se nos mostraraacute un documento vacio para crear un diagrama de clases

60

Guiacutea Raacutepida de uso del Sistema S3C

Para ambas opciones se requiere que los diagramas de Wamier ya se encuentren construidos Y para continuar el proccso se selecciona el documento ldquoSCUMLVrsquo creado al inicio y despueacutes presionar el botoacuten nombrado ldquoDiagrama de secuenciasrdquo localizado en la barra de hcrraiiiicntas del costado izquierdo

Ha iniciado el proceso de construccioacuten del diagrama de secuencias Si no existen errores al terminar el proceso se le mostraraacute un cuadro de diaacutelogo llamado ldquoResultadosrdquo en donde le mostraraacute las llamadas de las que no localizoacute su definicioacuten

- - -

Cancel 1 D e las siguientes llamadas es posible que esten mal escritas o peitenezcan a la libreiia del Lenguaie Verifique ya que no se encontraron sus definiciones

A continuacioacuten se mencionan los posibles errores que finalizan el proceso de la creacioacuten automaacutetica de los diagramas de secuencias en S3C

Cuando no exista un meacutetodo lsquomainrsquo definido en el diagrama de clases

No se encontro el meacutetodo lsquomain()rsquo que inicie la secuencia I A No se puede crear el diagrama de secuencias

p==amp=q

61

Guia Raacutepida de uso del Sistema S3C

Cuando se definan niultiples metodos lsquoinainrsquo en el diagrama de clases

Multiples meacutetodos lsquomainOlsquo Imposible decidir el inicio de secuencia

Aceptar i

Si un meacutetodo definido en Wamier realiza una llamada a lsquomainrsquo se cancelara el proceso

Llamada NO VALIDA al meacutetodo principal main

(iAcp-j(

4 i

CI Y rdquoldquoldquoI i 11 1-T

IZNTRO Gt INFORMACION

62

  • Tabla de Contenido
  • Listado de Figuras
  • Listado de Tablas
  • Notacioacuten
  • Introduccioacuten
  • Capitulo 1 Conceptos Generales
    • 11 Antecedentes
    • 12 Trabajos relacionados
      • 121 Tabla comparativa
        • 13 Definicioacuten del problema
        • 14 Objetivo de la Tesis
          • Objetivos especiacuteficos de la tesis
            • 15 Hipoacutetesis de investigacioacuten
            • 16 Alcances y limitaciones del trabajo de tesis
              • Capitulo 2 Marco Teoacuterico
                • 21 Modelado de sistemas de software
                • 22 Interfaz de usuario (Mecanismos de interaccioacuten)
                • 23 Lenguajes Visuales
                • 24 Programacioacuten orientada a objetos
                • 25 Lenguaje de Modelado Unificado (UML)
                  • Desarrollo de la herramienta
                    • 31 Disentildeo de la Arquitectura
                      • 311 Requisitos (Diagrama de Casos de uso)
                        • 312Modelo Conceptual
                        • 313Diagramas de clases
                        • 32 Elementos de la arquitectura
                          • 321 Microsoft Foundation Class (MFC)
                            • 322Arquitectura Documento Vista
                            • 323Integrando Ambientes en Visual c++
                              • 324 Interfaz de Muacuteltiples Documentos (MDI)
                                • 325Recursos Diaacutelogos Menus y Barras de Herramientas
                                  • 326 Notacioacuten estaacutendar
                                  • 327 Estructura de datos persistencia y recuperacioacuten
                                    • 328Patrones de disentildeo utilizados
                                      • 33 Diagrama de secuencias
                                        • 331Ciclo de vida del software
                                          • 34 Elementos atoacutemicos de la Gramaacutetica
                                            • 341 Representacioacuten visual
                                              • 35 Gramaacutetica desarrollada
                                              • 36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias
                                                  • Capitulo 4 Pruebas y Resultados
                                                    • 41 Recursos teacutecnicos utilizados
                                                    • 42 Descripcioacuten del plan de pruebas
                                                    • 43 Resultados
                                                      • 431 Caso
                                                      • 432 Caso2
                                                      • 433 Caso
                                                          • Conclusiones y trabajos futuros
                                                            • Trabajos futuros
                                                            • Referencias
                                                            • Anexo A Configuracioacuten de Microsoft Visual C+t
                                                              • Figura 11 - Arquitectura de la suite cenidet-UML
                                                              • Figura 21 -Programacioacuten Visual
                                                              • Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de
                                                              • Figura 32 -Diagrama de Casos de Uso para el S3C
                                                              • Figura 33 -Modelo Conceptual
                                                              • Figura 34 - Diagrama de Clases -Control del Diagrama -
                                                              • Figura 35 - Diagrama de Clases - Patroacuten Visitor -
                                                              • Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento
                                                              • Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)
                                                              • Figura 38 -Dialogo Caracteriacutesticas del Objeto
                                                              • Figura 39 -Dialogo Mensaje
                                                              • Figura 3 IO - Menuacute de los Diagramas de Secuencias (estaacutendar)
                                                              • Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias
                                                              • Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)
                                                              • Figura 313 - Serializacioacuten
                                                              • Figura 314 -Modelo de cascada del ciclo de vida del software
                                                              • Figura 41 - Resultado del caso de prueba
                                                              • Figura 42 -Resultado del caso de prueba
                                                              • Figura 43 -Resultado del caso de prueba
                                                              • Figura 44 -Resultado del caso de prueba
                                                              • Tabla 11 - Tabla comparativa
                                                              • Tabla 31 -Prefijos estaacutendar de identificadores
                                                              • Tabla 32 -Elementos atoacutemicos del lenguaje
                                                              • Tabla 41 - Resumen de los resultados de las pruebas realizadas

Desarrollo de la herramienta

Prefijo ID IDC IDD IDP IDR IDS

326 Notacioacuten estaacutendar

Los nombres descriptivos de los recursos se asocian a un valor uacutenico Para una mayor claridad eacutestos nombres mantienen un prefijo que describe el tipo de recurso asociado (vea la Tabla 31) [MIC99]

Tipo de Recurso Comandos de Menuacute Controles y recursos Cuadros de diaacutelogo Cadenas de solicitud para cuadros de mensaje Menuacute principal barras de herramienta tabla aceleradora y el icono Cadenas

IDR IDD IDC ID

200 - 299 3000 - 3999 34000 - 34999

Estos son los rangos de valores establecidos para el proyecto S3C Si se utiliza el coacutedigo fuente y se planea agregar otro proyecto verifisue que no se invadan estos nuacutemeros para evitar problemas

Para facilitar auacuten maacutes los trabajos futuros se ha definido una estructura de carpetas (ver Figura 312) para incluir en cada una las Clases correspondientes a cada tesis en desarrollo

33

Desarrollo de la herramienta

ill ~~ -

-I SCUML classes + U A N T L R + U App + 0 ClassDiagrams + 0 Common + a Java

t $2 SequenceDiagiams

+ WarnierDiagrams

iJ PackageDiagrams

12 StaterChartDiagrams

+

- f Classview I Resourceview 1 FileView ]

~ ~

Figura 312 Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)

327Estructura de datos persistencia y recuperacioacuten

Existe una gran cantidad de tipos de datos estructuras clases y meacutetodos de los que se puede hacer uso para una mejor y maacutes faacutecil obtencioacuten de los resultados A continuacioacuten hago comentarios en tipos de datos y meacutetodos en los que podriacutea tener problemas

CTypedPtrList

AI usar este tipo de dato o alguno relacionado que le permita utilizar el meacutetodo ltCTvrgtedPtrListGetNextgt tenga especial precaucioacuten al usarlo ya que al devolver el valor requerido la variable POSITION usada no se queda apuntando a ese valor en particular salta al inmediato siguiente de la lista

Si se realiza una creacioacuten dinaacutemica con punteros para los elementos de una CTypedPtrList Despueacutes de haberlo agregado a la lista evite el delete para borrar esta Usted deseando liberar la memoria no lo haga ya que eliminara directamente el elemento de la lista

POSITION

Es un valor usado para denotar una posicioacuten de un elemento en una coleccioacuten Pero CUIDADO no se refiere a un iacutendice es una referencia (no consecutiva) de punteros muy diferente a un iacutendice

CString

Auacuten cuando el operador de comparacioacuten == (igual a) es permitido para ser utilizado en las cadenas evite su uso ya que en ocasiones aunque cuando la e

34

Desarrollo de la herramienta

compilacioacuten no indique error alguno en la ejecucioacuten no realizaraacute lo que se necesita Recomiendo que utilice CStringCompare ()

Para eliminar el contenido de un CString utilice CStringEmpty() ya que asignar a la cadena un ldquonrdquo podriacutea causarle problemas

Serializacioacuten

Una forma en que se puede guardar informacioacuten y recuperarla de manera eficaz es mediante la serializacioacuten de objetos La serializacioacuten es un proceso que permite escribir un objeto en un archivo y tambieacuten leerlo

Para que la serializacioacuten se lleve a cabo son necesarios tres objetos un objeto de tipo ltCFilegt que represente el archivo un objeto de tipo ltCArchivegt que ofrece el entorno para la serializacioacuten y la clase del objeto a ser serializado debe ser heredada de ltCObjectgt y sobrescribir el meacutetodo ltSerializegt para que se encuentre de tal forma en que pueda ser serializado (vea la Figura 313)

Objeto a ser serializado 1

1 CArchive

[f --=I- ---7 Archivoexi

u Figura 313 Serializacioacuten

328Patrones de disentildeo utilizados

Se ha planteado la definicioacuten de una arquitectura de clases utilizando patrones de disentildeo debido a que algunos de ellos hacen maacutes faacutecil la extensioacuten de la funcionalidad y mantenimiento

35

Desarrollo de la herramienta

El patroacuten Composite es utilizado para crear de manera uniforme el diagrama sobre el que se trabaja (ver Figura 34) manteniendo una jerarquiacutea de clases uniforme las clases maacutes bajas en la jerarquiacutea definen primitivas de objetos graacuteficos

Se aplica el patroacuten de disentildeo Iterator para hacer recorridos en listas de objetos para realizar diversas operaciones Otro patroacuten de disentildeo del que se hace uso es el Visilor (ver Figura 35)

Para otras actividades que se realizan podriacutea pensarse en que se deberiacutean aplicar otros patrones pero se han evitado algunos (como el patroacuten de disentildeo Builder) para evitar incrementar la complejidad en la arquitectura ya que ai mantener el modelo de la MFC de documentovista la funcionalidad del patroacuten de disentildeo Builder es faacutecilmente reemplazado si se hiciera Uso de eacuteste se aumentariacutea la complejidad excesivamente (nos llevariacutea a perdemos en ocasiones en el paso de mensajes entre clases) dantildeando la facilidad de la arquitectura

33 Diagrama de secuencias

Un Diagrama de Secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten escenario Oacute comportamiento se usan para definir el curso loacutegico de accioacuten de un posible camino a seguir en la resolucioacuten de un problema Seguacuten John Daniels [DANO2] ldquoel principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildean las interacciones de los objetosrdquo

Los Diagramas de Secuencias se utilizan en el modelado de la implementacioacuten de sistemas de software ademaacutes son aplicables en el modelado de requisitos para establecer las comunicaciones existentes entre actores yo clases del sistema Con eacutestos diagramas se logran hacer descripciones de los escenarios y los comportamientos del sistema Con los Diagramas de Secuencias es posible definir protocolos de comunicacioacuten con paso de mensajes ya que dan esa flexibilidad que se requiere Ademaacutes los Diagramas de Secuencias contienen informacioacuten suficiente para que puedan ser transformados a los diagramas de colaboracioacuten [RUM Ol][BOO Oil

331Ciclo de vida del software

Considerando cualquier modelo de ciclo de vida del software (en la figura 314 se muestra el Modelo de cascada) el aacutembito directo de eacuteste Ambiente Visual es en el disentildeo aunque tiene sus vertientes en la codificacioacuten y mantenimiento

36

Desarrollo de la herramienta

Diseno

Codificacibn

I I I I Mantenimiento I

igura 314 Modelo de cascada del ciclo de vida del software

34 Elementos atoacutemicos de la Gramaacutetica

Definicioacuten de los elementos atoacutemicos del lenguaje y su contenido

1 Actor- Representa roles de entidad externos al sistema con el que interactuacutea directamente Los actores pueden ser humanos dispositivos u otros sistemas

2 ClaseObjeto- Determina una Clase u Objeto participante en la interaccioacuten

3 Mensaje-Es una comunicacioacuten entre objetos que contiene informacioacuten Eacuteste se representa con la finalidad a que una accioacuten sea llevada a cabo

4 Mensaje con tiempo- Tiene la misma finalidad que el mensaje la diferencia es que con eacutel se representa un atributo de tiempo

5 Mensaje asiacutencrono Es un mensaje que ocurre en el tiempo de manera independiente a otros mensajes

6 Mensaje de destruccioacuten de objeto- Es un mensaje cuya finalidad es indicar la destruccioacuten del objeto destino

7 Mensaje de creacioacuten de objeto- Es un mensaje que indica la creacioacuten de un objeto

8 Llamada al mismo objeto (Recursividad)- Es usado para modelar llamadas recursivas en el que una operacioacuten es invocada por el mismo objeto

37

Desarrollo de la herramienta

9 Destruccioacuten del objeto (AutodestrucciOacuten)- Puede o no modelarse es representada con una X al final de la liacutenea de vida del objeto

Elementos aulomaacuteticos

1 Liacutenea de Vida- Representa la vida del objeto durante la interaccioacuten

2 Activacioacuten- Muestra el periacuteodo de tiempo en el cual el objeto alguna operacioacuten

341RepresentaciOacuten visual

Representacioacuten visual de los elementos atoacutemicos del lenguaje

Actor

_- A

Mensaje

Mensaje de Creacioacuten de

Objeto

ClaseObjeto

I

Mensaje de retorno

Mensaje de Destruccioacuten de

Objeto

abla 32 Element(

Activacioacuten

Mensaje con tiempo

Autodestruccioacuten

x

atoacutemicos del lengi

taacute realizz

Texto ===I (letra)+ (letra I

numero) letra= AZ I az numero = 09

I

Recursividad ~

I

i j e

io

38

u

Comentario

iexcl

Conector de Comentario

35 Gramaacutetica desarrollada

La gramaacutetica que se propone es una gramaacutetica visual del tipo relacional Una gramaacutetica relacional pertenece a las gramaacuteticas libres de contexto es una 6-iupla G (N C S R Attr P) donde

N es un conjunto finito de siacutembolos no terminales C es un conjunto de siacutembolos terminales S es un siacutembolo distinguido en N llamado siacutembolo inicial R es un conjunto finito de siacutembolos de relacioacuten Attr es un conjunto finito de siacutembolos de atributos P es un conjunto de producciones

Entonces definiendo nuestra gramaacutetica G (N C S R Attr P)

N = Diagrama GrupoClaseObjeto

S = Diagrama

R = mensaje mensajeTiempo mensajeRetomo mensajeAsincrono mensajecrea mensajeDestruye autodestruccioacuten recursividad

R

Attr = entrada salida entradacrea

39

Desarrollo de la herramienta

Definiendo la posicioacuten de los atributos en los elementos visuales

entradacrea ObetaClase

entrada

salida

P =

Diagrama I GrupoClaseObjeto (mensaje (mensajeRetorno

(salida 1) (entrada 2) ) (salida 2) (entrada 1) )

- Diagrama 0 GrupoClaseObjeto

(mensaje (mensaje (mensajeRetomo (mensajeRetomo (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entradacrea 2) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 1) ) (salida 1) (entrada 1) )

entrada

salida

40

Desarrollo de la herramienta

s

-

GrupoClaseObjeto - 1 1 I 2 (mensaje (mensaje (mensajeRetorno (mensajeRetorno (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entradacrea 2) ) (salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 1) ) (salida I ) (entrada I ) )

1 En las gramaacuteticas relacionales una produccioacuten estaacute acompantildeada de las posibles

relaciones que puedan generarse En la primera produccioacuten Diagrama produce a un Actor seguida de un GrupoClaseObjeto el Actor inicia la interaccioacuten con un mensaje y recibe el mensaje de retorno al finalizar la interaccioacuten La segunda y tercera produccioacuten son similares debido a que un GrupoClaseObjeto contiene dos ClaseObjeto que se relacionan de la misma forma

Existe un elemento de la gramaacutetica llamado Attr (Atributo) el cual define la parte de los elementos visuales donde se establecen las relaciones Se han determinado dos atributos (entrada y salida) que para nuestro propoacutesito estaraacuten establecidos en la liacutenea de vida de cada elemento visual (Actor y ClaseObjeto)

Los Comentarios y la Activacioacuten no se consideran en la gramaacutetica Los comentarios son libres de incluirse y relacionarse con cualquier elemento y relacioacuten mencionada anteriormente y la activacioacuten existe siempre que se presente un mensaje (o podriacutea omitirse) Estas consideraciones se realizaron para hacer auacuten maacutes faacutecil la gramaacutetica ya que si se trata de realizar un sistema las restricciones de estos elementos pueden mantenerse en el lenguaje de programacioacuten en el que se desarrolle el sistema

36

Precondiciones

El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias

1 El diagrama de Clases debe existir y estar completo 2 Debe existir un archivo con un diagrama de Warnier por cada diagrama de Clases y

con el mismo nombre de archivo (excepto la extensioacuten del archivo) 3 En el uacutenico diagrama de Warnier de cada Clase se deben modelar todos los meacutetodos

de la Clase 4 No realizar declaraciones de meacutetodos

41

Desarrollo de la herramienta

5 Debe existir un meacutetodo lsquomain()rsquo en el diagrama de Clases

Restricciones

Los meacutetodos deben mantener nombres distintos en las diferentes Clases

Metodologiacutea para la obtencioacuten automaacutetica de los Diagramas de Secuencias

1 Seleccionar el diagrama de Clases

2 Se construye una lista con los nombres de las Clases y los Meacutetodos

3 Se verifica si exista el meacutetodo lsquomain()rsquo en alguna Clase Se busca la existencia de una uacutenica Clase

a La Clase que contenga lsquomain()rsquo se va al inicio de la lista de Clases

b Si no existe lsquomain()rsquo SE TERMINA EL PROCESO

4 Se verifica la existencia de los archivos que contienen el Disentildeo Detallado de los meacutetodos en Wamier para cada una de las Clases si alguno falta SE TERMINA EL PROCESO

5 Se procesa cada uno de los modelos del Disentildeo Detallado de los Meacutetodos generando una lista de secuencias de llamadas por cada uno de los meacutetodos

6 Se verifica que cada llamada corresponda a alguacuten meacutetodo existente (del diagrama de Clases) De no existir ese meacutetodo la llamada entra a una estructura que

7 Se crea una lista de secuencia

a Se inicia con lsquomain()rsquo b Se recorre cada una de las llamadas de los meacutetodos c Se considera invaacutelido el caso de que un meacutetodo intente una llamada

recursiva al meacutetodo lsquomain()rsquo

8 Se muestra un diaacutelogo de resultados en el que se indican las llamadas que no se encnotraron definidas y que pueden ser Llamada a libreriacutea oacute Llamada Erroacutenea

42

Capiacutetulo 4

Prue6as y su6taaacuteos

En eacuteste capiacutetulo se da a conocer el detalle de las pruebas y de los resultados obtenidos Se describen los casos de prueba con los que se realizoacute la evaluacioacuten del sistema asiacute tambieacuten se presentan comentarios acerca de los resultados obtenidos

Pruebas y Resultados

41 Recursos teacutecnicos utilizados

Para llevar a cabo las pruebas al sistema S3C se utilizaron los siguientes equipos de Coacutemputo

Computadora de escritorio

256MB RAM Disco Duro 80G Monitor 17rdquo SAMSUNG

AMD Athlon XP 1600+ I4Ghz

Computadora de escritorio Intel Pentium 4 - 128MB RAM Disco Duro 40G Monitor 15rdquo i -

42 Descripcioacuten del plan de pruebas

Las pruebas establecen el Uacuteltimo paso desde donde es posible evaluar la calidad y descubrir los errores Las pruebas y la validacioacuten del software se utilizan para comprobar que el sistema cumple con las expectativas del usuario

En esta seccioacuten se describen los casos de prueba que se realizaron al prototipo de S3C en conjunto a la suite cenidet-UML Para cada uno de los casos se presenta el objetivo el procedimiento que se siguioacute para la prueba y se muestran los resultados obtenidos - _

Las pruebas a realizar son los siguientes

Caso 1 Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Caso 2 Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Wamier

Caso3 Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Wamier

Caso4 Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo 5

44

Pruebas y Resultados

43 Resultados

431 Caso 1

5 Y

IZ =

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoSirdquo 4 Seleccionar el archivo ldquoVENTASrdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 41 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

s3c iuevo Proyecto SCUM1

Diagrama de clases

lvendedor I L

3

salida

venta prod

4 venia-oferta vcntaprod =

salida 6

Figura 41 Resultado del caso de prueba 1

45

Pruebas y Resultados

432 Caso 2

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Warnier (almacenwar cajawar vendedorwar) que ya cxisten (del caso de prueba I )

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoNordquo 4 Agregar las siguientes Clases con los respectivos meacutetodos y atributos

a Claseldquovendedorrdquo Meacutetodos ldquoventa mainrdquo b Claseldquoalmacenrdquo Meacutetodos ldquoentrada salidardquo c Claseldquocajardquo Meacutetodos ldquoventagrodrdquo

5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 42 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

Diagrama de daseo lisgrama dcsccucncis

MOIDOC Anivo

venta prod

salida

1 Ycrdquo1a 2

I 4 vcrdquolD~o1cn venta prod gt

salida 6 i Figura 42 Resultado del caso de prueba 2

46

Pruebas y Resultados

r

433 Caso 3

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Warnier

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 43 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

5

Error al tratar de abrir el archivo A bZwar

Aceptar i

Faltan Archivos de Disentildeos Detallados de Meacutetodos 1 1 A No se puede crear el diagrama de secuencias

Figura 43 Resultado del caso de prueba 3

47

Pruebas y Resultados

434 Caso 4

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 44 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

lsquo I

~ _ i i _ l _ Repaado ~~ ~ ~ 6~ ampA Figura 44 Resultado del caso de prueba 4

48

Pruebas y Resultados

PRUEBA DESCNPCION CASO 1 Mostrar la funcionalidad del

Sistema S3C a partir de un

44 Anaacutelisis de Resultados

RESULTADOS Se comproboacute la correcta funcionalidad del Sistema S3C a partir de un diagrama

CASO 3

CASO4

I diagrama de Clases cxistcnte I de Clases existente CASO 2 I Mostrar la funcionalidad del I Sc comproboacute la corrccta funcionalidad

Sistema S3C a partir de un del Sistema S3C a partir de un diagrama diagrama de Clases que se de Clases que se construye al momento construye al momento Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el Secuencias si falta alguno de los diagrama de Secuencia si falta alguno diagramas de Warnier Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el secuencias si hace falta el meacutetodo diagrama de Secuencias al faltar el ldquomain ()rdquo meacutetodo ldquomain()rdquo

de los diagramas de Warnier

Los resultados obtenidos de cada uno de los casos establecidos demuestran que se validoacute la funcionalidad del prototipo con los requisitos definidos en el alcance de este proyecto

a lt

49

Conclusiones y Tru6ajos Futuros

Aquiacute se dan a conocer las conclusiones y se describen los posibles trabajos futuros para la continuacioacuten de eacuteste proyecto

F

51 Conclusiones

Conclusiones y trabajos futuros

Se ha creado un Ambiente Visual que permite obtener de forma automaacutetica los Diagramas de Secuencias en base a los diagramas de Clases y al disentildeo detallado de los meacutetodos descritos con diagramas de Warnier cumpliendo con los objetivos planteados para este trabajo

La tesis aporta principalmente La generacioacuten automaacutetica de los diagramas de secuencias y la eliminacioacuten de inconsistencias al mantener una validacioacuten directa de los diagramas de clases y los diagramas de Warnier que son utilizados

Esta validacioacuten es lograda a traveacutes del uso de la gramaacutetica visual relaciona1 que se ha definido (veacutease el capiacutetulo 3) Esta gramaacutetica visual establece reglas para la correcta construccioacuten de los diagramas de secuencias

P De esta manera se establece que la hipoacutetesis ldquoEs posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodosrdquo Es verdadera

52 Trabajos Futuros

Un Diagrama de Secuencias puede convertirse en un Diagrama de Colaboracioacuten por lo tanto un trabajo futuro es la construccioacuten automaacutetica de un Diagrama de Colaboracioacuten a partir de uno de Secuencias existente

Es posible calcular la meacutetrica de acoplamiento al tener un Diagrama de Secuencias construido

La Ingenieriacutea directa de un Diagrama de Secuencias estableciendo la validacioacuten en la construccioacuten de todos los elementos visuales que UML define

La propagacioacuten de las modificaciones de un Diagrama de Secuencias a los Diagramas de Clases y los Diagramas de Warnier

La modificacioacuten del coacutedigo fuente mediante los cambios establecidos en un Diagrama de Secuencias

51

[ALC03]

[BLA98]

[B0099]

[BOOOi]

[BR097]

[CHA90]

[DAN02]

[GLA02]

[HAC98]

[HER03]

4

Alcate1 Computer Associates International inc Electronic Data Systems Corporation Hewlett-Packard Company IBM Corporation I-Logix IntelliCorp Kabira Technologies Kennedy Carter Microsoft Corporation Object Management Group Oracle Corporation Project Technology Ptech Inc Rational Software Corporation Reich Technologies Softeam Taskon A S Telelogic Unisys Corporation ldquoOMG Unified Modeling Language Specificationrdquo Version 15 Unified Modeling Language 2003

Blaha Michael Rumbaugh James Premerlani William Eddy Frederick Lorensen William ldquoObject-oriented modeling and designrdquo Prentice Hall 484 Paacuteginas ISBN 0-13-629841-9 QA-769-03S-B53-19981998

Booch Grady Rumbaugh James Jacobson Ivar ldquoEl lenguaje unificado de modeladordquo Addison Wesley 432 Paacuteginas ISBN 84-7829-028-1 1999

Booch Grady Rumbaugh James Jacobson Ivar ldquoThe Unified Modeling Language User Guiderdquo Addison Wesley 2001

Brown David ldquoAn introduction to object-oriented analysis objects in plain Englishrdquo John Whiley amp Sons Inc 700 Paginas ISBN 0-471-1 1028-0 QA-769-035-B76-1997 1997

Chang Shi-Kuo ldquoVisual Languages and visual programmingrdquo Plenum Press 340 Paacuteginas ISBN 0-306-43428-8 QA-7665-V57-1990 1990

Daniels John ldquoModeling with a sense of purposerdquo Design - IEEE Software JanuaryEebmary 2002

Glasgow Universidad Reino Unido ldquoA UML Editor in Javardquo (lthttplstudentsdcsglaacuWstudentspainjfproject-reportproject-re port-htmV4thYearReporthtrnlgt 2002)

T Hackos JoAnn C Redish Janice ldquoUser and Task Analysis for Interface Designrdquo Wiley Computer Publishing 488 Paacuteginas ISBN QA-769-U83- H33-1998 1998

Hemaacutendez Velaacutezquez M ldquoIngenieriacutea inversa de coacutedigo fuente en C++ para la obtencioacuten de su disentildeordquo Tesis AT-379 (03-0334) 2003

Conceptos generales

[HIX93]

[JAC93]

[JAC99]

[JOY98]

[LAR97]

[MAR]

[MIC99]

[MIC02]

[MOU98]

Hix Deborah Hartson H Rex ldquoDeveloping user interfacesrdquo 381 Paacuteginas ISBN 0-471-57813-4 QA-769-U83-H59-1993 1993

Jacobson Ivar Christerson Magnus Jonsson Patrik Overgaard Gunnar ldquoObject oriented software engineeringrdquo Addison Wesley ISBN 0-20 1 - 54435-0 QA-7676-D47-J63-1993 1993

Jacobson Ivar Booch Grady Rumbaugh James ldquoEl proceso unificado de desarrollo de softwarerdquo Addison Wesley 438 Paacuteginas ISBN 84-7829-036- 2 1999

Joyanes Aguilar Luis ldquoProgramacioacuten orientada a objetosrdquo McGruw Hill ISBN 84-481-0590-7 1998

Larman Craig ldquoAplying UML and Patternsrdquo Prentice Hull 507 Paacuteginas ISBN 0-13-748880-7 QA-769-035-L37-1997 1997

Marriot Kim Meyer Bemd ldquoVisual Language Theoryrdquo Springer 381 Paacuteginas P-935-V567-1998 1998

Microsoft ldquoMicrosoft Visual C++ 6 manual del programadorrdquo McGraw Hill ISBN 84-481-2127-9 QA-7673-Cl53-23718-1999 1999

Microsoft ldquoVisiordquo (lthttpwwwmicrosoftcomofficevisiogt 2002)

B Mourao Luis X ldquoUniversal Modeling Language Part 11 UML Notation - Case Sequence and Collaboration Diagramsrdquo Lan Times Magazine (~httpwwwlantimescomltpartsdiscussdiscuss6Ohtm~) 1998

No Magic ldquoMagicDrawrdquo (lthttpwwwmagicdrawcomgt 2002)

Object Insight ldquoJvisionrdquo (lthttpwwwobject-insightcomgt 2002)

Rational Software Microsoft I Hewlett-Packard Oracle Sterling Software MCI Systemhouse Unisys ICON Computing IntelliCorp i-Logix IBM ObjectTime Platinum Technology Ptech Taskon Reich Technologies Sofieam ldquoUML Summaryrdquo Version 11 Unified Modeling Language 1997

Rational ldquoRational Roserdquo (lthttpwwwrationalcomproductosrosegt 2002)

Rikki Kirzner ldquoAnalysis Modeling and Design Tools Market Forecast and Analysis 2001-2005rdquo Bulletin Published Under Services Application Design and Construction Tools Application Development and Deployment Strategies Documento Nuacutemero 24809 Junio 2001

53

Conceptos generales

[RIM92] Rimrner Steve ldquoGraphical user interface programmingrdquo 423 Paacuteginas

1992

Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language reference manualrdquo Addison Wesley 550 Paacuteginas ISBN 0-201-

ISBN 0-8306-2475-9 ISBN 0-8306-2472-4 (pbk) QA-769-083-R55G

[RUM99]

30998-X QA-7676-D47-R85-1999 1999

[RUM299] Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language user guiderdquo Addisoiz Wesley 482 Paacuteginas ISBN 0-201 -57 168-4 QA-7676-D47-B66-1999 1999

[SMA02] SmartDraw ldquoSmartDrawrdquo (lthttpwwwsmartdrawcomgt 2002)

[SHU88] 9 - Shu Nun C ldquoVisual Programmingrdquo Van Nostrand Reinhold ISBN 0-422- 28014-9 ISBN 0-422-01 164-4 QA-7665-S55 1988

[THI90] Thimbleby Harold ldquoUser Interface Designrdquo Acm press 470 Paacuteginas ISBN 0-201 -41 61 8-2 QA-769U83-T772~- 1990 1990

[WENO2] Wences Diaz MF ldquoModelo de Ingenieriacutea Inversa para la obtencioacuten de disentildeo detallado basado en LEVISSrdquo Tesis (02-0014) 2002

54

Anexo A

Conampuracioacuten de Microsoft Vkua[C++ 6 O

Este anexo indica las configuraciones que se utilizaron para la compilacioacuten de SCUML y s3c

Configuracioacuten de Microsoft Visual c++ 60

Debido a la integracioacuten de los proyectos de InverSOODA e InverDDVi con S3C se cumplioacute con los requisitos previos de ambos proyectos

El compilador usado en el proyecto fue el Microsoft Visual C++ 60

Para el cumplimiento con la funcionalidad de InverSOODA se instaloacute el ANTLR la versioacuten 271 Se descargoacute del sitio l i l l ~ ~ ~ ~ ~ ~ t l ~ l ~ - ~ t - ~ la versioacuten mencionada en un archivo comprimido (en formato zip) Se colocoacute el paquete descomprimido en el directorio ldquoDIANTLR-271 I rdquo

Recomiendo ampliamente que el directorio principal de ANTLR se copie en el directorio raiacutez de cualquier unidad de disco debido a que experimenteacute problemas de compilacioacuten cuando ANTLR no se encontraba en el directorio raiacutez

Io015

Source Browser AlttF12 I u c Ersquo V I

Visual Component Mgnager

- - ~ ~ ~ ~~

P2 Registrar control

A Contenedor de prueba de controles ActiveX

A Usor de objetos OLE y COM

Buacutesqueda de errores

A Y++ MFC Iracer

Customize options

~ - q- ~ Macro

Eecord Quick Macro Cbl+ShiR+R Pay Quick Macro Ctrl+ShiR+P

En el menuacute Tools (Herramientas) seleccione el sub-menuacute Options ltopcionesgt

56

Configuracioacuten de Microsoft Visual C++ 60

En la siguiente ventana de diaacutelogo debe agregar la direccioacuten en donde se encuentra el ANTLR

Agregar la ruta del directorio de ANTLR hasta el subdirectorio

libcpp

Editor I Tabs I Debug I Compatibility 1 Build Dneclolies I a I Chow directories for - Platfolm -

- Directories I x ) 4 jWin32 -] llnclude files

m cancd I

57

Configuracioacuten de Microsoft Visual C t+ 60

Se ha creado una libreriacutea (anrlrliblib) de ANTLR la cual ya estaacute situada en el directorio del proyecto SCUML (ISCUML) y no debe ser movida o eliminada

I

Geneial 1 Debug I CC++ Link I Category

Output file name bebugSCUMLexe

Objectljibrary modules 4 anllrliblib

li Generate debug lnfo r Ignore all defaull lbaries D ~ i n k j n ~ ~ ~ t a n ~ r ~ e n e r ~ ~ ~ mapfile

r Enable psafilrng

Proiec1 Ootionn

pq Cancel 1 Libreriacutea de ANTLR que debe existir 1 I para que se compile correctamente

58

Anexo B

~ u iacute aacute raacutepida de uso deC Sistema S3C

5 Este anexo indica de forma raacutepida la manera de utilizar S3C para crear un diagrama de secuencias de forma automaacutetica

Guiacutea Raacutepida de uso del Sistema S3C i

Para indicar la creacioacuten de un diagrama de secuencias en forma automaacutetica se debe ir a la barra del costado izquierdo y presionar ldquoNuevo Proyecto SCUMLrdquo

I s3c I ~ Nuevo Proyecto SCUML ~ _ _ - I Diagrama de clases ~ Diagrama de secuencias 1 MDI DOC Activo

-

Apareceraacute un documento llamado ldquoSCUMLV en donde el simbolo corresponde a un numero consecutivo iniciando desde 1 (uno)

$ e Despueacutes se presiona ldquoDiagrama de clasesrdquo Habraacute que para indicarle al sistema si se requiere abrir un diagrama de clases existente o realizar uno nuevo

i

iquestAbrir un documento existente

No Cardquo~ear

AI presionar ldquoSirdquo se debe indicar cual es el archivo del diagrama de Clases en el cuadro de diaacutelogo siguiente

~~ - 11dMis documentos rsquo 2 M i P C i lsquo h s sitios de red

I

AI presionar ldquoNordquo en ldquoAbrir un documento existenterdquo se nos mostraraacute un documento vacio para crear un diagrama de clases

60

Guiacutea Raacutepida de uso del Sistema S3C

Para ambas opciones se requiere que los diagramas de Wamier ya se encuentren construidos Y para continuar el proccso se selecciona el documento ldquoSCUMLVrsquo creado al inicio y despueacutes presionar el botoacuten nombrado ldquoDiagrama de secuenciasrdquo localizado en la barra de hcrraiiiicntas del costado izquierdo

Ha iniciado el proceso de construccioacuten del diagrama de secuencias Si no existen errores al terminar el proceso se le mostraraacute un cuadro de diaacutelogo llamado ldquoResultadosrdquo en donde le mostraraacute las llamadas de las que no localizoacute su definicioacuten

- - -

Cancel 1 D e las siguientes llamadas es posible que esten mal escritas o peitenezcan a la libreiia del Lenguaie Verifique ya que no se encontraron sus definiciones

A continuacioacuten se mencionan los posibles errores que finalizan el proceso de la creacioacuten automaacutetica de los diagramas de secuencias en S3C

Cuando no exista un meacutetodo lsquomainrsquo definido en el diagrama de clases

No se encontro el meacutetodo lsquomain()rsquo que inicie la secuencia I A No se puede crear el diagrama de secuencias

p==amp=q

61

Guia Raacutepida de uso del Sistema S3C

Cuando se definan niultiples metodos lsquoinainrsquo en el diagrama de clases

Multiples meacutetodos lsquomainOlsquo Imposible decidir el inicio de secuencia

Aceptar i

Si un meacutetodo definido en Wamier realiza una llamada a lsquomainrsquo se cancelara el proceso

Llamada NO VALIDA al meacutetodo principal main

(iAcp-j(

4 i

CI Y rdquoldquoldquoI i 11 1-T

IZNTRO Gt INFORMACION

62

  • Tabla de Contenido
  • Listado de Figuras
  • Listado de Tablas
  • Notacioacuten
  • Introduccioacuten
  • Capitulo 1 Conceptos Generales
    • 11 Antecedentes
    • 12 Trabajos relacionados
      • 121 Tabla comparativa
        • 13 Definicioacuten del problema
        • 14 Objetivo de la Tesis
          • Objetivos especiacuteficos de la tesis
            • 15 Hipoacutetesis de investigacioacuten
            • 16 Alcances y limitaciones del trabajo de tesis
              • Capitulo 2 Marco Teoacuterico
                • 21 Modelado de sistemas de software
                • 22 Interfaz de usuario (Mecanismos de interaccioacuten)
                • 23 Lenguajes Visuales
                • 24 Programacioacuten orientada a objetos
                • 25 Lenguaje de Modelado Unificado (UML)
                  • Desarrollo de la herramienta
                    • 31 Disentildeo de la Arquitectura
                      • 311 Requisitos (Diagrama de Casos de uso)
                        • 312Modelo Conceptual
                        • 313Diagramas de clases
                        • 32 Elementos de la arquitectura
                          • 321 Microsoft Foundation Class (MFC)
                            • 322Arquitectura Documento Vista
                            • 323Integrando Ambientes en Visual c++
                              • 324 Interfaz de Muacuteltiples Documentos (MDI)
                                • 325Recursos Diaacutelogos Menus y Barras de Herramientas
                                  • 326 Notacioacuten estaacutendar
                                  • 327 Estructura de datos persistencia y recuperacioacuten
                                    • 328Patrones de disentildeo utilizados
                                      • 33 Diagrama de secuencias
                                        • 331Ciclo de vida del software
                                          • 34 Elementos atoacutemicos de la Gramaacutetica
                                            • 341 Representacioacuten visual
                                              • 35 Gramaacutetica desarrollada
                                              • 36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias
                                                  • Capitulo 4 Pruebas y Resultados
                                                    • 41 Recursos teacutecnicos utilizados
                                                    • 42 Descripcioacuten del plan de pruebas
                                                    • 43 Resultados
                                                      • 431 Caso
                                                      • 432 Caso2
                                                      • 433 Caso
                                                          • Conclusiones y trabajos futuros
                                                            • Trabajos futuros
                                                            • Referencias
                                                            • Anexo A Configuracioacuten de Microsoft Visual C+t
                                                              • Figura 11 - Arquitectura de la suite cenidet-UML
                                                              • Figura 21 -Programacioacuten Visual
                                                              • Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de
                                                              • Figura 32 -Diagrama de Casos de Uso para el S3C
                                                              • Figura 33 -Modelo Conceptual
                                                              • Figura 34 - Diagrama de Clases -Control del Diagrama -
                                                              • Figura 35 - Diagrama de Clases - Patroacuten Visitor -
                                                              • Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento
                                                              • Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)
                                                              • Figura 38 -Dialogo Caracteriacutesticas del Objeto
                                                              • Figura 39 -Dialogo Mensaje
                                                              • Figura 3 IO - Menuacute de los Diagramas de Secuencias (estaacutendar)
                                                              • Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias
                                                              • Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)
                                                              • Figura 313 - Serializacioacuten
                                                              • Figura 314 -Modelo de cascada del ciclo de vida del software
                                                              • Figura 41 - Resultado del caso de prueba
                                                              • Figura 42 -Resultado del caso de prueba
                                                              • Figura 43 -Resultado del caso de prueba
                                                              • Figura 44 -Resultado del caso de prueba
                                                              • Tabla 11 - Tabla comparativa
                                                              • Tabla 31 -Prefijos estaacutendar de identificadores
                                                              • Tabla 32 -Elementos atoacutemicos del lenguaje
                                                              • Tabla 41 - Resumen de los resultados de las pruebas realizadas

Desarrollo de la herramienta

ill ~~ -

-I SCUML classes + U A N T L R + U App + 0 ClassDiagrams + 0 Common + a Java

t $2 SequenceDiagiams

+ WarnierDiagrams

iJ PackageDiagrams

12 StaterChartDiagrams

+

- f Classview I Resourceview 1 FileView ]

~ ~

Figura 312 Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)

327Estructura de datos persistencia y recuperacioacuten

Existe una gran cantidad de tipos de datos estructuras clases y meacutetodos de los que se puede hacer uso para una mejor y maacutes faacutecil obtencioacuten de los resultados A continuacioacuten hago comentarios en tipos de datos y meacutetodos en los que podriacutea tener problemas

CTypedPtrList

AI usar este tipo de dato o alguno relacionado que le permita utilizar el meacutetodo ltCTvrgtedPtrListGetNextgt tenga especial precaucioacuten al usarlo ya que al devolver el valor requerido la variable POSITION usada no se queda apuntando a ese valor en particular salta al inmediato siguiente de la lista

Si se realiza una creacioacuten dinaacutemica con punteros para los elementos de una CTypedPtrList Despueacutes de haberlo agregado a la lista evite el delete para borrar esta Usted deseando liberar la memoria no lo haga ya que eliminara directamente el elemento de la lista

POSITION

Es un valor usado para denotar una posicioacuten de un elemento en una coleccioacuten Pero CUIDADO no se refiere a un iacutendice es una referencia (no consecutiva) de punteros muy diferente a un iacutendice

CString

Auacuten cuando el operador de comparacioacuten == (igual a) es permitido para ser utilizado en las cadenas evite su uso ya que en ocasiones aunque cuando la e

34

Desarrollo de la herramienta

compilacioacuten no indique error alguno en la ejecucioacuten no realizaraacute lo que se necesita Recomiendo que utilice CStringCompare ()

Para eliminar el contenido de un CString utilice CStringEmpty() ya que asignar a la cadena un ldquonrdquo podriacutea causarle problemas

Serializacioacuten

Una forma en que se puede guardar informacioacuten y recuperarla de manera eficaz es mediante la serializacioacuten de objetos La serializacioacuten es un proceso que permite escribir un objeto en un archivo y tambieacuten leerlo

Para que la serializacioacuten se lleve a cabo son necesarios tres objetos un objeto de tipo ltCFilegt que represente el archivo un objeto de tipo ltCArchivegt que ofrece el entorno para la serializacioacuten y la clase del objeto a ser serializado debe ser heredada de ltCObjectgt y sobrescribir el meacutetodo ltSerializegt para que se encuentre de tal forma en que pueda ser serializado (vea la Figura 313)

Objeto a ser serializado 1

1 CArchive

[f --=I- ---7 Archivoexi

u Figura 313 Serializacioacuten

328Patrones de disentildeo utilizados

Se ha planteado la definicioacuten de una arquitectura de clases utilizando patrones de disentildeo debido a que algunos de ellos hacen maacutes faacutecil la extensioacuten de la funcionalidad y mantenimiento

35

Desarrollo de la herramienta

El patroacuten Composite es utilizado para crear de manera uniforme el diagrama sobre el que se trabaja (ver Figura 34) manteniendo una jerarquiacutea de clases uniforme las clases maacutes bajas en la jerarquiacutea definen primitivas de objetos graacuteficos

Se aplica el patroacuten de disentildeo Iterator para hacer recorridos en listas de objetos para realizar diversas operaciones Otro patroacuten de disentildeo del que se hace uso es el Visilor (ver Figura 35)

Para otras actividades que se realizan podriacutea pensarse en que se deberiacutean aplicar otros patrones pero se han evitado algunos (como el patroacuten de disentildeo Builder) para evitar incrementar la complejidad en la arquitectura ya que ai mantener el modelo de la MFC de documentovista la funcionalidad del patroacuten de disentildeo Builder es faacutecilmente reemplazado si se hiciera Uso de eacuteste se aumentariacutea la complejidad excesivamente (nos llevariacutea a perdemos en ocasiones en el paso de mensajes entre clases) dantildeando la facilidad de la arquitectura

33 Diagrama de secuencias

Un Diagrama de Secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten escenario Oacute comportamiento se usan para definir el curso loacutegico de accioacuten de un posible camino a seguir en la resolucioacuten de un problema Seguacuten John Daniels [DANO2] ldquoel principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildean las interacciones de los objetosrdquo

Los Diagramas de Secuencias se utilizan en el modelado de la implementacioacuten de sistemas de software ademaacutes son aplicables en el modelado de requisitos para establecer las comunicaciones existentes entre actores yo clases del sistema Con eacutestos diagramas se logran hacer descripciones de los escenarios y los comportamientos del sistema Con los Diagramas de Secuencias es posible definir protocolos de comunicacioacuten con paso de mensajes ya que dan esa flexibilidad que se requiere Ademaacutes los Diagramas de Secuencias contienen informacioacuten suficiente para que puedan ser transformados a los diagramas de colaboracioacuten [RUM Ol][BOO Oil

331Ciclo de vida del software

Considerando cualquier modelo de ciclo de vida del software (en la figura 314 se muestra el Modelo de cascada) el aacutembito directo de eacuteste Ambiente Visual es en el disentildeo aunque tiene sus vertientes en la codificacioacuten y mantenimiento

36

Desarrollo de la herramienta

Diseno

Codificacibn

I I I I Mantenimiento I

igura 314 Modelo de cascada del ciclo de vida del software

34 Elementos atoacutemicos de la Gramaacutetica

Definicioacuten de los elementos atoacutemicos del lenguaje y su contenido

1 Actor- Representa roles de entidad externos al sistema con el que interactuacutea directamente Los actores pueden ser humanos dispositivos u otros sistemas

2 ClaseObjeto- Determina una Clase u Objeto participante en la interaccioacuten

3 Mensaje-Es una comunicacioacuten entre objetos que contiene informacioacuten Eacuteste se representa con la finalidad a que una accioacuten sea llevada a cabo

4 Mensaje con tiempo- Tiene la misma finalidad que el mensaje la diferencia es que con eacutel se representa un atributo de tiempo

5 Mensaje asiacutencrono Es un mensaje que ocurre en el tiempo de manera independiente a otros mensajes

6 Mensaje de destruccioacuten de objeto- Es un mensaje cuya finalidad es indicar la destruccioacuten del objeto destino

7 Mensaje de creacioacuten de objeto- Es un mensaje que indica la creacioacuten de un objeto

8 Llamada al mismo objeto (Recursividad)- Es usado para modelar llamadas recursivas en el que una operacioacuten es invocada por el mismo objeto

37

Desarrollo de la herramienta

9 Destruccioacuten del objeto (AutodestrucciOacuten)- Puede o no modelarse es representada con una X al final de la liacutenea de vida del objeto

Elementos aulomaacuteticos

1 Liacutenea de Vida- Representa la vida del objeto durante la interaccioacuten

2 Activacioacuten- Muestra el periacuteodo de tiempo en el cual el objeto alguna operacioacuten

341RepresentaciOacuten visual

Representacioacuten visual de los elementos atoacutemicos del lenguaje

Actor

_- A

Mensaje

Mensaje de Creacioacuten de

Objeto

ClaseObjeto

I

Mensaje de retorno

Mensaje de Destruccioacuten de

Objeto

abla 32 Element(

Activacioacuten

Mensaje con tiempo

Autodestruccioacuten

x

atoacutemicos del lengi

taacute realizz

Texto ===I (letra)+ (letra I

numero) letra= AZ I az numero = 09

I

Recursividad ~

I

i j e

io

38

u

Comentario

iexcl

Conector de Comentario

35 Gramaacutetica desarrollada

La gramaacutetica que se propone es una gramaacutetica visual del tipo relacional Una gramaacutetica relacional pertenece a las gramaacuteticas libres de contexto es una 6-iupla G (N C S R Attr P) donde

N es un conjunto finito de siacutembolos no terminales C es un conjunto de siacutembolos terminales S es un siacutembolo distinguido en N llamado siacutembolo inicial R es un conjunto finito de siacutembolos de relacioacuten Attr es un conjunto finito de siacutembolos de atributos P es un conjunto de producciones

Entonces definiendo nuestra gramaacutetica G (N C S R Attr P)

N = Diagrama GrupoClaseObjeto

S = Diagrama

R = mensaje mensajeTiempo mensajeRetomo mensajeAsincrono mensajecrea mensajeDestruye autodestruccioacuten recursividad

R

Attr = entrada salida entradacrea

39

Desarrollo de la herramienta

Definiendo la posicioacuten de los atributos en los elementos visuales

entradacrea ObetaClase

entrada

salida

P =

Diagrama I GrupoClaseObjeto (mensaje (mensajeRetorno

(salida 1) (entrada 2) ) (salida 2) (entrada 1) )

- Diagrama 0 GrupoClaseObjeto

(mensaje (mensaje (mensajeRetomo (mensajeRetomo (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entradacrea 2) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 1) ) (salida 1) (entrada 1) )

entrada

salida

40

Desarrollo de la herramienta

s

-

GrupoClaseObjeto - 1 1 I 2 (mensaje (mensaje (mensajeRetorno (mensajeRetorno (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entradacrea 2) ) (salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 1) ) (salida I ) (entrada I ) )

1 En las gramaacuteticas relacionales una produccioacuten estaacute acompantildeada de las posibles

relaciones que puedan generarse En la primera produccioacuten Diagrama produce a un Actor seguida de un GrupoClaseObjeto el Actor inicia la interaccioacuten con un mensaje y recibe el mensaje de retorno al finalizar la interaccioacuten La segunda y tercera produccioacuten son similares debido a que un GrupoClaseObjeto contiene dos ClaseObjeto que se relacionan de la misma forma

Existe un elemento de la gramaacutetica llamado Attr (Atributo) el cual define la parte de los elementos visuales donde se establecen las relaciones Se han determinado dos atributos (entrada y salida) que para nuestro propoacutesito estaraacuten establecidos en la liacutenea de vida de cada elemento visual (Actor y ClaseObjeto)

Los Comentarios y la Activacioacuten no se consideran en la gramaacutetica Los comentarios son libres de incluirse y relacionarse con cualquier elemento y relacioacuten mencionada anteriormente y la activacioacuten existe siempre que se presente un mensaje (o podriacutea omitirse) Estas consideraciones se realizaron para hacer auacuten maacutes faacutecil la gramaacutetica ya que si se trata de realizar un sistema las restricciones de estos elementos pueden mantenerse en el lenguaje de programacioacuten en el que se desarrolle el sistema

36

Precondiciones

El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias

1 El diagrama de Clases debe existir y estar completo 2 Debe existir un archivo con un diagrama de Warnier por cada diagrama de Clases y

con el mismo nombre de archivo (excepto la extensioacuten del archivo) 3 En el uacutenico diagrama de Warnier de cada Clase se deben modelar todos los meacutetodos

de la Clase 4 No realizar declaraciones de meacutetodos

41

Desarrollo de la herramienta

5 Debe existir un meacutetodo lsquomain()rsquo en el diagrama de Clases

Restricciones

Los meacutetodos deben mantener nombres distintos en las diferentes Clases

Metodologiacutea para la obtencioacuten automaacutetica de los Diagramas de Secuencias

1 Seleccionar el diagrama de Clases

2 Se construye una lista con los nombres de las Clases y los Meacutetodos

3 Se verifica si exista el meacutetodo lsquomain()rsquo en alguna Clase Se busca la existencia de una uacutenica Clase

a La Clase que contenga lsquomain()rsquo se va al inicio de la lista de Clases

b Si no existe lsquomain()rsquo SE TERMINA EL PROCESO

4 Se verifica la existencia de los archivos que contienen el Disentildeo Detallado de los meacutetodos en Wamier para cada una de las Clases si alguno falta SE TERMINA EL PROCESO

5 Se procesa cada uno de los modelos del Disentildeo Detallado de los Meacutetodos generando una lista de secuencias de llamadas por cada uno de los meacutetodos

6 Se verifica que cada llamada corresponda a alguacuten meacutetodo existente (del diagrama de Clases) De no existir ese meacutetodo la llamada entra a una estructura que

7 Se crea una lista de secuencia

a Se inicia con lsquomain()rsquo b Se recorre cada una de las llamadas de los meacutetodos c Se considera invaacutelido el caso de que un meacutetodo intente una llamada

recursiva al meacutetodo lsquomain()rsquo

8 Se muestra un diaacutelogo de resultados en el que se indican las llamadas que no se encnotraron definidas y que pueden ser Llamada a libreriacutea oacute Llamada Erroacutenea

42

Capiacutetulo 4

Prue6as y su6taaacuteos

En eacuteste capiacutetulo se da a conocer el detalle de las pruebas y de los resultados obtenidos Se describen los casos de prueba con los que se realizoacute la evaluacioacuten del sistema asiacute tambieacuten se presentan comentarios acerca de los resultados obtenidos

Pruebas y Resultados

41 Recursos teacutecnicos utilizados

Para llevar a cabo las pruebas al sistema S3C se utilizaron los siguientes equipos de Coacutemputo

Computadora de escritorio

256MB RAM Disco Duro 80G Monitor 17rdquo SAMSUNG

AMD Athlon XP 1600+ I4Ghz

Computadora de escritorio Intel Pentium 4 - 128MB RAM Disco Duro 40G Monitor 15rdquo i -

42 Descripcioacuten del plan de pruebas

Las pruebas establecen el Uacuteltimo paso desde donde es posible evaluar la calidad y descubrir los errores Las pruebas y la validacioacuten del software se utilizan para comprobar que el sistema cumple con las expectativas del usuario

En esta seccioacuten se describen los casos de prueba que se realizaron al prototipo de S3C en conjunto a la suite cenidet-UML Para cada uno de los casos se presenta el objetivo el procedimiento que se siguioacute para la prueba y se muestran los resultados obtenidos - _

Las pruebas a realizar son los siguientes

Caso 1 Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Caso 2 Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Wamier

Caso3 Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Wamier

Caso4 Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo 5

44

Pruebas y Resultados

43 Resultados

431 Caso 1

5 Y

IZ =

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoSirdquo 4 Seleccionar el archivo ldquoVENTASrdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 41 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

s3c iuevo Proyecto SCUM1

Diagrama de clases

lvendedor I L

3

salida

venta prod

4 venia-oferta vcntaprod =

salida 6

Figura 41 Resultado del caso de prueba 1

45

Pruebas y Resultados

432 Caso 2

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Warnier (almacenwar cajawar vendedorwar) que ya cxisten (del caso de prueba I )

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoNordquo 4 Agregar las siguientes Clases con los respectivos meacutetodos y atributos

a Claseldquovendedorrdquo Meacutetodos ldquoventa mainrdquo b Claseldquoalmacenrdquo Meacutetodos ldquoentrada salidardquo c Claseldquocajardquo Meacutetodos ldquoventagrodrdquo

5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 42 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

Diagrama de daseo lisgrama dcsccucncis

MOIDOC Anivo

venta prod

salida

1 Ycrdquo1a 2

I 4 vcrdquolD~o1cn venta prod gt

salida 6 i Figura 42 Resultado del caso de prueba 2

46

Pruebas y Resultados

r

433 Caso 3

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Warnier

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 43 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

5

Error al tratar de abrir el archivo A bZwar

Aceptar i

Faltan Archivos de Disentildeos Detallados de Meacutetodos 1 1 A No se puede crear el diagrama de secuencias

Figura 43 Resultado del caso de prueba 3

47

Pruebas y Resultados

434 Caso 4

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 44 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

lsquo I

~ _ i i _ l _ Repaado ~~ ~ ~ 6~ ampA Figura 44 Resultado del caso de prueba 4

48

Pruebas y Resultados

PRUEBA DESCNPCION CASO 1 Mostrar la funcionalidad del

Sistema S3C a partir de un

44 Anaacutelisis de Resultados

RESULTADOS Se comproboacute la correcta funcionalidad del Sistema S3C a partir de un diagrama

CASO 3

CASO4

I diagrama de Clases cxistcnte I de Clases existente CASO 2 I Mostrar la funcionalidad del I Sc comproboacute la corrccta funcionalidad

Sistema S3C a partir de un del Sistema S3C a partir de un diagrama diagrama de Clases que se de Clases que se construye al momento construye al momento Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el Secuencias si falta alguno de los diagrama de Secuencia si falta alguno diagramas de Warnier Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el secuencias si hace falta el meacutetodo diagrama de Secuencias al faltar el ldquomain ()rdquo meacutetodo ldquomain()rdquo

de los diagramas de Warnier

Los resultados obtenidos de cada uno de los casos establecidos demuestran que se validoacute la funcionalidad del prototipo con los requisitos definidos en el alcance de este proyecto

a lt

49

Conclusiones y Tru6ajos Futuros

Aquiacute se dan a conocer las conclusiones y se describen los posibles trabajos futuros para la continuacioacuten de eacuteste proyecto

F

51 Conclusiones

Conclusiones y trabajos futuros

Se ha creado un Ambiente Visual que permite obtener de forma automaacutetica los Diagramas de Secuencias en base a los diagramas de Clases y al disentildeo detallado de los meacutetodos descritos con diagramas de Warnier cumpliendo con los objetivos planteados para este trabajo

La tesis aporta principalmente La generacioacuten automaacutetica de los diagramas de secuencias y la eliminacioacuten de inconsistencias al mantener una validacioacuten directa de los diagramas de clases y los diagramas de Warnier que son utilizados

Esta validacioacuten es lograda a traveacutes del uso de la gramaacutetica visual relaciona1 que se ha definido (veacutease el capiacutetulo 3) Esta gramaacutetica visual establece reglas para la correcta construccioacuten de los diagramas de secuencias

P De esta manera se establece que la hipoacutetesis ldquoEs posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodosrdquo Es verdadera

52 Trabajos Futuros

Un Diagrama de Secuencias puede convertirse en un Diagrama de Colaboracioacuten por lo tanto un trabajo futuro es la construccioacuten automaacutetica de un Diagrama de Colaboracioacuten a partir de uno de Secuencias existente

Es posible calcular la meacutetrica de acoplamiento al tener un Diagrama de Secuencias construido

La Ingenieriacutea directa de un Diagrama de Secuencias estableciendo la validacioacuten en la construccioacuten de todos los elementos visuales que UML define

La propagacioacuten de las modificaciones de un Diagrama de Secuencias a los Diagramas de Clases y los Diagramas de Warnier

La modificacioacuten del coacutedigo fuente mediante los cambios establecidos en un Diagrama de Secuencias

51

[ALC03]

[BLA98]

[B0099]

[BOOOi]

[BR097]

[CHA90]

[DAN02]

[GLA02]

[HAC98]

[HER03]

4

Alcate1 Computer Associates International inc Electronic Data Systems Corporation Hewlett-Packard Company IBM Corporation I-Logix IntelliCorp Kabira Technologies Kennedy Carter Microsoft Corporation Object Management Group Oracle Corporation Project Technology Ptech Inc Rational Software Corporation Reich Technologies Softeam Taskon A S Telelogic Unisys Corporation ldquoOMG Unified Modeling Language Specificationrdquo Version 15 Unified Modeling Language 2003

Blaha Michael Rumbaugh James Premerlani William Eddy Frederick Lorensen William ldquoObject-oriented modeling and designrdquo Prentice Hall 484 Paacuteginas ISBN 0-13-629841-9 QA-769-03S-B53-19981998

Booch Grady Rumbaugh James Jacobson Ivar ldquoEl lenguaje unificado de modeladordquo Addison Wesley 432 Paacuteginas ISBN 84-7829-028-1 1999

Booch Grady Rumbaugh James Jacobson Ivar ldquoThe Unified Modeling Language User Guiderdquo Addison Wesley 2001

Brown David ldquoAn introduction to object-oriented analysis objects in plain Englishrdquo John Whiley amp Sons Inc 700 Paginas ISBN 0-471-1 1028-0 QA-769-035-B76-1997 1997

Chang Shi-Kuo ldquoVisual Languages and visual programmingrdquo Plenum Press 340 Paacuteginas ISBN 0-306-43428-8 QA-7665-V57-1990 1990

Daniels John ldquoModeling with a sense of purposerdquo Design - IEEE Software JanuaryEebmary 2002

Glasgow Universidad Reino Unido ldquoA UML Editor in Javardquo (lthttplstudentsdcsglaacuWstudentspainjfproject-reportproject-re port-htmV4thYearReporthtrnlgt 2002)

T Hackos JoAnn C Redish Janice ldquoUser and Task Analysis for Interface Designrdquo Wiley Computer Publishing 488 Paacuteginas ISBN QA-769-U83- H33-1998 1998

Hemaacutendez Velaacutezquez M ldquoIngenieriacutea inversa de coacutedigo fuente en C++ para la obtencioacuten de su disentildeordquo Tesis AT-379 (03-0334) 2003

Conceptos generales

[HIX93]

[JAC93]

[JAC99]

[JOY98]

[LAR97]

[MAR]

[MIC99]

[MIC02]

[MOU98]

Hix Deborah Hartson H Rex ldquoDeveloping user interfacesrdquo 381 Paacuteginas ISBN 0-471-57813-4 QA-769-U83-H59-1993 1993

Jacobson Ivar Christerson Magnus Jonsson Patrik Overgaard Gunnar ldquoObject oriented software engineeringrdquo Addison Wesley ISBN 0-20 1 - 54435-0 QA-7676-D47-J63-1993 1993

Jacobson Ivar Booch Grady Rumbaugh James ldquoEl proceso unificado de desarrollo de softwarerdquo Addison Wesley 438 Paacuteginas ISBN 84-7829-036- 2 1999

Joyanes Aguilar Luis ldquoProgramacioacuten orientada a objetosrdquo McGruw Hill ISBN 84-481-0590-7 1998

Larman Craig ldquoAplying UML and Patternsrdquo Prentice Hull 507 Paacuteginas ISBN 0-13-748880-7 QA-769-035-L37-1997 1997

Marriot Kim Meyer Bemd ldquoVisual Language Theoryrdquo Springer 381 Paacuteginas P-935-V567-1998 1998

Microsoft ldquoMicrosoft Visual C++ 6 manual del programadorrdquo McGraw Hill ISBN 84-481-2127-9 QA-7673-Cl53-23718-1999 1999

Microsoft ldquoVisiordquo (lthttpwwwmicrosoftcomofficevisiogt 2002)

B Mourao Luis X ldquoUniversal Modeling Language Part 11 UML Notation - Case Sequence and Collaboration Diagramsrdquo Lan Times Magazine (~httpwwwlantimescomltpartsdiscussdiscuss6Ohtm~) 1998

No Magic ldquoMagicDrawrdquo (lthttpwwwmagicdrawcomgt 2002)

Object Insight ldquoJvisionrdquo (lthttpwwwobject-insightcomgt 2002)

Rational Software Microsoft I Hewlett-Packard Oracle Sterling Software MCI Systemhouse Unisys ICON Computing IntelliCorp i-Logix IBM ObjectTime Platinum Technology Ptech Taskon Reich Technologies Sofieam ldquoUML Summaryrdquo Version 11 Unified Modeling Language 1997

Rational ldquoRational Roserdquo (lthttpwwwrationalcomproductosrosegt 2002)

Rikki Kirzner ldquoAnalysis Modeling and Design Tools Market Forecast and Analysis 2001-2005rdquo Bulletin Published Under Services Application Design and Construction Tools Application Development and Deployment Strategies Documento Nuacutemero 24809 Junio 2001

53

Conceptos generales

[RIM92] Rimrner Steve ldquoGraphical user interface programmingrdquo 423 Paacuteginas

1992

Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language reference manualrdquo Addison Wesley 550 Paacuteginas ISBN 0-201-

ISBN 0-8306-2475-9 ISBN 0-8306-2472-4 (pbk) QA-769-083-R55G

[RUM99]

30998-X QA-7676-D47-R85-1999 1999

[RUM299] Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language user guiderdquo Addisoiz Wesley 482 Paacuteginas ISBN 0-201 -57 168-4 QA-7676-D47-B66-1999 1999

[SMA02] SmartDraw ldquoSmartDrawrdquo (lthttpwwwsmartdrawcomgt 2002)

[SHU88] 9 - Shu Nun C ldquoVisual Programmingrdquo Van Nostrand Reinhold ISBN 0-422- 28014-9 ISBN 0-422-01 164-4 QA-7665-S55 1988

[THI90] Thimbleby Harold ldquoUser Interface Designrdquo Acm press 470 Paacuteginas ISBN 0-201 -41 61 8-2 QA-769U83-T772~- 1990 1990

[WENO2] Wences Diaz MF ldquoModelo de Ingenieriacutea Inversa para la obtencioacuten de disentildeo detallado basado en LEVISSrdquo Tesis (02-0014) 2002

54

Anexo A

Conampuracioacuten de Microsoft Vkua[C++ 6 O

Este anexo indica las configuraciones que se utilizaron para la compilacioacuten de SCUML y s3c

Configuracioacuten de Microsoft Visual c++ 60

Debido a la integracioacuten de los proyectos de InverSOODA e InverDDVi con S3C se cumplioacute con los requisitos previos de ambos proyectos

El compilador usado en el proyecto fue el Microsoft Visual C++ 60

Para el cumplimiento con la funcionalidad de InverSOODA se instaloacute el ANTLR la versioacuten 271 Se descargoacute del sitio l i l l ~ ~ ~ ~ ~ ~ t l ~ l ~ - ~ t - ~ la versioacuten mencionada en un archivo comprimido (en formato zip) Se colocoacute el paquete descomprimido en el directorio ldquoDIANTLR-271 I rdquo

Recomiendo ampliamente que el directorio principal de ANTLR se copie en el directorio raiacutez de cualquier unidad de disco debido a que experimenteacute problemas de compilacioacuten cuando ANTLR no se encontraba en el directorio raiacutez

Io015

Source Browser AlttF12 I u c Ersquo V I

Visual Component Mgnager

- - ~ ~ ~ ~~

P2 Registrar control

A Contenedor de prueba de controles ActiveX

A Usor de objetos OLE y COM

Buacutesqueda de errores

A Y++ MFC Iracer

Customize options

~ - q- ~ Macro

Eecord Quick Macro Cbl+ShiR+R Pay Quick Macro Ctrl+ShiR+P

En el menuacute Tools (Herramientas) seleccione el sub-menuacute Options ltopcionesgt

56

Configuracioacuten de Microsoft Visual C++ 60

En la siguiente ventana de diaacutelogo debe agregar la direccioacuten en donde se encuentra el ANTLR

Agregar la ruta del directorio de ANTLR hasta el subdirectorio

libcpp

Editor I Tabs I Debug I Compatibility 1 Build Dneclolies I a I Chow directories for - Platfolm -

- Directories I x ) 4 jWin32 -] llnclude files

m cancd I

57

Configuracioacuten de Microsoft Visual C t+ 60

Se ha creado una libreriacutea (anrlrliblib) de ANTLR la cual ya estaacute situada en el directorio del proyecto SCUML (ISCUML) y no debe ser movida o eliminada

I

Geneial 1 Debug I CC++ Link I Category

Output file name bebugSCUMLexe

Objectljibrary modules 4 anllrliblib

li Generate debug lnfo r Ignore all defaull lbaries D ~ i n k j n ~ ~ ~ t a n ~ r ~ e n e r ~ ~ ~ mapfile

r Enable psafilrng

Proiec1 Ootionn

pq Cancel 1 Libreriacutea de ANTLR que debe existir 1 I para que se compile correctamente

58

Anexo B

~ u iacute aacute raacutepida de uso deC Sistema S3C

5 Este anexo indica de forma raacutepida la manera de utilizar S3C para crear un diagrama de secuencias de forma automaacutetica

Guiacutea Raacutepida de uso del Sistema S3C i

Para indicar la creacioacuten de un diagrama de secuencias en forma automaacutetica se debe ir a la barra del costado izquierdo y presionar ldquoNuevo Proyecto SCUMLrdquo

I s3c I ~ Nuevo Proyecto SCUML ~ _ _ - I Diagrama de clases ~ Diagrama de secuencias 1 MDI DOC Activo

-

Apareceraacute un documento llamado ldquoSCUMLV en donde el simbolo corresponde a un numero consecutivo iniciando desde 1 (uno)

$ e Despueacutes se presiona ldquoDiagrama de clasesrdquo Habraacute que para indicarle al sistema si se requiere abrir un diagrama de clases existente o realizar uno nuevo

i

iquestAbrir un documento existente

No Cardquo~ear

AI presionar ldquoSirdquo se debe indicar cual es el archivo del diagrama de Clases en el cuadro de diaacutelogo siguiente

~~ - 11dMis documentos rsquo 2 M i P C i lsquo h s sitios de red

I

AI presionar ldquoNordquo en ldquoAbrir un documento existenterdquo se nos mostraraacute un documento vacio para crear un diagrama de clases

60

Guiacutea Raacutepida de uso del Sistema S3C

Para ambas opciones se requiere que los diagramas de Wamier ya se encuentren construidos Y para continuar el proccso se selecciona el documento ldquoSCUMLVrsquo creado al inicio y despueacutes presionar el botoacuten nombrado ldquoDiagrama de secuenciasrdquo localizado en la barra de hcrraiiiicntas del costado izquierdo

Ha iniciado el proceso de construccioacuten del diagrama de secuencias Si no existen errores al terminar el proceso se le mostraraacute un cuadro de diaacutelogo llamado ldquoResultadosrdquo en donde le mostraraacute las llamadas de las que no localizoacute su definicioacuten

- - -

Cancel 1 D e las siguientes llamadas es posible que esten mal escritas o peitenezcan a la libreiia del Lenguaie Verifique ya que no se encontraron sus definiciones

A continuacioacuten se mencionan los posibles errores que finalizan el proceso de la creacioacuten automaacutetica de los diagramas de secuencias en S3C

Cuando no exista un meacutetodo lsquomainrsquo definido en el diagrama de clases

No se encontro el meacutetodo lsquomain()rsquo que inicie la secuencia I A No se puede crear el diagrama de secuencias

p==amp=q

61

Guia Raacutepida de uso del Sistema S3C

Cuando se definan niultiples metodos lsquoinainrsquo en el diagrama de clases

Multiples meacutetodos lsquomainOlsquo Imposible decidir el inicio de secuencia

Aceptar i

Si un meacutetodo definido en Wamier realiza una llamada a lsquomainrsquo se cancelara el proceso

Llamada NO VALIDA al meacutetodo principal main

(iAcp-j(

4 i

CI Y rdquoldquoldquoI i 11 1-T

IZNTRO Gt INFORMACION

62

  • Tabla de Contenido
  • Listado de Figuras
  • Listado de Tablas
  • Notacioacuten
  • Introduccioacuten
  • Capitulo 1 Conceptos Generales
    • 11 Antecedentes
    • 12 Trabajos relacionados
      • 121 Tabla comparativa
        • 13 Definicioacuten del problema
        • 14 Objetivo de la Tesis
          • Objetivos especiacuteficos de la tesis
            • 15 Hipoacutetesis de investigacioacuten
            • 16 Alcances y limitaciones del trabajo de tesis
              • Capitulo 2 Marco Teoacuterico
                • 21 Modelado de sistemas de software
                • 22 Interfaz de usuario (Mecanismos de interaccioacuten)
                • 23 Lenguajes Visuales
                • 24 Programacioacuten orientada a objetos
                • 25 Lenguaje de Modelado Unificado (UML)
                  • Desarrollo de la herramienta
                    • 31 Disentildeo de la Arquitectura
                      • 311 Requisitos (Diagrama de Casos de uso)
                        • 312Modelo Conceptual
                        • 313Diagramas de clases
                        • 32 Elementos de la arquitectura
                          • 321 Microsoft Foundation Class (MFC)
                            • 322Arquitectura Documento Vista
                            • 323Integrando Ambientes en Visual c++
                              • 324 Interfaz de Muacuteltiples Documentos (MDI)
                                • 325Recursos Diaacutelogos Menus y Barras de Herramientas
                                  • 326 Notacioacuten estaacutendar
                                  • 327 Estructura de datos persistencia y recuperacioacuten
                                    • 328Patrones de disentildeo utilizados
                                      • 33 Diagrama de secuencias
                                        • 331Ciclo de vida del software
                                          • 34 Elementos atoacutemicos de la Gramaacutetica
                                            • 341 Representacioacuten visual
                                              • 35 Gramaacutetica desarrollada
                                              • 36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias
                                                  • Capitulo 4 Pruebas y Resultados
                                                    • 41 Recursos teacutecnicos utilizados
                                                    • 42 Descripcioacuten del plan de pruebas
                                                    • 43 Resultados
                                                      • 431 Caso
                                                      • 432 Caso2
                                                      • 433 Caso
                                                          • Conclusiones y trabajos futuros
                                                            • Trabajos futuros
                                                            • Referencias
                                                            • Anexo A Configuracioacuten de Microsoft Visual C+t
                                                              • Figura 11 - Arquitectura de la suite cenidet-UML
                                                              • Figura 21 -Programacioacuten Visual
                                                              • Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de
                                                              • Figura 32 -Diagrama de Casos de Uso para el S3C
                                                              • Figura 33 -Modelo Conceptual
                                                              • Figura 34 - Diagrama de Clases -Control del Diagrama -
                                                              • Figura 35 - Diagrama de Clases - Patroacuten Visitor -
                                                              • Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento
                                                              • Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)
                                                              • Figura 38 -Dialogo Caracteriacutesticas del Objeto
                                                              • Figura 39 -Dialogo Mensaje
                                                              • Figura 3 IO - Menuacute de los Diagramas de Secuencias (estaacutendar)
                                                              • Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias
                                                              • Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)
                                                              • Figura 313 - Serializacioacuten
                                                              • Figura 314 -Modelo de cascada del ciclo de vida del software
                                                              • Figura 41 - Resultado del caso de prueba
                                                              • Figura 42 -Resultado del caso de prueba
                                                              • Figura 43 -Resultado del caso de prueba
                                                              • Figura 44 -Resultado del caso de prueba
                                                              • Tabla 11 - Tabla comparativa
                                                              • Tabla 31 -Prefijos estaacutendar de identificadores
                                                              • Tabla 32 -Elementos atoacutemicos del lenguaje
                                                              • Tabla 41 - Resumen de los resultados de las pruebas realizadas

Desarrollo de la herramienta

compilacioacuten no indique error alguno en la ejecucioacuten no realizaraacute lo que se necesita Recomiendo que utilice CStringCompare ()

Para eliminar el contenido de un CString utilice CStringEmpty() ya que asignar a la cadena un ldquonrdquo podriacutea causarle problemas

Serializacioacuten

Una forma en que se puede guardar informacioacuten y recuperarla de manera eficaz es mediante la serializacioacuten de objetos La serializacioacuten es un proceso que permite escribir un objeto en un archivo y tambieacuten leerlo

Para que la serializacioacuten se lleve a cabo son necesarios tres objetos un objeto de tipo ltCFilegt que represente el archivo un objeto de tipo ltCArchivegt que ofrece el entorno para la serializacioacuten y la clase del objeto a ser serializado debe ser heredada de ltCObjectgt y sobrescribir el meacutetodo ltSerializegt para que se encuentre de tal forma en que pueda ser serializado (vea la Figura 313)

Objeto a ser serializado 1

1 CArchive

[f --=I- ---7 Archivoexi

u Figura 313 Serializacioacuten

328Patrones de disentildeo utilizados

Se ha planteado la definicioacuten de una arquitectura de clases utilizando patrones de disentildeo debido a que algunos de ellos hacen maacutes faacutecil la extensioacuten de la funcionalidad y mantenimiento

35

Desarrollo de la herramienta

El patroacuten Composite es utilizado para crear de manera uniforme el diagrama sobre el que se trabaja (ver Figura 34) manteniendo una jerarquiacutea de clases uniforme las clases maacutes bajas en la jerarquiacutea definen primitivas de objetos graacuteficos

Se aplica el patroacuten de disentildeo Iterator para hacer recorridos en listas de objetos para realizar diversas operaciones Otro patroacuten de disentildeo del que se hace uso es el Visilor (ver Figura 35)

Para otras actividades que se realizan podriacutea pensarse en que se deberiacutean aplicar otros patrones pero se han evitado algunos (como el patroacuten de disentildeo Builder) para evitar incrementar la complejidad en la arquitectura ya que ai mantener el modelo de la MFC de documentovista la funcionalidad del patroacuten de disentildeo Builder es faacutecilmente reemplazado si se hiciera Uso de eacuteste se aumentariacutea la complejidad excesivamente (nos llevariacutea a perdemos en ocasiones en el paso de mensajes entre clases) dantildeando la facilidad de la arquitectura

33 Diagrama de secuencias

Un Diagrama de Secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten escenario Oacute comportamiento se usan para definir el curso loacutegico de accioacuten de un posible camino a seguir en la resolucioacuten de un problema Seguacuten John Daniels [DANO2] ldquoel principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildean las interacciones de los objetosrdquo

Los Diagramas de Secuencias se utilizan en el modelado de la implementacioacuten de sistemas de software ademaacutes son aplicables en el modelado de requisitos para establecer las comunicaciones existentes entre actores yo clases del sistema Con eacutestos diagramas se logran hacer descripciones de los escenarios y los comportamientos del sistema Con los Diagramas de Secuencias es posible definir protocolos de comunicacioacuten con paso de mensajes ya que dan esa flexibilidad que se requiere Ademaacutes los Diagramas de Secuencias contienen informacioacuten suficiente para que puedan ser transformados a los diagramas de colaboracioacuten [RUM Ol][BOO Oil

331Ciclo de vida del software

Considerando cualquier modelo de ciclo de vida del software (en la figura 314 se muestra el Modelo de cascada) el aacutembito directo de eacuteste Ambiente Visual es en el disentildeo aunque tiene sus vertientes en la codificacioacuten y mantenimiento

36

Desarrollo de la herramienta

Diseno

Codificacibn

I I I I Mantenimiento I

igura 314 Modelo de cascada del ciclo de vida del software

34 Elementos atoacutemicos de la Gramaacutetica

Definicioacuten de los elementos atoacutemicos del lenguaje y su contenido

1 Actor- Representa roles de entidad externos al sistema con el que interactuacutea directamente Los actores pueden ser humanos dispositivos u otros sistemas

2 ClaseObjeto- Determina una Clase u Objeto participante en la interaccioacuten

3 Mensaje-Es una comunicacioacuten entre objetos que contiene informacioacuten Eacuteste se representa con la finalidad a que una accioacuten sea llevada a cabo

4 Mensaje con tiempo- Tiene la misma finalidad que el mensaje la diferencia es que con eacutel se representa un atributo de tiempo

5 Mensaje asiacutencrono Es un mensaje que ocurre en el tiempo de manera independiente a otros mensajes

6 Mensaje de destruccioacuten de objeto- Es un mensaje cuya finalidad es indicar la destruccioacuten del objeto destino

7 Mensaje de creacioacuten de objeto- Es un mensaje que indica la creacioacuten de un objeto

8 Llamada al mismo objeto (Recursividad)- Es usado para modelar llamadas recursivas en el que una operacioacuten es invocada por el mismo objeto

37

Desarrollo de la herramienta

9 Destruccioacuten del objeto (AutodestrucciOacuten)- Puede o no modelarse es representada con una X al final de la liacutenea de vida del objeto

Elementos aulomaacuteticos

1 Liacutenea de Vida- Representa la vida del objeto durante la interaccioacuten

2 Activacioacuten- Muestra el periacuteodo de tiempo en el cual el objeto alguna operacioacuten

341RepresentaciOacuten visual

Representacioacuten visual de los elementos atoacutemicos del lenguaje

Actor

_- A

Mensaje

Mensaje de Creacioacuten de

Objeto

ClaseObjeto

I

Mensaje de retorno

Mensaje de Destruccioacuten de

Objeto

abla 32 Element(

Activacioacuten

Mensaje con tiempo

Autodestruccioacuten

x

atoacutemicos del lengi

taacute realizz

Texto ===I (letra)+ (letra I

numero) letra= AZ I az numero = 09

I

Recursividad ~

I

i j e

io

38

u

Comentario

iexcl

Conector de Comentario

35 Gramaacutetica desarrollada

La gramaacutetica que se propone es una gramaacutetica visual del tipo relacional Una gramaacutetica relacional pertenece a las gramaacuteticas libres de contexto es una 6-iupla G (N C S R Attr P) donde

N es un conjunto finito de siacutembolos no terminales C es un conjunto de siacutembolos terminales S es un siacutembolo distinguido en N llamado siacutembolo inicial R es un conjunto finito de siacutembolos de relacioacuten Attr es un conjunto finito de siacutembolos de atributos P es un conjunto de producciones

Entonces definiendo nuestra gramaacutetica G (N C S R Attr P)

N = Diagrama GrupoClaseObjeto

S = Diagrama

R = mensaje mensajeTiempo mensajeRetomo mensajeAsincrono mensajecrea mensajeDestruye autodestruccioacuten recursividad

R

Attr = entrada salida entradacrea

39

Desarrollo de la herramienta

Definiendo la posicioacuten de los atributos en los elementos visuales

entradacrea ObetaClase

entrada

salida

P =

Diagrama I GrupoClaseObjeto (mensaje (mensajeRetorno

(salida 1) (entrada 2) ) (salida 2) (entrada 1) )

- Diagrama 0 GrupoClaseObjeto

(mensaje (mensaje (mensajeRetomo (mensajeRetomo (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entradacrea 2) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 1) ) (salida 1) (entrada 1) )

entrada

salida

40

Desarrollo de la herramienta

s

-

GrupoClaseObjeto - 1 1 I 2 (mensaje (mensaje (mensajeRetorno (mensajeRetorno (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entradacrea 2) ) (salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 1) ) (salida I ) (entrada I ) )

1 En las gramaacuteticas relacionales una produccioacuten estaacute acompantildeada de las posibles

relaciones que puedan generarse En la primera produccioacuten Diagrama produce a un Actor seguida de un GrupoClaseObjeto el Actor inicia la interaccioacuten con un mensaje y recibe el mensaje de retorno al finalizar la interaccioacuten La segunda y tercera produccioacuten son similares debido a que un GrupoClaseObjeto contiene dos ClaseObjeto que se relacionan de la misma forma

Existe un elemento de la gramaacutetica llamado Attr (Atributo) el cual define la parte de los elementos visuales donde se establecen las relaciones Se han determinado dos atributos (entrada y salida) que para nuestro propoacutesito estaraacuten establecidos en la liacutenea de vida de cada elemento visual (Actor y ClaseObjeto)

Los Comentarios y la Activacioacuten no se consideran en la gramaacutetica Los comentarios son libres de incluirse y relacionarse con cualquier elemento y relacioacuten mencionada anteriormente y la activacioacuten existe siempre que se presente un mensaje (o podriacutea omitirse) Estas consideraciones se realizaron para hacer auacuten maacutes faacutecil la gramaacutetica ya que si se trata de realizar un sistema las restricciones de estos elementos pueden mantenerse en el lenguaje de programacioacuten en el que se desarrolle el sistema

36

Precondiciones

El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias

1 El diagrama de Clases debe existir y estar completo 2 Debe existir un archivo con un diagrama de Warnier por cada diagrama de Clases y

con el mismo nombre de archivo (excepto la extensioacuten del archivo) 3 En el uacutenico diagrama de Warnier de cada Clase se deben modelar todos los meacutetodos

de la Clase 4 No realizar declaraciones de meacutetodos

41

Desarrollo de la herramienta

5 Debe existir un meacutetodo lsquomain()rsquo en el diagrama de Clases

Restricciones

Los meacutetodos deben mantener nombres distintos en las diferentes Clases

Metodologiacutea para la obtencioacuten automaacutetica de los Diagramas de Secuencias

1 Seleccionar el diagrama de Clases

2 Se construye una lista con los nombres de las Clases y los Meacutetodos

3 Se verifica si exista el meacutetodo lsquomain()rsquo en alguna Clase Se busca la existencia de una uacutenica Clase

a La Clase que contenga lsquomain()rsquo se va al inicio de la lista de Clases

b Si no existe lsquomain()rsquo SE TERMINA EL PROCESO

4 Se verifica la existencia de los archivos que contienen el Disentildeo Detallado de los meacutetodos en Wamier para cada una de las Clases si alguno falta SE TERMINA EL PROCESO

5 Se procesa cada uno de los modelos del Disentildeo Detallado de los Meacutetodos generando una lista de secuencias de llamadas por cada uno de los meacutetodos

6 Se verifica que cada llamada corresponda a alguacuten meacutetodo existente (del diagrama de Clases) De no existir ese meacutetodo la llamada entra a una estructura que

7 Se crea una lista de secuencia

a Se inicia con lsquomain()rsquo b Se recorre cada una de las llamadas de los meacutetodos c Se considera invaacutelido el caso de que un meacutetodo intente una llamada

recursiva al meacutetodo lsquomain()rsquo

8 Se muestra un diaacutelogo de resultados en el que se indican las llamadas que no se encnotraron definidas y que pueden ser Llamada a libreriacutea oacute Llamada Erroacutenea

42

Capiacutetulo 4

Prue6as y su6taaacuteos

En eacuteste capiacutetulo se da a conocer el detalle de las pruebas y de los resultados obtenidos Se describen los casos de prueba con los que se realizoacute la evaluacioacuten del sistema asiacute tambieacuten se presentan comentarios acerca de los resultados obtenidos

Pruebas y Resultados

41 Recursos teacutecnicos utilizados

Para llevar a cabo las pruebas al sistema S3C se utilizaron los siguientes equipos de Coacutemputo

Computadora de escritorio

256MB RAM Disco Duro 80G Monitor 17rdquo SAMSUNG

AMD Athlon XP 1600+ I4Ghz

Computadora de escritorio Intel Pentium 4 - 128MB RAM Disco Duro 40G Monitor 15rdquo i -

42 Descripcioacuten del plan de pruebas

Las pruebas establecen el Uacuteltimo paso desde donde es posible evaluar la calidad y descubrir los errores Las pruebas y la validacioacuten del software se utilizan para comprobar que el sistema cumple con las expectativas del usuario

En esta seccioacuten se describen los casos de prueba que se realizaron al prototipo de S3C en conjunto a la suite cenidet-UML Para cada uno de los casos se presenta el objetivo el procedimiento que se siguioacute para la prueba y se muestran los resultados obtenidos - _

Las pruebas a realizar son los siguientes

Caso 1 Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Caso 2 Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Wamier

Caso3 Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Wamier

Caso4 Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo 5

44

Pruebas y Resultados

43 Resultados

431 Caso 1

5 Y

IZ =

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoSirdquo 4 Seleccionar el archivo ldquoVENTASrdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 41 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

s3c iuevo Proyecto SCUM1

Diagrama de clases

lvendedor I L

3

salida

venta prod

4 venia-oferta vcntaprod =

salida 6

Figura 41 Resultado del caso de prueba 1

45

Pruebas y Resultados

432 Caso 2

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Warnier (almacenwar cajawar vendedorwar) que ya cxisten (del caso de prueba I )

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoNordquo 4 Agregar las siguientes Clases con los respectivos meacutetodos y atributos

a Claseldquovendedorrdquo Meacutetodos ldquoventa mainrdquo b Claseldquoalmacenrdquo Meacutetodos ldquoentrada salidardquo c Claseldquocajardquo Meacutetodos ldquoventagrodrdquo

5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 42 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

Diagrama de daseo lisgrama dcsccucncis

MOIDOC Anivo

venta prod

salida

1 Ycrdquo1a 2

I 4 vcrdquolD~o1cn venta prod gt

salida 6 i Figura 42 Resultado del caso de prueba 2

46

Pruebas y Resultados

r

433 Caso 3

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Warnier

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 43 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

5

Error al tratar de abrir el archivo A bZwar

Aceptar i

Faltan Archivos de Disentildeos Detallados de Meacutetodos 1 1 A No se puede crear el diagrama de secuencias

Figura 43 Resultado del caso de prueba 3

47

Pruebas y Resultados

434 Caso 4

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 44 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

lsquo I

~ _ i i _ l _ Repaado ~~ ~ ~ 6~ ampA Figura 44 Resultado del caso de prueba 4

48

Pruebas y Resultados

PRUEBA DESCNPCION CASO 1 Mostrar la funcionalidad del

Sistema S3C a partir de un

44 Anaacutelisis de Resultados

RESULTADOS Se comproboacute la correcta funcionalidad del Sistema S3C a partir de un diagrama

CASO 3

CASO4

I diagrama de Clases cxistcnte I de Clases existente CASO 2 I Mostrar la funcionalidad del I Sc comproboacute la corrccta funcionalidad

Sistema S3C a partir de un del Sistema S3C a partir de un diagrama diagrama de Clases que se de Clases que se construye al momento construye al momento Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el Secuencias si falta alguno de los diagrama de Secuencia si falta alguno diagramas de Warnier Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el secuencias si hace falta el meacutetodo diagrama de Secuencias al faltar el ldquomain ()rdquo meacutetodo ldquomain()rdquo

de los diagramas de Warnier

Los resultados obtenidos de cada uno de los casos establecidos demuestran que se validoacute la funcionalidad del prototipo con los requisitos definidos en el alcance de este proyecto

a lt

49

Conclusiones y Tru6ajos Futuros

Aquiacute se dan a conocer las conclusiones y se describen los posibles trabajos futuros para la continuacioacuten de eacuteste proyecto

F

51 Conclusiones

Conclusiones y trabajos futuros

Se ha creado un Ambiente Visual que permite obtener de forma automaacutetica los Diagramas de Secuencias en base a los diagramas de Clases y al disentildeo detallado de los meacutetodos descritos con diagramas de Warnier cumpliendo con los objetivos planteados para este trabajo

La tesis aporta principalmente La generacioacuten automaacutetica de los diagramas de secuencias y la eliminacioacuten de inconsistencias al mantener una validacioacuten directa de los diagramas de clases y los diagramas de Warnier que son utilizados

Esta validacioacuten es lograda a traveacutes del uso de la gramaacutetica visual relaciona1 que se ha definido (veacutease el capiacutetulo 3) Esta gramaacutetica visual establece reglas para la correcta construccioacuten de los diagramas de secuencias

P De esta manera se establece que la hipoacutetesis ldquoEs posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodosrdquo Es verdadera

52 Trabajos Futuros

Un Diagrama de Secuencias puede convertirse en un Diagrama de Colaboracioacuten por lo tanto un trabajo futuro es la construccioacuten automaacutetica de un Diagrama de Colaboracioacuten a partir de uno de Secuencias existente

Es posible calcular la meacutetrica de acoplamiento al tener un Diagrama de Secuencias construido

La Ingenieriacutea directa de un Diagrama de Secuencias estableciendo la validacioacuten en la construccioacuten de todos los elementos visuales que UML define

La propagacioacuten de las modificaciones de un Diagrama de Secuencias a los Diagramas de Clases y los Diagramas de Warnier

La modificacioacuten del coacutedigo fuente mediante los cambios establecidos en un Diagrama de Secuencias

51

[ALC03]

[BLA98]

[B0099]

[BOOOi]

[BR097]

[CHA90]

[DAN02]

[GLA02]

[HAC98]

[HER03]

4

Alcate1 Computer Associates International inc Electronic Data Systems Corporation Hewlett-Packard Company IBM Corporation I-Logix IntelliCorp Kabira Technologies Kennedy Carter Microsoft Corporation Object Management Group Oracle Corporation Project Technology Ptech Inc Rational Software Corporation Reich Technologies Softeam Taskon A S Telelogic Unisys Corporation ldquoOMG Unified Modeling Language Specificationrdquo Version 15 Unified Modeling Language 2003

Blaha Michael Rumbaugh James Premerlani William Eddy Frederick Lorensen William ldquoObject-oriented modeling and designrdquo Prentice Hall 484 Paacuteginas ISBN 0-13-629841-9 QA-769-03S-B53-19981998

Booch Grady Rumbaugh James Jacobson Ivar ldquoEl lenguaje unificado de modeladordquo Addison Wesley 432 Paacuteginas ISBN 84-7829-028-1 1999

Booch Grady Rumbaugh James Jacobson Ivar ldquoThe Unified Modeling Language User Guiderdquo Addison Wesley 2001

Brown David ldquoAn introduction to object-oriented analysis objects in plain Englishrdquo John Whiley amp Sons Inc 700 Paginas ISBN 0-471-1 1028-0 QA-769-035-B76-1997 1997

Chang Shi-Kuo ldquoVisual Languages and visual programmingrdquo Plenum Press 340 Paacuteginas ISBN 0-306-43428-8 QA-7665-V57-1990 1990

Daniels John ldquoModeling with a sense of purposerdquo Design - IEEE Software JanuaryEebmary 2002

Glasgow Universidad Reino Unido ldquoA UML Editor in Javardquo (lthttplstudentsdcsglaacuWstudentspainjfproject-reportproject-re port-htmV4thYearReporthtrnlgt 2002)

T Hackos JoAnn C Redish Janice ldquoUser and Task Analysis for Interface Designrdquo Wiley Computer Publishing 488 Paacuteginas ISBN QA-769-U83- H33-1998 1998

Hemaacutendez Velaacutezquez M ldquoIngenieriacutea inversa de coacutedigo fuente en C++ para la obtencioacuten de su disentildeordquo Tesis AT-379 (03-0334) 2003

Conceptos generales

[HIX93]

[JAC93]

[JAC99]

[JOY98]

[LAR97]

[MAR]

[MIC99]

[MIC02]

[MOU98]

Hix Deborah Hartson H Rex ldquoDeveloping user interfacesrdquo 381 Paacuteginas ISBN 0-471-57813-4 QA-769-U83-H59-1993 1993

Jacobson Ivar Christerson Magnus Jonsson Patrik Overgaard Gunnar ldquoObject oriented software engineeringrdquo Addison Wesley ISBN 0-20 1 - 54435-0 QA-7676-D47-J63-1993 1993

Jacobson Ivar Booch Grady Rumbaugh James ldquoEl proceso unificado de desarrollo de softwarerdquo Addison Wesley 438 Paacuteginas ISBN 84-7829-036- 2 1999

Joyanes Aguilar Luis ldquoProgramacioacuten orientada a objetosrdquo McGruw Hill ISBN 84-481-0590-7 1998

Larman Craig ldquoAplying UML and Patternsrdquo Prentice Hull 507 Paacuteginas ISBN 0-13-748880-7 QA-769-035-L37-1997 1997

Marriot Kim Meyer Bemd ldquoVisual Language Theoryrdquo Springer 381 Paacuteginas P-935-V567-1998 1998

Microsoft ldquoMicrosoft Visual C++ 6 manual del programadorrdquo McGraw Hill ISBN 84-481-2127-9 QA-7673-Cl53-23718-1999 1999

Microsoft ldquoVisiordquo (lthttpwwwmicrosoftcomofficevisiogt 2002)

B Mourao Luis X ldquoUniversal Modeling Language Part 11 UML Notation - Case Sequence and Collaboration Diagramsrdquo Lan Times Magazine (~httpwwwlantimescomltpartsdiscussdiscuss6Ohtm~) 1998

No Magic ldquoMagicDrawrdquo (lthttpwwwmagicdrawcomgt 2002)

Object Insight ldquoJvisionrdquo (lthttpwwwobject-insightcomgt 2002)

Rational Software Microsoft I Hewlett-Packard Oracle Sterling Software MCI Systemhouse Unisys ICON Computing IntelliCorp i-Logix IBM ObjectTime Platinum Technology Ptech Taskon Reich Technologies Sofieam ldquoUML Summaryrdquo Version 11 Unified Modeling Language 1997

Rational ldquoRational Roserdquo (lthttpwwwrationalcomproductosrosegt 2002)

Rikki Kirzner ldquoAnalysis Modeling and Design Tools Market Forecast and Analysis 2001-2005rdquo Bulletin Published Under Services Application Design and Construction Tools Application Development and Deployment Strategies Documento Nuacutemero 24809 Junio 2001

53

Conceptos generales

[RIM92] Rimrner Steve ldquoGraphical user interface programmingrdquo 423 Paacuteginas

1992

Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language reference manualrdquo Addison Wesley 550 Paacuteginas ISBN 0-201-

ISBN 0-8306-2475-9 ISBN 0-8306-2472-4 (pbk) QA-769-083-R55G

[RUM99]

30998-X QA-7676-D47-R85-1999 1999

[RUM299] Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language user guiderdquo Addisoiz Wesley 482 Paacuteginas ISBN 0-201 -57 168-4 QA-7676-D47-B66-1999 1999

[SMA02] SmartDraw ldquoSmartDrawrdquo (lthttpwwwsmartdrawcomgt 2002)

[SHU88] 9 - Shu Nun C ldquoVisual Programmingrdquo Van Nostrand Reinhold ISBN 0-422- 28014-9 ISBN 0-422-01 164-4 QA-7665-S55 1988

[THI90] Thimbleby Harold ldquoUser Interface Designrdquo Acm press 470 Paacuteginas ISBN 0-201 -41 61 8-2 QA-769U83-T772~- 1990 1990

[WENO2] Wences Diaz MF ldquoModelo de Ingenieriacutea Inversa para la obtencioacuten de disentildeo detallado basado en LEVISSrdquo Tesis (02-0014) 2002

54

Anexo A

Conampuracioacuten de Microsoft Vkua[C++ 6 O

Este anexo indica las configuraciones que se utilizaron para la compilacioacuten de SCUML y s3c

Configuracioacuten de Microsoft Visual c++ 60

Debido a la integracioacuten de los proyectos de InverSOODA e InverDDVi con S3C se cumplioacute con los requisitos previos de ambos proyectos

El compilador usado en el proyecto fue el Microsoft Visual C++ 60

Para el cumplimiento con la funcionalidad de InverSOODA se instaloacute el ANTLR la versioacuten 271 Se descargoacute del sitio l i l l ~ ~ ~ ~ ~ ~ t l ~ l ~ - ~ t - ~ la versioacuten mencionada en un archivo comprimido (en formato zip) Se colocoacute el paquete descomprimido en el directorio ldquoDIANTLR-271 I rdquo

Recomiendo ampliamente que el directorio principal de ANTLR se copie en el directorio raiacutez de cualquier unidad de disco debido a que experimenteacute problemas de compilacioacuten cuando ANTLR no se encontraba en el directorio raiacutez

Io015

Source Browser AlttF12 I u c Ersquo V I

Visual Component Mgnager

- - ~ ~ ~ ~~

P2 Registrar control

A Contenedor de prueba de controles ActiveX

A Usor de objetos OLE y COM

Buacutesqueda de errores

A Y++ MFC Iracer

Customize options

~ - q- ~ Macro

Eecord Quick Macro Cbl+ShiR+R Pay Quick Macro Ctrl+ShiR+P

En el menuacute Tools (Herramientas) seleccione el sub-menuacute Options ltopcionesgt

56

Configuracioacuten de Microsoft Visual C++ 60

En la siguiente ventana de diaacutelogo debe agregar la direccioacuten en donde se encuentra el ANTLR

Agregar la ruta del directorio de ANTLR hasta el subdirectorio

libcpp

Editor I Tabs I Debug I Compatibility 1 Build Dneclolies I a I Chow directories for - Platfolm -

- Directories I x ) 4 jWin32 -] llnclude files

m cancd I

57

Configuracioacuten de Microsoft Visual C t+ 60

Se ha creado una libreriacutea (anrlrliblib) de ANTLR la cual ya estaacute situada en el directorio del proyecto SCUML (ISCUML) y no debe ser movida o eliminada

I

Geneial 1 Debug I CC++ Link I Category

Output file name bebugSCUMLexe

Objectljibrary modules 4 anllrliblib

li Generate debug lnfo r Ignore all defaull lbaries D ~ i n k j n ~ ~ ~ t a n ~ r ~ e n e r ~ ~ ~ mapfile

r Enable psafilrng

Proiec1 Ootionn

pq Cancel 1 Libreriacutea de ANTLR que debe existir 1 I para que se compile correctamente

58

Anexo B

~ u iacute aacute raacutepida de uso deC Sistema S3C

5 Este anexo indica de forma raacutepida la manera de utilizar S3C para crear un diagrama de secuencias de forma automaacutetica

Guiacutea Raacutepida de uso del Sistema S3C i

Para indicar la creacioacuten de un diagrama de secuencias en forma automaacutetica se debe ir a la barra del costado izquierdo y presionar ldquoNuevo Proyecto SCUMLrdquo

I s3c I ~ Nuevo Proyecto SCUML ~ _ _ - I Diagrama de clases ~ Diagrama de secuencias 1 MDI DOC Activo

-

Apareceraacute un documento llamado ldquoSCUMLV en donde el simbolo corresponde a un numero consecutivo iniciando desde 1 (uno)

$ e Despueacutes se presiona ldquoDiagrama de clasesrdquo Habraacute que para indicarle al sistema si se requiere abrir un diagrama de clases existente o realizar uno nuevo

i

iquestAbrir un documento existente

No Cardquo~ear

AI presionar ldquoSirdquo se debe indicar cual es el archivo del diagrama de Clases en el cuadro de diaacutelogo siguiente

~~ - 11dMis documentos rsquo 2 M i P C i lsquo h s sitios de red

I

AI presionar ldquoNordquo en ldquoAbrir un documento existenterdquo se nos mostraraacute un documento vacio para crear un diagrama de clases

60

Guiacutea Raacutepida de uso del Sistema S3C

Para ambas opciones se requiere que los diagramas de Wamier ya se encuentren construidos Y para continuar el proccso se selecciona el documento ldquoSCUMLVrsquo creado al inicio y despueacutes presionar el botoacuten nombrado ldquoDiagrama de secuenciasrdquo localizado en la barra de hcrraiiiicntas del costado izquierdo

Ha iniciado el proceso de construccioacuten del diagrama de secuencias Si no existen errores al terminar el proceso se le mostraraacute un cuadro de diaacutelogo llamado ldquoResultadosrdquo en donde le mostraraacute las llamadas de las que no localizoacute su definicioacuten

- - -

Cancel 1 D e las siguientes llamadas es posible que esten mal escritas o peitenezcan a la libreiia del Lenguaie Verifique ya que no se encontraron sus definiciones

A continuacioacuten se mencionan los posibles errores que finalizan el proceso de la creacioacuten automaacutetica de los diagramas de secuencias en S3C

Cuando no exista un meacutetodo lsquomainrsquo definido en el diagrama de clases

No se encontro el meacutetodo lsquomain()rsquo que inicie la secuencia I A No se puede crear el diagrama de secuencias

p==amp=q

61

Guia Raacutepida de uso del Sistema S3C

Cuando se definan niultiples metodos lsquoinainrsquo en el diagrama de clases

Multiples meacutetodos lsquomainOlsquo Imposible decidir el inicio de secuencia

Aceptar i

Si un meacutetodo definido en Wamier realiza una llamada a lsquomainrsquo se cancelara el proceso

Llamada NO VALIDA al meacutetodo principal main

(iAcp-j(

4 i

CI Y rdquoldquoldquoI i 11 1-T

IZNTRO Gt INFORMACION

62

  • Tabla de Contenido
  • Listado de Figuras
  • Listado de Tablas
  • Notacioacuten
  • Introduccioacuten
  • Capitulo 1 Conceptos Generales
    • 11 Antecedentes
    • 12 Trabajos relacionados
      • 121 Tabla comparativa
        • 13 Definicioacuten del problema
        • 14 Objetivo de la Tesis
          • Objetivos especiacuteficos de la tesis
            • 15 Hipoacutetesis de investigacioacuten
            • 16 Alcances y limitaciones del trabajo de tesis
              • Capitulo 2 Marco Teoacuterico
                • 21 Modelado de sistemas de software
                • 22 Interfaz de usuario (Mecanismos de interaccioacuten)
                • 23 Lenguajes Visuales
                • 24 Programacioacuten orientada a objetos
                • 25 Lenguaje de Modelado Unificado (UML)
                  • Desarrollo de la herramienta
                    • 31 Disentildeo de la Arquitectura
                      • 311 Requisitos (Diagrama de Casos de uso)
                        • 312Modelo Conceptual
                        • 313Diagramas de clases
                        • 32 Elementos de la arquitectura
                          • 321 Microsoft Foundation Class (MFC)
                            • 322Arquitectura Documento Vista
                            • 323Integrando Ambientes en Visual c++
                              • 324 Interfaz de Muacuteltiples Documentos (MDI)
                                • 325Recursos Diaacutelogos Menus y Barras de Herramientas
                                  • 326 Notacioacuten estaacutendar
                                  • 327 Estructura de datos persistencia y recuperacioacuten
                                    • 328Patrones de disentildeo utilizados
                                      • 33 Diagrama de secuencias
                                        • 331Ciclo de vida del software
                                          • 34 Elementos atoacutemicos de la Gramaacutetica
                                            • 341 Representacioacuten visual
                                              • 35 Gramaacutetica desarrollada
                                              • 36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias
                                                  • Capitulo 4 Pruebas y Resultados
                                                    • 41 Recursos teacutecnicos utilizados
                                                    • 42 Descripcioacuten del plan de pruebas
                                                    • 43 Resultados
                                                      • 431 Caso
                                                      • 432 Caso2
                                                      • 433 Caso
                                                          • Conclusiones y trabajos futuros
                                                            • Trabajos futuros
                                                            • Referencias
                                                            • Anexo A Configuracioacuten de Microsoft Visual C+t
                                                              • Figura 11 - Arquitectura de la suite cenidet-UML
                                                              • Figura 21 -Programacioacuten Visual
                                                              • Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de
                                                              • Figura 32 -Diagrama de Casos de Uso para el S3C
                                                              • Figura 33 -Modelo Conceptual
                                                              • Figura 34 - Diagrama de Clases -Control del Diagrama -
                                                              • Figura 35 - Diagrama de Clases - Patroacuten Visitor -
                                                              • Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento
                                                              • Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)
                                                              • Figura 38 -Dialogo Caracteriacutesticas del Objeto
                                                              • Figura 39 -Dialogo Mensaje
                                                              • Figura 3 IO - Menuacute de los Diagramas de Secuencias (estaacutendar)
                                                              • Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias
                                                              • Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)
                                                              • Figura 313 - Serializacioacuten
                                                              • Figura 314 -Modelo de cascada del ciclo de vida del software
                                                              • Figura 41 - Resultado del caso de prueba
                                                              • Figura 42 -Resultado del caso de prueba
                                                              • Figura 43 -Resultado del caso de prueba
                                                              • Figura 44 -Resultado del caso de prueba
                                                              • Tabla 11 - Tabla comparativa
                                                              • Tabla 31 -Prefijos estaacutendar de identificadores
                                                              • Tabla 32 -Elementos atoacutemicos del lenguaje
                                                              • Tabla 41 - Resumen de los resultados de las pruebas realizadas

Desarrollo de la herramienta

El patroacuten Composite es utilizado para crear de manera uniforme el diagrama sobre el que se trabaja (ver Figura 34) manteniendo una jerarquiacutea de clases uniforme las clases maacutes bajas en la jerarquiacutea definen primitivas de objetos graacuteficos

Se aplica el patroacuten de disentildeo Iterator para hacer recorridos en listas de objetos para realizar diversas operaciones Otro patroacuten de disentildeo del que se hace uso es el Visilor (ver Figura 35)

Para otras actividades que se realizan podriacutea pensarse en que se deberiacutean aplicar otros patrones pero se han evitado algunos (como el patroacuten de disentildeo Builder) para evitar incrementar la complejidad en la arquitectura ya que ai mantener el modelo de la MFC de documentovista la funcionalidad del patroacuten de disentildeo Builder es faacutecilmente reemplazado si se hiciera Uso de eacuteste se aumentariacutea la complejidad excesivamente (nos llevariacutea a perdemos en ocasiones en el paso de mensajes entre clases) dantildeando la facilidad de la arquitectura

33 Diagrama de secuencias

Un Diagrama de Secuencias es un diagrama de interaccioacuten que describe coacutemo los grupos de objetos colaboran en alguacuten escenario Oacute comportamiento se usan para definir el curso loacutegico de accioacuten de un posible camino a seguir en la resolucioacuten de un problema Seguacuten John Daniels [DANO2] ldquoel principal uso de los diagramas de secuencia de la notacioacuten UML es en el modelo de especificaciones donde se requieren las interacciones de los objetos y en el modelo de implementacioacuten donde se disentildean las interacciones de los objetosrdquo

Los Diagramas de Secuencias se utilizan en el modelado de la implementacioacuten de sistemas de software ademaacutes son aplicables en el modelado de requisitos para establecer las comunicaciones existentes entre actores yo clases del sistema Con eacutestos diagramas se logran hacer descripciones de los escenarios y los comportamientos del sistema Con los Diagramas de Secuencias es posible definir protocolos de comunicacioacuten con paso de mensajes ya que dan esa flexibilidad que se requiere Ademaacutes los Diagramas de Secuencias contienen informacioacuten suficiente para que puedan ser transformados a los diagramas de colaboracioacuten [RUM Ol][BOO Oil

331Ciclo de vida del software

Considerando cualquier modelo de ciclo de vida del software (en la figura 314 se muestra el Modelo de cascada) el aacutembito directo de eacuteste Ambiente Visual es en el disentildeo aunque tiene sus vertientes en la codificacioacuten y mantenimiento

36

Desarrollo de la herramienta

Diseno

Codificacibn

I I I I Mantenimiento I

igura 314 Modelo de cascada del ciclo de vida del software

34 Elementos atoacutemicos de la Gramaacutetica

Definicioacuten de los elementos atoacutemicos del lenguaje y su contenido

1 Actor- Representa roles de entidad externos al sistema con el que interactuacutea directamente Los actores pueden ser humanos dispositivos u otros sistemas

2 ClaseObjeto- Determina una Clase u Objeto participante en la interaccioacuten

3 Mensaje-Es una comunicacioacuten entre objetos que contiene informacioacuten Eacuteste se representa con la finalidad a que una accioacuten sea llevada a cabo

4 Mensaje con tiempo- Tiene la misma finalidad que el mensaje la diferencia es que con eacutel se representa un atributo de tiempo

5 Mensaje asiacutencrono Es un mensaje que ocurre en el tiempo de manera independiente a otros mensajes

6 Mensaje de destruccioacuten de objeto- Es un mensaje cuya finalidad es indicar la destruccioacuten del objeto destino

7 Mensaje de creacioacuten de objeto- Es un mensaje que indica la creacioacuten de un objeto

8 Llamada al mismo objeto (Recursividad)- Es usado para modelar llamadas recursivas en el que una operacioacuten es invocada por el mismo objeto

37

Desarrollo de la herramienta

9 Destruccioacuten del objeto (AutodestrucciOacuten)- Puede o no modelarse es representada con una X al final de la liacutenea de vida del objeto

Elementos aulomaacuteticos

1 Liacutenea de Vida- Representa la vida del objeto durante la interaccioacuten

2 Activacioacuten- Muestra el periacuteodo de tiempo en el cual el objeto alguna operacioacuten

341RepresentaciOacuten visual

Representacioacuten visual de los elementos atoacutemicos del lenguaje

Actor

_- A

Mensaje

Mensaje de Creacioacuten de

Objeto

ClaseObjeto

I

Mensaje de retorno

Mensaje de Destruccioacuten de

Objeto

abla 32 Element(

Activacioacuten

Mensaje con tiempo

Autodestruccioacuten

x

atoacutemicos del lengi

taacute realizz

Texto ===I (letra)+ (letra I

numero) letra= AZ I az numero = 09

I

Recursividad ~

I

i j e

io

38

u

Comentario

iexcl

Conector de Comentario

35 Gramaacutetica desarrollada

La gramaacutetica que se propone es una gramaacutetica visual del tipo relacional Una gramaacutetica relacional pertenece a las gramaacuteticas libres de contexto es una 6-iupla G (N C S R Attr P) donde

N es un conjunto finito de siacutembolos no terminales C es un conjunto de siacutembolos terminales S es un siacutembolo distinguido en N llamado siacutembolo inicial R es un conjunto finito de siacutembolos de relacioacuten Attr es un conjunto finito de siacutembolos de atributos P es un conjunto de producciones

Entonces definiendo nuestra gramaacutetica G (N C S R Attr P)

N = Diagrama GrupoClaseObjeto

S = Diagrama

R = mensaje mensajeTiempo mensajeRetomo mensajeAsincrono mensajecrea mensajeDestruye autodestruccioacuten recursividad

R

Attr = entrada salida entradacrea

39

Desarrollo de la herramienta

Definiendo la posicioacuten de los atributos en los elementos visuales

entradacrea ObetaClase

entrada

salida

P =

Diagrama I GrupoClaseObjeto (mensaje (mensajeRetorno

(salida 1) (entrada 2) ) (salida 2) (entrada 1) )

- Diagrama 0 GrupoClaseObjeto

(mensaje (mensaje (mensajeRetomo (mensajeRetomo (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entradacrea 2) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 1) ) (salida 1) (entrada 1) )

entrada

salida

40

Desarrollo de la herramienta

s

-

GrupoClaseObjeto - 1 1 I 2 (mensaje (mensaje (mensajeRetorno (mensajeRetorno (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entradacrea 2) ) (salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 1) ) (salida I ) (entrada I ) )

1 En las gramaacuteticas relacionales una produccioacuten estaacute acompantildeada de las posibles

relaciones que puedan generarse En la primera produccioacuten Diagrama produce a un Actor seguida de un GrupoClaseObjeto el Actor inicia la interaccioacuten con un mensaje y recibe el mensaje de retorno al finalizar la interaccioacuten La segunda y tercera produccioacuten son similares debido a que un GrupoClaseObjeto contiene dos ClaseObjeto que se relacionan de la misma forma

Existe un elemento de la gramaacutetica llamado Attr (Atributo) el cual define la parte de los elementos visuales donde se establecen las relaciones Se han determinado dos atributos (entrada y salida) que para nuestro propoacutesito estaraacuten establecidos en la liacutenea de vida de cada elemento visual (Actor y ClaseObjeto)

Los Comentarios y la Activacioacuten no se consideran en la gramaacutetica Los comentarios son libres de incluirse y relacionarse con cualquier elemento y relacioacuten mencionada anteriormente y la activacioacuten existe siempre que se presente un mensaje (o podriacutea omitirse) Estas consideraciones se realizaron para hacer auacuten maacutes faacutecil la gramaacutetica ya que si se trata de realizar un sistema las restricciones de estos elementos pueden mantenerse en el lenguaje de programacioacuten en el que se desarrolle el sistema

36

Precondiciones

El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias

1 El diagrama de Clases debe existir y estar completo 2 Debe existir un archivo con un diagrama de Warnier por cada diagrama de Clases y

con el mismo nombre de archivo (excepto la extensioacuten del archivo) 3 En el uacutenico diagrama de Warnier de cada Clase se deben modelar todos los meacutetodos

de la Clase 4 No realizar declaraciones de meacutetodos

41

Desarrollo de la herramienta

5 Debe existir un meacutetodo lsquomain()rsquo en el diagrama de Clases

Restricciones

Los meacutetodos deben mantener nombres distintos en las diferentes Clases

Metodologiacutea para la obtencioacuten automaacutetica de los Diagramas de Secuencias

1 Seleccionar el diagrama de Clases

2 Se construye una lista con los nombres de las Clases y los Meacutetodos

3 Se verifica si exista el meacutetodo lsquomain()rsquo en alguna Clase Se busca la existencia de una uacutenica Clase

a La Clase que contenga lsquomain()rsquo se va al inicio de la lista de Clases

b Si no existe lsquomain()rsquo SE TERMINA EL PROCESO

4 Se verifica la existencia de los archivos que contienen el Disentildeo Detallado de los meacutetodos en Wamier para cada una de las Clases si alguno falta SE TERMINA EL PROCESO

5 Se procesa cada uno de los modelos del Disentildeo Detallado de los Meacutetodos generando una lista de secuencias de llamadas por cada uno de los meacutetodos

6 Se verifica que cada llamada corresponda a alguacuten meacutetodo existente (del diagrama de Clases) De no existir ese meacutetodo la llamada entra a una estructura que

7 Se crea una lista de secuencia

a Se inicia con lsquomain()rsquo b Se recorre cada una de las llamadas de los meacutetodos c Se considera invaacutelido el caso de que un meacutetodo intente una llamada

recursiva al meacutetodo lsquomain()rsquo

8 Se muestra un diaacutelogo de resultados en el que se indican las llamadas que no se encnotraron definidas y que pueden ser Llamada a libreriacutea oacute Llamada Erroacutenea

42

Capiacutetulo 4

Prue6as y su6taaacuteos

En eacuteste capiacutetulo se da a conocer el detalle de las pruebas y de los resultados obtenidos Se describen los casos de prueba con los que se realizoacute la evaluacioacuten del sistema asiacute tambieacuten se presentan comentarios acerca de los resultados obtenidos

Pruebas y Resultados

41 Recursos teacutecnicos utilizados

Para llevar a cabo las pruebas al sistema S3C se utilizaron los siguientes equipos de Coacutemputo

Computadora de escritorio

256MB RAM Disco Duro 80G Monitor 17rdquo SAMSUNG

AMD Athlon XP 1600+ I4Ghz

Computadora de escritorio Intel Pentium 4 - 128MB RAM Disco Duro 40G Monitor 15rdquo i -

42 Descripcioacuten del plan de pruebas

Las pruebas establecen el Uacuteltimo paso desde donde es posible evaluar la calidad y descubrir los errores Las pruebas y la validacioacuten del software se utilizan para comprobar que el sistema cumple con las expectativas del usuario

En esta seccioacuten se describen los casos de prueba que se realizaron al prototipo de S3C en conjunto a la suite cenidet-UML Para cada uno de los casos se presenta el objetivo el procedimiento que se siguioacute para la prueba y se muestran los resultados obtenidos - _

Las pruebas a realizar son los siguientes

Caso 1 Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Caso 2 Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Wamier

Caso3 Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Wamier

Caso4 Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo 5

44

Pruebas y Resultados

43 Resultados

431 Caso 1

5 Y

IZ =

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoSirdquo 4 Seleccionar el archivo ldquoVENTASrdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 41 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

s3c iuevo Proyecto SCUM1

Diagrama de clases

lvendedor I L

3

salida

venta prod

4 venia-oferta vcntaprod =

salida 6

Figura 41 Resultado del caso de prueba 1

45

Pruebas y Resultados

432 Caso 2

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Warnier (almacenwar cajawar vendedorwar) que ya cxisten (del caso de prueba I )

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoNordquo 4 Agregar las siguientes Clases con los respectivos meacutetodos y atributos

a Claseldquovendedorrdquo Meacutetodos ldquoventa mainrdquo b Claseldquoalmacenrdquo Meacutetodos ldquoentrada salidardquo c Claseldquocajardquo Meacutetodos ldquoventagrodrdquo

5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 42 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

Diagrama de daseo lisgrama dcsccucncis

MOIDOC Anivo

venta prod

salida

1 Ycrdquo1a 2

I 4 vcrdquolD~o1cn venta prod gt

salida 6 i Figura 42 Resultado del caso de prueba 2

46

Pruebas y Resultados

r

433 Caso 3

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Warnier

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 43 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

5

Error al tratar de abrir el archivo A bZwar

Aceptar i

Faltan Archivos de Disentildeos Detallados de Meacutetodos 1 1 A No se puede crear el diagrama de secuencias

Figura 43 Resultado del caso de prueba 3

47

Pruebas y Resultados

434 Caso 4

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 44 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

lsquo I

~ _ i i _ l _ Repaado ~~ ~ ~ 6~ ampA Figura 44 Resultado del caso de prueba 4

48

Pruebas y Resultados

PRUEBA DESCNPCION CASO 1 Mostrar la funcionalidad del

Sistema S3C a partir de un

44 Anaacutelisis de Resultados

RESULTADOS Se comproboacute la correcta funcionalidad del Sistema S3C a partir de un diagrama

CASO 3

CASO4

I diagrama de Clases cxistcnte I de Clases existente CASO 2 I Mostrar la funcionalidad del I Sc comproboacute la corrccta funcionalidad

Sistema S3C a partir de un del Sistema S3C a partir de un diagrama diagrama de Clases que se de Clases que se construye al momento construye al momento Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el Secuencias si falta alguno de los diagrama de Secuencia si falta alguno diagramas de Warnier Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el secuencias si hace falta el meacutetodo diagrama de Secuencias al faltar el ldquomain ()rdquo meacutetodo ldquomain()rdquo

de los diagramas de Warnier

Los resultados obtenidos de cada uno de los casos establecidos demuestran que se validoacute la funcionalidad del prototipo con los requisitos definidos en el alcance de este proyecto

a lt

49

Conclusiones y Tru6ajos Futuros

Aquiacute se dan a conocer las conclusiones y se describen los posibles trabajos futuros para la continuacioacuten de eacuteste proyecto

F

51 Conclusiones

Conclusiones y trabajos futuros

Se ha creado un Ambiente Visual que permite obtener de forma automaacutetica los Diagramas de Secuencias en base a los diagramas de Clases y al disentildeo detallado de los meacutetodos descritos con diagramas de Warnier cumpliendo con los objetivos planteados para este trabajo

La tesis aporta principalmente La generacioacuten automaacutetica de los diagramas de secuencias y la eliminacioacuten de inconsistencias al mantener una validacioacuten directa de los diagramas de clases y los diagramas de Warnier que son utilizados

Esta validacioacuten es lograda a traveacutes del uso de la gramaacutetica visual relaciona1 que se ha definido (veacutease el capiacutetulo 3) Esta gramaacutetica visual establece reglas para la correcta construccioacuten de los diagramas de secuencias

P De esta manera se establece que la hipoacutetesis ldquoEs posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodosrdquo Es verdadera

52 Trabajos Futuros

Un Diagrama de Secuencias puede convertirse en un Diagrama de Colaboracioacuten por lo tanto un trabajo futuro es la construccioacuten automaacutetica de un Diagrama de Colaboracioacuten a partir de uno de Secuencias existente

Es posible calcular la meacutetrica de acoplamiento al tener un Diagrama de Secuencias construido

La Ingenieriacutea directa de un Diagrama de Secuencias estableciendo la validacioacuten en la construccioacuten de todos los elementos visuales que UML define

La propagacioacuten de las modificaciones de un Diagrama de Secuencias a los Diagramas de Clases y los Diagramas de Warnier

La modificacioacuten del coacutedigo fuente mediante los cambios establecidos en un Diagrama de Secuencias

51

[ALC03]

[BLA98]

[B0099]

[BOOOi]

[BR097]

[CHA90]

[DAN02]

[GLA02]

[HAC98]

[HER03]

4

Alcate1 Computer Associates International inc Electronic Data Systems Corporation Hewlett-Packard Company IBM Corporation I-Logix IntelliCorp Kabira Technologies Kennedy Carter Microsoft Corporation Object Management Group Oracle Corporation Project Technology Ptech Inc Rational Software Corporation Reich Technologies Softeam Taskon A S Telelogic Unisys Corporation ldquoOMG Unified Modeling Language Specificationrdquo Version 15 Unified Modeling Language 2003

Blaha Michael Rumbaugh James Premerlani William Eddy Frederick Lorensen William ldquoObject-oriented modeling and designrdquo Prentice Hall 484 Paacuteginas ISBN 0-13-629841-9 QA-769-03S-B53-19981998

Booch Grady Rumbaugh James Jacobson Ivar ldquoEl lenguaje unificado de modeladordquo Addison Wesley 432 Paacuteginas ISBN 84-7829-028-1 1999

Booch Grady Rumbaugh James Jacobson Ivar ldquoThe Unified Modeling Language User Guiderdquo Addison Wesley 2001

Brown David ldquoAn introduction to object-oriented analysis objects in plain Englishrdquo John Whiley amp Sons Inc 700 Paginas ISBN 0-471-1 1028-0 QA-769-035-B76-1997 1997

Chang Shi-Kuo ldquoVisual Languages and visual programmingrdquo Plenum Press 340 Paacuteginas ISBN 0-306-43428-8 QA-7665-V57-1990 1990

Daniels John ldquoModeling with a sense of purposerdquo Design - IEEE Software JanuaryEebmary 2002

Glasgow Universidad Reino Unido ldquoA UML Editor in Javardquo (lthttplstudentsdcsglaacuWstudentspainjfproject-reportproject-re port-htmV4thYearReporthtrnlgt 2002)

T Hackos JoAnn C Redish Janice ldquoUser and Task Analysis for Interface Designrdquo Wiley Computer Publishing 488 Paacuteginas ISBN QA-769-U83- H33-1998 1998

Hemaacutendez Velaacutezquez M ldquoIngenieriacutea inversa de coacutedigo fuente en C++ para la obtencioacuten de su disentildeordquo Tesis AT-379 (03-0334) 2003

Conceptos generales

[HIX93]

[JAC93]

[JAC99]

[JOY98]

[LAR97]

[MAR]

[MIC99]

[MIC02]

[MOU98]

Hix Deborah Hartson H Rex ldquoDeveloping user interfacesrdquo 381 Paacuteginas ISBN 0-471-57813-4 QA-769-U83-H59-1993 1993

Jacobson Ivar Christerson Magnus Jonsson Patrik Overgaard Gunnar ldquoObject oriented software engineeringrdquo Addison Wesley ISBN 0-20 1 - 54435-0 QA-7676-D47-J63-1993 1993

Jacobson Ivar Booch Grady Rumbaugh James ldquoEl proceso unificado de desarrollo de softwarerdquo Addison Wesley 438 Paacuteginas ISBN 84-7829-036- 2 1999

Joyanes Aguilar Luis ldquoProgramacioacuten orientada a objetosrdquo McGruw Hill ISBN 84-481-0590-7 1998

Larman Craig ldquoAplying UML and Patternsrdquo Prentice Hull 507 Paacuteginas ISBN 0-13-748880-7 QA-769-035-L37-1997 1997

Marriot Kim Meyer Bemd ldquoVisual Language Theoryrdquo Springer 381 Paacuteginas P-935-V567-1998 1998

Microsoft ldquoMicrosoft Visual C++ 6 manual del programadorrdquo McGraw Hill ISBN 84-481-2127-9 QA-7673-Cl53-23718-1999 1999

Microsoft ldquoVisiordquo (lthttpwwwmicrosoftcomofficevisiogt 2002)

B Mourao Luis X ldquoUniversal Modeling Language Part 11 UML Notation - Case Sequence and Collaboration Diagramsrdquo Lan Times Magazine (~httpwwwlantimescomltpartsdiscussdiscuss6Ohtm~) 1998

No Magic ldquoMagicDrawrdquo (lthttpwwwmagicdrawcomgt 2002)

Object Insight ldquoJvisionrdquo (lthttpwwwobject-insightcomgt 2002)

Rational Software Microsoft I Hewlett-Packard Oracle Sterling Software MCI Systemhouse Unisys ICON Computing IntelliCorp i-Logix IBM ObjectTime Platinum Technology Ptech Taskon Reich Technologies Sofieam ldquoUML Summaryrdquo Version 11 Unified Modeling Language 1997

Rational ldquoRational Roserdquo (lthttpwwwrationalcomproductosrosegt 2002)

Rikki Kirzner ldquoAnalysis Modeling and Design Tools Market Forecast and Analysis 2001-2005rdquo Bulletin Published Under Services Application Design and Construction Tools Application Development and Deployment Strategies Documento Nuacutemero 24809 Junio 2001

53

Conceptos generales

[RIM92] Rimrner Steve ldquoGraphical user interface programmingrdquo 423 Paacuteginas

1992

Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language reference manualrdquo Addison Wesley 550 Paacuteginas ISBN 0-201-

ISBN 0-8306-2475-9 ISBN 0-8306-2472-4 (pbk) QA-769-083-R55G

[RUM99]

30998-X QA-7676-D47-R85-1999 1999

[RUM299] Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language user guiderdquo Addisoiz Wesley 482 Paacuteginas ISBN 0-201 -57 168-4 QA-7676-D47-B66-1999 1999

[SMA02] SmartDraw ldquoSmartDrawrdquo (lthttpwwwsmartdrawcomgt 2002)

[SHU88] 9 - Shu Nun C ldquoVisual Programmingrdquo Van Nostrand Reinhold ISBN 0-422- 28014-9 ISBN 0-422-01 164-4 QA-7665-S55 1988

[THI90] Thimbleby Harold ldquoUser Interface Designrdquo Acm press 470 Paacuteginas ISBN 0-201 -41 61 8-2 QA-769U83-T772~- 1990 1990

[WENO2] Wences Diaz MF ldquoModelo de Ingenieriacutea Inversa para la obtencioacuten de disentildeo detallado basado en LEVISSrdquo Tesis (02-0014) 2002

54

Anexo A

Conampuracioacuten de Microsoft Vkua[C++ 6 O

Este anexo indica las configuraciones que se utilizaron para la compilacioacuten de SCUML y s3c

Configuracioacuten de Microsoft Visual c++ 60

Debido a la integracioacuten de los proyectos de InverSOODA e InverDDVi con S3C se cumplioacute con los requisitos previos de ambos proyectos

El compilador usado en el proyecto fue el Microsoft Visual C++ 60

Para el cumplimiento con la funcionalidad de InverSOODA se instaloacute el ANTLR la versioacuten 271 Se descargoacute del sitio l i l l ~ ~ ~ ~ ~ ~ t l ~ l ~ - ~ t - ~ la versioacuten mencionada en un archivo comprimido (en formato zip) Se colocoacute el paquete descomprimido en el directorio ldquoDIANTLR-271 I rdquo

Recomiendo ampliamente que el directorio principal de ANTLR se copie en el directorio raiacutez de cualquier unidad de disco debido a que experimenteacute problemas de compilacioacuten cuando ANTLR no se encontraba en el directorio raiacutez

Io015

Source Browser AlttF12 I u c Ersquo V I

Visual Component Mgnager

- - ~ ~ ~ ~~

P2 Registrar control

A Contenedor de prueba de controles ActiveX

A Usor de objetos OLE y COM

Buacutesqueda de errores

A Y++ MFC Iracer

Customize options

~ - q- ~ Macro

Eecord Quick Macro Cbl+ShiR+R Pay Quick Macro Ctrl+ShiR+P

En el menuacute Tools (Herramientas) seleccione el sub-menuacute Options ltopcionesgt

56

Configuracioacuten de Microsoft Visual C++ 60

En la siguiente ventana de diaacutelogo debe agregar la direccioacuten en donde se encuentra el ANTLR

Agregar la ruta del directorio de ANTLR hasta el subdirectorio

libcpp

Editor I Tabs I Debug I Compatibility 1 Build Dneclolies I a I Chow directories for - Platfolm -

- Directories I x ) 4 jWin32 -] llnclude files

m cancd I

57

Configuracioacuten de Microsoft Visual C t+ 60

Se ha creado una libreriacutea (anrlrliblib) de ANTLR la cual ya estaacute situada en el directorio del proyecto SCUML (ISCUML) y no debe ser movida o eliminada

I

Geneial 1 Debug I CC++ Link I Category

Output file name bebugSCUMLexe

Objectljibrary modules 4 anllrliblib

li Generate debug lnfo r Ignore all defaull lbaries D ~ i n k j n ~ ~ ~ t a n ~ r ~ e n e r ~ ~ ~ mapfile

r Enable psafilrng

Proiec1 Ootionn

pq Cancel 1 Libreriacutea de ANTLR que debe existir 1 I para que se compile correctamente

58

Anexo B

~ u iacute aacute raacutepida de uso deC Sistema S3C

5 Este anexo indica de forma raacutepida la manera de utilizar S3C para crear un diagrama de secuencias de forma automaacutetica

Guiacutea Raacutepida de uso del Sistema S3C i

Para indicar la creacioacuten de un diagrama de secuencias en forma automaacutetica se debe ir a la barra del costado izquierdo y presionar ldquoNuevo Proyecto SCUMLrdquo

I s3c I ~ Nuevo Proyecto SCUML ~ _ _ - I Diagrama de clases ~ Diagrama de secuencias 1 MDI DOC Activo

-

Apareceraacute un documento llamado ldquoSCUMLV en donde el simbolo corresponde a un numero consecutivo iniciando desde 1 (uno)

$ e Despueacutes se presiona ldquoDiagrama de clasesrdquo Habraacute que para indicarle al sistema si se requiere abrir un diagrama de clases existente o realizar uno nuevo

i

iquestAbrir un documento existente

No Cardquo~ear

AI presionar ldquoSirdquo se debe indicar cual es el archivo del diagrama de Clases en el cuadro de diaacutelogo siguiente

~~ - 11dMis documentos rsquo 2 M i P C i lsquo h s sitios de red

I

AI presionar ldquoNordquo en ldquoAbrir un documento existenterdquo se nos mostraraacute un documento vacio para crear un diagrama de clases

60

Guiacutea Raacutepida de uso del Sistema S3C

Para ambas opciones se requiere que los diagramas de Wamier ya se encuentren construidos Y para continuar el proccso se selecciona el documento ldquoSCUMLVrsquo creado al inicio y despueacutes presionar el botoacuten nombrado ldquoDiagrama de secuenciasrdquo localizado en la barra de hcrraiiiicntas del costado izquierdo

Ha iniciado el proceso de construccioacuten del diagrama de secuencias Si no existen errores al terminar el proceso se le mostraraacute un cuadro de diaacutelogo llamado ldquoResultadosrdquo en donde le mostraraacute las llamadas de las que no localizoacute su definicioacuten

- - -

Cancel 1 D e las siguientes llamadas es posible que esten mal escritas o peitenezcan a la libreiia del Lenguaie Verifique ya que no se encontraron sus definiciones

A continuacioacuten se mencionan los posibles errores que finalizan el proceso de la creacioacuten automaacutetica de los diagramas de secuencias en S3C

Cuando no exista un meacutetodo lsquomainrsquo definido en el diagrama de clases

No se encontro el meacutetodo lsquomain()rsquo que inicie la secuencia I A No se puede crear el diagrama de secuencias

p==amp=q

61

Guia Raacutepida de uso del Sistema S3C

Cuando se definan niultiples metodos lsquoinainrsquo en el diagrama de clases

Multiples meacutetodos lsquomainOlsquo Imposible decidir el inicio de secuencia

Aceptar i

Si un meacutetodo definido en Wamier realiza una llamada a lsquomainrsquo se cancelara el proceso

Llamada NO VALIDA al meacutetodo principal main

(iAcp-j(

4 i

CI Y rdquoldquoldquoI i 11 1-T

IZNTRO Gt INFORMACION

62

  • Tabla de Contenido
  • Listado de Figuras
  • Listado de Tablas
  • Notacioacuten
  • Introduccioacuten
  • Capitulo 1 Conceptos Generales
    • 11 Antecedentes
    • 12 Trabajos relacionados
      • 121 Tabla comparativa
        • 13 Definicioacuten del problema
        • 14 Objetivo de la Tesis
          • Objetivos especiacuteficos de la tesis
            • 15 Hipoacutetesis de investigacioacuten
            • 16 Alcances y limitaciones del trabajo de tesis
              • Capitulo 2 Marco Teoacuterico
                • 21 Modelado de sistemas de software
                • 22 Interfaz de usuario (Mecanismos de interaccioacuten)
                • 23 Lenguajes Visuales
                • 24 Programacioacuten orientada a objetos
                • 25 Lenguaje de Modelado Unificado (UML)
                  • Desarrollo de la herramienta
                    • 31 Disentildeo de la Arquitectura
                      • 311 Requisitos (Diagrama de Casos de uso)
                        • 312Modelo Conceptual
                        • 313Diagramas de clases
                        • 32 Elementos de la arquitectura
                          • 321 Microsoft Foundation Class (MFC)
                            • 322Arquitectura Documento Vista
                            • 323Integrando Ambientes en Visual c++
                              • 324 Interfaz de Muacuteltiples Documentos (MDI)
                                • 325Recursos Diaacutelogos Menus y Barras de Herramientas
                                  • 326 Notacioacuten estaacutendar
                                  • 327 Estructura de datos persistencia y recuperacioacuten
                                    • 328Patrones de disentildeo utilizados
                                      • 33 Diagrama de secuencias
                                        • 331Ciclo de vida del software
                                          • 34 Elementos atoacutemicos de la Gramaacutetica
                                            • 341 Representacioacuten visual
                                              • 35 Gramaacutetica desarrollada
                                              • 36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias
                                                  • Capitulo 4 Pruebas y Resultados
                                                    • 41 Recursos teacutecnicos utilizados
                                                    • 42 Descripcioacuten del plan de pruebas
                                                    • 43 Resultados
                                                      • 431 Caso
                                                      • 432 Caso2
                                                      • 433 Caso
                                                          • Conclusiones y trabajos futuros
                                                            • Trabajos futuros
                                                            • Referencias
                                                            • Anexo A Configuracioacuten de Microsoft Visual C+t
                                                              • Figura 11 - Arquitectura de la suite cenidet-UML
                                                              • Figura 21 -Programacioacuten Visual
                                                              • Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de
                                                              • Figura 32 -Diagrama de Casos de Uso para el S3C
                                                              • Figura 33 -Modelo Conceptual
                                                              • Figura 34 - Diagrama de Clases -Control del Diagrama -
                                                              • Figura 35 - Diagrama de Clases - Patroacuten Visitor -
                                                              • Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento
                                                              • Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)
                                                              • Figura 38 -Dialogo Caracteriacutesticas del Objeto
                                                              • Figura 39 -Dialogo Mensaje
                                                              • Figura 3 IO - Menuacute de los Diagramas de Secuencias (estaacutendar)
                                                              • Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias
                                                              • Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)
                                                              • Figura 313 - Serializacioacuten
                                                              • Figura 314 -Modelo de cascada del ciclo de vida del software
                                                              • Figura 41 - Resultado del caso de prueba
                                                              • Figura 42 -Resultado del caso de prueba
                                                              • Figura 43 -Resultado del caso de prueba
                                                              • Figura 44 -Resultado del caso de prueba
                                                              • Tabla 11 - Tabla comparativa
                                                              • Tabla 31 -Prefijos estaacutendar de identificadores
                                                              • Tabla 32 -Elementos atoacutemicos del lenguaje
                                                              • Tabla 41 - Resumen de los resultados de las pruebas realizadas

Desarrollo de la herramienta

Diseno

Codificacibn

I I I I Mantenimiento I

igura 314 Modelo de cascada del ciclo de vida del software

34 Elementos atoacutemicos de la Gramaacutetica

Definicioacuten de los elementos atoacutemicos del lenguaje y su contenido

1 Actor- Representa roles de entidad externos al sistema con el que interactuacutea directamente Los actores pueden ser humanos dispositivos u otros sistemas

2 ClaseObjeto- Determina una Clase u Objeto participante en la interaccioacuten

3 Mensaje-Es una comunicacioacuten entre objetos que contiene informacioacuten Eacuteste se representa con la finalidad a que una accioacuten sea llevada a cabo

4 Mensaje con tiempo- Tiene la misma finalidad que el mensaje la diferencia es que con eacutel se representa un atributo de tiempo

5 Mensaje asiacutencrono Es un mensaje que ocurre en el tiempo de manera independiente a otros mensajes

6 Mensaje de destruccioacuten de objeto- Es un mensaje cuya finalidad es indicar la destruccioacuten del objeto destino

7 Mensaje de creacioacuten de objeto- Es un mensaje que indica la creacioacuten de un objeto

8 Llamada al mismo objeto (Recursividad)- Es usado para modelar llamadas recursivas en el que una operacioacuten es invocada por el mismo objeto

37

Desarrollo de la herramienta

9 Destruccioacuten del objeto (AutodestrucciOacuten)- Puede o no modelarse es representada con una X al final de la liacutenea de vida del objeto

Elementos aulomaacuteticos

1 Liacutenea de Vida- Representa la vida del objeto durante la interaccioacuten

2 Activacioacuten- Muestra el periacuteodo de tiempo en el cual el objeto alguna operacioacuten

341RepresentaciOacuten visual

Representacioacuten visual de los elementos atoacutemicos del lenguaje

Actor

_- A

Mensaje

Mensaje de Creacioacuten de

Objeto

ClaseObjeto

I

Mensaje de retorno

Mensaje de Destruccioacuten de

Objeto

abla 32 Element(

Activacioacuten

Mensaje con tiempo

Autodestruccioacuten

x

atoacutemicos del lengi

taacute realizz

Texto ===I (letra)+ (letra I

numero) letra= AZ I az numero = 09

I

Recursividad ~

I

i j e

io

38

u

Comentario

iexcl

Conector de Comentario

35 Gramaacutetica desarrollada

La gramaacutetica que se propone es una gramaacutetica visual del tipo relacional Una gramaacutetica relacional pertenece a las gramaacuteticas libres de contexto es una 6-iupla G (N C S R Attr P) donde

N es un conjunto finito de siacutembolos no terminales C es un conjunto de siacutembolos terminales S es un siacutembolo distinguido en N llamado siacutembolo inicial R es un conjunto finito de siacutembolos de relacioacuten Attr es un conjunto finito de siacutembolos de atributos P es un conjunto de producciones

Entonces definiendo nuestra gramaacutetica G (N C S R Attr P)

N = Diagrama GrupoClaseObjeto

S = Diagrama

R = mensaje mensajeTiempo mensajeRetomo mensajeAsincrono mensajecrea mensajeDestruye autodestruccioacuten recursividad

R

Attr = entrada salida entradacrea

39

Desarrollo de la herramienta

Definiendo la posicioacuten de los atributos en los elementos visuales

entradacrea ObetaClase

entrada

salida

P =

Diagrama I GrupoClaseObjeto (mensaje (mensajeRetorno

(salida 1) (entrada 2) ) (salida 2) (entrada 1) )

- Diagrama 0 GrupoClaseObjeto

(mensaje (mensaje (mensajeRetomo (mensajeRetomo (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entradacrea 2) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 1) ) (salida 1) (entrada 1) )

entrada

salida

40

Desarrollo de la herramienta

s

-

GrupoClaseObjeto - 1 1 I 2 (mensaje (mensaje (mensajeRetorno (mensajeRetorno (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entradacrea 2) ) (salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 1) ) (salida I ) (entrada I ) )

1 En las gramaacuteticas relacionales una produccioacuten estaacute acompantildeada de las posibles

relaciones que puedan generarse En la primera produccioacuten Diagrama produce a un Actor seguida de un GrupoClaseObjeto el Actor inicia la interaccioacuten con un mensaje y recibe el mensaje de retorno al finalizar la interaccioacuten La segunda y tercera produccioacuten son similares debido a que un GrupoClaseObjeto contiene dos ClaseObjeto que se relacionan de la misma forma

Existe un elemento de la gramaacutetica llamado Attr (Atributo) el cual define la parte de los elementos visuales donde se establecen las relaciones Se han determinado dos atributos (entrada y salida) que para nuestro propoacutesito estaraacuten establecidos en la liacutenea de vida de cada elemento visual (Actor y ClaseObjeto)

Los Comentarios y la Activacioacuten no se consideran en la gramaacutetica Los comentarios son libres de incluirse y relacionarse con cualquier elemento y relacioacuten mencionada anteriormente y la activacioacuten existe siempre que se presente un mensaje (o podriacutea omitirse) Estas consideraciones se realizaron para hacer auacuten maacutes faacutecil la gramaacutetica ya que si se trata de realizar un sistema las restricciones de estos elementos pueden mantenerse en el lenguaje de programacioacuten en el que se desarrolle el sistema

36

Precondiciones

El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias

1 El diagrama de Clases debe existir y estar completo 2 Debe existir un archivo con un diagrama de Warnier por cada diagrama de Clases y

con el mismo nombre de archivo (excepto la extensioacuten del archivo) 3 En el uacutenico diagrama de Warnier de cada Clase se deben modelar todos los meacutetodos

de la Clase 4 No realizar declaraciones de meacutetodos

41

Desarrollo de la herramienta

5 Debe existir un meacutetodo lsquomain()rsquo en el diagrama de Clases

Restricciones

Los meacutetodos deben mantener nombres distintos en las diferentes Clases

Metodologiacutea para la obtencioacuten automaacutetica de los Diagramas de Secuencias

1 Seleccionar el diagrama de Clases

2 Se construye una lista con los nombres de las Clases y los Meacutetodos

3 Se verifica si exista el meacutetodo lsquomain()rsquo en alguna Clase Se busca la existencia de una uacutenica Clase

a La Clase que contenga lsquomain()rsquo se va al inicio de la lista de Clases

b Si no existe lsquomain()rsquo SE TERMINA EL PROCESO

4 Se verifica la existencia de los archivos que contienen el Disentildeo Detallado de los meacutetodos en Wamier para cada una de las Clases si alguno falta SE TERMINA EL PROCESO

5 Se procesa cada uno de los modelos del Disentildeo Detallado de los Meacutetodos generando una lista de secuencias de llamadas por cada uno de los meacutetodos

6 Se verifica que cada llamada corresponda a alguacuten meacutetodo existente (del diagrama de Clases) De no existir ese meacutetodo la llamada entra a una estructura que

7 Se crea una lista de secuencia

a Se inicia con lsquomain()rsquo b Se recorre cada una de las llamadas de los meacutetodos c Se considera invaacutelido el caso de que un meacutetodo intente una llamada

recursiva al meacutetodo lsquomain()rsquo

8 Se muestra un diaacutelogo de resultados en el que se indican las llamadas que no se encnotraron definidas y que pueden ser Llamada a libreriacutea oacute Llamada Erroacutenea

42

Capiacutetulo 4

Prue6as y su6taaacuteos

En eacuteste capiacutetulo se da a conocer el detalle de las pruebas y de los resultados obtenidos Se describen los casos de prueba con los que se realizoacute la evaluacioacuten del sistema asiacute tambieacuten se presentan comentarios acerca de los resultados obtenidos

Pruebas y Resultados

41 Recursos teacutecnicos utilizados

Para llevar a cabo las pruebas al sistema S3C se utilizaron los siguientes equipos de Coacutemputo

Computadora de escritorio

256MB RAM Disco Duro 80G Monitor 17rdquo SAMSUNG

AMD Athlon XP 1600+ I4Ghz

Computadora de escritorio Intel Pentium 4 - 128MB RAM Disco Duro 40G Monitor 15rdquo i -

42 Descripcioacuten del plan de pruebas

Las pruebas establecen el Uacuteltimo paso desde donde es posible evaluar la calidad y descubrir los errores Las pruebas y la validacioacuten del software se utilizan para comprobar que el sistema cumple con las expectativas del usuario

En esta seccioacuten se describen los casos de prueba que se realizaron al prototipo de S3C en conjunto a la suite cenidet-UML Para cada uno de los casos se presenta el objetivo el procedimiento que se siguioacute para la prueba y se muestran los resultados obtenidos - _

Las pruebas a realizar son los siguientes

Caso 1 Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Caso 2 Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Wamier

Caso3 Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Wamier

Caso4 Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo 5

44

Pruebas y Resultados

43 Resultados

431 Caso 1

5 Y

IZ =

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoSirdquo 4 Seleccionar el archivo ldquoVENTASrdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 41 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

s3c iuevo Proyecto SCUM1

Diagrama de clases

lvendedor I L

3

salida

venta prod

4 venia-oferta vcntaprod =

salida 6

Figura 41 Resultado del caso de prueba 1

45

Pruebas y Resultados

432 Caso 2

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Warnier (almacenwar cajawar vendedorwar) que ya cxisten (del caso de prueba I )

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoNordquo 4 Agregar las siguientes Clases con los respectivos meacutetodos y atributos

a Claseldquovendedorrdquo Meacutetodos ldquoventa mainrdquo b Claseldquoalmacenrdquo Meacutetodos ldquoentrada salidardquo c Claseldquocajardquo Meacutetodos ldquoventagrodrdquo

5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 42 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

Diagrama de daseo lisgrama dcsccucncis

MOIDOC Anivo

venta prod

salida

1 Ycrdquo1a 2

I 4 vcrdquolD~o1cn venta prod gt

salida 6 i Figura 42 Resultado del caso de prueba 2

46

Pruebas y Resultados

r

433 Caso 3

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Warnier

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 43 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

5

Error al tratar de abrir el archivo A bZwar

Aceptar i

Faltan Archivos de Disentildeos Detallados de Meacutetodos 1 1 A No se puede crear el diagrama de secuencias

Figura 43 Resultado del caso de prueba 3

47

Pruebas y Resultados

434 Caso 4

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 44 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

lsquo I

~ _ i i _ l _ Repaado ~~ ~ ~ 6~ ampA Figura 44 Resultado del caso de prueba 4

48

Pruebas y Resultados

PRUEBA DESCNPCION CASO 1 Mostrar la funcionalidad del

Sistema S3C a partir de un

44 Anaacutelisis de Resultados

RESULTADOS Se comproboacute la correcta funcionalidad del Sistema S3C a partir de un diagrama

CASO 3

CASO4

I diagrama de Clases cxistcnte I de Clases existente CASO 2 I Mostrar la funcionalidad del I Sc comproboacute la corrccta funcionalidad

Sistema S3C a partir de un del Sistema S3C a partir de un diagrama diagrama de Clases que se de Clases que se construye al momento construye al momento Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el Secuencias si falta alguno de los diagrama de Secuencia si falta alguno diagramas de Warnier Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el secuencias si hace falta el meacutetodo diagrama de Secuencias al faltar el ldquomain ()rdquo meacutetodo ldquomain()rdquo

de los diagramas de Warnier

Los resultados obtenidos de cada uno de los casos establecidos demuestran que se validoacute la funcionalidad del prototipo con los requisitos definidos en el alcance de este proyecto

a lt

49

Conclusiones y Tru6ajos Futuros

Aquiacute se dan a conocer las conclusiones y se describen los posibles trabajos futuros para la continuacioacuten de eacuteste proyecto

F

51 Conclusiones

Conclusiones y trabajos futuros

Se ha creado un Ambiente Visual que permite obtener de forma automaacutetica los Diagramas de Secuencias en base a los diagramas de Clases y al disentildeo detallado de los meacutetodos descritos con diagramas de Warnier cumpliendo con los objetivos planteados para este trabajo

La tesis aporta principalmente La generacioacuten automaacutetica de los diagramas de secuencias y la eliminacioacuten de inconsistencias al mantener una validacioacuten directa de los diagramas de clases y los diagramas de Warnier que son utilizados

Esta validacioacuten es lograda a traveacutes del uso de la gramaacutetica visual relaciona1 que se ha definido (veacutease el capiacutetulo 3) Esta gramaacutetica visual establece reglas para la correcta construccioacuten de los diagramas de secuencias

P De esta manera se establece que la hipoacutetesis ldquoEs posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodosrdquo Es verdadera

52 Trabajos Futuros

Un Diagrama de Secuencias puede convertirse en un Diagrama de Colaboracioacuten por lo tanto un trabajo futuro es la construccioacuten automaacutetica de un Diagrama de Colaboracioacuten a partir de uno de Secuencias existente

Es posible calcular la meacutetrica de acoplamiento al tener un Diagrama de Secuencias construido

La Ingenieriacutea directa de un Diagrama de Secuencias estableciendo la validacioacuten en la construccioacuten de todos los elementos visuales que UML define

La propagacioacuten de las modificaciones de un Diagrama de Secuencias a los Diagramas de Clases y los Diagramas de Warnier

La modificacioacuten del coacutedigo fuente mediante los cambios establecidos en un Diagrama de Secuencias

51

[ALC03]

[BLA98]

[B0099]

[BOOOi]

[BR097]

[CHA90]

[DAN02]

[GLA02]

[HAC98]

[HER03]

4

Alcate1 Computer Associates International inc Electronic Data Systems Corporation Hewlett-Packard Company IBM Corporation I-Logix IntelliCorp Kabira Technologies Kennedy Carter Microsoft Corporation Object Management Group Oracle Corporation Project Technology Ptech Inc Rational Software Corporation Reich Technologies Softeam Taskon A S Telelogic Unisys Corporation ldquoOMG Unified Modeling Language Specificationrdquo Version 15 Unified Modeling Language 2003

Blaha Michael Rumbaugh James Premerlani William Eddy Frederick Lorensen William ldquoObject-oriented modeling and designrdquo Prentice Hall 484 Paacuteginas ISBN 0-13-629841-9 QA-769-03S-B53-19981998

Booch Grady Rumbaugh James Jacobson Ivar ldquoEl lenguaje unificado de modeladordquo Addison Wesley 432 Paacuteginas ISBN 84-7829-028-1 1999

Booch Grady Rumbaugh James Jacobson Ivar ldquoThe Unified Modeling Language User Guiderdquo Addison Wesley 2001

Brown David ldquoAn introduction to object-oriented analysis objects in plain Englishrdquo John Whiley amp Sons Inc 700 Paginas ISBN 0-471-1 1028-0 QA-769-035-B76-1997 1997

Chang Shi-Kuo ldquoVisual Languages and visual programmingrdquo Plenum Press 340 Paacuteginas ISBN 0-306-43428-8 QA-7665-V57-1990 1990

Daniels John ldquoModeling with a sense of purposerdquo Design - IEEE Software JanuaryEebmary 2002

Glasgow Universidad Reino Unido ldquoA UML Editor in Javardquo (lthttplstudentsdcsglaacuWstudentspainjfproject-reportproject-re port-htmV4thYearReporthtrnlgt 2002)

T Hackos JoAnn C Redish Janice ldquoUser and Task Analysis for Interface Designrdquo Wiley Computer Publishing 488 Paacuteginas ISBN QA-769-U83- H33-1998 1998

Hemaacutendez Velaacutezquez M ldquoIngenieriacutea inversa de coacutedigo fuente en C++ para la obtencioacuten de su disentildeordquo Tesis AT-379 (03-0334) 2003

Conceptos generales

[HIX93]

[JAC93]

[JAC99]

[JOY98]

[LAR97]

[MAR]

[MIC99]

[MIC02]

[MOU98]

Hix Deborah Hartson H Rex ldquoDeveloping user interfacesrdquo 381 Paacuteginas ISBN 0-471-57813-4 QA-769-U83-H59-1993 1993

Jacobson Ivar Christerson Magnus Jonsson Patrik Overgaard Gunnar ldquoObject oriented software engineeringrdquo Addison Wesley ISBN 0-20 1 - 54435-0 QA-7676-D47-J63-1993 1993

Jacobson Ivar Booch Grady Rumbaugh James ldquoEl proceso unificado de desarrollo de softwarerdquo Addison Wesley 438 Paacuteginas ISBN 84-7829-036- 2 1999

Joyanes Aguilar Luis ldquoProgramacioacuten orientada a objetosrdquo McGruw Hill ISBN 84-481-0590-7 1998

Larman Craig ldquoAplying UML and Patternsrdquo Prentice Hull 507 Paacuteginas ISBN 0-13-748880-7 QA-769-035-L37-1997 1997

Marriot Kim Meyer Bemd ldquoVisual Language Theoryrdquo Springer 381 Paacuteginas P-935-V567-1998 1998

Microsoft ldquoMicrosoft Visual C++ 6 manual del programadorrdquo McGraw Hill ISBN 84-481-2127-9 QA-7673-Cl53-23718-1999 1999

Microsoft ldquoVisiordquo (lthttpwwwmicrosoftcomofficevisiogt 2002)

B Mourao Luis X ldquoUniversal Modeling Language Part 11 UML Notation - Case Sequence and Collaboration Diagramsrdquo Lan Times Magazine (~httpwwwlantimescomltpartsdiscussdiscuss6Ohtm~) 1998

No Magic ldquoMagicDrawrdquo (lthttpwwwmagicdrawcomgt 2002)

Object Insight ldquoJvisionrdquo (lthttpwwwobject-insightcomgt 2002)

Rational Software Microsoft I Hewlett-Packard Oracle Sterling Software MCI Systemhouse Unisys ICON Computing IntelliCorp i-Logix IBM ObjectTime Platinum Technology Ptech Taskon Reich Technologies Sofieam ldquoUML Summaryrdquo Version 11 Unified Modeling Language 1997

Rational ldquoRational Roserdquo (lthttpwwwrationalcomproductosrosegt 2002)

Rikki Kirzner ldquoAnalysis Modeling and Design Tools Market Forecast and Analysis 2001-2005rdquo Bulletin Published Under Services Application Design and Construction Tools Application Development and Deployment Strategies Documento Nuacutemero 24809 Junio 2001

53

Conceptos generales

[RIM92] Rimrner Steve ldquoGraphical user interface programmingrdquo 423 Paacuteginas

1992

Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language reference manualrdquo Addison Wesley 550 Paacuteginas ISBN 0-201-

ISBN 0-8306-2475-9 ISBN 0-8306-2472-4 (pbk) QA-769-083-R55G

[RUM99]

30998-X QA-7676-D47-R85-1999 1999

[RUM299] Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language user guiderdquo Addisoiz Wesley 482 Paacuteginas ISBN 0-201 -57 168-4 QA-7676-D47-B66-1999 1999

[SMA02] SmartDraw ldquoSmartDrawrdquo (lthttpwwwsmartdrawcomgt 2002)

[SHU88] 9 - Shu Nun C ldquoVisual Programmingrdquo Van Nostrand Reinhold ISBN 0-422- 28014-9 ISBN 0-422-01 164-4 QA-7665-S55 1988

[THI90] Thimbleby Harold ldquoUser Interface Designrdquo Acm press 470 Paacuteginas ISBN 0-201 -41 61 8-2 QA-769U83-T772~- 1990 1990

[WENO2] Wences Diaz MF ldquoModelo de Ingenieriacutea Inversa para la obtencioacuten de disentildeo detallado basado en LEVISSrdquo Tesis (02-0014) 2002

54

Anexo A

Conampuracioacuten de Microsoft Vkua[C++ 6 O

Este anexo indica las configuraciones que se utilizaron para la compilacioacuten de SCUML y s3c

Configuracioacuten de Microsoft Visual c++ 60

Debido a la integracioacuten de los proyectos de InverSOODA e InverDDVi con S3C se cumplioacute con los requisitos previos de ambos proyectos

El compilador usado en el proyecto fue el Microsoft Visual C++ 60

Para el cumplimiento con la funcionalidad de InverSOODA se instaloacute el ANTLR la versioacuten 271 Se descargoacute del sitio l i l l ~ ~ ~ ~ ~ ~ t l ~ l ~ - ~ t - ~ la versioacuten mencionada en un archivo comprimido (en formato zip) Se colocoacute el paquete descomprimido en el directorio ldquoDIANTLR-271 I rdquo

Recomiendo ampliamente que el directorio principal de ANTLR se copie en el directorio raiacutez de cualquier unidad de disco debido a que experimenteacute problemas de compilacioacuten cuando ANTLR no se encontraba en el directorio raiacutez

Io015

Source Browser AlttF12 I u c Ersquo V I

Visual Component Mgnager

- - ~ ~ ~ ~~

P2 Registrar control

A Contenedor de prueba de controles ActiveX

A Usor de objetos OLE y COM

Buacutesqueda de errores

A Y++ MFC Iracer

Customize options

~ - q- ~ Macro

Eecord Quick Macro Cbl+ShiR+R Pay Quick Macro Ctrl+ShiR+P

En el menuacute Tools (Herramientas) seleccione el sub-menuacute Options ltopcionesgt

56

Configuracioacuten de Microsoft Visual C++ 60

En la siguiente ventana de diaacutelogo debe agregar la direccioacuten en donde se encuentra el ANTLR

Agregar la ruta del directorio de ANTLR hasta el subdirectorio

libcpp

Editor I Tabs I Debug I Compatibility 1 Build Dneclolies I a I Chow directories for - Platfolm -

- Directories I x ) 4 jWin32 -] llnclude files

m cancd I

57

Configuracioacuten de Microsoft Visual C t+ 60

Se ha creado una libreriacutea (anrlrliblib) de ANTLR la cual ya estaacute situada en el directorio del proyecto SCUML (ISCUML) y no debe ser movida o eliminada

I

Geneial 1 Debug I CC++ Link I Category

Output file name bebugSCUMLexe

Objectljibrary modules 4 anllrliblib

li Generate debug lnfo r Ignore all defaull lbaries D ~ i n k j n ~ ~ ~ t a n ~ r ~ e n e r ~ ~ ~ mapfile

r Enable psafilrng

Proiec1 Ootionn

pq Cancel 1 Libreriacutea de ANTLR que debe existir 1 I para que se compile correctamente

58

Anexo B

~ u iacute aacute raacutepida de uso deC Sistema S3C

5 Este anexo indica de forma raacutepida la manera de utilizar S3C para crear un diagrama de secuencias de forma automaacutetica

Guiacutea Raacutepida de uso del Sistema S3C i

Para indicar la creacioacuten de un diagrama de secuencias en forma automaacutetica se debe ir a la barra del costado izquierdo y presionar ldquoNuevo Proyecto SCUMLrdquo

I s3c I ~ Nuevo Proyecto SCUML ~ _ _ - I Diagrama de clases ~ Diagrama de secuencias 1 MDI DOC Activo

-

Apareceraacute un documento llamado ldquoSCUMLV en donde el simbolo corresponde a un numero consecutivo iniciando desde 1 (uno)

$ e Despueacutes se presiona ldquoDiagrama de clasesrdquo Habraacute que para indicarle al sistema si se requiere abrir un diagrama de clases existente o realizar uno nuevo

i

iquestAbrir un documento existente

No Cardquo~ear

AI presionar ldquoSirdquo se debe indicar cual es el archivo del diagrama de Clases en el cuadro de diaacutelogo siguiente

~~ - 11dMis documentos rsquo 2 M i P C i lsquo h s sitios de red

I

AI presionar ldquoNordquo en ldquoAbrir un documento existenterdquo se nos mostraraacute un documento vacio para crear un diagrama de clases

60

Guiacutea Raacutepida de uso del Sistema S3C

Para ambas opciones se requiere que los diagramas de Wamier ya se encuentren construidos Y para continuar el proccso se selecciona el documento ldquoSCUMLVrsquo creado al inicio y despueacutes presionar el botoacuten nombrado ldquoDiagrama de secuenciasrdquo localizado en la barra de hcrraiiiicntas del costado izquierdo

Ha iniciado el proceso de construccioacuten del diagrama de secuencias Si no existen errores al terminar el proceso se le mostraraacute un cuadro de diaacutelogo llamado ldquoResultadosrdquo en donde le mostraraacute las llamadas de las que no localizoacute su definicioacuten

- - -

Cancel 1 D e las siguientes llamadas es posible que esten mal escritas o peitenezcan a la libreiia del Lenguaie Verifique ya que no se encontraron sus definiciones

A continuacioacuten se mencionan los posibles errores que finalizan el proceso de la creacioacuten automaacutetica de los diagramas de secuencias en S3C

Cuando no exista un meacutetodo lsquomainrsquo definido en el diagrama de clases

No se encontro el meacutetodo lsquomain()rsquo que inicie la secuencia I A No se puede crear el diagrama de secuencias

p==amp=q

61

Guia Raacutepida de uso del Sistema S3C

Cuando se definan niultiples metodos lsquoinainrsquo en el diagrama de clases

Multiples meacutetodos lsquomainOlsquo Imposible decidir el inicio de secuencia

Aceptar i

Si un meacutetodo definido en Wamier realiza una llamada a lsquomainrsquo se cancelara el proceso

Llamada NO VALIDA al meacutetodo principal main

(iAcp-j(

4 i

CI Y rdquoldquoldquoI i 11 1-T

IZNTRO Gt INFORMACION

62

  • Tabla de Contenido
  • Listado de Figuras
  • Listado de Tablas
  • Notacioacuten
  • Introduccioacuten
  • Capitulo 1 Conceptos Generales
    • 11 Antecedentes
    • 12 Trabajos relacionados
      • 121 Tabla comparativa
        • 13 Definicioacuten del problema
        • 14 Objetivo de la Tesis
          • Objetivos especiacuteficos de la tesis
            • 15 Hipoacutetesis de investigacioacuten
            • 16 Alcances y limitaciones del trabajo de tesis
              • Capitulo 2 Marco Teoacuterico
                • 21 Modelado de sistemas de software
                • 22 Interfaz de usuario (Mecanismos de interaccioacuten)
                • 23 Lenguajes Visuales
                • 24 Programacioacuten orientada a objetos
                • 25 Lenguaje de Modelado Unificado (UML)
                  • Desarrollo de la herramienta
                    • 31 Disentildeo de la Arquitectura
                      • 311 Requisitos (Diagrama de Casos de uso)
                        • 312Modelo Conceptual
                        • 313Diagramas de clases
                        • 32 Elementos de la arquitectura
                          • 321 Microsoft Foundation Class (MFC)
                            • 322Arquitectura Documento Vista
                            • 323Integrando Ambientes en Visual c++
                              • 324 Interfaz de Muacuteltiples Documentos (MDI)
                                • 325Recursos Diaacutelogos Menus y Barras de Herramientas
                                  • 326 Notacioacuten estaacutendar
                                  • 327 Estructura de datos persistencia y recuperacioacuten
                                    • 328Patrones de disentildeo utilizados
                                      • 33 Diagrama de secuencias
                                        • 331Ciclo de vida del software
                                          • 34 Elementos atoacutemicos de la Gramaacutetica
                                            • 341 Representacioacuten visual
                                              • 35 Gramaacutetica desarrollada
                                              • 36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias
                                                  • Capitulo 4 Pruebas y Resultados
                                                    • 41 Recursos teacutecnicos utilizados
                                                    • 42 Descripcioacuten del plan de pruebas
                                                    • 43 Resultados
                                                      • 431 Caso
                                                      • 432 Caso2
                                                      • 433 Caso
                                                          • Conclusiones y trabajos futuros
                                                            • Trabajos futuros
                                                            • Referencias
                                                            • Anexo A Configuracioacuten de Microsoft Visual C+t
                                                              • Figura 11 - Arquitectura de la suite cenidet-UML
                                                              • Figura 21 -Programacioacuten Visual
                                                              • Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de
                                                              • Figura 32 -Diagrama de Casos de Uso para el S3C
                                                              • Figura 33 -Modelo Conceptual
                                                              • Figura 34 - Diagrama de Clases -Control del Diagrama -
                                                              • Figura 35 - Diagrama de Clases - Patroacuten Visitor -
                                                              • Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento
                                                              • Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)
                                                              • Figura 38 -Dialogo Caracteriacutesticas del Objeto
                                                              • Figura 39 -Dialogo Mensaje
                                                              • Figura 3 IO - Menuacute de los Diagramas de Secuencias (estaacutendar)
                                                              • Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias
                                                              • Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)
                                                              • Figura 313 - Serializacioacuten
                                                              • Figura 314 -Modelo de cascada del ciclo de vida del software
                                                              • Figura 41 - Resultado del caso de prueba
                                                              • Figura 42 -Resultado del caso de prueba
                                                              • Figura 43 -Resultado del caso de prueba
                                                              • Figura 44 -Resultado del caso de prueba
                                                              • Tabla 11 - Tabla comparativa
                                                              • Tabla 31 -Prefijos estaacutendar de identificadores
                                                              • Tabla 32 -Elementos atoacutemicos del lenguaje
                                                              • Tabla 41 - Resumen de los resultados de las pruebas realizadas

Desarrollo de la herramienta

9 Destruccioacuten del objeto (AutodestrucciOacuten)- Puede o no modelarse es representada con una X al final de la liacutenea de vida del objeto

Elementos aulomaacuteticos

1 Liacutenea de Vida- Representa la vida del objeto durante la interaccioacuten

2 Activacioacuten- Muestra el periacuteodo de tiempo en el cual el objeto alguna operacioacuten

341RepresentaciOacuten visual

Representacioacuten visual de los elementos atoacutemicos del lenguaje

Actor

_- A

Mensaje

Mensaje de Creacioacuten de

Objeto

ClaseObjeto

I

Mensaje de retorno

Mensaje de Destruccioacuten de

Objeto

abla 32 Element(

Activacioacuten

Mensaje con tiempo

Autodestruccioacuten

x

atoacutemicos del lengi

taacute realizz

Texto ===I (letra)+ (letra I

numero) letra= AZ I az numero = 09

I

Recursividad ~

I

i j e

io

38

u

Comentario

iexcl

Conector de Comentario

35 Gramaacutetica desarrollada

La gramaacutetica que se propone es una gramaacutetica visual del tipo relacional Una gramaacutetica relacional pertenece a las gramaacuteticas libres de contexto es una 6-iupla G (N C S R Attr P) donde

N es un conjunto finito de siacutembolos no terminales C es un conjunto de siacutembolos terminales S es un siacutembolo distinguido en N llamado siacutembolo inicial R es un conjunto finito de siacutembolos de relacioacuten Attr es un conjunto finito de siacutembolos de atributos P es un conjunto de producciones

Entonces definiendo nuestra gramaacutetica G (N C S R Attr P)

N = Diagrama GrupoClaseObjeto

S = Diagrama

R = mensaje mensajeTiempo mensajeRetomo mensajeAsincrono mensajecrea mensajeDestruye autodestruccioacuten recursividad

R

Attr = entrada salida entradacrea

39

Desarrollo de la herramienta

Definiendo la posicioacuten de los atributos en los elementos visuales

entradacrea ObetaClase

entrada

salida

P =

Diagrama I GrupoClaseObjeto (mensaje (mensajeRetorno

(salida 1) (entrada 2) ) (salida 2) (entrada 1) )

- Diagrama 0 GrupoClaseObjeto

(mensaje (mensaje (mensajeRetomo (mensajeRetomo (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entradacrea 2) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 1) ) (salida 1) (entrada 1) )

entrada

salida

40

Desarrollo de la herramienta

s

-

GrupoClaseObjeto - 1 1 I 2 (mensaje (mensaje (mensajeRetorno (mensajeRetorno (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entradacrea 2) ) (salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 1) ) (salida I ) (entrada I ) )

1 En las gramaacuteticas relacionales una produccioacuten estaacute acompantildeada de las posibles

relaciones que puedan generarse En la primera produccioacuten Diagrama produce a un Actor seguida de un GrupoClaseObjeto el Actor inicia la interaccioacuten con un mensaje y recibe el mensaje de retorno al finalizar la interaccioacuten La segunda y tercera produccioacuten son similares debido a que un GrupoClaseObjeto contiene dos ClaseObjeto que se relacionan de la misma forma

Existe un elemento de la gramaacutetica llamado Attr (Atributo) el cual define la parte de los elementos visuales donde se establecen las relaciones Se han determinado dos atributos (entrada y salida) que para nuestro propoacutesito estaraacuten establecidos en la liacutenea de vida de cada elemento visual (Actor y ClaseObjeto)

Los Comentarios y la Activacioacuten no se consideran en la gramaacutetica Los comentarios son libres de incluirse y relacionarse con cualquier elemento y relacioacuten mencionada anteriormente y la activacioacuten existe siempre que se presente un mensaje (o podriacutea omitirse) Estas consideraciones se realizaron para hacer auacuten maacutes faacutecil la gramaacutetica ya que si se trata de realizar un sistema las restricciones de estos elementos pueden mantenerse en el lenguaje de programacioacuten en el que se desarrolle el sistema

36

Precondiciones

El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias

1 El diagrama de Clases debe existir y estar completo 2 Debe existir un archivo con un diagrama de Warnier por cada diagrama de Clases y

con el mismo nombre de archivo (excepto la extensioacuten del archivo) 3 En el uacutenico diagrama de Warnier de cada Clase se deben modelar todos los meacutetodos

de la Clase 4 No realizar declaraciones de meacutetodos

41

Desarrollo de la herramienta

5 Debe existir un meacutetodo lsquomain()rsquo en el diagrama de Clases

Restricciones

Los meacutetodos deben mantener nombres distintos en las diferentes Clases

Metodologiacutea para la obtencioacuten automaacutetica de los Diagramas de Secuencias

1 Seleccionar el diagrama de Clases

2 Se construye una lista con los nombres de las Clases y los Meacutetodos

3 Se verifica si exista el meacutetodo lsquomain()rsquo en alguna Clase Se busca la existencia de una uacutenica Clase

a La Clase que contenga lsquomain()rsquo se va al inicio de la lista de Clases

b Si no existe lsquomain()rsquo SE TERMINA EL PROCESO

4 Se verifica la existencia de los archivos que contienen el Disentildeo Detallado de los meacutetodos en Wamier para cada una de las Clases si alguno falta SE TERMINA EL PROCESO

5 Se procesa cada uno de los modelos del Disentildeo Detallado de los Meacutetodos generando una lista de secuencias de llamadas por cada uno de los meacutetodos

6 Se verifica que cada llamada corresponda a alguacuten meacutetodo existente (del diagrama de Clases) De no existir ese meacutetodo la llamada entra a una estructura que

7 Se crea una lista de secuencia

a Se inicia con lsquomain()rsquo b Se recorre cada una de las llamadas de los meacutetodos c Se considera invaacutelido el caso de que un meacutetodo intente una llamada

recursiva al meacutetodo lsquomain()rsquo

8 Se muestra un diaacutelogo de resultados en el que se indican las llamadas que no se encnotraron definidas y que pueden ser Llamada a libreriacutea oacute Llamada Erroacutenea

42

Capiacutetulo 4

Prue6as y su6taaacuteos

En eacuteste capiacutetulo se da a conocer el detalle de las pruebas y de los resultados obtenidos Se describen los casos de prueba con los que se realizoacute la evaluacioacuten del sistema asiacute tambieacuten se presentan comentarios acerca de los resultados obtenidos

Pruebas y Resultados

41 Recursos teacutecnicos utilizados

Para llevar a cabo las pruebas al sistema S3C se utilizaron los siguientes equipos de Coacutemputo

Computadora de escritorio

256MB RAM Disco Duro 80G Monitor 17rdquo SAMSUNG

AMD Athlon XP 1600+ I4Ghz

Computadora de escritorio Intel Pentium 4 - 128MB RAM Disco Duro 40G Monitor 15rdquo i -

42 Descripcioacuten del plan de pruebas

Las pruebas establecen el Uacuteltimo paso desde donde es posible evaluar la calidad y descubrir los errores Las pruebas y la validacioacuten del software se utilizan para comprobar que el sistema cumple con las expectativas del usuario

En esta seccioacuten se describen los casos de prueba que se realizaron al prototipo de S3C en conjunto a la suite cenidet-UML Para cada uno de los casos se presenta el objetivo el procedimiento que se siguioacute para la prueba y se muestran los resultados obtenidos - _

Las pruebas a realizar son los siguientes

Caso 1 Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Caso 2 Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Wamier

Caso3 Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Wamier

Caso4 Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo 5

44

Pruebas y Resultados

43 Resultados

431 Caso 1

5 Y

IZ =

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoSirdquo 4 Seleccionar el archivo ldquoVENTASrdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 41 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

s3c iuevo Proyecto SCUM1

Diagrama de clases

lvendedor I L

3

salida

venta prod

4 venia-oferta vcntaprod =

salida 6

Figura 41 Resultado del caso de prueba 1

45

Pruebas y Resultados

432 Caso 2

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Warnier (almacenwar cajawar vendedorwar) que ya cxisten (del caso de prueba I )

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoNordquo 4 Agregar las siguientes Clases con los respectivos meacutetodos y atributos

a Claseldquovendedorrdquo Meacutetodos ldquoventa mainrdquo b Claseldquoalmacenrdquo Meacutetodos ldquoentrada salidardquo c Claseldquocajardquo Meacutetodos ldquoventagrodrdquo

5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 42 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

Diagrama de daseo lisgrama dcsccucncis

MOIDOC Anivo

venta prod

salida

1 Ycrdquo1a 2

I 4 vcrdquolD~o1cn venta prod gt

salida 6 i Figura 42 Resultado del caso de prueba 2

46

Pruebas y Resultados

r

433 Caso 3

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Warnier

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 43 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

5

Error al tratar de abrir el archivo A bZwar

Aceptar i

Faltan Archivos de Disentildeos Detallados de Meacutetodos 1 1 A No se puede crear el diagrama de secuencias

Figura 43 Resultado del caso de prueba 3

47

Pruebas y Resultados

434 Caso 4

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 44 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

lsquo I

~ _ i i _ l _ Repaado ~~ ~ ~ 6~ ampA Figura 44 Resultado del caso de prueba 4

48

Pruebas y Resultados

PRUEBA DESCNPCION CASO 1 Mostrar la funcionalidad del

Sistema S3C a partir de un

44 Anaacutelisis de Resultados

RESULTADOS Se comproboacute la correcta funcionalidad del Sistema S3C a partir de un diagrama

CASO 3

CASO4

I diagrama de Clases cxistcnte I de Clases existente CASO 2 I Mostrar la funcionalidad del I Sc comproboacute la corrccta funcionalidad

Sistema S3C a partir de un del Sistema S3C a partir de un diagrama diagrama de Clases que se de Clases que se construye al momento construye al momento Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el Secuencias si falta alguno de los diagrama de Secuencia si falta alguno diagramas de Warnier Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el secuencias si hace falta el meacutetodo diagrama de Secuencias al faltar el ldquomain ()rdquo meacutetodo ldquomain()rdquo

de los diagramas de Warnier

Los resultados obtenidos de cada uno de los casos establecidos demuestran que se validoacute la funcionalidad del prototipo con los requisitos definidos en el alcance de este proyecto

a lt

49

Conclusiones y Tru6ajos Futuros

Aquiacute se dan a conocer las conclusiones y se describen los posibles trabajos futuros para la continuacioacuten de eacuteste proyecto

F

51 Conclusiones

Conclusiones y trabajos futuros

Se ha creado un Ambiente Visual que permite obtener de forma automaacutetica los Diagramas de Secuencias en base a los diagramas de Clases y al disentildeo detallado de los meacutetodos descritos con diagramas de Warnier cumpliendo con los objetivos planteados para este trabajo

La tesis aporta principalmente La generacioacuten automaacutetica de los diagramas de secuencias y la eliminacioacuten de inconsistencias al mantener una validacioacuten directa de los diagramas de clases y los diagramas de Warnier que son utilizados

Esta validacioacuten es lograda a traveacutes del uso de la gramaacutetica visual relaciona1 que se ha definido (veacutease el capiacutetulo 3) Esta gramaacutetica visual establece reglas para la correcta construccioacuten de los diagramas de secuencias

P De esta manera se establece que la hipoacutetesis ldquoEs posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodosrdquo Es verdadera

52 Trabajos Futuros

Un Diagrama de Secuencias puede convertirse en un Diagrama de Colaboracioacuten por lo tanto un trabajo futuro es la construccioacuten automaacutetica de un Diagrama de Colaboracioacuten a partir de uno de Secuencias existente

Es posible calcular la meacutetrica de acoplamiento al tener un Diagrama de Secuencias construido

La Ingenieriacutea directa de un Diagrama de Secuencias estableciendo la validacioacuten en la construccioacuten de todos los elementos visuales que UML define

La propagacioacuten de las modificaciones de un Diagrama de Secuencias a los Diagramas de Clases y los Diagramas de Warnier

La modificacioacuten del coacutedigo fuente mediante los cambios establecidos en un Diagrama de Secuencias

51

[ALC03]

[BLA98]

[B0099]

[BOOOi]

[BR097]

[CHA90]

[DAN02]

[GLA02]

[HAC98]

[HER03]

4

Alcate1 Computer Associates International inc Electronic Data Systems Corporation Hewlett-Packard Company IBM Corporation I-Logix IntelliCorp Kabira Technologies Kennedy Carter Microsoft Corporation Object Management Group Oracle Corporation Project Technology Ptech Inc Rational Software Corporation Reich Technologies Softeam Taskon A S Telelogic Unisys Corporation ldquoOMG Unified Modeling Language Specificationrdquo Version 15 Unified Modeling Language 2003

Blaha Michael Rumbaugh James Premerlani William Eddy Frederick Lorensen William ldquoObject-oriented modeling and designrdquo Prentice Hall 484 Paacuteginas ISBN 0-13-629841-9 QA-769-03S-B53-19981998

Booch Grady Rumbaugh James Jacobson Ivar ldquoEl lenguaje unificado de modeladordquo Addison Wesley 432 Paacuteginas ISBN 84-7829-028-1 1999

Booch Grady Rumbaugh James Jacobson Ivar ldquoThe Unified Modeling Language User Guiderdquo Addison Wesley 2001

Brown David ldquoAn introduction to object-oriented analysis objects in plain Englishrdquo John Whiley amp Sons Inc 700 Paginas ISBN 0-471-1 1028-0 QA-769-035-B76-1997 1997

Chang Shi-Kuo ldquoVisual Languages and visual programmingrdquo Plenum Press 340 Paacuteginas ISBN 0-306-43428-8 QA-7665-V57-1990 1990

Daniels John ldquoModeling with a sense of purposerdquo Design - IEEE Software JanuaryEebmary 2002

Glasgow Universidad Reino Unido ldquoA UML Editor in Javardquo (lthttplstudentsdcsglaacuWstudentspainjfproject-reportproject-re port-htmV4thYearReporthtrnlgt 2002)

T Hackos JoAnn C Redish Janice ldquoUser and Task Analysis for Interface Designrdquo Wiley Computer Publishing 488 Paacuteginas ISBN QA-769-U83- H33-1998 1998

Hemaacutendez Velaacutezquez M ldquoIngenieriacutea inversa de coacutedigo fuente en C++ para la obtencioacuten de su disentildeordquo Tesis AT-379 (03-0334) 2003

Conceptos generales

[HIX93]

[JAC93]

[JAC99]

[JOY98]

[LAR97]

[MAR]

[MIC99]

[MIC02]

[MOU98]

Hix Deborah Hartson H Rex ldquoDeveloping user interfacesrdquo 381 Paacuteginas ISBN 0-471-57813-4 QA-769-U83-H59-1993 1993

Jacobson Ivar Christerson Magnus Jonsson Patrik Overgaard Gunnar ldquoObject oriented software engineeringrdquo Addison Wesley ISBN 0-20 1 - 54435-0 QA-7676-D47-J63-1993 1993

Jacobson Ivar Booch Grady Rumbaugh James ldquoEl proceso unificado de desarrollo de softwarerdquo Addison Wesley 438 Paacuteginas ISBN 84-7829-036- 2 1999

Joyanes Aguilar Luis ldquoProgramacioacuten orientada a objetosrdquo McGruw Hill ISBN 84-481-0590-7 1998

Larman Craig ldquoAplying UML and Patternsrdquo Prentice Hull 507 Paacuteginas ISBN 0-13-748880-7 QA-769-035-L37-1997 1997

Marriot Kim Meyer Bemd ldquoVisual Language Theoryrdquo Springer 381 Paacuteginas P-935-V567-1998 1998

Microsoft ldquoMicrosoft Visual C++ 6 manual del programadorrdquo McGraw Hill ISBN 84-481-2127-9 QA-7673-Cl53-23718-1999 1999

Microsoft ldquoVisiordquo (lthttpwwwmicrosoftcomofficevisiogt 2002)

B Mourao Luis X ldquoUniversal Modeling Language Part 11 UML Notation - Case Sequence and Collaboration Diagramsrdquo Lan Times Magazine (~httpwwwlantimescomltpartsdiscussdiscuss6Ohtm~) 1998

No Magic ldquoMagicDrawrdquo (lthttpwwwmagicdrawcomgt 2002)

Object Insight ldquoJvisionrdquo (lthttpwwwobject-insightcomgt 2002)

Rational Software Microsoft I Hewlett-Packard Oracle Sterling Software MCI Systemhouse Unisys ICON Computing IntelliCorp i-Logix IBM ObjectTime Platinum Technology Ptech Taskon Reich Technologies Sofieam ldquoUML Summaryrdquo Version 11 Unified Modeling Language 1997

Rational ldquoRational Roserdquo (lthttpwwwrationalcomproductosrosegt 2002)

Rikki Kirzner ldquoAnalysis Modeling and Design Tools Market Forecast and Analysis 2001-2005rdquo Bulletin Published Under Services Application Design and Construction Tools Application Development and Deployment Strategies Documento Nuacutemero 24809 Junio 2001

53

Conceptos generales

[RIM92] Rimrner Steve ldquoGraphical user interface programmingrdquo 423 Paacuteginas

1992

Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language reference manualrdquo Addison Wesley 550 Paacuteginas ISBN 0-201-

ISBN 0-8306-2475-9 ISBN 0-8306-2472-4 (pbk) QA-769-083-R55G

[RUM99]

30998-X QA-7676-D47-R85-1999 1999

[RUM299] Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language user guiderdquo Addisoiz Wesley 482 Paacuteginas ISBN 0-201 -57 168-4 QA-7676-D47-B66-1999 1999

[SMA02] SmartDraw ldquoSmartDrawrdquo (lthttpwwwsmartdrawcomgt 2002)

[SHU88] 9 - Shu Nun C ldquoVisual Programmingrdquo Van Nostrand Reinhold ISBN 0-422- 28014-9 ISBN 0-422-01 164-4 QA-7665-S55 1988

[THI90] Thimbleby Harold ldquoUser Interface Designrdquo Acm press 470 Paacuteginas ISBN 0-201 -41 61 8-2 QA-769U83-T772~- 1990 1990

[WENO2] Wences Diaz MF ldquoModelo de Ingenieriacutea Inversa para la obtencioacuten de disentildeo detallado basado en LEVISSrdquo Tesis (02-0014) 2002

54

Anexo A

Conampuracioacuten de Microsoft Vkua[C++ 6 O

Este anexo indica las configuraciones que se utilizaron para la compilacioacuten de SCUML y s3c

Configuracioacuten de Microsoft Visual c++ 60

Debido a la integracioacuten de los proyectos de InverSOODA e InverDDVi con S3C se cumplioacute con los requisitos previos de ambos proyectos

El compilador usado en el proyecto fue el Microsoft Visual C++ 60

Para el cumplimiento con la funcionalidad de InverSOODA se instaloacute el ANTLR la versioacuten 271 Se descargoacute del sitio l i l l ~ ~ ~ ~ ~ ~ t l ~ l ~ - ~ t - ~ la versioacuten mencionada en un archivo comprimido (en formato zip) Se colocoacute el paquete descomprimido en el directorio ldquoDIANTLR-271 I rdquo

Recomiendo ampliamente que el directorio principal de ANTLR se copie en el directorio raiacutez de cualquier unidad de disco debido a que experimenteacute problemas de compilacioacuten cuando ANTLR no se encontraba en el directorio raiacutez

Io015

Source Browser AlttF12 I u c Ersquo V I

Visual Component Mgnager

- - ~ ~ ~ ~~

P2 Registrar control

A Contenedor de prueba de controles ActiveX

A Usor de objetos OLE y COM

Buacutesqueda de errores

A Y++ MFC Iracer

Customize options

~ - q- ~ Macro

Eecord Quick Macro Cbl+ShiR+R Pay Quick Macro Ctrl+ShiR+P

En el menuacute Tools (Herramientas) seleccione el sub-menuacute Options ltopcionesgt

56

Configuracioacuten de Microsoft Visual C++ 60

En la siguiente ventana de diaacutelogo debe agregar la direccioacuten en donde se encuentra el ANTLR

Agregar la ruta del directorio de ANTLR hasta el subdirectorio

libcpp

Editor I Tabs I Debug I Compatibility 1 Build Dneclolies I a I Chow directories for - Platfolm -

- Directories I x ) 4 jWin32 -] llnclude files

m cancd I

57

Configuracioacuten de Microsoft Visual C t+ 60

Se ha creado una libreriacutea (anrlrliblib) de ANTLR la cual ya estaacute situada en el directorio del proyecto SCUML (ISCUML) y no debe ser movida o eliminada

I

Geneial 1 Debug I CC++ Link I Category

Output file name bebugSCUMLexe

Objectljibrary modules 4 anllrliblib

li Generate debug lnfo r Ignore all defaull lbaries D ~ i n k j n ~ ~ ~ t a n ~ r ~ e n e r ~ ~ ~ mapfile

r Enable psafilrng

Proiec1 Ootionn

pq Cancel 1 Libreriacutea de ANTLR que debe existir 1 I para que se compile correctamente

58

Anexo B

~ u iacute aacute raacutepida de uso deC Sistema S3C

5 Este anexo indica de forma raacutepida la manera de utilizar S3C para crear un diagrama de secuencias de forma automaacutetica

Guiacutea Raacutepida de uso del Sistema S3C i

Para indicar la creacioacuten de un diagrama de secuencias en forma automaacutetica se debe ir a la barra del costado izquierdo y presionar ldquoNuevo Proyecto SCUMLrdquo

I s3c I ~ Nuevo Proyecto SCUML ~ _ _ - I Diagrama de clases ~ Diagrama de secuencias 1 MDI DOC Activo

-

Apareceraacute un documento llamado ldquoSCUMLV en donde el simbolo corresponde a un numero consecutivo iniciando desde 1 (uno)

$ e Despueacutes se presiona ldquoDiagrama de clasesrdquo Habraacute que para indicarle al sistema si se requiere abrir un diagrama de clases existente o realizar uno nuevo

i

iquestAbrir un documento existente

No Cardquo~ear

AI presionar ldquoSirdquo se debe indicar cual es el archivo del diagrama de Clases en el cuadro de diaacutelogo siguiente

~~ - 11dMis documentos rsquo 2 M i P C i lsquo h s sitios de red

I

AI presionar ldquoNordquo en ldquoAbrir un documento existenterdquo se nos mostraraacute un documento vacio para crear un diagrama de clases

60

Guiacutea Raacutepida de uso del Sistema S3C

Para ambas opciones se requiere que los diagramas de Wamier ya se encuentren construidos Y para continuar el proccso se selecciona el documento ldquoSCUMLVrsquo creado al inicio y despueacutes presionar el botoacuten nombrado ldquoDiagrama de secuenciasrdquo localizado en la barra de hcrraiiiicntas del costado izquierdo

Ha iniciado el proceso de construccioacuten del diagrama de secuencias Si no existen errores al terminar el proceso se le mostraraacute un cuadro de diaacutelogo llamado ldquoResultadosrdquo en donde le mostraraacute las llamadas de las que no localizoacute su definicioacuten

- - -

Cancel 1 D e las siguientes llamadas es posible que esten mal escritas o peitenezcan a la libreiia del Lenguaie Verifique ya que no se encontraron sus definiciones

A continuacioacuten se mencionan los posibles errores que finalizan el proceso de la creacioacuten automaacutetica de los diagramas de secuencias en S3C

Cuando no exista un meacutetodo lsquomainrsquo definido en el diagrama de clases

No se encontro el meacutetodo lsquomain()rsquo que inicie la secuencia I A No se puede crear el diagrama de secuencias

p==amp=q

61

Guia Raacutepida de uso del Sistema S3C

Cuando se definan niultiples metodos lsquoinainrsquo en el diagrama de clases

Multiples meacutetodos lsquomainOlsquo Imposible decidir el inicio de secuencia

Aceptar i

Si un meacutetodo definido en Wamier realiza una llamada a lsquomainrsquo se cancelara el proceso

Llamada NO VALIDA al meacutetodo principal main

(iAcp-j(

4 i

CI Y rdquoldquoldquoI i 11 1-T

IZNTRO Gt INFORMACION

62

  • Tabla de Contenido
  • Listado de Figuras
  • Listado de Tablas
  • Notacioacuten
  • Introduccioacuten
  • Capitulo 1 Conceptos Generales
    • 11 Antecedentes
    • 12 Trabajos relacionados
      • 121 Tabla comparativa
        • 13 Definicioacuten del problema
        • 14 Objetivo de la Tesis
          • Objetivos especiacuteficos de la tesis
            • 15 Hipoacutetesis de investigacioacuten
            • 16 Alcances y limitaciones del trabajo de tesis
              • Capitulo 2 Marco Teoacuterico
                • 21 Modelado de sistemas de software
                • 22 Interfaz de usuario (Mecanismos de interaccioacuten)
                • 23 Lenguajes Visuales
                • 24 Programacioacuten orientada a objetos
                • 25 Lenguaje de Modelado Unificado (UML)
                  • Desarrollo de la herramienta
                    • 31 Disentildeo de la Arquitectura
                      • 311 Requisitos (Diagrama de Casos de uso)
                        • 312Modelo Conceptual
                        • 313Diagramas de clases
                        • 32 Elementos de la arquitectura
                          • 321 Microsoft Foundation Class (MFC)
                            • 322Arquitectura Documento Vista
                            • 323Integrando Ambientes en Visual c++
                              • 324 Interfaz de Muacuteltiples Documentos (MDI)
                                • 325Recursos Diaacutelogos Menus y Barras de Herramientas
                                  • 326 Notacioacuten estaacutendar
                                  • 327 Estructura de datos persistencia y recuperacioacuten
                                    • 328Patrones de disentildeo utilizados
                                      • 33 Diagrama de secuencias
                                        • 331Ciclo de vida del software
                                          • 34 Elementos atoacutemicos de la Gramaacutetica
                                            • 341 Representacioacuten visual
                                              • 35 Gramaacutetica desarrollada
                                              • 36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias
                                                  • Capitulo 4 Pruebas y Resultados
                                                    • 41 Recursos teacutecnicos utilizados
                                                    • 42 Descripcioacuten del plan de pruebas
                                                    • 43 Resultados
                                                      • 431 Caso
                                                      • 432 Caso2
                                                      • 433 Caso
                                                          • Conclusiones y trabajos futuros
                                                            • Trabajos futuros
                                                            • Referencias
                                                            • Anexo A Configuracioacuten de Microsoft Visual C+t
                                                              • Figura 11 - Arquitectura de la suite cenidet-UML
                                                              • Figura 21 -Programacioacuten Visual
                                                              • Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de
                                                              • Figura 32 -Diagrama de Casos de Uso para el S3C
                                                              • Figura 33 -Modelo Conceptual
                                                              • Figura 34 - Diagrama de Clases -Control del Diagrama -
                                                              • Figura 35 - Diagrama de Clases - Patroacuten Visitor -
                                                              • Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento
                                                              • Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)
                                                              • Figura 38 -Dialogo Caracteriacutesticas del Objeto
                                                              • Figura 39 -Dialogo Mensaje
                                                              • Figura 3 IO - Menuacute de los Diagramas de Secuencias (estaacutendar)
                                                              • Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias
                                                              • Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)
                                                              • Figura 313 - Serializacioacuten
                                                              • Figura 314 -Modelo de cascada del ciclo de vida del software
                                                              • Figura 41 - Resultado del caso de prueba
                                                              • Figura 42 -Resultado del caso de prueba
                                                              • Figura 43 -Resultado del caso de prueba
                                                              • Figura 44 -Resultado del caso de prueba
                                                              • Tabla 11 - Tabla comparativa
                                                              • Tabla 31 -Prefijos estaacutendar de identificadores
                                                              • Tabla 32 -Elementos atoacutemicos del lenguaje
                                                              • Tabla 41 - Resumen de los resultados de las pruebas realizadas

u

Comentario

iexcl

Conector de Comentario

35 Gramaacutetica desarrollada

La gramaacutetica que se propone es una gramaacutetica visual del tipo relacional Una gramaacutetica relacional pertenece a las gramaacuteticas libres de contexto es una 6-iupla G (N C S R Attr P) donde

N es un conjunto finito de siacutembolos no terminales C es un conjunto de siacutembolos terminales S es un siacutembolo distinguido en N llamado siacutembolo inicial R es un conjunto finito de siacutembolos de relacioacuten Attr es un conjunto finito de siacutembolos de atributos P es un conjunto de producciones

Entonces definiendo nuestra gramaacutetica G (N C S R Attr P)

N = Diagrama GrupoClaseObjeto

S = Diagrama

R = mensaje mensajeTiempo mensajeRetomo mensajeAsincrono mensajecrea mensajeDestruye autodestruccioacuten recursividad

R

Attr = entrada salida entradacrea

39

Desarrollo de la herramienta

Definiendo la posicioacuten de los atributos en los elementos visuales

entradacrea ObetaClase

entrada

salida

P =

Diagrama I GrupoClaseObjeto (mensaje (mensajeRetorno

(salida 1) (entrada 2) ) (salida 2) (entrada 1) )

- Diagrama 0 GrupoClaseObjeto

(mensaje (mensaje (mensajeRetomo (mensajeRetomo (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entradacrea 2) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 1) ) (salida 1) (entrada 1) )

entrada

salida

40

Desarrollo de la herramienta

s

-

GrupoClaseObjeto - 1 1 I 2 (mensaje (mensaje (mensajeRetorno (mensajeRetorno (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entradacrea 2) ) (salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 1) ) (salida I ) (entrada I ) )

1 En las gramaacuteticas relacionales una produccioacuten estaacute acompantildeada de las posibles

relaciones que puedan generarse En la primera produccioacuten Diagrama produce a un Actor seguida de un GrupoClaseObjeto el Actor inicia la interaccioacuten con un mensaje y recibe el mensaje de retorno al finalizar la interaccioacuten La segunda y tercera produccioacuten son similares debido a que un GrupoClaseObjeto contiene dos ClaseObjeto que se relacionan de la misma forma

Existe un elemento de la gramaacutetica llamado Attr (Atributo) el cual define la parte de los elementos visuales donde se establecen las relaciones Se han determinado dos atributos (entrada y salida) que para nuestro propoacutesito estaraacuten establecidos en la liacutenea de vida de cada elemento visual (Actor y ClaseObjeto)

Los Comentarios y la Activacioacuten no se consideran en la gramaacutetica Los comentarios son libres de incluirse y relacionarse con cualquier elemento y relacioacuten mencionada anteriormente y la activacioacuten existe siempre que se presente un mensaje (o podriacutea omitirse) Estas consideraciones se realizaron para hacer auacuten maacutes faacutecil la gramaacutetica ya que si se trata de realizar un sistema las restricciones de estos elementos pueden mantenerse en el lenguaje de programacioacuten en el que se desarrolle el sistema

36

Precondiciones

El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias

1 El diagrama de Clases debe existir y estar completo 2 Debe existir un archivo con un diagrama de Warnier por cada diagrama de Clases y

con el mismo nombre de archivo (excepto la extensioacuten del archivo) 3 En el uacutenico diagrama de Warnier de cada Clase se deben modelar todos los meacutetodos

de la Clase 4 No realizar declaraciones de meacutetodos

41

Desarrollo de la herramienta

5 Debe existir un meacutetodo lsquomain()rsquo en el diagrama de Clases

Restricciones

Los meacutetodos deben mantener nombres distintos en las diferentes Clases

Metodologiacutea para la obtencioacuten automaacutetica de los Diagramas de Secuencias

1 Seleccionar el diagrama de Clases

2 Se construye una lista con los nombres de las Clases y los Meacutetodos

3 Se verifica si exista el meacutetodo lsquomain()rsquo en alguna Clase Se busca la existencia de una uacutenica Clase

a La Clase que contenga lsquomain()rsquo se va al inicio de la lista de Clases

b Si no existe lsquomain()rsquo SE TERMINA EL PROCESO

4 Se verifica la existencia de los archivos que contienen el Disentildeo Detallado de los meacutetodos en Wamier para cada una de las Clases si alguno falta SE TERMINA EL PROCESO

5 Se procesa cada uno de los modelos del Disentildeo Detallado de los Meacutetodos generando una lista de secuencias de llamadas por cada uno de los meacutetodos

6 Se verifica que cada llamada corresponda a alguacuten meacutetodo existente (del diagrama de Clases) De no existir ese meacutetodo la llamada entra a una estructura que

7 Se crea una lista de secuencia

a Se inicia con lsquomain()rsquo b Se recorre cada una de las llamadas de los meacutetodos c Se considera invaacutelido el caso de que un meacutetodo intente una llamada

recursiva al meacutetodo lsquomain()rsquo

8 Se muestra un diaacutelogo de resultados en el que se indican las llamadas que no se encnotraron definidas y que pueden ser Llamada a libreriacutea oacute Llamada Erroacutenea

42

Capiacutetulo 4

Prue6as y su6taaacuteos

En eacuteste capiacutetulo se da a conocer el detalle de las pruebas y de los resultados obtenidos Se describen los casos de prueba con los que se realizoacute la evaluacioacuten del sistema asiacute tambieacuten se presentan comentarios acerca de los resultados obtenidos

Pruebas y Resultados

41 Recursos teacutecnicos utilizados

Para llevar a cabo las pruebas al sistema S3C se utilizaron los siguientes equipos de Coacutemputo

Computadora de escritorio

256MB RAM Disco Duro 80G Monitor 17rdquo SAMSUNG

AMD Athlon XP 1600+ I4Ghz

Computadora de escritorio Intel Pentium 4 - 128MB RAM Disco Duro 40G Monitor 15rdquo i -

42 Descripcioacuten del plan de pruebas

Las pruebas establecen el Uacuteltimo paso desde donde es posible evaluar la calidad y descubrir los errores Las pruebas y la validacioacuten del software se utilizan para comprobar que el sistema cumple con las expectativas del usuario

En esta seccioacuten se describen los casos de prueba que se realizaron al prototipo de S3C en conjunto a la suite cenidet-UML Para cada uno de los casos se presenta el objetivo el procedimiento que se siguioacute para la prueba y se muestran los resultados obtenidos - _

Las pruebas a realizar son los siguientes

Caso 1 Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Caso 2 Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Wamier

Caso3 Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Wamier

Caso4 Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo 5

44

Pruebas y Resultados

43 Resultados

431 Caso 1

5 Y

IZ =

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoSirdquo 4 Seleccionar el archivo ldquoVENTASrdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 41 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

s3c iuevo Proyecto SCUM1

Diagrama de clases

lvendedor I L

3

salida

venta prod

4 venia-oferta vcntaprod =

salida 6

Figura 41 Resultado del caso de prueba 1

45

Pruebas y Resultados

432 Caso 2

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Warnier (almacenwar cajawar vendedorwar) que ya cxisten (del caso de prueba I )

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoNordquo 4 Agregar las siguientes Clases con los respectivos meacutetodos y atributos

a Claseldquovendedorrdquo Meacutetodos ldquoventa mainrdquo b Claseldquoalmacenrdquo Meacutetodos ldquoentrada salidardquo c Claseldquocajardquo Meacutetodos ldquoventagrodrdquo

5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 42 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

Diagrama de daseo lisgrama dcsccucncis

MOIDOC Anivo

venta prod

salida

1 Ycrdquo1a 2

I 4 vcrdquolD~o1cn venta prod gt

salida 6 i Figura 42 Resultado del caso de prueba 2

46

Pruebas y Resultados

r

433 Caso 3

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Warnier

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 43 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

5

Error al tratar de abrir el archivo A bZwar

Aceptar i

Faltan Archivos de Disentildeos Detallados de Meacutetodos 1 1 A No se puede crear el diagrama de secuencias

Figura 43 Resultado del caso de prueba 3

47

Pruebas y Resultados

434 Caso 4

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 44 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

lsquo I

~ _ i i _ l _ Repaado ~~ ~ ~ 6~ ampA Figura 44 Resultado del caso de prueba 4

48

Pruebas y Resultados

PRUEBA DESCNPCION CASO 1 Mostrar la funcionalidad del

Sistema S3C a partir de un

44 Anaacutelisis de Resultados

RESULTADOS Se comproboacute la correcta funcionalidad del Sistema S3C a partir de un diagrama

CASO 3

CASO4

I diagrama de Clases cxistcnte I de Clases existente CASO 2 I Mostrar la funcionalidad del I Sc comproboacute la corrccta funcionalidad

Sistema S3C a partir de un del Sistema S3C a partir de un diagrama diagrama de Clases que se de Clases que se construye al momento construye al momento Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el Secuencias si falta alguno de los diagrama de Secuencia si falta alguno diagramas de Warnier Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el secuencias si hace falta el meacutetodo diagrama de Secuencias al faltar el ldquomain ()rdquo meacutetodo ldquomain()rdquo

de los diagramas de Warnier

Los resultados obtenidos de cada uno de los casos establecidos demuestran que se validoacute la funcionalidad del prototipo con los requisitos definidos en el alcance de este proyecto

a lt

49

Conclusiones y Tru6ajos Futuros

Aquiacute se dan a conocer las conclusiones y se describen los posibles trabajos futuros para la continuacioacuten de eacuteste proyecto

F

51 Conclusiones

Conclusiones y trabajos futuros

Se ha creado un Ambiente Visual que permite obtener de forma automaacutetica los Diagramas de Secuencias en base a los diagramas de Clases y al disentildeo detallado de los meacutetodos descritos con diagramas de Warnier cumpliendo con los objetivos planteados para este trabajo

La tesis aporta principalmente La generacioacuten automaacutetica de los diagramas de secuencias y la eliminacioacuten de inconsistencias al mantener una validacioacuten directa de los diagramas de clases y los diagramas de Warnier que son utilizados

Esta validacioacuten es lograda a traveacutes del uso de la gramaacutetica visual relaciona1 que se ha definido (veacutease el capiacutetulo 3) Esta gramaacutetica visual establece reglas para la correcta construccioacuten de los diagramas de secuencias

P De esta manera se establece que la hipoacutetesis ldquoEs posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodosrdquo Es verdadera

52 Trabajos Futuros

Un Diagrama de Secuencias puede convertirse en un Diagrama de Colaboracioacuten por lo tanto un trabajo futuro es la construccioacuten automaacutetica de un Diagrama de Colaboracioacuten a partir de uno de Secuencias existente

Es posible calcular la meacutetrica de acoplamiento al tener un Diagrama de Secuencias construido

La Ingenieriacutea directa de un Diagrama de Secuencias estableciendo la validacioacuten en la construccioacuten de todos los elementos visuales que UML define

La propagacioacuten de las modificaciones de un Diagrama de Secuencias a los Diagramas de Clases y los Diagramas de Warnier

La modificacioacuten del coacutedigo fuente mediante los cambios establecidos en un Diagrama de Secuencias

51

[ALC03]

[BLA98]

[B0099]

[BOOOi]

[BR097]

[CHA90]

[DAN02]

[GLA02]

[HAC98]

[HER03]

4

Alcate1 Computer Associates International inc Electronic Data Systems Corporation Hewlett-Packard Company IBM Corporation I-Logix IntelliCorp Kabira Technologies Kennedy Carter Microsoft Corporation Object Management Group Oracle Corporation Project Technology Ptech Inc Rational Software Corporation Reich Technologies Softeam Taskon A S Telelogic Unisys Corporation ldquoOMG Unified Modeling Language Specificationrdquo Version 15 Unified Modeling Language 2003

Blaha Michael Rumbaugh James Premerlani William Eddy Frederick Lorensen William ldquoObject-oriented modeling and designrdquo Prentice Hall 484 Paacuteginas ISBN 0-13-629841-9 QA-769-03S-B53-19981998

Booch Grady Rumbaugh James Jacobson Ivar ldquoEl lenguaje unificado de modeladordquo Addison Wesley 432 Paacuteginas ISBN 84-7829-028-1 1999

Booch Grady Rumbaugh James Jacobson Ivar ldquoThe Unified Modeling Language User Guiderdquo Addison Wesley 2001

Brown David ldquoAn introduction to object-oriented analysis objects in plain Englishrdquo John Whiley amp Sons Inc 700 Paginas ISBN 0-471-1 1028-0 QA-769-035-B76-1997 1997

Chang Shi-Kuo ldquoVisual Languages and visual programmingrdquo Plenum Press 340 Paacuteginas ISBN 0-306-43428-8 QA-7665-V57-1990 1990

Daniels John ldquoModeling with a sense of purposerdquo Design - IEEE Software JanuaryEebmary 2002

Glasgow Universidad Reino Unido ldquoA UML Editor in Javardquo (lthttplstudentsdcsglaacuWstudentspainjfproject-reportproject-re port-htmV4thYearReporthtrnlgt 2002)

T Hackos JoAnn C Redish Janice ldquoUser and Task Analysis for Interface Designrdquo Wiley Computer Publishing 488 Paacuteginas ISBN QA-769-U83- H33-1998 1998

Hemaacutendez Velaacutezquez M ldquoIngenieriacutea inversa de coacutedigo fuente en C++ para la obtencioacuten de su disentildeordquo Tesis AT-379 (03-0334) 2003

Conceptos generales

[HIX93]

[JAC93]

[JAC99]

[JOY98]

[LAR97]

[MAR]

[MIC99]

[MIC02]

[MOU98]

Hix Deborah Hartson H Rex ldquoDeveloping user interfacesrdquo 381 Paacuteginas ISBN 0-471-57813-4 QA-769-U83-H59-1993 1993

Jacobson Ivar Christerson Magnus Jonsson Patrik Overgaard Gunnar ldquoObject oriented software engineeringrdquo Addison Wesley ISBN 0-20 1 - 54435-0 QA-7676-D47-J63-1993 1993

Jacobson Ivar Booch Grady Rumbaugh James ldquoEl proceso unificado de desarrollo de softwarerdquo Addison Wesley 438 Paacuteginas ISBN 84-7829-036- 2 1999

Joyanes Aguilar Luis ldquoProgramacioacuten orientada a objetosrdquo McGruw Hill ISBN 84-481-0590-7 1998

Larman Craig ldquoAplying UML and Patternsrdquo Prentice Hull 507 Paacuteginas ISBN 0-13-748880-7 QA-769-035-L37-1997 1997

Marriot Kim Meyer Bemd ldquoVisual Language Theoryrdquo Springer 381 Paacuteginas P-935-V567-1998 1998

Microsoft ldquoMicrosoft Visual C++ 6 manual del programadorrdquo McGraw Hill ISBN 84-481-2127-9 QA-7673-Cl53-23718-1999 1999

Microsoft ldquoVisiordquo (lthttpwwwmicrosoftcomofficevisiogt 2002)

B Mourao Luis X ldquoUniversal Modeling Language Part 11 UML Notation - Case Sequence and Collaboration Diagramsrdquo Lan Times Magazine (~httpwwwlantimescomltpartsdiscussdiscuss6Ohtm~) 1998

No Magic ldquoMagicDrawrdquo (lthttpwwwmagicdrawcomgt 2002)

Object Insight ldquoJvisionrdquo (lthttpwwwobject-insightcomgt 2002)

Rational Software Microsoft I Hewlett-Packard Oracle Sterling Software MCI Systemhouse Unisys ICON Computing IntelliCorp i-Logix IBM ObjectTime Platinum Technology Ptech Taskon Reich Technologies Sofieam ldquoUML Summaryrdquo Version 11 Unified Modeling Language 1997

Rational ldquoRational Roserdquo (lthttpwwwrationalcomproductosrosegt 2002)

Rikki Kirzner ldquoAnalysis Modeling and Design Tools Market Forecast and Analysis 2001-2005rdquo Bulletin Published Under Services Application Design and Construction Tools Application Development and Deployment Strategies Documento Nuacutemero 24809 Junio 2001

53

Conceptos generales

[RIM92] Rimrner Steve ldquoGraphical user interface programmingrdquo 423 Paacuteginas

1992

Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language reference manualrdquo Addison Wesley 550 Paacuteginas ISBN 0-201-

ISBN 0-8306-2475-9 ISBN 0-8306-2472-4 (pbk) QA-769-083-R55G

[RUM99]

30998-X QA-7676-D47-R85-1999 1999

[RUM299] Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language user guiderdquo Addisoiz Wesley 482 Paacuteginas ISBN 0-201 -57 168-4 QA-7676-D47-B66-1999 1999

[SMA02] SmartDraw ldquoSmartDrawrdquo (lthttpwwwsmartdrawcomgt 2002)

[SHU88] 9 - Shu Nun C ldquoVisual Programmingrdquo Van Nostrand Reinhold ISBN 0-422- 28014-9 ISBN 0-422-01 164-4 QA-7665-S55 1988

[THI90] Thimbleby Harold ldquoUser Interface Designrdquo Acm press 470 Paacuteginas ISBN 0-201 -41 61 8-2 QA-769U83-T772~- 1990 1990

[WENO2] Wences Diaz MF ldquoModelo de Ingenieriacutea Inversa para la obtencioacuten de disentildeo detallado basado en LEVISSrdquo Tesis (02-0014) 2002

54

Anexo A

Conampuracioacuten de Microsoft Vkua[C++ 6 O

Este anexo indica las configuraciones que se utilizaron para la compilacioacuten de SCUML y s3c

Configuracioacuten de Microsoft Visual c++ 60

Debido a la integracioacuten de los proyectos de InverSOODA e InverDDVi con S3C se cumplioacute con los requisitos previos de ambos proyectos

El compilador usado en el proyecto fue el Microsoft Visual C++ 60

Para el cumplimiento con la funcionalidad de InverSOODA se instaloacute el ANTLR la versioacuten 271 Se descargoacute del sitio l i l l ~ ~ ~ ~ ~ ~ t l ~ l ~ - ~ t - ~ la versioacuten mencionada en un archivo comprimido (en formato zip) Se colocoacute el paquete descomprimido en el directorio ldquoDIANTLR-271 I rdquo

Recomiendo ampliamente que el directorio principal de ANTLR se copie en el directorio raiacutez de cualquier unidad de disco debido a que experimenteacute problemas de compilacioacuten cuando ANTLR no se encontraba en el directorio raiacutez

Io015

Source Browser AlttF12 I u c Ersquo V I

Visual Component Mgnager

- - ~ ~ ~ ~~

P2 Registrar control

A Contenedor de prueba de controles ActiveX

A Usor de objetos OLE y COM

Buacutesqueda de errores

A Y++ MFC Iracer

Customize options

~ - q- ~ Macro

Eecord Quick Macro Cbl+ShiR+R Pay Quick Macro Ctrl+ShiR+P

En el menuacute Tools (Herramientas) seleccione el sub-menuacute Options ltopcionesgt

56

Configuracioacuten de Microsoft Visual C++ 60

En la siguiente ventana de diaacutelogo debe agregar la direccioacuten en donde se encuentra el ANTLR

Agregar la ruta del directorio de ANTLR hasta el subdirectorio

libcpp

Editor I Tabs I Debug I Compatibility 1 Build Dneclolies I a I Chow directories for - Platfolm -

- Directories I x ) 4 jWin32 -] llnclude files

m cancd I

57

Configuracioacuten de Microsoft Visual C t+ 60

Se ha creado una libreriacutea (anrlrliblib) de ANTLR la cual ya estaacute situada en el directorio del proyecto SCUML (ISCUML) y no debe ser movida o eliminada

I

Geneial 1 Debug I CC++ Link I Category

Output file name bebugSCUMLexe

Objectljibrary modules 4 anllrliblib

li Generate debug lnfo r Ignore all defaull lbaries D ~ i n k j n ~ ~ ~ t a n ~ r ~ e n e r ~ ~ ~ mapfile

r Enable psafilrng

Proiec1 Ootionn

pq Cancel 1 Libreriacutea de ANTLR que debe existir 1 I para que se compile correctamente

58

Anexo B

~ u iacute aacute raacutepida de uso deC Sistema S3C

5 Este anexo indica de forma raacutepida la manera de utilizar S3C para crear un diagrama de secuencias de forma automaacutetica

Guiacutea Raacutepida de uso del Sistema S3C i

Para indicar la creacioacuten de un diagrama de secuencias en forma automaacutetica se debe ir a la barra del costado izquierdo y presionar ldquoNuevo Proyecto SCUMLrdquo

I s3c I ~ Nuevo Proyecto SCUML ~ _ _ - I Diagrama de clases ~ Diagrama de secuencias 1 MDI DOC Activo

-

Apareceraacute un documento llamado ldquoSCUMLV en donde el simbolo corresponde a un numero consecutivo iniciando desde 1 (uno)

$ e Despueacutes se presiona ldquoDiagrama de clasesrdquo Habraacute que para indicarle al sistema si se requiere abrir un diagrama de clases existente o realizar uno nuevo

i

iquestAbrir un documento existente

No Cardquo~ear

AI presionar ldquoSirdquo se debe indicar cual es el archivo del diagrama de Clases en el cuadro de diaacutelogo siguiente

~~ - 11dMis documentos rsquo 2 M i P C i lsquo h s sitios de red

I

AI presionar ldquoNordquo en ldquoAbrir un documento existenterdquo se nos mostraraacute un documento vacio para crear un diagrama de clases

60

Guiacutea Raacutepida de uso del Sistema S3C

Para ambas opciones se requiere que los diagramas de Wamier ya se encuentren construidos Y para continuar el proccso se selecciona el documento ldquoSCUMLVrsquo creado al inicio y despueacutes presionar el botoacuten nombrado ldquoDiagrama de secuenciasrdquo localizado en la barra de hcrraiiiicntas del costado izquierdo

Ha iniciado el proceso de construccioacuten del diagrama de secuencias Si no existen errores al terminar el proceso se le mostraraacute un cuadro de diaacutelogo llamado ldquoResultadosrdquo en donde le mostraraacute las llamadas de las que no localizoacute su definicioacuten

- - -

Cancel 1 D e las siguientes llamadas es posible que esten mal escritas o peitenezcan a la libreiia del Lenguaie Verifique ya que no se encontraron sus definiciones

A continuacioacuten se mencionan los posibles errores que finalizan el proceso de la creacioacuten automaacutetica de los diagramas de secuencias en S3C

Cuando no exista un meacutetodo lsquomainrsquo definido en el diagrama de clases

No se encontro el meacutetodo lsquomain()rsquo que inicie la secuencia I A No se puede crear el diagrama de secuencias

p==amp=q

61

Guia Raacutepida de uso del Sistema S3C

Cuando se definan niultiples metodos lsquoinainrsquo en el diagrama de clases

Multiples meacutetodos lsquomainOlsquo Imposible decidir el inicio de secuencia

Aceptar i

Si un meacutetodo definido en Wamier realiza una llamada a lsquomainrsquo se cancelara el proceso

Llamada NO VALIDA al meacutetodo principal main

(iAcp-j(

4 i

CI Y rdquoldquoldquoI i 11 1-T

IZNTRO Gt INFORMACION

62

  • Tabla de Contenido
  • Listado de Figuras
  • Listado de Tablas
  • Notacioacuten
  • Introduccioacuten
  • Capitulo 1 Conceptos Generales
    • 11 Antecedentes
    • 12 Trabajos relacionados
      • 121 Tabla comparativa
        • 13 Definicioacuten del problema
        • 14 Objetivo de la Tesis
          • Objetivos especiacuteficos de la tesis
            • 15 Hipoacutetesis de investigacioacuten
            • 16 Alcances y limitaciones del trabajo de tesis
              • Capitulo 2 Marco Teoacuterico
                • 21 Modelado de sistemas de software
                • 22 Interfaz de usuario (Mecanismos de interaccioacuten)
                • 23 Lenguajes Visuales
                • 24 Programacioacuten orientada a objetos
                • 25 Lenguaje de Modelado Unificado (UML)
                  • Desarrollo de la herramienta
                    • 31 Disentildeo de la Arquitectura
                      • 311 Requisitos (Diagrama de Casos de uso)
                        • 312Modelo Conceptual
                        • 313Diagramas de clases
                        • 32 Elementos de la arquitectura
                          • 321 Microsoft Foundation Class (MFC)
                            • 322Arquitectura Documento Vista
                            • 323Integrando Ambientes en Visual c++
                              • 324 Interfaz de Muacuteltiples Documentos (MDI)
                                • 325Recursos Diaacutelogos Menus y Barras de Herramientas
                                  • 326 Notacioacuten estaacutendar
                                  • 327 Estructura de datos persistencia y recuperacioacuten
                                    • 328Patrones de disentildeo utilizados
                                      • 33 Diagrama de secuencias
                                        • 331Ciclo de vida del software
                                          • 34 Elementos atoacutemicos de la Gramaacutetica
                                            • 341 Representacioacuten visual
                                              • 35 Gramaacutetica desarrollada
                                              • 36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias
                                                  • Capitulo 4 Pruebas y Resultados
                                                    • 41 Recursos teacutecnicos utilizados
                                                    • 42 Descripcioacuten del plan de pruebas
                                                    • 43 Resultados
                                                      • 431 Caso
                                                      • 432 Caso2
                                                      • 433 Caso
                                                          • Conclusiones y trabajos futuros
                                                            • Trabajos futuros
                                                            • Referencias
                                                            • Anexo A Configuracioacuten de Microsoft Visual C+t
                                                              • Figura 11 - Arquitectura de la suite cenidet-UML
                                                              • Figura 21 -Programacioacuten Visual
                                                              • Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de
                                                              • Figura 32 -Diagrama de Casos de Uso para el S3C
                                                              • Figura 33 -Modelo Conceptual
                                                              • Figura 34 - Diagrama de Clases -Control del Diagrama -
                                                              • Figura 35 - Diagrama de Clases - Patroacuten Visitor -
                                                              • Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento
                                                              • Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)
                                                              • Figura 38 -Dialogo Caracteriacutesticas del Objeto
                                                              • Figura 39 -Dialogo Mensaje
                                                              • Figura 3 IO - Menuacute de los Diagramas de Secuencias (estaacutendar)
                                                              • Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias
                                                              • Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)
                                                              • Figura 313 - Serializacioacuten
                                                              • Figura 314 -Modelo de cascada del ciclo de vida del software
                                                              • Figura 41 - Resultado del caso de prueba
                                                              • Figura 42 -Resultado del caso de prueba
                                                              • Figura 43 -Resultado del caso de prueba
                                                              • Figura 44 -Resultado del caso de prueba
                                                              • Tabla 11 - Tabla comparativa
                                                              • Tabla 31 -Prefijos estaacutendar de identificadores
                                                              • Tabla 32 -Elementos atoacutemicos del lenguaje
                                                              • Tabla 41 - Resumen de los resultados de las pruebas realizadas

Desarrollo de la herramienta

Definiendo la posicioacuten de los atributos en los elementos visuales

entradacrea ObetaClase

entrada

salida

P =

Diagrama I GrupoClaseObjeto (mensaje (mensajeRetorno

(salida 1) (entrada 2) ) (salida 2) (entrada 1) )

- Diagrama 0 GrupoClaseObjeto

(mensaje (mensaje (mensajeRetomo (mensajeRetomo (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entradacrea 2) ) (salida 1) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 1) ) (salida 1) (entrada 1) )

entrada

salida

40

Desarrollo de la herramienta

s

-

GrupoClaseObjeto - 1 1 I 2 (mensaje (mensaje (mensajeRetorno (mensajeRetorno (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entradacrea 2) ) (salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 1) ) (salida I ) (entrada I ) )

1 En las gramaacuteticas relacionales una produccioacuten estaacute acompantildeada de las posibles

relaciones que puedan generarse En la primera produccioacuten Diagrama produce a un Actor seguida de un GrupoClaseObjeto el Actor inicia la interaccioacuten con un mensaje y recibe el mensaje de retorno al finalizar la interaccioacuten La segunda y tercera produccioacuten son similares debido a que un GrupoClaseObjeto contiene dos ClaseObjeto que se relacionan de la misma forma

Existe un elemento de la gramaacutetica llamado Attr (Atributo) el cual define la parte de los elementos visuales donde se establecen las relaciones Se han determinado dos atributos (entrada y salida) que para nuestro propoacutesito estaraacuten establecidos en la liacutenea de vida de cada elemento visual (Actor y ClaseObjeto)

Los Comentarios y la Activacioacuten no se consideran en la gramaacutetica Los comentarios son libres de incluirse y relacionarse con cualquier elemento y relacioacuten mencionada anteriormente y la activacioacuten existe siempre que se presente un mensaje (o podriacutea omitirse) Estas consideraciones se realizaron para hacer auacuten maacutes faacutecil la gramaacutetica ya que si se trata de realizar un sistema las restricciones de estos elementos pueden mantenerse en el lenguaje de programacioacuten en el que se desarrolle el sistema

36

Precondiciones

El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias

1 El diagrama de Clases debe existir y estar completo 2 Debe existir un archivo con un diagrama de Warnier por cada diagrama de Clases y

con el mismo nombre de archivo (excepto la extensioacuten del archivo) 3 En el uacutenico diagrama de Warnier de cada Clase se deben modelar todos los meacutetodos

de la Clase 4 No realizar declaraciones de meacutetodos

41

Desarrollo de la herramienta

5 Debe existir un meacutetodo lsquomain()rsquo en el diagrama de Clases

Restricciones

Los meacutetodos deben mantener nombres distintos en las diferentes Clases

Metodologiacutea para la obtencioacuten automaacutetica de los Diagramas de Secuencias

1 Seleccionar el diagrama de Clases

2 Se construye una lista con los nombres de las Clases y los Meacutetodos

3 Se verifica si exista el meacutetodo lsquomain()rsquo en alguna Clase Se busca la existencia de una uacutenica Clase

a La Clase que contenga lsquomain()rsquo se va al inicio de la lista de Clases

b Si no existe lsquomain()rsquo SE TERMINA EL PROCESO

4 Se verifica la existencia de los archivos que contienen el Disentildeo Detallado de los meacutetodos en Wamier para cada una de las Clases si alguno falta SE TERMINA EL PROCESO

5 Se procesa cada uno de los modelos del Disentildeo Detallado de los Meacutetodos generando una lista de secuencias de llamadas por cada uno de los meacutetodos

6 Se verifica que cada llamada corresponda a alguacuten meacutetodo existente (del diagrama de Clases) De no existir ese meacutetodo la llamada entra a una estructura que

7 Se crea una lista de secuencia

a Se inicia con lsquomain()rsquo b Se recorre cada una de las llamadas de los meacutetodos c Se considera invaacutelido el caso de que un meacutetodo intente una llamada

recursiva al meacutetodo lsquomain()rsquo

8 Se muestra un diaacutelogo de resultados en el que se indican las llamadas que no se encnotraron definidas y que pueden ser Llamada a libreriacutea oacute Llamada Erroacutenea

42

Capiacutetulo 4

Prue6as y su6taaacuteos

En eacuteste capiacutetulo se da a conocer el detalle de las pruebas y de los resultados obtenidos Se describen los casos de prueba con los que se realizoacute la evaluacioacuten del sistema asiacute tambieacuten se presentan comentarios acerca de los resultados obtenidos

Pruebas y Resultados

41 Recursos teacutecnicos utilizados

Para llevar a cabo las pruebas al sistema S3C se utilizaron los siguientes equipos de Coacutemputo

Computadora de escritorio

256MB RAM Disco Duro 80G Monitor 17rdquo SAMSUNG

AMD Athlon XP 1600+ I4Ghz

Computadora de escritorio Intel Pentium 4 - 128MB RAM Disco Duro 40G Monitor 15rdquo i -

42 Descripcioacuten del plan de pruebas

Las pruebas establecen el Uacuteltimo paso desde donde es posible evaluar la calidad y descubrir los errores Las pruebas y la validacioacuten del software se utilizan para comprobar que el sistema cumple con las expectativas del usuario

En esta seccioacuten se describen los casos de prueba que se realizaron al prototipo de S3C en conjunto a la suite cenidet-UML Para cada uno de los casos se presenta el objetivo el procedimiento que se siguioacute para la prueba y se muestran los resultados obtenidos - _

Las pruebas a realizar son los siguientes

Caso 1 Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Caso 2 Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Wamier

Caso3 Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Wamier

Caso4 Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo 5

44

Pruebas y Resultados

43 Resultados

431 Caso 1

5 Y

IZ =

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoSirdquo 4 Seleccionar el archivo ldquoVENTASrdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 41 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

s3c iuevo Proyecto SCUM1

Diagrama de clases

lvendedor I L

3

salida

venta prod

4 venia-oferta vcntaprod =

salida 6

Figura 41 Resultado del caso de prueba 1

45

Pruebas y Resultados

432 Caso 2

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Warnier (almacenwar cajawar vendedorwar) que ya cxisten (del caso de prueba I )

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoNordquo 4 Agregar las siguientes Clases con los respectivos meacutetodos y atributos

a Claseldquovendedorrdquo Meacutetodos ldquoventa mainrdquo b Claseldquoalmacenrdquo Meacutetodos ldquoentrada salidardquo c Claseldquocajardquo Meacutetodos ldquoventagrodrdquo

5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 42 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

Diagrama de daseo lisgrama dcsccucncis

MOIDOC Anivo

venta prod

salida

1 Ycrdquo1a 2

I 4 vcrdquolD~o1cn venta prod gt

salida 6 i Figura 42 Resultado del caso de prueba 2

46

Pruebas y Resultados

r

433 Caso 3

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Warnier

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 43 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

5

Error al tratar de abrir el archivo A bZwar

Aceptar i

Faltan Archivos de Disentildeos Detallados de Meacutetodos 1 1 A No se puede crear el diagrama de secuencias

Figura 43 Resultado del caso de prueba 3

47

Pruebas y Resultados

434 Caso 4

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 44 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

lsquo I

~ _ i i _ l _ Repaado ~~ ~ ~ 6~ ampA Figura 44 Resultado del caso de prueba 4

48

Pruebas y Resultados

PRUEBA DESCNPCION CASO 1 Mostrar la funcionalidad del

Sistema S3C a partir de un

44 Anaacutelisis de Resultados

RESULTADOS Se comproboacute la correcta funcionalidad del Sistema S3C a partir de un diagrama

CASO 3

CASO4

I diagrama de Clases cxistcnte I de Clases existente CASO 2 I Mostrar la funcionalidad del I Sc comproboacute la corrccta funcionalidad

Sistema S3C a partir de un del Sistema S3C a partir de un diagrama diagrama de Clases que se de Clases que se construye al momento construye al momento Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el Secuencias si falta alguno de los diagrama de Secuencia si falta alguno diagramas de Warnier Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el secuencias si hace falta el meacutetodo diagrama de Secuencias al faltar el ldquomain ()rdquo meacutetodo ldquomain()rdquo

de los diagramas de Warnier

Los resultados obtenidos de cada uno de los casos establecidos demuestran que se validoacute la funcionalidad del prototipo con los requisitos definidos en el alcance de este proyecto

a lt

49

Conclusiones y Tru6ajos Futuros

Aquiacute se dan a conocer las conclusiones y se describen los posibles trabajos futuros para la continuacioacuten de eacuteste proyecto

F

51 Conclusiones

Conclusiones y trabajos futuros

Se ha creado un Ambiente Visual que permite obtener de forma automaacutetica los Diagramas de Secuencias en base a los diagramas de Clases y al disentildeo detallado de los meacutetodos descritos con diagramas de Warnier cumpliendo con los objetivos planteados para este trabajo

La tesis aporta principalmente La generacioacuten automaacutetica de los diagramas de secuencias y la eliminacioacuten de inconsistencias al mantener una validacioacuten directa de los diagramas de clases y los diagramas de Warnier que son utilizados

Esta validacioacuten es lograda a traveacutes del uso de la gramaacutetica visual relaciona1 que se ha definido (veacutease el capiacutetulo 3) Esta gramaacutetica visual establece reglas para la correcta construccioacuten de los diagramas de secuencias

P De esta manera se establece que la hipoacutetesis ldquoEs posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodosrdquo Es verdadera

52 Trabajos Futuros

Un Diagrama de Secuencias puede convertirse en un Diagrama de Colaboracioacuten por lo tanto un trabajo futuro es la construccioacuten automaacutetica de un Diagrama de Colaboracioacuten a partir de uno de Secuencias existente

Es posible calcular la meacutetrica de acoplamiento al tener un Diagrama de Secuencias construido

La Ingenieriacutea directa de un Diagrama de Secuencias estableciendo la validacioacuten en la construccioacuten de todos los elementos visuales que UML define

La propagacioacuten de las modificaciones de un Diagrama de Secuencias a los Diagramas de Clases y los Diagramas de Warnier

La modificacioacuten del coacutedigo fuente mediante los cambios establecidos en un Diagrama de Secuencias

51

[ALC03]

[BLA98]

[B0099]

[BOOOi]

[BR097]

[CHA90]

[DAN02]

[GLA02]

[HAC98]

[HER03]

4

Alcate1 Computer Associates International inc Electronic Data Systems Corporation Hewlett-Packard Company IBM Corporation I-Logix IntelliCorp Kabira Technologies Kennedy Carter Microsoft Corporation Object Management Group Oracle Corporation Project Technology Ptech Inc Rational Software Corporation Reich Technologies Softeam Taskon A S Telelogic Unisys Corporation ldquoOMG Unified Modeling Language Specificationrdquo Version 15 Unified Modeling Language 2003

Blaha Michael Rumbaugh James Premerlani William Eddy Frederick Lorensen William ldquoObject-oriented modeling and designrdquo Prentice Hall 484 Paacuteginas ISBN 0-13-629841-9 QA-769-03S-B53-19981998

Booch Grady Rumbaugh James Jacobson Ivar ldquoEl lenguaje unificado de modeladordquo Addison Wesley 432 Paacuteginas ISBN 84-7829-028-1 1999

Booch Grady Rumbaugh James Jacobson Ivar ldquoThe Unified Modeling Language User Guiderdquo Addison Wesley 2001

Brown David ldquoAn introduction to object-oriented analysis objects in plain Englishrdquo John Whiley amp Sons Inc 700 Paginas ISBN 0-471-1 1028-0 QA-769-035-B76-1997 1997

Chang Shi-Kuo ldquoVisual Languages and visual programmingrdquo Plenum Press 340 Paacuteginas ISBN 0-306-43428-8 QA-7665-V57-1990 1990

Daniels John ldquoModeling with a sense of purposerdquo Design - IEEE Software JanuaryEebmary 2002

Glasgow Universidad Reino Unido ldquoA UML Editor in Javardquo (lthttplstudentsdcsglaacuWstudentspainjfproject-reportproject-re port-htmV4thYearReporthtrnlgt 2002)

T Hackos JoAnn C Redish Janice ldquoUser and Task Analysis for Interface Designrdquo Wiley Computer Publishing 488 Paacuteginas ISBN QA-769-U83- H33-1998 1998

Hemaacutendez Velaacutezquez M ldquoIngenieriacutea inversa de coacutedigo fuente en C++ para la obtencioacuten de su disentildeordquo Tesis AT-379 (03-0334) 2003

Conceptos generales

[HIX93]

[JAC93]

[JAC99]

[JOY98]

[LAR97]

[MAR]

[MIC99]

[MIC02]

[MOU98]

Hix Deborah Hartson H Rex ldquoDeveloping user interfacesrdquo 381 Paacuteginas ISBN 0-471-57813-4 QA-769-U83-H59-1993 1993

Jacobson Ivar Christerson Magnus Jonsson Patrik Overgaard Gunnar ldquoObject oriented software engineeringrdquo Addison Wesley ISBN 0-20 1 - 54435-0 QA-7676-D47-J63-1993 1993

Jacobson Ivar Booch Grady Rumbaugh James ldquoEl proceso unificado de desarrollo de softwarerdquo Addison Wesley 438 Paacuteginas ISBN 84-7829-036- 2 1999

Joyanes Aguilar Luis ldquoProgramacioacuten orientada a objetosrdquo McGruw Hill ISBN 84-481-0590-7 1998

Larman Craig ldquoAplying UML and Patternsrdquo Prentice Hull 507 Paacuteginas ISBN 0-13-748880-7 QA-769-035-L37-1997 1997

Marriot Kim Meyer Bemd ldquoVisual Language Theoryrdquo Springer 381 Paacuteginas P-935-V567-1998 1998

Microsoft ldquoMicrosoft Visual C++ 6 manual del programadorrdquo McGraw Hill ISBN 84-481-2127-9 QA-7673-Cl53-23718-1999 1999

Microsoft ldquoVisiordquo (lthttpwwwmicrosoftcomofficevisiogt 2002)

B Mourao Luis X ldquoUniversal Modeling Language Part 11 UML Notation - Case Sequence and Collaboration Diagramsrdquo Lan Times Magazine (~httpwwwlantimescomltpartsdiscussdiscuss6Ohtm~) 1998

No Magic ldquoMagicDrawrdquo (lthttpwwwmagicdrawcomgt 2002)

Object Insight ldquoJvisionrdquo (lthttpwwwobject-insightcomgt 2002)

Rational Software Microsoft I Hewlett-Packard Oracle Sterling Software MCI Systemhouse Unisys ICON Computing IntelliCorp i-Logix IBM ObjectTime Platinum Technology Ptech Taskon Reich Technologies Sofieam ldquoUML Summaryrdquo Version 11 Unified Modeling Language 1997

Rational ldquoRational Roserdquo (lthttpwwwrationalcomproductosrosegt 2002)

Rikki Kirzner ldquoAnalysis Modeling and Design Tools Market Forecast and Analysis 2001-2005rdquo Bulletin Published Under Services Application Design and Construction Tools Application Development and Deployment Strategies Documento Nuacutemero 24809 Junio 2001

53

Conceptos generales

[RIM92] Rimrner Steve ldquoGraphical user interface programmingrdquo 423 Paacuteginas

1992

Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language reference manualrdquo Addison Wesley 550 Paacuteginas ISBN 0-201-

ISBN 0-8306-2475-9 ISBN 0-8306-2472-4 (pbk) QA-769-083-R55G

[RUM99]

30998-X QA-7676-D47-R85-1999 1999

[RUM299] Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language user guiderdquo Addisoiz Wesley 482 Paacuteginas ISBN 0-201 -57 168-4 QA-7676-D47-B66-1999 1999

[SMA02] SmartDraw ldquoSmartDrawrdquo (lthttpwwwsmartdrawcomgt 2002)

[SHU88] 9 - Shu Nun C ldquoVisual Programmingrdquo Van Nostrand Reinhold ISBN 0-422- 28014-9 ISBN 0-422-01 164-4 QA-7665-S55 1988

[THI90] Thimbleby Harold ldquoUser Interface Designrdquo Acm press 470 Paacuteginas ISBN 0-201 -41 61 8-2 QA-769U83-T772~- 1990 1990

[WENO2] Wences Diaz MF ldquoModelo de Ingenieriacutea Inversa para la obtencioacuten de disentildeo detallado basado en LEVISSrdquo Tesis (02-0014) 2002

54

Anexo A

Conampuracioacuten de Microsoft Vkua[C++ 6 O

Este anexo indica las configuraciones que se utilizaron para la compilacioacuten de SCUML y s3c

Configuracioacuten de Microsoft Visual c++ 60

Debido a la integracioacuten de los proyectos de InverSOODA e InverDDVi con S3C se cumplioacute con los requisitos previos de ambos proyectos

El compilador usado en el proyecto fue el Microsoft Visual C++ 60

Para el cumplimiento con la funcionalidad de InverSOODA se instaloacute el ANTLR la versioacuten 271 Se descargoacute del sitio l i l l ~ ~ ~ ~ ~ ~ t l ~ l ~ - ~ t - ~ la versioacuten mencionada en un archivo comprimido (en formato zip) Se colocoacute el paquete descomprimido en el directorio ldquoDIANTLR-271 I rdquo

Recomiendo ampliamente que el directorio principal de ANTLR se copie en el directorio raiacutez de cualquier unidad de disco debido a que experimenteacute problemas de compilacioacuten cuando ANTLR no se encontraba en el directorio raiacutez

Io015

Source Browser AlttF12 I u c Ersquo V I

Visual Component Mgnager

- - ~ ~ ~ ~~

P2 Registrar control

A Contenedor de prueba de controles ActiveX

A Usor de objetos OLE y COM

Buacutesqueda de errores

A Y++ MFC Iracer

Customize options

~ - q- ~ Macro

Eecord Quick Macro Cbl+ShiR+R Pay Quick Macro Ctrl+ShiR+P

En el menuacute Tools (Herramientas) seleccione el sub-menuacute Options ltopcionesgt

56

Configuracioacuten de Microsoft Visual C++ 60

En la siguiente ventana de diaacutelogo debe agregar la direccioacuten en donde se encuentra el ANTLR

Agregar la ruta del directorio de ANTLR hasta el subdirectorio

libcpp

Editor I Tabs I Debug I Compatibility 1 Build Dneclolies I a I Chow directories for - Platfolm -

- Directories I x ) 4 jWin32 -] llnclude files

m cancd I

57

Configuracioacuten de Microsoft Visual C t+ 60

Se ha creado una libreriacutea (anrlrliblib) de ANTLR la cual ya estaacute situada en el directorio del proyecto SCUML (ISCUML) y no debe ser movida o eliminada

I

Geneial 1 Debug I CC++ Link I Category

Output file name bebugSCUMLexe

Objectljibrary modules 4 anllrliblib

li Generate debug lnfo r Ignore all defaull lbaries D ~ i n k j n ~ ~ ~ t a n ~ r ~ e n e r ~ ~ ~ mapfile

r Enable psafilrng

Proiec1 Ootionn

pq Cancel 1 Libreriacutea de ANTLR que debe existir 1 I para que se compile correctamente

58

Anexo B

~ u iacute aacute raacutepida de uso deC Sistema S3C

5 Este anexo indica de forma raacutepida la manera de utilizar S3C para crear un diagrama de secuencias de forma automaacutetica

Guiacutea Raacutepida de uso del Sistema S3C i

Para indicar la creacioacuten de un diagrama de secuencias en forma automaacutetica se debe ir a la barra del costado izquierdo y presionar ldquoNuevo Proyecto SCUMLrdquo

I s3c I ~ Nuevo Proyecto SCUML ~ _ _ - I Diagrama de clases ~ Diagrama de secuencias 1 MDI DOC Activo

-

Apareceraacute un documento llamado ldquoSCUMLV en donde el simbolo corresponde a un numero consecutivo iniciando desde 1 (uno)

$ e Despueacutes se presiona ldquoDiagrama de clasesrdquo Habraacute que para indicarle al sistema si se requiere abrir un diagrama de clases existente o realizar uno nuevo

i

iquestAbrir un documento existente

No Cardquo~ear

AI presionar ldquoSirdquo se debe indicar cual es el archivo del diagrama de Clases en el cuadro de diaacutelogo siguiente

~~ - 11dMis documentos rsquo 2 M i P C i lsquo h s sitios de red

I

AI presionar ldquoNordquo en ldquoAbrir un documento existenterdquo se nos mostraraacute un documento vacio para crear un diagrama de clases

60

Guiacutea Raacutepida de uso del Sistema S3C

Para ambas opciones se requiere que los diagramas de Wamier ya se encuentren construidos Y para continuar el proccso se selecciona el documento ldquoSCUMLVrsquo creado al inicio y despueacutes presionar el botoacuten nombrado ldquoDiagrama de secuenciasrdquo localizado en la barra de hcrraiiiicntas del costado izquierdo

Ha iniciado el proceso de construccioacuten del diagrama de secuencias Si no existen errores al terminar el proceso se le mostraraacute un cuadro de diaacutelogo llamado ldquoResultadosrdquo en donde le mostraraacute las llamadas de las que no localizoacute su definicioacuten

- - -

Cancel 1 D e las siguientes llamadas es posible que esten mal escritas o peitenezcan a la libreiia del Lenguaie Verifique ya que no se encontraron sus definiciones

A continuacioacuten se mencionan los posibles errores que finalizan el proceso de la creacioacuten automaacutetica de los diagramas de secuencias en S3C

Cuando no exista un meacutetodo lsquomainrsquo definido en el diagrama de clases

No se encontro el meacutetodo lsquomain()rsquo que inicie la secuencia I A No se puede crear el diagrama de secuencias

p==amp=q

61

Guia Raacutepida de uso del Sistema S3C

Cuando se definan niultiples metodos lsquoinainrsquo en el diagrama de clases

Multiples meacutetodos lsquomainOlsquo Imposible decidir el inicio de secuencia

Aceptar i

Si un meacutetodo definido en Wamier realiza una llamada a lsquomainrsquo se cancelara el proceso

Llamada NO VALIDA al meacutetodo principal main

(iAcp-j(

4 i

CI Y rdquoldquoldquoI i 11 1-T

IZNTRO Gt INFORMACION

62

  • Tabla de Contenido
  • Listado de Figuras
  • Listado de Tablas
  • Notacioacuten
  • Introduccioacuten
  • Capitulo 1 Conceptos Generales
    • 11 Antecedentes
    • 12 Trabajos relacionados
      • 121 Tabla comparativa
        • 13 Definicioacuten del problema
        • 14 Objetivo de la Tesis
          • Objetivos especiacuteficos de la tesis
            • 15 Hipoacutetesis de investigacioacuten
            • 16 Alcances y limitaciones del trabajo de tesis
              • Capitulo 2 Marco Teoacuterico
                • 21 Modelado de sistemas de software
                • 22 Interfaz de usuario (Mecanismos de interaccioacuten)
                • 23 Lenguajes Visuales
                • 24 Programacioacuten orientada a objetos
                • 25 Lenguaje de Modelado Unificado (UML)
                  • Desarrollo de la herramienta
                    • 31 Disentildeo de la Arquitectura
                      • 311 Requisitos (Diagrama de Casos de uso)
                        • 312Modelo Conceptual
                        • 313Diagramas de clases
                        • 32 Elementos de la arquitectura
                          • 321 Microsoft Foundation Class (MFC)
                            • 322Arquitectura Documento Vista
                            • 323Integrando Ambientes en Visual c++
                              • 324 Interfaz de Muacuteltiples Documentos (MDI)
                                • 325Recursos Diaacutelogos Menus y Barras de Herramientas
                                  • 326 Notacioacuten estaacutendar
                                  • 327 Estructura de datos persistencia y recuperacioacuten
                                    • 328Patrones de disentildeo utilizados
                                      • 33 Diagrama de secuencias
                                        • 331Ciclo de vida del software
                                          • 34 Elementos atoacutemicos de la Gramaacutetica
                                            • 341 Representacioacuten visual
                                              • 35 Gramaacutetica desarrollada
                                              • 36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias
                                                  • Capitulo 4 Pruebas y Resultados
                                                    • 41 Recursos teacutecnicos utilizados
                                                    • 42 Descripcioacuten del plan de pruebas
                                                    • 43 Resultados
                                                      • 431 Caso
                                                      • 432 Caso2
                                                      • 433 Caso
                                                          • Conclusiones y trabajos futuros
                                                            • Trabajos futuros
                                                            • Referencias
                                                            • Anexo A Configuracioacuten de Microsoft Visual C+t
                                                              • Figura 11 - Arquitectura de la suite cenidet-UML
                                                              • Figura 21 -Programacioacuten Visual
                                                              • Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de
                                                              • Figura 32 -Diagrama de Casos de Uso para el S3C
                                                              • Figura 33 -Modelo Conceptual
                                                              • Figura 34 - Diagrama de Clases -Control del Diagrama -
                                                              • Figura 35 - Diagrama de Clases - Patroacuten Visitor -
                                                              • Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento
                                                              • Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)
                                                              • Figura 38 -Dialogo Caracteriacutesticas del Objeto
                                                              • Figura 39 -Dialogo Mensaje
                                                              • Figura 3 IO - Menuacute de los Diagramas de Secuencias (estaacutendar)
                                                              • Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias
                                                              • Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)
                                                              • Figura 313 - Serializacioacuten
                                                              • Figura 314 -Modelo de cascada del ciclo de vida del software
                                                              • Figura 41 - Resultado del caso de prueba
                                                              • Figura 42 -Resultado del caso de prueba
                                                              • Figura 43 -Resultado del caso de prueba
                                                              • Figura 44 -Resultado del caso de prueba
                                                              • Tabla 11 - Tabla comparativa
                                                              • Tabla 31 -Prefijos estaacutendar de identificadores
                                                              • Tabla 32 -Elementos atoacutemicos del lenguaje
                                                              • Tabla 41 - Resumen de los resultados de las pruebas realizadas

Desarrollo de la herramienta

s

-

GrupoClaseObjeto - 1 1 I 2 (mensaje (mensaje (mensajeRetorno (mensajeRetorno (mensajeTiempo (mensajeTiempo (mensajeAsincrono (mensajeAsincrono (mensajecrea (mensajeDestruye (mensajeDestruye (autodestruccioacuten (recursividad

(salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida I ) (entrada 2) ) (salida 2) (entrada 1) ) (salida 1) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entradacrea 2) ) (salida I ) (entrada 2) ) (salida 2) (entrada I ) ) (salida 1) (entrada 1) ) (salida I ) (entrada I ) )

1 En las gramaacuteticas relacionales una produccioacuten estaacute acompantildeada de las posibles

relaciones que puedan generarse En la primera produccioacuten Diagrama produce a un Actor seguida de un GrupoClaseObjeto el Actor inicia la interaccioacuten con un mensaje y recibe el mensaje de retorno al finalizar la interaccioacuten La segunda y tercera produccioacuten son similares debido a que un GrupoClaseObjeto contiene dos ClaseObjeto que se relacionan de la misma forma

Existe un elemento de la gramaacutetica llamado Attr (Atributo) el cual define la parte de los elementos visuales donde se establecen las relaciones Se han determinado dos atributos (entrada y salida) que para nuestro propoacutesito estaraacuten establecidos en la liacutenea de vida de cada elemento visual (Actor y ClaseObjeto)

Los Comentarios y la Activacioacuten no se consideran en la gramaacutetica Los comentarios son libres de incluirse y relacionarse con cualquier elemento y relacioacuten mencionada anteriormente y la activacioacuten existe siempre que se presente un mensaje (o podriacutea omitirse) Estas consideraciones se realizaron para hacer auacuten maacutes faacutecil la gramaacutetica ya que si se trata de realizar un sistema las restricciones de estos elementos pueden mantenerse en el lenguaje de programacioacuten en el que se desarrolle el sistema

36

Precondiciones

El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias

1 El diagrama de Clases debe existir y estar completo 2 Debe existir un archivo con un diagrama de Warnier por cada diagrama de Clases y

con el mismo nombre de archivo (excepto la extensioacuten del archivo) 3 En el uacutenico diagrama de Warnier de cada Clase se deben modelar todos los meacutetodos

de la Clase 4 No realizar declaraciones de meacutetodos

41

Desarrollo de la herramienta

5 Debe existir un meacutetodo lsquomain()rsquo en el diagrama de Clases

Restricciones

Los meacutetodos deben mantener nombres distintos en las diferentes Clases

Metodologiacutea para la obtencioacuten automaacutetica de los Diagramas de Secuencias

1 Seleccionar el diagrama de Clases

2 Se construye una lista con los nombres de las Clases y los Meacutetodos

3 Se verifica si exista el meacutetodo lsquomain()rsquo en alguna Clase Se busca la existencia de una uacutenica Clase

a La Clase que contenga lsquomain()rsquo se va al inicio de la lista de Clases

b Si no existe lsquomain()rsquo SE TERMINA EL PROCESO

4 Se verifica la existencia de los archivos que contienen el Disentildeo Detallado de los meacutetodos en Wamier para cada una de las Clases si alguno falta SE TERMINA EL PROCESO

5 Se procesa cada uno de los modelos del Disentildeo Detallado de los Meacutetodos generando una lista de secuencias de llamadas por cada uno de los meacutetodos

6 Se verifica que cada llamada corresponda a alguacuten meacutetodo existente (del diagrama de Clases) De no existir ese meacutetodo la llamada entra a una estructura que

7 Se crea una lista de secuencia

a Se inicia con lsquomain()rsquo b Se recorre cada una de las llamadas de los meacutetodos c Se considera invaacutelido el caso de que un meacutetodo intente una llamada

recursiva al meacutetodo lsquomain()rsquo

8 Se muestra un diaacutelogo de resultados en el que se indican las llamadas que no se encnotraron definidas y que pueden ser Llamada a libreriacutea oacute Llamada Erroacutenea

42

Capiacutetulo 4

Prue6as y su6taaacuteos

En eacuteste capiacutetulo se da a conocer el detalle de las pruebas y de los resultados obtenidos Se describen los casos de prueba con los que se realizoacute la evaluacioacuten del sistema asiacute tambieacuten se presentan comentarios acerca de los resultados obtenidos

Pruebas y Resultados

41 Recursos teacutecnicos utilizados

Para llevar a cabo las pruebas al sistema S3C se utilizaron los siguientes equipos de Coacutemputo

Computadora de escritorio

256MB RAM Disco Duro 80G Monitor 17rdquo SAMSUNG

AMD Athlon XP 1600+ I4Ghz

Computadora de escritorio Intel Pentium 4 - 128MB RAM Disco Duro 40G Monitor 15rdquo i -

42 Descripcioacuten del plan de pruebas

Las pruebas establecen el Uacuteltimo paso desde donde es posible evaluar la calidad y descubrir los errores Las pruebas y la validacioacuten del software se utilizan para comprobar que el sistema cumple con las expectativas del usuario

En esta seccioacuten se describen los casos de prueba que se realizaron al prototipo de S3C en conjunto a la suite cenidet-UML Para cada uno de los casos se presenta el objetivo el procedimiento que se siguioacute para la prueba y se muestran los resultados obtenidos - _

Las pruebas a realizar son los siguientes

Caso 1 Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Caso 2 Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Wamier

Caso3 Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Wamier

Caso4 Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo 5

44

Pruebas y Resultados

43 Resultados

431 Caso 1

5 Y

IZ =

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoSirdquo 4 Seleccionar el archivo ldquoVENTASrdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 41 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

s3c iuevo Proyecto SCUM1

Diagrama de clases

lvendedor I L

3

salida

venta prod

4 venia-oferta vcntaprod =

salida 6

Figura 41 Resultado del caso de prueba 1

45

Pruebas y Resultados

432 Caso 2

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Warnier (almacenwar cajawar vendedorwar) que ya cxisten (del caso de prueba I )

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoNordquo 4 Agregar las siguientes Clases con los respectivos meacutetodos y atributos

a Claseldquovendedorrdquo Meacutetodos ldquoventa mainrdquo b Claseldquoalmacenrdquo Meacutetodos ldquoentrada salidardquo c Claseldquocajardquo Meacutetodos ldquoventagrodrdquo

5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 42 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

Diagrama de daseo lisgrama dcsccucncis

MOIDOC Anivo

venta prod

salida

1 Ycrdquo1a 2

I 4 vcrdquolD~o1cn venta prod gt

salida 6 i Figura 42 Resultado del caso de prueba 2

46

Pruebas y Resultados

r

433 Caso 3

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Warnier

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 43 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

5

Error al tratar de abrir el archivo A bZwar

Aceptar i

Faltan Archivos de Disentildeos Detallados de Meacutetodos 1 1 A No se puede crear el diagrama de secuencias

Figura 43 Resultado del caso de prueba 3

47

Pruebas y Resultados

434 Caso 4

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 44 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

lsquo I

~ _ i i _ l _ Repaado ~~ ~ ~ 6~ ampA Figura 44 Resultado del caso de prueba 4

48

Pruebas y Resultados

PRUEBA DESCNPCION CASO 1 Mostrar la funcionalidad del

Sistema S3C a partir de un

44 Anaacutelisis de Resultados

RESULTADOS Se comproboacute la correcta funcionalidad del Sistema S3C a partir de un diagrama

CASO 3

CASO4

I diagrama de Clases cxistcnte I de Clases existente CASO 2 I Mostrar la funcionalidad del I Sc comproboacute la corrccta funcionalidad

Sistema S3C a partir de un del Sistema S3C a partir de un diagrama diagrama de Clases que se de Clases que se construye al momento construye al momento Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el Secuencias si falta alguno de los diagrama de Secuencia si falta alguno diagramas de Warnier Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el secuencias si hace falta el meacutetodo diagrama de Secuencias al faltar el ldquomain ()rdquo meacutetodo ldquomain()rdquo

de los diagramas de Warnier

Los resultados obtenidos de cada uno de los casos establecidos demuestran que se validoacute la funcionalidad del prototipo con los requisitos definidos en el alcance de este proyecto

a lt

49

Conclusiones y Tru6ajos Futuros

Aquiacute se dan a conocer las conclusiones y se describen los posibles trabajos futuros para la continuacioacuten de eacuteste proyecto

F

51 Conclusiones

Conclusiones y trabajos futuros

Se ha creado un Ambiente Visual que permite obtener de forma automaacutetica los Diagramas de Secuencias en base a los diagramas de Clases y al disentildeo detallado de los meacutetodos descritos con diagramas de Warnier cumpliendo con los objetivos planteados para este trabajo

La tesis aporta principalmente La generacioacuten automaacutetica de los diagramas de secuencias y la eliminacioacuten de inconsistencias al mantener una validacioacuten directa de los diagramas de clases y los diagramas de Warnier que son utilizados

Esta validacioacuten es lograda a traveacutes del uso de la gramaacutetica visual relaciona1 que se ha definido (veacutease el capiacutetulo 3) Esta gramaacutetica visual establece reglas para la correcta construccioacuten de los diagramas de secuencias

P De esta manera se establece que la hipoacutetesis ldquoEs posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodosrdquo Es verdadera

52 Trabajos Futuros

Un Diagrama de Secuencias puede convertirse en un Diagrama de Colaboracioacuten por lo tanto un trabajo futuro es la construccioacuten automaacutetica de un Diagrama de Colaboracioacuten a partir de uno de Secuencias existente

Es posible calcular la meacutetrica de acoplamiento al tener un Diagrama de Secuencias construido

La Ingenieriacutea directa de un Diagrama de Secuencias estableciendo la validacioacuten en la construccioacuten de todos los elementos visuales que UML define

La propagacioacuten de las modificaciones de un Diagrama de Secuencias a los Diagramas de Clases y los Diagramas de Warnier

La modificacioacuten del coacutedigo fuente mediante los cambios establecidos en un Diagrama de Secuencias

51

[ALC03]

[BLA98]

[B0099]

[BOOOi]

[BR097]

[CHA90]

[DAN02]

[GLA02]

[HAC98]

[HER03]

4

Alcate1 Computer Associates International inc Electronic Data Systems Corporation Hewlett-Packard Company IBM Corporation I-Logix IntelliCorp Kabira Technologies Kennedy Carter Microsoft Corporation Object Management Group Oracle Corporation Project Technology Ptech Inc Rational Software Corporation Reich Technologies Softeam Taskon A S Telelogic Unisys Corporation ldquoOMG Unified Modeling Language Specificationrdquo Version 15 Unified Modeling Language 2003

Blaha Michael Rumbaugh James Premerlani William Eddy Frederick Lorensen William ldquoObject-oriented modeling and designrdquo Prentice Hall 484 Paacuteginas ISBN 0-13-629841-9 QA-769-03S-B53-19981998

Booch Grady Rumbaugh James Jacobson Ivar ldquoEl lenguaje unificado de modeladordquo Addison Wesley 432 Paacuteginas ISBN 84-7829-028-1 1999

Booch Grady Rumbaugh James Jacobson Ivar ldquoThe Unified Modeling Language User Guiderdquo Addison Wesley 2001

Brown David ldquoAn introduction to object-oriented analysis objects in plain Englishrdquo John Whiley amp Sons Inc 700 Paginas ISBN 0-471-1 1028-0 QA-769-035-B76-1997 1997

Chang Shi-Kuo ldquoVisual Languages and visual programmingrdquo Plenum Press 340 Paacuteginas ISBN 0-306-43428-8 QA-7665-V57-1990 1990

Daniels John ldquoModeling with a sense of purposerdquo Design - IEEE Software JanuaryEebmary 2002

Glasgow Universidad Reino Unido ldquoA UML Editor in Javardquo (lthttplstudentsdcsglaacuWstudentspainjfproject-reportproject-re port-htmV4thYearReporthtrnlgt 2002)

T Hackos JoAnn C Redish Janice ldquoUser and Task Analysis for Interface Designrdquo Wiley Computer Publishing 488 Paacuteginas ISBN QA-769-U83- H33-1998 1998

Hemaacutendez Velaacutezquez M ldquoIngenieriacutea inversa de coacutedigo fuente en C++ para la obtencioacuten de su disentildeordquo Tesis AT-379 (03-0334) 2003

Conceptos generales

[HIX93]

[JAC93]

[JAC99]

[JOY98]

[LAR97]

[MAR]

[MIC99]

[MIC02]

[MOU98]

Hix Deborah Hartson H Rex ldquoDeveloping user interfacesrdquo 381 Paacuteginas ISBN 0-471-57813-4 QA-769-U83-H59-1993 1993

Jacobson Ivar Christerson Magnus Jonsson Patrik Overgaard Gunnar ldquoObject oriented software engineeringrdquo Addison Wesley ISBN 0-20 1 - 54435-0 QA-7676-D47-J63-1993 1993

Jacobson Ivar Booch Grady Rumbaugh James ldquoEl proceso unificado de desarrollo de softwarerdquo Addison Wesley 438 Paacuteginas ISBN 84-7829-036- 2 1999

Joyanes Aguilar Luis ldquoProgramacioacuten orientada a objetosrdquo McGruw Hill ISBN 84-481-0590-7 1998

Larman Craig ldquoAplying UML and Patternsrdquo Prentice Hull 507 Paacuteginas ISBN 0-13-748880-7 QA-769-035-L37-1997 1997

Marriot Kim Meyer Bemd ldquoVisual Language Theoryrdquo Springer 381 Paacuteginas P-935-V567-1998 1998

Microsoft ldquoMicrosoft Visual C++ 6 manual del programadorrdquo McGraw Hill ISBN 84-481-2127-9 QA-7673-Cl53-23718-1999 1999

Microsoft ldquoVisiordquo (lthttpwwwmicrosoftcomofficevisiogt 2002)

B Mourao Luis X ldquoUniversal Modeling Language Part 11 UML Notation - Case Sequence and Collaboration Diagramsrdquo Lan Times Magazine (~httpwwwlantimescomltpartsdiscussdiscuss6Ohtm~) 1998

No Magic ldquoMagicDrawrdquo (lthttpwwwmagicdrawcomgt 2002)

Object Insight ldquoJvisionrdquo (lthttpwwwobject-insightcomgt 2002)

Rational Software Microsoft I Hewlett-Packard Oracle Sterling Software MCI Systemhouse Unisys ICON Computing IntelliCorp i-Logix IBM ObjectTime Platinum Technology Ptech Taskon Reich Technologies Sofieam ldquoUML Summaryrdquo Version 11 Unified Modeling Language 1997

Rational ldquoRational Roserdquo (lthttpwwwrationalcomproductosrosegt 2002)

Rikki Kirzner ldquoAnalysis Modeling and Design Tools Market Forecast and Analysis 2001-2005rdquo Bulletin Published Under Services Application Design and Construction Tools Application Development and Deployment Strategies Documento Nuacutemero 24809 Junio 2001

53

Conceptos generales

[RIM92] Rimrner Steve ldquoGraphical user interface programmingrdquo 423 Paacuteginas

1992

Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language reference manualrdquo Addison Wesley 550 Paacuteginas ISBN 0-201-

ISBN 0-8306-2475-9 ISBN 0-8306-2472-4 (pbk) QA-769-083-R55G

[RUM99]

30998-X QA-7676-D47-R85-1999 1999

[RUM299] Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language user guiderdquo Addisoiz Wesley 482 Paacuteginas ISBN 0-201 -57 168-4 QA-7676-D47-B66-1999 1999

[SMA02] SmartDraw ldquoSmartDrawrdquo (lthttpwwwsmartdrawcomgt 2002)

[SHU88] 9 - Shu Nun C ldquoVisual Programmingrdquo Van Nostrand Reinhold ISBN 0-422- 28014-9 ISBN 0-422-01 164-4 QA-7665-S55 1988

[THI90] Thimbleby Harold ldquoUser Interface Designrdquo Acm press 470 Paacuteginas ISBN 0-201 -41 61 8-2 QA-769U83-T772~- 1990 1990

[WENO2] Wences Diaz MF ldquoModelo de Ingenieriacutea Inversa para la obtencioacuten de disentildeo detallado basado en LEVISSrdquo Tesis (02-0014) 2002

54

Anexo A

Conampuracioacuten de Microsoft Vkua[C++ 6 O

Este anexo indica las configuraciones que se utilizaron para la compilacioacuten de SCUML y s3c

Configuracioacuten de Microsoft Visual c++ 60

Debido a la integracioacuten de los proyectos de InverSOODA e InverDDVi con S3C se cumplioacute con los requisitos previos de ambos proyectos

El compilador usado en el proyecto fue el Microsoft Visual C++ 60

Para el cumplimiento con la funcionalidad de InverSOODA se instaloacute el ANTLR la versioacuten 271 Se descargoacute del sitio l i l l ~ ~ ~ ~ ~ ~ t l ~ l ~ - ~ t - ~ la versioacuten mencionada en un archivo comprimido (en formato zip) Se colocoacute el paquete descomprimido en el directorio ldquoDIANTLR-271 I rdquo

Recomiendo ampliamente que el directorio principal de ANTLR se copie en el directorio raiacutez de cualquier unidad de disco debido a que experimenteacute problemas de compilacioacuten cuando ANTLR no se encontraba en el directorio raiacutez

Io015

Source Browser AlttF12 I u c Ersquo V I

Visual Component Mgnager

- - ~ ~ ~ ~~

P2 Registrar control

A Contenedor de prueba de controles ActiveX

A Usor de objetos OLE y COM

Buacutesqueda de errores

A Y++ MFC Iracer

Customize options

~ - q- ~ Macro

Eecord Quick Macro Cbl+ShiR+R Pay Quick Macro Ctrl+ShiR+P

En el menuacute Tools (Herramientas) seleccione el sub-menuacute Options ltopcionesgt

56

Configuracioacuten de Microsoft Visual C++ 60

En la siguiente ventana de diaacutelogo debe agregar la direccioacuten en donde se encuentra el ANTLR

Agregar la ruta del directorio de ANTLR hasta el subdirectorio

libcpp

Editor I Tabs I Debug I Compatibility 1 Build Dneclolies I a I Chow directories for - Platfolm -

- Directories I x ) 4 jWin32 -] llnclude files

m cancd I

57

Configuracioacuten de Microsoft Visual C t+ 60

Se ha creado una libreriacutea (anrlrliblib) de ANTLR la cual ya estaacute situada en el directorio del proyecto SCUML (ISCUML) y no debe ser movida o eliminada

I

Geneial 1 Debug I CC++ Link I Category

Output file name bebugSCUMLexe

Objectljibrary modules 4 anllrliblib

li Generate debug lnfo r Ignore all defaull lbaries D ~ i n k j n ~ ~ ~ t a n ~ r ~ e n e r ~ ~ ~ mapfile

r Enable psafilrng

Proiec1 Ootionn

pq Cancel 1 Libreriacutea de ANTLR que debe existir 1 I para que se compile correctamente

58

Anexo B

~ u iacute aacute raacutepida de uso deC Sistema S3C

5 Este anexo indica de forma raacutepida la manera de utilizar S3C para crear un diagrama de secuencias de forma automaacutetica

Guiacutea Raacutepida de uso del Sistema S3C i

Para indicar la creacioacuten de un diagrama de secuencias en forma automaacutetica se debe ir a la barra del costado izquierdo y presionar ldquoNuevo Proyecto SCUMLrdquo

I s3c I ~ Nuevo Proyecto SCUML ~ _ _ - I Diagrama de clases ~ Diagrama de secuencias 1 MDI DOC Activo

-

Apareceraacute un documento llamado ldquoSCUMLV en donde el simbolo corresponde a un numero consecutivo iniciando desde 1 (uno)

$ e Despueacutes se presiona ldquoDiagrama de clasesrdquo Habraacute que para indicarle al sistema si se requiere abrir un diagrama de clases existente o realizar uno nuevo

i

iquestAbrir un documento existente

No Cardquo~ear

AI presionar ldquoSirdquo se debe indicar cual es el archivo del diagrama de Clases en el cuadro de diaacutelogo siguiente

~~ - 11dMis documentos rsquo 2 M i P C i lsquo h s sitios de red

I

AI presionar ldquoNordquo en ldquoAbrir un documento existenterdquo se nos mostraraacute un documento vacio para crear un diagrama de clases

60

Guiacutea Raacutepida de uso del Sistema S3C

Para ambas opciones se requiere que los diagramas de Wamier ya se encuentren construidos Y para continuar el proccso se selecciona el documento ldquoSCUMLVrsquo creado al inicio y despueacutes presionar el botoacuten nombrado ldquoDiagrama de secuenciasrdquo localizado en la barra de hcrraiiiicntas del costado izquierdo

Ha iniciado el proceso de construccioacuten del diagrama de secuencias Si no existen errores al terminar el proceso se le mostraraacute un cuadro de diaacutelogo llamado ldquoResultadosrdquo en donde le mostraraacute las llamadas de las que no localizoacute su definicioacuten

- - -

Cancel 1 D e las siguientes llamadas es posible que esten mal escritas o peitenezcan a la libreiia del Lenguaie Verifique ya que no se encontraron sus definiciones

A continuacioacuten se mencionan los posibles errores que finalizan el proceso de la creacioacuten automaacutetica de los diagramas de secuencias en S3C

Cuando no exista un meacutetodo lsquomainrsquo definido en el diagrama de clases

No se encontro el meacutetodo lsquomain()rsquo que inicie la secuencia I A No se puede crear el diagrama de secuencias

p==amp=q

61

Guia Raacutepida de uso del Sistema S3C

Cuando se definan niultiples metodos lsquoinainrsquo en el diagrama de clases

Multiples meacutetodos lsquomainOlsquo Imposible decidir el inicio de secuencia

Aceptar i

Si un meacutetodo definido en Wamier realiza una llamada a lsquomainrsquo se cancelara el proceso

Llamada NO VALIDA al meacutetodo principal main

(iAcp-j(

4 i

CI Y rdquoldquoldquoI i 11 1-T

IZNTRO Gt INFORMACION

62

  • Tabla de Contenido
  • Listado de Figuras
  • Listado de Tablas
  • Notacioacuten
  • Introduccioacuten
  • Capitulo 1 Conceptos Generales
    • 11 Antecedentes
    • 12 Trabajos relacionados
      • 121 Tabla comparativa
        • 13 Definicioacuten del problema
        • 14 Objetivo de la Tesis
          • Objetivos especiacuteficos de la tesis
            • 15 Hipoacutetesis de investigacioacuten
            • 16 Alcances y limitaciones del trabajo de tesis
              • Capitulo 2 Marco Teoacuterico
                • 21 Modelado de sistemas de software
                • 22 Interfaz de usuario (Mecanismos de interaccioacuten)
                • 23 Lenguajes Visuales
                • 24 Programacioacuten orientada a objetos
                • 25 Lenguaje de Modelado Unificado (UML)
                  • Desarrollo de la herramienta
                    • 31 Disentildeo de la Arquitectura
                      • 311 Requisitos (Diagrama de Casos de uso)
                        • 312Modelo Conceptual
                        • 313Diagramas de clases
                        • 32 Elementos de la arquitectura
                          • 321 Microsoft Foundation Class (MFC)
                            • 322Arquitectura Documento Vista
                            • 323Integrando Ambientes en Visual c++
                              • 324 Interfaz de Muacuteltiples Documentos (MDI)
                                • 325Recursos Diaacutelogos Menus y Barras de Herramientas
                                  • 326 Notacioacuten estaacutendar
                                  • 327 Estructura de datos persistencia y recuperacioacuten
                                    • 328Patrones de disentildeo utilizados
                                      • 33 Diagrama de secuencias
                                        • 331Ciclo de vida del software
                                          • 34 Elementos atoacutemicos de la Gramaacutetica
                                            • 341 Representacioacuten visual
                                              • 35 Gramaacutetica desarrollada
                                              • 36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias
                                                  • Capitulo 4 Pruebas y Resultados
                                                    • 41 Recursos teacutecnicos utilizados
                                                    • 42 Descripcioacuten del plan de pruebas
                                                    • 43 Resultados
                                                      • 431 Caso
                                                      • 432 Caso2
                                                      • 433 Caso
                                                          • Conclusiones y trabajos futuros
                                                            • Trabajos futuros
                                                            • Referencias
                                                            • Anexo A Configuracioacuten de Microsoft Visual C+t
                                                              • Figura 11 - Arquitectura de la suite cenidet-UML
                                                              • Figura 21 -Programacioacuten Visual
                                                              • Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de
                                                              • Figura 32 -Diagrama de Casos de Uso para el S3C
                                                              • Figura 33 -Modelo Conceptual
                                                              • Figura 34 - Diagrama de Clases -Control del Diagrama -
                                                              • Figura 35 - Diagrama de Clases - Patroacuten Visitor -
                                                              • Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento
                                                              • Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)
                                                              • Figura 38 -Dialogo Caracteriacutesticas del Objeto
                                                              • Figura 39 -Dialogo Mensaje
                                                              • Figura 3 IO - Menuacute de los Diagramas de Secuencias (estaacutendar)
                                                              • Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias
                                                              • Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)
                                                              • Figura 313 - Serializacioacuten
                                                              • Figura 314 -Modelo de cascada del ciclo de vida del software
                                                              • Figura 41 - Resultado del caso de prueba
                                                              • Figura 42 -Resultado del caso de prueba
                                                              • Figura 43 -Resultado del caso de prueba
                                                              • Figura 44 -Resultado del caso de prueba
                                                              • Tabla 11 - Tabla comparativa
                                                              • Tabla 31 -Prefijos estaacutendar de identificadores
                                                              • Tabla 32 -Elementos atoacutemicos del lenguaje
                                                              • Tabla 41 - Resumen de los resultados de las pruebas realizadas

Desarrollo de la herramienta

5 Debe existir un meacutetodo lsquomain()rsquo en el diagrama de Clases

Restricciones

Los meacutetodos deben mantener nombres distintos en las diferentes Clases

Metodologiacutea para la obtencioacuten automaacutetica de los Diagramas de Secuencias

1 Seleccionar el diagrama de Clases

2 Se construye una lista con los nombres de las Clases y los Meacutetodos

3 Se verifica si exista el meacutetodo lsquomain()rsquo en alguna Clase Se busca la existencia de una uacutenica Clase

a La Clase que contenga lsquomain()rsquo se va al inicio de la lista de Clases

b Si no existe lsquomain()rsquo SE TERMINA EL PROCESO

4 Se verifica la existencia de los archivos que contienen el Disentildeo Detallado de los meacutetodos en Wamier para cada una de las Clases si alguno falta SE TERMINA EL PROCESO

5 Se procesa cada uno de los modelos del Disentildeo Detallado de los Meacutetodos generando una lista de secuencias de llamadas por cada uno de los meacutetodos

6 Se verifica que cada llamada corresponda a alguacuten meacutetodo existente (del diagrama de Clases) De no existir ese meacutetodo la llamada entra a una estructura que

7 Se crea una lista de secuencia

a Se inicia con lsquomain()rsquo b Se recorre cada una de las llamadas de los meacutetodos c Se considera invaacutelido el caso de que un meacutetodo intente una llamada

recursiva al meacutetodo lsquomain()rsquo

8 Se muestra un diaacutelogo de resultados en el que se indican las llamadas que no se encnotraron definidas y que pueden ser Llamada a libreriacutea oacute Llamada Erroacutenea

42

Capiacutetulo 4

Prue6as y su6taaacuteos

En eacuteste capiacutetulo se da a conocer el detalle de las pruebas y de los resultados obtenidos Se describen los casos de prueba con los que se realizoacute la evaluacioacuten del sistema asiacute tambieacuten se presentan comentarios acerca de los resultados obtenidos

Pruebas y Resultados

41 Recursos teacutecnicos utilizados

Para llevar a cabo las pruebas al sistema S3C se utilizaron los siguientes equipos de Coacutemputo

Computadora de escritorio

256MB RAM Disco Duro 80G Monitor 17rdquo SAMSUNG

AMD Athlon XP 1600+ I4Ghz

Computadora de escritorio Intel Pentium 4 - 128MB RAM Disco Duro 40G Monitor 15rdquo i -

42 Descripcioacuten del plan de pruebas

Las pruebas establecen el Uacuteltimo paso desde donde es posible evaluar la calidad y descubrir los errores Las pruebas y la validacioacuten del software se utilizan para comprobar que el sistema cumple con las expectativas del usuario

En esta seccioacuten se describen los casos de prueba que se realizaron al prototipo de S3C en conjunto a la suite cenidet-UML Para cada uno de los casos se presenta el objetivo el procedimiento que se siguioacute para la prueba y se muestran los resultados obtenidos - _

Las pruebas a realizar son los siguientes

Caso 1 Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Caso 2 Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Wamier

Caso3 Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Wamier

Caso4 Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo 5

44

Pruebas y Resultados

43 Resultados

431 Caso 1

5 Y

IZ =

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoSirdquo 4 Seleccionar el archivo ldquoVENTASrdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 41 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

s3c iuevo Proyecto SCUM1

Diagrama de clases

lvendedor I L

3

salida

venta prod

4 venia-oferta vcntaprod =

salida 6

Figura 41 Resultado del caso de prueba 1

45

Pruebas y Resultados

432 Caso 2

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Warnier (almacenwar cajawar vendedorwar) que ya cxisten (del caso de prueba I )

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoNordquo 4 Agregar las siguientes Clases con los respectivos meacutetodos y atributos

a Claseldquovendedorrdquo Meacutetodos ldquoventa mainrdquo b Claseldquoalmacenrdquo Meacutetodos ldquoentrada salidardquo c Claseldquocajardquo Meacutetodos ldquoventagrodrdquo

5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 42 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

Diagrama de daseo lisgrama dcsccucncis

MOIDOC Anivo

venta prod

salida

1 Ycrdquo1a 2

I 4 vcrdquolD~o1cn venta prod gt

salida 6 i Figura 42 Resultado del caso de prueba 2

46

Pruebas y Resultados

r

433 Caso 3

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Warnier

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 43 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

5

Error al tratar de abrir el archivo A bZwar

Aceptar i

Faltan Archivos de Disentildeos Detallados de Meacutetodos 1 1 A No se puede crear el diagrama de secuencias

Figura 43 Resultado del caso de prueba 3

47

Pruebas y Resultados

434 Caso 4

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 44 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

lsquo I

~ _ i i _ l _ Repaado ~~ ~ ~ 6~ ampA Figura 44 Resultado del caso de prueba 4

48

Pruebas y Resultados

PRUEBA DESCNPCION CASO 1 Mostrar la funcionalidad del

Sistema S3C a partir de un

44 Anaacutelisis de Resultados

RESULTADOS Se comproboacute la correcta funcionalidad del Sistema S3C a partir de un diagrama

CASO 3

CASO4

I diagrama de Clases cxistcnte I de Clases existente CASO 2 I Mostrar la funcionalidad del I Sc comproboacute la corrccta funcionalidad

Sistema S3C a partir de un del Sistema S3C a partir de un diagrama diagrama de Clases que se de Clases que se construye al momento construye al momento Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el Secuencias si falta alguno de los diagrama de Secuencia si falta alguno diagramas de Warnier Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el secuencias si hace falta el meacutetodo diagrama de Secuencias al faltar el ldquomain ()rdquo meacutetodo ldquomain()rdquo

de los diagramas de Warnier

Los resultados obtenidos de cada uno de los casos establecidos demuestran que se validoacute la funcionalidad del prototipo con los requisitos definidos en el alcance de este proyecto

a lt

49

Conclusiones y Tru6ajos Futuros

Aquiacute se dan a conocer las conclusiones y se describen los posibles trabajos futuros para la continuacioacuten de eacuteste proyecto

F

51 Conclusiones

Conclusiones y trabajos futuros

Se ha creado un Ambiente Visual que permite obtener de forma automaacutetica los Diagramas de Secuencias en base a los diagramas de Clases y al disentildeo detallado de los meacutetodos descritos con diagramas de Warnier cumpliendo con los objetivos planteados para este trabajo

La tesis aporta principalmente La generacioacuten automaacutetica de los diagramas de secuencias y la eliminacioacuten de inconsistencias al mantener una validacioacuten directa de los diagramas de clases y los diagramas de Warnier que son utilizados

Esta validacioacuten es lograda a traveacutes del uso de la gramaacutetica visual relaciona1 que se ha definido (veacutease el capiacutetulo 3) Esta gramaacutetica visual establece reglas para la correcta construccioacuten de los diagramas de secuencias

P De esta manera se establece que la hipoacutetesis ldquoEs posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodosrdquo Es verdadera

52 Trabajos Futuros

Un Diagrama de Secuencias puede convertirse en un Diagrama de Colaboracioacuten por lo tanto un trabajo futuro es la construccioacuten automaacutetica de un Diagrama de Colaboracioacuten a partir de uno de Secuencias existente

Es posible calcular la meacutetrica de acoplamiento al tener un Diagrama de Secuencias construido

La Ingenieriacutea directa de un Diagrama de Secuencias estableciendo la validacioacuten en la construccioacuten de todos los elementos visuales que UML define

La propagacioacuten de las modificaciones de un Diagrama de Secuencias a los Diagramas de Clases y los Diagramas de Warnier

La modificacioacuten del coacutedigo fuente mediante los cambios establecidos en un Diagrama de Secuencias

51

[ALC03]

[BLA98]

[B0099]

[BOOOi]

[BR097]

[CHA90]

[DAN02]

[GLA02]

[HAC98]

[HER03]

4

Alcate1 Computer Associates International inc Electronic Data Systems Corporation Hewlett-Packard Company IBM Corporation I-Logix IntelliCorp Kabira Technologies Kennedy Carter Microsoft Corporation Object Management Group Oracle Corporation Project Technology Ptech Inc Rational Software Corporation Reich Technologies Softeam Taskon A S Telelogic Unisys Corporation ldquoOMG Unified Modeling Language Specificationrdquo Version 15 Unified Modeling Language 2003

Blaha Michael Rumbaugh James Premerlani William Eddy Frederick Lorensen William ldquoObject-oriented modeling and designrdquo Prentice Hall 484 Paacuteginas ISBN 0-13-629841-9 QA-769-03S-B53-19981998

Booch Grady Rumbaugh James Jacobson Ivar ldquoEl lenguaje unificado de modeladordquo Addison Wesley 432 Paacuteginas ISBN 84-7829-028-1 1999

Booch Grady Rumbaugh James Jacobson Ivar ldquoThe Unified Modeling Language User Guiderdquo Addison Wesley 2001

Brown David ldquoAn introduction to object-oriented analysis objects in plain Englishrdquo John Whiley amp Sons Inc 700 Paginas ISBN 0-471-1 1028-0 QA-769-035-B76-1997 1997

Chang Shi-Kuo ldquoVisual Languages and visual programmingrdquo Plenum Press 340 Paacuteginas ISBN 0-306-43428-8 QA-7665-V57-1990 1990

Daniels John ldquoModeling with a sense of purposerdquo Design - IEEE Software JanuaryEebmary 2002

Glasgow Universidad Reino Unido ldquoA UML Editor in Javardquo (lthttplstudentsdcsglaacuWstudentspainjfproject-reportproject-re port-htmV4thYearReporthtrnlgt 2002)

T Hackos JoAnn C Redish Janice ldquoUser and Task Analysis for Interface Designrdquo Wiley Computer Publishing 488 Paacuteginas ISBN QA-769-U83- H33-1998 1998

Hemaacutendez Velaacutezquez M ldquoIngenieriacutea inversa de coacutedigo fuente en C++ para la obtencioacuten de su disentildeordquo Tesis AT-379 (03-0334) 2003

Conceptos generales

[HIX93]

[JAC93]

[JAC99]

[JOY98]

[LAR97]

[MAR]

[MIC99]

[MIC02]

[MOU98]

Hix Deborah Hartson H Rex ldquoDeveloping user interfacesrdquo 381 Paacuteginas ISBN 0-471-57813-4 QA-769-U83-H59-1993 1993

Jacobson Ivar Christerson Magnus Jonsson Patrik Overgaard Gunnar ldquoObject oriented software engineeringrdquo Addison Wesley ISBN 0-20 1 - 54435-0 QA-7676-D47-J63-1993 1993

Jacobson Ivar Booch Grady Rumbaugh James ldquoEl proceso unificado de desarrollo de softwarerdquo Addison Wesley 438 Paacuteginas ISBN 84-7829-036- 2 1999

Joyanes Aguilar Luis ldquoProgramacioacuten orientada a objetosrdquo McGruw Hill ISBN 84-481-0590-7 1998

Larman Craig ldquoAplying UML and Patternsrdquo Prentice Hull 507 Paacuteginas ISBN 0-13-748880-7 QA-769-035-L37-1997 1997

Marriot Kim Meyer Bemd ldquoVisual Language Theoryrdquo Springer 381 Paacuteginas P-935-V567-1998 1998

Microsoft ldquoMicrosoft Visual C++ 6 manual del programadorrdquo McGraw Hill ISBN 84-481-2127-9 QA-7673-Cl53-23718-1999 1999

Microsoft ldquoVisiordquo (lthttpwwwmicrosoftcomofficevisiogt 2002)

B Mourao Luis X ldquoUniversal Modeling Language Part 11 UML Notation - Case Sequence and Collaboration Diagramsrdquo Lan Times Magazine (~httpwwwlantimescomltpartsdiscussdiscuss6Ohtm~) 1998

No Magic ldquoMagicDrawrdquo (lthttpwwwmagicdrawcomgt 2002)

Object Insight ldquoJvisionrdquo (lthttpwwwobject-insightcomgt 2002)

Rational Software Microsoft I Hewlett-Packard Oracle Sterling Software MCI Systemhouse Unisys ICON Computing IntelliCorp i-Logix IBM ObjectTime Platinum Technology Ptech Taskon Reich Technologies Sofieam ldquoUML Summaryrdquo Version 11 Unified Modeling Language 1997

Rational ldquoRational Roserdquo (lthttpwwwrationalcomproductosrosegt 2002)

Rikki Kirzner ldquoAnalysis Modeling and Design Tools Market Forecast and Analysis 2001-2005rdquo Bulletin Published Under Services Application Design and Construction Tools Application Development and Deployment Strategies Documento Nuacutemero 24809 Junio 2001

53

Conceptos generales

[RIM92] Rimrner Steve ldquoGraphical user interface programmingrdquo 423 Paacuteginas

1992

Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language reference manualrdquo Addison Wesley 550 Paacuteginas ISBN 0-201-

ISBN 0-8306-2475-9 ISBN 0-8306-2472-4 (pbk) QA-769-083-R55G

[RUM99]

30998-X QA-7676-D47-R85-1999 1999

[RUM299] Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language user guiderdquo Addisoiz Wesley 482 Paacuteginas ISBN 0-201 -57 168-4 QA-7676-D47-B66-1999 1999

[SMA02] SmartDraw ldquoSmartDrawrdquo (lthttpwwwsmartdrawcomgt 2002)

[SHU88] 9 - Shu Nun C ldquoVisual Programmingrdquo Van Nostrand Reinhold ISBN 0-422- 28014-9 ISBN 0-422-01 164-4 QA-7665-S55 1988

[THI90] Thimbleby Harold ldquoUser Interface Designrdquo Acm press 470 Paacuteginas ISBN 0-201 -41 61 8-2 QA-769U83-T772~- 1990 1990

[WENO2] Wences Diaz MF ldquoModelo de Ingenieriacutea Inversa para la obtencioacuten de disentildeo detallado basado en LEVISSrdquo Tesis (02-0014) 2002

54

Anexo A

Conampuracioacuten de Microsoft Vkua[C++ 6 O

Este anexo indica las configuraciones que se utilizaron para la compilacioacuten de SCUML y s3c

Configuracioacuten de Microsoft Visual c++ 60

Debido a la integracioacuten de los proyectos de InverSOODA e InverDDVi con S3C se cumplioacute con los requisitos previos de ambos proyectos

El compilador usado en el proyecto fue el Microsoft Visual C++ 60

Para el cumplimiento con la funcionalidad de InverSOODA se instaloacute el ANTLR la versioacuten 271 Se descargoacute del sitio l i l l ~ ~ ~ ~ ~ ~ t l ~ l ~ - ~ t - ~ la versioacuten mencionada en un archivo comprimido (en formato zip) Se colocoacute el paquete descomprimido en el directorio ldquoDIANTLR-271 I rdquo

Recomiendo ampliamente que el directorio principal de ANTLR se copie en el directorio raiacutez de cualquier unidad de disco debido a que experimenteacute problemas de compilacioacuten cuando ANTLR no se encontraba en el directorio raiacutez

Io015

Source Browser AlttF12 I u c Ersquo V I

Visual Component Mgnager

- - ~ ~ ~ ~~

P2 Registrar control

A Contenedor de prueba de controles ActiveX

A Usor de objetos OLE y COM

Buacutesqueda de errores

A Y++ MFC Iracer

Customize options

~ - q- ~ Macro

Eecord Quick Macro Cbl+ShiR+R Pay Quick Macro Ctrl+ShiR+P

En el menuacute Tools (Herramientas) seleccione el sub-menuacute Options ltopcionesgt

56

Configuracioacuten de Microsoft Visual C++ 60

En la siguiente ventana de diaacutelogo debe agregar la direccioacuten en donde se encuentra el ANTLR

Agregar la ruta del directorio de ANTLR hasta el subdirectorio

libcpp

Editor I Tabs I Debug I Compatibility 1 Build Dneclolies I a I Chow directories for - Platfolm -

- Directories I x ) 4 jWin32 -] llnclude files

m cancd I

57

Configuracioacuten de Microsoft Visual C t+ 60

Se ha creado una libreriacutea (anrlrliblib) de ANTLR la cual ya estaacute situada en el directorio del proyecto SCUML (ISCUML) y no debe ser movida o eliminada

I

Geneial 1 Debug I CC++ Link I Category

Output file name bebugSCUMLexe

Objectljibrary modules 4 anllrliblib

li Generate debug lnfo r Ignore all defaull lbaries D ~ i n k j n ~ ~ ~ t a n ~ r ~ e n e r ~ ~ ~ mapfile

r Enable psafilrng

Proiec1 Ootionn

pq Cancel 1 Libreriacutea de ANTLR que debe existir 1 I para que se compile correctamente

58

Anexo B

~ u iacute aacute raacutepida de uso deC Sistema S3C

5 Este anexo indica de forma raacutepida la manera de utilizar S3C para crear un diagrama de secuencias de forma automaacutetica

Guiacutea Raacutepida de uso del Sistema S3C i

Para indicar la creacioacuten de un diagrama de secuencias en forma automaacutetica se debe ir a la barra del costado izquierdo y presionar ldquoNuevo Proyecto SCUMLrdquo

I s3c I ~ Nuevo Proyecto SCUML ~ _ _ - I Diagrama de clases ~ Diagrama de secuencias 1 MDI DOC Activo

-

Apareceraacute un documento llamado ldquoSCUMLV en donde el simbolo corresponde a un numero consecutivo iniciando desde 1 (uno)

$ e Despueacutes se presiona ldquoDiagrama de clasesrdquo Habraacute que para indicarle al sistema si se requiere abrir un diagrama de clases existente o realizar uno nuevo

i

iquestAbrir un documento existente

No Cardquo~ear

AI presionar ldquoSirdquo se debe indicar cual es el archivo del diagrama de Clases en el cuadro de diaacutelogo siguiente

~~ - 11dMis documentos rsquo 2 M i P C i lsquo h s sitios de red

I

AI presionar ldquoNordquo en ldquoAbrir un documento existenterdquo se nos mostraraacute un documento vacio para crear un diagrama de clases

60

Guiacutea Raacutepida de uso del Sistema S3C

Para ambas opciones se requiere que los diagramas de Wamier ya se encuentren construidos Y para continuar el proccso se selecciona el documento ldquoSCUMLVrsquo creado al inicio y despueacutes presionar el botoacuten nombrado ldquoDiagrama de secuenciasrdquo localizado en la barra de hcrraiiiicntas del costado izquierdo

Ha iniciado el proceso de construccioacuten del diagrama de secuencias Si no existen errores al terminar el proceso se le mostraraacute un cuadro de diaacutelogo llamado ldquoResultadosrdquo en donde le mostraraacute las llamadas de las que no localizoacute su definicioacuten

- - -

Cancel 1 D e las siguientes llamadas es posible que esten mal escritas o peitenezcan a la libreiia del Lenguaie Verifique ya que no se encontraron sus definiciones

A continuacioacuten se mencionan los posibles errores que finalizan el proceso de la creacioacuten automaacutetica de los diagramas de secuencias en S3C

Cuando no exista un meacutetodo lsquomainrsquo definido en el diagrama de clases

No se encontro el meacutetodo lsquomain()rsquo que inicie la secuencia I A No se puede crear el diagrama de secuencias

p==amp=q

61

Guia Raacutepida de uso del Sistema S3C

Cuando se definan niultiples metodos lsquoinainrsquo en el diagrama de clases

Multiples meacutetodos lsquomainOlsquo Imposible decidir el inicio de secuencia

Aceptar i

Si un meacutetodo definido en Wamier realiza una llamada a lsquomainrsquo se cancelara el proceso

Llamada NO VALIDA al meacutetodo principal main

(iAcp-j(

4 i

CI Y rdquoldquoldquoI i 11 1-T

IZNTRO Gt INFORMACION

62

  • Tabla de Contenido
  • Listado de Figuras
  • Listado de Tablas
  • Notacioacuten
  • Introduccioacuten
  • Capitulo 1 Conceptos Generales
    • 11 Antecedentes
    • 12 Trabajos relacionados
      • 121 Tabla comparativa
        • 13 Definicioacuten del problema
        • 14 Objetivo de la Tesis
          • Objetivos especiacuteficos de la tesis
            • 15 Hipoacutetesis de investigacioacuten
            • 16 Alcances y limitaciones del trabajo de tesis
              • Capitulo 2 Marco Teoacuterico
                • 21 Modelado de sistemas de software
                • 22 Interfaz de usuario (Mecanismos de interaccioacuten)
                • 23 Lenguajes Visuales
                • 24 Programacioacuten orientada a objetos
                • 25 Lenguaje de Modelado Unificado (UML)
                  • Desarrollo de la herramienta
                    • 31 Disentildeo de la Arquitectura
                      • 311 Requisitos (Diagrama de Casos de uso)
                        • 312Modelo Conceptual
                        • 313Diagramas de clases
                        • 32 Elementos de la arquitectura
                          • 321 Microsoft Foundation Class (MFC)
                            • 322Arquitectura Documento Vista
                            • 323Integrando Ambientes en Visual c++
                              • 324 Interfaz de Muacuteltiples Documentos (MDI)
                                • 325Recursos Diaacutelogos Menus y Barras de Herramientas
                                  • 326 Notacioacuten estaacutendar
                                  • 327 Estructura de datos persistencia y recuperacioacuten
                                    • 328Patrones de disentildeo utilizados
                                      • 33 Diagrama de secuencias
                                        • 331Ciclo de vida del software
                                          • 34 Elementos atoacutemicos de la Gramaacutetica
                                            • 341 Representacioacuten visual
                                              • 35 Gramaacutetica desarrollada
                                              • 36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias
                                                  • Capitulo 4 Pruebas y Resultados
                                                    • 41 Recursos teacutecnicos utilizados
                                                    • 42 Descripcioacuten del plan de pruebas
                                                    • 43 Resultados
                                                      • 431 Caso
                                                      • 432 Caso2
                                                      • 433 Caso
                                                          • Conclusiones y trabajos futuros
                                                            • Trabajos futuros
                                                            • Referencias
                                                            • Anexo A Configuracioacuten de Microsoft Visual C+t
                                                              • Figura 11 - Arquitectura de la suite cenidet-UML
                                                              • Figura 21 -Programacioacuten Visual
                                                              • Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de
                                                              • Figura 32 -Diagrama de Casos de Uso para el S3C
                                                              • Figura 33 -Modelo Conceptual
                                                              • Figura 34 - Diagrama de Clases -Control del Diagrama -
                                                              • Figura 35 - Diagrama de Clases - Patroacuten Visitor -
                                                              • Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento
                                                              • Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)
                                                              • Figura 38 -Dialogo Caracteriacutesticas del Objeto
                                                              • Figura 39 -Dialogo Mensaje
                                                              • Figura 3 IO - Menuacute de los Diagramas de Secuencias (estaacutendar)
                                                              • Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias
                                                              • Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)
                                                              • Figura 313 - Serializacioacuten
                                                              • Figura 314 -Modelo de cascada del ciclo de vida del software
                                                              • Figura 41 - Resultado del caso de prueba
                                                              • Figura 42 -Resultado del caso de prueba
                                                              • Figura 43 -Resultado del caso de prueba
                                                              • Figura 44 -Resultado del caso de prueba
                                                              • Tabla 11 - Tabla comparativa
                                                              • Tabla 31 -Prefijos estaacutendar de identificadores
                                                              • Tabla 32 -Elementos atoacutemicos del lenguaje
                                                              • Tabla 41 - Resumen de los resultados de las pruebas realizadas

Capiacutetulo 4

Prue6as y su6taaacuteos

En eacuteste capiacutetulo se da a conocer el detalle de las pruebas y de los resultados obtenidos Se describen los casos de prueba con los que se realizoacute la evaluacioacuten del sistema asiacute tambieacuten se presentan comentarios acerca de los resultados obtenidos

Pruebas y Resultados

41 Recursos teacutecnicos utilizados

Para llevar a cabo las pruebas al sistema S3C se utilizaron los siguientes equipos de Coacutemputo

Computadora de escritorio

256MB RAM Disco Duro 80G Monitor 17rdquo SAMSUNG

AMD Athlon XP 1600+ I4Ghz

Computadora de escritorio Intel Pentium 4 - 128MB RAM Disco Duro 40G Monitor 15rdquo i -

42 Descripcioacuten del plan de pruebas

Las pruebas establecen el Uacuteltimo paso desde donde es posible evaluar la calidad y descubrir los errores Las pruebas y la validacioacuten del software se utilizan para comprobar que el sistema cumple con las expectativas del usuario

En esta seccioacuten se describen los casos de prueba que se realizaron al prototipo de S3C en conjunto a la suite cenidet-UML Para cada uno de los casos se presenta el objetivo el procedimiento que se siguioacute para la prueba y se muestran los resultados obtenidos - _

Las pruebas a realizar son los siguientes

Caso 1 Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Caso 2 Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Wamier

Caso3 Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Wamier

Caso4 Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo 5

44

Pruebas y Resultados

43 Resultados

431 Caso 1

5 Y

IZ =

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoSirdquo 4 Seleccionar el archivo ldquoVENTASrdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 41 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

s3c iuevo Proyecto SCUM1

Diagrama de clases

lvendedor I L

3

salida

venta prod

4 venia-oferta vcntaprod =

salida 6

Figura 41 Resultado del caso de prueba 1

45

Pruebas y Resultados

432 Caso 2

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Warnier (almacenwar cajawar vendedorwar) que ya cxisten (del caso de prueba I )

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoNordquo 4 Agregar las siguientes Clases con los respectivos meacutetodos y atributos

a Claseldquovendedorrdquo Meacutetodos ldquoventa mainrdquo b Claseldquoalmacenrdquo Meacutetodos ldquoentrada salidardquo c Claseldquocajardquo Meacutetodos ldquoventagrodrdquo

5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 42 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

Diagrama de daseo lisgrama dcsccucncis

MOIDOC Anivo

venta prod

salida

1 Ycrdquo1a 2

I 4 vcrdquolD~o1cn venta prod gt

salida 6 i Figura 42 Resultado del caso de prueba 2

46

Pruebas y Resultados

r

433 Caso 3

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Warnier

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 43 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

5

Error al tratar de abrir el archivo A bZwar

Aceptar i

Faltan Archivos de Disentildeos Detallados de Meacutetodos 1 1 A No se puede crear el diagrama de secuencias

Figura 43 Resultado del caso de prueba 3

47

Pruebas y Resultados

434 Caso 4

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 44 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

lsquo I

~ _ i i _ l _ Repaado ~~ ~ ~ 6~ ampA Figura 44 Resultado del caso de prueba 4

48

Pruebas y Resultados

PRUEBA DESCNPCION CASO 1 Mostrar la funcionalidad del

Sistema S3C a partir de un

44 Anaacutelisis de Resultados

RESULTADOS Se comproboacute la correcta funcionalidad del Sistema S3C a partir de un diagrama

CASO 3

CASO4

I diagrama de Clases cxistcnte I de Clases existente CASO 2 I Mostrar la funcionalidad del I Sc comproboacute la corrccta funcionalidad

Sistema S3C a partir de un del Sistema S3C a partir de un diagrama diagrama de Clases que se de Clases que se construye al momento construye al momento Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el Secuencias si falta alguno de los diagrama de Secuencia si falta alguno diagramas de Warnier Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el secuencias si hace falta el meacutetodo diagrama de Secuencias al faltar el ldquomain ()rdquo meacutetodo ldquomain()rdquo

de los diagramas de Warnier

Los resultados obtenidos de cada uno de los casos establecidos demuestran que se validoacute la funcionalidad del prototipo con los requisitos definidos en el alcance de este proyecto

a lt

49

Conclusiones y Tru6ajos Futuros

Aquiacute se dan a conocer las conclusiones y se describen los posibles trabajos futuros para la continuacioacuten de eacuteste proyecto

F

51 Conclusiones

Conclusiones y trabajos futuros

Se ha creado un Ambiente Visual que permite obtener de forma automaacutetica los Diagramas de Secuencias en base a los diagramas de Clases y al disentildeo detallado de los meacutetodos descritos con diagramas de Warnier cumpliendo con los objetivos planteados para este trabajo

La tesis aporta principalmente La generacioacuten automaacutetica de los diagramas de secuencias y la eliminacioacuten de inconsistencias al mantener una validacioacuten directa de los diagramas de clases y los diagramas de Warnier que son utilizados

Esta validacioacuten es lograda a traveacutes del uso de la gramaacutetica visual relaciona1 que se ha definido (veacutease el capiacutetulo 3) Esta gramaacutetica visual establece reglas para la correcta construccioacuten de los diagramas de secuencias

P De esta manera se establece que la hipoacutetesis ldquoEs posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodosrdquo Es verdadera

52 Trabajos Futuros

Un Diagrama de Secuencias puede convertirse en un Diagrama de Colaboracioacuten por lo tanto un trabajo futuro es la construccioacuten automaacutetica de un Diagrama de Colaboracioacuten a partir de uno de Secuencias existente

Es posible calcular la meacutetrica de acoplamiento al tener un Diagrama de Secuencias construido

La Ingenieriacutea directa de un Diagrama de Secuencias estableciendo la validacioacuten en la construccioacuten de todos los elementos visuales que UML define

La propagacioacuten de las modificaciones de un Diagrama de Secuencias a los Diagramas de Clases y los Diagramas de Warnier

La modificacioacuten del coacutedigo fuente mediante los cambios establecidos en un Diagrama de Secuencias

51

[ALC03]

[BLA98]

[B0099]

[BOOOi]

[BR097]

[CHA90]

[DAN02]

[GLA02]

[HAC98]

[HER03]

4

Alcate1 Computer Associates International inc Electronic Data Systems Corporation Hewlett-Packard Company IBM Corporation I-Logix IntelliCorp Kabira Technologies Kennedy Carter Microsoft Corporation Object Management Group Oracle Corporation Project Technology Ptech Inc Rational Software Corporation Reich Technologies Softeam Taskon A S Telelogic Unisys Corporation ldquoOMG Unified Modeling Language Specificationrdquo Version 15 Unified Modeling Language 2003

Blaha Michael Rumbaugh James Premerlani William Eddy Frederick Lorensen William ldquoObject-oriented modeling and designrdquo Prentice Hall 484 Paacuteginas ISBN 0-13-629841-9 QA-769-03S-B53-19981998

Booch Grady Rumbaugh James Jacobson Ivar ldquoEl lenguaje unificado de modeladordquo Addison Wesley 432 Paacuteginas ISBN 84-7829-028-1 1999

Booch Grady Rumbaugh James Jacobson Ivar ldquoThe Unified Modeling Language User Guiderdquo Addison Wesley 2001

Brown David ldquoAn introduction to object-oriented analysis objects in plain Englishrdquo John Whiley amp Sons Inc 700 Paginas ISBN 0-471-1 1028-0 QA-769-035-B76-1997 1997

Chang Shi-Kuo ldquoVisual Languages and visual programmingrdquo Plenum Press 340 Paacuteginas ISBN 0-306-43428-8 QA-7665-V57-1990 1990

Daniels John ldquoModeling with a sense of purposerdquo Design - IEEE Software JanuaryEebmary 2002

Glasgow Universidad Reino Unido ldquoA UML Editor in Javardquo (lthttplstudentsdcsglaacuWstudentspainjfproject-reportproject-re port-htmV4thYearReporthtrnlgt 2002)

T Hackos JoAnn C Redish Janice ldquoUser and Task Analysis for Interface Designrdquo Wiley Computer Publishing 488 Paacuteginas ISBN QA-769-U83- H33-1998 1998

Hemaacutendez Velaacutezquez M ldquoIngenieriacutea inversa de coacutedigo fuente en C++ para la obtencioacuten de su disentildeordquo Tesis AT-379 (03-0334) 2003

Conceptos generales

[HIX93]

[JAC93]

[JAC99]

[JOY98]

[LAR97]

[MAR]

[MIC99]

[MIC02]

[MOU98]

Hix Deborah Hartson H Rex ldquoDeveloping user interfacesrdquo 381 Paacuteginas ISBN 0-471-57813-4 QA-769-U83-H59-1993 1993

Jacobson Ivar Christerson Magnus Jonsson Patrik Overgaard Gunnar ldquoObject oriented software engineeringrdquo Addison Wesley ISBN 0-20 1 - 54435-0 QA-7676-D47-J63-1993 1993

Jacobson Ivar Booch Grady Rumbaugh James ldquoEl proceso unificado de desarrollo de softwarerdquo Addison Wesley 438 Paacuteginas ISBN 84-7829-036- 2 1999

Joyanes Aguilar Luis ldquoProgramacioacuten orientada a objetosrdquo McGruw Hill ISBN 84-481-0590-7 1998

Larman Craig ldquoAplying UML and Patternsrdquo Prentice Hull 507 Paacuteginas ISBN 0-13-748880-7 QA-769-035-L37-1997 1997

Marriot Kim Meyer Bemd ldquoVisual Language Theoryrdquo Springer 381 Paacuteginas P-935-V567-1998 1998

Microsoft ldquoMicrosoft Visual C++ 6 manual del programadorrdquo McGraw Hill ISBN 84-481-2127-9 QA-7673-Cl53-23718-1999 1999

Microsoft ldquoVisiordquo (lthttpwwwmicrosoftcomofficevisiogt 2002)

B Mourao Luis X ldquoUniversal Modeling Language Part 11 UML Notation - Case Sequence and Collaboration Diagramsrdquo Lan Times Magazine (~httpwwwlantimescomltpartsdiscussdiscuss6Ohtm~) 1998

No Magic ldquoMagicDrawrdquo (lthttpwwwmagicdrawcomgt 2002)

Object Insight ldquoJvisionrdquo (lthttpwwwobject-insightcomgt 2002)

Rational Software Microsoft I Hewlett-Packard Oracle Sterling Software MCI Systemhouse Unisys ICON Computing IntelliCorp i-Logix IBM ObjectTime Platinum Technology Ptech Taskon Reich Technologies Sofieam ldquoUML Summaryrdquo Version 11 Unified Modeling Language 1997

Rational ldquoRational Roserdquo (lthttpwwwrationalcomproductosrosegt 2002)

Rikki Kirzner ldquoAnalysis Modeling and Design Tools Market Forecast and Analysis 2001-2005rdquo Bulletin Published Under Services Application Design and Construction Tools Application Development and Deployment Strategies Documento Nuacutemero 24809 Junio 2001

53

Conceptos generales

[RIM92] Rimrner Steve ldquoGraphical user interface programmingrdquo 423 Paacuteginas

1992

Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language reference manualrdquo Addison Wesley 550 Paacuteginas ISBN 0-201-

ISBN 0-8306-2475-9 ISBN 0-8306-2472-4 (pbk) QA-769-083-R55G

[RUM99]

30998-X QA-7676-D47-R85-1999 1999

[RUM299] Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language user guiderdquo Addisoiz Wesley 482 Paacuteginas ISBN 0-201 -57 168-4 QA-7676-D47-B66-1999 1999

[SMA02] SmartDraw ldquoSmartDrawrdquo (lthttpwwwsmartdrawcomgt 2002)

[SHU88] 9 - Shu Nun C ldquoVisual Programmingrdquo Van Nostrand Reinhold ISBN 0-422- 28014-9 ISBN 0-422-01 164-4 QA-7665-S55 1988

[THI90] Thimbleby Harold ldquoUser Interface Designrdquo Acm press 470 Paacuteginas ISBN 0-201 -41 61 8-2 QA-769U83-T772~- 1990 1990

[WENO2] Wences Diaz MF ldquoModelo de Ingenieriacutea Inversa para la obtencioacuten de disentildeo detallado basado en LEVISSrdquo Tesis (02-0014) 2002

54

Anexo A

Conampuracioacuten de Microsoft Vkua[C++ 6 O

Este anexo indica las configuraciones que se utilizaron para la compilacioacuten de SCUML y s3c

Configuracioacuten de Microsoft Visual c++ 60

Debido a la integracioacuten de los proyectos de InverSOODA e InverDDVi con S3C se cumplioacute con los requisitos previos de ambos proyectos

El compilador usado en el proyecto fue el Microsoft Visual C++ 60

Para el cumplimiento con la funcionalidad de InverSOODA se instaloacute el ANTLR la versioacuten 271 Se descargoacute del sitio l i l l ~ ~ ~ ~ ~ ~ t l ~ l ~ - ~ t - ~ la versioacuten mencionada en un archivo comprimido (en formato zip) Se colocoacute el paquete descomprimido en el directorio ldquoDIANTLR-271 I rdquo

Recomiendo ampliamente que el directorio principal de ANTLR se copie en el directorio raiacutez de cualquier unidad de disco debido a que experimenteacute problemas de compilacioacuten cuando ANTLR no se encontraba en el directorio raiacutez

Io015

Source Browser AlttF12 I u c Ersquo V I

Visual Component Mgnager

- - ~ ~ ~ ~~

P2 Registrar control

A Contenedor de prueba de controles ActiveX

A Usor de objetos OLE y COM

Buacutesqueda de errores

A Y++ MFC Iracer

Customize options

~ - q- ~ Macro

Eecord Quick Macro Cbl+ShiR+R Pay Quick Macro Ctrl+ShiR+P

En el menuacute Tools (Herramientas) seleccione el sub-menuacute Options ltopcionesgt

56

Configuracioacuten de Microsoft Visual C++ 60

En la siguiente ventana de diaacutelogo debe agregar la direccioacuten en donde se encuentra el ANTLR

Agregar la ruta del directorio de ANTLR hasta el subdirectorio

libcpp

Editor I Tabs I Debug I Compatibility 1 Build Dneclolies I a I Chow directories for - Platfolm -

- Directories I x ) 4 jWin32 -] llnclude files

m cancd I

57

Configuracioacuten de Microsoft Visual C t+ 60

Se ha creado una libreriacutea (anrlrliblib) de ANTLR la cual ya estaacute situada en el directorio del proyecto SCUML (ISCUML) y no debe ser movida o eliminada

I

Geneial 1 Debug I CC++ Link I Category

Output file name bebugSCUMLexe

Objectljibrary modules 4 anllrliblib

li Generate debug lnfo r Ignore all defaull lbaries D ~ i n k j n ~ ~ ~ t a n ~ r ~ e n e r ~ ~ ~ mapfile

r Enable psafilrng

Proiec1 Ootionn

pq Cancel 1 Libreriacutea de ANTLR que debe existir 1 I para que se compile correctamente

58

Anexo B

~ u iacute aacute raacutepida de uso deC Sistema S3C

5 Este anexo indica de forma raacutepida la manera de utilizar S3C para crear un diagrama de secuencias de forma automaacutetica

Guiacutea Raacutepida de uso del Sistema S3C i

Para indicar la creacioacuten de un diagrama de secuencias en forma automaacutetica se debe ir a la barra del costado izquierdo y presionar ldquoNuevo Proyecto SCUMLrdquo

I s3c I ~ Nuevo Proyecto SCUML ~ _ _ - I Diagrama de clases ~ Diagrama de secuencias 1 MDI DOC Activo

-

Apareceraacute un documento llamado ldquoSCUMLV en donde el simbolo corresponde a un numero consecutivo iniciando desde 1 (uno)

$ e Despueacutes se presiona ldquoDiagrama de clasesrdquo Habraacute que para indicarle al sistema si se requiere abrir un diagrama de clases existente o realizar uno nuevo

i

iquestAbrir un documento existente

No Cardquo~ear

AI presionar ldquoSirdquo se debe indicar cual es el archivo del diagrama de Clases en el cuadro de diaacutelogo siguiente

~~ - 11dMis documentos rsquo 2 M i P C i lsquo h s sitios de red

I

AI presionar ldquoNordquo en ldquoAbrir un documento existenterdquo se nos mostraraacute un documento vacio para crear un diagrama de clases

60

Guiacutea Raacutepida de uso del Sistema S3C

Para ambas opciones se requiere que los diagramas de Wamier ya se encuentren construidos Y para continuar el proccso se selecciona el documento ldquoSCUMLVrsquo creado al inicio y despueacutes presionar el botoacuten nombrado ldquoDiagrama de secuenciasrdquo localizado en la barra de hcrraiiiicntas del costado izquierdo

Ha iniciado el proceso de construccioacuten del diagrama de secuencias Si no existen errores al terminar el proceso se le mostraraacute un cuadro de diaacutelogo llamado ldquoResultadosrdquo en donde le mostraraacute las llamadas de las que no localizoacute su definicioacuten

- - -

Cancel 1 D e las siguientes llamadas es posible que esten mal escritas o peitenezcan a la libreiia del Lenguaie Verifique ya que no se encontraron sus definiciones

A continuacioacuten se mencionan los posibles errores que finalizan el proceso de la creacioacuten automaacutetica de los diagramas de secuencias en S3C

Cuando no exista un meacutetodo lsquomainrsquo definido en el diagrama de clases

No se encontro el meacutetodo lsquomain()rsquo que inicie la secuencia I A No se puede crear el diagrama de secuencias

p==amp=q

61

Guia Raacutepida de uso del Sistema S3C

Cuando se definan niultiples metodos lsquoinainrsquo en el diagrama de clases

Multiples meacutetodos lsquomainOlsquo Imposible decidir el inicio de secuencia

Aceptar i

Si un meacutetodo definido en Wamier realiza una llamada a lsquomainrsquo se cancelara el proceso

Llamada NO VALIDA al meacutetodo principal main

(iAcp-j(

4 i

CI Y rdquoldquoldquoI i 11 1-T

IZNTRO Gt INFORMACION

62

  • Tabla de Contenido
  • Listado de Figuras
  • Listado de Tablas
  • Notacioacuten
  • Introduccioacuten
  • Capitulo 1 Conceptos Generales
    • 11 Antecedentes
    • 12 Trabajos relacionados
      • 121 Tabla comparativa
        • 13 Definicioacuten del problema
        • 14 Objetivo de la Tesis
          • Objetivos especiacuteficos de la tesis
            • 15 Hipoacutetesis de investigacioacuten
            • 16 Alcances y limitaciones del trabajo de tesis
              • Capitulo 2 Marco Teoacuterico
                • 21 Modelado de sistemas de software
                • 22 Interfaz de usuario (Mecanismos de interaccioacuten)
                • 23 Lenguajes Visuales
                • 24 Programacioacuten orientada a objetos
                • 25 Lenguaje de Modelado Unificado (UML)
                  • Desarrollo de la herramienta
                    • 31 Disentildeo de la Arquitectura
                      • 311 Requisitos (Diagrama de Casos de uso)
                        • 312Modelo Conceptual
                        • 313Diagramas de clases
                        • 32 Elementos de la arquitectura
                          • 321 Microsoft Foundation Class (MFC)
                            • 322Arquitectura Documento Vista
                            • 323Integrando Ambientes en Visual c++
                              • 324 Interfaz de Muacuteltiples Documentos (MDI)
                                • 325Recursos Diaacutelogos Menus y Barras de Herramientas
                                  • 326 Notacioacuten estaacutendar
                                  • 327 Estructura de datos persistencia y recuperacioacuten
                                    • 328Patrones de disentildeo utilizados
                                      • 33 Diagrama de secuencias
                                        • 331Ciclo de vida del software
                                          • 34 Elementos atoacutemicos de la Gramaacutetica
                                            • 341 Representacioacuten visual
                                              • 35 Gramaacutetica desarrollada
                                              • 36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias
                                                  • Capitulo 4 Pruebas y Resultados
                                                    • 41 Recursos teacutecnicos utilizados
                                                    • 42 Descripcioacuten del plan de pruebas
                                                    • 43 Resultados
                                                      • 431 Caso
                                                      • 432 Caso2
                                                      • 433 Caso
                                                          • Conclusiones y trabajos futuros
                                                            • Trabajos futuros
                                                            • Referencias
                                                            • Anexo A Configuracioacuten de Microsoft Visual C+t
                                                              • Figura 11 - Arquitectura de la suite cenidet-UML
                                                              • Figura 21 -Programacioacuten Visual
                                                              • Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de
                                                              • Figura 32 -Diagrama de Casos de Uso para el S3C
                                                              • Figura 33 -Modelo Conceptual
                                                              • Figura 34 - Diagrama de Clases -Control del Diagrama -
                                                              • Figura 35 - Diagrama de Clases - Patroacuten Visitor -
                                                              • Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento
                                                              • Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)
                                                              • Figura 38 -Dialogo Caracteriacutesticas del Objeto
                                                              • Figura 39 -Dialogo Mensaje
                                                              • Figura 3 IO - Menuacute de los Diagramas de Secuencias (estaacutendar)
                                                              • Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias
                                                              • Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)
                                                              • Figura 313 - Serializacioacuten
                                                              • Figura 314 -Modelo de cascada del ciclo de vida del software
                                                              • Figura 41 - Resultado del caso de prueba
                                                              • Figura 42 -Resultado del caso de prueba
                                                              • Figura 43 -Resultado del caso de prueba
                                                              • Figura 44 -Resultado del caso de prueba
                                                              • Tabla 11 - Tabla comparativa
                                                              • Tabla 31 -Prefijos estaacutendar de identificadores
                                                              • Tabla 32 -Elementos atoacutemicos del lenguaje
                                                              • Tabla 41 - Resumen de los resultados de las pruebas realizadas

Pruebas y Resultados

41 Recursos teacutecnicos utilizados

Para llevar a cabo las pruebas al sistema S3C se utilizaron los siguientes equipos de Coacutemputo

Computadora de escritorio

256MB RAM Disco Duro 80G Monitor 17rdquo SAMSUNG

AMD Athlon XP 1600+ I4Ghz

Computadora de escritorio Intel Pentium 4 - 128MB RAM Disco Duro 40G Monitor 15rdquo i -

42 Descripcioacuten del plan de pruebas

Las pruebas establecen el Uacuteltimo paso desde donde es posible evaluar la calidad y descubrir los errores Las pruebas y la validacioacuten del software se utilizan para comprobar que el sistema cumple con las expectativas del usuario

En esta seccioacuten se describen los casos de prueba que se realizaron al prototipo de S3C en conjunto a la suite cenidet-UML Para cada uno de los casos se presenta el objetivo el procedimiento que se siguioacute para la prueba y se muestran los resultados obtenidos - _

Las pruebas a realizar son los siguientes

Caso 1 Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Caso 2 Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Wamier

Caso3 Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Wamier

Caso4 Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo 5

44

Pruebas y Resultados

43 Resultados

431 Caso 1

5 Y

IZ =

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoSirdquo 4 Seleccionar el archivo ldquoVENTASrdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 41 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

s3c iuevo Proyecto SCUM1

Diagrama de clases

lvendedor I L

3

salida

venta prod

4 venia-oferta vcntaprod =

salida 6

Figura 41 Resultado del caso de prueba 1

45

Pruebas y Resultados

432 Caso 2

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Warnier (almacenwar cajawar vendedorwar) que ya cxisten (del caso de prueba I )

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoNordquo 4 Agregar las siguientes Clases con los respectivos meacutetodos y atributos

a Claseldquovendedorrdquo Meacutetodos ldquoventa mainrdquo b Claseldquoalmacenrdquo Meacutetodos ldquoentrada salidardquo c Claseldquocajardquo Meacutetodos ldquoventagrodrdquo

5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 42 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

Diagrama de daseo lisgrama dcsccucncis

MOIDOC Anivo

venta prod

salida

1 Ycrdquo1a 2

I 4 vcrdquolD~o1cn venta prod gt

salida 6 i Figura 42 Resultado del caso de prueba 2

46

Pruebas y Resultados

r

433 Caso 3

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Warnier

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 43 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

5

Error al tratar de abrir el archivo A bZwar

Aceptar i

Faltan Archivos de Disentildeos Detallados de Meacutetodos 1 1 A No se puede crear el diagrama de secuencias

Figura 43 Resultado del caso de prueba 3

47

Pruebas y Resultados

434 Caso 4

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 44 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

lsquo I

~ _ i i _ l _ Repaado ~~ ~ ~ 6~ ampA Figura 44 Resultado del caso de prueba 4

48

Pruebas y Resultados

PRUEBA DESCNPCION CASO 1 Mostrar la funcionalidad del

Sistema S3C a partir de un

44 Anaacutelisis de Resultados

RESULTADOS Se comproboacute la correcta funcionalidad del Sistema S3C a partir de un diagrama

CASO 3

CASO4

I diagrama de Clases cxistcnte I de Clases existente CASO 2 I Mostrar la funcionalidad del I Sc comproboacute la corrccta funcionalidad

Sistema S3C a partir de un del Sistema S3C a partir de un diagrama diagrama de Clases que se de Clases que se construye al momento construye al momento Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el Secuencias si falta alguno de los diagrama de Secuencia si falta alguno diagramas de Warnier Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el secuencias si hace falta el meacutetodo diagrama de Secuencias al faltar el ldquomain ()rdquo meacutetodo ldquomain()rdquo

de los diagramas de Warnier

Los resultados obtenidos de cada uno de los casos establecidos demuestran que se validoacute la funcionalidad del prototipo con los requisitos definidos en el alcance de este proyecto

a lt

49

Conclusiones y Tru6ajos Futuros

Aquiacute se dan a conocer las conclusiones y se describen los posibles trabajos futuros para la continuacioacuten de eacuteste proyecto

F

51 Conclusiones

Conclusiones y trabajos futuros

Se ha creado un Ambiente Visual que permite obtener de forma automaacutetica los Diagramas de Secuencias en base a los diagramas de Clases y al disentildeo detallado de los meacutetodos descritos con diagramas de Warnier cumpliendo con los objetivos planteados para este trabajo

La tesis aporta principalmente La generacioacuten automaacutetica de los diagramas de secuencias y la eliminacioacuten de inconsistencias al mantener una validacioacuten directa de los diagramas de clases y los diagramas de Warnier que son utilizados

Esta validacioacuten es lograda a traveacutes del uso de la gramaacutetica visual relaciona1 que se ha definido (veacutease el capiacutetulo 3) Esta gramaacutetica visual establece reglas para la correcta construccioacuten de los diagramas de secuencias

P De esta manera se establece que la hipoacutetesis ldquoEs posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodosrdquo Es verdadera

52 Trabajos Futuros

Un Diagrama de Secuencias puede convertirse en un Diagrama de Colaboracioacuten por lo tanto un trabajo futuro es la construccioacuten automaacutetica de un Diagrama de Colaboracioacuten a partir de uno de Secuencias existente

Es posible calcular la meacutetrica de acoplamiento al tener un Diagrama de Secuencias construido

La Ingenieriacutea directa de un Diagrama de Secuencias estableciendo la validacioacuten en la construccioacuten de todos los elementos visuales que UML define

La propagacioacuten de las modificaciones de un Diagrama de Secuencias a los Diagramas de Clases y los Diagramas de Warnier

La modificacioacuten del coacutedigo fuente mediante los cambios establecidos en un Diagrama de Secuencias

51

[ALC03]

[BLA98]

[B0099]

[BOOOi]

[BR097]

[CHA90]

[DAN02]

[GLA02]

[HAC98]

[HER03]

4

Alcate1 Computer Associates International inc Electronic Data Systems Corporation Hewlett-Packard Company IBM Corporation I-Logix IntelliCorp Kabira Technologies Kennedy Carter Microsoft Corporation Object Management Group Oracle Corporation Project Technology Ptech Inc Rational Software Corporation Reich Technologies Softeam Taskon A S Telelogic Unisys Corporation ldquoOMG Unified Modeling Language Specificationrdquo Version 15 Unified Modeling Language 2003

Blaha Michael Rumbaugh James Premerlani William Eddy Frederick Lorensen William ldquoObject-oriented modeling and designrdquo Prentice Hall 484 Paacuteginas ISBN 0-13-629841-9 QA-769-03S-B53-19981998

Booch Grady Rumbaugh James Jacobson Ivar ldquoEl lenguaje unificado de modeladordquo Addison Wesley 432 Paacuteginas ISBN 84-7829-028-1 1999

Booch Grady Rumbaugh James Jacobson Ivar ldquoThe Unified Modeling Language User Guiderdquo Addison Wesley 2001

Brown David ldquoAn introduction to object-oriented analysis objects in plain Englishrdquo John Whiley amp Sons Inc 700 Paginas ISBN 0-471-1 1028-0 QA-769-035-B76-1997 1997

Chang Shi-Kuo ldquoVisual Languages and visual programmingrdquo Plenum Press 340 Paacuteginas ISBN 0-306-43428-8 QA-7665-V57-1990 1990

Daniels John ldquoModeling with a sense of purposerdquo Design - IEEE Software JanuaryEebmary 2002

Glasgow Universidad Reino Unido ldquoA UML Editor in Javardquo (lthttplstudentsdcsglaacuWstudentspainjfproject-reportproject-re port-htmV4thYearReporthtrnlgt 2002)

T Hackos JoAnn C Redish Janice ldquoUser and Task Analysis for Interface Designrdquo Wiley Computer Publishing 488 Paacuteginas ISBN QA-769-U83- H33-1998 1998

Hemaacutendez Velaacutezquez M ldquoIngenieriacutea inversa de coacutedigo fuente en C++ para la obtencioacuten de su disentildeordquo Tesis AT-379 (03-0334) 2003

Conceptos generales

[HIX93]

[JAC93]

[JAC99]

[JOY98]

[LAR97]

[MAR]

[MIC99]

[MIC02]

[MOU98]

Hix Deborah Hartson H Rex ldquoDeveloping user interfacesrdquo 381 Paacuteginas ISBN 0-471-57813-4 QA-769-U83-H59-1993 1993

Jacobson Ivar Christerson Magnus Jonsson Patrik Overgaard Gunnar ldquoObject oriented software engineeringrdquo Addison Wesley ISBN 0-20 1 - 54435-0 QA-7676-D47-J63-1993 1993

Jacobson Ivar Booch Grady Rumbaugh James ldquoEl proceso unificado de desarrollo de softwarerdquo Addison Wesley 438 Paacuteginas ISBN 84-7829-036- 2 1999

Joyanes Aguilar Luis ldquoProgramacioacuten orientada a objetosrdquo McGruw Hill ISBN 84-481-0590-7 1998

Larman Craig ldquoAplying UML and Patternsrdquo Prentice Hull 507 Paacuteginas ISBN 0-13-748880-7 QA-769-035-L37-1997 1997

Marriot Kim Meyer Bemd ldquoVisual Language Theoryrdquo Springer 381 Paacuteginas P-935-V567-1998 1998

Microsoft ldquoMicrosoft Visual C++ 6 manual del programadorrdquo McGraw Hill ISBN 84-481-2127-9 QA-7673-Cl53-23718-1999 1999

Microsoft ldquoVisiordquo (lthttpwwwmicrosoftcomofficevisiogt 2002)

B Mourao Luis X ldquoUniversal Modeling Language Part 11 UML Notation - Case Sequence and Collaboration Diagramsrdquo Lan Times Magazine (~httpwwwlantimescomltpartsdiscussdiscuss6Ohtm~) 1998

No Magic ldquoMagicDrawrdquo (lthttpwwwmagicdrawcomgt 2002)

Object Insight ldquoJvisionrdquo (lthttpwwwobject-insightcomgt 2002)

Rational Software Microsoft I Hewlett-Packard Oracle Sterling Software MCI Systemhouse Unisys ICON Computing IntelliCorp i-Logix IBM ObjectTime Platinum Technology Ptech Taskon Reich Technologies Sofieam ldquoUML Summaryrdquo Version 11 Unified Modeling Language 1997

Rational ldquoRational Roserdquo (lthttpwwwrationalcomproductosrosegt 2002)

Rikki Kirzner ldquoAnalysis Modeling and Design Tools Market Forecast and Analysis 2001-2005rdquo Bulletin Published Under Services Application Design and Construction Tools Application Development and Deployment Strategies Documento Nuacutemero 24809 Junio 2001

53

Conceptos generales

[RIM92] Rimrner Steve ldquoGraphical user interface programmingrdquo 423 Paacuteginas

1992

Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language reference manualrdquo Addison Wesley 550 Paacuteginas ISBN 0-201-

ISBN 0-8306-2475-9 ISBN 0-8306-2472-4 (pbk) QA-769-083-R55G

[RUM99]

30998-X QA-7676-D47-R85-1999 1999

[RUM299] Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language user guiderdquo Addisoiz Wesley 482 Paacuteginas ISBN 0-201 -57 168-4 QA-7676-D47-B66-1999 1999

[SMA02] SmartDraw ldquoSmartDrawrdquo (lthttpwwwsmartdrawcomgt 2002)

[SHU88] 9 - Shu Nun C ldquoVisual Programmingrdquo Van Nostrand Reinhold ISBN 0-422- 28014-9 ISBN 0-422-01 164-4 QA-7665-S55 1988

[THI90] Thimbleby Harold ldquoUser Interface Designrdquo Acm press 470 Paacuteginas ISBN 0-201 -41 61 8-2 QA-769U83-T772~- 1990 1990

[WENO2] Wences Diaz MF ldquoModelo de Ingenieriacutea Inversa para la obtencioacuten de disentildeo detallado basado en LEVISSrdquo Tesis (02-0014) 2002

54

Anexo A

Conampuracioacuten de Microsoft Vkua[C++ 6 O

Este anexo indica las configuraciones que se utilizaron para la compilacioacuten de SCUML y s3c

Configuracioacuten de Microsoft Visual c++ 60

Debido a la integracioacuten de los proyectos de InverSOODA e InverDDVi con S3C se cumplioacute con los requisitos previos de ambos proyectos

El compilador usado en el proyecto fue el Microsoft Visual C++ 60

Para el cumplimiento con la funcionalidad de InverSOODA se instaloacute el ANTLR la versioacuten 271 Se descargoacute del sitio l i l l ~ ~ ~ ~ ~ ~ t l ~ l ~ - ~ t - ~ la versioacuten mencionada en un archivo comprimido (en formato zip) Se colocoacute el paquete descomprimido en el directorio ldquoDIANTLR-271 I rdquo

Recomiendo ampliamente que el directorio principal de ANTLR se copie en el directorio raiacutez de cualquier unidad de disco debido a que experimenteacute problemas de compilacioacuten cuando ANTLR no se encontraba en el directorio raiacutez

Io015

Source Browser AlttF12 I u c Ersquo V I

Visual Component Mgnager

- - ~ ~ ~ ~~

P2 Registrar control

A Contenedor de prueba de controles ActiveX

A Usor de objetos OLE y COM

Buacutesqueda de errores

A Y++ MFC Iracer

Customize options

~ - q- ~ Macro

Eecord Quick Macro Cbl+ShiR+R Pay Quick Macro Ctrl+ShiR+P

En el menuacute Tools (Herramientas) seleccione el sub-menuacute Options ltopcionesgt

56

Configuracioacuten de Microsoft Visual C++ 60

En la siguiente ventana de diaacutelogo debe agregar la direccioacuten en donde se encuentra el ANTLR

Agregar la ruta del directorio de ANTLR hasta el subdirectorio

libcpp

Editor I Tabs I Debug I Compatibility 1 Build Dneclolies I a I Chow directories for - Platfolm -

- Directories I x ) 4 jWin32 -] llnclude files

m cancd I

57

Configuracioacuten de Microsoft Visual C t+ 60

Se ha creado una libreriacutea (anrlrliblib) de ANTLR la cual ya estaacute situada en el directorio del proyecto SCUML (ISCUML) y no debe ser movida o eliminada

I

Geneial 1 Debug I CC++ Link I Category

Output file name bebugSCUMLexe

Objectljibrary modules 4 anllrliblib

li Generate debug lnfo r Ignore all defaull lbaries D ~ i n k j n ~ ~ ~ t a n ~ r ~ e n e r ~ ~ ~ mapfile

r Enable psafilrng

Proiec1 Ootionn

pq Cancel 1 Libreriacutea de ANTLR que debe existir 1 I para que se compile correctamente

58

Anexo B

~ u iacute aacute raacutepida de uso deC Sistema S3C

5 Este anexo indica de forma raacutepida la manera de utilizar S3C para crear un diagrama de secuencias de forma automaacutetica

Guiacutea Raacutepida de uso del Sistema S3C i

Para indicar la creacioacuten de un diagrama de secuencias en forma automaacutetica se debe ir a la barra del costado izquierdo y presionar ldquoNuevo Proyecto SCUMLrdquo

I s3c I ~ Nuevo Proyecto SCUML ~ _ _ - I Diagrama de clases ~ Diagrama de secuencias 1 MDI DOC Activo

-

Apareceraacute un documento llamado ldquoSCUMLV en donde el simbolo corresponde a un numero consecutivo iniciando desde 1 (uno)

$ e Despueacutes se presiona ldquoDiagrama de clasesrdquo Habraacute que para indicarle al sistema si se requiere abrir un diagrama de clases existente o realizar uno nuevo

i

iquestAbrir un documento existente

No Cardquo~ear

AI presionar ldquoSirdquo se debe indicar cual es el archivo del diagrama de Clases en el cuadro de diaacutelogo siguiente

~~ - 11dMis documentos rsquo 2 M i P C i lsquo h s sitios de red

I

AI presionar ldquoNordquo en ldquoAbrir un documento existenterdquo se nos mostraraacute un documento vacio para crear un diagrama de clases

60

Guiacutea Raacutepida de uso del Sistema S3C

Para ambas opciones se requiere que los diagramas de Wamier ya se encuentren construidos Y para continuar el proccso se selecciona el documento ldquoSCUMLVrsquo creado al inicio y despueacutes presionar el botoacuten nombrado ldquoDiagrama de secuenciasrdquo localizado en la barra de hcrraiiiicntas del costado izquierdo

Ha iniciado el proceso de construccioacuten del diagrama de secuencias Si no existen errores al terminar el proceso se le mostraraacute un cuadro de diaacutelogo llamado ldquoResultadosrdquo en donde le mostraraacute las llamadas de las que no localizoacute su definicioacuten

- - -

Cancel 1 D e las siguientes llamadas es posible que esten mal escritas o peitenezcan a la libreiia del Lenguaie Verifique ya que no se encontraron sus definiciones

A continuacioacuten se mencionan los posibles errores que finalizan el proceso de la creacioacuten automaacutetica de los diagramas de secuencias en S3C

Cuando no exista un meacutetodo lsquomainrsquo definido en el diagrama de clases

No se encontro el meacutetodo lsquomain()rsquo que inicie la secuencia I A No se puede crear el diagrama de secuencias

p==amp=q

61

Guia Raacutepida de uso del Sistema S3C

Cuando se definan niultiples metodos lsquoinainrsquo en el diagrama de clases

Multiples meacutetodos lsquomainOlsquo Imposible decidir el inicio de secuencia

Aceptar i

Si un meacutetodo definido en Wamier realiza una llamada a lsquomainrsquo se cancelara el proceso

Llamada NO VALIDA al meacutetodo principal main

(iAcp-j(

4 i

CI Y rdquoldquoldquoI i 11 1-T

IZNTRO Gt INFORMACION

62

  • Tabla de Contenido
  • Listado de Figuras
  • Listado de Tablas
  • Notacioacuten
  • Introduccioacuten
  • Capitulo 1 Conceptos Generales
    • 11 Antecedentes
    • 12 Trabajos relacionados
      • 121 Tabla comparativa
        • 13 Definicioacuten del problema
        • 14 Objetivo de la Tesis
          • Objetivos especiacuteficos de la tesis
            • 15 Hipoacutetesis de investigacioacuten
            • 16 Alcances y limitaciones del trabajo de tesis
              • Capitulo 2 Marco Teoacuterico
                • 21 Modelado de sistemas de software
                • 22 Interfaz de usuario (Mecanismos de interaccioacuten)
                • 23 Lenguajes Visuales
                • 24 Programacioacuten orientada a objetos
                • 25 Lenguaje de Modelado Unificado (UML)
                  • Desarrollo de la herramienta
                    • 31 Disentildeo de la Arquitectura
                      • 311 Requisitos (Diagrama de Casos de uso)
                        • 312Modelo Conceptual
                        • 313Diagramas de clases
                        • 32 Elementos de la arquitectura
                          • 321 Microsoft Foundation Class (MFC)
                            • 322Arquitectura Documento Vista
                            • 323Integrando Ambientes en Visual c++
                              • 324 Interfaz de Muacuteltiples Documentos (MDI)
                                • 325Recursos Diaacutelogos Menus y Barras de Herramientas
                                  • 326 Notacioacuten estaacutendar
                                  • 327 Estructura de datos persistencia y recuperacioacuten
                                    • 328Patrones de disentildeo utilizados
                                      • 33 Diagrama de secuencias
                                        • 331Ciclo de vida del software
                                          • 34 Elementos atoacutemicos de la Gramaacutetica
                                            • 341 Representacioacuten visual
                                              • 35 Gramaacutetica desarrollada
                                              • 36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias
                                                  • Capitulo 4 Pruebas y Resultados
                                                    • 41 Recursos teacutecnicos utilizados
                                                    • 42 Descripcioacuten del plan de pruebas
                                                    • 43 Resultados
                                                      • 431 Caso
                                                      • 432 Caso2
                                                      • 433 Caso
                                                          • Conclusiones y trabajos futuros
                                                            • Trabajos futuros
                                                            • Referencias
                                                            • Anexo A Configuracioacuten de Microsoft Visual C+t
                                                              • Figura 11 - Arquitectura de la suite cenidet-UML
                                                              • Figura 21 -Programacioacuten Visual
                                                              • Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de
                                                              • Figura 32 -Diagrama de Casos de Uso para el S3C
                                                              • Figura 33 -Modelo Conceptual
                                                              • Figura 34 - Diagrama de Clases -Control del Diagrama -
                                                              • Figura 35 - Diagrama de Clases - Patroacuten Visitor -
                                                              • Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento
                                                              • Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)
                                                              • Figura 38 -Dialogo Caracteriacutesticas del Objeto
                                                              • Figura 39 -Dialogo Mensaje
                                                              • Figura 3 IO - Menuacute de los Diagramas de Secuencias (estaacutendar)
                                                              • Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias
                                                              • Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)
                                                              • Figura 313 - Serializacioacuten
                                                              • Figura 314 -Modelo de cascada del ciclo de vida del software
                                                              • Figura 41 - Resultado del caso de prueba
                                                              • Figura 42 -Resultado del caso de prueba
                                                              • Figura 43 -Resultado del caso de prueba
                                                              • Figura 44 -Resultado del caso de prueba
                                                              • Tabla 11 - Tabla comparativa
                                                              • Tabla 31 -Prefijos estaacutendar de identificadores
                                                              • Tabla 32 -Elementos atoacutemicos del lenguaje
                                                              • Tabla 41 - Resumen de los resultados de las pruebas realizadas

Pruebas y Resultados

43 Resultados

431 Caso 1

5 Y

IZ =

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un diagrama de Clases existente

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoSirdquo 4 Seleccionar el archivo ldquoVENTASrdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 41 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

s3c iuevo Proyecto SCUM1

Diagrama de clases

lvendedor I L

3

salida

venta prod

4 venia-oferta vcntaprod =

salida 6

Figura 41 Resultado del caso de prueba 1

45

Pruebas y Resultados

432 Caso 2

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Warnier (almacenwar cajawar vendedorwar) que ya cxisten (del caso de prueba I )

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoNordquo 4 Agregar las siguientes Clases con los respectivos meacutetodos y atributos

a Claseldquovendedorrdquo Meacutetodos ldquoventa mainrdquo b Claseldquoalmacenrdquo Meacutetodos ldquoentrada salidardquo c Claseldquocajardquo Meacutetodos ldquoventagrodrdquo

5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 42 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

Diagrama de daseo lisgrama dcsccucncis

MOIDOC Anivo

venta prod

salida

1 Ycrdquo1a 2

I 4 vcrdquolD~o1cn venta prod gt

salida 6 i Figura 42 Resultado del caso de prueba 2

46

Pruebas y Resultados

r

433 Caso 3

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Warnier

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 43 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

5

Error al tratar de abrir el archivo A bZwar

Aceptar i

Faltan Archivos de Disentildeos Detallados de Meacutetodos 1 1 A No se puede crear el diagrama de secuencias

Figura 43 Resultado del caso de prueba 3

47

Pruebas y Resultados

434 Caso 4

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 44 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

lsquo I

~ _ i i _ l _ Repaado ~~ ~ ~ 6~ ampA Figura 44 Resultado del caso de prueba 4

48

Pruebas y Resultados

PRUEBA DESCNPCION CASO 1 Mostrar la funcionalidad del

Sistema S3C a partir de un

44 Anaacutelisis de Resultados

RESULTADOS Se comproboacute la correcta funcionalidad del Sistema S3C a partir de un diagrama

CASO 3

CASO4

I diagrama de Clases cxistcnte I de Clases existente CASO 2 I Mostrar la funcionalidad del I Sc comproboacute la corrccta funcionalidad

Sistema S3C a partir de un del Sistema S3C a partir de un diagrama diagrama de Clases que se de Clases que se construye al momento construye al momento Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el Secuencias si falta alguno de los diagrama de Secuencia si falta alguno diagramas de Warnier Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el secuencias si hace falta el meacutetodo diagrama de Secuencias al faltar el ldquomain ()rdquo meacutetodo ldquomain()rdquo

de los diagramas de Warnier

Los resultados obtenidos de cada uno de los casos establecidos demuestran que se validoacute la funcionalidad del prototipo con los requisitos definidos en el alcance de este proyecto

a lt

49

Conclusiones y Tru6ajos Futuros

Aquiacute se dan a conocer las conclusiones y se describen los posibles trabajos futuros para la continuacioacuten de eacuteste proyecto

F

51 Conclusiones

Conclusiones y trabajos futuros

Se ha creado un Ambiente Visual que permite obtener de forma automaacutetica los Diagramas de Secuencias en base a los diagramas de Clases y al disentildeo detallado de los meacutetodos descritos con diagramas de Warnier cumpliendo con los objetivos planteados para este trabajo

La tesis aporta principalmente La generacioacuten automaacutetica de los diagramas de secuencias y la eliminacioacuten de inconsistencias al mantener una validacioacuten directa de los diagramas de clases y los diagramas de Warnier que son utilizados

Esta validacioacuten es lograda a traveacutes del uso de la gramaacutetica visual relaciona1 que se ha definido (veacutease el capiacutetulo 3) Esta gramaacutetica visual establece reglas para la correcta construccioacuten de los diagramas de secuencias

P De esta manera se establece que la hipoacutetesis ldquoEs posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodosrdquo Es verdadera

52 Trabajos Futuros

Un Diagrama de Secuencias puede convertirse en un Diagrama de Colaboracioacuten por lo tanto un trabajo futuro es la construccioacuten automaacutetica de un Diagrama de Colaboracioacuten a partir de uno de Secuencias existente

Es posible calcular la meacutetrica de acoplamiento al tener un Diagrama de Secuencias construido

La Ingenieriacutea directa de un Diagrama de Secuencias estableciendo la validacioacuten en la construccioacuten de todos los elementos visuales que UML define

La propagacioacuten de las modificaciones de un Diagrama de Secuencias a los Diagramas de Clases y los Diagramas de Warnier

La modificacioacuten del coacutedigo fuente mediante los cambios establecidos en un Diagrama de Secuencias

51

[ALC03]

[BLA98]

[B0099]

[BOOOi]

[BR097]

[CHA90]

[DAN02]

[GLA02]

[HAC98]

[HER03]

4

Alcate1 Computer Associates International inc Electronic Data Systems Corporation Hewlett-Packard Company IBM Corporation I-Logix IntelliCorp Kabira Technologies Kennedy Carter Microsoft Corporation Object Management Group Oracle Corporation Project Technology Ptech Inc Rational Software Corporation Reich Technologies Softeam Taskon A S Telelogic Unisys Corporation ldquoOMG Unified Modeling Language Specificationrdquo Version 15 Unified Modeling Language 2003

Blaha Michael Rumbaugh James Premerlani William Eddy Frederick Lorensen William ldquoObject-oriented modeling and designrdquo Prentice Hall 484 Paacuteginas ISBN 0-13-629841-9 QA-769-03S-B53-19981998

Booch Grady Rumbaugh James Jacobson Ivar ldquoEl lenguaje unificado de modeladordquo Addison Wesley 432 Paacuteginas ISBN 84-7829-028-1 1999

Booch Grady Rumbaugh James Jacobson Ivar ldquoThe Unified Modeling Language User Guiderdquo Addison Wesley 2001

Brown David ldquoAn introduction to object-oriented analysis objects in plain Englishrdquo John Whiley amp Sons Inc 700 Paginas ISBN 0-471-1 1028-0 QA-769-035-B76-1997 1997

Chang Shi-Kuo ldquoVisual Languages and visual programmingrdquo Plenum Press 340 Paacuteginas ISBN 0-306-43428-8 QA-7665-V57-1990 1990

Daniels John ldquoModeling with a sense of purposerdquo Design - IEEE Software JanuaryEebmary 2002

Glasgow Universidad Reino Unido ldquoA UML Editor in Javardquo (lthttplstudentsdcsglaacuWstudentspainjfproject-reportproject-re port-htmV4thYearReporthtrnlgt 2002)

T Hackos JoAnn C Redish Janice ldquoUser and Task Analysis for Interface Designrdquo Wiley Computer Publishing 488 Paacuteginas ISBN QA-769-U83- H33-1998 1998

Hemaacutendez Velaacutezquez M ldquoIngenieriacutea inversa de coacutedigo fuente en C++ para la obtencioacuten de su disentildeordquo Tesis AT-379 (03-0334) 2003

Conceptos generales

[HIX93]

[JAC93]

[JAC99]

[JOY98]

[LAR97]

[MAR]

[MIC99]

[MIC02]

[MOU98]

Hix Deborah Hartson H Rex ldquoDeveloping user interfacesrdquo 381 Paacuteginas ISBN 0-471-57813-4 QA-769-U83-H59-1993 1993

Jacobson Ivar Christerson Magnus Jonsson Patrik Overgaard Gunnar ldquoObject oriented software engineeringrdquo Addison Wesley ISBN 0-20 1 - 54435-0 QA-7676-D47-J63-1993 1993

Jacobson Ivar Booch Grady Rumbaugh James ldquoEl proceso unificado de desarrollo de softwarerdquo Addison Wesley 438 Paacuteginas ISBN 84-7829-036- 2 1999

Joyanes Aguilar Luis ldquoProgramacioacuten orientada a objetosrdquo McGruw Hill ISBN 84-481-0590-7 1998

Larman Craig ldquoAplying UML and Patternsrdquo Prentice Hull 507 Paacuteginas ISBN 0-13-748880-7 QA-769-035-L37-1997 1997

Marriot Kim Meyer Bemd ldquoVisual Language Theoryrdquo Springer 381 Paacuteginas P-935-V567-1998 1998

Microsoft ldquoMicrosoft Visual C++ 6 manual del programadorrdquo McGraw Hill ISBN 84-481-2127-9 QA-7673-Cl53-23718-1999 1999

Microsoft ldquoVisiordquo (lthttpwwwmicrosoftcomofficevisiogt 2002)

B Mourao Luis X ldquoUniversal Modeling Language Part 11 UML Notation - Case Sequence and Collaboration Diagramsrdquo Lan Times Magazine (~httpwwwlantimescomltpartsdiscussdiscuss6Ohtm~) 1998

No Magic ldquoMagicDrawrdquo (lthttpwwwmagicdrawcomgt 2002)

Object Insight ldquoJvisionrdquo (lthttpwwwobject-insightcomgt 2002)

Rational Software Microsoft I Hewlett-Packard Oracle Sterling Software MCI Systemhouse Unisys ICON Computing IntelliCorp i-Logix IBM ObjectTime Platinum Technology Ptech Taskon Reich Technologies Sofieam ldquoUML Summaryrdquo Version 11 Unified Modeling Language 1997

Rational ldquoRational Roserdquo (lthttpwwwrationalcomproductosrosegt 2002)

Rikki Kirzner ldquoAnalysis Modeling and Design Tools Market Forecast and Analysis 2001-2005rdquo Bulletin Published Under Services Application Design and Construction Tools Application Development and Deployment Strategies Documento Nuacutemero 24809 Junio 2001

53

Conceptos generales

[RIM92] Rimrner Steve ldquoGraphical user interface programmingrdquo 423 Paacuteginas

1992

Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language reference manualrdquo Addison Wesley 550 Paacuteginas ISBN 0-201-

ISBN 0-8306-2475-9 ISBN 0-8306-2472-4 (pbk) QA-769-083-R55G

[RUM99]

30998-X QA-7676-D47-R85-1999 1999

[RUM299] Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language user guiderdquo Addisoiz Wesley 482 Paacuteginas ISBN 0-201 -57 168-4 QA-7676-D47-B66-1999 1999

[SMA02] SmartDraw ldquoSmartDrawrdquo (lthttpwwwsmartdrawcomgt 2002)

[SHU88] 9 - Shu Nun C ldquoVisual Programmingrdquo Van Nostrand Reinhold ISBN 0-422- 28014-9 ISBN 0-422-01 164-4 QA-7665-S55 1988

[THI90] Thimbleby Harold ldquoUser Interface Designrdquo Acm press 470 Paacuteginas ISBN 0-201 -41 61 8-2 QA-769U83-T772~- 1990 1990

[WENO2] Wences Diaz MF ldquoModelo de Ingenieriacutea Inversa para la obtencioacuten de disentildeo detallado basado en LEVISSrdquo Tesis (02-0014) 2002

54

Anexo A

Conampuracioacuten de Microsoft Vkua[C++ 6 O

Este anexo indica las configuraciones que se utilizaron para la compilacioacuten de SCUML y s3c

Configuracioacuten de Microsoft Visual c++ 60

Debido a la integracioacuten de los proyectos de InverSOODA e InverDDVi con S3C se cumplioacute con los requisitos previos de ambos proyectos

El compilador usado en el proyecto fue el Microsoft Visual C++ 60

Para el cumplimiento con la funcionalidad de InverSOODA se instaloacute el ANTLR la versioacuten 271 Se descargoacute del sitio l i l l ~ ~ ~ ~ ~ ~ t l ~ l ~ - ~ t - ~ la versioacuten mencionada en un archivo comprimido (en formato zip) Se colocoacute el paquete descomprimido en el directorio ldquoDIANTLR-271 I rdquo

Recomiendo ampliamente que el directorio principal de ANTLR se copie en el directorio raiacutez de cualquier unidad de disco debido a que experimenteacute problemas de compilacioacuten cuando ANTLR no se encontraba en el directorio raiacutez

Io015

Source Browser AlttF12 I u c Ersquo V I

Visual Component Mgnager

- - ~ ~ ~ ~~

P2 Registrar control

A Contenedor de prueba de controles ActiveX

A Usor de objetos OLE y COM

Buacutesqueda de errores

A Y++ MFC Iracer

Customize options

~ - q- ~ Macro

Eecord Quick Macro Cbl+ShiR+R Pay Quick Macro Ctrl+ShiR+P

En el menuacute Tools (Herramientas) seleccione el sub-menuacute Options ltopcionesgt

56

Configuracioacuten de Microsoft Visual C++ 60

En la siguiente ventana de diaacutelogo debe agregar la direccioacuten en donde se encuentra el ANTLR

Agregar la ruta del directorio de ANTLR hasta el subdirectorio

libcpp

Editor I Tabs I Debug I Compatibility 1 Build Dneclolies I a I Chow directories for - Platfolm -

- Directories I x ) 4 jWin32 -] llnclude files

m cancd I

57

Configuracioacuten de Microsoft Visual C t+ 60

Se ha creado una libreriacutea (anrlrliblib) de ANTLR la cual ya estaacute situada en el directorio del proyecto SCUML (ISCUML) y no debe ser movida o eliminada

I

Geneial 1 Debug I CC++ Link I Category

Output file name bebugSCUMLexe

Objectljibrary modules 4 anllrliblib

li Generate debug lnfo r Ignore all defaull lbaries D ~ i n k j n ~ ~ ~ t a n ~ r ~ e n e r ~ ~ ~ mapfile

r Enable psafilrng

Proiec1 Ootionn

pq Cancel 1 Libreriacutea de ANTLR que debe existir 1 I para que se compile correctamente

58

Anexo B

~ u iacute aacute raacutepida de uso deC Sistema S3C

5 Este anexo indica de forma raacutepida la manera de utilizar S3C para crear un diagrama de secuencias de forma automaacutetica

Guiacutea Raacutepida de uso del Sistema S3C i

Para indicar la creacioacuten de un diagrama de secuencias en forma automaacutetica se debe ir a la barra del costado izquierdo y presionar ldquoNuevo Proyecto SCUMLrdquo

I s3c I ~ Nuevo Proyecto SCUML ~ _ _ - I Diagrama de clases ~ Diagrama de secuencias 1 MDI DOC Activo

-

Apareceraacute un documento llamado ldquoSCUMLV en donde el simbolo corresponde a un numero consecutivo iniciando desde 1 (uno)

$ e Despueacutes se presiona ldquoDiagrama de clasesrdquo Habraacute que para indicarle al sistema si se requiere abrir un diagrama de clases existente o realizar uno nuevo

i

iquestAbrir un documento existente

No Cardquo~ear

AI presionar ldquoSirdquo se debe indicar cual es el archivo del diagrama de Clases en el cuadro de diaacutelogo siguiente

~~ - 11dMis documentos rsquo 2 M i P C i lsquo h s sitios de red

I

AI presionar ldquoNordquo en ldquoAbrir un documento existenterdquo se nos mostraraacute un documento vacio para crear un diagrama de clases

60

Guiacutea Raacutepida de uso del Sistema S3C

Para ambas opciones se requiere que los diagramas de Wamier ya se encuentren construidos Y para continuar el proccso se selecciona el documento ldquoSCUMLVrsquo creado al inicio y despueacutes presionar el botoacuten nombrado ldquoDiagrama de secuenciasrdquo localizado en la barra de hcrraiiiicntas del costado izquierdo

Ha iniciado el proceso de construccioacuten del diagrama de secuencias Si no existen errores al terminar el proceso se le mostraraacute un cuadro de diaacutelogo llamado ldquoResultadosrdquo en donde le mostraraacute las llamadas de las que no localizoacute su definicioacuten

- - -

Cancel 1 D e las siguientes llamadas es posible que esten mal escritas o peitenezcan a la libreiia del Lenguaie Verifique ya que no se encontraron sus definiciones

A continuacioacuten se mencionan los posibles errores que finalizan el proceso de la creacioacuten automaacutetica de los diagramas de secuencias en S3C

Cuando no exista un meacutetodo lsquomainrsquo definido en el diagrama de clases

No se encontro el meacutetodo lsquomain()rsquo que inicie la secuencia I A No se puede crear el diagrama de secuencias

p==amp=q

61

Guia Raacutepida de uso del Sistema S3C

Cuando se definan niultiples metodos lsquoinainrsquo en el diagrama de clases

Multiples meacutetodos lsquomainOlsquo Imposible decidir el inicio de secuencia

Aceptar i

Si un meacutetodo definido en Wamier realiza una llamada a lsquomainrsquo se cancelara el proceso

Llamada NO VALIDA al meacutetodo principal main

(iAcp-j(

4 i

CI Y rdquoldquoldquoI i 11 1-T

IZNTRO Gt INFORMACION

62

  • Tabla de Contenido
  • Listado de Figuras
  • Listado de Tablas
  • Notacioacuten
  • Introduccioacuten
  • Capitulo 1 Conceptos Generales
    • 11 Antecedentes
    • 12 Trabajos relacionados
      • 121 Tabla comparativa
        • 13 Definicioacuten del problema
        • 14 Objetivo de la Tesis
          • Objetivos especiacuteficos de la tesis
            • 15 Hipoacutetesis de investigacioacuten
            • 16 Alcances y limitaciones del trabajo de tesis
              • Capitulo 2 Marco Teoacuterico
                • 21 Modelado de sistemas de software
                • 22 Interfaz de usuario (Mecanismos de interaccioacuten)
                • 23 Lenguajes Visuales
                • 24 Programacioacuten orientada a objetos
                • 25 Lenguaje de Modelado Unificado (UML)
                  • Desarrollo de la herramienta
                    • 31 Disentildeo de la Arquitectura
                      • 311 Requisitos (Diagrama de Casos de uso)
                        • 312Modelo Conceptual
                        • 313Diagramas de clases
                        • 32 Elementos de la arquitectura
                          • 321 Microsoft Foundation Class (MFC)
                            • 322Arquitectura Documento Vista
                            • 323Integrando Ambientes en Visual c++
                              • 324 Interfaz de Muacuteltiples Documentos (MDI)
                                • 325Recursos Diaacutelogos Menus y Barras de Herramientas
                                  • 326 Notacioacuten estaacutendar
                                  • 327 Estructura de datos persistencia y recuperacioacuten
                                    • 328Patrones de disentildeo utilizados
                                      • 33 Diagrama de secuencias
                                        • 331Ciclo de vida del software
                                          • 34 Elementos atoacutemicos de la Gramaacutetica
                                            • 341 Representacioacuten visual
                                              • 35 Gramaacutetica desarrollada
                                              • 36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias
                                                  • Capitulo 4 Pruebas y Resultados
                                                    • 41 Recursos teacutecnicos utilizados
                                                    • 42 Descripcioacuten del plan de pruebas
                                                    • 43 Resultados
                                                      • 431 Caso
                                                      • 432 Caso2
                                                      • 433 Caso
                                                          • Conclusiones y trabajos futuros
                                                            • Trabajos futuros
                                                            • Referencias
                                                            • Anexo A Configuracioacuten de Microsoft Visual C+t
                                                              • Figura 11 - Arquitectura de la suite cenidet-UML
                                                              • Figura 21 -Programacioacuten Visual
                                                              • Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de
                                                              • Figura 32 -Diagrama de Casos de Uso para el S3C
                                                              • Figura 33 -Modelo Conceptual
                                                              • Figura 34 - Diagrama de Clases -Control del Diagrama -
                                                              • Figura 35 - Diagrama de Clases - Patroacuten Visitor -
                                                              • Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento
                                                              • Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)
                                                              • Figura 38 -Dialogo Caracteriacutesticas del Objeto
                                                              • Figura 39 -Dialogo Mensaje
                                                              • Figura 3 IO - Menuacute de los Diagramas de Secuencias (estaacutendar)
                                                              • Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias
                                                              • Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)
                                                              • Figura 313 - Serializacioacuten
                                                              • Figura 314 -Modelo de cascada del ciclo de vida del software
                                                              • Figura 41 - Resultado del caso de prueba
                                                              • Figura 42 -Resultado del caso de prueba
                                                              • Figura 43 -Resultado del caso de prueba
                                                              • Figura 44 -Resultado del caso de prueba
                                                              • Tabla 11 - Tabla comparativa
                                                              • Tabla 31 -Prefijos estaacutendar de identificadores
                                                              • Tabla 32 -Elementos atoacutemicos del lenguaje
                                                              • Tabla 41 - Resumen de los resultados de las pruebas realizadas

Pruebas y Resultados

432 Caso 2

Objetivo Mostrar la funcionalidad del Sistema S3C a partir de un Diagrama de Clases que se

construye al momento y los diagramas de Warnier (almacenwar cajawar vendedorwar) que ya cxisten (del caso de prueba I )

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 En el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo Seleccionar la opcioacuten ldquoNordquo 4 Agregar las siguientes Clases con los respectivos meacutetodos y atributos

a Claseldquovendedorrdquo Meacutetodos ldquoventa mainrdquo b Claseldquoalmacenrdquo Meacutetodos ldquoentrada salidardquo c Claseldquocajardquo Meacutetodos ldquoventagrodrdquo

5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar el diagrama que se ha construido

automaacuteticamente

Resultado En la figura 42 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

Diagrama de daseo lisgrama dcsccucncis

MOIDOC Anivo

venta prod

salida

1 Ycrdquo1a 2

I 4 vcrdquolD~o1cn venta prod gt

salida 6 i Figura 42 Resultado del caso de prueba 2

46

Pruebas y Resultados

r

433 Caso 3

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Warnier

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 43 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

5

Error al tratar de abrir el archivo A bZwar

Aceptar i

Faltan Archivos de Disentildeos Detallados de Meacutetodos 1 1 A No se puede crear el diagrama de secuencias

Figura 43 Resultado del caso de prueba 3

47

Pruebas y Resultados

434 Caso 4

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 44 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

lsquo I

~ _ i i _ l _ Repaado ~~ ~ ~ 6~ ampA Figura 44 Resultado del caso de prueba 4

48

Pruebas y Resultados

PRUEBA DESCNPCION CASO 1 Mostrar la funcionalidad del

Sistema S3C a partir de un

44 Anaacutelisis de Resultados

RESULTADOS Se comproboacute la correcta funcionalidad del Sistema S3C a partir de un diagrama

CASO 3

CASO4

I diagrama de Clases cxistcnte I de Clases existente CASO 2 I Mostrar la funcionalidad del I Sc comproboacute la corrccta funcionalidad

Sistema S3C a partir de un del Sistema S3C a partir de un diagrama diagrama de Clases que se de Clases que se construye al momento construye al momento Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el Secuencias si falta alguno de los diagrama de Secuencia si falta alguno diagramas de Warnier Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el secuencias si hace falta el meacutetodo diagrama de Secuencias al faltar el ldquomain ()rdquo meacutetodo ldquomain()rdquo

de los diagramas de Warnier

Los resultados obtenidos de cada uno de los casos establecidos demuestran que se validoacute la funcionalidad del prototipo con los requisitos definidos en el alcance de este proyecto

a lt

49

Conclusiones y Tru6ajos Futuros

Aquiacute se dan a conocer las conclusiones y se describen los posibles trabajos futuros para la continuacioacuten de eacuteste proyecto

F

51 Conclusiones

Conclusiones y trabajos futuros

Se ha creado un Ambiente Visual que permite obtener de forma automaacutetica los Diagramas de Secuencias en base a los diagramas de Clases y al disentildeo detallado de los meacutetodos descritos con diagramas de Warnier cumpliendo con los objetivos planteados para este trabajo

La tesis aporta principalmente La generacioacuten automaacutetica de los diagramas de secuencias y la eliminacioacuten de inconsistencias al mantener una validacioacuten directa de los diagramas de clases y los diagramas de Warnier que son utilizados

Esta validacioacuten es lograda a traveacutes del uso de la gramaacutetica visual relaciona1 que se ha definido (veacutease el capiacutetulo 3) Esta gramaacutetica visual establece reglas para la correcta construccioacuten de los diagramas de secuencias

P De esta manera se establece que la hipoacutetesis ldquoEs posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodosrdquo Es verdadera

52 Trabajos Futuros

Un Diagrama de Secuencias puede convertirse en un Diagrama de Colaboracioacuten por lo tanto un trabajo futuro es la construccioacuten automaacutetica de un Diagrama de Colaboracioacuten a partir de uno de Secuencias existente

Es posible calcular la meacutetrica de acoplamiento al tener un Diagrama de Secuencias construido

La Ingenieriacutea directa de un Diagrama de Secuencias estableciendo la validacioacuten en la construccioacuten de todos los elementos visuales que UML define

La propagacioacuten de las modificaciones de un Diagrama de Secuencias a los Diagramas de Clases y los Diagramas de Warnier

La modificacioacuten del coacutedigo fuente mediante los cambios establecidos en un Diagrama de Secuencias

51

[ALC03]

[BLA98]

[B0099]

[BOOOi]

[BR097]

[CHA90]

[DAN02]

[GLA02]

[HAC98]

[HER03]

4

Alcate1 Computer Associates International inc Electronic Data Systems Corporation Hewlett-Packard Company IBM Corporation I-Logix IntelliCorp Kabira Technologies Kennedy Carter Microsoft Corporation Object Management Group Oracle Corporation Project Technology Ptech Inc Rational Software Corporation Reich Technologies Softeam Taskon A S Telelogic Unisys Corporation ldquoOMG Unified Modeling Language Specificationrdquo Version 15 Unified Modeling Language 2003

Blaha Michael Rumbaugh James Premerlani William Eddy Frederick Lorensen William ldquoObject-oriented modeling and designrdquo Prentice Hall 484 Paacuteginas ISBN 0-13-629841-9 QA-769-03S-B53-19981998

Booch Grady Rumbaugh James Jacobson Ivar ldquoEl lenguaje unificado de modeladordquo Addison Wesley 432 Paacuteginas ISBN 84-7829-028-1 1999

Booch Grady Rumbaugh James Jacobson Ivar ldquoThe Unified Modeling Language User Guiderdquo Addison Wesley 2001

Brown David ldquoAn introduction to object-oriented analysis objects in plain Englishrdquo John Whiley amp Sons Inc 700 Paginas ISBN 0-471-1 1028-0 QA-769-035-B76-1997 1997

Chang Shi-Kuo ldquoVisual Languages and visual programmingrdquo Plenum Press 340 Paacuteginas ISBN 0-306-43428-8 QA-7665-V57-1990 1990

Daniels John ldquoModeling with a sense of purposerdquo Design - IEEE Software JanuaryEebmary 2002

Glasgow Universidad Reino Unido ldquoA UML Editor in Javardquo (lthttplstudentsdcsglaacuWstudentspainjfproject-reportproject-re port-htmV4thYearReporthtrnlgt 2002)

T Hackos JoAnn C Redish Janice ldquoUser and Task Analysis for Interface Designrdquo Wiley Computer Publishing 488 Paacuteginas ISBN QA-769-U83- H33-1998 1998

Hemaacutendez Velaacutezquez M ldquoIngenieriacutea inversa de coacutedigo fuente en C++ para la obtencioacuten de su disentildeordquo Tesis AT-379 (03-0334) 2003

Conceptos generales

[HIX93]

[JAC93]

[JAC99]

[JOY98]

[LAR97]

[MAR]

[MIC99]

[MIC02]

[MOU98]

Hix Deborah Hartson H Rex ldquoDeveloping user interfacesrdquo 381 Paacuteginas ISBN 0-471-57813-4 QA-769-U83-H59-1993 1993

Jacobson Ivar Christerson Magnus Jonsson Patrik Overgaard Gunnar ldquoObject oriented software engineeringrdquo Addison Wesley ISBN 0-20 1 - 54435-0 QA-7676-D47-J63-1993 1993

Jacobson Ivar Booch Grady Rumbaugh James ldquoEl proceso unificado de desarrollo de softwarerdquo Addison Wesley 438 Paacuteginas ISBN 84-7829-036- 2 1999

Joyanes Aguilar Luis ldquoProgramacioacuten orientada a objetosrdquo McGruw Hill ISBN 84-481-0590-7 1998

Larman Craig ldquoAplying UML and Patternsrdquo Prentice Hull 507 Paacuteginas ISBN 0-13-748880-7 QA-769-035-L37-1997 1997

Marriot Kim Meyer Bemd ldquoVisual Language Theoryrdquo Springer 381 Paacuteginas P-935-V567-1998 1998

Microsoft ldquoMicrosoft Visual C++ 6 manual del programadorrdquo McGraw Hill ISBN 84-481-2127-9 QA-7673-Cl53-23718-1999 1999

Microsoft ldquoVisiordquo (lthttpwwwmicrosoftcomofficevisiogt 2002)

B Mourao Luis X ldquoUniversal Modeling Language Part 11 UML Notation - Case Sequence and Collaboration Diagramsrdquo Lan Times Magazine (~httpwwwlantimescomltpartsdiscussdiscuss6Ohtm~) 1998

No Magic ldquoMagicDrawrdquo (lthttpwwwmagicdrawcomgt 2002)

Object Insight ldquoJvisionrdquo (lthttpwwwobject-insightcomgt 2002)

Rational Software Microsoft I Hewlett-Packard Oracle Sterling Software MCI Systemhouse Unisys ICON Computing IntelliCorp i-Logix IBM ObjectTime Platinum Technology Ptech Taskon Reich Technologies Sofieam ldquoUML Summaryrdquo Version 11 Unified Modeling Language 1997

Rational ldquoRational Roserdquo (lthttpwwwrationalcomproductosrosegt 2002)

Rikki Kirzner ldquoAnalysis Modeling and Design Tools Market Forecast and Analysis 2001-2005rdquo Bulletin Published Under Services Application Design and Construction Tools Application Development and Deployment Strategies Documento Nuacutemero 24809 Junio 2001

53

Conceptos generales

[RIM92] Rimrner Steve ldquoGraphical user interface programmingrdquo 423 Paacuteginas

1992

Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language reference manualrdquo Addison Wesley 550 Paacuteginas ISBN 0-201-

ISBN 0-8306-2475-9 ISBN 0-8306-2472-4 (pbk) QA-769-083-R55G

[RUM99]

30998-X QA-7676-D47-R85-1999 1999

[RUM299] Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language user guiderdquo Addisoiz Wesley 482 Paacuteginas ISBN 0-201 -57 168-4 QA-7676-D47-B66-1999 1999

[SMA02] SmartDraw ldquoSmartDrawrdquo (lthttpwwwsmartdrawcomgt 2002)

[SHU88] 9 - Shu Nun C ldquoVisual Programmingrdquo Van Nostrand Reinhold ISBN 0-422- 28014-9 ISBN 0-422-01 164-4 QA-7665-S55 1988

[THI90] Thimbleby Harold ldquoUser Interface Designrdquo Acm press 470 Paacuteginas ISBN 0-201 -41 61 8-2 QA-769U83-T772~- 1990 1990

[WENO2] Wences Diaz MF ldquoModelo de Ingenieriacutea Inversa para la obtencioacuten de disentildeo detallado basado en LEVISSrdquo Tesis (02-0014) 2002

54

Anexo A

Conampuracioacuten de Microsoft Vkua[C++ 6 O

Este anexo indica las configuraciones que se utilizaron para la compilacioacuten de SCUML y s3c

Configuracioacuten de Microsoft Visual c++ 60

Debido a la integracioacuten de los proyectos de InverSOODA e InverDDVi con S3C se cumplioacute con los requisitos previos de ambos proyectos

El compilador usado en el proyecto fue el Microsoft Visual C++ 60

Para el cumplimiento con la funcionalidad de InverSOODA se instaloacute el ANTLR la versioacuten 271 Se descargoacute del sitio l i l l ~ ~ ~ ~ ~ ~ t l ~ l ~ - ~ t - ~ la versioacuten mencionada en un archivo comprimido (en formato zip) Se colocoacute el paquete descomprimido en el directorio ldquoDIANTLR-271 I rdquo

Recomiendo ampliamente que el directorio principal de ANTLR se copie en el directorio raiacutez de cualquier unidad de disco debido a que experimenteacute problemas de compilacioacuten cuando ANTLR no se encontraba en el directorio raiacutez

Io015

Source Browser AlttF12 I u c Ersquo V I

Visual Component Mgnager

- - ~ ~ ~ ~~

P2 Registrar control

A Contenedor de prueba de controles ActiveX

A Usor de objetos OLE y COM

Buacutesqueda de errores

A Y++ MFC Iracer

Customize options

~ - q- ~ Macro

Eecord Quick Macro Cbl+ShiR+R Pay Quick Macro Ctrl+ShiR+P

En el menuacute Tools (Herramientas) seleccione el sub-menuacute Options ltopcionesgt

56

Configuracioacuten de Microsoft Visual C++ 60

En la siguiente ventana de diaacutelogo debe agregar la direccioacuten en donde se encuentra el ANTLR

Agregar la ruta del directorio de ANTLR hasta el subdirectorio

libcpp

Editor I Tabs I Debug I Compatibility 1 Build Dneclolies I a I Chow directories for - Platfolm -

- Directories I x ) 4 jWin32 -] llnclude files

m cancd I

57

Configuracioacuten de Microsoft Visual C t+ 60

Se ha creado una libreriacutea (anrlrliblib) de ANTLR la cual ya estaacute situada en el directorio del proyecto SCUML (ISCUML) y no debe ser movida o eliminada

I

Geneial 1 Debug I CC++ Link I Category

Output file name bebugSCUMLexe

Objectljibrary modules 4 anllrliblib

li Generate debug lnfo r Ignore all defaull lbaries D ~ i n k j n ~ ~ ~ t a n ~ r ~ e n e r ~ ~ ~ mapfile

r Enable psafilrng

Proiec1 Ootionn

pq Cancel 1 Libreriacutea de ANTLR que debe existir 1 I para que se compile correctamente

58

Anexo B

~ u iacute aacute raacutepida de uso deC Sistema S3C

5 Este anexo indica de forma raacutepida la manera de utilizar S3C para crear un diagrama de secuencias de forma automaacutetica

Guiacutea Raacutepida de uso del Sistema S3C i

Para indicar la creacioacuten de un diagrama de secuencias en forma automaacutetica se debe ir a la barra del costado izquierdo y presionar ldquoNuevo Proyecto SCUMLrdquo

I s3c I ~ Nuevo Proyecto SCUML ~ _ _ - I Diagrama de clases ~ Diagrama de secuencias 1 MDI DOC Activo

-

Apareceraacute un documento llamado ldquoSCUMLV en donde el simbolo corresponde a un numero consecutivo iniciando desde 1 (uno)

$ e Despueacutes se presiona ldquoDiagrama de clasesrdquo Habraacute que para indicarle al sistema si se requiere abrir un diagrama de clases existente o realizar uno nuevo

i

iquestAbrir un documento existente

No Cardquo~ear

AI presionar ldquoSirdquo se debe indicar cual es el archivo del diagrama de Clases en el cuadro de diaacutelogo siguiente

~~ - 11dMis documentos rsquo 2 M i P C i lsquo h s sitios de red

I

AI presionar ldquoNordquo en ldquoAbrir un documento existenterdquo se nos mostraraacute un documento vacio para crear un diagrama de clases

60

Guiacutea Raacutepida de uso del Sistema S3C

Para ambas opciones se requiere que los diagramas de Wamier ya se encuentren construidos Y para continuar el proccso se selecciona el documento ldquoSCUMLVrsquo creado al inicio y despueacutes presionar el botoacuten nombrado ldquoDiagrama de secuenciasrdquo localizado en la barra de hcrraiiiicntas del costado izquierdo

Ha iniciado el proceso de construccioacuten del diagrama de secuencias Si no existen errores al terminar el proceso se le mostraraacute un cuadro de diaacutelogo llamado ldquoResultadosrdquo en donde le mostraraacute las llamadas de las que no localizoacute su definicioacuten

- - -

Cancel 1 D e las siguientes llamadas es posible que esten mal escritas o peitenezcan a la libreiia del Lenguaie Verifique ya que no se encontraron sus definiciones

A continuacioacuten se mencionan los posibles errores que finalizan el proceso de la creacioacuten automaacutetica de los diagramas de secuencias en S3C

Cuando no exista un meacutetodo lsquomainrsquo definido en el diagrama de clases

No se encontro el meacutetodo lsquomain()rsquo que inicie la secuencia I A No se puede crear el diagrama de secuencias

p==amp=q

61

Guia Raacutepida de uso del Sistema S3C

Cuando se definan niultiples metodos lsquoinainrsquo en el diagrama de clases

Multiples meacutetodos lsquomainOlsquo Imposible decidir el inicio de secuencia

Aceptar i

Si un meacutetodo definido en Wamier realiza una llamada a lsquomainrsquo se cancelara el proceso

Llamada NO VALIDA al meacutetodo principal main

(iAcp-j(

4 i

CI Y rdquoldquoldquoI i 11 1-T

IZNTRO Gt INFORMACION

62

  • Tabla de Contenido
  • Listado de Figuras
  • Listado de Tablas
  • Notacioacuten
  • Introduccioacuten
  • Capitulo 1 Conceptos Generales
    • 11 Antecedentes
    • 12 Trabajos relacionados
      • 121 Tabla comparativa
        • 13 Definicioacuten del problema
        • 14 Objetivo de la Tesis
          • Objetivos especiacuteficos de la tesis
            • 15 Hipoacutetesis de investigacioacuten
            • 16 Alcances y limitaciones del trabajo de tesis
              • Capitulo 2 Marco Teoacuterico
                • 21 Modelado de sistemas de software
                • 22 Interfaz de usuario (Mecanismos de interaccioacuten)
                • 23 Lenguajes Visuales
                • 24 Programacioacuten orientada a objetos
                • 25 Lenguaje de Modelado Unificado (UML)
                  • Desarrollo de la herramienta
                    • 31 Disentildeo de la Arquitectura
                      • 311 Requisitos (Diagrama de Casos de uso)
                        • 312Modelo Conceptual
                        • 313Diagramas de clases
                        • 32 Elementos de la arquitectura
                          • 321 Microsoft Foundation Class (MFC)
                            • 322Arquitectura Documento Vista
                            • 323Integrando Ambientes en Visual c++
                              • 324 Interfaz de Muacuteltiples Documentos (MDI)
                                • 325Recursos Diaacutelogos Menus y Barras de Herramientas
                                  • 326 Notacioacuten estaacutendar
                                  • 327 Estructura de datos persistencia y recuperacioacuten
                                    • 328Patrones de disentildeo utilizados
                                      • 33 Diagrama de secuencias
                                        • 331Ciclo de vida del software
                                          • 34 Elementos atoacutemicos de la Gramaacutetica
                                            • 341 Representacioacuten visual
                                              • 35 Gramaacutetica desarrollada
                                              • 36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias
                                                  • Capitulo 4 Pruebas y Resultados
                                                    • 41 Recursos teacutecnicos utilizados
                                                    • 42 Descripcioacuten del plan de pruebas
                                                    • 43 Resultados
                                                      • 431 Caso
                                                      • 432 Caso2
                                                      • 433 Caso
                                                          • Conclusiones y trabajos futuros
                                                            • Trabajos futuros
                                                            • Referencias
                                                            • Anexo A Configuracioacuten de Microsoft Visual C+t
                                                              • Figura 11 - Arquitectura de la suite cenidet-UML
                                                              • Figura 21 -Programacioacuten Visual
                                                              • Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de
                                                              • Figura 32 -Diagrama de Casos de Uso para el S3C
                                                              • Figura 33 -Modelo Conceptual
                                                              • Figura 34 - Diagrama de Clases -Control del Diagrama -
                                                              • Figura 35 - Diagrama de Clases - Patroacuten Visitor -
                                                              • Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento
                                                              • Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)
                                                              • Figura 38 -Dialogo Caracteriacutesticas del Objeto
                                                              • Figura 39 -Dialogo Mensaje
                                                              • Figura 3 IO - Menuacute de los Diagramas de Secuencias (estaacutendar)
                                                              • Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias
                                                              • Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)
                                                              • Figura 313 - Serializacioacuten
                                                              • Figura 314 -Modelo de cascada del ciclo de vida del software
                                                              • Figura 41 - Resultado del caso de prueba
                                                              • Figura 42 -Resultado del caso de prueba
                                                              • Figura 43 -Resultado del caso de prueba
                                                              • Figura 44 -Resultado del caso de prueba
                                                              • Tabla 11 - Tabla comparativa
                                                              • Tabla 31 -Prefijos estaacutendar de identificadores
                                                              • Tabla 32 -Elementos atoacutemicos del lenguaje
                                                              • Tabla 41 - Resumen de los resultados de las pruebas realizadas

Pruebas y Resultados

r

433 Caso 3

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de Secuencias si falta alguno

de los diagramas de Warnier

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 43 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

5

Error al tratar de abrir el archivo A bZwar

Aceptar i

Faltan Archivos de Disentildeos Detallados de Meacutetodos 1 1 A No se puede crear el diagrama de secuencias

Figura 43 Resultado del caso de prueba 3

47

Pruebas y Resultados

434 Caso 4

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 44 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

lsquo I

~ _ i i _ l _ Repaado ~~ ~ ~ 6~ ampA Figura 44 Resultado del caso de prueba 4

48

Pruebas y Resultados

PRUEBA DESCNPCION CASO 1 Mostrar la funcionalidad del

Sistema S3C a partir de un

44 Anaacutelisis de Resultados

RESULTADOS Se comproboacute la correcta funcionalidad del Sistema S3C a partir de un diagrama

CASO 3

CASO4

I diagrama de Clases cxistcnte I de Clases existente CASO 2 I Mostrar la funcionalidad del I Sc comproboacute la corrccta funcionalidad

Sistema S3C a partir de un del Sistema S3C a partir de un diagrama diagrama de Clases que se de Clases que se construye al momento construye al momento Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el Secuencias si falta alguno de los diagrama de Secuencia si falta alguno diagramas de Warnier Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el secuencias si hace falta el meacutetodo diagrama de Secuencias al faltar el ldquomain ()rdquo meacutetodo ldquomain()rdquo

de los diagramas de Warnier

Los resultados obtenidos de cada uno de los casos establecidos demuestran que se validoacute la funcionalidad del prototipo con los requisitos definidos en el alcance de este proyecto

a lt

49

Conclusiones y Tru6ajos Futuros

Aquiacute se dan a conocer las conclusiones y se describen los posibles trabajos futuros para la continuacioacuten de eacuteste proyecto

F

51 Conclusiones

Conclusiones y trabajos futuros

Se ha creado un Ambiente Visual que permite obtener de forma automaacutetica los Diagramas de Secuencias en base a los diagramas de Clases y al disentildeo detallado de los meacutetodos descritos con diagramas de Warnier cumpliendo con los objetivos planteados para este trabajo

La tesis aporta principalmente La generacioacuten automaacutetica de los diagramas de secuencias y la eliminacioacuten de inconsistencias al mantener una validacioacuten directa de los diagramas de clases y los diagramas de Warnier que son utilizados

Esta validacioacuten es lograda a traveacutes del uso de la gramaacutetica visual relaciona1 que se ha definido (veacutease el capiacutetulo 3) Esta gramaacutetica visual establece reglas para la correcta construccioacuten de los diagramas de secuencias

P De esta manera se establece que la hipoacutetesis ldquoEs posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodosrdquo Es verdadera

52 Trabajos Futuros

Un Diagrama de Secuencias puede convertirse en un Diagrama de Colaboracioacuten por lo tanto un trabajo futuro es la construccioacuten automaacutetica de un Diagrama de Colaboracioacuten a partir de uno de Secuencias existente

Es posible calcular la meacutetrica de acoplamiento al tener un Diagrama de Secuencias construido

La Ingenieriacutea directa de un Diagrama de Secuencias estableciendo la validacioacuten en la construccioacuten de todos los elementos visuales que UML define

La propagacioacuten de las modificaciones de un Diagrama de Secuencias a los Diagramas de Clases y los Diagramas de Warnier

La modificacioacuten del coacutedigo fuente mediante los cambios establecidos en un Diagrama de Secuencias

51

[ALC03]

[BLA98]

[B0099]

[BOOOi]

[BR097]

[CHA90]

[DAN02]

[GLA02]

[HAC98]

[HER03]

4

Alcate1 Computer Associates International inc Electronic Data Systems Corporation Hewlett-Packard Company IBM Corporation I-Logix IntelliCorp Kabira Technologies Kennedy Carter Microsoft Corporation Object Management Group Oracle Corporation Project Technology Ptech Inc Rational Software Corporation Reich Technologies Softeam Taskon A S Telelogic Unisys Corporation ldquoOMG Unified Modeling Language Specificationrdquo Version 15 Unified Modeling Language 2003

Blaha Michael Rumbaugh James Premerlani William Eddy Frederick Lorensen William ldquoObject-oriented modeling and designrdquo Prentice Hall 484 Paacuteginas ISBN 0-13-629841-9 QA-769-03S-B53-19981998

Booch Grady Rumbaugh James Jacobson Ivar ldquoEl lenguaje unificado de modeladordquo Addison Wesley 432 Paacuteginas ISBN 84-7829-028-1 1999

Booch Grady Rumbaugh James Jacobson Ivar ldquoThe Unified Modeling Language User Guiderdquo Addison Wesley 2001

Brown David ldquoAn introduction to object-oriented analysis objects in plain Englishrdquo John Whiley amp Sons Inc 700 Paginas ISBN 0-471-1 1028-0 QA-769-035-B76-1997 1997

Chang Shi-Kuo ldquoVisual Languages and visual programmingrdquo Plenum Press 340 Paacuteginas ISBN 0-306-43428-8 QA-7665-V57-1990 1990

Daniels John ldquoModeling with a sense of purposerdquo Design - IEEE Software JanuaryEebmary 2002

Glasgow Universidad Reino Unido ldquoA UML Editor in Javardquo (lthttplstudentsdcsglaacuWstudentspainjfproject-reportproject-re port-htmV4thYearReporthtrnlgt 2002)

T Hackos JoAnn C Redish Janice ldquoUser and Task Analysis for Interface Designrdquo Wiley Computer Publishing 488 Paacuteginas ISBN QA-769-U83- H33-1998 1998

Hemaacutendez Velaacutezquez M ldquoIngenieriacutea inversa de coacutedigo fuente en C++ para la obtencioacuten de su disentildeordquo Tesis AT-379 (03-0334) 2003

Conceptos generales

[HIX93]

[JAC93]

[JAC99]

[JOY98]

[LAR97]

[MAR]

[MIC99]

[MIC02]

[MOU98]

Hix Deborah Hartson H Rex ldquoDeveloping user interfacesrdquo 381 Paacuteginas ISBN 0-471-57813-4 QA-769-U83-H59-1993 1993

Jacobson Ivar Christerson Magnus Jonsson Patrik Overgaard Gunnar ldquoObject oriented software engineeringrdquo Addison Wesley ISBN 0-20 1 - 54435-0 QA-7676-D47-J63-1993 1993

Jacobson Ivar Booch Grady Rumbaugh James ldquoEl proceso unificado de desarrollo de softwarerdquo Addison Wesley 438 Paacuteginas ISBN 84-7829-036- 2 1999

Joyanes Aguilar Luis ldquoProgramacioacuten orientada a objetosrdquo McGruw Hill ISBN 84-481-0590-7 1998

Larman Craig ldquoAplying UML and Patternsrdquo Prentice Hull 507 Paacuteginas ISBN 0-13-748880-7 QA-769-035-L37-1997 1997

Marriot Kim Meyer Bemd ldquoVisual Language Theoryrdquo Springer 381 Paacuteginas P-935-V567-1998 1998

Microsoft ldquoMicrosoft Visual C++ 6 manual del programadorrdquo McGraw Hill ISBN 84-481-2127-9 QA-7673-Cl53-23718-1999 1999

Microsoft ldquoVisiordquo (lthttpwwwmicrosoftcomofficevisiogt 2002)

B Mourao Luis X ldquoUniversal Modeling Language Part 11 UML Notation - Case Sequence and Collaboration Diagramsrdquo Lan Times Magazine (~httpwwwlantimescomltpartsdiscussdiscuss6Ohtm~) 1998

No Magic ldquoMagicDrawrdquo (lthttpwwwmagicdrawcomgt 2002)

Object Insight ldquoJvisionrdquo (lthttpwwwobject-insightcomgt 2002)

Rational Software Microsoft I Hewlett-Packard Oracle Sterling Software MCI Systemhouse Unisys ICON Computing IntelliCorp i-Logix IBM ObjectTime Platinum Technology Ptech Taskon Reich Technologies Sofieam ldquoUML Summaryrdquo Version 11 Unified Modeling Language 1997

Rational ldquoRational Roserdquo (lthttpwwwrationalcomproductosrosegt 2002)

Rikki Kirzner ldquoAnalysis Modeling and Design Tools Market Forecast and Analysis 2001-2005rdquo Bulletin Published Under Services Application Design and Construction Tools Application Development and Deployment Strategies Documento Nuacutemero 24809 Junio 2001

53

Conceptos generales

[RIM92] Rimrner Steve ldquoGraphical user interface programmingrdquo 423 Paacuteginas

1992

Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language reference manualrdquo Addison Wesley 550 Paacuteginas ISBN 0-201-

ISBN 0-8306-2475-9 ISBN 0-8306-2472-4 (pbk) QA-769-083-R55G

[RUM99]

30998-X QA-7676-D47-R85-1999 1999

[RUM299] Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language user guiderdquo Addisoiz Wesley 482 Paacuteginas ISBN 0-201 -57 168-4 QA-7676-D47-B66-1999 1999

[SMA02] SmartDraw ldquoSmartDrawrdquo (lthttpwwwsmartdrawcomgt 2002)

[SHU88] 9 - Shu Nun C ldquoVisual Programmingrdquo Van Nostrand Reinhold ISBN 0-422- 28014-9 ISBN 0-422-01 164-4 QA-7665-S55 1988

[THI90] Thimbleby Harold ldquoUser Interface Designrdquo Acm press 470 Paacuteginas ISBN 0-201 -41 61 8-2 QA-769U83-T772~- 1990 1990

[WENO2] Wences Diaz MF ldquoModelo de Ingenieriacutea Inversa para la obtencioacuten de disentildeo detallado basado en LEVISSrdquo Tesis (02-0014) 2002

54

Anexo A

Conampuracioacuten de Microsoft Vkua[C++ 6 O

Este anexo indica las configuraciones que se utilizaron para la compilacioacuten de SCUML y s3c

Configuracioacuten de Microsoft Visual c++ 60

Debido a la integracioacuten de los proyectos de InverSOODA e InverDDVi con S3C se cumplioacute con los requisitos previos de ambos proyectos

El compilador usado en el proyecto fue el Microsoft Visual C++ 60

Para el cumplimiento con la funcionalidad de InverSOODA se instaloacute el ANTLR la versioacuten 271 Se descargoacute del sitio l i l l ~ ~ ~ ~ ~ ~ t l ~ l ~ - ~ t - ~ la versioacuten mencionada en un archivo comprimido (en formato zip) Se colocoacute el paquete descomprimido en el directorio ldquoDIANTLR-271 I rdquo

Recomiendo ampliamente que el directorio principal de ANTLR se copie en el directorio raiacutez de cualquier unidad de disco debido a que experimenteacute problemas de compilacioacuten cuando ANTLR no se encontraba en el directorio raiacutez

Io015

Source Browser AlttF12 I u c Ersquo V I

Visual Component Mgnager

- - ~ ~ ~ ~~

P2 Registrar control

A Contenedor de prueba de controles ActiveX

A Usor de objetos OLE y COM

Buacutesqueda de errores

A Y++ MFC Iracer

Customize options

~ - q- ~ Macro

Eecord Quick Macro Cbl+ShiR+R Pay Quick Macro Ctrl+ShiR+P

En el menuacute Tools (Herramientas) seleccione el sub-menuacute Options ltopcionesgt

56

Configuracioacuten de Microsoft Visual C++ 60

En la siguiente ventana de diaacutelogo debe agregar la direccioacuten en donde se encuentra el ANTLR

Agregar la ruta del directorio de ANTLR hasta el subdirectorio

libcpp

Editor I Tabs I Debug I Compatibility 1 Build Dneclolies I a I Chow directories for - Platfolm -

- Directories I x ) 4 jWin32 -] llnclude files

m cancd I

57

Configuracioacuten de Microsoft Visual C t+ 60

Se ha creado una libreriacutea (anrlrliblib) de ANTLR la cual ya estaacute situada en el directorio del proyecto SCUML (ISCUML) y no debe ser movida o eliminada

I

Geneial 1 Debug I CC++ Link I Category

Output file name bebugSCUMLexe

Objectljibrary modules 4 anllrliblib

li Generate debug lnfo r Ignore all defaull lbaries D ~ i n k j n ~ ~ ~ t a n ~ r ~ e n e r ~ ~ ~ mapfile

r Enable psafilrng

Proiec1 Ootionn

pq Cancel 1 Libreriacutea de ANTLR que debe existir 1 I para que se compile correctamente

58

Anexo B

~ u iacute aacute raacutepida de uso deC Sistema S3C

5 Este anexo indica de forma raacutepida la manera de utilizar S3C para crear un diagrama de secuencias de forma automaacutetica

Guiacutea Raacutepida de uso del Sistema S3C i

Para indicar la creacioacuten de un diagrama de secuencias en forma automaacutetica se debe ir a la barra del costado izquierdo y presionar ldquoNuevo Proyecto SCUMLrdquo

I s3c I ~ Nuevo Proyecto SCUML ~ _ _ - I Diagrama de clases ~ Diagrama de secuencias 1 MDI DOC Activo

-

Apareceraacute un documento llamado ldquoSCUMLV en donde el simbolo corresponde a un numero consecutivo iniciando desde 1 (uno)

$ e Despueacutes se presiona ldquoDiagrama de clasesrdquo Habraacute que para indicarle al sistema si se requiere abrir un diagrama de clases existente o realizar uno nuevo

i

iquestAbrir un documento existente

No Cardquo~ear

AI presionar ldquoSirdquo se debe indicar cual es el archivo del diagrama de Clases en el cuadro de diaacutelogo siguiente

~~ - 11dMis documentos rsquo 2 M i P C i lsquo h s sitios de red

I

AI presionar ldquoNordquo en ldquoAbrir un documento existenterdquo se nos mostraraacute un documento vacio para crear un diagrama de clases

60

Guiacutea Raacutepida de uso del Sistema S3C

Para ambas opciones se requiere que los diagramas de Wamier ya se encuentren construidos Y para continuar el proccso se selecciona el documento ldquoSCUMLVrsquo creado al inicio y despueacutes presionar el botoacuten nombrado ldquoDiagrama de secuenciasrdquo localizado en la barra de hcrraiiiicntas del costado izquierdo

Ha iniciado el proceso de construccioacuten del diagrama de secuencias Si no existen errores al terminar el proceso se le mostraraacute un cuadro de diaacutelogo llamado ldquoResultadosrdquo en donde le mostraraacute las llamadas de las que no localizoacute su definicioacuten

- - -

Cancel 1 D e las siguientes llamadas es posible que esten mal escritas o peitenezcan a la libreiia del Lenguaie Verifique ya que no se encontraron sus definiciones

A continuacioacuten se mencionan los posibles errores que finalizan el proceso de la creacioacuten automaacutetica de los diagramas de secuencias en S3C

Cuando no exista un meacutetodo lsquomainrsquo definido en el diagrama de clases

No se encontro el meacutetodo lsquomain()rsquo que inicie la secuencia I A No se puede crear el diagrama de secuencias

p==amp=q

61

Guia Raacutepida de uso del Sistema S3C

Cuando se definan niultiples metodos lsquoinainrsquo en el diagrama de clases

Multiples meacutetodos lsquomainOlsquo Imposible decidir el inicio de secuencia

Aceptar i

Si un meacutetodo definido en Wamier realiza una llamada a lsquomainrsquo se cancelara el proceso

Llamada NO VALIDA al meacutetodo principal main

(iAcp-j(

4 i

CI Y rdquoldquoldquoI i 11 1-T

IZNTRO Gt INFORMACION

62

  • Tabla de Contenido
  • Listado de Figuras
  • Listado de Tablas
  • Notacioacuten
  • Introduccioacuten
  • Capitulo 1 Conceptos Generales
    • 11 Antecedentes
    • 12 Trabajos relacionados
      • 121 Tabla comparativa
        • 13 Definicioacuten del problema
        • 14 Objetivo de la Tesis
          • Objetivos especiacuteficos de la tesis
            • 15 Hipoacutetesis de investigacioacuten
            • 16 Alcances y limitaciones del trabajo de tesis
              • Capitulo 2 Marco Teoacuterico
                • 21 Modelado de sistemas de software
                • 22 Interfaz de usuario (Mecanismos de interaccioacuten)
                • 23 Lenguajes Visuales
                • 24 Programacioacuten orientada a objetos
                • 25 Lenguaje de Modelado Unificado (UML)
                  • Desarrollo de la herramienta
                    • 31 Disentildeo de la Arquitectura
                      • 311 Requisitos (Diagrama de Casos de uso)
                        • 312Modelo Conceptual
                        • 313Diagramas de clases
                        • 32 Elementos de la arquitectura
                          • 321 Microsoft Foundation Class (MFC)
                            • 322Arquitectura Documento Vista
                            • 323Integrando Ambientes en Visual c++
                              • 324 Interfaz de Muacuteltiples Documentos (MDI)
                                • 325Recursos Diaacutelogos Menus y Barras de Herramientas
                                  • 326 Notacioacuten estaacutendar
                                  • 327 Estructura de datos persistencia y recuperacioacuten
                                    • 328Patrones de disentildeo utilizados
                                      • 33 Diagrama de secuencias
                                        • 331Ciclo de vida del software
                                          • 34 Elementos atoacutemicos de la Gramaacutetica
                                            • 341 Representacioacuten visual
                                              • 35 Gramaacutetica desarrollada
                                              • 36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias
                                                  • Capitulo 4 Pruebas y Resultados
                                                    • 41 Recursos teacutecnicos utilizados
                                                    • 42 Descripcioacuten del plan de pruebas
                                                    • 43 Resultados
                                                      • 431 Caso
                                                      • 432 Caso2
                                                      • 433 Caso
                                                          • Conclusiones y trabajos futuros
                                                            • Trabajos futuros
                                                            • Referencias
                                                            • Anexo A Configuracioacuten de Microsoft Visual C+t
                                                              • Figura 11 - Arquitectura de la suite cenidet-UML
                                                              • Figura 21 -Programacioacuten Visual
                                                              • Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de
                                                              • Figura 32 -Diagrama de Casos de Uso para el S3C
                                                              • Figura 33 -Modelo Conceptual
                                                              • Figura 34 - Diagrama de Clases -Control del Diagrama -
                                                              • Figura 35 - Diagrama de Clases - Patroacuten Visitor -
                                                              • Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento
                                                              • Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)
                                                              • Figura 38 -Dialogo Caracteriacutesticas del Objeto
                                                              • Figura 39 -Dialogo Mensaje
                                                              • Figura 3 IO - Menuacute de los Diagramas de Secuencias (estaacutendar)
                                                              • Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias
                                                              • Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)
                                                              • Figura 313 - Serializacioacuten
                                                              • Figura 314 -Modelo de cascada del ciclo de vida del software
                                                              • Figura 41 - Resultado del caso de prueba
                                                              • Figura 42 -Resultado del caso de prueba
                                                              • Figura 43 -Resultado del caso de prueba
                                                              • Figura 44 -Resultado del caso de prueba
                                                              • Tabla 11 - Tabla comparativa
                                                              • Tabla 31 -Prefijos estaacutendar de identificadores
                                                              • Tabla 32 -Elementos atoacutemicos del lenguaje
                                                              • Tabla 41 - Resumen de los resultados de las pruebas realizadas

Pruebas y Resultados

434 Caso 4

Objetivo Mostrar que S3C no realiza la construccioacuten del Diagrama de secuencias si hace falta el

meacutetodo ldquomain 0rdquo

Procedimiento I Seleccionar ldquoNuevo Proyecto SCUMLldquo 2 Seleccionar ldquoDiagrama de Clasesrdquo 3 Seleccionar la opcioacuten ldquoSirdquo en el cuadro de diaacutelogo ldquoAbrir Archivo Existenterdquo 4 Seleccionar el archivo ldquoCLASES2rdquo en el cuadro de diaacutelogo ldquoAbrirrdquo 5 Seleccionar la ventana ldquoSCUMLIrdquo 6 Seleccionar ldquoDiagrama de Secuenciasrdquo 7 Seleccionar la ventana S3C para visualizar lo que se ha construido

Resultado En la figura 44 se muestra la pantalla del diagrama de secuencia construido

automaacuteticamente

lsquo I

~ _ i i _ l _ Repaado ~~ ~ ~ 6~ ampA Figura 44 Resultado del caso de prueba 4

48

Pruebas y Resultados

PRUEBA DESCNPCION CASO 1 Mostrar la funcionalidad del

Sistema S3C a partir de un

44 Anaacutelisis de Resultados

RESULTADOS Se comproboacute la correcta funcionalidad del Sistema S3C a partir de un diagrama

CASO 3

CASO4

I diagrama de Clases cxistcnte I de Clases existente CASO 2 I Mostrar la funcionalidad del I Sc comproboacute la corrccta funcionalidad

Sistema S3C a partir de un del Sistema S3C a partir de un diagrama diagrama de Clases que se de Clases que se construye al momento construye al momento Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el Secuencias si falta alguno de los diagrama de Secuencia si falta alguno diagramas de Warnier Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el secuencias si hace falta el meacutetodo diagrama de Secuencias al faltar el ldquomain ()rdquo meacutetodo ldquomain()rdquo

de los diagramas de Warnier

Los resultados obtenidos de cada uno de los casos establecidos demuestran que se validoacute la funcionalidad del prototipo con los requisitos definidos en el alcance de este proyecto

a lt

49

Conclusiones y Tru6ajos Futuros

Aquiacute se dan a conocer las conclusiones y se describen los posibles trabajos futuros para la continuacioacuten de eacuteste proyecto

F

51 Conclusiones

Conclusiones y trabajos futuros

Se ha creado un Ambiente Visual que permite obtener de forma automaacutetica los Diagramas de Secuencias en base a los diagramas de Clases y al disentildeo detallado de los meacutetodos descritos con diagramas de Warnier cumpliendo con los objetivos planteados para este trabajo

La tesis aporta principalmente La generacioacuten automaacutetica de los diagramas de secuencias y la eliminacioacuten de inconsistencias al mantener una validacioacuten directa de los diagramas de clases y los diagramas de Warnier que son utilizados

Esta validacioacuten es lograda a traveacutes del uso de la gramaacutetica visual relaciona1 que se ha definido (veacutease el capiacutetulo 3) Esta gramaacutetica visual establece reglas para la correcta construccioacuten de los diagramas de secuencias

P De esta manera se establece que la hipoacutetesis ldquoEs posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodosrdquo Es verdadera

52 Trabajos Futuros

Un Diagrama de Secuencias puede convertirse en un Diagrama de Colaboracioacuten por lo tanto un trabajo futuro es la construccioacuten automaacutetica de un Diagrama de Colaboracioacuten a partir de uno de Secuencias existente

Es posible calcular la meacutetrica de acoplamiento al tener un Diagrama de Secuencias construido

La Ingenieriacutea directa de un Diagrama de Secuencias estableciendo la validacioacuten en la construccioacuten de todos los elementos visuales que UML define

La propagacioacuten de las modificaciones de un Diagrama de Secuencias a los Diagramas de Clases y los Diagramas de Warnier

La modificacioacuten del coacutedigo fuente mediante los cambios establecidos en un Diagrama de Secuencias

51

[ALC03]

[BLA98]

[B0099]

[BOOOi]

[BR097]

[CHA90]

[DAN02]

[GLA02]

[HAC98]

[HER03]

4

Alcate1 Computer Associates International inc Electronic Data Systems Corporation Hewlett-Packard Company IBM Corporation I-Logix IntelliCorp Kabira Technologies Kennedy Carter Microsoft Corporation Object Management Group Oracle Corporation Project Technology Ptech Inc Rational Software Corporation Reich Technologies Softeam Taskon A S Telelogic Unisys Corporation ldquoOMG Unified Modeling Language Specificationrdquo Version 15 Unified Modeling Language 2003

Blaha Michael Rumbaugh James Premerlani William Eddy Frederick Lorensen William ldquoObject-oriented modeling and designrdquo Prentice Hall 484 Paacuteginas ISBN 0-13-629841-9 QA-769-03S-B53-19981998

Booch Grady Rumbaugh James Jacobson Ivar ldquoEl lenguaje unificado de modeladordquo Addison Wesley 432 Paacuteginas ISBN 84-7829-028-1 1999

Booch Grady Rumbaugh James Jacobson Ivar ldquoThe Unified Modeling Language User Guiderdquo Addison Wesley 2001

Brown David ldquoAn introduction to object-oriented analysis objects in plain Englishrdquo John Whiley amp Sons Inc 700 Paginas ISBN 0-471-1 1028-0 QA-769-035-B76-1997 1997

Chang Shi-Kuo ldquoVisual Languages and visual programmingrdquo Plenum Press 340 Paacuteginas ISBN 0-306-43428-8 QA-7665-V57-1990 1990

Daniels John ldquoModeling with a sense of purposerdquo Design - IEEE Software JanuaryEebmary 2002

Glasgow Universidad Reino Unido ldquoA UML Editor in Javardquo (lthttplstudentsdcsglaacuWstudentspainjfproject-reportproject-re port-htmV4thYearReporthtrnlgt 2002)

T Hackos JoAnn C Redish Janice ldquoUser and Task Analysis for Interface Designrdquo Wiley Computer Publishing 488 Paacuteginas ISBN QA-769-U83- H33-1998 1998

Hemaacutendez Velaacutezquez M ldquoIngenieriacutea inversa de coacutedigo fuente en C++ para la obtencioacuten de su disentildeordquo Tesis AT-379 (03-0334) 2003

Conceptos generales

[HIX93]

[JAC93]

[JAC99]

[JOY98]

[LAR97]

[MAR]

[MIC99]

[MIC02]

[MOU98]

Hix Deborah Hartson H Rex ldquoDeveloping user interfacesrdquo 381 Paacuteginas ISBN 0-471-57813-4 QA-769-U83-H59-1993 1993

Jacobson Ivar Christerson Magnus Jonsson Patrik Overgaard Gunnar ldquoObject oriented software engineeringrdquo Addison Wesley ISBN 0-20 1 - 54435-0 QA-7676-D47-J63-1993 1993

Jacobson Ivar Booch Grady Rumbaugh James ldquoEl proceso unificado de desarrollo de softwarerdquo Addison Wesley 438 Paacuteginas ISBN 84-7829-036- 2 1999

Joyanes Aguilar Luis ldquoProgramacioacuten orientada a objetosrdquo McGruw Hill ISBN 84-481-0590-7 1998

Larman Craig ldquoAplying UML and Patternsrdquo Prentice Hull 507 Paacuteginas ISBN 0-13-748880-7 QA-769-035-L37-1997 1997

Marriot Kim Meyer Bemd ldquoVisual Language Theoryrdquo Springer 381 Paacuteginas P-935-V567-1998 1998

Microsoft ldquoMicrosoft Visual C++ 6 manual del programadorrdquo McGraw Hill ISBN 84-481-2127-9 QA-7673-Cl53-23718-1999 1999

Microsoft ldquoVisiordquo (lthttpwwwmicrosoftcomofficevisiogt 2002)

B Mourao Luis X ldquoUniversal Modeling Language Part 11 UML Notation - Case Sequence and Collaboration Diagramsrdquo Lan Times Magazine (~httpwwwlantimescomltpartsdiscussdiscuss6Ohtm~) 1998

No Magic ldquoMagicDrawrdquo (lthttpwwwmagicdrawcomgt 2002)

Object Insight ldquoJvisionrdquo (lthttpwwwobject-insightcomgt 2002)

Rational Software Microsoft I Hewlett-Packard Oracle Sterling Software MCI Systemhouse Unisys ICON Computing IntelliCorp i-Logix IBM ObjectTime Platinum Technology Ptech Taskon Reich Technologies Sofieam ldquoUML Summaryrdquo Version 11 Unified Modeling Language 1997

Rational ldquoRational Roserdquo (lthttpwwwrationalcomproductosrosegt 2002)

Rikki Kirzner ldquoAnalysis Modeling and Design Tools Market Forecast and Analysis 2001-2005rdquo Bulletin Published Under Services Application Design and Construction Tools Application Development and Deployment Strategies Documento Nuacutemero 24809 Junio 2001

53

Conceptos generales

[RIM92] Rimrner Steve ldquoGraphical user interface programmingrdquo 423 Paacuteginas

1992

Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language reference manualrdquo Addison Wesley 550 Paacuteginas ISBN 0-201-

ISBN 0-8306-2475-9 ISBN 0-8306-2472-4 (pbk) QA-769-083-R55G

[RUM99]

30998-X QA-7676-D47-R85-1999 1999

[RUM299] Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language user guiderdquo Addisoiz Wesley 482 Paacuteginas ISBN 0-201 -57 168-4 QA-7676-D47-B66-1999 1999

[SMA02] SmartDraw ldquoSmartDrawrdquo (lthttpwwwsmartdrawcomgt 2002)

[SHU88] 9 - Shu Nun C ldquoVisual Programmingrdquo Van Nostrand Reinhold ISBN 0-422- 28014-9 ISBN 0-422-01 164-4 QA-7665-S55 1988

[THI90] Thimbleby Harold ldquoUser Interface Designrdquo Acm press 470 Paacuteginas ISBN 0-201 -41 61 8-2 QA-769U83-T772~- 1990 1990

[WENO2] Wences Diaz MF ldquoModelo de Ingenieriacutea Inversa para la obtencioacuten de disentildeo detallado basado en LEVISSrdquo Tesis (02-0014) 2002

54

Anexo A

Conampuracioacuten de Microsoft Vkua[C++ 6 O

Este anexo indica las configuraciones que se utilizaron para la compilacioacuten de SCUML y s3c

Configuracioacuten de Microsoft Visual c++ 60

Debido a la integracioacuten de los proyectos de InverSOODA e InverDDVi con S3C se cumplioacute con los requisitos previos de ambos proyectos

El compilador usado en el proyecto fue el Microsoft Visual C++ 60

Para el cumplimiento con la funcionalidad de InverSOODA se instaloacute el ANTLR la versioacuten 271 Se descargoacute del sitio l i l l ~ ~ ~ ~ ~ ~ t l ~ l ~ - ~ t - ~ la versioacuten mencionada en un archivo comprimido (en formato zip) Se colocoacute el paquete descomprimido en el directorio ldquoDIANTLR-271 I rdquo

Recomiendo ampliamente que el directorio principal de ANTLR se copie en el directorio raiacutez de cualquier unidad de disco debido a que experimenteacute problemas de compilacioacuten cuando ANTLR no se encontraba en el directorio raiacutez

Io015

Source Browser AlttF12 I u c Ersquo V I

Visual Component Mgnager

- - ~ ~ ~ ~~

P2 Registrar control

A Contenedor de prueba de controles ActiveX

A Usor de objetos OLE y COM

Buacutesqueda de errores

A Y++ MFC Iracer

Customize options

~ - q- ~ Macro

Eecord Quick Macro Cbl+ShiR+R Pay Quick Macro Ctrl+ShiR+P

En el menuacute Tools (Herramientas) seleccione el sub-menuacute Options ltopcionesgt

56

Configuracioacuten de Microsoft Visual C++ 60

En la siguiente ventana de diaacutelogo debe agregar la direccioacuten en donde se encuentra el ANTLR

Agregar la ruta del directorio de ANTLR hasta el subdirectorio

libcpp

Editor I Tabs I Debug I Compatibility 1 Build Dneclolies I a I Chow directories for - Platfolm -

- Directories I x ) 4 jWin32 -] llnclude files

m cancd I

57

Configuracioacuten de Microsoft Visual C t+ 60

Se ha creado una libreriacutea (anrlrliblib) de ANTLR la cual ya estaacute situada en el directorio del proyecto SCUML (ISCUML) y no debe ser movida o eliminada

I

Geneial 1 Debug I CC++ Link I Category

Output file name bebugSCUMLexe

Objectljibrary modules 4 anllrliblib

li Generate debug lnfo r Ignore all defaull lbaries D ~ i n k j n ~ ~ ~ t a n ~ r ~ e n e r ~ ~ ~ mapfile

r Enable psafilrng

Proiec1 Ootionn

pq Cancel 1 Libreriacutea de ANTLR que debe existir 1 I para que se compile correctamente

58

Anexo B

~ u iacute aacute raacutepida de uso deC Sistema S3C

5 Este anexo indica de forma raacutepida la manera de utilizar S3C para crear un diagrama de secuencias de forma automaacutetica

Guiacutea Raacutepida de uso del Sistema S3C i

Para indicar la creacioacuten de un diagrama de secuencias en forma automaacutetica se debe ir a la barra del costado izquierdo y presionar ldquoNuevo Proyecto SCUMLrdquo

I s3c I ~ Nuevo Proyecto SCUML ~ _ _ - I Diagrama de clases ~ Diagrama de secuencias 1 MDI DOC Activo

-

Apareceraacute un documento llamado ldquoSCUMLV en donde el simbolo corresponde a un numero consecutivo iniciando desde 1 (uno)

$ e Despueacutes se presiona ldquoDiagrama de clasesrdquo Habraacute que para indicarle al sistema si se requiere abrir un diagrama de clases existente o realizar uno nuevo

i

iquestAbrir un documento existente

No Cardquo~ear

AI presionar ldquoSirdquo se debe indicar cual es el archivo del diagrama de Clases en el cuadro de diaacutelogo siguiente

~~ - 11dMis documentos rsquo 2 M i P C i lsquo h s sitios de red

I

AI presionar ldquoNordquo en ldquoAbrir un documento existenterdquo se nos mostraraacute un documento vacio para crear un diagrama de clases

60

Guiacutea Raacutepida de uso del Sistema S3C

Para ambas opciones se requiere que los diagramas de Wamier ya se encuentren construidos Y para continuar el proccso se selecciona el documento ldquoSCUMLVrsquo creado al inicio y despueacutes presionar el botoacuten nombrado ldquoDiagrama de secuenciasrdquo localizado en la barra de hcrraiiiicntas del costado izquierdo

Ha iniciado el proceso de construccioacuten del diagrama de secuencias Si no existen errores al terminar el proceso se le mostraraacute un cuadro de diaacutelogo llamado ldquoResultadosrdquo en donde le mostraraacute las llamadas de las que no localizoacute su definicioacuten

- - -

Cancel 1 D e las siguientes llamadas es posible que esten mal escritas o peitenezcan a la libreiia del Lenguaie Verifique ya que no se encontraron sus definiciones

A continuacioacuten se mencionan los posibles errores que finalizan el proceso de la creacioacuten automaacutetica de los diagramas de secuencias en S3C

Cuando no exista un meacutetodo lsquomainrsquo definido en el diagrama de clases

No se encontro el meacutetodo lsquomain()rsquo que inicie la secuencia I A No se puede crear el diagrama de secuencias

p==amp=q

61

Guia Raacutepida de uso del Sistema S3C

Cuando se definan niultiples metodos lsquoinainrsquo en el diagrama de clases

Multiples meacutetodos lsquomainOlsquo Imposible decidir el inicio de secuencia

Aceptar i

Si un meacutetodo definido en Wamier realiza una llamada a lsquomainrsquo se cancelara el proceso

Llamada NO VALIDA al meacutetodo principal main

(iAcp-j(

4 i

CI Y rdquoldquoldquoI i 11 1-T

IZNTRO Gt INFORMACION

62

  • Tabla de Contenido
  • Listado de Figuras
  • Listado de Tablas
  • Notacioacuten
  • Introduccioacuten
  • Capitulo 1 Conceptos Generales
    • 11 Antecedentes
    • 12 Trabajos relacionados
      • 121 Tabla comparativa
        • 13 Definicioacuten del problema
        • 14 Objetivo de la Tesis
          • Objetivos especiacuteficos de la tesis
            • 15 Hipoacutetesis de investigacioacuten
            • 16 Alcances y limitaciones del trabajo de tesis
              • Capitulo 2 Marco Teoacuterico
                • 21 Modelado de sistemas de software
                • 22 Interfaz de usuario (Mecanismos de interaccioacuten)
                • 23 Lenguajes Visuales
                • 24 Programacioacuten orientada a objetos
                • 25 Lenguaje de Modelado Unificado (UML)
                  • Desarrollo de la herramienta
                    • 31 Disentildeo de la Arquitectura
                      • 311 Requisitos (Diagrama de Casos de uso)
                        • 312Modelo Conceptual
                        • 313Diagramas de clases
                        • 32 Elementos de la arquitectura
                          • 321 Microsoft Foundation Class (MFC)
                            • 322Arquitectura Documento Vista
                            • 323Integrando Ambientes en Visual c++
                              • 324 Interfaz de Muacuteltiples Documentos (MDI)
                                • 325Recursos Diaacutelogos Menus y Barras de Herramientas
                                  • 326 Notacioacuten estaacutendar
                                  • 327 Estructura de datos persistencia y recuperacioacuten
                                    • 328Patrones de disentildeo utilizados
                                      • 33 Diagrama de secuencias
                                        • 331Ciclo de vida del software
                                          • 34 Elementos atoacutemicos de la Gramaacutetica
                                            • 341 Representacioacuten visual
                                              • 35 Gramaacutetica desarrollada
                                              • 36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias
                                                  • Capitulo 4 Pruebas y Resultados
                                                    • 41 Recursos teacutecnicos utilizados
                                                    • 42 Descripcioacuten del plan de pruebas
                                                    • 43 Resultados
                                                      • 431 Caso
                                                      • 432 Caso2
                                                      • 433 Caso
                                                          • Conclusiones y trabajos futuros
                                                            • Trabajos futuros
                                                            • Referencias
                                                            • Anexo A Configuracioacuten de Microsoft Visual C+t
                                                              • Figura 11 - Arquitectura de la suite cenidet-UML
                                                              • Figura 21 -Programacioacuten Visual
                                                              • Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de
                                                              • Figura 32 -Diagrama de Casos de Uso para el S3C
                                                              • Figura 33 -Modelo Conceptual
                                                              • Figura 34 - Diagrama de Clases -Control del Diagrama -
                                                              • Figura 35 - Diagrama de Clases - Patroacuten Visitor -
                                                              • Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento
                                                              • Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)
                                                              • Figura 38 -Dialogo Caracteriacutesticas del Objeto
                                                              • Figura 39 -Dialogo Mensaje
                                                              • Figura 3 IO - Menuacute de los Diagramas de Secuencias (estaacutendar)
                                                              • Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias
                                                              • Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)
                                                              • Figura 313 - Serializacioacuten
                                                              • Figura 314 -Modelo de cascada del ciclo de vida del software
                                                              • Figura 41 - Resultado del caso de prueba
                                                              • Figura 42 -Resultado del caso de prueba
                                                              • Figura 43 -Resultado del caso de prueba
                                                              • Figura 44 -Resultado del caso de prueba
                                                              • Tabla 11 - Tabla comparativa
                                                              • Tabla 31 -Prefijos estaacutendar de identificadores
                                                              • Tabla 32 -Elementos atoacutemicos del lenguaje
                                                              • Tabla 41 - Resumen de los resultados de las pruebas realizadas

Pruebas y Resultados

PRUEBA DESCNPCION CASO 1 Mostrar la funcionalidad del

Sistema S3C a partir de un

44 Anaacutelisis de Resultados

RESULTADOS Se comproboacute la correcta funcionalidad del Sistema S3C a partir de un diagrama

CASO 3

CASO4

I diagrama de Clases cxistcnte I de Clases existente CASO 2 I Mostrar la funcionalidad del I Sc comproboacute la corrccta funcionalidad

Sistema S3C a partir de un del Sistema S3C a partir de un diagrama diagrama de Clases que se de Clases que se construye al momento construye al momento Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el Secuencias si falta alguno de los diagrama de Secuencia si falta alguno diagramas de Warnier Mostrar que S3C no realiza la Se comproboacute la correcta funcionalidad construccioacuten del Diagrama de del Sistema S3C al no construir el secuencias si hace falta el meacutetodo diagrama de Secuencias al faltar el ldquomain ()rdquo meacutetodo ldquomain()rdquo

de los diagramas de Warnier

Los resultados obtenidos de cada uno de los casos establecidos demuestran que se validoacute la funcionalidad del prototipo con los requisitos definidos en el alcance de este proyecto

a lt

49

Conclusiones y Tru6ajos Futuros

Aquiacute se dan a conocer las conclusiones y se describen los posibles trabajos futuros para la continuacioacuten de eacuteste proyecto

F

51 Conclusiones

Conclusiones y trabajos futuros

Se ha creado un Ambiente Visual que permite obtener de forma automaacutetica los Diagramas de Secuencias en base a los diagramas de Clases y al disentildeo detallado de los meacutetodos descritos con diagramas de Warnier cumpliendo con los objetivos planteados para este trabajo

La tesis aporta principalmente La generacioacuten automaacutetica de los diagramas de secuencias y la eliminacioacuten de inconsistencias al mantener una validacioacuten directa de los diagramas de clases y los diagramas de Warnier que son utilizados

Esta validacioacuten es lograda a traveacutes del uso de la gramaacutetica visual relaciona1 que se ha definido (veacutease el capiacutetulo 3) Esta gramaacutetica visual establece reglas para la correcta construccioacuten de los diagramas de secuencias

P De esta manera se establece que la hipoacutetesis ldquoEs posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodosrdquo Es verdadera

52 Trabajos Futuros

Un Diagrama de Secuencias puede convertirse en un Diagrama de Colaboracioacuten por lo tanto un trabajo futuro es la construccioacuten automaacutetica de un Diagrama de Colaboracioacuten a partir de uno de Secuencias existente

Es posible calcular la meacutetrica de acoplamiento al tener un Diagrama de Secuencias construido

La Ingenieriacutea directa de un Diagrama de Secuencias estableciendo la validacioacuten en la construccioacuten de todos los elementos visuales que UML define

La propagacioacuten de las modificaciones de un Diagrama de Secuencias a los Diagramas de Clases y los Diagramas de Warnier

La modificacioacuten del coacutedigo fuente mediante los cambios establecidos en un Diagrama de Secuencias

51

[ALC03]

[BLA98]

[B0099]

[BOOOi]

[BR097]

[CHA90]

[DAN02]

[GLA02]

[HAC98]

[HER03]

4

Alcate1 Computer Associates International inc Electronic Data Systems Corporation Hewlett-Packard Company IBM Corporation I-Logix IntelliCorp Kabira Technologies Kennedy Carter Microsoft Corporation Object Management Group Oracle Corporation Project Technology Ptech Inc Rational Software Corporation Reich Technologies Softeam Taskon A S Telelogic Unisys Corporation ldquoOMG Unified Modeling Language Specificationrdquo Version 15 Unified Modeling Language 2003

Blaha Michael Rumbaugh James Premerlani William Eddy Frederick Lorensen William ldquoObject-oriented modeling and designrdquo Prentice Hall 484 Paacuteginas ISBN 0-13-629841-9 QA-769-03S-B53-19981998

Booch Grady Rumbaugh James Jacobson Ivar ldquoEl lenguaje unificado de modeladordquo Addison Wesley 432 Paacuteginas ISBN 84-7829-028-1 1999

Booch Grady Rumbaugh James Jacobson Ivar ldquoThe Unified Modeling Language User Guiderdquo Addison Wesley 2001

Brown David ldquoAn introduction to object-oriented analysis objects in plain Englishrdquo John Whiley amp Sons Inc 700 Paginas ISBN 0-471-1 1028-0 QA-769-035-B76-1997 1997

Chang Shi-Kuo ldquoVisual Languages and visual programmingrdquo Plenum Press 340 Paacuteginas ISBN 0-306-43428-8 QA-7665-V57-1990 1990

Daniels John ldquoModeling with a sense of purposerdquo Design - IEEE Software JanuaryEebmary 2002

Glasgow Universidad Reino Unido ldquoA UML Editor in Javardquo (lthttplstudentsdcsglaacuWstudentspainjfproject-reportproject-re port-htmV4thYearReporthtrnlgt 2002)

T Hackos JoAnn C Redish Janice ldquoUser and Task Analysis for Interface Designrdquo Wiley Computer Publishing 488 Paacuteginas ISBN QA-769-U83- H33-1998 1998

Hemaacutendez Velaacutezquez M ldquoIngenieriacutea inversa de coacutedigo fuente en C++ para la obtencioacuten de su disentildeordquo Tesis AT-379 (03-0334) 2003

Conceptos generales

[HIX93]

[JAC93]

[JAC99]

[JOY98]

[LAR97]

[MAR]

[MIC99]

[MIC02]

[MOU98]

Hix Deborah Hartson H Rex ldquoDeveloping user interfacesrdquo 381 Paacuteginas ISBN 0-471-57813-4 QA-769-U83-H59-1993 1993

Jacobson Ivar Christerson Magnus Jonsson Patrik Overgaard Gunnar ldquoObject oriented software engineeringrdquo Addison Wesley ISBN 0-20 1 - 54435-0 QA-7676-D47-J63-1993 1993

Jacobson Ivar Booch Grady Rumbaugh James ldquoEl proceso unificado de desarrollo de softwarerdquo Addison Wesley 438 Paacuteginas ISBN 84-7829-036- 2 1999

Joyanes Aguilar Luis ldquoProgramacioacuten orientada a objetosrdquo McGruw Hill ISBN 84-481-0590-7 1998

Larman Craig ldquoAplying UML and Patternsrdquo Prentice Hull 507 Paacuteginas ISBN 0-13-748880-7 QA-769-035-L37-1997 1997

Marriot Kim Meyer Bemd ldquoVisual Language Theoryrdquo Springer 381 Paacuteginas P-935-V567-1998 1998

Microsoft ldquoMicrosoft Visual C++ 6 manual del programadorrdquo McGraw Hill ISBN 84-481-2127-9 QA-7673-Cl53-23718-1999 1999

Microsoft ldquoVisiordquo (lthttpwwwmicrosoftcomofficevisiogt 2002)

B Mourao Luis X ldquoUniversal Modeling Language Part 11 UML Notation - Case Sequence and Collaboration Diagramsrdquo Lan Times Magazine (~httpwwwlantimescomltpartsdiscussdiscuss6Ohtm~) 1998

No Magic ldquoMagicDrawrdquo (lthttpwwwmagicdrawcomgt 2002)

Object Insight ldquoJvisionrdquo (lthttpwwwobject-insightcomgt 2002)

Rational Software Microsoft I Hewlett-Packard Oracle Sterling Software MCI Systemhouse Unisys ICON Computing IntelliCorp i-Logix IBM ObjectTime Platinum Technology Ptech Taskon Reich Technologies Sofieam ldquoUML Summaryrdquo Version 11 Unified Modeling Language 1997

Rational ldquoRational Roserdquo (lthttpwwwrationalcomproductosrosegt 2002)

Rikki Kirzner ldquoAnalysis Modeling and Design Tools Market Forecast and Analysis 2001-2005rdquo Bulletin Published Under Services Application Design and Construction Tools Application Development and Deployment Strategies Documento Nuacutemero 24809 Junio 2001

53

Conceptos generales

[RIM92] Rimrner Steve ldquoGraphical user interface programmingrdquo 423 Paacuteginas

1992

Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language reference manualrdquo Addison Wesley 550 Paacuteginas ISBN 0-201-

ISBN 0-8306-2475-9 ISBN 0-8306-2472-4 (pbk) QA-769-083-R55G

[RUM99]

30998-X QA-7676-D47-R85-1999 1999

[RUM299] Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language user guiderdquo Addisoiz Wesley 482 Paacuteginas ISBN 0-201 -57 168-4 QA-7676-D47-B66-1999 1999

[SMA02] SmartDraw ldquoSmartDrawrdquo (lthttpwwwsmartdrawcomgt 2002)

[SHU88] 9 - Shu Nun C ldquoVisual Programmingrdquo Van Nostrand Reinhold ISBN 0-422- 28014-9 ISBN 0-422-01 164-4 QA-7665-S55 1988

[THI90] Thimbleby Harold ldquoUser Interface Designrdquo Acm press 470 Paacuteginas ISBN 0-201 -41 61 8-2 QA-769U83-T772~- 1990 1990

[WENO2] Wences Diaz MF ldquoModelo de Ingenieriacutea Inversa para la obtencioacuten de disentildeo detallado basado en LEVISSrdquo Tesis (02-0014) 2002

54

Anexo A

Conampuracioacuten de Microsoft Vkua[C++ 6 O

Este anexo indica las configuraciones que se utilizaron para la compilacioacuten de SCUML y s3c

Configuracioacuten de Microsoft Visual c++ 60

Debido a la integracioacuten de los proyectos de InverSOODA e InverDDVi con S3C se cumplioacute con los requisitos previos de ambos proyectos

El compilador usado en el proyecto fue el Microsoft Visual C++ 60

Para el cumplimiento con la funcionalidad de InverSOODA se instaloacute el ANTLR la versioacuten 271 Se descargoacute del sitio l i l l ~ ~ ~ ~ ~ ~ t l ~ l ~ - ~ t - ~ la versioacuten mencionada en un archivo comprimido (en formato zip) Se colocoacute el paquete descomprimido en el directorio ldquoDIANTLR-271 I rdquo

Recomiendo ampliamente que el directorio principal de ANTLR se copie en el directorio raiacutez de cualquier unidad de disco debido a que experimenteacute problemas de compilacioacuten cuando ANTLR no se encontraba en el directorio raiacutez

Io015

Source Browser AlttF12 I u c Ersquo V I

Visual Component Mgnager

- - ~ ~ ~ ~~

P2 Registrar control

A Contenedor de prueba de controles ActiveX

A Usor de objetos OLE y COM

Buacutesqueda de errores

A Y++ MFC Iracer

Customize options

~ - q- ~ Macro

Eecord Quick Macro Cbl+ShiR+R Pay Quick Macro Ctrl+ShiR+P

En el menuacute Tools (Herramientas) seleccione el sub-menuacute Options ltopcionesgt

56

Configuracioacuten de Microsoft Visual C++ 60

En la siguiente ventana de diaacutelogo debe agregar la direccioacuten en donde se encuentra el ANTLR

Agregar la ruta del directorio de ANTLR hasta el subdirectorio

libcpp

Editor I Tabs I Debug I Compatibility 1 Build Dneclolies I a I Chow directories for - Platfolm -

- Directories I x ) 4 jWin32 -] llnclude files

m cancd I

57

Configuracioacuten de Microsoft Visual C t+ 60

Se ha creado una libreriacutea (anrlrliblib) de ANTLR la cual ya estaacute situada en el directorio del proyecto SCUML (ISCUML) y no debe ser movida o eliminada

I

Geneial 1 Debug I CC++ Link I Category

Output file name bebugSCUMLexe

Objectljibrary modules 4 anllrliblib

li Generate debug lnfo r Ignore all defaull lbaries D ~ i n k j n ~ ~ ~ t a n ~ r ~ e n e r ~ ~ ~ mapfile

r Enable psafilrng

Proiec1 Ootionn

pq Cancel 1 Libreriacutea de ANTLR que debe existir 1 I para que se compile correctamente

58

Anexo B

~ u iacute aacute raacutepida de uso deC Sistema S3C

5 Este anexo indica de forma raacutepida la manera de utilizar S3C para crear un diagrama de secuencias de forma automaacutetica

Guiacutea Raacutepida de uso del Sistema S3C i

Para indicar la creacioacuten de un diagrama de secuencias en forma automaacutetica se debe ir a la barra del costado izquierdo y presionar ldquoNuevo Proyecto SCUMLrdquo

I s3c I ~ Nuevo Proyecto SCUML ~ _ _ - I Diagrama de clases ~ Diagrama de secuencias 1 MDI DOC Activo

-

Apareceraacute un documento llamado ldquoSCUMLV en donde el simbolo corresponde a un numero consecutivo iniciando desde 1 (uno)

$ e Despueacutes se presiona ldquoDiagrama de clasesrdquo Habraacute que para indicarle al sistema si se requiere abrir un diagrama de clases existente o realizar uno nuevo

i

iquestAbrir un documento existente

No Cardquo~ear

AI presionar ldquoSirdquo se debe indicar cual es el archivo del diagrama de Clases en el cuadro de diaacutelogo siguiente

~~ - 11dMis documentos rsquo 2 M i P C i lsquo h s sitios de red

I

AI presionar ldquoNordquo en ldquoAbrir un documento existenterdquo se nos mostraraacute un documento vacio para crear un diagrama de clases

60

Guiacutea Raacutepida de uso del Sistema S3C

Para ambas opciones se requiere que los diagramas de Wamier ya se encuentren construidos Y para continuar el proccso se selecciona el documento ldquoSCUMLVrsquo creado al inicio y despueacutes presionar el botoacuten nombrado ldquoDiagrama de secuenciasrdquo localizado en la barra de hcrraiiiicntas del costado izquierdo

Ha iniciado el proceso de construccioacuten del diagrama de secuencias Si no existen errores al terminar el proceso se le mostraraacute un cuadro de diaacutelogo llamado ldquoResultadosrdquo en donde le mostraraacute las llamadas de las que no localizoacute su definicioacuten

- - -

Cancel 1 D e las siguientes llamadas es posible que esten mal escritas o peitenezcan a la libreiia del Lenguaie Verifique ya que no se encontraron sus definiciones

A continuacioacuten se mencionan los posibles errores que finalizan el proceso de la creacioacuten automaacutetica de los diagramas de secuencias en S3C

Cuando no exista un meacutetodo lsquomainrsquo definido en el diagrama de clases

No se encontro el meacutetodo lsquomain()rsquo que inicie la secuencia I A No se puede crear el diagrama de secuencias

p==amp=q

61

Guia Raacutepida de uso del Sistema S3C

Cuando se definan niultiples metodos lsquoinainrsquo en el diagrama de clases

Multiples meacutetodos lsquomainOlsquo Imposible decidir el inicio de secuencia

Aceptar i

Si un meacutetodo definido en Wamier realiza una llamada a lsquomainrsquo se cancelara el proceso

Llamada NO VALIDA al meacutetodo principal main

(iAcp-j(

4 i

CI Y rdquoldquoldquoI i 11 1-T

IZNTRO Gt INFORMACION

62

  • Tabla de Contenido
  • Listado de Figuras
  • Listado de Tablas
  • Notacioacuten
  • Introduccioacuten
  • Capitulo 1 Conceptos Generales
    • 11 Antecedentes
    • 12 Trabajos relacionados
      • 121 Tabla comparativa
        • 13 Definicioacuten del problema
        • 14 Objetivo de la Tesis
          • Objetivos especiacuteficos de la tesis
            • 15 Hipoacutetesis de investigacioacuten
            • 16 Alcances y limitaciones del trabajo de tesis
              • Capitulo 2 Marco Teoacuterico
                • 21 Modelado de sistemas de software
                • 22 Interfaz de usuario (Mecanismos de interaccioacuten)
                • 23 Lenguajes Visuales
                • 24 Programacioacuten orientada a objetos
                • 25 Lenguaje de Modelado Unificado (UML)
                  • Desarrollo de la herramienta
                    • 31 Disentildeo de la Arquitectura
                      • 311 Requisitos (Diagrama de Casos de uso)
                        • 312Modelo Conceptual
                        • 313Diagramas de clases
                        • 32 Elementos de la arquitectura
                          • 321 Microsoft Foundation Class (MFC)
                            • 322Arquitectura Documento Vista
                            • 323Integrando Ambientes en Visual c++
                              • 324 Interfaz de Muacuteltiples Documentos (MDI)
                                • 325Recursos Diaacutelogos Menus y Barras de Herramientas
                                  • 326 Notacioacuten estaacutendar
                                  • 327 Estructura de datos persistencia y recuperacioacuten
                                    • 328Patrones de disentildeo utilizados
                                      • 33 Diagrama de secuencias
                                        • 331Ciclo de vida del software
                                          • 34 Elementos atoacutemicos de la Gramaacutetica
                                            • 341 Representacioacuten visual
                                              • 35 Gramaacutetica desarrollada
                                              • 36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias
                                                  • Capitulo 4 Pruebas y Resultados
                                                    • 41 Recursos teacutecnicos utilizados
                                                    • 42 Descripcioacuten del plan de pruebas
                                                    • 43 Resultados
                                                      • 431 Caso
                                                      • 432 Caso2
                                                      • 433 Caso
                                                          • Conclusiones y trabajos futuros
                                                            • Trabajos futuros
                                                            • Referencias
                                                            • Anexo A Configuracioacuten de Microsoft Visual C+t
                                                              • Figura 11 - Arquitectura de la suite cenidet-UML
                                                              • Figura 21 -Programacioacuten Visual
                                                              • Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de
                                                              • Figura 32 -Diagrama de Casos de Uso para el S3C
                                                              • Figura 33 -Modelo Conceptual
                                                              • Figura 34 - Diagrama de Clases -Control del Diagrama -
                                                              • Figura 35 - Diagrama de Clases - Patroacuten Visitor -
                                                              • Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento
                                                              • Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)
                                                              • Figura 38 -Dialogo Caracteriacutesticas del Objeto
                                                              • Figura 39 -Dialogo Mensaje
                                                              • Figura 3 IO - Menuacute de los Diagramas de Secuencias (estaacutendar)
                                                              • Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias
                                                              • Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)
                                                              • Figura 313 - Serializacioacuten
                                                              • Figura 314 -Modelo de cascada del ciclo de vida del software
                                                              • Figura 41 - Resultado del caso de prueba
                                                              • Figura 42 -Resultado del caso de prueba
                                                              • Figura 43 -Resultado del caso de prueba
                                                              • Figura 44 -Resultado del caso de prueba
                                                              • Tabla 11 - Tabla comparativa
                                                              • Tabla 31 -Prefijos estaacutendar de identificadores
                                                              • Tabla 32 -Elementos atoacutemicos del lenguaje
                                                              • Tabla 41 - Resumen de los resultados de las pruebas realizadas

Conclusiones y Tru6ajos Futuros

Aquiacute se dan a conocer las conclusiones y se describen los posibles trabajos futuros para la continuacioacuten de eacuteste proyecto

F

51 Conclusiones

Conclusiones y trabajos futuros

Se ha creado un Ambiente Visual que permite obtener de forma automaacutetica los Diagramas de Secuencias en base a los diagramas de Clases y al disentildeo detallado de los meacutetodos descritos con diagramas de Warnier cumpliendo con los objetivos planteados para este trabajo

La tesis aporta principalmente La generacioacuten automaacutetica de los diagramas de secuencias y la eliminacioacuten de inconsistencias al mantener una validacioacuten directa de los diagramas de clases y los diagramas de Warnier que son utilizados

Esta validacioacuten es lograda a traveacutes del uso de la gramaacutetica visual relaciona1 que se ha definido (veacutease el capiacutetulo 3) Esta gramaacutetica visual establece reglas para la correcta construccioacuten de los diagramas de secuencias

P De esta manera se establece que la hipoacutetesis ldquoEs posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodosrdquo Es verdadera

52 Trabajos Futuros

Un Diagrama de Secuencias puede convertirse en un Diagrama de Colaboracioacuten por lo tanto un trabajo futuro es la construccioacuten automaacutetica de un Diagrama de Colaboracioacuten a partir de uno de Secuencias existente

Es posible calcular la meacutetrica de acoplamiento al tener un Diagrama de Secuencias construido

La Ingenieriacutea directa de un Diagrama de Secuencias estableciendo la validacioacuten en la construccioacuten de todos los elementos visuales que UML define

La propagacioacuten de las modificaciones de un Diagrama de Secuencias a los Diagramas de Clases y los Diagramas de Warnier

La modificacioacuten del coacutedigo fuente mediante los cambios establecidos en un Diagrama de Secuencias

51

[ALC03]

[BLA98]

[B0099]

[BOOOi]

[BR097]

[CHA90]

[DAN02]

[GLA02]

[HAC98]

[HER03]

4

Alcate1 Computer Associates International inc Electronic Data Systems Corporation Hewlett-Packard Company IBM Corporation I-Logix IntelliCorp Kabira Technologies Kennedy Carter Microsoft Corporation Object Management Group Oracle Corporation Project Technology Ptech Inc Rational Software Corporation Reich Technologies Softeam Taskon A S Telelogic Unisys Corporation ldquoOMG Unified Modeling Language Specificationrdquo Version 15 Unified Modeling Language 2003

Blaha Michael Rumbaugh James Premerlani William Eddy Frederick Lorensen William ldquoObject-oriented modeling and designrdquo Prentice Hall 484 Paacuteginas ISBN 0-13-629841-9 QA-769-03S-B53-19981998

Booch Grady Rumbaugh James Jacobson Ivar ldquoEl lenguaje unificado de modeladordquo Addison Wesley 432 Paacuteginas ISBN 84-7829-028-1 1999

Booch Grady Rumbaugh James Jacobson Ivar ldquoThe Unified Modeling Language User Guiderdquo Addison Wesley 2001

Brown David ldquoAn introduction to object-oriented analysis objects in plain Englishrdquo John Whiley amp Sons Inc 700 Paginas ISBN 0-471-1 1028-0 QA-769-035-B76-1997 1997

Chang Shi-Kuo ldquoVisual Languages and visual programmingrdquo Plenum Press 340 Paacuteginas ISBN 0-306-43428-8 QA-7665-V57-1990 1990

Daniels John ldquoModeling with a sense of purposerdquo Design - IEEE Software JanuaryEebmary 2002

Glasgow Universidad Reino Unido ldquoA UML Editor in Javardquo (lthttplstudentsdcsglaacuWstudentspainjfproject-reportproject-re port-htmV4thYearReporthtrnlgt 2002)

T Hackos JoAnn C Redish Janice ldquoUser and Task Analysis for Interface Designrdquo Wiley Computer Publishing 488 Paacuteginas ISBN QA-769-U83- H33-1998 1998

Hemaacutendez Velaacutezquez M ldquoIngenieriacutea inversa de coacutedigo fuente en C++ para la obtencioacuten de su disentildeordquo Tesis AT-379 (03-0334) 2003

Conceptos generales

[HIX93]

[JAC93]

[JAC99]

[JOY98]

[LAR97]

[MAR]

[MIC99]

[MIC02]

[MOU98]

Hix Deborah Hartson H Rex ldquoDeveloping user interfacesrdquo 381 Paacuteginas ISBN 0-471-57813-4 QA-769-U83-H59-1993 1993

Jacobson Ivar Christerson Magnus Jonsson Patrik Overgaard Gunnar ldquoObject oriented software engineeringrdquo Addison Wesley ISBN 0-20 1 - 54435-0 QA-7676-D47-J63-1993 1993

Jacobson Ivar Booch Grady Rumbaugh James ldquoEl proceso unificado de desarrollo de softwarerdquo Addison Wesley 438 Paacuteginas ISBN 84-7829-036- 2 1999

Joyanes Aguilar Luis ldquoProgramacioacuten orientada a objetosrdquo McGruw Hill ISBN 84-481-0590-7 1998

Larman Craig ldquoAplying UML and Patternsrdquo Prentice Hull 507 Paacuteginas ISBN 0-13-748880-7 QA-769-035-L37-1997 1997

Marriot Kim Meyer Bemd ldquoVisual Language Theoryrdquo Springer 381 Paacuteginas P-935-V567-1998 1998

Microsoft ldquoMicrosoft Visual C++ 6 manual del programadorrdquo McGraw Hill ISBN 84-481-2127-9 QA-7673-Cl53-23718-1999 1999

Microsoft ldquoVisiordquo (lthttpwwwmicrosoftcomofficevisiogt 2002)

B Mourao Luis X ldquoUniversal Modeling Language Part 11 UML Notation - Case Sequence and Collaboration Diagramsrdquo Lan Times Magazine (~httpwwwlantimescomltpartsdiscussdiscuss6Ohtm~) 1998

No Magic ldquoMagicDrawrdquo (lthttpwwwmagicdrawcomgt 2002)

Object Insight ldquoJvisionrdquo (lthttpwwwobject-insightcomgt 2002)

Rational Software Microsoft I Hewlett-Packard Oracle Sterling Software MCI Systemhouse Unisys ICON Computing IntelliCorp i-Logix IBM ObjectTime Platinum Technology Ptech Taskon Reich Technologies Sofieam ldquoUML Summaryrdquo Version 11 Unified Modeling Language 1997

Rational ldquoRational Roserdquo (lthttpwwwrationalcomproductosrosegt 2002)

Rikki Kirzner ldquoAnalysis Modeling and Design Tools Market Forecast and Analysis 2001-2005rdquo Bulletin Published Under Services Application Design and Construction Tools Application Development and Deployment Strategies Documento Nuacutemero 24809 Junio 2001

53

Conceptos generales

[RIM92] Rimrner Steve ldquoGraphical user interface programmingrdquo 423 Paacuteginas

1992

Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language reference manualrdquo Addison Wesley 550 Paacuteginas ISBN 0-201-

ISBN 0-8306-2475-9 ISBN 0-8306-2472-4 (pbk) QA-769-083-R55G

[RUM99]

30998-X QA-7676-D47-R85-1999 1999

[RUM299] Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language user guiderdquo Addisoiz Wesley 482 Paacuteginas ISBN 0-201 -57 168-4 QA-7676-D47-B66-1999 1999

[SMA02] SmartDraw ldquoSmartDrawrdquo (lthttpwwwsmartdrawcomgt 2002)

[SHU88] 9 - Shu Nun C ldquoVisual Programmingrdquo Van Nostrand Reinhold ISBN 0-422- 28014-9 ISBN 0-422-01 164-4 QA-7665-S55 1988

[THI90] Thimbleby Harold ldquoUser Interface Designrdquo Acm press 470 Paacuteginas ISBN 0-201 -41 61 8-2 QA-769U83-T772~- 1990 1990

[WENO2] Wences Diaz MF ldquoModelo de Ingenieriacutea Inversa para la obtencioacuten de disentildeo detallado basado en LEVISSrdquo Tesis (02-0014) 2002

54

Anexo A

Conampuracioacuten de Microsoft Vkua[C++ 6 O

Este anexo indica las configuraciones que se utilizaron para la compilacioacuten de SCUML y s3c

Configuracioacuten de Microsoft Visual c++ 60

Debido a la integracioacuten de los proyectos de InverSOODA e InverDDVi con S3C se cumplioacute con los requisitos previos de ambos proyectos

El compilador usado en el proyecto fue el Microsoft Visual C++ 60

Para el cumplimiento con la funcionalidad de InverSOODA se instaloacute el ANTLR la versioacuten 271 Se descargoacute del sitio l i l l ~ ~ ~ ~ ~ ~ t l ~ l ~ - ~ t - ~ la versioacuten mencionada en un archivo comprimido (en formato zip) Se colocoacute el paquete descomprimido en el directorio ldquoDIANTLR-271 I rdquo

Recomiendo ampliamente que el directorio principal de ANTLR se copie en el directorio raiacutez de cualquier unidad de disco debido a que experimenteacute problemas de compilacioacuten cuando ANTLR no se encontraba en el directorio raiacutez

Io015

Source Browser AlttF12 I u c Ersquo V I

Visual Component Mgnager

- - ~ ~ ~ ~~

P2 Registrar control

A Contenedor de prueba de controles ActiveX

A Usor de objetos OLE y COM

Buacutesqueda de errores

A Y++ MFC Iracer

Customize options

~ - q- ~ Macro

Eecord Quick Macro Cbl+ShiR+R Pay Quick Macro Ctrl+ShiR+P

En el menuacute Tools (Herramientas) seleccione el sub-menuacute Options ltopcionesgt

56

Configuracioacuten de Microsoft Visual C++ 60

En la siguiente ventana de diaacutelogo debe agregar la direccioacuten en donde se encuentra el ANTLR

Agregar la ruta del directorio de ANTLR hasta el subdirectorio

libcpp

Editor I Tabs I Debug I Compatibility 1 Build Dneclolies I a I Chow directories for - Platfolm -

- Directories I x ) 4 jWin32 -] llnclude files

m cancd I

57

Configuracioacuten de Microsoft Visual C t+ 60

Se ha creado una libreriacutea (anrlrliblib) de ANTLR la cual ya estaacute situada en el directorio del proyecto SCUML (ISCUML) y no debe ser movida o eliminada

I

Geneial 1 Debug I CC++ Link I Category

Output file name bebugSCUMLexe

Objectljibrary modules 4 anllrliblib

li Generate debug lnfo r Ignore all defaull lbaries D ~ i n k j n ~ ~ ~ t a n ~ r ~ e n e r ~ ~ ~ mapfile

r Enable psafilrng

Proiec1 Ootionn

pq Cancel 1 Libreriacutea de ANTLR que debe existir 1 I para que se compile correctamente

58

Anexo B

~ u iacute aacute raacutepida de uso deC Sistema S3C

5 Este anexo indica de forma raacutepida la manera de utilizar S3C para crear un diagrama de secuencias de forma automaacutetica

Guiacutea Raacutepida de uso del Sistema S3C i

Para indicar la creacioacuten de un diagrama de secuencias en forma automaacutetica se debe ir a la barra del costado izquierdo y presionar ldquoNuevo Proyecto SCUMLrdquo

I s3c I ~ Nuevo Proyecto SCUML ~ _ _ - I Diagrama de clases ~ Diagrama de secuencias 1 MDI DOC Activo

-

Apareceraacute un documento llamado ldquoSCUMLV en donde el simbolo corresponde a un numero consecutivo iniciando desde 1 (uno)

$ e Despueacutes se presiona ldquoDiagrama de clasesrdquo Habraacute que para indicarle al sistema si se requiere abrir un diagrama de clases existente o realizar uno nuevo

i

iquestAbrir un documento existente

No Cardquo~ear

AI presionar ldquoSirdquo se debe indicar cual es el archivo del diagrama de Clases en el cuadro de diaacutelogo siguiente

~~ - 11dMis documentos rsquo 2 M i P C i lsquo h s sitios de red

I

AI presionar ldquoNordquo en ldquoAbrir un documento existenterdquo se nos mostraraacute un documento vacio para crear un diagrama de clases

60

Guiacutea Raacutepida de uso del Sistema S3C

Para ambas opciones se requiere que los diagramas de Wamier ya se encuentren construidos Y para continuar el proccso se selecciona el documento ldquoSCUMLVrsquo creado al inicio y despueacutes presionar el botoacuten nombrado ldquoDiagrama de secuenciasrdquo localizado en la barra de hcrraiiiicntas del costado izquierdo

Ha iniciado el proceso de construccioacuten del diagrama de secuencias Si no existen errores al terminar el proceso se le mostraraacute un cuadro de diaacutelogo llamado ldquoResultadosrdquo en donde le mostraraacute las llamadas de las que no localizoacute su definicioacuten

- - -

Cancel 1 D e las siguientes llamadas es posible que esten mal escritas o peitenezcan a la libreiia del Lenguaie Verifique ya que no se encontraron sus definiciones

A continuacioacuten se mencionan los posibles errores que finalizan el proceso de la creacioacuten automaacutetica de los diagramas de secuencias en S3C

Cuando no exista un meacutetodo lsquomainrsquo definido en el diagrama de clases

No se encontro el meacutetodo lsquomain()rsquo que inicie la secuencia I A No se puede crear el diagrama de secuencias

p==amp=q

61

Guia Raacutepida de uso del Sistema S3C

Cuando se definan niultiples metodos lsquoinainrsquo en el diagrama de clases

Multiples meacutetodos lsquomainOlsquo Imposible decidir el inicio de secuencia

Aceptar i

Si un meacutetodo definido en Wamier realiza una llamada a lsquomainrsquo se cancelara el proceso

Llamada NO VALIDA al meacutetodo principal main

(iAcp-j(

4 i

CI Y rdquoldquoldquoI i 11 1-T

IZNTRO Gt INFORMACION

62

  • Tabla de Contenido
  • Listado de Figuras
  • Listado de Tablas
  • Notacioacuten
  • Introduccioacuten
  • Capitulo 1 Conceptos Generales
    • 11 Antecedentes
    • 12 Trabajos relacionados
      • 121 Tabla comparativa
        • 13 Definicioacuten del problema
        • 14 Objetivo de la Tesis
          • Objetivos especiacuteficos de la tesis
            • 15 Hipoacutetesis de investigacioacuten
            • 16 Alcances y limitaciones del trabajo de tesis
              • Capitulo 2 Marco Teoacuterico
                • 21 Modelado de sistemas de software
                • 22 Interfaz de usuario (Mecanismos de interaccioacuten)
                • 23 Lenguajes Visuales
                • 24 Programacioacuten orientada a objetos
                • 25 Lenguaje de Modelado Unificado (UML)
                  • Desarrollo de la herramienta
                    • 31 Disentildeo de la Arquitectura
                      • 311 Requisitos (Diagrama de Casos de uso)
                        • 312Modelo Conceptual
                        • 313Diagramas de clases
                        • 32 Elementos de la arquitectura
                          • 321 Microsoft Foundation Class (MFC)
                            • 322Arquitectura Documento Vista
                            • 323Integrando Ambientes en Visual c++
                              • 324 Interfaz de Muacuteltiples Documentos (MDI)
                                • 325Recursos Diaacutelogos Menus y Barras de Herramientas
                                  • 326 Notacioacuten estaacutendar
                                  • 327 Estructura de datos persistencia y recuperacioacuten
                                    • 328Patrones de disentildeo utilizados
                                      • 33 Diagrama de secuencias
                                        • 331Ciclo de vida del software
                                          • 34 Elementos atoacutemicos de la Gramaacutetica
                                            • 341 Representacioacuten visual
                                              • 35 Gramaacutetica desarrollada
                                              • 36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias
                                                  • Capitulo 4 Pruebas y Resultados
                                                    • 41 Recursos teacutecnicos utilizados
                                                    • 42 Descripcioacuten del plan de pruebas
                                                    • 43 Resultados
                                                      • 431 Caso
                                                      • 432 Caso2
                                                      • 433 Caso
                                                          • Conclusiones y trabajos futuros
                                                            • Trabajos futuros
                                                            • Referencias
                                                            • Anexo A Configuracioacuten de Microsoft Visual C+t
                                                              • Figura 11 - Arquitectura de la suite cenidet-UML
                                                              • Figura 21 -Programacioacuten Visual
                                                              • Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de
                                                              • Figura 32 -Diagrama de Casos de Uso para el S3C
                                                              • Figura 33 -Modelo Conceptual
                                                              • Figura 34 - Diagrama de Clases -Control del Diagrama -
                                                              • Figura 35 - Diagrama de Clases - Patroacuten Visitor -
                                                              • Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento
                                                              • Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)
                                                              • Figura 38 -Dialogo Caracteriacutesticas del Objeto
                                                              • Figura 39 -Dialogo Mensaje
                                                              • Figura 3 IO - Menuacute de los Diagramas de Secuencias (estaacutendar)
                                                              • Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias
                                                              • Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)
                                                              • Figura 313 - Serializacioacuten
                                                              • Figura 314 -Modelo de cascada del ciclo de vida del software
                                                              • Figura 41 - Resultado del caso de prueba
                                                              • Figura 42 -Resultado del caso de prueba
                                                              • Figura 43 -Resultado del caso de prueba
                                                              • Figura 44 -Resultado del caso de prueba
                                                              • Tabla 11 - Tabla comparativa
                                                              • Tabla 31 -Prefijos estaacutendar de identificadores
                                                              • Tabla 32 -Elementos atoacutemicos del lenguaje
                                                              • Tabla 41 - Resumen de los resultados de las pruebas realizadas

51 Conclusiones

Conclusiones y trabajos futuros

Se ha creado un Ambiente Visual que permite obtener de forma automaacutetica los Diagramas de Secuencias en base a los diagramas de Clases y al disentildeo detallado de los meacutetodos descritos con diagramas de Warnier cumpliendo con los objetivos planteados para este trabajo

La tesis aporta principalmente La generacioacuten automaacutetica de los diagramas de secuencias y la eliminacioacuten de inconsistencias al mantener una validacioacuten directa de los diagramas de clases y los diagramas de Warnier que son utilizados

Esta validacioacuten es lograda a traveacutes del uso de la gramaacutetica visual relaciona1 que se ha definido (veacutease el capiacutetulo 3) Esta gramaacutetica visual establece reglas para la correcta construccioacuten de los diagramas de secuencias

P De esta manera se establece que la hipoacutetesis ldquoEs posible construir automaacuteticamente diagramas de secuencias con base en el diagrama de clases y el disentildeo detallado de los meacutetodosrdquo Es verdadera

52 Trabajos Futuros

Un Diagrama de Secuencias puede convertirse en un Diagrama de Colaboracioacuten por lo tanto un trabajo futuro es la construccioacuten automaacutetica de un Diagrama de Colaboracioacuten a partir de uno de Secuencias existente

Es posible calcular la meacutetrica de acoplamiento al tener un Diagrama de Secuencias construido

La Ingenieriacutea directa de un Diagrama de Secuencias estableciendo la validacioacuten en la construccioacuten de todos los elementos visuales que UML define

La propagacioacuten de las modificaciones de un Diagrama de Secuencias a los Diagramas de Clases y los Diagramas de Warnier

La modificacioacuten del coacutedigo fuente mediante los cambios establecidos en un Diagrama de Secuencias

51

[ALC03]

[BLA98]

[B0099]

[BOOOi]

[BR097]

[CHA90]

[DAN02]

[GLA02]

[HAC98]

[HER03]

4

Alcate1 Computer Associates International inc Electronic Data Systems Corporation Hewlett-Packard Company IBM Corporation I-Logix IntelliCorp Kabira Technologies Kennedy Carter Microsoft Corporation Object Management Group Oracle Corporation Project Technology Ptech Inc Rational Software Corporation Reich Technologies Softeam Taskon A S Telelogic Unisys Corporation ldquoOMG Unified Modeling Language Specificationrdquo Version 15 Unified Modeling Language 2003

Blaha Michael Rumbaugh James Premerlani William Eddy Frederick Lorensen William ldquoObject-oriented modeling and designrdquo Prentice Hall 484 Paacuteginas ISBN 0-13-629841-9 QA-769-03S-B53-19981998

Booch Grady Rumbaugh James Jacobson Ivar ldquoEl lenguaje unificado de modeladordquo Addison Wesley 432 Paacuteginas ISBN 84-7829-028-1 1999

Booch Grady Rumbaugh James Jacobson Ivar ldquoThe Unified Modeling Language User Guiderdquo Addison Wesley 2001

Brown David ldquoAn introduction to object-oriented analysis objects in plain Englishrdquo John Whiley amp Sons Inc 700 Paginas ISBN 0-471-1 1028-0 QA-769-035-B76-1997 1997

Chang Shi-Kuo ldquoVisual Languages and visual programmingrdquo Plenum Press 340 Paacuteginas ISBN 0-306-43428-8 QA-7665-V57-1990 1990

Daniels John ldquoModeling with a sense of purposerdquo Design - IEEE Software JanuaryEebmary 2002

Glasgow Universidad Reino Unido ldquoA UML Editor in Javardquo (lthttplstudentsdcsglaacuWstudentspainjfproject-reportproject-re port-htmV4thYearReporthtrnlgt 2002)

T Hackos JoAnn C Redish Janice ldquoUser and Task Analysis for Interface Designrdquo Wiley Computer Publishing 488 Paacuteginas ISBN QA-769-U83- H33-1998 1998

Hemaacutendez Velaacutezquez M ldquoIngenieriacutea inversa de coacutedigo fuente en C++ para la obtencioacuten de su disentildeordquo Tesis AT-379 (03-0334) 2003

Conceptos generales

[HIX93]

[JAC93]

[JAC99]

[JOY98]

[LAR97]

[MAR]

[MIC99]

[MIC02]

[MOU98]

Hix Deborah Hartson H Rex ldquoDeveloping user interfacesrdquo 381 Paacuteginas ISBN 0-471-57813-4 QA-769-U83-H59-1993 1993

Jacobson Ivar Christerson Magnus Jonsson Patrik Overgaard Gunnar ldquoObject oriented software engineeringrdquo Addison Wesley ISBN 0-20 1 - 54435-0 QA-7676-D47-J63-1993 1993

Jacobson Ivar Booch Grady Rumbaugh James ldquoEl proceso unificado de desarrollo de softwarerdquo Addison Wesley 438 Paacuteginas ISBN 84-7829-036- 2 1999

Joyanes Aguilar Luis ldquoProgramacioacuten orientada a objetosrdquo McGruw Hill ISBN 84-481-0590-7 1998

Larman Craig ldquoAplying UML and Patternsrdquo Prentice Hull 507 Paacuteginas ISBN 0-13-748880-7 QA-769-035-L37-1997 1997

Marriot Kim Meyer Bemd ldquoVisual Language Theoryrdquo Springer 381 Paacuteginas P-935-V567-1998 1998

Microsoft ldquoMicrosoft Visual C++ 6 manual del programadorrdquo McGraw Hill ISBN 84-481-2127-9 QA-7673-Cl53-23718-1999 1999

Microsoft ldquoVisiordquo (lthttpwwwmicrosoftcomofficevisiogt 2002)

B Mourao Luis X ldquoUniversal Modeling Language Part 11 UML Notation - Case Sequence and Collaboration Diagramsrdquo Lan Times Magazine (~httpwwwlantimescomltpartsdiscussdiscuss6Ohtm~) 1998

No Magic ldquoMagicDrawrdquo (lthttpwwwmagicdrawcomgt 2002)

Object Insight ldquoJvisionrdquo (lthttpwwwobject-insightcomgt 2002)

Rational Software Microsoft I Hewlett-Packard Oracle Sterling Software MCI Systemhouse Unisys ICON Computing IntelliCorp i-Logix IBM ObjectTime Platinum Technology Ptech Taskon Reich Technologies Sofieam ldquoUML Summaryrdquo Version 11 Unified Modeling Language 1997

Rational ldquoRational Roserdquo (lthttpwwwrationalcomproductosrosegt 2002)

Rikki Kirzner ldquoAnalysis Modeling and Design Tools Market Forecast and Analysis 2001-2005rdquo Bulletin Published Under Services Application Design and Construction Tools Application Development and Deployment Strategies Documento Nuacutemero 24809 Junio 2001

53

Conceptos generales

[RIM92] Rimrner Steve ldquoGraphical user interface programmingrdquo 423 Paacuteginas

1992

Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language reference manualrdquo Addison Wesley 550 Paacuteginas ISBN 0-201-

ISBN 0-8306-2475-9 ISBN 0-8306-2472-4 (pbk) QA-769-083-R55G

[RUM99]

30998-X QA-7676-D47-R85-1999 1999

[RUM299] Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language user guiderdquo Addisoiz Wesley 482 Paacuteginas ISBN 0-201 -57 168-4 QA-7676-D47-B66-1999 1999

[SMA02] SmartDraw ldquoSmartDrawrdquo (lthttpwwwsmartdrawcomgt 2002)

[SHU88] 9 - Shu Nun C ldquoVisual Programmingrdquo Van Nostrand Reinhold ISBN 0-422- 28014-9 ISBN 0-422-01 164-4 QA-7665-S55 1988

[THI90] Thimbleby Harold ldquoUser Interface Designrdquo Acm press 470 Paacuteginas ISBN 0-201 -41 61 8-2 QA-769U83-T772~- 1990 1990

[WENO2] Wences Diaz MF ldquoModelo de Ingenieriacutea Inversa para la obtencioacuten de disentildeo detallado basado en LEVISSrdquo Tesis (02-0014) 2002

54

Anexo A

Conampuracioacuten de Microsoft Vkua[C++ 6 O

Este anexo indica las configuraciones que se utilizaron para la compilacioacuten de SCUML y s3c

Configuracioacuten de Microsoft Visual c++ 60

Debido a la integracioacuten de los proyectos de InverSOODA e InverDDVi con S3C se cumplioacute con los requisitos previos de ambos proyectos

El compilador usado en el proyecto fue el Microsoft Visual C++ 60

Para el cumplimiento con la funcionalidad de InverSOODA se instaloacute el ANTLR la versioacuten 271 Se descargoacute del sitio l i l l ~ ~ ~ ~ ~ ~ t l ~ l ~ - ~ t - ~ la versioacuten mencionada en un archivo comprimido (en formato zip) Se colocoacute el paquete descomprimido en el directorio ldquoDIANTLR-271 I rdquo

Recomiendo ampliamente que el directorio principal de ANTLR se copie en el directorio raiacutez de cualquier unidad de disco debido a que experimenteacute problemas de compilacioacuten cuando ANTLR no se encontraba en el directorio raiacutez

Io015

Source Browser AlttF12 I u c Ersquo V I

Visual Component Mgnager

- - ~ ~ ~ ~~

P2 Registrar control

A Contenedor de prueba de controles ActiveX

A Usor de objetos OLE y COM

Buacutesqueda de errores

A Y++ MFC Iracer

Customize options

~ - q- ~ Macro

Eecord Quick Macro Cbl+ShiR+R Pay Quick Macro Ctrl+ShiR+P

En el menuacute Tools (Herramientas) seleccione el sub-menuacute Options ltopcionesgt

56

Configuracioacuten de Microsoft Visual C++ 60

En la siguiente ventana de diaacutelogo debe agregar la direccioacuten en donde se encuentra el ANTLR

Agregar la ruta del directorio de ANTLR hasta el subdirectorio

libcpp

Editor I Tabs I Debug I Compatibility 1 Build Dneclolies I a I Chow directories for - Platfolm -

- Directories I x ) 4 jWin32 -] llnclude files

m cancd I

57

Configuracioacuten de Microsoft Visual C t+ 60

Se ha creado una libreriacutea (anrlrliblib) de ANTLR la cual ya estaacute situada en el directorio del proyecto SCUML (ISCUML) y no debe ser movida o eliminada

I

Geneial 1 Debug I CC++ Link I Category

Output file name bebugSCUMLexe

Objectljibrary modules 4 anllrliblib

li Generate debug lnfo r Ignore all defaull lbaries D ~ i n k j n ~ ~ ~ t a n ~ r ~ e n e r ~ ~ ~ mapfile

r Enable psafilrng

Proiec1 Ootionn

pq Cancel 1 Libreriacutea de ANTLR que debe existir 1 I para que se compile correctamente

58

Anexo B

~ u iacute aacute raacutepida de uso deC Sistema S3C

5 Este anexo indica de forma raacutepida la manera de utilizar S3C para crear un diagrama de secuencias de forma automaacutetica

Guiacutea Raacutepida de uso del Sistema S3C i

Para indicar la creacioacuten de un diagrama de secuencias en forma automaacutetica se debe ir a la barra del costado izquierdo y presionar ldquoNuevo Proyecto SCUMLrdquo

I s3c I ~ Nuevo Proyecto SCUML ~ _ _ - I Diagrama de clases ~ Diagrama de secuencias 1 MDI DOC Activo

-

Apareceraacute un documento llamado ldquoSCUMLV en donde el simbolo corresponde a un numero consecutivo iniciando desde 1 (uno)

$ e Despueacutes se presiona ldquoDiagrama de clasesrdquo Habraacute que para indicarle al sistema si se requiere abrir un diagrama de clases existente o realizar uno nuevo

i

iquestAbrir un documento existente

No Cardquo~ear

AI presionar ldquoSirdquo se debe indicar cual es el archivo del diagrama de Clases en el cuadro de diaacutelogo siguiente

~~ - 11dMis documentos rsquo 2 M i P C i lsquo h s sitios de red

I

AI presionar ldquoNordquo en ldquoAbrir un documento existenterdquo se nos mostraraacute un documento vacio para crear un diagrama de clases

60

Guiacutea Raacutepida de uso del Sistema S3C

Para ambas opciones se requiere que los diagramas de Wamier ya se encuentren construidos Y para continuar el proccso se selecciona el documento ldquoSCUMLVrsquo creado al inicio y despueacutes presionar el botoacuten nombrado ldquoDiagrama de secuenciasrdquo localizado en la barra de hcrraiiiicntas del costado izquierdo

Ha iniciado el proceso de construccioacuten del diagrama de secuencias Si no existen errores al terminar el proceso se le mostraraacute un cuadro de diaacutelogo llamado ldquoResultadosrdquo en donde le mostraraacute las llamadas de las que no localizoacute su definicioacuten

- - -

Cancel 1 D e las siguientes llamadas es posible que esten mal escritas o peitenezcan a la libreiia del Lenguaie Verifique ya que no se encontraron sus definiciones

A continuacioacuten se mencionan los posibles errores que finalizan el proceso de la creacioacuten automaacutetica de los diagramas de secuencias en S3C

Cuando no exista un meacutetodo lsquomainrsquo definido en el diagrama de clases

No se encontro el meacutetodo lsquomain()rsquo que inicie la secuencia I A No se puede crear el diagrama de secuencias

p==amp=q

61

Guia Raacutepida de uso del Sistema S3C

Cuando se definan niultiples metodos lsquoinainrsquo en el diagrama de clases

Multiples meacutetodos lsquomainOlsquo Imposible decidir el inicio de secuencia

Aceptar i

Si un meacutetodo definido en Wamier realiza una llamada a lsquomainrsquo se cancelara el proceso

Llamada NO VALIDA al meacutetodo principal main

(iAcp-j(

4 i

CI Y rdquoldquoldquoI i 11 1-T

IZNTRO Gt INFORMACION

62

  • Tabla de Contenido
  • Listado de Figuras
  • Listado de Tablas
  • Notacioacuten
  • Introduccioacuten
  • Capitulo 1 Conceptos Generales
    • 11 Antecedentes
    • 12 Trabajos relacionados
      • 121 Tabla comparativa
        • 13 Definicioacuten del problema
        • 14 Objetivo de la Tesis
          • Objetivos especiacuteficos de la tesis
            • 15 Hipoacutetesis de investigacioacuten
            • 16 Alcances y limitaciones del trabajo de tesis
              • Capitulo 2 Marco Teoacuterico
                • 21 Modelado de sistemas de software
                • 22 Interfaz de usuario (Mecanismos de interaccioacuten)
                • 23 Lenguajes Visuales
                • 24 Programacioacuten orientada a objetos
                • 25 Lenguaje de Modelado Unificado (UML)
                  • Desarrollo de la herramienta
                    • 31 Disentildeo de la Arquitectura
                      • 311 Requisitos (Diagrama de Casos de uso)
                        • 312Modelo Conceptual
                        • 313Diagramas de clases
                        • 32 Elementos de la arquitectura
                          • 321 Microsoft Foundation Class (MFC)
                            • 322Arquitectura Documento Vista
                            • 323Integrando Ambientes en Visual c++
                              • 324 Interfaz de Muacuteltiples Documentos (MDI)
                                • 325Recursos Diaacutelogos Menus y Barras de Herramientas
                                  • 326 Notacioacuten estaacutendar
                                  • 327 Estructura de datos persistencia y recuperacioacuten
                                    • 328Patrones de disentildeo utilizados
                                      • 33 Diagrama de secuencias
                                        • 331Ciclo de vida del software
                                          • 34 Elementos atoacutemicos de la Gramaacutetica
                                            • 341 Representacioacuten visual
                                              • 35 Gramaacutetica desarrollada
                                              • 36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias
                                                  • Capitulo 4 Pruebas y Resultados
                                                    • 41 Recursos teacutecnicos utilizados
                                                    • 42 Descripcioacuten del plan de pruebas
                                                    • 43 Resultados
                                                      • 431 Caso
                                                      • 432 Caso2
                                                      • 433 Caso
                                                          • Conclusiones y trabajos futuros
                                                            • Trabajos futuros
                                                            • Referencias
                                                            • Anexo A Configuracioacuten de Microsoft Visual C+t
                                                              • Figura 11 - Arquitectura de la suite cenidet-UML
                                                              • Figura 21 -Programacioacuten Visual
                                                              • Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de
                                                              • Figura 32 -Diagrama de Casos de Uso para el S3C
                                                              • Figura 33 -Modelo Conceptual
                                                              • Figura 34 - Diagrama de Clases -Control del Diagrama -
                                                              • Figura 35 - Diagrama de Clases - Patroacuten Visitor -
                                                              • Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento
                                                              • Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)
                                                              • Figura 38 -Dialogo Caracteriacutesticas del Objeto
                                                              • Figura 39 -Dialogo Mensaje
                                                              • Figura 3 IO - Menuacute de los Diagramas de Secuencias (estaacutendar)
                                                              • Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias
                                                              • Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)
                                                              • Figura 313 - Serializacioacuten
                                                              • Figura 314 -Modelo de cascada del ciclo de vida del software
                                                              • Figura 41 - Resultado del caso de prueba
                                                              • Figura 42 -Resultado del caso de prueba
                                                              • Figura 43 -Resultado del caso de prueba
                                                              • Figura 44 -Resultado del caso de prueba
                                                              • Tabla 11 - Tabla comparativa
                                                              • Tabla 31 -Prefijos estaacutendar de identificadores
                                                              • Tabla 32 -Elementos atoacutemicos del lenguaje
                                                              • Tabla 41 - Resumen de los resultados de las pruebas realizadas

[ALC03]

[BLA98]

[B0099]

[BOOOi]

[BR097]

[CHA90]

[DAN02]

[GLA02]

[HAC98]

[HER03]

4

Alcate1 Computer Associates International inc Electronic Data Systems Corporation Hewlett-Packard Company IBM Corporation I-Logix IntelliCorp Kabira Technologies Kennedy Carter Microsoft Corporation Object Management Group Oracle Corporation Project Technology Ptech Inc Rational Software Corporation Reich Technologies Softeam Taskon A S Telelogic Unisys Corporation ldquoOMG Unified Modeling Language Specificationrdquo Version 15 Unified Modeling Language 2003

Blaha Michael Rumbaugh James Premerlani William Eddy Frederick Lorensen William ldquoObject-oriented modeling and designrdquo Prentice Hall 484 Paacuteginas ISBN 0-13-629841-9 QA-769-03S-B53-19981998

Booch Grady Rumbaugh James Jacobson Ivar ldquoEl lenguaje unificado de modeladordquo Addison Wesley 432 Paacuteginas ISBN 84-7829-028-1 1999

Booch Grady Rumbaugh James Jacobson Ivar ldquoThe Unified Modeling Language User Guiderdquo Addison Wesley 2001

Brown David ldquoAn introduction to object-oriented analysis objects in plain Englishrdquo John Whiley amp Sons Inc 700 Paginas ISBN 0-471-1 1028-0 QA-769-035-B76-1997 1997

Chang Shi-Kuo ldquoVisual Languages and visual programmingrdquo Plenum Press 340 Paacuteginas ISBN 0-306-43428-8 QA-7665-V57-1990 1990

Daniels John ldquoModeling with a sense of purposerdquo Design - IEEE Software JanuaryEebmary 2002

Glasgow Universidad Reino Unido ldquoA UML Editor in Javardquo (lthttplstudentsdcsglaacuWstudentspainjfproject-reportproject-re port-htmV4thYearReporthtrnlgt 2002)

T Hackos JoAnn C Redish Janice ldquoUser and Task Analysis for Interface Designrdquo Wiley Computer Publishing 488 Paacuteginas ISBN QA-769-U83- H33-1998 1998

Hemaacutendez Velaacutezquez M ldquoIngenieriacutea inversa de coacutedigo fuente en C++ para la obtencioacuten de su disentildeordquo Tesis AT-379 (03-0334) 2003

Conceptos generales

[HIX93]

[JAC93]

[JAC99]

[JOY98]

[LAR97]

[MAR]

[MIC99]

[MIC02]

[MOU98]

Hix Deborah Hartson H Rex ldquoDeveloping user interfacesrdquo 381 Paacuteginas ISBN 0-471-57813-4 QA-769-U83-H59-1993 1993

Jacobson Ivar Christerson Magnus Jonsson Patrik Overgaard Gunnar ldquoObject oriented software engineeringrdquo Addison Wesley ISBN 0-20 1 - 54435-0 QA-7676-D47-J63-1993 1993

Jacobson Ivar Booch Grady Rumbaugh James ldquoEl proceso unificado de desarrollo de softwarerdquo Addison Wesley 438 Paacuteginas ISBN 84-7829-036- 2 1999

Joyanes Aguilar Luis ldquoProgramacioacuten orientada a objetosrdquo McGruw Hill ISBN 84-481-0590-7 1998

Larman Craig ldquoAplying UML and Patternsrdquo Prentice Hull 507 Paacuteginas ISBN 0-13-748880-7 QA-769-035-L37-1997 1997

Marriot Kim Meyer Bemd ldquoVisual Language Theoryrdquo Springer 381 Paacuteginas P-935-V567-1998 1998

Microsoft ldquoMicrosoft Visual C++ 6 manual del programadorrdquo McGraw Hill ISBN 84-481-2127-9 QA-7673-Cl53-23718-1999 1999

Microsoft ldquoVisiordquo (lthttpwwwmicrosoftcomofficevisiogt 2002)

B Mourao Luis X ldquoUniversal Modeling Language Part 11 UML Notation - Case Sequence and Collaboration Diagramsrdquo Lan Times Magazine (~httpwwwlantimescomltpartsdiscussdiscuss6Ohtm~) 1998

No Magic ldquoMagicDrawrdquo (lthttpwwwmagicdrawcomgt 2002)

Object Insight ldquoJvisionrdquo (lthttpwwwobject-insightcomgt 2002)

Rational Software Microsoft I Hewlett-Packard Oracle Sterling Software MCI Systemhouse Unisys ICON Computing IntelliCorp i-Logix IBM ObjectTime Platinum Technology Ptech Taskon Reich Technologies Sofieam ldquoUML Summaryrdquo Version 11 Unified Modeling Language 1997

Rational ldquoRational Roserdquo (lthttpwwwrationalcomproductosrosegt 2002)

Rikki Kirzner ldquoAnalysis Modeling and Design Tools Market Forecast and Analysis 2001-2005rdquo Bulletin Published Under Services Application Design and Construction Tools Application Development and Deployment Strategies Documento Nuacutemero 24809 Junio 2001

53

Conceptos generales

[RIM92] Rimrner Steve ldquoGraphical user interface programmingrdquo 423 Paacuteginas

1992

Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language reference manualrdquo Addison Wesley 550 Paacuteginas ISBN 0-201-

ISBN 0-8306-2475-9 ISBN 0-8306-2472-4 (pbk) QA-769-083-R55G

[RUM99]

30998-X QA-7676-D47-R85-1999 1999

[RUM299] Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language user guiderdquo Addisoiz Wesley 482 Paacuteginas ISBN 0-201 -57 168-4 QA-7676-D47-B66-1999 1999

[SMA02] SmartDraw ldquoSmartDrawrdquo (lthttpwwwsmartdrawcomgt 2002)

[SHU88] 9 - Shu Nun C ldquoVisual Programmingrdquo Van Nostrand Reinhold ISBN 0-422- 28014-9 ISBN 0-422-01 164-4 QA-7665-S55 1988

[THI90] Thimbleby Harold ldquoUser Interface Designrdquo Acm press 470 Paacuteginas ISBN 0-201 -41 61 8-2 QA-769U83-T772~- 1990 1990

[WENO2] Wences Diaz MF ldquoModelo de Ingenieriacutea Inversa para la obtencioacuten de disentildeo detallado basado en LEVISSrdquo Tesis (02-0014) 2002

54

Anexo A

Conampuracioacuten de Microsoft Vkua[C++ 6 O

Este anexo indica las configuraciones que se utilizaron para la compilacioacuten de SCUML y s3c

Configuracioacuten de Microsoft Visual c++ 60

Debido a la integracioacuten de los proyectos de InverSOODA e InverDDVi con S3C se cumplioacute con los requisitos previos de ambos proyectos

El compilador usado en el proyecto fue el Microsoft Visual C++ 60

Para el cumplimiento con la funcionalidad de InverSOODA se instaloacute el ANTLR la versioacuten 271 Se descargoacute del sitio l i l l ~ ~ ~ ~ ~ ~ t l ~ l ~ - ~ t - ~ la versioacuten mencionada en un archivo comprimido (en formato zip) Se colocoacute el paquete descomprimido en el directorio ldquoDIANTLR-271 I rdquo

Recomiendo ampliamente que el directorio principal de ANTLR se copie en el directorio raiacutez de cualquier unidad de disco debido a que experimenteacute problemas de compilacioacuten cuando ANTLR no se encontraba en el directorio raiacutez

Io015

Source Browser AlttF12 I u c Ersquo V I

Visual Component Mgnager

- - ~ ~ ~ ~~

P2 Registrar control

A Contenedor de prueba de controles ActiveX

A Usor de objetos OLE y COM

Buacutesqueda de errores

A Y++ MFC Iracer

Customize options

~ - q- ~ Macro

Eecord Quick Macro Cbl+ShiR+R Pay Quick Macro Ctrl+ShiR+P

En el menuacute Tools (Herramientas) seleccione el sub-menuacute Options ltopcionesgt

56

Configuracioacuten de Microsoft Visual C++ 60

En la siguiente ventana de diaacutelogo debe agregar la direccioacuten en donde se encuentra el ANTLR

Agregar la ruta del directorio de ANTLR hasta el subdirectorio

libcpp

Editor I Tabs I Debug I Compatibility 1 Build Dneclolies I a I Chow directories for - Platfolm -

- Directories I x ) 4 jWin32 -] llnclude files

m cancd I

57

Configuracioacuten de Microsoft Visual C t+ 60

Se ha creado una libreriacutea (anrlrliblib) de ANTLR la cual ya estaacute situada en el directorio del proyecto SCUML (ISCUML) y no debe ser movida o eliminada

I

Geneial 1 Debug I CC++ Link I Category

Output file name bebugSCUMLexe

Objectljibrary modules 4 anllrliblib

li Generate debug lnfo r Ignore all defaull lbaries D ~ i n k j n ~ ~ ~ t a n ~ r ~ e n e r ~ ~ ~ mapfile

r Enable psafilrng

Proiec1 Ootionn

pq Cancel 1 Libreriacutea de ANTLR que debe existir 1 I para que se compile correctamente

58

Anexo B

~ u iacute aacute raacutepida de uso deC Sistema S3C

5 Este anexo indica de forma raacutepida la manera de utilizar S3C para crear un diagrama de secuencias de forma automaacutetica

Guiacutea Raacutepida de uso del Sistema S3C i

Para indicar la creacioacuten de un diagrama de secuencias en forma automaacutetica se debe ir a la barra del costado izquierdo y presionar ldquoNuevo Proyecto SCUMLrdquo

I s3c I ~ Nuevo Proyecto SCUML ~ _ _ - I Diagrama de clases ~ Diagrama de secuencias 1 MDI DOC Activo

-

Apareceraacute un documento llamado ldquoSCUMLV en donde el simbolo corresponde a un numero consecutivo iniciando desde 1 (uno)

$ e Despueacutes se presiona ldquoDiagrama de clasesrdquo Habraacute que para indicarle al sistema si se requiere abrir un diagrama de clases existente o realizar uno nuevo

i

iquestAbrir un documento existente

No Cardquo~ear

AI presionar ldquoSirdquo se debe indicar cual es el archivo del diagrama de Clases en el cuadro de diaacutelogo siguiente

~~ - 11dMis documentos rsquo 2 M i P C i lsquo h s sitios de red

I

AI presionar ldquoNordquo en ldquoAbrir un documento existenterdquo se nos mostraraacute un documento vacio para crear un diagrama de clases

60

Guiacutea Raacutepida de uso del Sistema S3C

Para ambas opciones se requiere que los diagramas de Wamier ya se encuentren construidos Y para continuar el proccso se selecciona el documento ldquoSCUMLVrsquo creado al inicio y despueacutes presionar el botoacuten nombrado ldquoDiagrama de secuenciasrdquo localizado en la barra de hcrraiiiicntas del costado izquierdo

Ha iniciado el proceso de construccioacuten del diagrama de secuencias Si no existen errores al terminar el proceso se le mostraraacute un cuadro de diaacutelogo llamado ldquoResultadosrdquo en donde le mostraraacute las llamadas de las que no localizoacute su definicioacuten

- - -

Cancel 1 D e las siguientes llamadas es posible que esten mal escritas o peitenezcan a la libreiia del Lenguaie Verifique ya que no se encontraron sus definiciones

A continuacioacuten se mencionan los posibles errores que finalizan el proceso de la creacioacuten automaacutetica de los diagramas de secuencias en S3C

Cuando no exista un meacutetodo lsquomainrsquo definido en el diagrama de clases

No se encontro el meacutetodo lsquomain()rsquo que inicie la secuencia I A No se puede crear el diagrama de secuencias

p==amp=q

61

Guia Raacutepida de uso del Sistema S3C

Cuando se definan niultiples metodos lsquoinainrsquo en el diagrama de clases

Multiples meacutetodos lsquomainOlsquo Imposible decidir el inicio de secuencia

Aceptar i

Si un meacutetodo definido en Wamier realiza una llamada a lsquomainrsquo se cancelara el proceso

Llamada NO VALIDA al meacutetodo principal main

(iAcp-j(

4 i

CI Y rdquoldquoldquoI i 11 1-T

IZNTRO Gt INFORMACION

62

  • Tabla de Contenido
  • Listado de Figuras
  • Listado de Tablas
  • Notacioacuten
  • Introduccioacuten
  • Capitulo 1 Conceptos Generales
    • 11 Antecedentes
    • 12 Trabajos relacionados
      • 121 Tabla comparativa
        • 13 Definicioacuten del problema
        • 14 Objetivo de la Tesis
          • Objetivos especiacuteficos de la tesis
            • 15 Hipoacutetesis de investigacioacuten
            • 16 Alcances y limitaciones del trabajo de tesis
              • Capitulo 2 Marco Teoacuterico
                • 21 Modelado de sistemas de software
                • 22 Interfaz de usuario (Mecanismos de interaccioacuten)
                • 23 Lenguajes Visuales
                • 24 Programacioacuten orientada a objetos
                • 25 Lenguaje de Modelado Unificado (UML)
                  • Desarrollo de la herramienta
                    • 31 Disentildeo de la Arquitectura
                      • 311 Requisitos (Diagrama de Casos de uso)
                        • 312Modelo Conceptual
                        • 313Diagramas de clases
                        • 32 Elementos de la arquitectura
                          • 321 Microsoft Foundation Class (MFC)
                            • 322Arquitectura Documento Vista
                            • 323Integrando Ambientes en Visual c++
                              • 324 Interfaz de Muacuteltiples Documentos (MDI)
                                • 325Recursos Diaacutelogos Menus y Barras de Herramientas
                                  • 326 Notacioacuten estaacutendar
                                  • 327 Estructura de datos persistencia y recuperacioacuten
                                    • 328Patrones de disentildeo utilizados
                                      • 33 Diagrama de secuencias
                                        • 331Ciclo de vida del software
                                          • 34 Elementos atoacutemicos de la Gramaacutetica
                                            • 341 Representacioacuten visual
                                              • 35 Gramaacutetica desarrollada
                                              • 36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias
                                                  • Capitulo 4 Pruebas y Resultados
                                                    • 41 Recursos teacutecnicos utilizados
                                                    • 42 Descripcioacuten del plan de pruebas
                                                    • 43 Resultados
                                                      • 431 Caso
                                                      • 432 Caso2
                                                      • 433 Caso
                                                          • Conclusiones y trabajos futuros
                                                            • Trabajos futuros
                                                            • Referencias
                                                            • Anexo A Configuracioacuten de Microsoft Visual C+t
                                                              • Figura 11 - Arquitectura de la suite cenidet-UML
                                                              • Figura 21 -Programacioacuten Visual
                                                              • Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de
                                                              • Figura 32 -Diagrama de Casos de Uso para el S3C
                                                              • Figura 33 -Modelo Conceptual
                                                              • Figura 34 - Diagrama de Clases -Control del Diagrama -
                                                              • Figura 35 - Diagrama de Clases - Patroacuten Visitor -
                                                              • Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento
                                                              • Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)
                                                              • Figura 38 -Dialogo Caracteriacutesticas del Objeto
                                                              • Figura 39 -Dialogo Mensaje
                                                              • Figura 3 IO - Menuacute de los Diagramas de Secuencias (estaacutendar)
                                                              • Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias
                                                              • Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)
                                                              • Figura 313 - Serializacioacuten
                                                              • Figura 314 -Modelo de cascada del ciclo de vida del software
                                                              • Figura 41 - Resultado del caso de prueba
                                                              • Figura 42 -Resultado del caso de prueba
                                                              • Figura 43 -Resultado del caso de prueba
                                                              • Figura 44 -Resultado del caso de prueba
                                                              • Tabla 11 - Tabla comparativa
                                                              • Tabla 31 -Prefijos estaacutendar de identificadores
                                                              • Tabla 32 -Elementos atoacutemicos del lenguaje
                                                              • Tabla 41 - Resumen de los resultados de las pruebas realizadas

Conceptos generales

[HIX93]

[JAC93]

[JAC99]

[JOY98]

[LAR97]

[MAR]

[MIC99]

[MIC02]

[MOU98]

Hix Deborah Hartson H Rex ldquoDeveloping user interfacesrdquo 381 Paacuteginas ISBN 0-471-57813-4 QA-769-U83-H59-1993 1993

Jacobson Ivar Christerson Magnus Jonsson Patrik Overgaard Gunnar ldquoObject oriented software engineeringrdquo Addison Wesley ISBN 0-20 1 - 54435-0 QA-7676-D47-J63-1993 1993

Jacobson Ivar Booch Grady Rumbaugh James ldquoEl proceso unificado de desarrollo de softwarerdquo Addison Wesley 438 Paacuteginas ISBN 84-7829-036- 2 1999

Joyanes Aguilar Luis ldquoProgramacioacuten orientada a objetosrdquo McGruw Hill ISBN 84-481-0590-7 1998

Larman Craig ldquoAplying UML and Patternsrdquo Prentice Hull 507 Paacuteginas ISBN 0-13-748880-7 QA-769-035-L37-1997 1997

Marriot Kim Meyer Bemd ldquoVisual Language Theoryrdquo Springer 381 Paacuteginas P-935-V567-1998 1998

Microsoft ldquoMicrosoft Visual C++ 6 manual del programadorrdquo McGraw Hill ISBN 84-481-2127-9 QA-7673-Cl53-23718-1999 1999

Microsoft ldquoVisiordquo (lthttpwwwmicrosoftcomofficevisiogt 2002)

B Mourao Luis X ldquoUniversal Modeling Language Part 11 UML Notation - Case Sequence and Collaboration Diagramsrdquo Lan Times Magazine (~httpwwwlantimescomltpartsdiscussdiscuss6Ohtm~) 1998

No Magic ldquoMagicDrawrdquo (lthttpwwwmagicdrawcomgt 2002)

Object Insight ldquoJvisionrdquo (lthttpwwwobject-insightcomgt 2002)

Rational Software Microsoft I Hewlett-Packard Oracle Sterling Software MCI Systemhouse Unisys ICON Computing IntelliCorp i-Logix IBM ObjectTime Platinum Technology Ptech Taskon Reich Technologies Sofieam ldquoUML Summaryrdquo Version 11 Unified Modeling Language 1997

Rational ldquoRational Roserdquo (lthttpwwwrationalcomproductosrosegt 2002)

Rikki Kirzner ldquoAnalysis Modeling and Design Tools Market Forecast and Analysis 2001-2005rdquo Bulletin Published Under Services Application Design and Construction Tools Application Development and Deployment Strategies Documento Nuacutemero 24809 Junio 2001

53

Conceptos generales

[RIM92] Rimrner Steve ldquoGraphical user interface programmingrdquo 423 Paacuteginas

1992

Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language reference manualrdquo Addison Wesley 550 Paacuteginas ISBN 0-201-

ISBN 0-8306-2475-9 ISBN 0-8306-2472-4 (pbk) QA-769-083-R55G

[RUM99]

30998-X QA-7676-D47-R85-1999 1999

[RUM299] Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language user guiderdquo Addisoiz Wesley 482 Paacuteginas ISBN 0-201 -57 168-4 QA-7676-D47-B66-1999 1999

[SMA02] SmartDraw ldquoSmartDrawrdquo (lthttpwwwsmartdrawcomgt 2002)

[SHU88] 9 - Shu Nun C ldquoVisual Programmingrdquo Van Nostrand Reinhold ISBN 0-422- 28014-9 ISBN 0-422-01 164-4 QA-7665-S55 1988

[THI90] Thimbleby Harold ldquoUser Interface Designrdquo Acm press 470 Paacuteginas ISBN 0-201 -41 61 8-2 QA-769U83-T772~- 1990 1990

[WENO2] Wences Diaz MF ldquoModelo de Ingenieriacutea Inversa para la obtencioacuten de disentildeo detallado basado en LEVISSrdquo Tesis (02-0014) 2002

54

Anexo A

Conampuracioacuten de Microsoft Vkua[C++ 6 O

Este anexo indica las configuraciones que se utilizaron para la compilacioacuten de SCUML y s3c

Configuracioacuten de Microsoft Visual c++ 60

Debido a la integracioacuten de los proyectos de InverSOODA e InverDDVi con S3C se cumplioacute con los requisitos previos de ambos proyectos

El compilador usado en el proyecto fue el Microsoft Visual C++ 60

Para el cumplimiento con la funcionalidad de InverSOODA se instaloacute el ANTLR la versioacuten 271 Se descargoacute del sitio l i l l ~ ~ ~ ~ ~ ~ t l ~ l ~ - ~ t - ~ la versioacuten mencionada en un archivo comprimido (en formato zip) Se colocoacute el paquete descomprimido en el directorio ldquoDIANTLR-271 I rdquo

Recomiendo ampliamente que el directorio principal de ANTLR se copie en el directorio raiacutez de cualquier unidad de disco debido a que experimenteacute problemas de compilacioacuten cuando ANTLR no se encontraba en el directorio raiacutez

Io015

Source Browser AlttF12 I u c Ersquo V I

Visual Component Mgnager

- - ~ ~ ~ ~~

P2 Registrar control

A Contenedor de prueba de controles ActiveX

A Usor de objetos OLE y COM

Buacutesqueda de errores

A Y++ MFC Iracer

Customize options

~ - q- ~ Macro

Eecord Quick Macro Cbl+ShiR+R Pay Quick Macro Ctrl+ShiR+P

En el menuacute Tools (Herramientas) seleccione el sub-menuacute Options ltopcionesgt

56

Configuracioacuten de Microsoft Visual C++ 60

En la siguiente ventana de diaacutelogo debe agregar la direccioacuten en donde se encuentra el ANTLR

Agregar la ruta del directorio de ANTLR hasta el subdirectorio

libcpp

Editor I Tabs I Debug I Compatibility 1 Build Dneclolies I a I Chow directories for - Platfolm -

- Directories I x ) 4 jWin32 -] llnclude files

m cancd I

57

Configuracioacuten de Microsoft Visual C t+ 60

Se ha creado una libreriacutea (anrlrliblib) de ANTLR la cual ya estaacute situada en el directorio del proyecto SCUML (ISCUML) y no debe ser movida o eliminada

I

Geneial 1 Debug I CC++ Link I Category

Output file name bebugSCUMLexe

Objectljibrary modules 4 anllrliblib

li Generate debug lnfo r Ignore all defaull lbaries D ~ i n k j n ~ ~ ~ t a n ~ r ~ e n e r ~ ~ ~ mapfile

r Enable psafilrng

Proiec1 Ootionn

pq Cancel 1 Libreriacutea de ANTLR que debe existir 1 I para que se compile correctamente

58

Anexo B

~ u iacute aacute raacutepida de uso deC Sistema S3C

5 Este anexo indica de forma raacutepida la manera de utilizar S3C para crear un diagrama de secuencias de forma automaacutetica

Guiacutea Raacutepida de uso del Sistema S3C i

Para indicar la creacioacuten de un diagrama de secuencias en forma automaacutetica se debe ir a la barra del costado izquierdo y presionar ldquoNuevo Proyecto SCUMLrdquo

I s3c I ~ Nuevo Proyecto SCUML ~ _ _ - I Diagrama de clases ~ Diagrama de secuencias 1 MDI DOC Activo

-

Apareceraacute un documento llamado ldquoSCUMLV en donde el simbolo corresponde a un numero consecutivo iniciando desde 1 (uno)

$ e Despueacutes se presiona ldquoDiagrama de clasesrdquo Habraacute que para indicarle al sistema si se requiere abrir un diagrama de clases existente o realizar uno nuevo

i

iquestAbrir un documento existente

No Cardquo~ear

AI presionar ldquoSirdquo se debe indicar cual es el archivo del diagrama de Clases en el cuadro de diaacutelogo siguiente

~~ - 11dMis documentos rsquo 2 M i P C i lsquo h s sitios de red

I

AI presionar ldquoNordquo en ldquoAbrir un documento existenterdquo se nos mostraraacute un documento vacio para crear un diagrama de clases

60

Guiacutea Raacutepida de uso del Sistema S3C

Para ambas opciones se requiere que los diagramas de Wamier ya se encuentren construidos Y para continuar el proccso se selecciona el documento ldquoSCUMLVrsquo creado al inicio y despueacutes presionar el botoacuten nombrado ldquoDiagrama de secuenciasrdquo localizado en la barra de hcrraiiiicntas del costado izquierdo

Ha iniciado el proceso de construccioacuten del diagrama de secuencias Si no existen errores al terminar el proceso se le mostraraacute un cuadro de diaacutelogo llamado ldquoResultadosrdquo en donde le mostraraacute las llamadas de las que no localizoacute su definicioacuten

- - -

Cancel 1 D e las siguientes llamadas es posible que esten mal escritas o peitenezcan a la libreiia del Lenguaie Verifique ya que no se encontraron sus definiciones

A continuacioacuten se mencionan los posibles errores que finalizan el proceso de la creacioacuten automaacutetica de los diagramas de secuencias en S3C

Cuando no exista un meacutetodo lsquomainrsquo definido en el diagrama de clases

No se encontro el meacutetodo lsquomain()rsquo que inicie la secuencia I A No se puede crear el diagrama de secuencias

p==amp=q

61

Guia Raacutepida de uso del Sistema S3C

Cuando se definan niultiples metodos lsquoinainrsquo en el diagrama de clases

Multiples meacutetodos lsquomainOlsquo Imposible decidir el inicio de secuencia

Aceptar i

Si un meacutetodo definido en Wamier realiza una llamada a lsquomainrsquo se cancelara el proceso

Llamada NO VALIDA al meacutetodo principal main

(iAcp-j(

4 i

CI Y rdquoldquoldquoI i 11 1-T

IZNTRO Gt INFORMACION

62

  • Tabla de Contenido
  • Listado de Figuras
  • Listado de Tablas
  • Notacioacuten
  • Introduccioacuten
  • Capitulo 1 Conceptos Generales
    • 11 Antecedentes
    • 12 Trabajos relacionados
      • 121 Tabla comparativa
        • 13 Definicioacuten del problema
        • 14 Objetivo de la Tesis
          • Objetivos especiacuteficos de la tesis
            • 15 Hipoacutetesis de investigacioacuten
            • 16 Alcances y limitaciones del trabajo de tesis
              • Capitulo 2 Marco Teoacuterico
                • 21 Modelado de sistemas de software
                • 22 Interfaz de usuario (Mecanismos de interaccioacuten)
                • 23 Lenguajes Visuales
                • 24 Programacioacuten orientada a objetos
                • 25 Lenguaje de Modelado Unificado (UML)
                  • Desarrollo de la herramienta
                    • 31 Disentildeo de la Arquitectura
                      • 311 Requisitos (Diagrama de Casos de uso)
                        • 312Modelo Conceptual
                        • 313Diagramas de clases
                        • 32 Elementos de la arquitectura
                          • 321 Microsoft Foundation Class (MFC)
                            • 322Arquitectura Documento Vista
                            • 323Integrando Ambientes en Visual c++
                              • 324 Interfaz de Muacuteltiples Documentos (MDI)
                                • 325Recursos Diaacutelogos Menus y Barras de Herramientas
                                  • 326 Notacioacuten estaacutendar
                                  • 327 Estructura de datos persistencia y recuperacioacuten
                                    • 328Patrones de disentildeo utilizados
                                      • 33 Diagrama de secuencias
                                        • 331Ciclo de vida del software
                                          • 34 Elementos atoacutemicos de la Gramaacutetica
                                            • 341 Representacioacuten visual
                                              • 35 Gramaacutetica desarrollada
                                              • 36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias
                                                  • Capitulo 4 Pruebas y Resultados
                                                    • 41 Recursos teacutecnicos utilizados
                                                    • 42 Descripcioacuten del plan de pruebas
                                                    • 43 Resultados
                                                      • 431 Caso
                                                      • 432 Caso2
                                                      • 433 Caso
                                                          • Conclusiones y trabajos futuros
                                                            • Trabajos futuros
                                                            • Referencias
                                                            • Anexo A Configuracioacuten de Microsoft Visual C+t
                                                              • Figura 11 - Arquitectura de la suite cenidet-UML
                                                              • Figura 21 -Programacioacuten Visual
                                                              • Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de
                                                              • Figura 32 -Diagrama de Casos de Uso para el S3C
                                                              • Figura 33 -Modelo Conceptual
                                                              • Figura 34 - Diagrama de Clases -Control del Diagrama -
                                                              • Figura 35 - Diagrama de Clases - Patroacuten Visitor -
                                                              • Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento
                                                              • Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)
                                                              • Figura 38 -Dialogo Caracteriacutesticas del Objeto
                                                              • Figura 39 -Dialogo Mensaje
                                                              • Figura 3 IO - Menuacute de los Diagramas de Secuencias (estaacutendar)
                                                              • Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias
                                                              • Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)
                                                              • Figura 313 - Serializacioacuten
                                                              • Figura 314 -Modelo de cascada del ciclo de vida del software
                                                              • Figura 41 - Resultado del caso de prueba
                                                              • Figura 42 -Resultado del caso de prueba
                                                              • Figura 43 -Resultado del caso de prueba
                                                              • Figura 44 -Resultado del caso de prueba
                                                              • Tabla 11 - Tabla comparativa
                                                              • Tabla 31 -Prefijos estaacutendar de identificadores
                                                              • Tabla 32 -Elementos atoacutemicos del lenguaje
                                                              • Tabla 41 - Resumen de los resultados de las pruebas realizadas

Conceptos generales

[RIM92] Rimrner Steve ldquoGraphical user interface programmingrdquo 423 Paacuteginas

1992

Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language reference manualrdquo Addison Wesley 550 Paacuteginas ISBN 0-201-

ISBN 0-8306-2475-9 ISBN 0-8306-2472-4 (pbk) QA-769-083-R55G

[RUM99]

30998-X QA-7676-D47-R85-1999 1999

[RUM299] Rumbaugh James Jacobson Ivar Booch Grady ldquoThe unified modeling language user guiderdquo Addisoiz Wesley 482 Paacuteginas ISBN 0-201 -57 168-4 QA-7676-D47-B66-1999 1999

[SMA02] SmartDraw ldquoSmartDrawrdquo (lthttpwwwsmartdrawcomgt 2002)

[SHU88] 9 - Shu Nun C ldquoVisual Programmingrdquo Van Nostrand Reinhold ISBN 0-422- 28014-9 ISBN 0-422-01 164-4 QA-7665-S55 1988

[THI90] Thimbleby Harold ldquoUser Interface Designrdquo Acm press 470 Paacuteginas ISBN 0-201 -41 61 8-2 QA-769U83-T772~- 1990 1990

[WENO2] Wences Diaz MF ldquoModelo de Ingenieriacutea Inversa para la obtencioacuten de disentildeo detallado basado en LEVISSrdquo Tesis (02-0014) 2002

54

Anexo A

Conampuracioacuten de Microsoft Vkua[C++ 6 O

Este anexo indica las configuraciones que se utilizaron para la compilacioacuten de SCUML y s3c

Configuracioacuten de Microsoft Visual c++ 60

Debido a la integracioacuten de los proyectos de InverSOODA e InverDDVi con S3C se cumplioacute con los requisitos previos de ambos proyectos

El compilador usado en el proyecto fue el Microsoft Visual C++ 60

Para el cumplimiento con la funcionalidad de InverSOODA se instaloacute el ANTLR la versioacuten 271 Se descargoacute del sitio l i l l ~ ~ ~ ~ ~ ~ t l ~ l ~ - ~ t - ~ la versioacuten mencionada en un archivo comprimido (en formato zip) Se colocoacute el paquete descomprimido en el directorio ldquoDIANTLR-271 I rdquo

Recomiendo ampliamente que el directorio principal de ANTLR se copie en el directorio raiacutez de cualquier unidad de disco debido a que experimenteacute problemas de compilacioacuten cuando ANTLR no se encontraba en el directorio raiacutez

Io015

Source Browser AlttF12 I u c Ersquo V I

Visual Component Mgnager

- - ~ ~ ~ ~~

P2 Registrar control

A Contenedor de prueba de controles ActiveX

A Usor de objetos OLE y COM

Buacutesqueda de errores

A Y++ MFC Iracer

Customize options

~ - q- ~ Macro

Eecord Quick Macro Cbl+ShiR+R Pay Quick Macro Ctrl+ShiR+P

En el menuacute Tools (Herramientas) seleccione el sub-menuacute Options ltopcionesgt

56

Configuracioacuten de Microsoft Visual C++ 60

En la siguiente ventana de diaacutelogo debe agregar la direccioacuten en donde se encuentra el ANTLR

Agregar la ruta del directorio de ANTLR hasta el subdirectorio

libcpp

Editor I Tabs I Debug I Compatibility 1 Build Dneclolies I a I Chow directories for - Platfolm -

- Directories I x ) 4 jWin32 -] llnclude files

m cancd I

57

Configuracioacuten de Microsoft Visual C t+ 60

Se ha creado una libreriacutea (anrlrliblib) de ANTLR la cual ya estaacute situada en el directorio del proyecto SCUML (ISCUML) y no debe ser movida o eliminada

I

Geneial 1 Debug I CC++ Link I Category

Output file name bebugSCUMLexe

Objectljibrary modules 4 anllrliblib

li Generate debug lnfo r Ignore all defaull lbaries D ~ i n k j n ~ ~ ~ t a n ~ r ~ e n e r ~ ~ ~ mapfile

r Enable psafilrng

Proiec1 Ootionn

pq Cancel 1 Libreriacutea de ANTLR que debe existir 1 I para que se compile correctamente

58

Anexo B

~ u iacute aacute raacutepida de uso deC Sistema S3C

5 Este anexo indica de forma raacutepida la manera de utilizar S3C para crear un diagrama de secuencias de forma automaacutetica

Guiacutea Raacutepida de uso del Sistema S3C i

Para indicar la creacioacuten de un diagrama de secuencias en forma automaacutetica se debe ir a la barra del costado izquierdo y presionar ldquoNuevo Proyecto SCUMLrdquo

I s3c I ~ Nuevo Proyecto SCUML ~ _ _ - I Diagrama de clases ~ Diagrama de secuencias 1 MDI DOC Activo

-

Apareceraacute un documento llamado ldquoSCUMLV en donde el simbolo corresponde a un numero consecutivo iniciando desde 1 (uno)

$ e Despueacutes se presiona ldquoDiagrama de clasesrdquo Habraacute que para indicarle al sistema si se requiere abrir un diagrama de clases existente o realizar uno nuevo

i

iquestAbrir un documento existente

No Cardquo~ear

AI presionar ldquoSirdquo se debe indicar cual es el archivo del diagrama de Clases en el cuadro de diaacutelogo siguiente

~~ - 11dMis documentos rsquo 2 M i P C i lsquo h s sitios de red

I

AI presionar ldquoNordquo en ldquoAbrir un documento existenterdquo se nos mostraraacute un documento vacio para crear un diagrama de clases

60

Guiacutea Raacutepida de uso del Sistema S3C

Para ambas opciones se requiere que los diagramas de Wamier ya se encuentren construidos Y para continuar el proccso se selecciona el documento ldquoSCUMLVrsquo creado al inicio y despueacutes presionar el botoacuten nombrado ldquoDiagrama de secuenciasrdquo localizado en la barra de hcrraiiiicntas del costado izquierdo

Ha iniciado el proceso de construccioacuten del diagrama de secuencias Si no existen errores al terminar el proceso se le mostraraacute un cuadro de diaacutelogo llamado ldquoResultadosrdquo en donde le mostraraacute las llamadas de las que no localizoacute su definicioacuten

- - -

Cancel 1 D e las siguientes llamadas es posible que esten mal escritas o peitenezcan a la libreiia del Lenguaie Verifique ya que no se encontraron sus definiciones

A continuacioacuten se mencionan los posibles errores que finalizan el proceso de la creacioacuten automaacutetica de los diagramas de secuencias en S3C

Cuando no exista un meacutetodo lsquomainrsquo definido en el diagrama de clases

No se encontro el meacutetodo lsquomain()rsquo que inicie la secuencia I A No se puede crear el diagrama de secuencias

p==amp=q

61

Guia Raacutepida de uso del Sistema S3C

Cuando se definan niultiples metodos lsquoinainrsquo en el diagrama de clases

Multiples meacutetodos lsquomainOlsquo Imposible decidir el inicio de secuencia

Aceptar i

Si un meacutetodo definido en Wamier realiza una llamada a lsquomainrsquo se cancelara el proceso

Llamada NO VALIDA al meacutetodo principal main

(iAcp-j(

4 i

CI Y rdquoldquoldquoI i 11 1-T

IZNTRO Gt INFORMACION

62

  • Tabla de Contenido
  • Listado de Figuras
  • Listado de Tablas
  • Notacioacuten
  • Introduccioacuten
  • Capitulo 1 Conceptos Generales
    • 11 Antecedentes
    • 12 Trabajos relacionados
      • 121 Tabla comparativa
        • 13 Definicioacuten del problema
        • 14 Objetivo de la Tesis
          • Objetivos especiacuteficos de la tesis
            • 15 Hipoacutetesis de investigacioacuten
            • 16 Alcances y limitaciones del trabajo de tesis
              • Capitulo 2 Marco Teoacuterico
                • 21 Modelado de sistemas de software
                • 22 Interfaz de usuario (Mecanismos de interaccioacuten)
                • 23 Lenguajes Visuales
                • 24 Programacioacuten orientada a objetos
                • 25 Lenguaje de Modelado Unificado (UML)
                  • Desarrollo de la herramienta
                    • 31 Disentildeo de la Arquitectura
                      • 311 Requisitos (Diagrama de Casos de uso)
                        • 312Modelo Conceptual
                        • 313Diagramas de clases
                        • 32 Elementos de la arquitectura
                          • 321 Microsoft Foundation Class (MFC)
                            • 322Arquitectura Documento Vista
                            • 323Integrando Ambientes en Visual c++
                              • 324 Interfaz de Muacuteltiples Documentos (MDI)
                                • 325Recursos Diaacutelogos Menus y Barras de Herramientas
                                  • 326 Notacioacuten estaacutendar
                                  • 327 Estructura de datos persistencia y recuperacioacuten
                                    • 328Patrones de disentildeo utilizados
                                      • 33 Diagrama de secuencias
                                        • 331Ciclo de vida del software
                                          • 34 Elementos atoacutemicos de la Gramaacutetica
                                            • 341 Representacioacuten visual
                                              • 35 Gramaacutetica desarrollada
                                              • 36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias
                                                  • Capitulo 4 Pruebas y Resultados
                                                    • 41 Recursos teacutecnicos utilizados
                                                    • 42 Descripcioacuten del plan de pruebas
                                                    • 43 Resultados
                                                      • 431 Caso
                                                      • 432 Caso2
                                                      • 433 Caso
                                                          • Conclusiones y trabajos futuros
                                                            • Trabajos futuros
                                                            • Referencias
                                                            • Anexo A Configuracioacuten de Microsoft Visual C+t
                                                              • Figura 11 - Arquitectura de la suite cenidet-UML
                                                              • Figura 21 -Programacioacuten Visual
                                                              • Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de
                                                              • Figura 32 -Diagrama de Casos de Uso para el S3C
                                                              • Figura 33 -Modelo Conceptual
                                                              • Figura 34 - Diagrama de Clases -Control del Diagrama -
                                                              • Figura 35 - Diagrama de Clases - Patroacuten Visitor -
                                                              • Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento
                                                              • Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)
                                                              • Figura 38 -Dialogo Caracteriacutesticas del Objeto
                                                              • Figura 39 -Dialogo Mensaje
                                                              • Figura 3 IO - Menuacute de los Diagramas de Secuencias (estaacutendar)
                                                              • Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias
                                                              • Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)
                                                              • Figura 313 - Serializacioacuten
                                                              • Figura 314 -Modelo de cascada del ciclo de vida del software
                                                              • Figura 41 - Resultado del caso de prueba
                                                              • Figura 42 -Resultado del caso de prueba
                                                              • Figura 43 -Resultado del caso de prueba
                                                              • Figura 44 -Resultado del caso de prueba
                                                              • Tabla 11 - Tabla comparativa
                                                              • Tabla 31 -Prefijos estaacutendar de identificadores
                                                              • Tabla 32 -Elementos atoacutemicos del lenguaje
                                                              • Tabla 41 - Resumen de los resultados de las pruebas realizadas

Anexo A

Conampuracioacuten de Microsoft Vkua[C++ 6 O

Este anexo indica las configuraciones que se utilizaron para la compilacioacuten de SCUML y s3c

Configuracioacuten de Microsoft Visual c++ 60

Debido a la integracioacuten de los proyectos de InverSOODA e InverDDVi con S3C se cumplioacute con los requisitos previos de ambos proyectos

El compilador usado en el proyecto fue el Microsoft Visual C++ 60

Para el cumplimiento con la funcionalidad de InverSOODA se instaloacute el ANTLR la versioacuten 271 Se descargoacute del sitio l i l l ~ ~ ~ ~ ~ ~ t l ~ l ~ - ~ t - ~ la versioacuten mencionada en un archivo comprimido (en formato zip) Se colocoacute el paquete descomprimido en el directorio ldquoDIANTLR-271 I rdquo

Recomiendo ampliamente que el directorio principal de ANTLR se copie en el directorio raiacutez de cualquier unidad de disco debido a que experimenteacute problemas de compilacioacuten cuando ANTLR no se encontraba en el directorio raiacutez

Io015

Source Browser AlttF12 I u c Ersquo V I

Visual Component Mgnager

- - ~ ~ ~ ~~

P2 Registrar control

A Contenedor de prueba de controles ActiveX

A Usor de objetos OLE y COM

Buacutesqueda de errores

A Y++ MFC Iracer

Customize options

~ - q- ~ Macro

Eecord Quick Macro Cbl+ShiR+R Pay Quick Macro Ctrl+ShiR+P

En el menuacute Tools (Herramientas) seleccione el sub-menuacute Options ltopcionesgt

56

Configuracioacuten de Microsoft Visual C++ 60

En la siguiente ventana de diaacutelogo debe agregar la direccioacuten en donde se encuentra el ANTLR

Agregar la ruta del directorio de ANTLR hasta el subdirectorio

libcpp

Editor I Tabs I Debug I Compatibility 1 Build Dneclolies I a I Chow directories for - Platfolm -

- Directories I x ) 4 jWin32 -] llnclude files

m cancd I

57

Configuracioacuten de Microsoft Visual C t+ 60

Se ha creado una libreriacutea (anrlrliblib) de ANTLR la cual ya estaacute situada en el directorio del proyecto SCUML (ISCUML) y no debe ser movida o eliminada

I

Geneial 1 Debug I CC++ Link I Category

Output file name bebugSCUMLexe

Objectljibrary modules 4 anllrliblib

li Generate debug lnfo r Ignore all defaull lbaries D ~ i n k j n ~ ~ ~ t a n ~ r ~ e n e r ~ ~ ~ mapfile

r Enable psafilrng

Proiec1 Ootionn

pq Cancel 1 Libreriacutea de ANTLR que debe existir 1 I para que se compile correctamente

58

Anexo B

~ u iacute aacute raacutepida de uso deC Sistema S3C

5 Este anexo indica de forma raacutepida la manera de utilizar S3C para crear un diagrama de secuencias de forma automaacutetica

Guiacutea Raacutepida de uso del Sistema S3C i

Para indicar la creacioacuten de un diagrama de secuencias en forma automaacutetica se debe ir a la barra del costado izquierdo y presionar ldquoNuevo Proyecto SCUMLrdquo

I s3c I ~ Nuevo Proyecto SCUML ~ _ _ - I Diagrama de clases ~ Diagrama de secuencias 1 MDI DOC Activo

-

Apareceraacute un documento llamado ldquoSCUMLV en donde el simbolo corresponde a un numero consecutivo iniciando desde 1 (uno)

$ e Despueacutes se presiona ldquoDiagrama de clasesrdquo Habraacute que para indicarle al sistema si se requiere abrir un diagrama de clases existente o realizar uno nuevo

i

iquestAbrir un documento existente

No Cardquo~ear

AI presionar ldquoSirdquo se debe indicar cual es el archivo del diagrama de Clases en el cuadro de diaacutelogo siguiente

~~ - 11dMis documentos rsquo 2 M i P C i lsquo h s sitios de red

I

AI presionar ldquoNordquo en ldquoAbrir un documento existenterdquo se nos mostraraacute un documento vacio para crear un diagrama de clases

60

Guiacutea Raacutepida de uso del Sistema S3C

Para ambas opciones se requiere que los diagramas de Wamier ya se encuentren construidos Y para continuar el proccso se selecciona el documento ldquoSCUMLVrsquo creado al inicio y despueacutes presionar el botoacuten nombrado ldquoDiagrama de secuenciasrdquo localizado en la barra de hcrraiiiicntas del costado izquierdo

Ha iniciado el proceso de construccioacuten del diagrama de secuencias Si no existen errores al terminar el proceso se le mostraraacute un cuadro de diaacutelogo llamado ldquoResultadosrdquo en donde le mostraraacute las llamadas de las que no localizoacute su definicioacuten

- - -

Cancel 1 D e las siguientes llamadas es posible que esten mal escritas o peitenezcan a la libreiia del Lenguaie Verifique ya que no se encontraron sus definiciones

A continuacioacuten se mencionan los posibles errores que finalizan el proceso de la creacioacuten automaacutetica de los diagramas de secuencias en S3C

Cuando no exista un meacutetodo lsquomainrsquo definido en el diagrama de clases

No se encontro el meacutetodo lsquomain()rsquo que inicie la secuencia I A No se puede crear el diagrama de secuencias

p==amp=q

61

Guia Raacutepida de uso del Sistema S3C

Cuando se definan niultiples metodos lsquoinainrsquo en el diagrama de clases

Multiples meacutetodos lsquomainOlsquo Imposible decidir el inicio de secuencia

Aceptar i

Si un meacutetodo definido en Wamier realiza una llamada a lsquomainrsquo se cancelara el proceso

Llamada NO VALIDA al meacutetodo principal main

(iAcp-j(

4 i

CI Y rdquoldquoldquoI i 11 1-T

IZNTRO Gt INFORMACION

62

  • Tabla de Contenido
  • Listado de Figuras
  • Listado de Tablas
  • Notacioacuten
  • Introduccioacuten
  • Capitulo 1 Conceptos Generales
    • 11 Antecedentes
    • 12 Trabajos relacionados
      • 121 Tabla comparativa
        • 13 Definicioacuten del problema
        • 14 Objetivo de la Tesis
          • Objetivos especiacuteficos de la tesis
            • 15 Hipoacutetesis de investigacioacuten
            • 16 Alcances y limitaciones del trabajo de tesis
              • Capitulo 2 Marco Teoacuterico
                • 21 Modelado de sistemas de software
                • 22 Interfaz de usuario (Mecanismos de interaccioacuten)
                • 23 Lenguajes Visuales
                • 24 Programacioacuten orientada a objetos
                • 25 Lenguaje de Modelado Unificado (UML)
                  • Desarrollo de la herramienta
                    • 31 Disentildeo de la Arquitectura
                      • 311 Requisitos (Diagrama de Casos de uso)
                        • 312Modelo Conceptual
                        • 313Diagramas de clases
                        • 32 Elementos de la arquitectura
                          • 321 Microsoft Foundation Class (MFC)
                            • 322Arquitectura Documento Vista
                            • 323Integrando Ambientes en Visual c++
                              • 324 Interfaz de Muacuteltiples Documentos (MDI)
                                • 325Recursos Diaacutelogos Menus y Barras de Herramientas
                                  • 326 Notacioacuten estaacutendar
                                  • 327 Estructura de datos persistencia y recuperacioacuten
                                    • 328Patrones de disentildeo utilizados
                                      • 33 Diagrama de secuencias
                                        • 331Ciclo de vida del software
                                          • 34 Elementos atoacutemicos de la Gramaacutetica
                                            • 341 Representacioacuten visual
                                              • 35 Gramaacutetica desarrollada
                                              • 36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias
                                                  • Capitulo 4 Pruebas y Resultados
                                                    • 41 Recursos teacutecnicos utilizados
                                                    • 42 Descripcioacuten del plan de pruebas
                                                    • 43 Resultados
                                                      • 431 Caso
                                                      • 432 Caso2
                                                      • 433 Caso
                                                          • Conclusiones y trabajos futuros
                                                            • Trabajos futuros
                                                            • Referencias
                                                            • Anexo A Configuracioacuten de Microsoft Visual C+t
                                                              • Figura 11 - Arquitectura de la suite cenidet-UML
                                                              • Figura 21 -Programacioacuten Visual
                                                              • Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de
                                                              • Figura 32 -Diagrama de Casos de Uso para el S3C
                                                              • Figura 33 -Modelo Conceptual
                                                              • Figura 34 - Diagrama de Clases -Control del Diagrama -
                                                              • Figura 35 - Diagrama de Clases - Patroacuten Visitor -
                                                              • Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento
                                                              • Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)
                                                              • Figura 38 -Dialogo Caracteriacutesticas del Objeto
                                                              • Figura 39 -Dialogo Mensaje
                                                              • Figura 3 IO - Menuacute de los Diagramas de Secuencias (estaacutendar)
                                                              • Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias
                                                              • Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)
                                                              • Figura 313 - Serializacioacuten
                                                              • Figura 314 -Modelo de cascada del ciclo de vida del software
                                                              • Figura 41 - Resultado del caso de prueba
                                                              • Figura 42 -Resultado del caso de prueba
                                                              • Figura 43 -Resultado del caso de prueba
                                                              • Figura 44 -Resultado del caso de prueba
                                                              • Tabla 11 - Tabla comparativa
                                                              • Tabla 31 -Prefijos estaacutendar de identificadores
                                                              • Tabla 32 -Elementos atoacutemicos del lenguaje
                                                              • Tabla 41 - Resumen de los resultados de las pruebas realizadas

Configuracioacuten de Microsoft Visual c++ 60

Debido a la integracioacuten de los proyectos de InverSOODA e InverDDVi con S3C se cumplioacute con los requisitos previos de ambos proyectos

El compilador usado en el proyecto fue el Microsoft Visual C++ 60

Para el cumplimiento con la funcionalidad de InverSOODA se instaloacute el ANTLR la versioacuten 271 Se descargoacute del sitio l i l l ~ ~ ~ ~ ~ ~ t l ~ l ~ - ~ t - ~ la versioacuten mencionada en un archivo comprimido (en formato zip) Se colocoacute el paquete descomprimido en el directorio ldquoDIANTLR-271 I rdquo

Recomiendo ampliamente que el directorio principal de ANTLR se copie en el directorio raiacutez de cualquier unidad de disco debido a que experimenteacute problemas de compilacioacuten cuando ANTLR no se encontraba en el directorio raiacutez

Io015

Source Browser AlttF12 I u c Ersquo V I

Visual Component Mgnager

- - ~ ~ ~ ~~

P2 Registrar control

A Contenedor de prueba de controles ActiveX

A Usor de objetos OLE y COM

Buacutesqueda de errores

A Y++ MFC Iracer

Customize options

~ - q- ~ Macro

Eecord Quick Macro Cbl+ShiR+R Pay Quick Macro Ctrl+ShiR+P

En el menuacute Tools (Herramientas) seleccione el sub-menuacute Options ltopcionesgt

56

Configuracioacuten de Microsoft Visual C++ 60

En la siguiente ventana de diaacutelogo debe agregar la direccioacuten en donde se encuentra el ANTLR

Agregar la ruta del directorio de ANTLR hasta el subdirectorio

libcpp

Editor I Tabs I Debug I Compatibility 1 Build Dneclolies I a I Chow directories for - Platfolm -

- Directories I x ) 4 jWin32 -] llnclude files

m cancd I

57

Configuracioacuten de Microsoft Visual C t+ 60

Se ha creado una libreriacutea (anrlrliblib) de ANTLR la cual ya estaacute situada en el directorio del proyecto SCUML (ISCUML) y no debe ser movida o eliminada

I

Geneial 1 Debug I CC++ Link I Category

Output file name bebugSCUMLexe

Objectljibrary modules 4 anllrliblib

li Generate debug lnfo r Ignore all defaull lbaries D ~ i n k j n ~ ~ ~ t a n ~ r ~ e n e r ~ ~ ~ mapfile

r Enable psafilrng

Proiec1 Ootionn

pq Cancel 1 Libreriacutea de ANTLR que debe existir 1 I para que se compile correctamente

58

Anexo B

~ u iacute aacute raacutepida de uso deC Sistema S3C

5 Este anexo indica de forma raacutepida la manera de utilizar S3C para crear un diagrama de secuencias de forma automaacutetica

Guiacutea Raacutepida de uso del Sistema S3C i

Para indicar la creacioacuten de un diagrama de secuencias en forma automaacutetica se debe ir a la barra del costado izquierdo y presionar ldquoNuevo Proyecto SCUMLrdquo

I s3c I ~ Nuevo Proyecto SCUML ~ _ _ - I Diagrama de clases ~ Diagrama de secuencias 1 MDI DOC Activo

-

Apareceraacute un documento llamado ldquoSCUMLV en donde el simbolo corresponde a un numero consecutivo iniciando desde 1 (uno)

$ e Despueacutes se presiona ldquoDiagrama de clasesrdquo Habraacute que para indicarle al sistema si se requiere abrir un diagrama de clases existente o realizar uno nuevo

i

iquestAbrir un documento existente

No Cardquo~ear

AI presionar ldquoSirdquo se debe indicar cual es el archivo del diagrama de Clases en el cuadro de diaacutelogo siguiente

~~ - 11dMis documentos rsquo 2 M i P C i lsquo h s sitios de red

I

AI presionar ldquoNordquo en ldquoAbrir un documento existenterdquo se nos mostraraacute un documento vacio para crear un diagrama de clases

60

Guiacutea Raacutepida de uso del Sistema S3C

Para ambas opciones se requiere que los diagramas de Wamier ya se encuentren construidos Y para continuar el proccso se selecciona el documento ldquoSCUMLVrsquo creado al inicio y despueacutes presionar el botoacuten nombrado ldquoDiagrama de secuenciasrdquo localizado en la barra de hcrraiiiicntas del costado izquierdo

Ha iniciado el proceso de construccioacuten del diagrama de secuencias Si no existen errores al terminar el proceso se le mostraraacute un cuadro de diaacutelogo llamado ldquoResultadosrdquo en donde le mostraraacute las llamadas de las que no localizoacute su definicioacuten

- - -

Cancel 1 D e las siguientes llamadas es posible que esten mal escritas o peitenezcan a la libreiia del Lenguaie Verifique ya que no se encontraron sus definiciones

A continuacioacuten se mencionan los posibles errores que finalizan el proceso de la creacioacuten automaacutetica de los diagramas de secuencias en S3C

Cuando no exista un meacutetodo lsquomainrsquo definido en el diagrama de clases

No se encontro el meacutetodo lsquomain()rsquo que inicie la secuencia I A No se puede crear el diagrama de secuencias

p==amp=q

61

Guia Raacutepida de uso del Sistema S3C

Cuando se definan niultiples metodos lsquoinainrsquo en el diagrama de clases

Multiples meacutetodos lsquomainOlsquo Imposible decidir el inicio de secuencia

Aceptar i

Si un meacutetodo definido en Wamier realiza una llamada a lsquomainrsquo se cancelara el proceso

Llamada NO VALIDA al meacutetodo principal main

(iAcp-j(

4 i

CI Y rdquoldquoldquoI i 11 1-T

IZNTRO Gt INFORMACION

62

  • Tabla de Contenido
  • Listado de Figuras
  • Listado de Tablas
  • Notacioacuten
  • Introduccioacuten
  • Capitulo 1 Conceptos Generales
    • 11 Antecedentes
    • 12 Trabajos relacionados
      • 121 Tabla comparativa
        • 13 Definicioacuten del problema
        • 14 Objetivo de la Tesis
          • Objetivos especiacuteficos de la tesis
            • 15 Hipoacutetesis de investigacioacuten
            • 16 Alcances y limitaciones del trabajo de tesis
              • Capitulo 2 Marco Teoacuterico
                • 21 Modelado de sistemas de software
                • 22 Interfaz de usuario (Mecanismos de interaccioacuten)
                • 23 Lenguajes Visuales
                • 24 Programacioacuten orientada a objetos
                • 25 Lenguaje de Modelado Unificado (UML)
                  • Desarrollo de la herramienta
                    • 31 Disentildeo de la Arquitectura
                      • 311 Requisitos (Diagrama de Casos de uso)
                        • 312Modelo Conceptual
                        • 313Diagramas de clases
                        • 32 Elementos de la arquitectura
                          • 321 Microsoft Foundation Class (MFC)
                            • 322Arquitectura Documento Vista
                            • 323Integrando Ambientes en Visual c++
                              • 324 Interfaz de Muacuteltiples Documentos (MDI)
                                • 325Recursos Diaacutelogos Menus y Barras de Herramientas
                                  • 326 Notacioacuten estaacutendar
                                  • 327 Estructura de datos persistencia y recuperacioacuten
                                    • 328Patrones de disentildeo utilizados
                                      • 33 Diagrama de secuencias
                                        • 331Ciclo de vida del software
                                          • 34 Elementos atoacutemicos de la Gramaacutetica
                                            • 341 Representacioacuten visual
                                              • 35 Gramaacutetica desarrollada
                                              • 36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias
                                                  • Capitulo 4 Pruebas y Resultados
                                                    • 41 Recursos teacutecnicos utilizados
                                                    • 42 Descripcioacuten del plan de pruebas
                                                    • 43 Resultados
                                                      • 431 Caso
                                                      • 432 Caso2
                                                      • 433 Caso
                                                          • Conclusiones y trabajos futuros
                                                            • Trabajos futuros
                                                            • Referencias
                                                            • Anexo A Configuracioacuten de Microsoft Visual C+t
                                                              • Figura 11 - Arquitectura de la suite cenidet-UML
                                                              • Figura 21 -Programacioacuten Visual
                                                              • Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de
                                                              • Figura 32 -Diagrama de Casos de Uso para el S3C
                                                              • Figura 33 -Modelo Conceptual
                                                              • Figura 34 - Diagrama de Clases -Control del Diagrama -
                                                              • Figura 35 - Diagrama de Clases - Patroacuten Visitor -
                                                              • Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento
                                                              • Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)
                                                              • Figura 38 -Dialogo Caracteriacutesticas del Objeto
                                                              • Figura 39 -Dialogo Mensaje
                                                              • Figura 3 IO - Menuacute de los Diagramas de Secuencias (estaacutendar)
                                                              • Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias
                                                              • Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)
                                                              • Figura 313 - Serializacioacuten
                                                              • Figura 314 -Modelo de cascada del ciclo de vida del software
                                                              • Figura 41 - Resultado del caso de prueba
                                                              • Figura 42 -Resultado del caso de prueba
                                                              • Figura 43 -Resultado del caso de prueba
                                                              • Figura 44 -Resultado del caso de prueba
                                                              • Tabla 11 - Tabla comparativa
                                                              • Tabla 31 -Prefijos estaacutendar de identificadores
                                                              • Tabla 32 -Elementos atoacutemicos del lenguaje
                                                              • Tabla 41 - Resumen de los resultados de las pruebas realizadas

Configuracioacuten de Microsoft Visual C++ 60

En la siguiente ventana de diaacutelogo debe agregar la direccioacuten en donde se encuentra el ANTLR

Agregar la ruta del directorio de ANTLR hasta el subdirectorio

libcpp

Editor I Tabs I Debug I Compatibility 1 Build Dneclolies I a I Chow directories for - Platfolm -

- Directories I x ) 4 jWin32 -] llnclude files

m cancd I

57

Configuracioacuten de Microsoft Visual C t+ 60

Se ha creado una libreriacutea (anrlrliblib) de ANTLR la cual ya estaacute situada en el directorio del proyecto SCUML (ISCUML) y no debe ser movida o eliminada

I

Geneial 1 Debug I CC++ Link I Category

Output file name bebugSCUMLexe

Objectljibrary modules 4 anllrliblib

li Generate debug lnfo r Ignore all defaull lbaries D ~ i n k j n ~ ~ ~ t a n ~ r ~ e n e r ~ ~ ~ mapfile

r Enable psafilrng

Proiec1 Ootionn

pq Cancel 1 Libreriacutea de ANTLR que debe existir 1 I para que se compile correctamente

58

Anexo B

~ u iacute aacute raacutepida de uso deC Sistema S3C

5 Este anexo indica de forma raacutepida la manera de utilizar S3C para crear un diagrama de secuencias de forma automaacutetica

Guiacutea Raacutepida de uso del Sistema S3C i

Para indicar la creacioacuten de un diagrama de secuencias en forma automaacutetica se debe ir a la barra del costado izquierdo y presionar ldquoNuevo Proyecto SCUMLrdquo

I s3c I ~ Nuevo Proyecto SCUML ~ _ _ - I Diagrama de clases ~ Diagrama de secuencias 1 MDI DOC Activo

-

Apareceraacute un documento llamado ldquoSCUMLV en donde el simbolo corresponde a un numero consecutivo iniciando desde 1 (uno)

$ e Despueacutes se presiona ldquoDiagrama de clasesrdquo Habraacute que para indicarle al sistema si se requiere abrir un diagrama de clases existente o realizar uno nuevo

i

iquestAbrir un documento existente

No Cardquo~ear

AI presionar ldquoSirdquo se debe indicar cual es el archivo del diagrama de Clases en el cuadro de diaacutelogo siguiente

~~ - 11dMis documentos rsquo 2 M i P C i lsquo h s sitios de red

I

AI presionar ldquoNordquo en ldquoAbrir un documento existenterdquo se nos mostraraacute un documento vacio para crear un diagrama de clases

60

Guiacutea Raacutepida de uso del Sistema S3C

Para ambas opciones se requiere que los diagramas de Wamier ya se encuentren construidos Y para continuar el proccso se selecciona el documento ldquoSCUMLVrsquo creado al inicio y despueacutes presionar el botoacuten nombrado ldquoDiagrama de secuenciasrdquo localizado en la barra de hcrraiiiicntas del costado izquierdo

Ha iniciado el proceso de construccioacuten del diagrama de secuencias Si no existen errores al terminar el proceso se le mostraraacute un cuadro de diaacutelogo llamado ldquoResultadosrdquo en donde le mostraraacute las llamadas de las que no localizoacute su definicioacuten

- - -

Cancel 1 D e las siguientes llamadas es posible que esten mal escritas o peitenezcan a la libreiia del Lenguaie Verifique ya que no se encontraron sus definiciones

A continuacioacuten se mencionan los posibles errores que finalizan el proceso de la creacioacuten automaacutetica de los diagramas de secuencias en S3C

Cuando no exista un meacutetodo lsquomainrsquo definido en el diagrama de clases

No se encontro el meacutetodo lsquomain()rsquo que inicie la secuencia I A No se puede crear el diagrama de secuencias

p==amp=q

61

Guia Raacutepida de uso del Sistema S3C

Cuando se definan niultiples metodos lsquoinainrsquo en el diagrama de clases

Multiples meacutetodos lsquomainOlsquo Imposible decidir el inicio de secuencia

Aceptar i

Si un meacutetodo definido en Wamier realiza una llamada a lsquomainrsquo se cancelara el proceso

Llamada NO VALIDA al meacutetodo principal main

(iAcp-j(

4 i

CI Y rdquoldquoldquoI i 11 1-T

IZNTRO Gt INFORMACION

62

  • Tabla de Contenido
  • Listado de Figuras
  • Listado de Tablas
  • Notacioacuten
  • Introduccioacuten
  • Capitulo 1 Conceptos Generales
    • 11 Antecedentes
    • 12 Trabajos relacionados
      • 121 Tabla comparativa
        • 13 Definicioacuten del problema
        • 14 Objetivo de la Tesis
          • Objetivos especiacuteficos de la tesis
            • 15 Hipoacutetesis de investigacioacuten
            • 16 Alcances y limitaciones del trabajo de tesis
              • Capitulo 2 Marco Teoacuterico
                • 21 Modelado de sistemas de software
                • 22 Interfaz de usuario (Mecanismos de interaccioacuten)
                • 23 Lenguajes Visuales
                • 24 Programacioacuten orientada a objetos
                • 25 Lenguaje de Modelado Unificado (UML)
                  • Desarrollo de la herramienta
                    • 31 Disentildeo de la Arquitectura
                      • 311 Requisitos (Diagrama de Casos de uso)
                        • 312Modelo Conceptual
                        • 313Diagramas de clases
                        • 32 Elementos de la arquitectura
                          • 321 Microsoft Foundation Class (MFC)
                            • 322Arquitectura Documento Vista
                            • 323Integrando Ambientes en Visual c++
                              • 324 Interfaz de Muacuteltiples Documentos (MDI)
                                • 325Recursos Diaacutelogos Menus y Barras de Herramientas
                                  • 326 Notacioacuten estaacutendar
                                  • 327 Estructura de datos persistencia y recuperacioacuten
                                    • 328Patrones de disentildeo utilizados
                                      • 33 Diagrama de secuencias
                                        • 331Ciclo de vida del software
                                          • 34 Elementos atoacutemicos de la Gramaacutetica
                                            • 341 Representacioacuten visual
                                              • 35 Gramaacutetica desarrollada
                                              • 36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias
                                                  • Capitulo 4 Pruebas y Resultados
                                                    • 41 Recursos teacutecnicos utilizados
                                                    • 42 Descripcioacuten del plan de pruebas
                                                    • 43 Resultados
                                                      • 431 Caso
                                                      • 432 Caso2
                                                      • 433 Caso
                                                          • Conclusiones y trabajos futuros
                                                            • Trabajos futuros
                                                            • Referencias
                                                            • Anexo A Configuracioacuten de Microsoft Visual C+t
                                                              • Figura 11 - Arquitectura de la suite cenidet-UML
                                                              • Figura 21 -Programacioacuten Visual
                                                              • Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de
                                                              • Figura 32 -Diagrama de Casos de Uso para el S3C
                                                              • Figura 33 -Modelo Conceptual
                                                              • Figura 34 - Diagrama de Clases -Control del Diagrama -
                                                              • Figura 35 - Diagrama de Clases - Patroacuten Visitor -
                                                              • Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento
                                                              • Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)
                                                              • Figura 38 -Dialogo Caracteriacutesticas del Objeto
                                                              • Figura 39 -Dialogo Mensaje
                                                              • Figura 3 IO - Menuacute de los Diagramas de Secuencias (estaacutendar)
                                                              • Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias
                                                              • Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)
                                                              • Figura 313 - Serializacioacuten
                                                              • Figura 314 -Modelo de cascada del ciclo de vida del software
                                                              • Figura 41 - Resultado del caso de prueba
                                                              • Figura 42 -Resultado del caso de prueba
                                                              • Figura 43 -Resultado del caso de prueba
                                                              • Figura 44 -Resultado del caso de prueba
                                                              • Tabla 11 - Tabla comparativa
                                                              • Tabla 31 -Prefijos estaacutendar de identificadores
                                                              • Tabla 32 -Elementos atoacutemicos del lenguaje
                                                              • Tabla 41 - Resumen de los resultados de las pruebas realizadas

Configuracioacuten de Microsoft Visual C t+ 60

Se ha creado una libreriacutea (anrlrliblib) de ANTLR la cual ya estaacute situada en el directorio del proyecto SCUML (ISCUML) y no debe ser movida o eliminada

I

Geneial 1 Debug I CC++ Link I Category

Output file name bebugSCUMLexe

Objectljibrary modules 4 anllrliblib

li Generate debug lnfo r Ignore all defaull lbaries D ~ i n k j n ~ ~ ~ t a n ~ r ~ e n e r ~ ~ ~ mapfile

r Enable psafilrng

Proiec1 Ootionn

pq Cancel 1 Libreriacutea de ANTLR que debe existir 1 I para que se compile correctamente

58

Anexo B

~ u iacute aacute raacutepida de uso deC Sistema S3C

5 Este anexo indica de forma raacutepida la manera de utilizar S3C para crear un diagrama de secuencias de forma automaacutetica

Guiacutea Raacutepida de uso del Sistema S3C i

Para indicar la creacioacuten de un diagrama de secuencias en forma automaacutetica se debe ir a la barra del costado izquierdo y presionar ldquoNuevo Proyecto SCUMLrdquo

I s3c I ~ Nuevo Proyecto SCUML ~ _ _ - I Diagrama de clases ~ Diagrama de secuencias 1 MDI DOC Activo

-

Apareceraacute un documento llamado ldquoSCUMLV en donde el simbolo corresponde a un numero consecutivo iniciando desde 1 (uno)

$ e Despueacutes se presiona ldquoDiagrama de clasesrdquo Habraacute que para indicarle al sistema si se requiere abrir un diagrama de clases existente o realizar uno nuevo

i

iquestAbrir un documento existente

No Cardquo~ear

AI presionar ldquoSirdquo se debe indicar cual es el archivo del diagrama de Clases en el cuadro de diaacutelogo siguiente

~~ - 11dMis documentos rsquo 2 M i P C i lsquo h s sitios de red

I

AI presionar ldquoNordquo en ldquoAbrir un documento existenterdquo se nos mostraraacute un documento vacio para crear un diagrama de clases

60

Guiacutea Raacutepida de uso del Sistema S3C

Para ambas opciones se requiere que los diagramas de Wamier ya se encuentren construidos Y para continuar el proccso se selecciona el documento ldquoSCUMLVrsquo creado al inicio y despueacutes presionar el botoacuten nombrado ldquoDiagrama de secuenciasrdquo localizado en la barra de hcrraiiiicntas del costado izquierdo

Ha iniciado el proceso de construccioacuten del diagrama de secuencias Si no existen errores al terminar el proceso se le mostraraacute un cuadro de diaacutelogo llamado ldquoResultadosrdquo en donde le mostraraacute las llamadas de las que no localizoacute su definicioacuten

- - -

Cancel 1 D e las siguientes llamadas es posible que esten mal escritas o peitenezcan a la libreiia del Lenguaie Verifique ya que no se encontraron sus definiciones

A continuacioacuten se mencionan los posibles errores que finalizan el proceso de la creacioacuten automaacutetica de los diagramas de secuencias en S3C

Cuando no exista un meacutetodo lsquomainrsquo definido en el diagrama de clases

No se encontro el meacutetodo lsquomain()rsquo que inicie la secuencia I A No se puede crear el diagrama de secuencias

p==amp=q

61

Guia Raacutepida de uso del Sistema S3C

Cuando se definan niultiples metodos lsquoinainrsquo en el diagrama de clases

Multiples meacutetodos lsquomainOlsquo Imposible decidir el inicio de secuencia

Aceptar i

Si un meacutetodo definido en Wamier realiza una llamada a lsquomainrsquo se cancelara el proceso

Llamada NO VALIDA al meacutetodo principal main

(iAcp-j(

4 i

CI Y rdquoldquoldquoI i 11 1-T

IZNTRO Gt INFORMACION

62

  • Tabla de Contenido
  • Listado de Figuras
  • Listado de Tablas
  • Notacioacuten
  • Introduccioacuten
  • Capitulo 1 Conceptos Generales
    • 11 Antecedentes
    • 12 Trabajos relacionados
      • 121 Tabla comparativa
        • 13 Definicioacuten del problema
        • 14 Objetivo de la Tesis
          • Objetivos especiacuteficos de la tesis
            • 15 Hipoacutetesis de investigacioacuten
            • 16 Alcances y limitaciones del trabajo de tesis
              • Capitulo 2 Marco Teoacuterico
                • 21 Modelado de sistemas de software
                • 22 Interfaz de usuario (Mecanismos de interaccioacuten)
                • 23 Lenguajes Visuales
                • 24 Programacioacuten orientada a objetos
                • 25 Lenguaje de Modelado Unificado (UML)
                  • Desarrollo de la herramienta
                    • 31 Disentildeo de la Arquitectura
                      • 311 Requisitos (Diagrama de Casos de uso)
                        • 312Modelo Conceptual
                        • 313Diagramas de clases
                        • 32 Elementos de la arquitectura
                          • 321 Microsoft Foundation Class (MFC)
                            • 322Arquitectura Documento Vista
                            • 323Integrando Ambientes en Visual c++
                              • 324 Interfaz de Muacuteltiples Documentos (MDI)
                                • 325Recursos Diaacutelogos Menus y Barras de Herramientas
                                  • 326 Notacioacuten estaacutendar
                                  • 327 Estructura de datos persistencia y recuperacioacuten
                                    • 328Patrones de disentildeo utilizados
                                      • 33 Diagrama de secuencias
                                        • 331Ciclo de vida del software
                                          • 34 Elementos atoacutemicos de la Gramaacutetica
                                            • 341 Representacioacuten visual
                                              • 35 Gramaacutetica desarrollada
                                              • 36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias
                                                  • Capitulo 4 Pruebas y Resultados
                                                    • 41 Recursos teacutecnicos utilizados
                                                    • 42 Descripcioacuten del plan de pruebas
                                                    • 43 Resultados
                                                      • 431 Caso
                                                      • 432 Caso2
                                                      • 433 Caso
                                                          • Conclusiones y trabajos futuros
                                                            • Trabajos futuros
                                                            • Referencias
                                                            • Anexo A Configuracioacuten de Microsoft Visual C+t
                                                              • Figura 11 - Arquitectura de la suite cenidet-UML
                                                              • Figura 21 -Programacioacuten Visual
                                                              • Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de
                                                              • Figura 32 -Diagrama de Casos de Uso para el S3C
                                                              • Figura 33 -Modelo Conceptual
                                                              • Figura 34 - Diagrama de Clases -Control del Diagrama -
                                                              • Figura 35 - Diagrama de Clases - Patroacuten Visitor -
                                                              • Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento
                                                              • Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)
                                                              • Figura 38 -Dialogo Caracteriacutesticas del Objeto
                                                              • Figura 39 -Dialogo Mensaje
                                                              • Figura 3 IO - Menuacute de los Diagramas de Secuencias (estaacutendar)
                                                              • Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias
                                                              • Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)
                                                              • Figura 313 - Serializacioacuten
                                                              • Figura 314 -Modelo de cascada del ciclo de vida del software
                                                              • Figura 41 - Resultado del caso de prueba
                                                              • Figura 42 -Resultado del caso de prueba
                                                              • Figura 43 -Resultado del caso de prueba
                                                              • Figura 44 -Resultado del caso de prueba
                                                              • Tabla 11 - Tabla comparativa
                                                              • Tabla 31 -Prefijos estaacutendar de identificadores
                                                              • Tabla 32 -Elementos atoacutemicos del lenguaje
                                                              • Tabla 41 - Resumen de los resultados de las pruebas realizadas

Anexo B

~ u iacute aacute raacutepida de uso deC Sistema S3C

5 Este anexo indica de forma raacutepida la manera de utilizar S3C para crear un diagrama de secuencias de forma automaacutetica

Guiacutea Raacutepida de uso del Sistema S3C i

Para indicar la creacioacuten de un diagrama de secuencias en forma automaacutetica se debe ir a la barra del costado izquierdo y presionar ldquoNuevo Proyecto SCUMLrdquo

I s3c I ~ Nuevo Proyecto SCUML ~ _ _ - I Diagrama de clases ~ Diagrama de secuencias 1 MDI DOC Activo

-

Apareceraacute un documento llamado ldquoSCUMLV en donde el simbolo corresponde a un numero consecutivo iniciando desde 1 (uno)

$ e Despueacutes se presiona ldquoDiagrama de clasesrdquo Habraacute que para indicarle al sistema si se requiere abrir un diagrama de clases existente o realizar uno nuevo

i

iquestAbrir un documento existente

No Cardquo~ear

AI presionar ldquoSirdquo se debe indicar cual es el archivo del diagrama de Clases en el cuadro de diaacutelogo siguiente

~~ - 11dMis documentos rsquo 2 M i P C i lsquo h s sitios de red

I

AI presionar ldquoNordquo en ldquoAbrir un documento existenterdquo se nos mostraraacute un documento vacio para crear un diagrama de clases

60

Guiacutea Raacutepida de uso del Sistema S3C

Para ambas opciones se requiere que los diagramas de Wamier ya se encuentren construidos Y para continuar el proccso se selecciona el documento ldquoSCUMLVrsquo creado al inicio y despueacutes presionar el botoacuten nombrado ldquoDiagrama de secuenciasrdquo localizado en la barra de hcrraiiiicntas del costado izquierdo

Ha iniciado el proceso de construccioacuten del diagrama de secuencias Si no existen errores al terminar el proceso se le mostraraacute un cuadro de diaacutelogo llamado ldquoResultadosrdquo en donde le mostraraacute las llamadas de las que no localizoacute su definicioacuten

- - -

Cancel 1 D e las siguientes llamadas es posible que esten mal escritas o peitenezcan a la libreiia del Lenguaie Verifique ya que no se encontraron sus definiciones

A continuacioacuten se mencionan los posibles errores que finalizan el proceso de la creacioacuten automaacutetica de los diagramas de secuencias en S3C

Cuando no exista un meacutetodo lsquomainrsquo definido en el diagrama de clases

No se encontro el meacutetodo lsquomain()rsquo que inicie la secuencia I A No se puede crear el diagrama de secuencias

p==amp=q

61

Guia Raacutepida de uso del Sistema S3C

Cuando se definan niultiples metodos lsquoinainrsquo en el diagrama de clases

Multiples meacutetodos lsquomainOlsquo Imposible decidir el inicio de secuencia

Aceptar i

Si un meacutetodo definido en Wamier realiza una llamada a lsquomainrsquo se cancelara el proceso

Llamada NO VALIDA al meacutetodo principal main

(iAcp-j(

4 i

CI Y rdquoldquoldquoI i 11 1-T

IZNTRO Gt INFORMACION

62

  • Tabla de Contenido
  • Listado de Figuras
  • Listado de Tablas
  • Notacioacuten
  • Introduccioacuten
  • Capitulo 1 Conceptos Generales
    • 11 Antecedentes
    • 12 Trabajos relacionados
      • 121 Tabla comparativa
        • 13 Definicioacuten del problema
        • 14 Objetivo de la Tesis
          • Objetivos especiacuteficos de la tesis
            • 15 Hipoacutetesis de investigacioacuten
            • 16 Alcances y limitaciones del trabajo de tesis
              • Capitulo 2 Marco Teoacuterico
                • 21 Modelado de sistemas de software
                • 22 Interfaz de usuario (Mecanismos de interaccioacuten)
                • 23 Lenguajes Visuales
                • 24 Programacioacuten orientada a objetos
                • 25 Lenguaje de Modelado Unificado (UML)
                  • Desarrollo de la herramienta
                    • 31 Disentildeo de la Arquitectura
                      • 311 Requisitos (Diagrama de Casos de uso)
                        • 312Modelo Conceptual
                        • 313Diagramas de clases
                        • 32 Elementos de la arquitectura
                          • 321 Microsoft Foundation Class (MFC)
                            • 322Arquitectura Documento Vista
                            • 323Integrando Ambientes en Visual c++
                              • 324 Interfaz de Muacuteltiples Documentos (MDI)
                                • 325Recursos Diaacutelogos Menus y Barras de Herramientas
                                  • 326 Notacioacuten estaacutendar
                                  • 327 Estructura de datos persistencia y recuperacioacuten
                                    • 328Patrones de disentildeo utilizados
                                      • 33 Diagrama de secuencias
                                        • 331Ciclo de vida del software
                                          • 34 Elementos atoacutemicos de la Gramaacutetica
                                            • 341 Representacioacuten visual
                                              • 35 Gramaacutetica desarrollada
                                              • 36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias
                                                  • Capitulo 4 Pruebas y Resultados
                                                    • 41 Recursos teacutecnicos utilizados
                                                    • 42 Descripcioacuten del plan de pruebas
                                                    • 43 Resultados
                                                      • 431 Caso
                                                      • 432 Caso2
                                                      • 433 Caso
                                                          • Conclusiones y trabajos futuros
                                                            • Trabajos futuros
                                                            • Referencias
                                                            • Anexo A Configuracioacuten de Microsoft Visual C+t
                                                              • Figura 11 - Arquitectura de la suite cenidet-UML
                                                              • Figura 21 -Programacioacuten Visual
                                                              • Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de
                                                              • Figura 32 -Diagrama de Casos de Uso para el S3C
                                                              • Figura 33 -Modelo Conceptual
                                                              • Figura 34 - Diagrama de Clases -Control del Diagrama -
                                                              • Figura 35 - Diagrama de Clases - Patroacuten Visitor -
                                                              • Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento
                                                              • Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)
                                                              • Figura 38 -Dialogo Caracteriacutesticas del Objeto
                                                              • Figura 39 -Dialogo Mensaje
                                                              • Figura 3 IO - Menuacute de los Diagramas de Secuencias (estaacutendar)
                                                              • Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias
                                                              • Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)
                                                              • Figura 313 - Serializacioacuten
                                                              • Figura 314 -Modelo de cascada del ciclo de vida del software
                                                              • Figura 41 - Resultado del caso de prueba
                                                              • Figura 42 -Resultado del caso de prueba
                                                              • Figura 43 -Resultado del caso de prueba
                                                              • Figura 44 -Resultado del caso de prueba
                                                              • Tabla 11 - Tabla comparativa
                                                              • Tabla 31 -Prefijos estaacutendar de identificadores
                                                              • Tabla 32 -Elementos atoacutemicos del lenguaje
                                                              • Tabla 41 - Resumen de los resultados de las pruebas realizadas

Guiacutea Raacutepida de uso del Sistema S3C i

Para indicar la creacioacuten de un diagrama de secuencias en forma automaacutetica se debe ir a la barra del costado izquierdo y presionar ldquoNuevo Proyecto SCUMLrdquo

I s3c I ~ Nuevo Proyecto SCUML ~ _ _ - I Diagrama de clases ~ Diagrama de secuencias 1 MDI DOC Activo

-

Apareceraacute un documento llamado ldquoSCUMLV en donde el simbolo corresponde a un numero consecutivo iniciando desde 1 (uno)

$ e Despueacutes se presiona ldquoDiagrama de clasesrdquo Habraacute que para indicarle al sistema si se requiere abrir un diagrama de clases existente o realizar uno nuevo

i

iquestAbrir un documento existente

No Cardquo~ear

AI presionar ldquoSirdquo se debe indicar cual es el archivo del diagrama de Clases en el cuadro de diaacutelogo siguiente

~~ - 11dMis documentos rsquo 2 M i P C i lsquo h s sitios de red

I

AI presionar ldquoNordquo en ldquoAbrir un documento existenterdquo se nos mostraraacute un documento vacio para crear un diagrama de clases

60

Guiacutea Raacutepida de uso del Sistema S3C

Para ambas opciones se requiere que los diagramas de Wamier ya se encuentren construidos Y para continuar el proccso se selecciona el documento ldquoSCUMLVrsquo creado al inicio y despueacutes presionar el botoacuten nombrado ldquoDiagrama de secuenciasrdquo localizado en la barra de hcrraiiiicntas del costado izquierdo

Ha iniciado el proceso de construccioacuten del diagrama de secuencias Si no existen errores al terminar el proceso se le mostraraacute un cuadro de diaacutelogo llamado ldquoResultadosrdquo en donde le mostraraacute las llamadas de las que no localizoacute su definicioacuten

- - -

Cancel 1 D e las siguientes llamadas es posible que esten mal escritas o peitenezcan a la libreiia del Lenguaie Verifique ya que no se encontraron sus definiciones

A continuacioacuten se mencionan los posibles errores que finalizan el proceso de la creacioacuten automaacutetica de los diagramas de secuencias en S3C

Cuando no exista un meacutetodo lsquomainrsquo definido en el diagrama de clases

No se encontro el meacutetodo lsquomain()rsquo que inicie la secuencia I A No se puede crear el diagrama de secuencias

p==amp=q

61

Guia Raacutepida de uso del Sistema S3C

Cuando se definan niultiples metodos lsquoinainrsquo en el diagrama de clases

Multiples meacutetodos lsquomainOlsquo Imposible decidir el inicio de secuencia

Aceptar i

Si un meacutetodo definido en Wamier realiza una llamada a lsquomainrsquo se cancelara el proceso

Llamada NO VALIDA al meacutetodo principal main

(iAcp-j(

4 i

CI Y rdquoldquoldquoI i 11 1-T

IZNTRO Gt INFORMACION

62

  • Tabla de Contenido
  • Listado de Figuras
  • Listado de Tablas
  • Notacioacuten
  • Introduccioacuten
  • Capitulo 1 Conceptos Generales
    • 11 Antecedentes
    • 12 Trabajos relacionados
      • 121 Tabla comparativa
        • 13 Definicioacuten del problema
        • 14 Objetivo de la Tesis
          • Objetivos especiacuteficos de la tesis
            • 15 Hipoacutetesis de investigacioacuten
            • 16 Alcances y limitaciones del trabajo de tesis
              • Capitulo 2 Marco Teoacuterico
                • 21 Modelado de sistemas de software
                • 22 Interfaz de usuario (Mecanismos de interaccioacuten)
                • 23 Lenguajes Visuales
                • 24 Programacioacuten orientada a objetos
                • 25 Lenguaje de Modelado Unificado (UML)
                  • Desarrollo de la herramienta
                    • 31 Disentildeo de la Arquitectura
                      • 311 Requisitos (Diagrama de Casos de uso)
                        • 312Modelo Conceptual
                        • 313Diagramas de clases
                        • 32 Elementos de la arquitectura
                          • 321 Microsoft Foundation Class (MFC)
                            • 322Arquitectura Documento Vista
                            • 323Integrando Ambientes en Visual c++
                              • 324 Interfaz de Muacuteltiples Documentos (MDI)
                                • 325Recursos Diaacutelogos Menus y Barras de Herramientas
                                  • 326 Notacioacuten estaacutendar
                                  • 327 Estructura de datos persistencia y recuperacioacuten
                                    • 328Patrones de disentildeo utilizados
                                      • 33 Diagrama de secuencias
                                        • 331Ciclo de vida del software
                                          • 34 Elementos atoacutemicos de la Gramaacutetica
                                            • 341 Representacioacuten visual
                                              • 35 Gramaacutetica desarrollada
                                              • 36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias
                                                  • Capitulo 4 Pruebas y Resultados
                                                    • 41 Recursos teacutecnicos utilizados
                                                    • 42 Descripcioacuten del plan de pruebas
                                                    • 43 Resultados
                                                      • 431 Caso
                                                      • 432 Caso2
                                                      • 433 Caso
                                                          • Conclusiones y trabajos futuros
                                                            • Trabajos futuros
                                                            • Referencias
                                                            • Anexo A Configuracioacuten de Microsoft Visual C+t
                                                              • Figura 11 - Arquitectura de la suite cenidet-UML
                                                              • Figura 21 -Programacioacuten Visual
                                                              • Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de
                                                              • Figura 32 -Diagrama de Casos de Uso para el S3C
                                                              • Figura 33 -Modelo Conceptual
                                                              • Figura 34 - Diagrama de Clases -Control del Diagrama -
                                                              • Figura 35 - Diagrama de Clases - Patroacuten Visitor -
                                                              • Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento
                                                              • Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)
                                                              • Figura 38 -Dialogo Caracteriacutesticas del Objeto
                                                              • Figura 39 -Dialogo Mensaje
                                                              • Figura 3 IO - Menuacute de los Diagramas de Secuencias (estaacutendar)
                                                              • Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias
                                                              • Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)
                                                              • Figura 313 - Serializacioacuten
                                                              • Figura 314 -Modelo de cascada del ciclo de vida del software
                                                              • Figura 41 - Resultado del caso de prueba
                                                              • Figura 42 -Resultado del caso de prueba
                                                              • Figura 43 -Resultado del caso de prueba
                                                              • Figura 44 -Resultado del caso de prueba
                                                              • Tabla 11 - Tabla comparativa
                                                              • Tabla 31 -Prefijos estaacutendar de identificadores
                                                              • Tabla 32 -Elementos atoacutemicos del lenguaje
                                                              • Tabla 41 - Resumen de los resultados de las pruebas realizadas

Guiacutea Raacutepida de uso del Sistema S3C

Para ambas opciones se requiere que los diagramas de Wamier ya se encuentren construidos Y para continuar el proccso se selecciona el documento ldquoSCUMLVrsquo creado al inicio y despueacutes presionar el botoacuten nombrado ldquoDiagrama de secuenciasrdquo localizado en la barra de hcrraiiiicntas del costado izquierdo

Ha iniciado el proceso de construccioacuten del diagrama de secuencias Si no existen errores al terminar el proceso se le mostraraacute un cuadro de diaacutelogo llamado ldquoResultadosrdquo en donde le mostraraacute las llamadas de las que no localizoacute su definicioacuten

- - -

Cancel 1 D e las siguientes llamadas es posible que esten mal escritas o peitenezcan a la libreiia del Lenguaie Verifique ya que no se encontraron sus definiciones

A continuacioacuten se mencionan los posibles errores que finalizan el proceso de la creacioacuten automaacutetica de los diagramas de secuencias en S3C

Cuando no exista un meacutetodo lsquomainrsquo definido en el diagrama de clases

No se encontro el meacutetodo lsquomain()rsquo que inicie la secuencia I A No se puede crear el diagrama de secuencias

p==amp=q

61

Guia Raacutepida de uso del Sistema S3C

Cuando se definan niultiples metodos lsquoinainrsquo en el diagrama de clases

Multiples meacutetodos lsquomainOlsquo Imposible decidir el inicio de secuencia

Aceptar i

Si un meacutetodo definido en Wamier realiza una llamada a lsquomainrsquo se cancelara el proceso

Llamada NO VALIDA al meacutetodo principal main

(iAcp-j(

4 i

CI Y rdquoldquoldquoI i 11 1-T

IZNTRO Gt INFORMACION

62

  • Tabla de Contenido
  • Listado de Figuras
  • Listado de Tablas
  • Notacioacuten
  • Introduccioacuten
  • Capitulo 1 Conceptos Generales
    • 11 Antecedentes
    • 12 Trabajos relacionados
      • 121 Tabla comparativa
        • 13 Definicioacuten del problema
        • 14 Objetivo de la Tesis
          • Objetivos especiacuteficos de la tesis
            • 15 Hipoacutetesis de investigacioacuten
            • 16 Alcances y limitaciones del trabajo de tesis
              • Capitulo 2 Marco Teoacuterico
                • 21 Modelado de sistemas de software
                • 22 Interfaz de usuario (Mecanismos de interaccioacuten)
                • 23 Lenguajes Visuales
                • 24 Programacioacuten orientada a objetos
                • 25 Lenguaje de Modelado Unificado (UML)
                  • Desarrollo de la herramienta
                    • 31 Disentildeo de la Arquitectura
                      • 311 Requisitos (Diagrama de Casos de uso)
                        • 312Modelo Conceptual
                        • 313Diagramas de clases
                        • 32 Elementos de la arquitectura
                          • 321 Microsoft Foundation Class (MFC)
                            • 322Arquitectura Documento Vista
                            • 323Integrando Ambientes en Visual c++
                              • 324 Interfaz de Muacuteltiples Documentos (MDI)
                                • 325Recursos Diaacutelogos Menus y Barras de Herramientas
                                  • 326 Notacioacuten estaacutendar
                                  • 327 Estructura de datos persistencia y recuperacioacuten
                                    • 328Patrones de disentildeo utilizados
                                      • 33 Diagrama de secuencias
                                        • 331Ciclo de vida del software
                                          • 34 Elementos atoacutemicos de la Gramaacutetica
                                            • 341 Representacioacuten visual
                                              • 35 Gramaacutetica desarrollada
                                              • 36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias
                                                  • Capitulo 4 Pruebas y Resultados
                                                    • 41 Recursos teacutecnicos utilizados
                                                    • 42 Descripcioacuten del plan de pruebas
                                                    • 43 Resultados
                                                      • 431 Caso
                                                      • 432 Caso2
                                                      • 433 Caso
                                                          • Conclusiones y trabajos futuros
                                                            • Trabajos futuros
                                                            • Referencias
                                                            • Anexo A Configuracioacuten de Microsoft Visual C+t
                                                              • Figura 11 - Arquitectura de la suite cenidet-UML
                                                              • Figura 21 -Programacioacuten Visual
                                                              • Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de
                                                              • Figura 32 -Diagrama de Casos de Uso para el S3C
                                                              • Figura 33 -Modelo Conceptual
                                                              • Figura 34 - Diagrama de Clases -Control del Diagrama -
                                                              • Figura 35 - Diagrama de Clases - Patroacuten Visitor -
                                                              • Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento
                                                              • Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)
                                                              • Figura 38 -Dialogo Caracteriacutesticas del Objeto
                                                              • Figura 39 -Dialogo Mensaje
                                                              • Figura 3 IO - Menuacute de los Diagramas de Secuencias (estaacutendar)
                                                              • Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias
                                                              • Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)
                                                              • Figura 313 - Serializacioacuten
                                                              • Figura 314 -Modelo de cascada del ciclo de vida del software
                                                              • Figura 41 - Resultado del caso de prueba
                                                              • Figura 42 -Resultado del caso de prueba
                                                              • Figura 43 -Resultado del caso de prueba
                                                              • Figura 44 -Resultado del caso de prueba
                                                              • Tabla 11 - Tabla comparativa
                                                              • Tabla 31 -Prefijos estaacutendar de identificadores
                                                              • Tabla 32 -Elementos atoacutemicos del lenguaje
                                                              • Tabla 41 - Resumen de los resultados de las pruebas realizadas

Guia Raacutepida de uso del Sistema S3C

Cuando se definan niultiples metodos lsquoinainrsquo en el diagrama de clases

Multiples meacutetodos lsquomainOlsquo Imposible decidir el inicio de secuencia

Aceptar i

Si un meacutetodo definido en Wamier realiza una llamada a lsquomainrsquo se cancelara el proceso

Llamada NO VALIDA al meacutetodo principal main

(iAcp-j(

4 i

CI Y rdquoldquoldquoI i 11 1-T

IZNTRO Gt INFORMACION

62

  • Tabla de Contenido
  • Listado de Figuras
  • Listado de Tablas
  • Notacioacuten
  • Introduccioacuten
  • Capitulo 1 Conceptos Generales
    • 11 Antecedentes
    • 12 Trabajos relacionados
      • 121 Tabla comparativa
        • 13 Definicioacuten del problema
        • 14 Objetivo de la Tesis
          • Objetivos especiacuteficos de la tesis
            • 15 Hipoacutetesis de investigacioacuten
            • 16 Alcances y limitaciones del trabajo de tesis
              • Capitulo 2 Marco Teoacuterico
                • 21 Modelado de sistemas de software
                • 22 Interfaz de usuario (Mecanismos de interaccioacuten)
                • 23 Lenguajes Visuales
                • 24 Programacioacuten orientada a objetos
                • 25 Lenguaje de Modelado Unificado (UML)
                  • Desarrollo de la herramienta
                    • 31 Disentildeo de la Arquitectura
                      • 311 Requisitos (Diagrama de Casos de uso)
                        • 312Modelo Conceptual
                        • 313Diagramas de clases
                        • 32 Elementos de la arquitectura
                          • 321 Microsoft Foundation Class (MFC)
                            • 322Arquitectura Documento Vista
                            • 323Integrando Ambientes en Visual c++
                              • 324 Interfaz de Muacuteltiples Documentos (MDI)
                                • 325Recursos Diaacutelogos Menus y Barras de Herramientas
                                  • 326 Notacioacuten estaacutendar
                                  • 327 Estructura de datos persistencia y recuperacioacuten
                                    • 328Patrones de disentildeo utilizados
                                      • 33 Diagrama de secuencias
                                        • 331Ciclo de vida del software
                                          • 34 Elementos atoacutemicos de la Gramaacutetica
                                            • 341 Representacioacuten visual
                                              • 35 Gramaacutetica desarrollada
                                              • 36 El proceso de creacioacuten automaacutetica de los Diagramas de Secuencias
                                                  • Capitulo 4 Pruebas y Resultados
                                                    • 41 Recursos teacutecnicos utilizados
                                                    • 42 Descripcioacuten del plan de pruebas
                                                    • 43 Resultados
                                                      • 431 Caso
                                                      • 432 Caso2
                                                      • 433 Caso
                                                          • Conclusiones y trabajos futuros
                                                            • Trabajos futuros
                                                            • Referencias
                                                            • Anexo A Configuracioacuten de Microsoft Visual C+t
                                                              • Figura 11 - Arquitectura de la suite cenidet-UML
                                                              • Figura 21 -Programacioacuten Visual
                                                              • Figura 31 -Modelo de Ingenieriacutea Directa Automaacutetica de los Diagramas de
                                                              • Figura 32 -Diagrama de Casos de Uso para el S3C
                                                              • Figura 33 -Modelo Conceptual
                                                              • Figura 34 - Diagrama de Clases -Control del Diagrama -
                                                              • Figura 35 - Diagrama de Clases - Patroacuten Visitor -
                                                              • Figura 36 -Jerarquiacutea de las principales clases de la arquitectura Documento
                                                              • Figura 37 -Modelo Interfaz de Muacuteltiples Documentos (MDI)
                                                              • Figura 38 -Dialogo Caracteriacutesticas del Objeto
                                                              • Figura 39 -Dialogo Mensaje
                                                              • Figura 3 IO - Menuacute de los Diagramas de Secuencias (estaacutendar)
                                                              • Figura 3 I 1 - Barra de Herramientas de los Diagramas de Secuencias
                                                              • Figura 312 - Vista de Clases del proyecto SCUML (divisioacuten en Carpetas)
                                                              • Figura 313 - Serializacioacuten
                                                              • Figura 314 -Modelo de cascada del ciclo de vida del software
                                                              • Figura 41 - Resultado del caso de prueba
                                                              • Figura 42 -Resultado del caso de prueba
                                                              • Figura 43 -Resultado del caso de prueba
                                                              • Figura 44 -Resultado del caso de prueba
                                                              • Tabla 11 - Tabla comparativa
                                                              • Tabla 31 -Prefijos estaacutendar de identificadores
                                                              • Tabla 32 -Elementos atoacutemicos del lenguaje
                                                              • Tabla 41 - Resumen de los resultados de las pruebas realizadas