Mostrando postagens com marcador diagrama de sequencia. Mostrar todas as postagens
Mostrando postagens com marcador diagrama de sequencia. Mostrar todas as postagens

quarta-feira, 18 de janeiro de 2012

UML - Diagrama de Sequência

Pensaram que eu iria parar com a sequencia de artigos sobre UML não é campeões? Posso achar um saco UML mas eu vou terminar sim com esses artigos, hoje vamos falar do Diagrama de Sequência que particularmente é um dos melhores(ou menos piores) da UML! Apenas para refrescar sua memória, a UML é dividida basicamente em 2 tipos de diagramas os de estrutura (Diagrama de classe...etc..) e os de comportamento (diagrama de atividade...etc..) e onde vc acha que e o de sequencia esta acoplado? (R: Comportamento claro)





Antes de explicar técnicamente eu vou dar uma resumida; O diagrama de sequencia tem como objetivo exibir o comportamento dos métodos baseado em uma ação. Ta mas que ação? Vamos imaginar uma consulta de funcionário em um determinado sistema. Veja:

Explicando:  Vejo que nesse diagrama de sequencia temos um ATOR, uma Camada de Apresentação (View), Camada de Negócio (Uma camada para a regra de negócio, controller por exemplo) e uma camada de persistência no banco(ORM).
E divido assim em camada podemos mostrar a sequencia no comportamento delas quando existe a consulta de um funcionário.


IMPORTANTE: O diagrama de sequencia não existe um padrão de nomes, nesse caso utilizamos camada mas vc poderia nomear com as classes por exemplo "consulta.html , consultaNegocio , Banco" isso depende da sua necessidade.

 

Explicação formal

Este diagrama procura determinar a sequência de eventos que ocorrem em um determinado processo, ou seja, quais condições devem ser satisfeitas e quais métodos devem ser disparados entre os objetos envolvidos e em que ordem durante um processo específico. Assim, determinar a ordem em que os eventos ocorrem, e as mensagens que são enviadas, os métodos que são chamados e como os objetos interagem entre si dentro de um determinado processo é o objetivo principal deste diagrama. Pensando de uma forma mais clara seu objetivo é entender a sequencia em que os métodos se comportam baseado em uma ação. Mas quem define essa ação?

O Diagrama de Sequência baseia-se no Diagrama de Casos de Uso. No entanto deve-se ter em mente que o fato de haver normalmente um único Diagrama de Casos de Uso não significa em absoluto que deva haver um único Diagrama de Sequencia. Normalmente existem diversos Diagramas de Sequência em um projeto, um para cada processo específico do sistema ou seja, talvez exista um uma parte, módulo, componente do sistema que tem apenas um caso de uso principal, um diagrama de caso de uso e ‘n’ de sequencia pois a tendencia é realmente o de atividade e o de sequência possuierem um pouco mais diagramas. Mas claro que isso não é regra e cada caso é um caso mas se você sempre estiver fazendo um diagrama de sequencia de um componente grande eu recomendo que vc pare, pense e veja quais ações estão faltando.





Um Diagrama de Sequência na maioria das vezes se identifica com um Caso de Uso específico, porque um Caso de Uso, em geral, refere-se a um processo disparado por um usário. Assim um Diagrama de Sequência também também permite documentar um Caso de Uso. Na verdade, muitas ferramentas CASE permitem gerar um Diagrama de Sequencia diretamente a partir de um Caso de Uso.

Nem sempre um Caso de Uso gera um Diagrama de Sequência, como é, muitas vezes, o que ocorre com os Casos de Uso do tipo <<include>>, porque este têm que ser executados juntamente com outros Casos de Uso que os utilizam e, por isso muitas vezes suas etapas são descritas nos diagramas de Sequência relativos aos Casos de Uso que os Utilizam. Porém nada impede que se defina um Diagrama de Sequência exclusivo para um Caso de Uso utilizado por outros Casos de Uso através da associação <<include>>.
Obviamente, o Diagrama de Sequência depende também do Diagrama de Classes,

