segunda-feira, 11 de outubro de 2010

[Seminário] UML Explorando Outros Diagramas

Dos treze diagramas da Versão atual da Uml, são essenciais alguns diagramas.
Como os exemplos abaixo:
I. Diagrama caso de Uso
II. Diagrama de Classes
III. Diagrama de Sequencia

Mas existem outro de relevância comprovada.

Podemos citar alguns exemplos abaixo:

I. Diagrama de Objetos
II. Diagrama de Maquina
III. Diagrama de Estado
IV. Diagrama de Atividades

Diagrama de Objetos:

Sabemos que um objeto é nada mais que a instância de uma classe, num determinado ponto do tempo.
Usamos para designar o diagrama de objetos, tornando-se assim uma instância do diagrama de classe.
O diagrama de objeto utiliza a maioria das notações do Diagrama de classe.
E qual seria o objetivo de um diagrama?
O objetivo de um Diagrama é vincular abstrações ,com dados da vida real para que não tenha má interpretação errônea sobre que o usuário realmente deseja.
Por isso cada vez que criamos um Diagrama passamos a trabalhar com valores dos atributos da vida real, que nos dizem muito mais que informações e atributos.
Diagrama de Objetos demonstra suas respectivas ligações (instancia de relacionamento) em um determinado instante do tempo ( estados dos objetos congelados );
Seguintes usos para o diagrama de objetos:

• Entendimento e validação do modelo (Permite que o analista, valide o acompanhamento das colaborações e objetos )
• Depuração do código (Permite que o desenvolvedor mapeie o conteúdo dos objetos)
• Auxilio no projeto de Modelagem (Dependendo da complexidade o analista pode ter dificuldade para abstrair o problema do sistema)
• Preparar base para caso de Testes (Um diagrama de objeto pode auxiliar, um projetista a montar caso de testes)



Notação dos Diagramas de Objeto:

Diferente de uma classe não é relevante num diagrama de objetos identificarmos seu comportamento o diagrama de objetos é o seu estado ,pois que a de relevante são os valores dos atributos.
Para identificar um objeto ,utilizamos a mesma notação de uma classe sem as informações das operações.
Os objetos se diferenciam das classes por se apresentarem sublinhados.
E pode ser desenhado com 3 notações diferentes.

Nome do objeto: nome da classe
Ou
:nome da classe
Ou
Nome do objeto

Aprimeira notação traz primeiro um relatório de objeto que sera util. como parametro.
A segunda notação indica um objeto anônimo, pode ser irrelevante, mas conhecemos a classe.
A terceira notação é a menos indicada.neste caso o nome do objeto de ser claro o suficiente para que se indentifique a classe instanciada.
Há a necessicade de citar a visibilidade dos mesmos( privado,público, protegido ou pacote).Basta o nome acompanhado do igual para o valor congelado.Veja exemplo da Figura 1.




Repare que a classe cliente possui 4 atributos em uma operação.
O relacionamento é feito por de links, um link é a instancia de uma associação. Sendo assim repare na Figura 2, veja que o primeiro diagrama é um diagrama de classe que possui as classes Motorista e Veiculo .No segundo diagrama que é de objetos, a classe motorista deu Lugar a sua instância Joao e a classe veiculo deu lugar a instância gol.





Contudo a multiplicidade do diagrama de classes anterior é de 0...*, devemos representar o diagrama de objetos a diversidade de instância .Veja a Figura 3



O nome do fim de associação (é-proprietário)é opcional , tornando-se necessário quando uma classe possui mais de um relacionamento. Sendo assim no momento de criar as ligações é preciso ter certeza a qual relacionamento se refere a mesma. Veja o exemplo na Figura 4.Repare que do lado esquerdo a instancia de cidade rj e sp se relacionam com a instancia de vôo .Só a ligação não identificaria qual a cidade era a origem do vôo e qual era o destino .Por isso neste caso é imprescindível manter o nome do papel de associação. Assim podemos saber que o vôo 100 tem o Rio de janeiro como cidade de origem e São Paulo como cidade destino




No caso de um relacionamento de generalização/especialização, se a classe pai for uma classe abstrata, basta que as classe-filhas apresentem os seus atributo e os atributos herdados da superclasse. Veja na Figura 5





Considerando o que já foi visto já podemos entender o diagrama de objetos da Figura 7, criado a partir da Figura 6.Neste Diagrama podemos perceber outra regra inerente ao modelo.







Omitir alguns valore de atributos se os mesmos não forem relevantes.
Veja como isto acontece com o atributo descrição para os objetos i002 e i003, repare que uma instancia de Corretor pode se relacionar com nenhum ou vários imóveis. No diagrama de objetos representamos a multiplicidade zero desse relacionamento ao deixarmos, o objeto Joao, instancia corretor, sem qualquer ligação com outra classe, significa que o objeto existe mais não se relaciona com nenhum outro, ou seja está com multiplicidade zero, para representar a multiplicidade1, nesse mesmo relacionamento, colocamos a instancia Carla de corretor se relacionando com a instancia i001 d departamento, representando assim a multiplicidade muitos, usamos a instancia Pedro corretor .Ele foi desenhado com ligações das duas instâncias: i002 e i003

