Você está na página 1de 48

Universidade Estadual de Maringá

Centro de Tecnologia
Departamento de Informática

MÉTODOS FORMAIS I

Notação Z

Prof. Airton Marco Polidório

MÉTODOS FORMAIS
 Baseados em conceitos matemáticos (matemática discreta, lógica, teoria dos
conjuntos, estruturas matemáticas (ex. grafos)).

Métodos Formais, aplicados aos projetos de software, não ajudam a tomar


as decisões inerentes ao projeto. Métodos formais estabelecem mecanismos
para se escrever as decisões tomadas, ou seja apenas oferece mecanismos
para explorar as conseqüências das decisões tomadas.
Disciplina: Métodos Formais I 1
Prof. Airton Marco Polidório
Departamento de Informática
Universidade Estadual de Maringá
VISÃO DA ENGENHARIA DE SOFTWARE
Hoje, necessitamos:
 Desenvolver novos softwares rapidamente.
 Desenvolver software com custos minimizados.
 Desenvolver software que possam ser adaptados para novas
circunstâncias.

Isto exige:
 Trabalho cooperativo - envolvendo vários desenvolvedores, ou
vários grupos de desenvolvedores.
 Decomposição do sistema em módulos (como dividir?).
 Reutilização de módulos já desenvolvidos e testados.

Problemas a enfrentar:
 Os clientes: (geralmente: 1) não sabem o que querem; 2) mudam
freqüentemente de idéia.).
 Como implementar os requisitos do cliente:
 Avaliação de hardware.
 Avaliação das dificuldades para programação.
 Avaliação da linguagem de programação.
 Avaliação das necessidades de futuras modificações, etc.

MODELAGEM MATEMÁTICA DE SISTEMAS

OBJETIVO: definir um modelo matemático de um sistema.

MÉTODOS SEMI-FORMAIS
 Análise estruturada (DFD,...) possui sintaxe formal, mas a descrição do
processo é informal.
 Não descreve um modelo matemático do sistema.

MÉTODOS FORMAIS
Disciplina: Métodos Formais I 2
Prof. Airton Marco Polidório
Departamento de Informática Refinamentos

Universidade
RequisitosEstadual de Maringá esp.
Análise
da especifi- Implementação
cação
Informal formal
(elo fraco)
MF C
MF MF
 Regras para gerar a descrição.
 Regras de verificação.
 Descreve um modelo matemático do sistema.

CARACTERÍSTICAS

 Base teórica para descrever com exatidão um grande número de


possibilidades de fenômenos relacionados com a transmissão e a
transformação das informações - no nosso caso, para projetar
sistemas de informação automáticos (uso em computadores).
 Uniformização na forma de se escrever projetos de sistemas
(eliminação dos aspectos subjetivos na escrita do projeto).
 Concisão.
 Semântica bem definida.
 Provável.

 problema exemplo: Implementar uma rotina que calcule


a média dos números armazenados em uma lista.
MODELAGEM MATEMÁTICA DE SISTEMAS

CLASSIFICAÇÃO DOS MÉTODOS de MMS

1. BASEADOS EM MODELOS

Fornece uma descrição abstrata explícita sobre estados e operações que


transformam os estados. Não oferece meios explicitos para especificar
concorrências (Ex. Z).

2. BASEADOS EM ÁLGEBRA DE PROCESSOS

Disciplina: Métodos Formais I 3


Prof. Airton Marco Polidório
Departamento de Informática
Universidade Estadual de Maringá
Fornece meios explícitos para especificar concorrência. O comportamento dos
processos é representado através de comunicações observáveis. (Ex. CCS, CSP,
LOTOS).

3. BASEADOS EM LÓGICA

Fornece meios para análises de relações causais e aspectos relacionados à


temporização. (Ex. Lógica Modal de Ações).

4. BASEADOS EM REDES

Fornece meios para modelar concorrências através de mecanismos implícitos de


fluxos de tokens na rede. Este fluxo é controlado por condições que habilitam a
realização de tarefas (eventos). (Ex. Redes de Petri).

NOTAÇÃO Z

O que é?

 Notação matemática para ser usada em especificações formais de


software.
 Usada para definir um modelo matemático do sistema.
 Baseada em matemática discreta.

problema exemplo: Implementar uma rotina que calcule a média dos


números armazenados em uma lista.

? Número de elementos.
Disciplina: Métodos Formais I 4
Prof. Airton Marco Polidório
Departamento de Informática
Universidade Estadual de Maringá
? Tipo do dado (inteiro, real (precisão)).
? Valores máximos e mínimos.
? Média de uma lista vazia.
? Valor Médio, ? Mediana, ? Moda, ? Média Aritmética
(? simples, ? ponderada).
? Tipo do Resultado.
Sistema
ùýýAvgýýýýýý
Biblioteca
úx? : seq ¤
úa! : ¤
Base de dados ûýýýýýýýýý Base de dados
de livros ú length(x?) > 0 Û de usuários
ú a! = div(sum(x?), length(x?))
ú length(x?) = 0 Û
ú a! = 0
üýýýýýýýýý

Operador

NOTAÇÃO Z: Um exemplo

UM SISTEMA EXEMPLO : Especificação formal de um sistema


para biblioteca.

Disciplina: Métodos Formais I 5


Prof. Airton Marco Polidório
Departamento de Informática
Universidade Estadual de Maringá
REQUISITOS
 Existe um número máximo de livros que um leitor pode ter em
um dado momento.
 O operador deve ser capaz de:
 Inserir livro.
 Remover livro.
 Inserir Leitor.
 Remover Leitor.
 Realizar empréstimo de livro.
 Realizar retorno de livro.

NOTAÇÃO Z: Um exemplo

ESPECIFICAÇÃO FORMAL

1. Definição dos tipos


[COPIA, LIVRO, LEITOR]
[RESPOSTA]
RESPOSTA ::= LivroInserido|LivroNovo|LeitorJaTemMax|
LeitorNaoRegistrado|CopiaEmUso|Ok
2. Definição de constantes
|max_emprestimos : £

2. Definição do estado do sistema


ùýýLivrosýýýýýý
úestoque : COPIA © LIVRO
úemprestado: COPIA © LEITOR } Definições
Disciplina: Métodos Formais I 6
Prof. Airton Marco Polidório
Departamento de Informática
Universidade Estadual de Maringá
údisponivel: ¡COPIA
ûýýýýýýýýý
ú disponivel ¿ dom emprestado = dom estoque } Restrições
ú disponivel ¾ dom emprestado = ¸
üýýýýýýýýý
ùýýLeitoresýýýýýý
úleitor : ¡LEITOR
üýýýýýýýýýýýýý

ùýýBibliotecaýýýýýý
úLivros
úLeitores
údisponivel: ¡COPIA
ûýýýýýýýýý
ú Õl: LEITOR × #(emprestado à {l}) < max_emprestimos
ú ran emprestado º leitor
üýýýýýýýýý

Disciplina: Métodos Formais I 7


Prof. Airton Marco Polidório
Departamento de Informática
Universidade Estadual de Maringá
NOTAÇÃO Z: Um exemplo

3. Inicialização do sistema

ùýýInitBibliotecaýýýýýý
úBiblioteca’
ûýýýýýýýýý
ú leitor’ = ¸
ú emprestado’ = ¸
ú disponivel’ = ¸
üýýýýýýýýý

4. Operações

ùýýEmprestimoýýýýýý
úóBiblioteca
úc? : COPIA
úl? : LEITOR
ûýýýýýýýýý
ú c? ³ disponivel
ú r? ³ leitor
ú emprestado’ = emprestadoÉ {c?§r?}
ú estoque’ = estoque
ú leitor’ = leitor
üýýýýýýýýý

Provar que: û disponivel’ = disponivel \ {c?}


c? ³ dom emprestado’
dom emprestado’¾ disponivel’ = ¸
 c? ´ disponivel’

