Ingrid Andrea Muñoz Valdés
Contenido <ul><li>Introducción </li></ul><ul><li>Objetivos </li></ul><ul><li>UML </li></ul><ul><li>Formalización </li></ul...
Objetivos <ul><li>Realizar una introducción general al concepto de formalización </li></ul><ul><li>Definir y especificar l...
Introducción(1) <ul><li>Proceso de creación de una carta en la empresa. </li></ul><ul><li>El lenguaje formalizado o el pro...
Introducción(2)  <ul><li>Lenguaje Natural </li></ul><ul><li>Pablo: &quot;Antonio, como tu carro es más rápido y cómodo que...
<ul><li>Lenguaje Formal </li></ul><ul><li>Si un coche sale de un punto A a una velocidad media de 100 Km/h y al mismo tiem...
Objetivo cumplido <ul><li>Realizar una introducción general al concepto de formalización </li></ul>
UML <ul><li>El modelo de lenguaje unificado UML, es ampliamente usado para el proceso de desarrollo de SW pero es semi-for...
UML <ul><li>Características UML </li></ul><ul><ul><li>No es Completo. </li></ul></ul><ul><ul><li>Imprecisión. </li></ul></...
UML <ul><li>Contradicciones: conjuntos de sentencias que difieren entre si, respecto a la definición de la misma especific...
UML <ul><li>Vaguedad: sucede cuando la especificación del sistema es muy voluminosa, y no da lugar a detectar que ciertas ...
Formalización UML <ul><li>La formalización UML es el complemento para precisar la semántica de los modelos gráficos diseña...
Formalización UML <ul><li>La Formalización es la aplicación de un modelo fuente no formal o semi-formal, en un modelo obje...
Métodos Formales <ul><li>Un método formal asegura que sus especificaciones carecen de ambigüedad, garantizan consistencia ...
Métodos Formales <ul><li>Definidos por una sintaxis y una semántica formal para especificar el funcionamiento y comportami...
Métodos Formales <ul><li>Es también cualquier  otra actividad relacionada con representaciones matemáticas del software: <...
Métodos Formales <ul><li>La aplicación de los Métodos Formales a la Ingeniería de Software es prácticamente inexistente fu...
Métodos Formales <ul><li>Se da el curioso fenómeno de que la industria del software invierte más esfuerzo y dinero en la d...
Métodos Formales - Ventajas <ul><li>Carencia de ambigüedad </li></ul><ul><li>La sintaxis formal de un lenguaje de especifi...
Métodos Formales – Ventajas <ul><li>Consistencia </li></ul><ul><li>Una demostración matemática que usa reglas de inferenci...
Estrategias de Formalización <ul><li>Estrategia arriba-abajo </li></ul><ul><li>Partir de un lenguaje gráfico y definir un ...
Estrategias de Formalización <ul><li>Estrategia híbrida </li></ul><ul><li>Tomar un lenguaje gráfico existente y tomar un l...
Diez mandamientos de los métodos formales <ul><li>Seleccionar la notación adecuada. </li></ul><ul><li>Formalizar con crite...
Objetivo finalizado <ul><li>Definir y especificar los aspectos más relevantes de la Formalización UML. </li></ul>
Anthony Hall [HAL90] afirmaba: <ul><li>“ Los métodos formales son objeto de controversia. Quienes los propugnan afirman qu...
Métodos Formales a fondo <ul><li>Los métodos formales tiene un alto grado de dificultad. </li></ul><ul><li>crear una espec...
Métodos formales a fondo <ul><li>La sintaxis de un lenguaje formal de especificación permite que los requisitos y el diseñ...
Métodos formales a fondo <ul><li>La consistencia se da al no tener una contradicción en otro lugar de una especificación, ...
Métodos formales a fondo <ul><li>La completitud es difícil de lograr, aun aplicando métodos formales. Algunos aspectos del...
Matemáticas para el desarrollo de software <ul><li>Relaciones matemáticas sustentan la abstracción. </li></ul><ul><li>Cond...
Métodos formales y sus lenguajes de especificación <ul><li>Métodos basados en lógica de primer orden – lógica de primer or...
Lenguajes formales de especificación <ul><li>Soportan los modelos matemáticos y se fundamentan  en: </li></ul><ul><li>1) S...
MFOO de lógica de primer orden <ul><li>OBJECT Z </li></ul><ul><li>Object-Z es un lenguaje de especificación formal de sist...
MFOO de lógica de primer orden <ul><li>VDM </li></ul><ul><li>VDM++. consta de un conjunto de definiciones de clases. Una d...
MFOO basados en algoritmos matemáticos <ul><li>HOSA -  Hidden Order Sorted Algebras </li></ul><ul><li>Se basa en especific...
MFOO basados en algoritmos matemáticos <ul><li>TROLL. TROLL y OBLOG son dos versiones (textual  y gráfica)  </li></ul><ul>...
MFOO basados en algoritmos matemáticos <ul><li>AS-IS (Especificaciones Algebraica con Estados  Implícitos).  </li></ul><ul...
MFOO basados en algoritmos matemáticos <ul><li>Maude.  </li></ul><ul><li>Especificar y programar sistemas OO concurrentes....
MFOOs basados en Redes de Petri <ul><li>Las redes de Petri han sido criticadas por adolecer de mecanismos de estructuració...
MFOOs basados en Lógica Temporal. <ul><li>Las formalizaciones basadas en lógica temporal son adecuadas para describir sist...
Objetivo cumplido <ul><li>Exponer los modelos de formalización para UML. </li></ul>
Próxima SlideShare
Cargando en…5
×