Os atores são os mesmos descritos no Diagrama de Casos de Uso, ou seja entidades externas que geram ações e disparam eventos.

Os atores não são obrigatórios no diagrama de sequencia mas são utilizados frequentemente

Objetos representam as instâncias das classes envolvidas no processo ilustrado pelo Diagrama de Sequencia. Os objetos são apresentados como retângulos contendo um texto que identifica primeiramente o nome do objeto, em minúsculo, e depois o nome da classe, com as letras iniciais maiúsculas, a qual o objeto pertence. Essas duas informações são separadas por um simbolo de (:) dois pontos. Veja um exemplo de objeto:

 
Veja como exemplo nessa figura um exemplo de objeto onde Paulo é o nome do objeto seguido de Pessoa que é a classe pessoa, ou seja, Paulo é uma instância da classe Pessoa.

Abaixo do retangulo existe uma linhda pontilhada e ela representa o tempo de vida o objeto, olhando dessa maneira não existe uma forma de medir um tempo de vida real nele isso só será possível quando o diagrama completo estiver pronto.

A e tem outra coisa, não existe diagrama que veja o tempo em horas/minutos/segundos de um objeto não ta? Quando digo linha do tempo me refiro a linha da vida, ao tempo que ele vai estar vivo durante um processo.


Um objeto pode existir desde o início do processo ou ser criado durante o decorrer da execução do mesmo.

Mensagens
As ,mensagens são utilizadas no Diagrama de Sequencia para demonstrar a ocorrência de eventos, que normalmente forçam a chamada de um método em algum dos objetos envolvidos no processo. Veja um exemplo:



A mensagem investimento entra no controller JAVoiceController e ele executa seu método vote().


Veja um exemplo completo de um diagrama de sequência para aluguel de carro:



Bem, por hoje é só. Espero ter ajudado e se não acharam que ficou claro me avisem.
Obrigado!

segunda-feira, 2 de janeiro de 2012

UML - Diagramas

Bom dia! E como eu prometi hoje estou iniciando o segundo post sobre UML onde vou falar por cima um pouco sobre cada diagrama e nos outros posts explicar um a um com exemplos na prática...

Aliás, um feliz 2012 a todos, muita paz, saúde, sucesso e acima de tudo! CONHECIMENTO :]


Diagrama de casos de uso
Ele é o diagrama mais geral e informal da UML, sendo utilizado normalmente nas fases de Levantamento e Análise de Requisitos do sistema, e normalmente é sempre consultado duranto o processe de modelagem e serve como base para outros diagramas. Apresenta uma linguagem simples e de fácil compreensão para que os usuários possam ter uma idéia geral de como o sistema irá se comportar.
Procura identificar os atores (usuários, outros sistemas ou até mesmo algum hardware especial), que utilizarão de alguma forma o software, bem como os serviços, ou seja, as opções, que o sistema disponibilizará aos atores, conhecidas neste diagrama como Casos de uso.
Um exemplo:


Diagrama de classes
O mais utilizado e o mais importante da UML, servindo de apoio para a maioria dos moutros diagramas. Como o próprio nome diz, define a estrutura das classes utilizadas pelo sistema, determinando os atributos e métodos possuídos por cada classe, além de estabelecer como as classes se relacionam e trocam informações entre si.

Diagrama de Objetos
Esta associado ao diagrama de classes. Na verdade, o Diagrama de Objetos é praticamente um complemento do Diagrama de Classes, sendo bastante dependente deste. O Diagrama de Objetos fornece uma visão dos valores armazenados pelos objetos de um Diagrama de Classes em um determinado momento da execução de um processo do software. Este foi um dos diagramas tornados independentes pela
UML 2, apesar de já existir anteriormente, era considerado apenas uma extensão do Diagrama de Classes.