NOTAÇÃO Z: Um exemplo
Disciplina: Métodos Formais I 8
Prof. Airton Marco Polidório
Departamento de Informática
Universidade Estadual de Maringá
ùýýMaximoEmprestadoýýýýýý
úôBiblioteca
úl? : LEITOR
úresp! : RESPOSTA
ûýýýýýýýýý
ú l? ³ leitor
ú #emprestado Ã{l?}=max_emprestimos
ú estoque’ = estoque
ú resp! = LeitorJaTemMax
üýýýýýýýýý
ùýýNaoRegistradoýýýýýý
úôBiblioteca
úl? : LEITOR
úresp! : RESPOSTA
ûýýýýýýýýý
ú l? ´ leitor
ú resp! = LeitorNaoRegistrado
üýýýýýýýýý
ùýýJaEmprestadoýýýýýý
úôBiblioteca
úc? : COPIA
úresp! : RESPOSTA
ûýýýýýýýýý
úc? ³ dom emprestado
ú resp! = CopiaEmUso
üýýýýýýýýý

EmprestimoCompleto á Emprestimo Ú EmprestimoErro


EmprestimoErro á MaximoEmprestimo Ú NaoRegistrado Ú
JaEmprestado

ùýýQuemTemýýýýýý
úôBiblioteca
úc? : COPIA
úl? : LEITOR
ûýýýýýýýýý
ú c? ³ dom emprestado
ú l! = emprestado c?
üýýýýýýýýý
Exercícios
Métodos Formais I
Disciplina: Métodos Formais I 9
Prof. Airton Marco Polidório
Departamento de Informática
Universidade Estadual de Maringá
1. O que são e em que se baseiam os métodos formais aplicados à modelagem de sistemas?
2. Quais são os elementos mais comuns da matemática usados pelos métodos formais? Dê uma
definição, resumida, de cada um desses elementos.
3. Quais são as vantagens da aplicação de métodos formais na modelagem de sistemas?
4. Em que se baseia a notação Z?
5. Em Z, qual é a abstração mais geral quando se definem os tipos de dados?
6. Quais os significados da definição do Estado de um sistema?
7. O que é redundância quando se modela sistemas? (em que casos ela pode ser considerada um
benefício?)
8. Dentro da concepção de Z, o que significam: a) o produto cartesiano; b)relações e; c) funções.
Dê exemplos gráficos de cada um.
9. O que significa o termo: Abordagem Incremental de Z?
10. Discuta o termo: Mudança de Estado. Por que ele é necessário?
11. Qual a semântica de se incluir um esquema com a notação ô? E com a notação ó? Quais as
operações envolvidas em cada um desses casos? O que significam?
12. Faça um esboço gráfico fiel do estado Agenda do Sistema Agenda de Aniversário proposto por
Spivey.

Disciplina: Métodos Formais I 10


Prof. Airton Marco Polidório
Departamento de Informática
Universidade Estadual de Maringá
Respostas

1. O que são e em que se baseiam os métodos formais aplicados à modelagem de sistemas?


A palavra Método pode ser definida como sendo um conjunto de técnicas aplicadas ao
desenvolvimento de um processo. No nosso caso, queremos desenvolver sistemas (processos) que
possam ser tratados em computadores. O desenvolvimento de sistemas computacionais podem ser
divididos em várias fases: levantamento do problema, análise dos requisitos, especificação do
sistema, implementação (programação), testes, validação e manutenção.
Na fase de especificação do sistema, devemos nos preocupar em descrever o que (ou quais coisas)
o produto final (software) deverá atender.
Esta descrição pode ser totalmente informal, ou seja: usando uma base de descrição não muito
bem definida (textos em linguagem comum e alguns tipos de diagramas) a qual , dificilmente
conduzirá a um desenvolvimento científico do sistema. Ou, pode ser estruturada (semi-formal) que
apesar de se utilizar de um conjunto de símbolos bem definidos, geralmente na forma de
diagramas, a forma da descrição do processo tem um alto caráter subjetivo no significado das
propriedades do sistema (o entendimento pleno depende de quem fez e de como foi feito). Por fim,
a descrição do sistema pode ser feita formalmente. Os métodos formais definem matematicamente
(estrutura e funcionalidade) os elementos da linguagem descritiva, os quais permitem o tratamento
de uma classe substancial de problemas de forma concisa. Permitem, de forma mais natural,
adotar uma abordagem modular no desenvolvimento da descrição do sistema (decomposição +
composição + reutilização) e devido a tratamento matemático, portanto sem ambigüidades, que
esta forma de especificar sistemas permite é possível estabelecer mecanismos de interação com,
por exemplo, linguagens de programação. Como a matemática é uma ciência exata, é possível
submeter qualquer descrição formal (especificação) à prova permitindo assim, verificar a sua
consistência de equivalência semântica em diferentes níveis de abstração (diferentes níveis de
refinamentos do sistema).

2. Quais são os elementos mais comuns da matemática usados pelos métodos formais? Dê uma
definição, resumida, de cada um desses elementos.

Matemática discreta:
Teoria dos conjuntos
Conjunto, relações, funções, seqüências, ...
Cálculo de predicados
Lógica booleana, quantificadores, indução, ...
Estruturas Matemáticas
Grafos, árvores, ...

3. Quais são as vantagens da aplicação de métodos formais na modelagem de sistemas?


Concisão, precisão, abstração, prova matemática.

4. Em que se baseia a notação Z?


Teoria dos Conjuntos, cálculo de predicados e cálculo de esquemas.

5. Em Z, qual é a abstração mais geral quando se definem os tipos de dados?


Disciplina: Métodos Formais I 11
Prof. Airton Marco Polidório
Departamento de Informática
Universidade Estadual de Maringá
No caso mais amplo, os tipos de dados são associados com nomes de conjuntos (representando
entidades) com a possibilidade universal

6. Quais os significados da definição do Estado de um sistema?

O Estado de um sistema têm dois significado:


ESTÁTICO: que comporta todas as definições e relações entre os tipos (entidades) declaradas.
DINÂMICO: que é a semântica das definições, relações e operações observáveis no sistema.

7. O que é redundância quando se modela sistemas? (em que casos ela pode ser considerada um
benefício?)
O termo redundância significa insistência na repetição. Quando se constrói o modelo matemático
de sistemas se utilizam símbolos que, individualmente, podem ter vários significados precisos (sem
ambigüidade entre si) em uma mesma cláusula. Alguns desses significados são observáveis
explicitamente outros, as vezes, são mais difíceis de serem vistos (e as vezes de serem entendidos).
Pode-se então, reescrever esses significados implícitos (redundância) de uma forma mais clara.
Nessas circunstâncias a redundância ajuda no entendimento da especificação do sistema.

8. Dentro da concepção de Z, o que significam: a) o produto cartesiano; b)relações e; c) funções.


Dê exemplos gráficos de cada um.

Produto cartesiano, relações e funções são elementos da matemática discreta, mais precisamente
da teoria dos conjuntos. Por definição, conjunto é uma coleção de elementos não repetidos de
elementos não repetidos que têm pelo menos uma propriedade em comum. Na especificação de
sistemas é comum querermos relacionar elementos de dois conjuntos distintos. O produto
cartesiano, as relações e as funções são conjuntos de relacionamentos ( de pares ordenados), que
permitem construir uma ligação entre elementos, geralmente, incompatíveis.

9. O que significa o termo: Abordagem Incremental de Z?


decomposição + composição + reutilização

10. Discuta o termo: Mudança de Estado. Por que ele é necessário?

Todo sistema é composto de objetos que representa o seu estado, de operações de entrada e saída
de valores e de operações que modificam esses valores. Assim, mudar o estado de um sistema
significa oferecer, ao sistema, a possibilidade de alterar o conteúdo dos valores que ele deve tratar
e manipular seja pela inserção de mais elementos (expansão), subtração de elementos (contração)
ou simplesmente pela alteração dos valores dos elementos existente (retificação)

