Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouIasmin Franca Alterado mais de 9 anos atrás
1
Anotando Diagramas de Classe com o Rose Engenharia de Software e Sistemas
2
Roteiro UML anotado com Z Elementos da notação Inserindo anotações em diagramas Usando a ferramenta Exemplo Exercícios
3
UML anotado com Z UML é a linguagem padrão para projetos OO Porém UML não possui semântica bem definida... Anotações em linguagem formal nos ajudam a resolver essa carência mantendo os diagramas UML
4
Elementos da notação (1) Operadores lógicos Implicação - \implies Negação - \lnot And - \land Or - \lor Quantificadores \forall \exists
5
Elementos da notação (2) Conjuntos Pertence - \in Contido - \subset União - \cup Intersecção - \cap Tipos Naturais - \nat Inteiros - \num Booleanos - Bool
6
Elementos da Notação (3) Seqüências - \seq Conjunto potência - \power Given sets (conjuntos genéricos) Produto Cartesiano - T 1 \cross T 2 Relações - \rel Funções - \pfun
7
Inserindo anotações no diagrama Pré e pós condições Selecione a classe -> open specification Aba operations Clicar duas vezes no método desejado Insira as pré e pós condições nas respectivas abas As expressões devem ser escritas usando a notação Z/latex (\rel, \exists, etc.)
8
Inserindo anotações no diagrama Invariantes de classe Open specification -> documentation Escreva a invariante na área reservada para a documentação da classe
9
Exemplo: 0..n 1 Banco cadastrar remover creditar debitar getSaldo transferir Conta numero: NUM saldo: \nat getNum getSaldo creditar debitar Cliente id: ID nome: NOME getId getNome clientes contas dono Poupança renderJuros
10
Exercícios: Cliente - id: ID - nome: NOME getId setId getNome setNome getId() pré: pós: result! = id setId(id: ID) pré: pós: id’ = id? getNome() pré: pós: result! = nome setNome(nome: NOME) pré: pós: nome’ = nome?
11
Exercícios Conta - num: NUM - saldo: \nat getNum() setNum() getSaldo() setSaldo() creditar() debitar() getNum() pré: pós: result! = num setNum(num: Z) pré: pós: num’ = num? getSaldo() pré: pós: result! = saldo setSaldo(saldo: IN) pré: pós: saldo’ = saldo?
12
Exercícios Conta - num: NUM - saldo: \nat... creditar() debitar() creditar(val: IN) pré: pós: saldo’ = saldo + val? debitar(val: IN) pré: saldo val? pós: saldo’ = saldo - val?
13
Exercícios cl: clientes cl null cc: contas cc null c1,c2: contas | c1 c2 c1.getNum() c2.getNum() cl1,cl2: clientes | cl1 cl2 cl1.getId() cl2.getId()
14
Exercícios Banco cadastrar() remover() creditar() debitar() transferir() ATENÇÃO: Esta classe possui dois atributos implícitos nomeados de contas: IP Conta e clientes: IP Cliente, respectivamente cadastrar(conta: Conta) pré: conta? null cc:contas cc.getNum() conta? pós: contas´ = contas {conta?} remover(conta: Conta) pré: conta? null cc:contas cc.getNum() = conta? pós: contas´ = contas \ {conta?}
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.