domingo, 16 de março de 2008

Certificação UML 2.0 OMG - SD

INTRODUÇÃO
A UML 2.0 se propõe a capturar mais do que somente relacionamentos estruturais entre os objetos. Ela tem a intenção de mostrar também processos e fluxos de eventos.

Com esse propósito existem uma serie de diagramas, os chamados diagramas de interação, que fundamentalmente exibem a comunicação entre os objetos.

Então os diagramas de interação foca em uma mensagem específica e em como essa mensagem vem a se tornar uma funcionalidade no sistema. Logo, esses diagramas se concentram no “COMO”.

Esse post representa as anotações da leitura dos livros UML 2 In Nutshell e UML Guia do Usuário.

INTERAÇÕES
Há diversas formas de se mostrar uma interação, entretanto os diagramas de seqüência são disparados o principal meio. Futuramente mostraremos aqui outros diagramas de interação. O diagrama de seqüencia foca na comunicação entre as linhas da vida


A figura 1, mostra um diagrama de seqüência padrão.


Figura 1

PARTICIPANTES
O diagrama é composto por um grande retângulo com um pentágono na canto superior esquerdo, tendo dentro a palavra reservada sd, que significa sequence diagram, obviamente, seguida do nome da interação. Authenticate User.

A interação é mostrada utilizando um retângulo, chamado linha da vida (lifeline), tem esse nome porque o objeto, ou a instancia do objeto, uma vez que esses dois termos são até considerados sinônimos nesse momento, existem enquanto a linha tracejada seguir na direção vertical de cima para baixo.

O nome dos elementos no retângulo segue o seguinte padrão de nome:
nome_objeto[ seletor ] : nome_classe ref decomposição

Onde:

nome_objeto
Nome da instância envolvida

Em Java seria algo como:
MinhaClasse nomeInstancia = new MinhaClasse();


Seletor
É opcional e está relacionado a identificação de elementos multivalorados, um array, por exemplo. Assim seletor seria a identificação de uma das instancias em particular.


nome_classe
É identificação da classe propriamente, no exemplo dado anteriormente seria MinhaClasse.


decomposição
É opcional também e quando aparece significa que esse digrama faz referencia a um outro diagrama de seqüência do sistema.

Para finalizar um diagrama pode se usar o símbolo stop, mas ele se tornou deprecated quando se envia uma mensagem com um estereótipo <>, o que não é estritamente necessário. Normalmente o que acontece é colocar um grande X no final de uma linha da vida, como mostra a figura 2.


Figura 2

Os diagramas de sequencia podem inclusive exibir variáveis locais para capturar o cmportamento do sistemas com mais fidelidade. Variáveis locais podem retornar valores, informações de loop, ou somente dados que se precisa para o processamente.

MENSAGENS
A comunicação entre as linhas da vida pode se dar de diversas formas: chamando um métodos, enviando um sinal, criando uma instância, destruindo um objeto, etc. Todas essas ações são chamadas de mensagens, como bem sabemos uma mensagem precisa de um remetente e um receptor para ocorrer.

As mensagens podem ser da seguite forma:
Síncronas

Assíncronas

Retorno

Quando a messagem representa a criação de um objeto então é usada a linha potilhada com a seta aberta na ponta, sim, é uma menssagem assíncrona, afinal quando cria um objeto não espera um retorno dizendo que o objeto foi criado. Caso haja argumentos, então a mensagem de criação do objeto pode ser acompanhada de uma palavra reservada create com os argumentos, por exemplo, create(argumento), como mostrado na Figura 1. Quando não houver argumentos, basta o usar estereótipo<>.

Em se tratando de chamadas de métodos normais, é informado o nome dele e os seus parâmetros, quando houver, conforme pode ser visto ainda na figura Figura 1.

Esse papo continua em outros posts.

Nenhum comentário: