diseño lógico de sistemas aplicando el lenguaje de...

22
1 Diseño lógico de sistemas aplicando el lenguaje de modelado unificado No. De Registro CGPI: 20061221. Director del proyecto: Roberto De Luna Caballero. Profesores participantes: M. en C Fabiola Ocampo Botello.. M. en C. (c) José Sánchez Juárez. M. en C. (c) Andrés Ortigoza Campos. Modelado de Sistemas Introducción El Lenguaje de Modelado Unificado (UML - Unified Modeling Language) es un lenguaje gráfico para visualizar, especificar y documentar cada una de las partes que comprende el desarrollo de software. UML entrega una forma de modelar cosas conceptuales como lo son procesos de negocio y funciones de sistema, además de cosas concretas como lo son escribir clases en un lenguaje determinado, esquemas de base de datos y componentes de software reutilizables. UML se ha convertido en el estándar de facto de la industria, debido a que ha sido impulsado por los autores de los tres métodos más usados de orientación a objetos: Grady Booch, Ivar Jacobson y Jim Rumbaugh. Estos autores fueron contratados por la empresa Rational Software Co. para crear una notación

Upload: lamkhuong

Post on 27-Mar-2018

216 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Diseño lógico de sistemas aplicando el lenguaje de ...sappi.ipn.mx/cgpi/archivos_anexo/20071356_5253.pdflenguaje gráfico para visualizar, ... Un diagrama es una representación

1

Diseño lógico de sistemas aplicando el lenguaje de modelado unificado

No. De Registro CGPI: 20061221.

Director del proyecto: Roberto De Luna Caballero.

Profesores participantes: M. en C Fabiola Ocampo Botello.. M. en C. (c) José Sánchez Juárez. M. en C. (c) Andrés Ortigoza Campos.

Modelado de Sistemas Introducción El Lenguaje de Modelado Unificado (UML - Unified Modeling Language) es un lenguaje gráfico para visualizar, especificar y documentar cada una de las partes que comprende el desarrollo de software. UML entrega una forma de modelar cosas conceptuales como lo son procesos de negocio y funciones de sistema, además de cosas concretas como lo son escribir clases en un lenguaje determinado, esquemas de base de datos y componentes de software reutilizables. UML se ha convertido en el estándar de facto de la industria, debido a que ha sido impulsado por los autores de los tres métodos más usados de orientación a objetos: Grady Booch, Ivar Jacobson y Jim Rumbaugh. Estos autores fueron contratados por la empresa Rational Software Co. para crear una notación

Page 2: Diseño lógico de sistemas aplicando el lenguaje de ...sappi.ipn.mx/cgpi/archivos_anexo/20071356_5253.pdflenguaje gráfico para visualizar, ... Un diagrama es una representación

2

unificada en la que basar la construcción de sus herramientas CASE. En el proceso de creación de UML han participado, no obstante, otras empresas de gran peso en la industria como Microsoft, Hewlett-Packard, Oracle o IBM, así como grupos de analistas y desarrolladores. Uno de los objetivos principales de la creación de UML era posibilitar el intercambio de modelos entre las distintas herramientas CASE orientadas a objetos del mercado. Para ello era necesario definir una notación y semántica común. Hay que tener en cuenta que el estándar UML no define un proceso de desarrollo específico, tan solo se trata de una notación. UML cuenta con varios tipos de diagramas, los cuales muestran diferentes aspectos de las entidades representadas. Para comprenderlos, a veces es útil organizarlos jerárquicamente:

Diagramas de estructura enfatizan en los elementos que deben existir en el sistema modelado:

• Diagrama de clases • Diagrama de componentes • Diagrama de objetos • Diagrama de estructura compuesta • Diagrama de despliegue • Diagrama de paquetes

Diagramas de comportamiento enfatizan en lo que debe suceder en el sistema modelado:

• Diagrama de actividades • Diagrama de casos de uso • Diagrama de estados

Diagramas de Interacción, un subtipo de diagramas de comportamiento, que enfatiza sobre el flujo de control y de datos entre los elementos del sistema modelado:

• Diagrama de secuencia • Diagrama de comunicación • Diagrama de tiempos (UML 2.0)