Formalización en UML - Ingrid Muñoz

2.293 visualizaciones

Publicado el

0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
2.293
En SlideShare
0
De insertados
0
Número de insertados
5
Acciones
Compartido
0
Descargas
0
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

Formalización en UML - Ingrid Muñoz

  1. 1. Ingrid Andrea Muñoz Valdés
  2. 2. Contenido <ul><li>Introducción </li></ul><ul><li>Objetivos </li></ul><ul><li>UML </li></ul><ul><li>Formalización </li></ul><ul><li>Métodos formales </li></ul>
  3. 3. Objetivos <ul><li>Realizar una introducción general al concepto de formalización </li></ul><ul><li>Definir y especificar los aspectos más relevantes de la Formalización UML. </li></ul><ul><li>Exponer los modelos de formalización para UML. </li></ul>
  4. 4. Introducción(1) <ul><li>Proceso de creación de una carta en la empresa. </li></ul><ul><li>El lenguaje formalizado o el proceso de formalización del lenguajes es especialmente importante en la lógica y matemáticas. </li></ul>
  5. 5. Introducción(2) <ul><li>Lenguaje Natural </li></ul><ul><li>Pablo: &quot;Antonio, como tu carro es más rápido y cómodo que el mío, yo salgo ahora a las 10 y tú me adelantas en la carretera y vamos juntos. Así no tienes que entrar a Cali. </li></ul><ul><li>Antonio: &quot;Buena idea. Yo también salgo ahora a las 10. Yo voy a una velocidad de 100 Km/h ¿tú que velocidad tienes?&quot; </li></ul><ul><li>Pablo: &quot;Yo saco 80 km/h ¿A qué hora nos encontramos? </li></ul>Situación: Pablo vive en Cali. Su hermano Antonio vive en Popayán. Su madre vive en Bogotá y ambos quieren ir a visitarla. Hablan por teléfono.
  6. 6. <ul><li>Lenguaje Formal </li></ul><ul><li>Si un coche sale de un punto A a una velocidad media de 100 Km/h y al mismo tiempo sale otro desde un punto B con una ventaja de 140 km. a una velocidad media de 80 km/h ¿Cuánto tiempo tardarán en encontrarse? </li></ul>
  7. 7. Objetivo cumplido <ul><li>Realizar una introducción general al concepto de formalización </li></ul>
  8. 8. UML <ul><li>El modelo de lenguaje unificado UML, es ampliamente usado para el proceso de desarrollo de SW pero es semi-formal y no permite determinar facilmente consistencia, falta de ambigüedad o exactitud. </li></ul>
  9. 9. UML <ul><li>Características UML </li></ul><ul><ul><li>No es Completo. </li></ul></ul><ul><ul><li>Imprecisión. </li></ul></ul><ul><ul><li>Ambigüedad. </li></ul></ul><ul><ul><li>Poca fiabilidad. </li></ul></ul><ul><ul><li>utiliza diagramas, tablas y otras notaciones diversas, para crear los diferentes modelos de las etapas del desarrollo del software. </li></ul></ul>
  10. 10. UML <ul><li>Contradicciones: conjuntos de sentencias que difieren entre si, respecto a la definición de la misma especificación. </li></ul><ul><li>Ambigüedades: sentencias que pueden ser interpretadas de muchas maneras. </li></ul><ul><li>Incompletitud: puede que no se contemplen todos los casos posibles. </li></ul>
  11. 11. UML <ul><li>Vaguedad: sucede cuando la especificación del sistema es muy voluminosa, y no da lugar a detectar que ciertas afirmaciones carecen de información útil. </li></ul><ul><li>Niveles mezclados de abstracción: se entremezclan sentencias muy abstractas con otras que se encuentran en otro nivel de detalle inferior. </li></ul>
  12. 12. Formalización UML <ul><li>La formalización UML es el complemento para precisar la semántica de los modelos gráficos diseñados con UML. </li></ul><ul><li>La formalización se realiza mediante la aplicación de métodos formales. </li></ul>
  13. 13. Formalización UML <ul><li>La Formalización es la aplicación de un modelo fuente no formal o semi-formal, en un modelo objetivo formal, de acuerdo a unas definiciones. </li></ul><ul><li>Una definición de formalización esta conformada por un conjunto de reglas que describen como el modelo fuente puede ser transformado a un modelo formal. </li></ul>
  14. 14. Métodos Formales <ul><li>Un método formal asegura que sus especificaciones carecen de ambigüedad, garantizan consistencia y completitud. </li></ul>
  15. 15. Métodos Formales <ul><li>Definidos por una sintaxis y una semántica formal para especificar el funcionamiento y comportamiento del sistema. </li></ul><ul><li>Los métodos formales son técnicas de base matemática usadas para describir las propiedades de un sistema de software. </li></ul><ul><li>Definen un marco de referencia para especificar, desarrollar y verificar los sistemas de manera sistemática. </li></ul>
  16. 16. Métodos Formales <ul><li>Es también cualquier otra actividad relacionada con representaciones matemáticas del software: </li></ul><ul><li>Especificación formal del sistema </li></ul><ul><li>Análisis y demostración de la especificación </li></ul><ul><li>Desarrollo transformacional </li></ul><ul><li>Verificación de programas </li></ul>
  17. 17. Métodos Formales <ul><li>La aplicación de los Métodos Formales a la Ingeniería de Software es prácticamente inexistente fuera del ámbito académico, limitándose tan sólo a cierto tipo de sistemas informáticos de control en los que, por sus peculiares características, se exigen elevados niveles de confiabilidad y tolerancia a fallos. </li></ul>
  18. 18. Métodos Formales <ul><li>Se da el curioso fenómeno de que la industria del software invierte más esfuerzo y dinero en la depuración y el mantenimiento de las aplicaciones producidas que en el propio desarrollo de las mismas. </li></ul>
  19. 19. Métodos Formales - Ventajas <ul><li>Carencia de ambigüedad </li></ul><ul><li>La sintaxis formal de un lenguaje de especificación permite interpretar los modelos construidos de forma única. </li></ul>
  20. 20. Métodos Formales – Ventajas <ul><li>Consistencia </li></ul><ul><li>Una demostración matemática que usa reglas de inferencia determina que los hechos iniciales se corresponden formalmente con la especificación modelada. </li></ul>
  21. 21. Estrategias de Formalización <ul><li>Estrategia arriba-abajo </li></ul><ul><li>Partir de un lenguaje gráfico y definir un formalismo matemático que los sustente </li></ul><ul><li>Estrategia abajo-arriba </li></ul><ul><li>Partir de un formalismo existente y proponer un lenguaje gráfico que permita capturar todos los elementos del lenguaje </li></ul>
  22. 22. Estrategias de Formalización <ul><li>Estrategia híbrida </li></ul><ul><li>Tomar un lenguaje gráfico existente y tomar un lenguaje formal existente y hacer una integración entre ellos </li></ul>
  23. 23. Diez mandamientos de los métodos formales <ul><li>Seleccionar la notación adecuada. </li></ul><ul><li>Formalizar con criterio, solo las especificaciones más críticas. </li></ul><ul><li>Estimar costo, esfuerzo y tiempo. </li></ul><ul><li>Todo proyecto debería tener un experto de métodos formales. </li></ul><ul><li>Documentar suficientemente: comentarios en lenguaje natural. </li></ul><ul><li>Aplicar técnicas de Prueba. </li></ul><ul><li>Los métodos formales no son una garantía de corrección. </li></ul><ul><li>Reutilizar todo lo posible: única forma de reducir costos e incrementar calidad. </li></ul><ul><li>No abandonarás los métodos tradicionales de desarrollo. </li></ul><ul><li>No serás dogmático. </li></ul>
  24. 24. Objetivo finalizado <ul><li>Definir y especificar los aspectos más relevantes de la Formalización UML. </li></ul>
  25. 25. Anthony Hall [HAL90] afirmaba: <ul><li>“ Los métodos formales son objeto de controversia. Quienes los propugnan afirman que pueden revolucionar el desarrollo del software. Sus detractores piensan que resultan imposiblemente difíciles. Mientras tanto, para la mayoría de la gente los métodos formales son tan poco familiares que resulta difícil juzgar estos puntos de vista contrapuestos.” </li></ul>
  26. 26. Métodos Formales a fondo <ul><li>Los métodos formales tiene un alto grado de dificultad. </li></ul><ul><li>crear una especificación de requerimientos que no sea contradictoria, con ambigüedades, o incompletitud. </li></ul><ul><li>Métodos tradicionales se fundamentan en especificaciones gráficas </li></ul><ul><li>Métodos formales en las matemáticas. </li></ul>
  27. 27. Métodos formales a fondo <ul><li>La sintaxis de un lenguaje formal de especificación permite que los requisitos y el diseño se lo interpreten de una sola forma, así se puede eliminar la ambigüedad. </li></ul>
  28. 28. Métodos formales a fondo <ul><li>La consistencia se da al no tener una contradicción en otro lugar de una especificación, la consistencia se garantiza probando matemáticamente los hechos iníciales pues deben relacionarse de manera formal en planteamientos posteriores dentro de la especificación. </li></ul>
  29. 29. Métodos formales a fondo <ul><li>La completitud es difícil de lograr, aun aplicando métodos formales. Algunos aspectos del sistema tal vez no se logren identificar mientras se crea la especificación, o tal vez se omitan a propósito para permitir que los diseñadores tengan libertad de elección en el enfoque de la implementación. </li></ul>
  30. 30. Matemáticas para el desarrollo de software <ul><li>Relaciones matemáticas sustentan la abstracción. </li></ul><ul><li>Condiciones: </li></ul><ul><ul><li>Invariantes. Lo que no cambia </li></ul></ul><ul><ul><li>Precondiciones. Circunstancias en donde la operación es válida </li></ul></ul><ul><ul><li>Poscondiciones: Define cuando será cierto hasta completar la operación. </li></ul></ul>
  31. 31. Métodos formales y sus lenguajes de especificación <ul><li>Métodos basados en lógica de primer orden – lógica de primer orden </li></ul><ul><li>Métodos basados en algoritmos algebráicos – especificaciones algebráicas. </li></ul><ul><li>Métodos basados en redes de petri – redes de petri </li></ul><ul><li>Métodos basados en lógica temporal – lógica temporal </li></ul>
  32. 32. Lenguajes formales de especificación <ul><li>Soportan los modelos matemáticos y se fundamentan en: </li></ul><ul><li>1) Sintaxis.- Que define la notación especifica con la que se representa la especificación. </li></ul><ul><li>2) Semántica.- Para ayudar a definir un &quot;universo de objetos&quot; que se empleara para describir el sistema. </li></ul><ul><li>3) Conjunto de relaciones.- Que definen las reglas que indican cuáles objetos satisfacen adecuadamente la especificación. </li></ul>
  33. 33. MFOO de lógica de primer orden <ul><li>OBJECT Z </li></ul><ul><li>Object-Z es un lenguaje de especificación formal de sistemas OO. Es una extensión del lenguaje formal Z. Z es un poderoso lenguaje de especificación matemático, pero al carecer de una estructura modular para sus especificaciones puede ocasionar mayor complejidad en sistemas de gran tamaño. </li></ul>
  34. 34. MFOO de lógica de primer orden <ul><li>VDM </li></ul><ul><li>VDM++. consta de un conjunto de definiciones de clases. Una definición de clase representa una plantilla para objetos con atributos, operaciones (métodos) y propiedades sobre concurrencia y tiempo real. Una clase VDM++ consta de varias cláusulas para definir constantes, variables,invariantes, métodos, tareas y sincronizaciones. Los tipos, constantes y métodos se heredan de VDM-SL. </li></ul>
  35. 35. MFOO basados en algoritmos matemáticos <ul><li>HOSA - Hidden Order Sorted Algebras </li></ul><ul><li>Se basa en especificaciones algebraicas (lenguaje OBJ) donde algunos sorts (tipos) se cualifican como ocultos y otros como visibles. </li></ul><ul><li>Los primeros se corresponden con los estados ocultos de los objetos y los segundos con los valores que pueden ser observados. </li></ul>
  36. 36. MFOO basados en algoritmos matemáticos <ul><li>TROLL. TROLL y OBLOG son dos versiones (textual y gráfica) </li></ul><ul><li>mismo lenguaje de especificación </li></ul><ul><li>Los sistemas de información y bases de datos constituyen su dominio de aplicación. </li></ul><ul><li>TROLL-light es un sublenguaje de TROLL completamente formalizado. La diferencia entre TROLL y TROLL-light es que no hay herencia en el segundo. </li></ul><ul><li>La originalidad de esta aproximación reside en distinguir entre plantillas de objetos (definición intencional de la clase) y clases de objetos (definición extensional). </li></ul>
  37. 37. MFOO basados en algoritmos matemáticos <ul><li>AS-IS (Especificaciones Algebraica con Estados Implícitos). </li></ul><ul><li>Se utiliza para especificar sistemas cuyo comportamiento externo depende de un estado interno. </li></ul><ul><li>Considera dos tipos de operaciones: los accesos que observan el estado implícito (interno) y los </li></ul><ul><li>modificadores que se utilizan para cambiar el estado. </li></ul><ul><li>Un estado es un álgebra, y un cambio de estado, una transformación definida sobre un álgebra. </li></ul>
  38. 38. MFOO basados en algoritmos matemáticos <ul><li>Maude. </li></ul><ul><li>Especificar y programar sistemas OO concurrentes. </li></ul><ul><li>Maude extiende el paradigma de especificación algebraica e incluye como sub-lenguaje funcional OBJ3. </li></ul><ul><li>Maude hereda de OBJ3 sus mecanismos de estructuración modular, incluyendo varias formas de importación, parametrización (muy expresiva) y sobrecarga mediante renombrado. </li></ul><ul><li>Estados descritos mediante términos de una estructura algebraica y reglas expresando posibles transiciones de estados. </li></ul>
  39. 39. MFOOs basados en Redes de Petri <ul><li>Las redes de Petri han sido criticadas por adolecer de mecanismos de estructuración. La formalización de aspectos orientados a objetos en las redes de Petri siguen dos aproximaciones: </li></ul><ul><li>(a) una clase se formaliza con una red y los objetos que circulan por la red son marcas y (b) cada objeto se formaliza con una red y los lugares de la red juegan el papel de atributos. En ambas aproximaciones los métodos se corresponden con transiciones. </li></ul>
  40. 40. MFOOs basados en Lógica Temporal. <ul><li>Las formalizaciones basadas en lógica temporal son adecuadas para describir sistemas reactivos y concurrentes. </li></ul><ul><li>Asociado con las diferentes lógicas temporales es la noción de tiempo-estado. </li></ul><ul><li>Una especificación escrita en términos de lógica temporal describe las secuencias de estados admisibles para el sistema de forma declarativa. </li></ul><ul><li>Los lenguajes propuestos provienen de lenguajes preexistentes con la adición de características orientadas a objetos tales como encapsulación de estado, definición de interfaces (atributos, métodos) y operadores de composición. </li></ul>
  41. 41. Objetivo cumplido <ul><li>Exponer los modelos de formalización para UML. </li></ul>

×