11. Qual a semântica de se incluir um esquema com a notação ô? E com a notação ó? Quais as
operações envolvidas em cada um desses casos? O que significam?
Sobre o estado atual de um sistema pode-se realizar dois tipos de operações: 1) consultar o estado
atual e; 2) modificar o estado atual (expansão, contração ou retificação). O estado do sistema é
definido em um conjunto de esquemas o quais, dentro da visão de abordagem incremental, podem
ser incluídos dentro de outros esquemas. Quando um esquema S 1 é incluído em um esquema S
Disciplina: Métodos Formais I 12
Prof. Airton Marco Polidório
Departamento de Informática
Universidade Estadual de Maringá
precedido pela notação ó, ou seja óS1, significa que o esquema S1 será incluído duas
vezes no esquema S: uma vez com a decoração (’), significando o próximo estado de S 1 e, uma
outra vez sem a decoração (’), significando o estado atual de S 1. Isto permite consultar o estado
atual de S1 e gerar um novo estado de S 1 chamado S1’. Com a notação ô ocorre quase a mesma
coisa, exceto que na parte predicativa do esquema S é incluída a operação  S1’ =  S1, a qual
significa que o novo estado de S 1 gerado (S1’) é igual ao anterior (S1), não importado quais as
operações que S1 sofreu em S.

12. Faça um esboço gráfico fiel do estado Agenda do Sistema Agenda de Aniversário proposto por
Spivey.

Disciplina: Métodos Formais I 13


Prof. Airton Marco Polidório
Departamento de Informática
Universidade Estadual de Maringá
NOTAÇÃO Z
LÓGICA BOOLEANA: REVISÃO

LÓGICA: Cálculo de proposições e predicados.

Para nós, a lógica de proposições é necessária para fazer asserções sobre


propriedades dos objetos em domínios de aplicações onde o software é o
modelo.

 Uma proposição é uma sentença que produz um dos valores verdade:


verdade (TRUE) ou falso (FALSE), independente da interpretação.

PROPOSIÇÕES VALOR

7>3 TRUE
4=5 FALSE
{3, 4}  {3, 4, 6} TRUE
O sol está brilhando ?
 Um predicado é uma fórmula que, quando suas variáveis são associadas
com valores (de tipos apropriados) se transforma numa proposição
(depende da interpretação).
x >7
y=z–7
S1  S2

CONECTIVOS LÓGICOS: Proposições e predicados podem ser


formados através do relacionamento lógico com outras proposições e/ou
predicados. Este relacionamento é feito com os operadores ou conectivos
lógicos:
 not
 and
 or
 implies (if ... then)
 equivalence (if only if)

Disciplina: Métodos Formais I 14


Prof. Airton Marco Polidório
Departamento de Informática
Universidade Estadual de Maringá
NOTAÇÃO Z
LÓGICA BOOLEANA: REVISÃO

Exemplo: se P, Q e R são proposições/predicados, então pode-se construir


expressões:
P PQ
P Q PQ
PQ RQP
P  (Q  R) (P  Q)  (Q  P)

A precedência (convenção) entre os operadores é a ordem em que eles


aparecem da esquerda para a direita. Assim,
P1  P2  P3  P4  P5
é o mesmo que
((((P1)  P2)  P3)  P4)  P5)

TABELA VERDADE
Os significados dos conectivos lógicos são definidos pela tabela verdade

P P

TRUE FALSE
FALSE TRUE

P Q P Q PQ PQ P Q

TRUE TRUE TRUE TRUE TRUE TRUE


TRUE FALSE FALSE TRUE FALSE FALSE
FALSE TRUE FALSE TRUE TRUE FALSE
FALSE FALSE FALSE FALSE TRUE TRUE

Disciplina: Métodos Formais I 15


Prof. Airton Marco Polidório
Departamento de Informática
Universidade Estadual de Maringá
NOTAÇÃO Z
LÓGICA BOOLEANA E QUANTIFICADORES: REVISÃO

EQUIVALENTE LÓGICO ()


Dois ou mais predicados são logicamente equivalentes se tiverem o mesmo
valor lógico para uma mesma interpretação.

Alguns Equivalentes Lógicos

1. P  (P)
2. P  P  P
3. P  P  P
4. P  Q  ((P)  (Q))
5. P  Q  ((P)  (Q))
6. R  (P  Q)  (R  P)  (R  Q)
7. R  (P  Q)  (R  P)  (R  Q)
8. P  Q  Q  P
9. P  Q  Q  P
10.P  Q  Q  P
11.R  (P  Q)  (R  P)  Q
12.R  (P  Q)  (R  P)  Q
13.(P  Q)  (Q  R)  P  R
14.(P  Q)  (Q  P)  P  R
15.P  Q  P  Q  (P  (Q))
16.P  (P)  TRUE
17.P  (P)  FALSE
18.P  FALSE  FALSE
19.P  TRUE  P
20.P  FALSE  P
21.P  TRUE  TRUE
22.P  P  P  P  P

NOTAÇÃO Z
Disciplina: Métodos Formais I 16
Prof. Airton Marco Polidório
Departamento de Informática
Universidade Estadual de Maringá
LÓGICA BOOLEANA E QUANTIFICADORES: REVISÃO

ALGUMAS DEFINIÇÕES

TAUTOLOGIA: proposições ou predicados que têm valor verdade TRUE


para qualquer interpretação. Exemplo: P  (P) e P  P

CONTRADIÇÃO: proposições ou predicados que têm valor verdade


FALSE para qualquer interpretação. Exemplo: P  (P) e TRUE  FALSE

CONTINGENTE: proposições ou predicados que têm valor verdade


dependente da interpretação. Exemplo: P e P  Q

INTERPRETAÇÃO: Função que associa a cada variável lógica um valor


verdade.

QUANTIFICADORES

Existencial – 
Universal – 

Seja D/PE uma sentença de cálculos onde: D representa as declarações; P


representa os predicados e; E representa uma expressão a ser quantificada.

 {D/PE} representa o conjunto de valores assumidos pela expressão E,


quando as variáveis declaradas em D satisfazem as restrições contidas
em P. Exemplos:
{x: £ / xã5 × x2} = {0, 1, 4, 9, 16, 25}
{x: £ / xã5} = {0, 1, 2, 3, 4, 5}
{x: £ × x2} = {0, 1, 4, 9, 16, 25, ...}
{x: £} = {0, 1, 2, 3, 4, 5, 6, ...}

NOTAÇÃO Z

LÓGICA BOOLEANA E QUANTIFICADORES: REVISÃO

Disciplina: Métodos Formais I 17


Prof. Airton Marco Polidório
Departamento de Informática
Universidade Estadual de Maringá
 A sentença de cálculo D/PE pode ser precedida por um quantificador
( ou ). Quando isto ocorre é produzido como resultado um dos valores
lógicos (TRUE ou FALSE) e o conjunto de valores referentes a
expressão E, respeitadas as restrições implícitas contidas nas
declarações, D, e as restrições explícitas contidas nos predicados.

 D/PE significa: Existe pelo menos um elemento que satisfaz D e P


para o qual a expressão E é verdadeira?. Exemplos:
x: £ / xã5 × x 2 = TRUE e {x: £ / xã5 × x 2} = TRUE e {0, 1, 4, 9,
16, 25}
x: £ / xã5 ×x= x2 = TRUE e {x: £ / xã5 × x=x2} = TRUE e {0, 1}
x: £ / xã5 ×x2 >100 = FALSE e {x: £ / xã5 × x>100} = FALSE e
{}

 D/PE significa: para todo elemento que satisfaz D e P a expressão E é


verdadeira? Exemplos:
x: £ / xã5 × x2ã25 = TRUE e {x: £ / xã5 × x2ã25} = TRUE e {0, 1, 4, 9,
16, 25}
x: ¤ / xã5 × x2ã25 = FALSE e {x: £ / xã5 × x2ã25} = FALSE e {}

Disciplina: Métodos Formais I 18


Prof. Airton Marco Polidório
Departamento de Informática
Universidade Estadual de Maringá
Exercícios

1. Escreva a tabela verdade para as seguintes sentenças:


a) (P)  (Q)
b) (P  Q)  ((Q  P))
c) P  Q  R

2. Quais das seguintes sentenças são tautologias?