A pesar de su status de estándar ampliamente reconocido y utilizado, UML muestra una carencia de una semántica precisa, lo que ha dado lugar a que la interpretación de un modelo UML no pueda ser objetiva. Otro problema de UML es que no se presta con facilidad al diseño de sistemas distribuidos. En tales sistemas cobran importancia factores como transmisión, serialización, persistencia, etc. UML no cuenta con maneras de describir tales factores. No se puede, por ejemplo, usar UML para señalar que un objeto es persistente, o

Page 3: Diseño lógico de sistemas aplicando el lenguaje de ...sappi.ipn.mx/cgpi/archivos_anexo/20071356_5253.pdflenguaje gráfico para visualizar, ... Un diagrama es una representación

3

remoto, o que existe en un servidor que corre continuamente y que es compartido entre varias instancias de ejecución del sistema analizado.

En la especificación del UML podemos comprobar que una de las partes que lo componen es un metamodelo formal. Un metamodelo es un modelo que define el lenguaje para expresar otros modelos. Un modelo Orientado a Objetos (OO) es una abstracción cerrada semánticamente de un sistema y un sistema es una colección de unidades conectadas que son organizadas para realizar un propósito específico. Un sistema puede ser descrito por uno o más modelos, posiblemente desde distintos puntos de vista.

Una parte del UML define, entonces, una abstracción con significado de un lenguaje para expresar otros modelos (es decir, otras abstracciones de un sistema, o conjunto de unidades conectadas que se organizan para conseguir un propósito). UML es una técnica de modelado de objetos y como tal supone una abstracción de un sistema para llegar a construirlo en términos concretos. El modelado no es más que la construcción de un modelo a partir de una especificación. Un modelo es una abstracción de algo, que se elabora para comprender ese algo antes de construirlo. El modelo omite detalles que no resultan esenciales para la comprensión del original y por lo tanto facilita dicha comprensión.

Los modelos además, al no ser una representación que incluya todos los detalles de los originales, permiten probar más fácilmente los sistemas que modelan y determinar los errores. Según se indica en la Metodología OMT (Rumbaugh), los modelos permiten una mejor comunicación con el cliente por distintas razones:

• Es posible enseñar al cliente una posible aproximación de lo que será el producto final.

• Proporcionan una primera aproximación al problema que permite visualizar cómo quedará el resultado.

• Reducen la complejidad del original en subconjuntos que son fácilmente tratables por separado.

Se consigue un modelo completo de la realidad cuando el modelo captura los aspectos importantes del problema y omite el resto. En OMT se modela un sistema desde tres puntos de vista diferentes donde cada uno representa una parte del sistema y una unión lo describe de forma completa. En esta técnica de modelado se utiliza una aproximación al proceso de implementación de software habitual donde se utilizan estructuras de datos (modelo de objetos), las operaciones que se realizan con ellos tienen una secuencia en el tiempo (modelo dinámico) y se realiza una transformación sobre sus valores (modelo funcional). UML utiliza parte de este planteamiento obteniendo distintos puntos de vista de la realidad que modela mediante los distintos tipos de diagramas que posee. Con la creación del UML se persigue obtener un lenguaje que sea capaz de abstraer

Page 4: Diseño lógico de sistemas aplicando el lenguaje de ...sappi.ipn.mx/cgpi/archivos_anexo/20071356_5253.pdflenguaje gráfico para visualizar, ... Un diagrama es una representación

4

cualquier tipo de sistema, sea informático o no, mediante los diagramas, es decir, mediante representaciones gráficas que contienen toda la información relevante del sistema. Un diagrama es una representación gráfica de una colección de elementos del modelo, que habitualmente toma forma de grafo donde los arcos que conectan sus vértices son las relaciones entre los objetos y los vértices se corresponden con los elementos del modelo.

Herramientas de modelado de UML estudiadas.

En el desarrollo del modelado con UML, se cuentan con una gran variedad de programas que nos permiten realizar esta acción, de los cuales nos avocamos en el estudio de los siguientes programas:

� ArgoUML. � Poseidon for UML. � Bouml. � Case Studio 2.

ArgoUML.

Herramienta diseñada para el modelado UML, que aunque no es específica para la plataforma Linux, está escrito en Java por lo que se puede ejecutar en cualquier plataforma que tenga una máquina virtual java. Pero debido a que es del lenguaje Java interpretado, la convierte en una aplicación robusta y solo usable en máquinas potentes.