Diagrama de estrutura composta
Descreve a estrutura interna de um classificador, como uma classe ou component, detalhando as partes internas que o compõem, como estas se comunicam e colaboram entre si. Também é utilizado para descrever uma Colaboração onde um conjunto de instâncias coopéram entre si para realizar uma tarefa. Este é um dos três novos diagramas propostos pela UML 2.

Diagrama de sequencia
Preocupa-se com a ordem temporal em que as mensagens são trocadas entre os objetos envolvidos em um determinado processo. Em geral, baseia-se em um Caso de Uso definido pelo diagrama de mesmo nome e apóia-se no Diagrama de Classes para determinar os objetos das classes envolvidas em um processo. Um Diagrama de Sequência costuma identificar o evento e determina como o processo deve se desenrolar e ser concluído por meio da chamada de métodos disparados por mensagens enviadas entre os objetos.

Diagrama de colaboração
Chamado de Diagrama de Comunicação na UML 2 esse diagrama está amplamente associado ao Diagrama de Sequencia, na verdade, um complementa o outro. As informações mostradas no Diagrama de Sequencia, porém com um enfoque diferente, visto que este diagrama não se preocupa com a temporalidade do processo, concentrando-se em como os objetos estão vinculados e quais as mensagens trocam entre si durante o processo.

Diagrama de Gráfico de Estados
Chamado de Diagrama de Máquina de Estados na UML 2 procura acompanhar as mudanças sofridas por um objeto dentro de um determinado processo. Como o Diagrama de Sequencia, o Diagrama de Máquina de estados muitas vezes baseia-se em um Caso de Uso descrito em um Diagrama de casos de uso e apoia=se no diagrama de classes. O diagrama de maquina de estados é utilizado normalmente para acompanhar os estados por que passa uma instancia de uma classe, no entanto pode ser utilizado para representar os estados de um caso de uso ou mesmo os estados gerais de um sub-sistema ou de um sistema completo.

Diagrama de atividades
O diagrama de atividades era considerado um caso especial do antigo Diagrama de Gráfico de EStados, atualmente conhecido como DIagrama de Máquina de Estados, conforme foi descrito na seção anterior. A partir da UML 2.0 o DIagrama de Atividades foi considerado independente do DIagrama de Máquina de EStados. Esse diagrama preocupa-se em descrever os passos a serem percorridos para a conclusão de uma atividade específica, muitas vezes representada por um método com um cetro grau de complexidade e não de um processo completo como é o caso dos DIagramas de Sequencia ou Colaboração, embora também possa ser utilizado para este fim. O diagrama de Atividades concentra-se na representação do fluxo dle controle de uma atividade.

Diagrama de componentes
Esta amplamente associado à linguagem de programação que será utilizada para desenvolver o sistema modelado. Esse diagrama representa os componentes do sistema quando este for ser implementado em termos de módilos de código-fonte, bibliotecas, formulários, arquivos de ajuda, etc. e determina como esses componentes estarão estruturados e interagirão para que o sistema funcione de maneira adequada.

Diagrama de implantação
Determina as necessidades de hardware do sistema, as características físicas como servidores, estações, topologias e protocolos de comunicação, ou seja, todo o aparato físico sobre o qual o sistema deverá ser executado.

Diagrama de pacotes
Tem como objetivo representar os sub-sistemas englobados por um sistema de forma a determinar as partes que o compõem. Pode ser utilizado de maneira independente ou associado com outros diagramas.

Diagrama de interação geral
Uma variação do Diagrama de Atividades que fornece uma visão geral dentro de um sistema ou processo de negócio. Esse diagrama passou a existir somente a partir da UML 2


Diagrama de tempo
Descreve a mudança no estado ou condição de uma instância de uma classe ou seu papel durante um tempo. Tipicamente utilizada para demonstrar a mudança no estado de um objeto no tempo em resposta a eventos externos. Esse é o terceiro diagrama criado a partir da nove versão da linguagem.

continua...