Desarrollo formal de Software Notación en la Metodología...

28
Desarrollo formal de Software Notaci ´ on en la Metodolog´ ıa B Profesor: Camilo Rueda 1 1 Universidad Javeriana-Cali PUJ 2011-1 () PUJ 2011 1 / 21

Transcript of Desarrollo formal de Software Notación en la Metodología...

Desarrollo formal de SoftwareNotacion en la Metodologıa B

Profesor:Camilo Rueda 1

1Universidad Javeriana-Cali

PUJ 2011-1

( ) PUJ 2011 1 / 21

Working Hypothesis Oz

Relacionar objetos

En sistemas complejos hay variables que definen relaciones entreotras

ejemplo: carros con la persona que conduceEsas variables se especifican mediante funciones o relacionesEs fundamental determinar cual de las anteriores usar.

( ) PUJ 2011 2 / 21

Working Hypothesis Oz

Relaciones

Relaciones son conjuntos de parejasA↔B es el conjunto de todas las relaciones (parejas) entre losconjuntos A y B.A←↔B Relacion totalA↔→B Relacion sobreyectivaA↔↔B Relacion total y sobreyectiva

( ) PUJ 2011 3 / 21

Working Hypothesis Oz

Funciones

Funciones totales: f ∈ A→Bpara todo elemento de A hay una pareja en f

parciales: f ∈ A 7→Bpara algunos elementos de a no hay pareja en f

inyectiva parcial: f ∈ A 7�B

inyectiva total: f ∈ A�B

sobreyectiva parcialA 7�B

sobreyectiva totalA�B

biyectiva: f ∈ A��B

( ) PUJ 2011 4 / 21

Working Hypothesis Oz

Relaciones y funciones: ejemplos

Funcion parcial f ∈ A 7→B

f = {(a1, b2), (a2, b1), (a3, b4)...)}( ) PUJ 2011 5 / 21

Working Hypothesis Oz

Relaciones y funciones: ejemplos

Funcion total f ∈ A→B

( ) PUJ 2011 5 / 21

Working Hypothesis Oz

Relaciones y funciones: ejemplos

Funcion parcial sobreyectiva f ∈ A 7�B

( ) PUJ 2011 5 / 21

Working Hypothesis Oz

Relaciones y funciones: ejemplos

sea A = {a, b, c}, B = {1, 2, 3, 4}, entoncesv ∈ A↔ B puede ser:

{(a, 1), (b, 1), (b, 3), (c, 4)}∅{a, 3), (b, 3), (c, 3)}

v ∈ A→ B puede ser:{(a, 1), (b, 1), (c, 3)} o tambien {a, 3), (b, 3), (c, 3)}pero NO: {a, 3), (b, 2), (c, 1), (b, 4))}

( ) PUJ 2011 6 / 21

Working Hypothesis Oz

Tipos de funciones: ejemplos

Cada carro que entra al parqueadero tiene un solo conductorconductor ∈ carros�� gente

Relacion entre carros y propietariospropietario ∈ CARRO→ PERSONA

Peatones:peatones = PERSONA\ran(propietario)

Inscripciones en materias:inscrito ∈ estudiantes←↔materias

Plan de cursos de una carrera:plan ∈ cursos 7→ carreras

( ) PUJ 2011 7 / 21

Working Hypothesis Oz

Operaciones sobre relaciones

Sean r ∈ A↔ B, q ∈ B ↔ C. Sea D ⊆ A

Evaluacion:

r[D] =

Segundos componentes de r tales queel primer componente esta en D

r = {(a, 1), (b, 1), (b, 3), (c, 4), (c, 2), (a, 4)}r[{a, c}] = {1, 2, 4}

Inverso

r−1 =Las parejas de r reversadasr = {(a, 1), (b, 1), (b, 3), (c, 4), (c, 2), (a, 4)}r−1 = {(1, a), (1, b), (3, b), (4, c), (2, c), (4, c)}

( ) PUJ 2011 8 / 21

Working Hypothesis Oz

Operaciones sobre relaciones (2)

Composicion

r ; q =

Parejas de dom(r) a ran(q)que pasan por ran(r)r = {(a, 1), (b, 1), (b, 3), (c, 4), (c, 2), (a, 4)}q = {(1, H), (5, J), (4, K), (1, W )}r ; q = {(a, H), (a, K), (a, W ), (c, K)}

Identidad

E C id =

Parejas construidas conelementos iguales de E

E = {2, 7, 9}E C id = {(2, 2), (7, 7), (9, 9)}

( ) PUJ 2011 9 / 21

Working Hypothesis Oz

Operaciones sobre relaciones (3)

Restriccion de dominio

D C r =

Parejas de r que tienenprimer componente en D

r = {(a, 1), (b, 1), (b, 3), (c, 4), (c, 2), (a, 4)}D = {a, c}D C r = {(a, 1), (a, 4), (c, 4), (c, 2)}

Restriccion de rango

r BD =

Parejas de r que tienensegundo componente en D

r = {(a, 1), (b, 1), (b, 3), (c, 4), (c, 2), (a, 4)}D = {1, 3}D B r = {(a, 1), (b, 1), (b, 3)}

( ) PUJ 2011 10 / 21

Working Hypothesis Oz

Operaciones sobre relaciones (3)

Restriccion de complemento de dominio

D C− r =

Parejas de r que no tienenprimer componente en D

r = {(a, 1), (b, 1), (b, 3), (c, 4), (c, 2), (a, 4)}D = {a, c}D C− r = {(b, 1), (b, 3)}

Restriccion de complemento rango

r B−D =

Parejas de r que no tienensegundo componente en D

r = {(a, 1), (b, 1), (b, 3), (c, 4), (c, 2), (a, 4)}D = {1, 3}r B−D = {(a, 4), (c, 2), (c, 4)}

( ) PUJ 2011 11 / 21

Working Hypothesis Oz

Operaciones sobre relaciones (4)

Composicion externa

r ◦ q =

Trıos: primer componente comun en r y en q

r = {(a, 1), (b, 1), (b, 3), (c, 4), (c, 2), (a, 4)}q = {(d, G), (b, J), (c, K), (b, W )}r ◦ q = {(b, (1, J)), (b, (1, W )), (b, (3, J)), (b, (3, W ))}

Proyeccion

prj1 =Funcion de pareja a elementor = {(a, 1), (b, 1), (b, 3), (c, 4), (a, 4)}prj1(r) = {((a, 1), 1), ((b, 1), 1), ((b, 3), 3), ((c, 4), 4), ((a, 4), 4)}

Tambien proyeccion al segundo elemento prj2

( ) PUJ 2011 12 / 21

Working Hypothesis Oz

Uso de relaciones: ejemplos

Hay personas que entran al parqueadero con carnet. Otras conuna boleta

Personas con boleta: pb (??)El carro de la persona con boleta:cpb (??)El carro de la persona con boleta es en el que entro:(??)

Personas con carnet: (??)carros de las personas con carnet: (??)

( ) PUJ 2011 13 / 21

Working Hypothesis Oz

Uso de relaciones: ejemplos

Hay personas que entran al parqueadero con carnet. Otras conuna boleta

Personas con boleta: pb⊆ ran(conductor)El carro de la persona con boleta:cpb (??)El carro de la persona con boleta es en el que entro:(??)

Personas con carnet: (??)carros de las personas con carnet: (??)

( ) PUJ 2011 13 / 21

Working Hypothesis Oz

Uso de relaciones: ejemplos

Hay personas que entran al parqueadero con carnet. Otras conuna boleta

Personas con boleta: pb⊆ ran(conductor)El carro de la persona con boleta:cpb∈ pb�� carrosEl carro de la persona con boleta es en el que entro:(??)