Pero a pesar de este contratiempo, es una de las más completas herramientas para el modelado de UML, con una interfaz excelente y muy versátil a la hora de dibujar el modelo, gozando también de una excelente generación de código a partir de los diagramas.

Poseidon for UML Es una herramienta realizada por Gentleware, que permite crear diagramas UML y soporta todos los diagramas de este estándar y diferentes lenguajes. Además existen diferentes versiones, algunas de las cuales, como la community edition, son de libre descarga. Poseidon es capaz de almacenar los diagramas en formato UML 2.0, ofrece soporte completo de undo y redo, soporte de Java, C#, VB.net, IDL, SQL DDL, Perl y Delphi, estabilidad y rendimiento mejorados, totalmente implementados en Java, independiente de la plataforma, soporte para todos los diagramas de UML,

Page 5: Diseño lógico de sistemas aplicando el lenguaje de ...sappi.ipn.mx/cgpi/archivos_anexo/20071356_5253.pdflenguaje gráfico para visualizar, ... Un diagrama es una representación

5

soporte para XML 1.2, formato estándar de almacenado. XML 1.0, 1.1 y 1.2 son admitidos, exporta los diagramas como gif, ps, eps y svg, soporte para los formatos jpeg y png para JDK 1.4. Es una herramienta para modelar cualquier clase de sistema (que tenga o no que ver con programación). Dentro de las características que presenta están:

� Soporta diagramas UML. � Opciones avanzadas de impresión. � Soporta gráficos en la mayoría de formatos. � Varios idiomas. � Generación de código para Java y exportación como HTML. � Fácil de instalar y actualizar. � Compatibilidad entre ediciones.

Bouml

BOUML es una caja libre de la herramienta de UML (bajo desarrollo) que permite que especificar y generar código en C++, Java e Idl. Funciona en plataformas como Unix/Linux/Solaris, MacOS X y Windows.

BOUML es muy rápido y no consume demasiada memoria y es fácil de manejar. BOUML es extensible, y las herramientas externas se pueden desarrollar en C++ o Java, usando BOUML para su definición como cualquier otro programa. Los generadores y las reingeniería de código son unas de las características incluidas en la distribución de BOUML.

Dentro de sus principales características están:

• Es libre • Funciona bajo Linux/Unix/OS X de Solaris, Mac y Windows. • Permite programar simultáneamente en C++, Java e IDL • Es una herramienta muy rápida y no necesita demasiada memoria.

Case Studio 2

Es una herramienta poderosa que nos permite el diseño y modelado de base de datos, incluyendo todas las opciones que se desean cuando se trabajan con base de datos.

Usando la herramienta, se puede hacer que el proceso del desarrollo de la base de datos sea mucho más fácil. Por lo que con el uso de esta herramienta se puede:

Page 6: Diseño lógico de sistemas aplicando el lenguaje de ...sappi.ipn.mx/cgpi/archivos_anexo/20071356_5253.pdflenguaje gráfico para visualizar, ... Un diagrama es una representación

6

• Reducir las averías en el desarrollo • Mejorar la productividad • Verificar el trabajo desarrollado automáticamente • Generar los informes detallados • Trabajar con las bases de datos existentes • Crear las bases de datos más rápidas • Soporte para manejadores de base de datos como MySQL, SQL, ORACLE,

etc. • Manejo de ingeniería inversa. • Generación de la base de datos en algún manejador soportado.

Manuales de uso de las herramientas para el modelado en UML.

� Manual de Poseidón. Poseidón for UML es una herramienta general para modelar cualquier clase de sistema que precise programación orientada a objetos o incluso sistemas que no tengan nada que ver con software. Área de trabajo de Poseidón. El área de trabajo de Poseidón está dividida en cinco partes. En la parte de arriba de la ventana, hay un menú y una barra de herramientas que permiten el acceso a las funciones principales. Más abajo hay cuatro zonas distintas (paneles).

Page 7: Diseño lógico de sistemas aplicando el lenguaje de ...sappi.ipn.mx/cgpi/archivos_anexo/20071356_5253.pdflenguaje gráfico para visualizar, ... Un diagrama es una representación

7

Poseidón for UML

