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 ...