a) (P  Q)  (P  Q)
b) P  (Q  P)
c) (Q  R)  (R  Q)
d) (P  (Q))  (Q  (R))  (R  (P))
e) (P  (Q  R))  (P  (Q)  R)

3. Mostre, através da álgebra booleana, os casos de tautologias do exercício 2).

4. Mostre que os seguintes pares de sentenças são logicamente equivalentes:


a) (P  Q); ((Q)  (P))
b) ((P  Q)  R); ((P  R)  (Q  R))
c) ((P  (Q))  (R)); (R  (Q  P))
d) ((P  Q)  R); (P  (Q)  R)

5. Seja “+” um operador lógico cujo significado é dado pela seguinte tabela verdade:
P Q P+Q
TRUE TRUE FALSE
TRUE FALSE TRUE
FALSE TRUE TRUE
FALSE FALSE TRUE
Dê uma expressão logicamente equivalente à P + Q

6. O que significa a sentença: (n: £ / x>5 × n2>100). Escreva-a com um


quantificador existencial.

NOTAÇÃO Z
TEORIA DOS CONJUNTOS

CONJUNTO
Coleção de objetos distintos com propriedades em comum e sem ordem
definida.
Disciplina: Métodos Formais I 19
Prof. Airton Marco Polidório
Departamento de InformáticaA²B
Universidade Estadual de Maringá
1× a
b
2× c
{a, a, b} = {a, b}
{b, c, a} = {a, b, c}
B = {x: £ / x//2 = 0}

CONJUNTO VAZIO (ou nulo):  ou {} – conjunto que não possui elementos.

SUBCONJUNTO (): A  B  (a  A  a  B)

CONJUNTOS DISJUNTOS: (a  A  a  B)

CONJUNTO POTÊNCIA: ¡(A) = {x/x  A}


Se A = {a, b}, então¡(A) = {{a}, {b}, {a, b}, }
PRODUTO CARTESIANO (A²B)
É o conjunto de todos os pares ordenados (§) formados pelos elementos dos
conjuntos A e B, onde o primeiro elemento de cada par ordenado pertence
ao conjunto A e o segundo ao B.

A²B ={(a, b)/ a  A  b  B}

EXEMPLO: A = {1, 2} e B = {a, b, c}

A²B = {(1, a), (1, b), (1, c), (2, a), (2, b), (2,
c)}
ou
A²B = {1§a, 1§b, 1§c, 2§a, 2§b, 2§c}

NOTAÇÃO Z
TEORIA DOS CONJUNTOS

RELAÇÕES ¡(A²B) ou (A¨B) (conjuntos de pares ordenados)


r  A²B ou r  ¡(A²B)

NOTAÇÃO e TERMINOLOGIA

Sejam: [AUTOR] o conjunto universo de autores de livros


AUTOR
Disciplina: Métodos Formais AUTOR
I TITULO
TITULO 20
escreve
escreve
dom
Prof. Airton Marco Polidório u u
Departamentoescreveu
de Informática
    
Universidade Estadual de Maringá
   
    onde A é o conjunto
    origem e B o conjunto
 
 
  destino
Origem Destino
[TITULO] o conjunto universo de títulos de livros

escreveu: ¡(AUTOR ² TITULO)


ou
escreveu: AUTOR ¨ TITULO

 PERTINÊNCIA: a r b = a §b ³ r
Guimaraes Rosa escreveu Sagarana = Guimaraes Rosa §
Sagarana ³ escreveu
a: AUTOR; t: TITULO; a escreveu t
 DOMÍNIO: dom r = {a: A/ Öb: B × a r b}

NOTAÇÃO Z
TEORIA DOS CONJUNTOS
onde A é o conjunto
 IMAGEM: ran = { b: B / Öa: A × a r b} origem e B o conjunto
destino

AUTOR TITULO
escreve
u ran escreveu
  
 
 
 
A  B
f  
Disciplina: Métodos Formais I 21
Prof. Airton Marco Polidório 
Origem Destino
Departamento de Informática   
 
Universidade Estadual de Maringá
 
 

 

Origem Destino
 INVERSA: r-1 = {a: A; b: B/ a r b × b§a}

OBS: como relações são conjuntos, pode-se ter relações vazias e ainda,
fazer operações de conjuntos (, , , , ...).

FUNÇÕES

Uma função (f) é uma relação que possui elementos de seu domínio
envolvidos em um único para ordenado.

Disciplina: Métodos Formais I 22


Prof. Airton Marco Polidório
Departamento de Informática
Universidade Estadual de Maringá
NOTAÇÃO Z
TEORIA DOS CONJUNTOS

FUNÇÃO PARCIAL (©): O domínio da função é um subconjunto do


conjunto origem (dom f  A).

A B
f : A©B

  
 
 
  ran
dom f
f

 
Origem Destino

FUNÇÃO TOTAL (ª): Todos os elementos do conjunto origem fazem parte
do domínio da função (dom f = A).

A B
f : AªB

 
 
 
  ran
dom f
f
 
Origem Destino

FUNÇÃO INJETORA PARCIAL («): elementos do conjunto destino
estão envolvidos, no máximo, com um par ordenado. Entretanto, nem todos
os elementos do conjunto origem pertencem ao domínio da função.
A B
f : A«B

  
 
  
  ran
 dom f
f
 
Origem Destino

NOTAÇÃO Z
A A A B B B
Disciplina: Métodos Formais I f :f A: BA®B
f : A¬B 23
Prof. Airton Marco Polidório
Departamento de Informática     
     
Universidade Estadual de Maringá
       
   
ranran ran
  dom
f f f
 domdom
f
f f  
Origem
OrigemOrigem Destino
DestinoDestino

TEORIA DOS CONJUNTOS

FUNÇÃO INJETORA TOTAL (¬): é uma função injetora e total.

FUNÇÃO SOBREJETORA PARCIAL (®): todos os elementos do


conjunto destino fazem parte da função (ran f = B).

FUNÇÃO SOBREJETORA TOTAL (): é uma função que é sobrejetora e


total (ran f = B) e (dom f = A).

AUTOR TITULO EDITORA

escreveu editou

NOTAÇÃO

Z 
 TEORIA DOS
 CONJUNTOS 
  
A  B
Disciplina: Métodos Formais I f : A¯B 24
Prof. Airton Marco Polidório
Departamento de Informática 
 escreveu À editou

Universidade Estadual de Maringá
  

  ran 
 dom f 
f
Origem Destino
FUNÇÃO BIJETORA (¯): função que é injetora total e sobrejetora e total
(ran f = B) e (dom f = A) e (f-1 é ¯).

COMPOSIÇÃO DE RELAÇÕES (À):


Seja r: X¨Y; s: Y¨Z então,
r À s = {x: X; z: Z / (Öy: Y × (x r y Ù y s z)) × x §z}

Disciplina: Métodos Formais I 25


Prof. Airton Marco Polidório
Departamento de Informática
Universidade Estadual de Maringá
NOTAÇÃO Z
TEORIA DOS CONJUNTOS

RESTRIÇÃO E SUBTRAÇÃO DO DOMÍNIO E DA


IMAGEM

RESTRIÇÃO DO DOMÍNIO (Â)


Seja: r: A ¨ B e C º A
Então: C Â r = {a: C; b: B/ a r b × a § b}
Ou C Â r = (C ² B) ¾ r
AUTOR escreve TITULO
u
A¨B

escreveu
  
C  
 
 

 

Origem Destino

SUBTRAÇÃO DO DOMÍNIO (Ä)


Seja: r: A ¨ B e C º A
Então: C Ä r = {a:A; b: B/a ´ C Ù a r b × a § b}
Ou C Ä r = r\(C ² B)

AUTOR escreve TITULO


u
A¨B

  
C  
 
 

CÄ  
escreveu

Origem Destino

NOTAÇÃO Z
TEORIA DOS CONJUNTOS
AUTOR escreve TITULO
u
Disciplina: Métodos Formais I A¨B 26
escreveu Å
Prof. Airton Marco Polidório C

Departamento de Informática  
 
Universidade Estadual de Maringá
   C
 

 

  

 escreveu
escreve à C 
AUTOR
Origem
Origem u TITULO
C
Destino
Destino
RESTRIÇÃO E SUBTRAÇÃO DO DOMÍNIO E DA
IMAGEM

RESTRIÇÃO DA IMAGEM (Ã)


Seja: r: A ¨ B e C º B
Então: r à C = {a: A; b: C/ a r b × a § b}

SUBTRAÇÃO DA IMAGEM (Å)


Seja: r: A ¨ B e C º B
Então: r Å C = {a: A; b: B/ b ´ C Ù a r b × a § b}

Disciplina: Métodos Formais I 27


Prof. Airton Marco Polidório
Departamento de Informática
Universidade Estadual de Maringá
NOTAÇÃO Z
TIPO DE DADO

TIPO = Conjunto homogêneo de dados

LIVRO

FICÇÃO OUTROS

FICÇÃO e OUTROS são de tipos diferentes. Portanto, o tipo LIVRO não


pode ser obtido pela união

LIVRO = FICÇÃO  OUTROS

DECLARAÇÃO DE VARIÁVEIS

v : T;
v1, v2, ..., vn : T;

 o tipo de uma variável é imutável durante o processo;


 à variável v só pode ser atribuído valor(es) pertencente(s) ao conjunto
associado com o tipo T;
 o valor de uma variável não pode ser alterado durante o processo.

x, y : £;

x=1

x=2
y = {1}

Disciplina: Métodos Formais I 28


Prof. Airton Marco Polidório
Departamento de Informática
Universidade Estadual de Maringá
NOTAÇÃO Z
DEFINIÇÃO DE TIPOS (em Z)

DENOTAÇÃO

[ LEITOR ]
[ LIVRO ]

ou [LIVRO, LEITOR]

ENUMERAÇÃO

YesNo ::= yes | no

Ou

[YesNo]
yes : YesNo;
no : YesNo;
yes µ no
YesNo = {yes, no}

RESPOSTA ::= SUCESSO | NAO_DISPONIVEL | EMPRESTADO |


NAO_EXISTENTE

LIVRO ::= FICCAO | OUTROS

CONJUNTO POTÊNCIA

l : ¡LEITOR

Disciplina: Métodos Formais I 29


Prof. Airton Marco Polidório
Departamento de Informática
Universidade Estadual de Maringá
NOTAÇÃO Z
DEFINIÇÃO DE TIPOS (em Z)
Constantes: ..., -2, -1, 0, 1, 2, ...
TIPO INTEIRO Soma: a + b
Diferença: a - b
x : ¤; Produto: a * b
y : ¡¤; Quociente: a / b, bµ0

Resto: a // b
TIPO NATURAL Exponenciação: a b, b³£
Operadores relacionais: ( =, <, >, µ, ã,
x : £; ä)
y : ¡£;

DEFINIÇÕES GENÉRICAS

EQUIVALÊNCIA SINTÁTICA (= =)

X © Y = = {f: X ¨ Y | (Õx: X; y1, y2: Y ×


(x § y1) ³ f Ù (x § y2) ³ f Û y1 = y2}

X ª Y = = {f: X © Y | dom f = X}

SmallSet[X] = = { xs: ¡X | #xs ã 1}


SmallSet[£] = {¸, {0}, {1}, {2}, ..., {100}, ...}

ESQUEMAS GENÉRICOS

þÿÿÿ[X]ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ þÿÿÿ[X, Y]ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ


ú _º_, _¹_ : ¡X ¨ ¡X ú _§_ : X ² X
ûýýýýýýýýýýýýýýýýýýýýýý ûýýýýýýýýýýýýýýýýý
úÕs, t : ¡X × úÕx : X; y: Y × x § y = (x, y)
ú (s º t Ü(Õx: X × x ³ s Û x ³ üýýýýýýýýýýýýýýýýýýýýýý
t) Ù
ú (s ¹ t Ü(s º t Ù s µ t))
üýýýýýýýýýýýýýýýýýýýýýýýý

Disciplina: Métodos Formais I 30


Prof. Airton Marco Polidório
Departamento de Informática
Universidade Estadual de Maringá
NOTAÇÃO Z
DEFINIÇÃO DE TIPOS (em Z)

DESCRIÇÃO AXIOMÁTICA

úDECLARAÇÕES
ûýýýýýýýýýýýýýýýýýýýýýý
úPREDICADOS

ú _~_ : £ ² £ ª £
ûýýýýýýýýýýýýýýýýýýýýýý 2 ~ 3 = 13
úÕx, y: £ × x~y = x2 + y2

ú £: ¡¤
ú_ + _, _ - _, ...: ¤ ² ¤ ª ¤
ú_ / _, _ // _: ¤ ² (¤ \ {0}) ª ¤
ú_< _, _ > _, ... :¤ ¨ ¤
ûýýýýýýýýýýýýýýýýýýýýýý
ú£ = {n: ¤ | n ä 0}
ú
ú Õx, y: ¤ | (Öp: £ | p µ 0 × x < y Û x + p = y)

OPERADORES

PREFIXO: -a, #A
INFIXO: a > b, a+b
POSFIXO: f a, R-1

Disciplina: Métodos Formais I 31


Prof. Airton Marco Polidório
Departamento de Informática
Universidade Estadual de Maringá
NOTAÇÃO Z
SEQÜÊNCIAS
(seq)

seq X = = { f: £©X | (Ön: £ × dom f = 1… n)}

ou

seq X = = { f: £©X | dom f = 1… #f)}

 Diferente dos conjuntos, uma seqüência estabelece uma ordem para seus elementos.
 Uma seqüência é uma função parcial que relaciona o conjunto dos números naturais com o
conjunto de objetos que se deseja ordenar (£©X).
 O tipo de uma seqüência é sempre ¡(¡(¤ ² X)).
 O primeiro elemento de uma seqüência deve ser o par ordenado 1 § x, exceto para uma
seqüência vazia.
 Não pode haver “buracos” na numeração dos elementos de uma seqüência.
 Todas as seqüências devem ser finitas.

s = = { 1 § c, 2 § l, 3 § a, 4 § s, 5 § s, 6 § e} é uma seqüência.

NOTAÇÃO

s = = Ïc, l, a, s, s, eÐ
t = = Ï1Ð
u = = ÏÐ

PROPRIEDADES
dom s = {1…6}
ran s = {c, l, a, s, e}
#s = 6; #t = 1; #u = 0
s 3 = a; t 1 = 1

NOTAÇÃO Z
SEQÜÊNCIAS
(seq)
Disciplina: Métodos Formais I 32
Prof. Airton Marco Polidório
Departamento de Informática
Universidade Estadual de Maringá
OPERADORES
head s = = s 1
tail s = = {i: 1 … #s-1 × i § s (i+1)}
last s = = s #s
front s = = {s \ {#s§ s #s}} ou {#s} Ä s
rev s = = {i: 1 … #s × i§s(#s+1-i)} ou {i: 1 … #s × (#s+1-i) § s i}
s Ê t = = s ¿ { i: 1 … #t × (#s+i)§ t i}

þÿÿÿ[X]ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
ú _ Ê _ : seq X ª seq X
ûýýýýýýýýýýýýýýýýýýýýýý
úÕs, t : seq X ×
ú s Ê t ¿ {n: dom t × n + #s § t(n)}
ú
üýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýý
þÿÿÿ[X]ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
ú rev : seq X ª seq X
ûýýýýýýýýýýýýýýýýýýýýýý
úÕs : seq X ×
ú rev s =(n: dom s × s( #s -n +1))}
ú
üýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýý
þÿÿÿ[X]ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
ú head, last : seq¦ X ª X
ú tail, front : seq¦ X ª seq X
ûýýýýýýýýýýýýýýýýýýýýýý
úÕs : seq¦ X ×
ú head s = s(1) Ù
ú last s = (s(#s) Ù
ú tail s = (n : 1 … #s-1 × s(n+1)) Ù
ú front s = (1 … #s-1) Â s
üýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýý
seq¦ X = seq X \ {ÏÐ}

Exercícios

1. Considere o tipo [NUMCONTA], como sendo o número de contas bancárias. Seja:


balanco: NUMCONTA © ¤, onde ¤ registra um montante de dinheiro. Escreva o tipo mais restrito para cada
uma das seguintes definições, sabendo que ncont: NUMCONTA.
a) ncont § 1000
b) balanco ncont
c) dom balanco
d) ran balanco
e) balanco Å £

2. Considerando o problema 1), escreva um predicado que produza um conjunto que contenha todas as contas com
saldo negativo.
Disciplina: Métodos Formais I 33
Prof. Airton Marco Polidório
Departamento de Informática
Universidade Estadual de Maringá
3. Considerando o problema 1), escreva um predicado que produza um conjunto que contenha todas as contas
relacionadas por balanço.

4. Considerando o problema 1), suponha que o tipo [CLIENTE] contém dados de detalhes (cor dos olhos, cabelos,
altura, etc.) de todos os clientes e que este tem o seguinte relacionamento com NUMCONTA: detalhes:
NUMCONTA©CLIENTE. Formalize uma regra que obtenha todas as contas ativas para as quais os detalhes dos
clientes são os mesmos.

5. Considerando o problema 1) e 4), Se c: CLIENTE é um cliente particular, escreva uma expressão que obtenha
todos os números de conta associadas com c.

6. Suponha os tipos [HOMEM] e [OCASIAO], e seja d: HOMEM ¨ OCASIAO a relação que faz o mapeamento
das ocasiões em que os homens são enganados. Formalize a sentença: Os homens são sempre enganados, como:
a) Uma igualdade de conjunto.
b) Um quantificador universal

7. Suponha os tipos [NAMORADA] e [MARINHEIRO], e seja ama: NAMORADA ¨ MARINHEIRO. Escreva


uma sentença precisa para: Todas as namoradas amam um marinheiro, como:
a) um quantificador universal;
b) um quantificador existencial;

8. Suponha que PESSOA é um tipo com os seguintes membros: V, A, C, L, V y, E, Aa, D, W, G e N, e que com a
relação eh_pai_de: PESSOA¨PESSOA, construiu-se a seguinte árvore genealógica:
V A C L

Vy E Aa D

W N
Escreva o domínio e a imagem da relação eh_pai_de ilustrada acima.

Disciplina: Métodos Formais I 34


Prof. Airton Marco Polidório
Departamento de Informática
Universidade Estadual de Maringá
9. Dado o seguinte esquema genérico:
þÿÿÿ[X]ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
úsquash : (£©X) © seq X
ûýýýýýýýýýýýýýýýýýýýýýý
ú(Õf : £©X
ú | (Ön: £ × (Õm: dom f × n > m))
ú × (( f = ¸ Ù squash f = ÏÐ )
ú Ú (Öleast: dom f
ú | ((Õm: dom f × least ã m)
ú × squash f = Ï f least Ð Ê squash ({least} Ä f))))
üýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýý
E, sabendo que: s: £©X; e, que s = = { 1§a, 3§c, 8§z, 9§y}. O que é produzido pela operação squash( s )?

10. Qual é a função do operador isperm?

þÿÿÿ[X]ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
ú_ isperm _ : seq X ¨ seq X
ûýýýýýýýýýýýýýýýýýýýýýý
ú(Õs, t : seq X
ú × (s isperm t Ü
ú (#s = #t Ù
ú ( Öf: 1… #s ¬1… #s ×
ú ( Õn: 1… #s × s(f n) = t n)))))
üýýýýýýýýýýýýýýýýýýýýýýýýý

Disciplina: Métodos Formais I 35


Prof. Airton Marco Polidório
Departamento de Informática
Universidade Estadual de Maringá
NOTAÇÃO Z

Especificação formal de um sistema


Refinamentos

Requisitos esp.
Análise da Implementação
especificação
formal
Informal
(elo fraco)
MF C
MF MF

- Com a notação Z descreve-se um modelo matemático do


sistema;
- A notação Z permite que a especificação seja decomposta em
esquemas, os quais podem ser combinados através da álgebra de
esquemas.

ESQUEMAS

VERTICAL
ùýý Nome ýýýýýýýýýýýýýýýýý As variáveis aqui
úDeclarações declaradas são locais a
ûýýýýýýýýýýýýýý este esquema. Existem
predicados implícitos.
úPredicados
üýýýýýýýýýýýýýýýýýýýýýýýýý
São expressões lógicas,
restrições e operações.
HORIZONTAL Existe um  implícito ao
final de cada expressão.

Nome á [Declarações / Predicados]

Entidades que não podem ser confinadas dentro de um esquema.

- Nomes de Conjuntos;
- Nomes introduzidos por equivalência sintática;
- Nomes introduzidos por descrição axiomática;
- Nomes introduzidos por definições genéricas;
- Definição de novos esquemas Estes nomes são
considerados de
escopo global
pelo sistema.

Disciplina: Métodos Formais I 36


Prof. Airton Marco Polidório
Departamento de Informática
Universidade Estadual de Maringá
NOTAÇÃO Z
EXEMPLOS:

ùýý Time_sharing ýýýýýýýýýýýýýýýýý


úpassword: USERID ©PASSWORD
úlogged_on: ¡USERID
ûýýýýýýýýýýýýýý
úlogged_on º dom password
üýýýýýýýýýýýýýýýýýýýýýýýýý

Livro á [t: TITLE seq PERSON / Õexemplar: ran t × exemplar µ


ÏÐ]

[LIVRO, PESSOA]

ùýý Biblioteca ýýýýýýýýýýýýýýýýý


úemprestados, na_estante, livros : ¡LIVRO
úemprestadores : ¡PESSOA
úemprestado_para: LIVRO © PESSOA
ûýýýýýýýýýýýýýý
úemprestados = dom emprestado_para
úran emprestado_para º emprestadores
úemprestados ¿ na_estante = livros
úemprestado ¾ na_estante = ¸
üýýýýýýýýýýýýýýýýýýýýýýýýý

LIVRO PESSOA
livros emprestadore
s
emprestado_para
na_estanteemprestados

NOTAÇÃO Z
ran
emprestado_para
Um esquema deve ser visto e entendido como tendo duas partes:
Disciplina: Métodos Formais I 37
Prof. Airton Marco Polidório
Departamento de Informática
Universidade Estadual de Maringá
- Uma parte estática, denominada estado, que contem tanto os nomes
locais (parte declarativa do esquema) e globais, bem como as restrições
sobre os mesmos (parte predicativa do esquema). (LEMBRE-SE: todos
os nomes declarados dentro de um esquema são locais ao esquema).
- Uma parte dinâmica, que é a semântica das operações que atuam sobre o
estado gerando um novo estado.

CONVENÇÃO DE NOMES DECLARADOS EM UM ESQUEMA

NOMES  variáveis, subconjuntos, relações, funções, etc.

( ?, !, ’ )

nome?  denota operação de entrada de dados;


nome!  denota operação de saída de dados;
nome  denota o estado de nome (ou conteúdo associado com
nome) antes de realizar uma determinada operação;
nome’  denota o estado de nome (ou conteúdo associado com
nome) após a realização de uma determinada operação

TIPOS DE DECLARAÇÕES ( tipos de: variáveis, relações, subconjuntos, ... )

nome: TIPO
nome1: TIPO1
nome2?: TIPO2
n1, n2’, n3?, n4!: TIPOX

Um nome, principalmente de variável ou função, pode ser definido através


de um axioma (global).

Disciplina: Métodos Formais I 38


Prof. Airton Marco Polidório
Departamento de Informática
Universidade Estadual de Maringá
NOTAÇÃO Z

AXIOMAS

ú PARTE DECLARATIVA
ûýýýýýýýýýýýýýý
ú PARTE PREDICATIVA

Exemplos:

ún: £ axioma sem predicado

ú n: £
ûýýýýýýýýýýýýýý
ú n = 30000

ún = 30000 válido, entretanto não se tem certeza do tipo de n

Exemplo: “implementação de um contador”

úlimite = 65535 ùýý Initcontador


ýýýýýýý
ùýý Contador úContador’
ýýýýýýýýý ûýýýýýýýýýýýýýý
úvalor: £ ú valor’ = 0
ûýýýýýýýýýýýýýý üýýýýýýýýýýýýýýýýýýý
ú valor ã limite
üýýýýýýýýýýýýýýýýýýý
ùýý Incrementa ùýý Incrementa ýýýýýýý
ýýýýýýý úóContador
úvalor, valor’: £ ûýýýýýýýýýýýýýý
ûýýýýýýýýýýýýýý ú valor’ = valor + 1
ú valor ã limite üýýýýýýýýýýýýýýýýýý
ú valor’ ã limite
ú valor’ = valor + 1
üýýýýýýýýýýýýýýýýýý

Disciplina: Métodos Formais I 39


Prof. Airton Marco Polidório
Departamento de Informática
Universidade Estadual de Maringá
NOTAÇÃO Z

OPERAÇÕES COM ESQUEMAS

INCLUSÃO DE ESQUEMAS

Quando um esquema E é incluído (na parte declarativa) em um


esquema F então, todos os nomes (declaração) e restrições
(predicados) declaradas em E passam a ser declarados em F.

ùýý E ýýýýý ùýý F ýýýýý ùýý F ýýýýý


úDE1 úE úDE1
úDE2 úDF1 úDE2
ûýýýýýý úDF2 úDF1
ú PE1 ûýýýýýý úDF2
ú PE2 ú PF1 ûýýýýý
üýýýýýýýýý ú PF2 ú PE1
üýýýýýýýýý ú PE2
ú PF1
ú PF2
üýýýýýýýýý

Exemplo:

ùýý Contador ùýý Esq_x ýý ùýý Esq_x ýý


ýýý úContador úvalor: £
úvalor: £ ú valor: ¤ ú valor: ¤
ûýýýýýýýý ûýýýýýýýý ûýýýýýýýý
ú valor ã limite ú valor ã limite ú valor ã limite
üýýýýýýýýýýý üýýýýýýýýýýý ú valor ã limite
üýýýýýýýýýýý

Vale o tipo mais restrito

Disciplina: Métodos Formais I 40


Prof. Airton Marco Polidório
Departamento de Informática
Universidade Estadual de Maringá
NOTAÇÃO Z

OPERAÇÕES COM ESQUEMAS

INCLUSÃO DE ESQUEMAS

Se um esquema for incluído com a decoração (’ ) colocada após o seu


nome então, todos os nomes declarados neste esquema serão incluídos
com esta decoração (tanto na parte declarativa como na predicativa).

ùý Contador ýýýýý ùý Incrementa ùý Incrementa


úvalor: £ ýýý ýýý
ûýýýýýýýýýý ú Contador úvalor: £
ú valor ã limite ú Contador’ úvalor’: £
üýýýýýýýýýýýýýý ûýýýýýýýýýý ûýýýýýýýýýý
ú valor’ = valor + ú valor ã limite
1 ú valor’ ã limite
üýýýýýýýýýýýýý ú valor’ = valor +
1
üýýýýýýýýýýýýý
CONVENÇÃO DELTA ( ó)
Permite consultar e/ou alterar o estado atual de um esquema.

ùý óS ýýýýý ùý Incrementa ùý Incrementa


úS ýýý ýýý
úS’ ú óContador ú Contador
üýýýýýýýýý ûýýýýýýýýýý ú Contador’
ú valor’ = valor + ûýýýýýýýýýý
1 ú valor’ = valor +
üýýýýýýýýýýýýý 1
NOTAÇÃO Z üýýýýýýýýýýýýý

OPERAÇÕES COM ESQUEMAS

INCLUSÃO DE ESQUEMAS ùý G ýýý


Disciplina: Métodos Formais I úóF 41
ùý EPolidório
Prof. Airton Marco ýýý ùýùýôsF ýýýýýýý
ýýý ùý G ýýý
ûýýýý
Departamento úx1 :¤
de Informática úSúE úóF
ú x3’=x3 +
Universidadeúx2: £ de MaringáúS’ú x3 : ¤
Estadual 1
ûýýýý
ûýýýý ûýýýý
ûýýýýýýýý ú x3’=x3 +
úx1’=x1
ú ... ú ... = ÷S
ú ÷S’ 1
úx2’=x2
üýýýýýý üýýýýýý
üýýýýýýýýýýý ú÷E’=÷E
üýýýýýý üýýýýýý
CONVENÇÃO XI ( ô)
Permite consultar o estado atual de um esquema.

NOTAÇÃO THETA ( ÷ )

Copia o estado atual de um esquema (S) para o estado alterado


(S’ ) através da operação ÷S’ = ÷S (ou ÷S = ÷S’)

÷S’ = ÷S Ü x1’ = x1 Ù x2’ = x2 Ù ... Ù xn’ = xn

Exemplo:

úlimite = 65535 ùýý Incrementa_ok ýýýý


RESPOSTA::= OK/ERRO úóContador
ùýý Contador ýýýýýýýýý úresultado!: RESPOSTA
úvalor: £ ûýýýýýýýýýýýýýý
ûýýýýýýýýýýýýýý ú valor < limite
ú valor ã limite ú valor’=valor+1
üýýýýýýýýýýýýýýýýýýý ú resultado!=OK))
ùýý Incrementa ýýýýýýý NOTAÇÃO Z
üýýýýýýýýýýýýýýýýýý
úóContador
úresultado!: RESPOSTA ùýý Incrementa_not_ok
ÁLGEBRA
ûýýýýýýýýýýýýýý
DE ESQUEMAS ýýýý
ú(valor < limite Û
Abordagem
úôContador
incremental
(valor’=valor+1 Ù úresultado!: RESPOSTA
ú resultado! ûýýýýýýýýýýýýýý
=OK)) ú valor = limite
úÚ ú resultado!=ERRO
ú( valor = limite Û (valor’=valor üýýýýýýýýýýýýýýýýýý
Ù
Disciplina: Métodos Formais I 42
Prof.úAirton Marco Polidório resultado! Compondo os esquemas
=ERRO))
Departamento de Informática
üýýýýýýýýýýýýýýýýýý
Universidade Estadual de Maringá Incrementaá
ùýý Initcontador ýýýýýýý Incrementa_ok Ú
úContador’ Incrementa_no
ûýýýýýýýýýýýýýý t_ok
ú valor’ = 0
ALGUMAS FORMAS DE COMPOSIÇÃO DE ESQUEMAS

Eá E1 Ù E2 Conjunção
Eá E1 Ú E2 Disjunção
Eá E1 Þ E2 Pipe
Eá E1 À E2 Composição

OBS: para se fazer a composição de esquemas é necessário que os


esquemas envolvidos tenham assinaturas compatíveis.

Disciplina: Métodos Formais I 43


Prof. Airton Marco Polidório
Departamento de Informática
Universidade Estadual de Maringá
NOTAÇÃO Z

ASSINATURA DE UM ESQUEMA: É o conjunto dos nomes declarados


em um esquema, associados com os seus respectivos tipos.

PROPRIEDADES DE UM ESQUEMA: É o conjunto dos predicados


implícitos e explícitos de um esquema.

[COPIA, LIVRO, LEITOR, TITULO]


|max_emp = 3 ùýý Emprestimo ýýýýýýýý
ùýý Usuarios ýýýýýýýýýýýýýýýýý úóBiblioteca
úleitores : ¡LEITOR úc?: COPIA
üýýýýýýýýýýýýýýýýýýýýýýýýý úl?: LEITOR
ùýý Livros ýýýýýýýýýýýýýýýýý ûýýýýýýýýýýýýýý
úacervo: COPIA © LIVRO úc? ³ disponiveis
údisponiveis, emprestados: ¡COPIA úl? ³ leitores
ûýýýýýýýýýýýýýý úemprestado_para’=
údisponiveis º dom acervo ú emprestado_paraÉ{c?
úemprestados º dom acervo
§l?}
úemprestados ¿ disponiveis = dom
úacervo’ = acervo
acervo
ú÷Usuarios’ = ÷Usuarios
úemprestados ¾ disponiveis = ¸
üýýýýýýýýýýýýýýýýýýýý
üýýýýýýýýýýýýýýýýýýýýýýýýý
ùýý Biblioteca ýýýýýýýýýýýýýýýýý
úUsuarios
úLivros
úemprestado_para: COPIA © LEITOR ASSINATURA DO ESQUEMA
ûýýýýýýýýýýýýýý BIBLIOTECA
úemprestados = dom
emprestado_para ß leitores : ¡LEITOR
úran emprestado_para º leitores acervo: COPIA © LIVRO
úÕl: ran emprestado_para × disponiveis, emprestados:
ú #( emprestado_para à {l} ã ¡COPIA
max_emp emprestado_para : COPIA ©
üýýýýýýýýýýýýýýýýýýýýýýýýý LEITOR
à

NOTAÇÃO Z
 E1 e E2 devem ter assinaturas compatíveis;
 Os predicados de E1 e E2 passam a fazer parte dos
Disciplina: Métodos Formais I 44
predicados de E de forma conjuntiva (Ù);
Prof. Airton Marco Polidório
 As saídas de E1(!) e as entradas de E2 (?) que se
Departamento de Informática  E1 e E2 devem ter assinaturas compatíveis;
casam formam um canal de comunicação, através de
Universidade Estadual de Maringá  Todas
um novoasnome
declarações de daE1
(escondido e E2 passam a ser
especificação);
declaradas em E;
 As saídas e as entradas de E1e de E2 que não se
 Os predicados
casam passam ade E1parte
fazer e E2dapassam a fazer
assinatura de E.parte dos
conjuntiva(Ù;
predicados de E de forma disjuntiva Ú);
ÁLGEBRA DE ESQUEMAS
CONJUNÇÃO

Eá E1 Ù E2

ùýý Titulos_de_livros ýýýýýýýýýýý


útitulos: ¡TITULO
útitulo_de: LIVRO © TITULO
ûýýýýýýýýýýýýýý
útitulos = ran titulo_de
üýýýýýýýýýýýýýýýýýýýýýýýýý

Livros_e_titulos á Livros Ù Titulos_de_livros

DISJUNÇÃO

Eá E1 Ú E2

PIPE

Eá E1 Þ E2

Disciplina: Métodos Formais I 45


Prof. Airton Marco Polidório
Departamento de Informática
Universidade Estadual de Maringá
NOTAÇÃO Z

ÁLGEBRA DE ESQUEMAS (PIPE)


[PRINTERNAME, GROUPNAME, FILE]
þÿÿÿ[X, Y]ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ùýý Select_printer ýýýýýýýýýý
ú_partitions_: (X©¡Y) ¨¡Y úóPrinter
ûýýýýýýýýýýýý úgn?: GROUPNAME
ú(Õf : X©¡Y; ys: ¡Y úpn!: PRINTERNAME
ú ×(f partitions ys Ü ûýýýýýýýýýýýýýý
ú (ys = {y: Y | Öx: X × y ³ f x} úgn? ³ dom printers
ú Ù (Õ x1, x2: dom f | x1 µ x2 × úpn! ³ printers gn?
ú (f x1 ) ¾ (f x2 ) = ¸))) úprinters' = printers
üýýýýýýýýýýýýýýýýýýýýýý üýýýýýýýýýýýýýýýýýýýýýýý
Os elementos não podem participar de mais de um sub-
conjunto. (A, B) partitions C Ü A ¾B=¸ Ù A
¿B=C
ùýý Queue_file ýýýýýýýýýý
ùýý Printer ýýýýýýýýýýýýýýýýý
úóPrinter
úprinters: GROUPNAME © ¡PRINTERNAME
úfile?: FILE
úqueue: PRINTERNAME © seq FILE
úpn?: PRINTERNAME
ûýýýýýýýýýýýýýý
ûýýýýýýýýýýýýýý
úprinters partitions dom queue
úpn? ³ dom queue
úÕgn: dom printers × printers gn µ ¸
úqueue’ = queue É
üýýýýýýýýýýýýýýýýýýýýýýýýý
ú {pn? § (queue pn?)Ê<file?
O nome de uma impressora não pode estar em mais de >}
um grupo. üýýýýýýýýýýýýýýýýýýýýýýý

Pagemode
Linemode
Queue_by_group á Select_printer Þ Queue_file
pp1 <file1, file2, file3> pl1
<file6>
ùýý Queue_by_group ýýýýýýýýýý
pp2 <> pl2
úóPrinter
<>
úfile?: FILE
pp3 <file4,úgn?:
file5> GROUPNAME
ûýýýýýýýýýýýýýý
úgn? ³ dom printers
úprinters' = printers
ú( Öpn: PRINTERNAME × (pn ³ printers gn? Ù queue’ = queue É
ú {pn § (queue pn)Ê<file?>}))
ùýý Cadastro_okýýýýýý ùýý Cadastro_notokýýýýýý
üýýýýýýýýýýýýýýýýýýýýýýý
úóAgenda úôAgenda
ún?: NOME NOTAÇÃO ún?: Z
NOME
úd?: DATA úd?: DATA
úresp!: MENSAGEM
ESTUDO DE CASOS úresp!: MENSAGEM
ûýýýýýýýýýýýýýý ûýýýýýýýýýýýýýý
únome?
Disciplina: ´ conhecido
Métodos Formais I únome? ³ conhecido 46
úaniversario’
Prof. Airton Marco Polidório = aniversario úresp! = JA_CADASTRADO
¿
Departamento de Informática üýýýýýýýýýýýýýýýýý
ú Estadual de Maringá {n?§ d?}
Universidade
úresp! = OK
üýýýýýýýýýýýýýýýýý
Uma agenda de aniversário ( J. M. Spivey, 1989)

[NOME, DATA]
MENSAGEM ::= OK/ NAO_CONHECIDO/ JA_CADASTRADO
ùýý Agenda ýýýýýýýýýýýýýýýýý
úconhecido: ¡NOME
úaniversario: NOME © DATA
ûýýýýýýýýýýýýýý
úconhecido = dom aniversario
üýýýýýýýýýýýýýýýýýýýýýýýýý

ùýý Init_agenda ýýýýýýýýýýýýý


úagenda’
ûýýýýýýýýýýýýýý
úconhecido’ = ¸
üýýýýýýýýýýýýýýýýýýýýýýýýý

Cadastro á Cadastro_ok Ú Cadastro_notok

NOTAÇÃO Z

Exercícios

Considerando o sistema “Agenda de Aniversário, faça:

1. Mostre, passo a passo, porque que a operação: conhecido’ = conhecido


¿ {n?} é desnecessária no esquema Cadastro_ok.
2. Construa um esquema que seja capaz de informar a data de aniversário de uma
Disciplina: Métodos Formais I 47
Prof. Airton Marco Polidório
Departamento de Informática
Universidade Estadual de Maringá
pessoa.
3. Construa um esquema que, ao ser fornecida uma data, que seja capaz de retornar
todas as pessoas que fazem aniversário nesta data.

Considerando o sistema “Biblioteca”, faça:

4. Construa um esquema que tenha a capacidade de fornecer todos os livros (cópias)


que estão emprestadas naquele momento.
5. Construa um esquema que seja capaz de fornecer uma relação de todos os
emprestadores que estão de posse de livro(s) e, a quantidade de livros que cada um
tem em sua posse.
6. Modifique o estado do sistema Biblioteca para que ele seja capaz de conter, além do
que já está especificado, os seguintes itens adicionais: 1) o(s) autor(es) de cada livro;
2) A data de devolução de cada cópia de livro emprestada.
7. Projete um sistema, estado, que tenha a capacidade de representar o sistema
acadêmico universitário: existem cursos, os quais mantém disciplinas, as quais tem
alunos matriculados. Os alunos fazem um único curso e, podem estar matriculados
em várias disciplinas deste curso.

Disciplina: Métodos Formais I 48


Prof. Airton Marco Polidório
Departamento de Informática
Universidade Estadual de Maringá

Você também pode gostar