El panel mayor se llama diagram pane donde se muestran los diversos diagramas UML. A la izquierda se encuentra el navigation pane, y debajo de ellas dos áreas más: overview pane y details pane. Se mostraran ejemplos de estas áreas a partir del ejemplo que proporciona el programa de Poseidón, el cual se encuentra en el menú de ayuda y en específico en el item “Open Default Example”. El Navigation Pane (Panel de Navegación) Se usa para acceder a todas las partes importantes de un modelo. Poseidón for UML organiza los modelos en paquetes. El paquete principal (modelo) se muestra en la parte de arriba del navigation pane. Se puede abrir haciendo click con el ratón en el nombre del paquete. Cualquier elemento que se añada al modelo aparecerá automáticamente en la correspondiente rama del árbol jerárquico que se crea.

Page 8: Diseño lógico de sistemas aplicando el lenguaje de ...sappi.ipn.mx/cgpi/archivos_anexo/20071356_5253.pdflenguaje gráfico para visualizar, ... Un diagrama es una representación

8

Ejemplo del Panel de Navegación.

El paquete de más arriba StattAuto contiene otros paquetes (Analysis, Design, java, etc..) también una serie de diagramas y elementos del modelo. Los diagramas, se muestra en el panel de diagrama. Se visualizan las dependencias entre los paquetes Analysis, Business Process Model y Design. El Diagram Pane (Panel de Diagramas) En el panel de diagrama, se visualizan todos los diagramas del modelo, así como la posibilidad de edición que tienen cada uno de ellos.

Page 9: Diseño lógico de sistemas aplicando el lenguaje de ...sappi.ipn.mx/cgpi/archivos_anexo/20071356_5253.pdflenguaje gráfico para visualizar, ... Un diagrama es una representación

9

El panel de diagrama con el diagrama “Entity Class Model Overview”.

El Details Pane (Panel de detalles) Es uno de los paneles del fondo de la ventana (debajo del panel de diagrama), el cual muestra los detalles del objeto seleccionado.

El panel de detalles con la class Reservation seleccionada.

Este panel muestra los detalles del elemento seleccionado actualmente y permite editarlos. Está constituido por una serie de paneles que pueden ser seleccionados a través de etiquetas que se encuentran en la parte superior. El panel más importante es el de propiedades. Este panel es muy interesante para editar clases: podemos cambiar el nombre, las propiedades, etc. Y automáticamente cambiará en el diagrama. También podemos seleccionar los elementos de una clase en el panel de propiedades. Respecto a los otros paneles de detalles, solo están activos cuando tienen relación con el elemento seleccionado, podemos ver el código generado (previsualización del código), definir colores y posiciones exactas de la representación (Estilo), opciones de documentación, restricciones, etc.

Page 10: Diseño lógico de sistemas aplicando el lenguaje de ...sappi.ipn.mx/cgpi/archivos_anexo/20071356_5253.pdflenguaje gráfico para visualizar, ... Un diagrama es una representación

10

El panel Overview Está localizado en la esquina inferior izquierda de la ventana general muestra una vista general del panel de diagrama.

Navegación Un modelo UML puede ser bastante complejo. Diferentes aspectos de la información disponible son importantes para diferentes personas y en diferentes momentos. Poseidón ofrece diferente maneras de navegar entre los elementos del modelo. Usando el panel de navegación. Hemos visto que se trata de una organización del modelo UML en árbol. En el borde de arriba hay un menú descendente que muestra “Centrado en el paquete”. Se puede centrar la vista por otros criterios de organización: - Centrado en la clase - Centrado en el diagrama - Centrado en la herencia - Índice del modelo - Centrado en el paquete - Centrado en el estado

Se pueden ver todos los diagramas contenidos en el modelo. Seleccionando un diagrama se abre en el panel de diagramas.

Page 11: Diseño lógico de sistemas aplicando el lenguaje de ...sappi.ipn.mx/cgpi/archivos_anexo/20071356_5253.pdflenguaje gráfico para visualizar, ... Un diagrama es una representación

11

Usando el panel de propiedades Como ya hemos visto, el panel de propiedades para la clase Reservation tendrá todas las características de la clase: atributos, métodos, acceso, etc. la vista es la siguiente:

Page 12: Diseño lógico de sistemas aplicando el lenguaje de ...sappi.ipn.mx/cgpi/archivos_anexo/20071356_5253.pdflenguaje gráfico para visualizar, ... Un diagrama es una representación