Diagrama de Máquina de Estado

E um modelo de estado a vários diagramas de máquina de estados, um para cada classe, que relacionam eventos e estados: eventos representam os estímulos externos e os estados representam os valores dos objetos.
As máquinas de estados são empregadas para a modelagem dos aspectos dinâmicos de um sistema, isso envolve a especificação do tempo de vida das instancias de uma classe, um caso de uso ou um sistema inteiro.
Objetos que não necessitam de uma máquina de estados para especificar seu comportamento, pois o comportamento atual não depende de seu passado são chamadas síncronas, já outros tipos de sistemas em que os objetos precisam responder a sinais onde o comportamento atual depende de seu comportamento passado são chamadas assíncronas.
A máquina de estado também pode ser empregada para a modelagem do comportamento do sistema inteiro, especialmente de sistemas reativos, que devem responder aos sinais de ator externos ao sistema.
Um evento é uma ação, uma ocorrência, disparada pelo usuário ou por outro sistema, em um determinado instante do tempo.
Existem vários tipos de eventos, que não necessariamente são mutuamente
Exclusivos. Os mais comuns são:
• Evento de sinal
È um evento que acontece quando há recepção de um sinal explícito de um objeto para outro.
• Evento de mudança
É um evento causado pela satisfação de uma expressão booleana. Sempre que a expressão tem seu valor modificado de falso para verdadeiro, o evento acontece.
●Evento temporal
É um evento causado pela ocorrência de um determinado momento ou pela passagem de um intervalo de tempo.
Um estado é uma abstração dos valores e ligação de um objeto, que ficam agrupados no estado, de acordo com o comportamento do objeto.
Os objetos de uma classe possuem um número finito de estados possível, cada objeto só pode estar em um estado de cada vez. Ao modelar um estado devemos ter em mente que esse estado especifica a resposta de um objeto aos eventos de entrada.
Um estado pode ser opcionalmente subdividido em compartimento separado cada qual por uma linha horizontal.
Os compartimentos de nome que armazenará o nome do estado, como uma string. E compartimento das atividades internas armazenará uma lista de ações ou atividades internas que são executadas enquanto o objeto se apresenta no estado em foco .Em uma transição interna há algumas palavras reservados que não modificam o estado de um objeto:
*Entry: identifica uma ação que é executada na entrada do estado.
*Exit: identifica uma ação que é executada na saída do estado.
*Do: identifica uma atividade em andamento.
Uma transição é uma mudança instantânea de um estado para outro, ou seja, representa o relacionamento entre dois estados, indicando que houve uma mudança de estado e de determinadas ações serão executadas.
Um diagrama de estado precisa começar, assim como precisa terminar. Por isso ,temos dois estados especiais chamados: estado inicial e estado final.
Um estado inicial é um tipo de estado que indica o local de início na maquina de estado e é representado por um círculo preenchido seguido de uma transição que o levará ao primeiro estado de maquina. Um estado final é um tipo de estado que indica que a maquina de estado concluiu sua execução, e é representado por um circulo envolvendo um pequeno círculo preenchido.


Diagrama de Atividades

Um diagrama de atividades tem o objetivo de focalizar um fluxo de atividade que ocorrem internamente em um processamento, dentro de um período de tempo um diagrama pode estar ligado a um classificador, como um caso de uso, um pacote ou a implementação de uma operação.
O diagrama de atividades é um dos cincos diagramas disponíveis na UML para modelagem de aspectos dinâmico de sistema (os outros são: diagrama de maquina de estado, diagrama de sequências , diagrama de comunicação e diagrama de caso de uso.)
Em um diagrama de atividades ele se divide em:
●Atividades: Comportamento a ser realizado.
●Transição: Fluxo de uma atividade para outra.
●Ação: Transformação.
●Decisão: Dependendo de uma condição, mostra as diferentes transições.
●Bifurcação: Separa uma transição em várias transições executadas ao mesmo tempo.
●Sincronização: Concatenação de transições vindas da bifurcação.
●Raia: Diferenciação de unidade organizacional.

Conclusão
Como uma grande caixa de ferramentas, com instrumentos que sirvam a qualquer trabalho, nem sempre fará uso de todas ao mesmo tempo, ou seja, de todos os diagramas para qualquer projeto. Mas saber usar cada ferramenta no momento certo ,é saber tirar proveito no que elas nos oferecer.

Alunos:
Cristiano S. nacimento
RA:1801261382
Elizeti Nericke
RA:0850254

Nenhum comentário:

Postar um comentário