Personas con carnet: (??)carros de las personas con carnet: (??)

( ) PUJ 2011 13 / 21

Working Hypothesis Oz

Uso de relaciones: ejemplos

Hay personas que entran al parqueadero con carnet. Otras conuna boleta

Personas con boleta: pb⊆ ran(conductor)El carro de la persona con boleta:cpb∈ pb�� carrosEl carro de la persona con boleta es en el que entro:

cpb−1 ⊆ conductorPersonas con carnet: (??)carros de las personas con carnet: (??)

( ) PUJ 2011 13 / 21

Working Hypothesis Oz

Uso de relaciones: ejemplos

Hay personas que entran al parqueadero con carnet. Otras conuna boleta

Personas con boleta: pb⊆ ran(conductor)El carro de la persona con boleta:cpb∈ pb�� carrosEl carro de la persona con boleta es en el que entro:

cpb−1 ⊆ conductorPersonas con carnet: pc = gente\pbcarros de las personas con carnet: (??)

( ) PUJ 2011 13 / 21

Working Hypothesis Oz

Uso de relaciones: ejemplos

Hay personas que entran al parqueadero con carnet. Otras conuna boleta

Personas con boleta: pb⊆ ran(conductor)El carro de la persona con boleta:cpb∈ pb�� carrosEl carro de la persona con boleta es en el que entro:

cpb−1 ⊆ conductorPersonas con carnet: pc = gente\pbcarros de las personas con carnet: cpc = conductor−1\cpb

( ) PUJ 2011 13 / 21

Working Hypothesis Oz

Estructuras de datos: secuencia de tamano fijo

sets Vconstants naxiomsn ∈ N

variables ss ∈ 1..n→ V

Si la secuencia es de tamano variable: n debe ser una variable

( ) PUJ 2011 14 / 21

Working Hypothesis Oz

Estructuras de datos: lista lineal

Lista constante Lista variablesets Nconstants f, l n

axiomsf ∈ Nl ∈ Nn ∈ N\{l}��N\{f}∀S. S ⊆ n[S]⇒ S = ∅

sets N

variables f, l, nf ∈ Nl ∈ Nn ∈ N\{l}��N\{f}∀S. S ⊆ n[S]⇒ S = ∅

( ) PUJ 2011 15 / 21

Working Hypothesis Oz

Estructuras de datos: anillo

sets Nconstants nxt

axiomsnxt ∈ N��N

Problema:

( ) PUJ 2011 16 / 21

Working Hypothesis Oz

Anillo: propiedades

( ) PUJ 2011 17 / 21

Working Hypothesis Oz

Estructuras de datos: arbol

sets Nconstants r f

axiomsr ∈ Nf ∈ N\{r}→N

( ) PUJ 2011 18 / 21

Working Hypothesis Oz

Estructuras de datos: arbol (2)

El problema: posibilidad de ciclosCuando hay ciclos en un subgrafo con nodos en S:∀x. x ∈ S ⇒ x ∈ f−1[S]o sea,S ⊆ f−1[S] (1)Si S = ∅ lo anterior se cumple!

No hay ciclos cuando:el unico conjunto S que cumple (1) es el conjunto vacıo

( ) PUJ 2011 19 / 21

Working Hypothesis Oz

Estructuras de datos: grafo

Un grafo es una relacion entre nodos: r ∈ S↔ SLa clausura transitiva cl de la relacion r:

La relacon r esta incluida en cl

la composicion de cl con r esta incluida en cl

La relacion cl es la mas pequena que cumple lo anteriorr ∈ S↔ Scl ∈ S↔ Sr ⊆ clcl; r ⊆ cl∀p. r ⊆ p ∧ p : r ⊆ p⇒ cl ⊆ p

( ) PUJ 2011 20 / 21

Working Hypothesis Oz

Refinamiento alterno al restaurante

La cocina despacha los pedidos en el orden en que se pidieron

( ) PUJ 2011 21 / 21