12

La barra de herramientas

La barra de herramientas del diagrama de clases.

Herramienta de selección.

Crea clases

Crea paquetes

Define generalización

Crea una dependencia

Crea una asociación (objetos como atributos de otras clases)

Crea una agregación

Crea una composición

Crea una interfaz

Crea una realización (implementación entre interfaces y clases)

Añade atributos y métodos a una determinada clase

Añade notas y polígonos al panel Los Rapid Buttons Poseidón for UML proporciona un atajo para desarrollar de manera mas rápida la construcción de un diagrama de clases. Seleccionando una clase y usando los botones del ratón en el borde de la representación de las clases observamos que aparecerá un menú adicional para realizar acciones.

Page 13: Diseño lógico de sistemas aplicando el lenguaje de ...sappi.ipn.mx/cgpi/archivos_anexo/20071356_5253.pdflenguaje gráfico para visualizar, ... Un diagrama es una representación

13

Rapid Buttons para la clase Element

Crear nuevos Diagramas. Se pueden crear los diagramas desde el menú principal: Crear Diagrama. Los diagramas forman parte del modelo y se inscriben en el árbol jerárquico. Por defecto, se crean diagramas en el paquete, pero también podemos crear nuevos diagramas para un paquete específico.

Creando nuevos Diagramas desde la Barra de Menú

Page 14: Diseño lógico de sistemas aplicando el lenguaje de ...sappi.ipn.mx/cgpi/archivos_anexo/20071356_5253.pdflenguaje gráfico para visualizar, ... Un diagrama es una representación

14

Creando nuevos Modelos

Al crear un nuevo proyecto, se abre automáticamente un nuevo modelo y un nuevo diagrama de clases Diagrama de clases1 Podemos cambiar el nombre en el panel de Detalles, pestaña Propiedades. Guardar y Cargar Modelos Poseidón for UML soporta formatos estándar y abiertos, para guardar formatos UML está estandarizado por Object Management Group (OMG). Esto incluye especificaciones y mecanismos para el intercambio de modelos entre diferentes herramientas. Este mecanismo está basado en XML. OMG especifica una aplicación basada en XML para el intercambio de metadata denominada XMI. Poseidón utiliza XMI no sólo para importar o exportar modelos, sino también para guardar y cargar. En esta versión , los diagramas se escriben en formato XMI 1.2 , que es el mismo formato que se usa para almacenar modelos en UML 1.x y UML 2.0. Poseidón crea un fichero de proyecto con ‘.zuml’ extensión, que es un ‘.zip’ conteniendo a su vez un ‘.proj’ como referencia al proyecto y un ‘.xmi’ con la información del modelo. Este método es compatible con los formatos anteriores de Poseidón ‘.zargo’ (ArgoUML).

Page 15: Diseño lógico de sistemas aplicando el lenguaje de ...sappi.ipn.mx/cgpi/archivos_anexo/20071356_5253.pdflenguaje gráfico para visualizar, ... Un diagrama es una representación

15

El menú para gestión de proyectos.

Exportar Gráficos e Imprimir

Podemos utilizar los diagramas generados con Poseidón en otras aplicaciones tan sólo exportándolos con un formato gráfico: Se reconocen los formatos expresados en el gráfico anterior. Para exportar un

diagrama : Archivo -> Guardar gráficos....

Para imprimir un diagrama: Archivo ->Imprimir

Page 16: Diseño lógico de sistemas aplicando el lenguaje de ...sappi.ipn.mx/cgpi/archivos_anexo/20071356_5253.pdflenguaje gráfico para visualizar, ... Un diagrama es una representación

16

Estudio de Diagramas.

• Diagramas de casos de uso

Ejemplo de Diagramas de Casos de Uso

Tiene los siguientes elementos: Actores, papel que desempeña un usuario.

Propiedades de Actor

Page 17: Diseño lógico de sistemas aplicando el lenguaje de ...sappi.ipn.mx/cgpi/archivos_anexo/20071356_5253.pdflenguaje gráfico para visualizar, ... Un diagrama es una representación

17

Herencia o refinamiento de relaciones entre actores. Casos de Uso. Asociaciones entre roles y casos de uso.

Dependencias entre casos de uso.

• Diagramas de Clases

El diagrama de Clases es el diagrama más importante de UML.

