Notação Z - Predicados Formas de montar predicados em Z = 1
Operações sobre tipos primitivos Z N + < - > * div mod.. N1 succ
Operações sobre conjuntos - pertence - união - intersecção \ - diferença # - cardinalidade - subconjunto - subconjunto próprio
Operações sobre conjuntos = - igualdade U - união generalizada P - powerset
Relações e funções Relações binárias modelam objetos que relacionam membros de dois conjuntos A B = P(A x B) r : A B
Funções total parcial total injetora parcial sobrejetora parcial bijetora total bijetora parcial injetora total sobrejetora
Operadores em relações e funções dom ran relação binária maplet domínio contra-domínio 9 composição relacional q:x Y,r:Y Z => X Z º volta da composição relacional
Operadores em relações e funções restrição de domínio Conj Relação restrição de contra-domínio subtração de domínio subtração de contra-domínio ~ inverso relação _ ( _ ) imagem relacional Relação ( Conj ) => A<-->B X PA --> PB
Sequência Tipos são definidos a partir dos símbolos e S1 = a, b, c, d Variáveis são especificadas: Sequência vazia - palavra chave seq Sequência não vazia - palavra chave seq₁ Sequência com elementos duplicados - palavra iseq
Operações sobre sequências # tamanho concatenação rev reverso da sequência head primeiro elemento last último elemento tail sequência sem o primeiro elemento front sequência sem o último elemento
Operações sobre sequência / concatenação distribuída sequência de sequência - /q prefix prefixo suffix sufixo in segmento subsequência = índice + sequência subsequência = sequência + elementos
Coleções (Bags) Conjunto contendo a quantidade de cada elementos armazenado Definido a partir de uma função parcial nos naturais BagX == X N1 TipoFicha == {vermelho, amarelo, azul} BagFicha == {vermelho 3, amarelo 5} São especificados através da palavra reservada bag
Operações em 'bags' count ou # quantidade de um elemento no bag elemento que aparece 'n' vezes em um bag pertence + U união - U diferença está contido
Notação Z - Exemplos Conta de usuário Um usuário possui nome e senha O nome é diferente da senha A senha não deve ter mais que 8 dígitos Caracter = {a, b, c, d,..., z} Login nome : seq1 Caracter senha : seq1 Caracter nome senha #senha < 8
Notação Z - Exemplos Livro de Aniversário De uma lista de pessoas conhecidas, desejo representar uma agenda que armazene datas de aniversário A agenda deve armazenar nomes e datas de aniversário [NOME, DATA] Agenda lnomes : P NOME aniversarios : NOME DATA lnomes = dom aniversarios
Notação Z - Exemplos Cliente X Servidor Não podem existir 2 servidores com mesmo id Um servidor pode atender até no máximo 5 requisições limite == N limite < 5 Servidor id: N req: limite SisServ lserv : P Servidor s1, s2 lserv s1.id = s2.id s1 = s2
Notação Z - Exemplos Turmas X Alunos Uma turma é formada por um conjunto de disciplinas Cada disciplina pode ter no máximo 30 alunos [DISCIPLINA] Turma lturma : bag DISCIPLINA n : N (n > 30 n lturma = )
Notação Z - Exercícios Represente os tipos (não as operações) do sistema de controle de créditos: Principais dados: cidade, sexo, idade, escolaridade Defina as pesquisas: Clientes que residem em João Pessoa e que são homens com mais de 30 anos Clientes que residem em Campina Grande, que possuem nível superior e que são mulheres etc...
Notação Z - Exercícios Represente os tipos (não as operações) de um sistema computacional: Um processador aloca recursos para execução de processos (não há duplicação de processos) Quando não há recurso disponível, o processo fica em uma fila de espera O processador pode estar em estado de espera ou execução Se um processador está em estado de espera, não há processos a serem alocados ou não há recursos disponíveis
Notação Z - Exercícios Represente os tipos (não as operações) de um sistema de segurança: O sistema mantém uma três níveis de hierarquia e um conjunto de usuários Usuários podem ser cadastrados em diferentes níveis hierárquicos, mas possui somente um nível O nível de hierarquia mais alto pode acessar dados dos níveis de hierarquia inferiores
Notação Z - Exercícios Altere o exemplo de aniversário para que o livro armazene os aniversariantes de hoje [NOME,DATA] Agenda lnomes : P NOME aniverisarios : NOME DATA lnomes = dom aniversarios