introducción a oasis 3.0 patricio letelier patricio letelier [email protected] letelier...
TRANSCRIPT
Introducción a Introducción a OASIS 3.0OASIS 3.0
Patricio Letelier Patricio Letelier
[email protected]/~letelier
Departamento Sistemas Informáticos y ComputaciónDepartamento Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia (España)Universidad Politécnica de Valencia (España)
22 www.dsic.upv.es/~letelier/pub
ContenidoContenido
IntroducciónIntroducción OASIS: Modelado Conceptual Formal y OASIS: Modelado Conceptual Formal y
OOOO Relaciones entre ClasesRelaciones entre Clases ConclusionesConclusiones
33 www.dsic.upv.es/~letelier/pub
IntroducciónIntroducciónModelado Conceptual OOModelado Conceptual OO
Un modelo conceptual de un sistema de información Un modelo conceptual de un sistema de información representa los requisitos del sistema, esencialmente representa los requisitos del sistema, esencialmente los requisitos funcionales los requisitos funcionales
El término conceptual se refiere al hecho que el El término conceptual se refiere al hecho que el modelo consiste en conceptos mediante los cuales el modelo consiste en conceptos mediante los cuales el usuario y el analista interpretan y observan el usuario y el analista interpretan y observan el espacio del problema espacio del problema
El modelado conceptual tiene sus raíces en el El modelado conceptual tiene sus raíces en el modelado semántico de datos (EER, Daplex, SDM, modelado semántico de datos (EER, Daplex, SDM, GSM) GSM)
44 www.dsic.upv.es/~letelier/pub
IntroducciónIntroducción... Modelado Conceptual OO... Modelado Conceptual OO
El enfoque orientado a objeto integrado en el El enfoque orientado a objeto integrado en el modelado conceptual presenta las siguientes ventajas:modelado conceptual presenta las siguientes ventajas:
– La La encapsulación del conocimiento bajo el concepto de encapsulación del conocimiento bajo el concepto de objetoobjeto, incluyendo las perspectivas estática y dinámica , incluyendo las perspectivas estática y dinámica del sistema estudiado. del sistema estudiado.
– La La desaparición de barreras estrictas entre las distintas desaparición de barreras estrictas entre las distintas fases del ciclo de vidafases del ciclo de vida o proceso de producción de o proceso de producción de software. Esto favorece un proceso de construcción software. Esto favorece un proceso de construcción incremental a partir del modelo conceptual. incremental a partir del modelo conceptual.
– La La proximidad de sus nociones a los mecanismos proximidad de sus nociones a los mecanismos cognitivos humanoscognitivos humanos facilitando la captura y validación de facilitando la captura y validación de requisitos representados en el modelo conceptual.requisitos representados en el modelo conceptual.
55 www.dsic.upv.es/~letelier/pub
IntroducciónIntroducciónMétodos Formales en Modelado Métodos Formales en Modelado
ConceptualConceptual
Los métodos formales permiten determinar y Los métodos formales permiten determinar y expresar con mayor rigor las propiedades del expresar con mayor rigor las propiedades del softwaresoftware
En la práctica, los requisitos son modelados usando En la práctica, los requisitos son modelados usando mayoritariamente modelos semiformales, incluidos mayoritariamente modelos semiformales, incluidos en los enfoques más populares en la actualidad, en los enfoques más populares en la actualidad, entre ellos los métodos no orientados a objeto entre ellos los métodos no orientados a objeto (Enfoque Estructurado, Jackson) y los orientados a (Enfoque Estructurado, Jackson) y los orientados a objeto (OMT, OOAD, OOSE, Shlaer-Mellor, ...).objeto (OMT, OOAD, OOSE, Shlaer-Mellor, ...).
66 www.dsic.upv.es/~letelier/pub
IntroducciónIntroducción... Métodos Formales en Modelado ... Métodos Formales en Modelado
ConceptualConceptual UML (Unified Modeling Languaje) ha aglutinado las UML (Unified Modeling Languaje) ha aglutinado las
notaciones OO más popularesnotaciones OO más populares
Particularmente, en el modelado conceptual es Particularmente, en el modelado conceptual es interesante el uso de métodos formales. Los interesante el uso de métodos formales. Los principales aportes se centran en:principales aportes se centran en:
– Mayor rigor en la especificaciónMayor rigor en la especificación
– Mejores condiciones para realizar la verificación y Mejores condiciones para realizar la verificación y validación en forma más exhaustivavalidación en forma más exhaustiva
– Mejores condiciones para automatización de Mejores condiciones para automatización de procesos de generación automática de prototipos procesos de generación automática de prototipos y/o código finaly/o código final
77 www.dsic.upv.es/~letelier/pub
OASIS, OASIS, OOpen and pen and AActive ctive SSpecification of pecification of IInformation nformation SSystems.ystems.– Pastor O. Pastor O. “Diseño y Desarrollo de un Entorno de “Diseño y Desarrollo de un Entorno de
Producción Automática de Software basado en el Modelo Producción Automática de Software basado en el Modelo OO”OO”. Tesis Doctoral, DSIC-UPV, 1992. Tesis Doctoral, DSIC-UPV, 1992
– Pastor O., Ramos I. Pastor O., Ramos I. “OASIS versión 2 (2.2) : A Class-“OASIS versión 2 (2.2) : A Class-Definition Language to Model Information Systems Using Definition Language to Model Information Systems Using an Object-Oriented Approach”an Object-Oriented Approach”. Servicio de Publicaciones . Servicio de Publicaciones Universidad Politécnica de Valencia, SPUPV-95.788, 1995Universidad Politécnica de Valencia, SPUPV-95.788, 1995
– Letelier P., Sánchez P., Ramos I., Pastor O. Letelier P., Sánchez P., Ramos I., Pastor O. “OASIS versión “OASIS versión 3.0: Un Enfoque Formal para el Modelado Conceptual 3.0: Un Enfoque Formal para el Modelado Conceptual Orientado a Objeto”Orientado a Objeto”. . Servicio de Publicaciones de la Servicio de Publicaciones de la Universidad Politécnica de Valencia, SPUPV-98.4011, Universidad Politécnica de Valencia, SPUPV-98.4011,
19981998
OASIS: Modelado Conceptual Formal y OASIS: Modelado Conceptual Formal y OOOO
88 www.dsic.upv.es/~letelier/pub
Trabajos Relacionados:Trabajos Relacionados:
– OBLOGOBLOG, Universidad de Lisboa (Portugal), Universidad de Lisboa (Portugal)
http://www.oblog.pthttp://www.oblog.pt
– ALBERTALBERT, Universidad de Namur (Bélgica), Universidad de Namur (Bélgica)
http://www.info.fundp.ac.be/~phe/albert.htmlhttp://www.info.fundp.ac.be/~phe/albert.html
– TROLLTROLL, Universidad de Braunschweig (Alemania), Universidad de Braunschweig (Alemania)
http://www.cs.tu-bs.de/idb/html_d/home/ehrich/http://www.cs.tu-bs.de/idb/html_d/home/ehrich/
… … OASIS: Modelado Conceptual Formal y OASIS: Modelado Conceptual Formal y OOOO
99 www.dsic.upv.es/~letelier/pub
OASIS: Una Estrategia para Modelado OASIS: Una Estrategia para Modelado de SIde SI
Herramientas Proceso
Notación
OASIS
1010 www.dsic.upv.es/~letelier/pub
Una especificación OASIS es una presentación de una Una especificación OASIS es una presentación de una teoría en el sistema formal usado, expresada como un teoría en el sistema formal usado, expresada como un conjunto estructurado de definiciones de clase. conjunto estructurado de definiciones de clase.
Las clases pueden ser simples o complejasLas clases pueden ser simples o complejas
Las clases complejas se definen estableciendo Las clases complejas se definen estableciendo relaciones entre clases. Éstas son agregación y relaciones entre clases. Éstas son agregación y especialización. especialización.
Una clase se compone de un nombre de clase, uno o Una clase se compone de un nombre de clase, uno o más mecanismos de identificación y un tipo o plantilla más mecanismos de identificación y un tipo o plantilla que comparten todas las instancias.que comparten todas las instancias.
OASIS como Lenguaje de ModeladoOASIS como Lenguaje de Modelado
1111 www.dsic.upv.es/~letelier/pub
La semántica de OASIS es dada en términos de una La semántica de OASIS es dada en términos de una estructura de Kripke (W,estructura de Kripke (W,,,). W es el conjunto de todos los ). W es el conjunto de todos los mundos posibles que un objeto puede alcanzar, mundos posibles que un objeto puede alcanzar, y y son son dos funciones que permiten establecer las transiciones dos funciones que permiten establecer las transiciones entre mundosentre mundos
W
w1
w2w3
w4
w5
w6
OASIS - Semántica AsociadaOASIS - Semántica Asociada
OASISOASIS
1212 www.dsic.upv.es/~letelier/pub
: F : F 2 2WW
: 2: 2AA (W (W W) W)
– asigna a una fórmula en Lógica de Primer Orden el asigna a una fórmula en Lógica de Primer Orden el conjunto de mundos en los cuales se satisfaceconjunto de mundos en los cuales se satisface
– La función La función asigna a cada paso una relación binaria asigna a cada paso una relación binaria entre mundosentre mundos
… … OASIS - Semántica AsociadaOASIS - Semántica Asociada
OASISOASIS
1313 www.dsic.upv.es/~letelier/pub
Plantilla de ClasePlantilla de Clase
Plantilla:Plantilla: <Atributos, Servicios, DL-Fórmulas><Atributos, Servicios, DL-Fórmulas>
Mecanismo de IdentificaciónMecanismo de Identificación
Servicios: eventos u operacionesServicios: eventos u operaciones
Interacción entre objetos Interacción entre objetos
Acción:Acción: <Cliente, Servidor, Servicio><Cliente, Servidor, Servicio>
1414 www.dsic.upv.es/~letelier/pub
Fórmulas en una variante de Lógica Dinámica Fórmulas en una variante de Lógica Dinámica [J.J Meyer [J.J Meyer 8888 que determinan el comportamiento de un objeto: que determinan el comportamiento de un objeto:
[[aa] ] falsefalse “La ocurrencia de “La ocurrencia de aa está prohibida está prohibida en los estados que satisfacen en los estados que satisfacen ''''
[¬[¬aa] ] falsefalse “La ocurrencia de “La ocurrencia de aa es obligatoria es obligatoria en los estados que satisfacen en los estados que satisfacen '’'’
[[aa] ] “En los estados que satisfacen “En los estados que satisfacen ,, inmediatamente después de la inmediatamente después de la
ocurrencia de la acción a, ocurrencia de la acción a, debe debe satisfacerse'' satisfacerse''
Comportamiento de un ObjetoComportamiento de un Objeto
1515 www.dsic.upv.es/~letelier/pub
Comportamiento Basado en EstadoComportamiento Basado en Estado
Evaluaciones
bloqueada=true [ingresar(cantidad)] saldo:=saldo + cantidadbloqueada=true [ingresar(cantidad)] saldo:=saldo + cantidad
Precondiciones
reintegro(cantidad) if {saldo>= cantidad}reintegro(cantidad) if {saldo>= cantidad}
Disparos
usuario(everyone)::aviso(“disco lleno”) when {espacio_libre=0}usuario(everyone)::aviso(“disco lleno”) when {espacio_libre=0}
[a]
¬ [a] false
[¬ a] false
1616 www.dsic.upv.es/~letelier/pub
Comportamiento basado en Comportamiento basado en secuencias de accionessecuencias de acciones
ProtocolosProtocolos
socio: socio:
SOCIO = alta.SOCIO1;SOCIO = alta.SOCIO1;
SOCIO1 = baja + prestar_libro.SOCIO2;SOCIO1 = baja + prestar_libro.SOCIO2;
SOCIO2 = prestar_libro.SOCIO2 +SOCIO2 = prestar_libro.SOCIO2 +
{num_libros>1} devolver_libro.SOCIO2 +{num_libros>1} devolver_libro.SOCIO2 +
{num_libros=1} devolver_libro.SOCIO1;{num_libros=1} devolver_libro.SOCIO1; Interpretación en DL: Interpretación en DL:
{ }{ } [a] + ¬ [a] false
1717 www.dsic.upv.es/~letelier/pub
OperacionesOperaciones
cancelar: 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: {Interpretación en DL: { } } [a] + [¬a] false
… … Comportamiento basado en Comportamiento basado en secuencias de accionessecuencias de acciones
1818 www.dsic.upv.es/~letelier/pub
AgregaciónAgregación
Multiplicidad de la relación Multiplicidad de la relación
Tipo de relación entre agregado y componenteTipo de relación entre agregado y componente Relacional / InclusivaRelacional / Inclusiva Estática / DinámicaEstática / Dinámica
Comunicación síncrona entre agregado y Comunicación síncrona entre agregado y componentescomponentes
Atributos derivados en base a atributos de Atributos derivados en base a atributos de componentescomponentes
1919 www.dsic.upv.es/~letelier/pub
… … AgregaciónAgregación
EjemploEjemplo
cochecoche aggregation of
static inclusive chasischasis towards(1,1) from (1,1)
static inclusive motormotor towards(1,1) from(0,1)
dynamic inclusive ruedarueda towards(4,5) from(0,1)
2020 www.dsic.upv.es/~letelier/pub
class class cochecochederived attributesderived attributes
temperatura : int;temperatura : int;presion_media : real;presion_media : real;
derivationsderivationstemperatura := motor.temperatura;temperatura := motor.temperatura;presion_media := avg(rueda.presion) where presion_media := avg(rueda.presion) where
{{rueda.rueda.instalada=true};instalada=true};eventsevents
encender encender calling to memberscalling to members motor.arrancar; motor.arrancar;girar_izqda girar_izqda calling to memberscalling to members
rueda[“adelante_izqda”].girar_izqda,rueda[“adelante_izqda”].girar_izqda,rueda[“adelante_decha”].girar_izqdarueda[“adelante_decha”].girar_izqda
......
… … AgregaciónAgregación
2121 www.dsic.upv.es/~letelier/pub
¿Agregación y su interpretación en Lógica ¿Agregación y su interpretación en Lógica Dinámica?Dinámica?
Sincronización de servicios mediante Sincronización de servicios mediante sincronizaciones sincronizaciones calling to memberscalling to members o o sharing sharing with memberswith members
… … AgregaciónAgregación
2222 www.dsic.upv.es/~letelier/pub
Particiones Estáticas y Dinámicas, Grupos de RolParticiones Estáticas y Dinámicas, Grupos de Rol
Particiones Estáticas y DinámicasParticiones Estáticas y Dinámicas Establecen subclases disjuntas y completasEstablecen subclases disjuntas y completas El objeto es el mismo desde la raíz hasta las hojas, El objeto es el mismo desde la raíz hasta las hojas,
(tiene el mismo (tiene el mismo oid)oid). Debe existir Compatibilidad de . Debe existir Compatibilidad de ComportamientoComportamiento
EspecializaciónEspecialización
2323 www.dsic.upv.es/~letelier/pub
Particiones EstáticasParticiones Estáticas Particionamos el espacio de objetosParticionamos el espacio de objetos Un objeto pertenece siempre a la misma subclase en la Un objeto pertenece siempre a la misma subclase en la
particiónpartición
Particiones DinámicasParticiones Dinámicas Particionamos el espacio de estados de los objetosParticionamos el espacio de estados de los objetos Un objeto puede migrar entre distintas subclases en la Un objeto puede migrar entre distintas subclases en la
partición.partición. Migración definida mediante un proceso de migración Migración definida mediante un proceso de migración Migración en función de valores de atributosMigración en función de valores de atributos
… … EspecializaciónEspecialización
2424 www.dsic.upv.es/~letelier/pub
... Especialización... Especialización
RolesRoles Se relacionan dos objetos (distintos Se relacionan dos objetos (distintos oidsoids): el ): el playerplayer en la en la
superclase y el rol en la subclase. En este caso la superclase y el rol en la subclase. En este caso la compatibilidad puede ser de signaturacompatibilidad puede ser de signatura
Un objeto puede desempeñar varias roles Un objeto puede desempeñar varias roles simultáneamentesimultáneamente
Puede dejar de existir el rol y no destruirse el objeto Puede dejar de existir el rol y no destruirse el objeto playerplayer
2525 www.dsic.upv.es/~letelier/pub
Ejemplo: Particiones EstáticasEjemplo: Particiones Estáticas
camión, coche, otro*camión, coche, otro*static specializationstatic specialization of of vehículo;vehículo;
gasolina, diesel, otro**gasolina, diesel, otro**static specializationstatic specialization of of vehículo;vehículo;
vehículo
camióncocheotro*
gasolina
diesel
otro**static
static
2626 www.dsic.upv.es/~letelier/pub
Ejemplo: Particiones DinámicasEjemplo: Particiones Dinámicas
funcionando, estropeadofuncionando, estropeadodynamic specialization of vehículodynamic specialization of vehículo
migration relation ismigration relation is
COCHE = crear_coche.FUNCIONANDO;COCHE = crear_coche.FUNCIONANDO;
FUNCIONANDO = FUNCIONANDO = estropear.ESTROPEADO;estropear.ESTROPEADO;
ESTROPEADO = ESTROPEADO = reparar.FUNCIONANDO;reparar.FUNCIONANDO;
funcionando
estropeado
dynamicvehículo
camióncocheotro*
gasolina
diesel
otro**static
static
2727 www.dsic.upv.es/~letelier/pub
Ejemplo: Ejemplo: RolesRoles
estudiante estudiante towards(0,1)towards(0,1) matricular, matricular,empleado empleado towards(0,10)towards(0,10) contratar contratar
role ofrole of persona persona
persona
empleadoestudiante
role
contratarmatricular
2828 www.dsic.upv.es/~letelier/pub
Ejemplo: Herencia Múltiple, EspeciesEjemplo: Herencia Múltiple, Especies
vehículo
camióncocheotro*
gasolina
diesel
otro**static
staticfuncionando
estropeado
dynamic
A-6065-CK
2929 www.dsic.upv.es/~letelier/pub
EspecializaciónEspecialización en Lógica Dinámica en Lógica Dinámica
¿Especialización y su interpretación en Lógica ¿Especialización y su interpretación en Lógica Dinámica?Dinámica?
Herencia de fórmulas dinámicasHerencia de fórmulas dinámicas
Ver detalles en:Ver detalles en:P. Sánchez, P. Letelier, I. Ramos. Animating formal P. Sánchez, P. Letelier, I. Ramos. Animating formal specifications with Inheritance in a DL-based specifications with Inheritance in a DL-based framework. Requirements Engineering Journal, framework. Requirements Engineering Journal, Springer-Verlag, Vol 4 Núm. 4, páginas 198-209, Springer-Verlag, Vol 4 Núm. 4, páginas 198-209, 1999. 1999.
3030 www.dsic.upv.es/~letelier/pub
ConclusionesConclusiones
Uso de Uso de OASIS como modelo OASIS como modelo formal formal subyacentesubyacente
TrabajoTrabajos asociadoss asociados Captura de Captura de rrequisitosequisitos y modelado conceptual y modelado conceptual Validación de especificaciones mediante animaciónValidación de especificaciones mediante animación Evolución de esquemas conceptualesEvolución de esquemas conceptuales Generación automática de código en entornos de Generación automática de código en entornos de
imperativosimperativos Integración de los aspectos anteriores en un Integración de los aspectos anteriores en un
entorno CASE que abarque todo el ciclo de vidaentorno CASE que abarque todo el ciclo de vida ......