Ejemplo de Diagrama de Clases

Page 18: Diseño lógico de sistemas aplicando el lenguaje de ...sappi.ipn.mx/cgpi/archivos_anexo/20071356_5253.pdflenguaje gráfico para visualizar, ... Un diagrama es una representación

18

Propiedades de Clase

Su estructura es como un navegador de internet. Tiene flechas de navegación adelante atrás. arriba (nivel superior). Es muy intuitivo y fácil de manejar. El panel de propiedades permite modificar, borrar o añadir elementos del modelo.

Relaciones de asociación. Son relaciones entre clases que tienen cierta relación.

Propiedades de una Asociación

• Diagramas de Objetos

Muestran las clases a nivel de instancia (objeto), ya que no tienen el mismo nivel conceptual y se expresan en diagramas separados.

Page 19: Diseño lógico de sistemas aplicando el lenguaje de ...sappi.ipn.mx/cgpi/archivos_anexo/20071356_5253.pdflenguaje gráfico para visualizar, ... Un diagrama es una representación

19

• Diagramas de Actividad

Los Diagramas Actividad se utilizan para modelar procesos de negocio.

Ejemplo de Diagrama de Actividad

Contienen los siguientes elementos:

• Estado inicial y Estado final. • Acciones de Estado.

• Unión y bifurcación.

• Transición

• Diagramas de Estado Los modelos de procesos de negocio no tienen por sí mismos una implementación orientada a objetos. Con UML se puede descomponer el proceso de negocio y expresarlo en términos de estados para cada objeto

Page 20: Diseño lógico de sistemas aplicando el lenguaje de ...sappi.ipn.mx/cgpi/archivos_anexo/20071356_5253.pdflenguaje gráfico para visualizar, ... Un diagrama es una representación

20

involucrado en el proceso. Sin embargo en todo modelado debe tener diagramas de estados.

Los diagramas de estado pueden contener los siguientes elementos:

• Opciones y Uniones

• Historial Superficial y de profundidad.

Ejemplo de Diagrama de Estado

• Diagramas de Secuencia

Con un diagrama de secuencia se puede visualizar escenarios simples o ejemplos de procesos de negocio y su comportamiento en el tiempo. Fija su atención cuando los objetos individuales interactúan con otros objetos durante la ejecución y por consiguiente, incluye un eje de tiempos que va desde arriba hasta el fondo del gráfico.

Page 21: Diseño lógico de sistemas aplicando el lenguaje de ...sappi.ipn.mx/cgpi/archivos_anexo/20071356_5253.pdflenguaje gráfico para visualizar, ... Un diagrama es una representación

21

Ejemplo de Diagrama de Secuencia

• Diagrama de Colaboración

Representa la interacción entre objetos. El interés de este diagrama son los mensajes y sus objetivos. El orden oportuno de los mensajes se representa por números precedidos de cada mensaje. Contienen los siguientes elementos:

• Objetos • Asociaciones • Mensajes

• Diagramas de Despliegue Finalmente se muestra el diagrama de la manera en que los componentes individuales se despliegan en un sistema hardware puede ser descrito utilizando los diagramas de despliegue.

Page 22: Diseño lógico de sistemas aplicando el lenguaje de ...sappi.ipn.mx/cgpi/archivos_anexo/20071356_5253.pdflenguaje gráfico para visualizar, ... Un diagrama es una representación

22

Elementos: • , Nodos e instancias de nodos • , Componentes e instancias de componentes. • Objetos • Dependencias • Clases, interfaces, asociaciones y ligaduras.

El manual de argoUML ya no se incluyo por falta de espacio pero se desarrollo con las mismas caracteristicas que el manual de poseidon.

En Conclusión: Aunque Poseidón es un poco más fácil de usar que Argo, esta ventaja no es tan grande como la de Argo para diseñar sistemas más abiertamente, ya que Poseidón tiene algunas limitaciones en cuanto al diseño. Por lo que si lo que se quiere es diseñar sistemas más enfocados a nuestras necesidades, deberíamos pensar en Argo UML, ya que es mas personalizable. Sin embargo, al estar diseñados en JAVA en ocasiones necesitamos maquinas con mas memoria para que se ejecuten “correctamente”, ya que de otra forma se muestran inestables en cuanto a la ejecución de alguno de sus botones o en general se pasma la aplicación.