A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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

Apresentações semelhantes


Apresentação em tema: "Anotando Diagramas de Classe com o Rose Engenharia de Software e Sistemas."— Transcrição da apresentação:

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


Carregar ppt "Anotando Diagramas de Classe com o Rose Engenharia de Software e Sistemas."

Apresentações semelhantes


Anúncios Google