Anotando Diagramas de Classe com o Rose

14
Anotando Diagramas de Classe com o Rose Engenharia de Software e Sistemas

description

Anotando Diagramas de Classe com o Rose. Engenharia de Software e Sistemas. Roteiro. UML anotado com Z Elementos da notação Inserindo anotações em diagramas Usando a ferramenta Exemplo Exercícios. UML anotado com Z. UML é a linguagem padrão para projetos OO - PowerPoint PPT Presentation

Transcript of Anotando Diagramas de Classe com o Rose

Page 1: Anotando Diagramas de Classe com o Rose

Anotando Diagramas de

Classe com o Rose

Engenharia de Software e Sistemas

Page 2: Anotando Diagramas de Classe com o Rose

Roteiro

UML anotado com Z Elementos da notação Inserindo anotações em diagramas Usando a ferramenta Exemplo Exercícios

Page 3: Anotando Diagramas de Classe com o Rose

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

Page 4: Anotando Diagramas de Classe com o Rose

Elementos da notação (1)

Operadores lógicos Implicação - \implies Negação - \lnot And - \land Or - \lor

Quantificadores \forall \exists

Page 5: Anotando Diagramas de Classe com o Rose

Elementos da notação (2)

Conjuntos Pertence - \in Contido - \subset União - \cup Intersecção - \cap

Tipos Naturais - \nat Inteiros - \num Booleanos - Bool

Page 6: Anotando Diagramas de Classe com o Rose

Elementos da Notação (3)

Seqüências - \seq Conjunto potência - \power Given sets (conjuntos genéricos) Produto Cartesiano - T1 \cross T2

Relações - \rel Funções - \pfun

Page 7: Anotando Diagramas de Classe com o Rose

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.)

Page 8: Anotando Diagramas de Classe com o Rose

Inserindo anotações no diagrama

Invariantes de classe Open specification -> documentation Escreva a invariante na área reservada

para a documentação da classe

Page 9: Anotando Diagramas de Classe com o Rose

Exemplo:

0..n 0..n

1 0..n

Banco

cadastrarremovercreditardebitargetSaldotransferir

Contanumero: NUMsaldo: \natgetNumgetSaldocreditardebitar

Clienteid: IDnome: NOMEgetIdgetNome

clientescontas

dono

Poupança

renderJuros

Page 10: Anotando Diagramas de Classe com o Rose

Exercícios:

Cliente- id: ID- nome: NOMEgetIdsetIdgetNomesetNome

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?

Page 11: Anotando Diagramas de Classe com o Rose

Exercícios

Conta- num: NUM- saldo: \natgetNum()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?

Page 12: Anotando Diagramas de Classe com o Rose

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?

Page 13: Anotando Diagramas de Classe com o Rose

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()

Page 14: Anotando Diagramas de Classe com o Rose

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?}