Introducción a OASIS 3.0 Patricio Letelier Patricio Letelier Departamento Sistemas Informáticos y Computación.

1 Introducción a OASIS 3.0 Patricio Letelier Patricio Let...
Author: María del Rosario Ponce Lozano
0 downloads 2 Views

1 Introducción a OASIS 3.0 Patricio Letelier Patricio Letelier [email protected] www.dsic.upv.es/~letelier Departamento Sistemas Informáticos y Computación Universidad Politécnica de Valencia (España)

2 2  www.dsic.upv.es/~letelier/pub Contenido n Introducción n OASIS: Modelado Conceptual Formal y OO n Relaciones entre Clases n Conclusiones

3 3  www.dsic.upv.es/~letelier/pub Introducción Modelado Conceptual OO n Un modelo conceptual de un sistema de información representa los requisitos del sistema, esencialmente los requisitos funcionales n El término conceptual se refiere al hecho que el modelo consiste en conceptos mediante los cuales el usuario y el analista interpretan y observan el espacio del problema n El modelado conceptual tiene sus raíces en el modelado semántico de datos (EER, Daplex, SDM, GSM)

4 4  www.dsic.upv.es/~letelier/pub Introducción... Modelado Conceptual OO n El enfoque orientado a objeto integrado en el modelado conceptual presenta las siguientes ventajas: –La encapsulación del conocimiento bajo el concepto de objeto, incluyendo las perspectivas estática y dinámica del sistema estudiado. –La desaparición de barreras estrictas entre las distintas fases del ciclo de vida o proceso de producción de software. Esto favorece un proceso de construcción incremental a partir del modelo conceptual. –La proximidad de sus nociones a los mecanismos cognitivos humanos facilitando la captura y validación de requisitos representados en el modelo conceptual.

5 5  www.dsic.upv.es/~letelier/pub Introducción Métodos Formales en Modelado Conceptual n Los métodos formales permiten determinar y expresar con mayor rigor las propiedades del software n En la práctica, los requisitos son modelados usando mayoritariamente modelos semiformales, incluidos en los enfoques más populares en la actualidad, entre ellos los métodos no orientados a objeto (Enfoque Estructurado, Jackson) y los orientados a objeto (OMT, OOAD, OOSE, Shlaer-Mellor,...).

6 6  www.dsic.upv.es/~letelier/pub Introducción... Métodos Formales en Modelado Conceptual n UML (Unified Modeling Languaje) ha aglutinado las notaciones OO más populares n Particularmente, en el modelado conceptual es interesante el uso de métodos formales. Los principales aportes se centran en: –Mayor rigor en la especificación –Mejores condiciones para realizar la verificación y validación en forma más exhaustiva –Mejores condiciones para automatización de procesos de generación automática de prototipos y/o código final

7 7  www.dsic.upv.es/~letelier/pub n OASIS, Open and Active Specification of Information Systems. –Pastor O. “Diseño y Desarrollo de un Entorno de Producción Automática de Software basado en el Modelo OO”. Tesis Doctoral, DSIC-UPV, 1992 –Pastor O., Ramos I. “OASIS versión 2 (2.2) : A Class-Definition Language to Model Information Systems Using an Object- Oriented Approach”. Servicio de Publicaciones Universidad Politécnica de Valencia, SPUPV-95.788, 1995 –Letelier P., Sánchez P., Ramos I., Pastor O. “OASIS versión 3.0: Un Enfoque Formal para el Modelado Conceptual Orientado a Objeto”. Servicio de Publicaciones de la Universidad Politécnica de Valencia, SPUPV-98.4011, 1998 OASIS: Modelado Conceptual Formal y OO

8 8  www.dsic.upv.es/~letelier/pub n Trabajos Relacionados: –OBLOG, Universidad de Lisboa (Portugal) http://www.oblog.pt –ALBERT, Universidad de Namur (Bélgica) http://www.info.fundp.ac.be/~phe/albert.html –TROLL, Universidad de Braunschweig (Alemania) http://www.cs.tu-bs.de/idb/html_d/home/ehrich/ … OASIS: Modelado Conceptual Formal y OO

