Especificación y Verificación de Transformaciones de Modelos

Slides:



Advertisements
Presentaciones similares
UML para programadores Java
Advertisements

MODELADO DE ANALISIS Y DISEÑO
Fundamentos de Ingeniería de Software
Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz.
Proyecto de Ingeniería de Software 2008
Presentación del estado del arte
INTRODUCCIÓN A UML Oscar Miguel Alonso Moreno.
UNIDAD II Modelo de Datos.
Evaluación de Productos
Sistemas Distribuidos “Técnicas de Especificación Formal”
BASES DE DATOS ORIENTADAS A OBJETO
El paradigma de la orientación a objetos La programación orientada a objetos genera códigos eficientes y estandariza la metodología de programación, además.
I Taller sobre Desarrollo de Software Dirigido por Modelos, MDA y Aplicaciones (DSDM'04) MDA Aplicado: Una Gramática de Grafos para la Transformación de.
Proceso investigativo
Propuesta de una metodología para el desarrollo de proyectos informáticos empleando la herramienta para el diseño automatizado GeneXus Autor: Dipl.-Ing.
LEDA Un Lenguaje para la Especificación y Validación de Arquitecturas de Software Carlos Canal Velasco Depto. de Lenguajes y Ciencias de la Computación.
Problemas, algoritmos y programas: Modelar: Simular o programar su solución en un computador. Algoritmos: Es un conjunto finito, y no ambiguo de etapas.
Ingeniería de Software
Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA2006.
Sesión 5 Herramientas de creación de DSL gráficos (GMF)
Especificación de un metamodelo para apoyar y extender la propuesta TD-MBUID William Joseph Giraldo Orozco Ph.D. Director Helmuth Trefttz Gómez Ph.D. CoDirector.
1 LENGUAJES DE PROGRAMACIÓN Javier Martín Centro Asociado de Móstoles UNED.
Introducción a los tipos de datos abstractos
Bases de Datos Orientadas a Objetos (BDOO)
Ciclo de Vida del Software Paradigmas de Desarrollo
1 Diseño Orientado a Objetos Agustín J. González ELO-329: Diseño y Programación Orientados a Objetos 1er. Sem
Software Testing Juan Carlos Olivares Rojas MSN:
Proyecto de Ingeniería de Software Grupo 9 Septiembre 2009
Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA 2006.
UNIDAD 2. ALGORITMOS Y ESTRUCTURAS DE DATOS.
CONCEPTOS BÁSICOS Diseño de Sistemas.
Ingeniería en Sistemas de Información Diseño de Sistemas (3K1)
Programación de Sistemas
UML 2.0 Integrantes: Diana Carolina Valencia M. Jhon Fernando Lopez T. Carlos Alberto Castillo.
Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA2006.
Ximena Romano – Doris Correa
1 Diseño Orientado al Objeto Agustín J. González ELO-326: Seminario de Computadores II 2do. Sem
Importancia en la efectividad del:
INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWARE
Ing. Rodolfo Junior Miranda Saldaña CIP: Chimbote- 2013
UNIVERSIDAD LATINA BASES DE DATOS DISEÑO DE BASES DE DATOS (modelos para el diseño)
Facultad de Ingeniería
Análisis y diseño de sistemas Diagrama de componentes
Introducción al Lenguaje. ¿ Qué es PHP ? O Hypertext Pre-processoes (PHP) es un lenguaje de "código abierto" interpretado, de alto nivel, embebido en.
COLEGIO DE BACHILLERES PLANTEL 13 XOCHIMILCO-TEPEPAN MATERIA:TIC EQUIPO:21 PRESENTACION: BASE DE DATOS ALUMNAS: Adán Millán Sánchez.
Términos algoritmo diseñar algoritmo implementar algoritmo
INGENIERIA DE SOFTWARE
La Universidad de Guayaquil Carrera de Ingeniería en Sistemas.
Grupo 10 – 2008 Proyecto de Ingeniería de Software
Introducción a UML Departamento de Informática Universidad de Rancagua
El proceso de verificación y validación.
 Sara Isabel Osorio Alcaraz Ana Isabel Vallejo Grisales 10 Informática 1.
Ingeniería de Requisitos
Relación con otras asignaturas del plan de estudio
Integrantes: Dennys Quintero José Ortega Simón Fagundez Caracas 09 de Febrero de 2015.
Actividades en el Proceso de desarrollo de Software
Laura Posada Agudelo Carlos Mario Zapata
Unified Modeling Language (Lenguaje de Modelamiento unificado)
TIPOS DE DATOS ABSTRACTOS
Programación de Sistemas
Marco de Trabajo para Indexación, Clasificación y Recopilación Automática de Documentos Digitales Javier Caicedo Espinoza Gonzalo Parra Chico.
DISEÑO DE BASES DE DATOS (modelos para el diseño)
Introducción AOO. Contenido - Introducción - Repaso de Orientación a Objetos - UML - Casos de Uso.
Diagrama de Clases.
Modelo de procesos de software
Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA2006.
Verificación y Validación del Software
VERIFICACIÓN Y VALIDACIÓN DE SISTEMAS 3.10 Fase de manejo de requerimientos 4.1 Modelado de pruebas en UML Ponente: ing. Alejandro tapia vazquez.
Entregables del Proyecto
Transcripción de la presentación:

Especificación y Verificación de Transformaciones de Modelos Horacio López Fernando Varesi Marcelo Viñolo

Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones Situación Especificación E1 Especificación E2 (tiempo estimado: 1’) ESQUEMATIZAR En algunos paradigmas como el de OO, esto implicaría un esfuerzo de análisis y rediseño para realizar los cambios en la implementación. Si en cambio yo tuviera una forma de transformar en forma automática una especificación a una implementación, este paso sería tan sencillo como volver a ejecutar dicha transformación. Esto es lo que propone el Desarrollo Guíado por Modelos… Implementación I1 Implementación I2

Desarrollo Guiado por Modelos (Model Driven Development, MDD) Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones Desarrollo Guiado por Modelos (Model Driven Development, MDD) Enfoque de ingeniería de software basado en el modelado de un sistema como la principal actividad del desarrollo y la construcción del mismo guiada por transformaciones de dichos modelos. (tiempo estimado: 1’) Notar que los conceptos claves son modelo y transformaciones Modelo: Abstracción de un sistema que permite a diferentes actores describir un sistema y efectuar cambios sobre el mismo [Czarnecki et al., 06]

Transformación de modelos Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones Transformación de modelos refiere Definición de Transformación refiere Metamodelo Origen Metamodelo Destino conforma ejecuta conforma (tiempo estimado: 1’30’’) Se define una transformación como la generación automática de un modelo destino desde un modelo origen, de acuerdo a una definición de transformación. Una definición de transformación es un conjunto de reglas de transformación que describe cómo un modelo en el lenguaje origen puede ser transformado en un modelo en el lenguaje destino. Este es un esquema genérico. En algunos enfoques de transformación son posibles múltiples modelos origen y destino, o trabajar con un único modelo que es origen y destino a la vez. Metamodelos son modelos Importancia de verificación de transformación Motor de Transformaciones Modelo Origen lee escribe Modelo Destino

Aplicaciones de transformaciones Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones Aplicaciones de transformaciones Generar modelos de bajo nivel (eventualmente código) a partir de modelos de alto nivel Ingeniería inversa de modelos de alto nivel a partir de modelos de bajo nivel o código. Mapeo y sincronización entre modelos. Crear vistas de un sistema basadas en una consulta Evolucionar modelos (ej: refactoring) (tiempo estimado: 1’) Las aplicaciones dentro de MDD comprenden, entre otras, la generación de modelos de bajo nivel (llegando a código fuente) a partir de modelos de alto nivel, la sincronización entre modelos (frente a modificaciones en un modelo, otro debe actualizarse), la evolución de los mismos (ejemplo: realizando un refactoring), y las tareas de ingeniería inversa de modelos de bajo nivel para generar modelos de mayor nivel de abstracción

Descripción del proyecto Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones Descripción del proyecto Objetivos: Realizar un estudio del estado del arte sobre: lenguajes y herramientas existentes para la especificación de transformaciones de modelos verificación de estas transformaciones Aplicación de lo relevado a nivel práctico a un caso de estudio. (tiempo estimado: 30’) Enmarcado en un proyecto de investigación más general del grupo COAL y el grupo de Métodos Formales

Descripción del proyecto Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones Descripción del proyecto Resultados esperados: Estudio del marco teórico de MDD y de la transformación de modelos. 1er. reporte técnico: lenguajes y mecanismos para especificar transformaciones de modelos. 2do. reporte técnico: técnicas y herramientas de validación y verificación de modelos y de transformaciones. Aplicación práctica de los resultados mediante un caso de estudio. (tiempo estimado: 1’) El caso de estudio utiliza uno de los lenguajes de transformación relevados y asiste a una técnica de verificación que mencionaremos

Lenguajes y Herramientas de Transformación (tiempo estimado: 30’’)

Lenguajes y Herramientas Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones Lenguajes y Herramientas Relevamiento de trabajos actuales sobre especificación de transformaciones Caracterización: Generales Metamodelos Reglas de transformación

Caracterización de los enfoques de transformación Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones Caracterización de los enfoques de transformación Modelo-Modelo y Modelo-Texto Características generales Múltiples modelos origen/destino? Transformación “in-place”? Incrementabilidad Multidireccionalidad? Mecanismos de trazabilidad? (tiempo estimado: 2’) Dada la gran diversidad de enfoques existentes para la transformación de modelos, se requiere de criterios que permitan clasificar a estos enfoques y seleccionar el más adecuado para resolver un problema dado. Incrementalidad: como responde la transformación frente a cambios en alguno de los modelos, en términos de esfuerzo de reanálisis y de actualización.

Caracterización de los enfoques de transformación Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones Caracterización de los enfoques de transformación Características de los metamodelos Transformación endógena o exógena Transformación horizontal o vertical horizontal vertical endógena refactoring refinamiento exógena traducción o migración de lenguaje generación de código (tiempo estimado: 1’) Estas dimensiones de análisis son ortogonales. Podemos ver las combinaciones posibles en la tabla.

Caracterización de los enfoques de transformación Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones Caracterización de los enfoques de transformación Características de las reglas de transformación Precondiciones de aplicación (guardas) Parametrización y re-uso de reglas Detección y órden de aplicación Éstas y otras características fueron documentadas en el primer reporte técnico. (tiempo estimado: 1’)

Enfoques de transformación Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones Enfoques de transformación Manipulación directa Operacional Relacionales Basados en transformaciones de grafos Híbridos

Enfoques de Transformación Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones Enfoques de Transformación Manipulación directa Lenguaje de propósito general Representación de modelos adecuada al lenguaje. Ausencia de mecanismos dedicados a transformaciones. Ejemplo: SiTra Operacional Similar a programación imperativa. Incorpora mecanismos de trazabilidad, etc. Orden de ejecución explícito. Ejemplos: Kermeta, QVT-Operational (tiempo estimado: 1’) Enfoques operacionales se centran en CÓMO No decir ejemplos

Enfoques de Transformación Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones Enfoques de Transformación Relacionales El concepto principal son relaciones matemáticas entre modelo origen y destino. Alto nivel de abstracción (mayor legibilidad) En general, no admite actualizaciones in-place. Creación de elementos es implícita. Orden de ejecución no es explícito. pero se puede condicionar mediante precondiciones Ejemplos: Tefkat, QVT-Relations (tiempo estimado: 1’) Enfoque declarativo que se centra en el QUE. Redactar creación implicita para no irse de tiempo No se puede asumir el orden de ejecución.

Enfoques de Transformación Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones Enfoques de Transformación Basados en Transformaciones de Grafos Se utilizan grafos tipados, con atributos y etiquetas. Reglas se componen de un lado izquierdo y derecho. Propiedades matemáticas basadas en la teoría subyacente (ej: alcanzabilidad de un nodo). Ejemplos: AGG, AToM3, Viatra, MOLA (tiempo estimado: 1’) Distinguir herramientas de transformación de grafos (AGG) de lenguajes.

Enfoques de Transformación Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones Enfoques de Transformación Híbridos Combina enfoques anteriores para sumar ventajas. QVT Estándar definido por OMG. Emplea OCL y MOF. Transformaciones modelo-modelo ATL Sigue lineamientos de QVT RFP Transformaciones unidireccionales Modelo origen es read-only Modelo destino es write-only (tiempo estimado: 1’) En este enfoque destacamos dos lenguajes.

Verificación de Transformaciones de Modelos motivación Por qué?? - Para MDD exitoso -> verificar transformaciones Definición de correctitud -> (ej. En algunos casos que la transformación sea correcta, es que la transformación termina)

Verificación de transformaciones Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones Verificación de transformaciones Relevamiento de trabajos actuales sobre verificación Categorización Análisis de características, fortalezas y debilidades Categorías Casos de prueba Model-checking Métodos deductivos Trabajos de técnicas aplicadas a situaciones concretas -> se categorizaron estos trabajos, tratando de extraer sus caracteristicas… Las técnicas analizadas son similares a la aplicación en otros enfoques pero con ciertos ajustes en MDD… En particular, para casos de prueba … por nuestro conocimiento de este enfoque .. Nos resultó más evidente…

Casos de prueba Verificación dinámica a nivel de modelos Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones Casos de prueba Verificación dinámica a nivel de modelos Se trabaja sobre un conjunto representativo del dominio. Pasos: Generación Complejidad de exploración del espacio de modelos Validación Ejecución Cómo generar el resultado esperado? Cómo comparar resultados? (tiempo estimado: 2’) Brinda cierta seguridad Gereración -> exploración del dominio (memoria y tiempo de ejecución) Validación -> representativo y fallas Ejecución -> * generación de resultados * compración (en grafos puede equivale a un problema de isomorfismo de grafos, que es un problema np-completo) ---------------------------- Hablemos en primer lugar de la verifiación utlizando casos de prueba… Dinámica por que es necesaria la ejecución de la transformaicón y a nivel de modelos pq se analizan los modelos involucrados en la misma Esta verificación es similar a otros paradigmas, como caja blanca, caja negra o mutation testing… pero se necesita realizar ajustes, como por ejemplo en mutation testing la definición de operadores de mutación para la transformación Aquí se trabaja con un conjunto representativo del dominio … por qué? … porque pruebo algo sobre conjunto represantivo puedo asegurar con cierta seguridad que se cumple para todo el dominio En primer lugar debemos generar los casos de prueba… notar que esto no es trivial ya que los metamodelos son estrucutras complejas… ------------------------------------------------------- NOTAS DE AYUDA La técnica asegura que si se tiene un conjunto representativo del dominio, se puede asegurar con cierta seguridad, que se cumple para todo el dominio. Precisa ajustes -> operaciones de mutación adecuados. Generar “buenos” errores en una transformación Generación -> (en ciertos casos de forma automática) En primer lugar, los metamodelos son estructuras complejas que determinan un espacio de modelos mediante restricciones estructurales y posiblemente restricciones no estructurales La complejidad de los datos especicados por estos metamodelos afecta la generación de casos de prueba en términos de memoria y tiempo de ejecución para explorar el espacio de los modelos Validación del conjunto de casos de prueba - qué tan bueno es para cubrir el dominio - qué tan bueno es para detectar fallas Por ejemplo, enla verifiación utilizando oráculos, dificultad para generar los resultados esperados comparar los modelos destino con los esperados

Model-Checking Verificación dinámica (modelos) o estática (transf.) Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones Model-Checking Verificación dinámica (modelos) o estática (transf.) Prueba autómatica de propiedades sobre modelos y/o transformaciones Ambos deben ser expresados como grafos Fortalezas: Facilidad de uso No requiere asistencia del usuario Debilidades: Lenguaje restringido para asegurar automaticidad Complejidad crece exponencialmente con el tamaño del modelo. Veamos ahora las técnicas que utilizan model-checking… La idea de model checking es definir prop sobre la transfor o modelos y probarlas de forma automática Puede decirse como en el caso anterior que con model-checking se puede realizar una verificación estática a nivel de la transforación y dinámica a nivel de los modelos Tiene varias ventajas dado que es fácil de usar y no requiere asistencia del usuario al realizar la verificación… Por otro lado alguna deventaja puede surgier en que el lenguaje que permite expresar propiedades puede ser limitado en ciertos casos… Y que para modelos muy grandes … esto podría tornarse bastante complejo

Métodos Deductivos Verificación estática a nivel de metamodelos Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones Métodos Deductivos Verificación estática a nivel de metamodelos Centrado en la realización de pruebas formales Especificaciones formales de los metamodelos y transf. Fortalezas: Brinda certeza absoluta Lenguaje expresivo de propiedades Generación de implementaciones de transformación correctas Debilidades: Verificación manual o semi-automática. Requiere experiencia en lenguajes formales y/o herramientas matemáticas En el mejor de los casos semi-automática ----------------------------------- NOTAS Las técnicas de vericación a nivel de modelos utilizan un menor nivel de abstracción al de las técnicas de verificación formal sobre metamodelos, por lo que el rango de propiedades que se pueden validar es mayor que en el segundo caso, pero no pueden asegurar corrección en términos absolutos Especificaciones formales de metamodelos y transformación Utiliza especificaciones formales de los metamodelos y de la transformación … la transformación como conjunto de assertions. La última pregunta engancharla con el caso de estudio ….

Caso de Estudio Bueno … hablemos un términos generales del caso de estudio….

Caso de estudio Aplicación de conocimientos sobre transformaciones Enmarcado en una técnica de verificación que utiliza métodos deductivos. A continuación… Técnica de verificación Transformación desarrollada Diseño prototipo Aplicar conocimientos adquiridos sobre transformación en caso de estudio - En particular se implementó un prototipo que se enmarca en una técnica de verificación de métodos deductivos

Técnica de Verificación Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones Técnica de Verificación Especificación formal de metamodelos en Coq Elaboración de prueba formal Categoria métodos deductivos, pruebas formales pasos Cajita del prototipo ----------------------------------------------------------------------- Técnica de verificación que se enmarca dentro de la categoría de métodos deductivos Cómo se dijo anteriormente … estás técnicas trabajan con especifiaciones formales…(aparecen las dos cajitas de la izquierda) Por lo tanto es necesario contar con una traducción a una especificación formal… Dibujo de las cajitas con los pasos de la verificación ------------------------------------------------- *Traducción de metamodelos a especificación formal en Coq -> Elaboración de prueba formal *Traducción de reglas de transf. a fórmulas lógicas Resaltar la parte que se enmarca el prototipo en el dibujo (con una animación o algo) Traducción de reglas de transf. a fórmulas lógicas

Transformación del prototipo Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones Transformación del prototipo refiere Definición de Transformación refiere Metametamodelo KM3 Metametamodelo Coq conforma ejecuta conforma El modelo de origen es un metamodelo particular expresado en KM3 El modelo destino debe ser la especificación formal de este metamodelo origen. Para poder definir la transformación debo trabajar con metamodelos que describan el dominio de estos metamodelos. Por este motivo los metamodelos deben ser lenguajes de metametamodelado que permitan expresar cualquier metamodelo. Metamodelos son modelos esquema KM3 y Coq pie a Marcelo Motor de Transformaciones Metamodelo origen en KM3 lee escribe Metamodelo destino en Coq

KM3 – Coq KM3 Coq Lenguaje de metamodelado textual Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones KM3 – Coq KM3 Lenguaje de metamodelado textual Sintaxis similar a Java Popular en comunidad de usuarios de ATL Coq Asistente de pruebas que permite : Expresar modelos matemáticos complejos Expresar propiedades sobre los modelos Verificar propiedades resumen de KM3 y Coq (sin ejemplos, solo comentando en general qué son) KM3 La utilización de KM3 fue determinada por el espacio técnico de ATL .. Se destaca su similaridad con la sintaxis Java o .NET Coq Objetos primitivos -> tipos inductivos

Proceso de transformación Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones Proceso de transformación  proceso del prototipo (aca se presenta oralmente Xtext) En este figura se puede ver cómo es el proceso que lleva a cabo la transformción realizada en el prototipo La transformación principal es la realizada en ATL que se ve en el lado izquierdo, la cual toma .. Bla bla…

Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones Modelo origen Metamodelo UML en UML Metamodelo UML en KM3 package UML { abstract class Classifier { attribute name : String; } class Class extends Classifier { reference pack : Package … Hablar del ejemplo y de la sintaxis de KM3 por arriba…. Orden… Clase, claase abs, atributo, referencia, herencia

Transformación ATL Especificación puramente declarativa (relacional). Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones Transformación ATL Especificación puramente declarativa (relacional). Relaciones: Clase => Tipo Inductivo (TI) Atributo/Referencia => Componente del TI Identidad de objetos => Componente oid Herencia => Componente del TI

Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones Transformación ATL rule AbstractClass2InductiveType { from i: KM3!Class (i.isAbstract) to o: COQ!InductiveType ( isAbstract <- i.isAbstract, name <- i.name, hasComponents <- i.structuralFeatures, subTypes <- i.subclasses, superTypes <- i.supertypes ) } Seccion from y seccion to Sección to: Asignaciones (bindings)

Transformación Xtext Basado en templates (Xpand) Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones Transformación Xtext Basado en templates (Xpand) Traducción a sintaxis Coq. Genera funciones auxiliares para la construcción de pruebas formales: Proyecciones Comparación de objetos Casting Chequeo de tipos

Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones Resultado Modelo Origen Modelo Destino package UML { abstract class Classifier { attribute name : String; } class Class extends Classifier { reference pack : Package … Inductive Classifier : Set := | Build_Classifier (name : string) (subClass : option Class) with Class : Set := | Build_Class (oid : nat) (pack : Package) … Clases a tipos inductivos. Constructor Atributos y referencias a parametros del constructor Identidad -> oid

Conclusiones

Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones Existe una gran diversidad de técnicas, herramientas y lenguajes de transformación de modelos. El enfoque a utilizar depende de la naturaleza del problema y no existe uno que contemple todas las necesidades posibles. El primer reporte técnico presenta una taxonomía que permite clasificar los enfoques y seleccionar el más adecuado para un problema particular. Entornos y herramientas “inmaduros” y en permanente perfeccionamiento. Sobre las herramientas inmaduras  algunas proveen reconocimiento de sintaxis y debugger pero en gral no proveen detección de errores en la codificación (ni estática, ni dinámica). Ejemplo, en ATL si se invoca una regla que no está definida, el entorno no muestra un mensaje .. Ni de forma estática , ni al ejecutar….(estático y dinamico respectivamente) Enfoque re;ativamente nuevo

Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones Las técnicas de verificación difieren en el grado de certeza que brindan. Trabajan en diferentes niveles de abstracción El segundo reporte técnico presenta una clasificación y descripción de técnicas de verificación. Las herramientas que asisten la verificación en gral. no se encuentran integradas a las de desarrollo. Niveles de abstracción -> a nivel de modelo y a nivel de metamodelo Por qué no usar siempre métodos deductivos? El primer motivo es que los métodos deductivos: requieren la utilización de lenguajes formales y herramientas matemáticas no son fácilmente automatizables su uso es complejo y los desarrolladores no están habituados a trabajar. Elección de técnica deben emplearse criterios para determinar cuál es la técnica más apropiada para el problema concreto teniendo en cuenta la criticidad de la aplicación

Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones Se implementó un prototipo para semi- automatizar una técnica de verificación basada en métodos deductivos. El trabajo futuro se centra en aspectos de la traduccion que quedaron fuera del alcance del prototipo. Estos aspectos son: Restricciones no estructurales expresadas en lenguaje formal (existen trabajos que lo realizan) Trabajo a futuro: Restricciones estructurales (ej: cardinalidad en asociaciones) Restricciones no estructurales expresadas en lenguaje formal

GRACIAS