Desarrollo formal de Software Notación en la Metodología...
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 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
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