9 9  www.dsic.upv.es/~letelier/pub OASIS: Una Estrategia para Modelado de SI Herramientas Proceso Notación OASIS

10 10  www.dsic.upv.es/~letelier/pub n Una especificación OASIS es una presentación de una teoría en el sistema formal usado, expresada como un conjunto estructurado de definiciones de clase. n Las clases pueden ser simples o complejas n Las clases complejas se definen estableciendo relaciones entre clases. Éstas son agregación y especialización. n Una clase se compone de un nombre de clase, uno o más mecanismos de identificación y un tipo o plantilla que comparten todas las instancias. OASIS como Lenguaje de Modelado

11 11  www.dsic.upv.es/~letelier/pub La semántica de OASIS es dada en términos de una estructura de Kripke (W, ,  ). W es el conjunto de todos los mundos posibles que un objeto puede alcanzar,  y  son dos funciones que permiten establecer las transiciones entre mundos La semántica de OASIS es dada en términos de una estructura de Kripke (W, ,  ). W es el conjunto de todos los mundos posibles que un objeto puede alcanzar,  y  son dos funciones que permiten establecer las transiciones entre mundos W w1w1 w2w2 w3w3 w4w4 w5w5 w6w6       OASIS - Semántica Asociada OASIS

12 12  www.dsic.upv.es/~letelier/pub  : F  2 W  : 2 A  (W  W) –  asigna a una fórmula en Lógica de Primer Orden el conjunto de mundos en los cuales se satisface –La función  asigna a cada paso una relación binaria entre mundos … OASIS - Semántica Asociada OASIS

13 13  www.dsic.upv.es/~letelier/pub Plantilla de Clase  Plantilla:  Plantilla:  Mecanismo de Identificación  Servicios: eventos u operaciones  Interacción entre objetos Acción: Acción:

14 14  www.dsic.upv.es/~letelier/pub Fórmulas en una variante de Lógica Dinámica [J.J Meyer 88  que determinan el comportamiento de un objeto: Fórmulas en una variante de Lógica Dinámica [J.J Meyer 88  que determinan el comportamiento de un objeto:  [a] false “La ocurrencia de a está prohibida en los estados que satisfacen  ''  [¬a] false“La ocurrencia de a es obligatoria en los estados que satisfacen  '’ en los estados que satisfacen  '’  [a]  “En los estados que satisfacen , inmediatamente después de la inmediatamente después de la ocurrencia de la acción a,  debe satisfacerse'' satisfacerse'' Comportamiento de un Objeto

15 15  www.dsic.upv.es/~letelier/pub Comportamiento Basado en Estado   Evaluaciones bloqueada=true [ingresar(cantidad)] saldo:=saldo + cantidad   P recondiciones reintegro(cantidad) if {saldo>= cantidad}   Disparos usuario(everyone)::aviso(“disco lleno”) when {espacio_libre=0}  [a]  ¬  [a] false  [¬ a] false

16 16  www.dsic.upv.es/~letelier/pub Comportamiento basado en secuencias de acciones  Protocolos socio: SOCIO = alta.SOCIO1; SOCIO1 = baja + prestar_libro.SOCIO2; SOCIO2 = prestar_libro.SOCIO2 + {num_libros>1} devolver_libro.SOCIO2 + {num_libros=1} devolver_libro.SOCIO1;  Interpretación en DL: { }  [a]  + ¬  [a] false

17 17  www.dsic.upv.es/~letelier/pub  Operaciones cancelar: CANCELAR = {credito>1}::devolver_moneda.CANCELAR + CANCELAR = {credito>1}::devolver_moneda.CANCELAR + {credito=1}::devolver_moneda; {credito=1}::devolver_moneda;  Interpretación en DL: { }  [a]  +  [¬a] false … Comportamiento basado en secuencias de acciones

18 18  www.dsic.upv.es/~letelier/pub Agregación  Multiplicidad de la relación  Tipo de relación entre agregado y componente  Relacional / Inclusiva  Estática / Dinámica  Comunicación síncrona entre agregado y componentes  Atributos derivados en base a atributos de componentes

19 19  www.dsic.upv.es/~letelier/pub … Agregación  Ejemplo coche coche aggregation of chasis static inclusive chasis towards(1,1) from (1,1) motor static inclusive motor towards(1,1) from(0,1) rueda dynamic inclusive rueda towards(4,5) from(0,1)

20 20  www.dsic.upv.es/~letelier/pub class coche derived attributes temperatura : int; presion_media : real; derivations temperatura := motor.temperatura; presion_media := avg(rueda.presion) where {rueda.instalada=true}; events encender calling to members motor.arrancar; girar_izqda calling to members rueda[“adelante_izqda”].girar_izqda,rueda[“adelante_decha”].girar_izqda... … Agregación

21 21  www.dsic.upv.es/~letelier/pub ¿Agregación y su interpretación en Lógica Dinámica?  Sincronización de servicios mediante sincronizaciones calling to members o sharing with members … Agregación

22 22  www.dsic.upv.es/~letelier/pub  Particiones Estáticas y Dinámicas, Grupos de Rol  Particiones Estáticas y Dinámicas  Establecen subclases disjuntas y completas  El objeto es el mismo desde la raíz hasta las hojas, (tiene el mismo oid). Debe existir Compatibilidad de Comportamiento Especialización

23 23  www.dsic.upv.es/~letelier/pub  Particiones Estáticas  Particionamos el espacio de objetos  Un objeto pertenece siempre a la misma subclase en la partición  Particiones Dinámicas  Particionamos el espacio de estados de los objetos  Un objeto puede migrar entre distintas subclases en la partición.  Migración definida mediante un proceso de migración  Migración en función de valores de atributos … Especialización

24 24  www.dsic.upv.es/~letelier/pub... Especialización  Roles  Se relacionan dos objetos (distintos oids): el player en la superclase y el rol en la subclase. En este caso la compatibilidad puede ser de signatura  Un objeto puede desempeñar varias roles simultáneamente  Puede dejar de existir el rol y no destruirse el objeto player

25 25  www.dsic.upv.es/~letelier/pub Ejemplo: Particiones Estáticas camión, coche, otro* static specialization of vehículo; gasolina, diesel, otro** static specialization of vehículo; vehículo camióncocheotro* gasolina diesel otro** static

26 26  www.dsic.upv.es/~letelier/pub Ejemplo: Particiones Dinámicas funcionando, estropeado dynamic specialization of vehículo migration relation is COCHE = crear_coche.FUNCIONANDO; FUNCIONANDO = estropear.ESTROPEADO; ESTROPEADO = reparar.FUNCIONANDO; funcionando estropeado dynamic vehículo camióncocheotro* gasolina diesel otro** static

27 27  www.dsic.upv.es/~letelier/pub Ejemplo: Roles estudiante towards(0,1) matricular, empleado towards(0,10) contratar role of persona persona empleado estudiante role contratar matricular

28 28  www.dsic.upv.es/~letelier/pub Ejemplo: Herencia Múltiple, Especies vehículo camióncocheotro* gasolina diesel otro** static funcionando estropeado dynamic A-6065-CK

29 29  www.dsic.upv.es/~letelier/pub Especialización en Lógica Dinámica ¿Especialización y su interpretación en Lógica Dinámica?  Herencia de fórmulas dinámicas Ver detalles en: P. Sánchez, P. Letelier, I. Ramos. Animating formal specifications with Inheritance in a DL-based framework. Requirements Engineering Journal, Springer-Verlag, Vol 4 Núm. 4, páginas 198-209, 1999.

30 30  www.dsic.upv.es/~letelier/pub Conclusiones  Uso de OASIS como modelo formal subyacente  Trabajos asociados  Captura de requisitos y modelado conceptual  Validación de especificaciones mediante animación  Evolución de esquemas conceptuales  Generación automática de código en entornos de imperativos  Integración de los aspectos anteriores en un entorno CASE que abarque todo el ciclo de vida ...