Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Compreendendo Cenrios
Os cenrios nos ajudam a compreender as interaes dinmicas que iro ocorrer entre os objetos (objetos so instncias de classes). Um cenrio
uma descrio textual de um processo interno necessrio para implementar uma funcionalidade do sistema documentada em um caso de uso.
(Lembre-se que um caso de uso descreve a funcionalidade do sistema do ponto de vista dos usurios externos ao sistema). Assim um cenrio
detalha a execuo de um caso de uso descrevendo os passos que precisam ser realizados internamente pelos objetos que compe o sistema.
Como exemplo vemos na figura 1.0 a representao do caso de uso Alugar Filme para uma aplicao de Video Locadora :
Diagramas de Sequncia
Um diagrama de seqncia um diagrama de objetos, ou seja, ele contm como um conjunto de objetos de diferentes classes. O objetivo dos
diagramas de seqncia descrever as comunicaes necessrias entre objetos para a realizao dos processos de um sistema. Os diagramas de
seqncia tm este nome porque descrevem ao longo de uma linha de tempo a seqncia de comunicaes entre objetos.
Como podem existir muitos processos em um sistema, sugere-se proceder construo dos diagramas de seqncia por caso de uso.(Primeiro, se
define qual o papel do sistema (Casos de Uso), depois definido como o software realizar seu papel (Sequncia de operaes) - fonte:
http://pt.wikipedia.org/wiki/Diagrama_de_sequ%C3%AAncia)
A figura 2.0 apresenta uma representao de um diagrama de sequncia como um modelo visual em duas dimenses :
Observe que o fluxo de mensagens de objeto para objeto representando horizontalmente enquanto que o fluxo de tempo entre as interaes
representando por verticalmente iniciando a partir do topo e progressivamente decrescendo at a base. Os objetos so representados juntos no
topo e cada um possui uma linha tracejada e um retngulo vertical que representa a ativao do objeto onde a altura do retngulo representa o
tempo de ativao do objeto.
Na figura 2.1 abaixo vemos exemplos de ativao, perodo de ativao e mensagem de objetos representados em um diagrama de sequncia:
Os objetos trocam mensagens entre si e uma seta iniciando do objeto que iniciou a mensagem e terminando no objeto que ir receber a
mensagem descreve esta interao. Uma seta tracejada representa a resposta do objeto. As mensagens descritas no diagrama de sequncia iro
formar a base dos mtodos das classes do sistema.
Como exemplo vemos na figura 3.0 o diagrama de sequncia para o cenrio representando pelo caso de uso Alugar Filme:
figura 3.0 - Diagrama de sequncia referente ao cenrio do caso de uso Alugar Filme
Conforme voc analisa o diagrama de seqncia, voc ganha uma compreenso das classes de objetos que iro estar envolvidos na realizao do
processamento do programa e quais mtodos voc ter que criar e anexar a essas classes. Voc tambm deve modelar as classes e mtodos
descritos no diagrama de seqncia no diagrama de classes. Estes documentos de projeto deve ser continuamente cruzados e revistos sempre
quando necessrio para que correes e aperfeioamentos seja feitos.
O diagrama de sequncia da figura 3.0 revela que haver quatro objetos envolvidos na realizao do caso de uso Alugar Filme. Alm disso temos
as seguintes informaes:
O objeto Cliente uma instncia da classe Cliente e responsvel por encapsular e manter as informaes referentes a um cliente.
O objeto Funcionario uma instncia da classe Funcionario e responsvel pela gesto do processamento envolvido em alugar um filme.
O objeto Filme uma instncia da classe Filme e responsvel por encapsular e manuteno das informaes relativas a um vdeo disponvel
para aluguel.
O objeto Locao uma instncia da classe Alugar e responsvel por encapsular a manuteno das informaes relativas a um vdeo
atualmente sendo alugado.
Para o exemplo do diagrama de sequncia do cenrio Alugar Filme podemos perceber que o objeto Funcionrio inicia uma mensagem sncrona
com o objeto Filme, requisitando informao sobre se existe uma cpia do filme no estoque; o objeto Filme retorna uma mensagem ao
funcionrio que existe uma cpia em estoque.
Mensagens recursivas
No incomum na POO um objeto ter uma operao que invoca uma outra instncia do prprio objeto. Isto referido como recurso.
A seta de mensagem que circula de volta para o objeto de chamada representa a recurso no diagrama de seqncia.
O fim da seta aponta para um retngulo de menor ativao, representando uma segunda ativao do objeto desenhado na parte superior do
retngulo de ativao original (ver Figura 5). Por exemplo, um objeto Conta calcula juros compostos para os pagamentos em atraso; para calcular
os juros compostos ao longo de perodos diversos, ele necessita chamar-se vrias vezes.
Mensagens Iterativas
Algumas vezes uma mensagem chamada repetidas vezes at que uma condio seja satisfeita. Assim para totalizar o valor de uma locao um
mtodo chamado repetidas vezes at que todas as locaes de um cliente sejam calculadas. A isso chamamos iterao.
A representao de tais mensagens feita por um retngulo que envolve a mensagem no diagrama de sequncia. A condio de vinculao da
iterao descrita canto superior esquerdo do retngulo. A figura 7.0 mostra um exemplo de mensagem iterativa:
Mensagens Restritivas
As mensagens trocadas entre os objetos pode ter alguma restrio condicional. Por exemplo: os clientes precisam estar em dia com suas locaes
para poderem efetuar uma nova locao. Quanto isso precisa ser descrito colocamos a restrio entre colchetes ([]) na sequncia. A mensagem
ser enviada somente se a condio for avaliada como verdadeira (figura 8.0):
Mensagens Ramificadas
Quando as restries condicionais so vinculadas a uma mensagem, muitas vezes isso ocorre em uma situao de ramificao onde, dependendo
da condio, mensagens diferentes podem ser invocados.
A figura 9 representa um uma restrio condicional ao solicitar um aluguel de um filme:
Se o status do item Filme sim indicando que o filme existe em estoque, uma mensagem enviada para o objeto Locao para criar uma
locao.
Se o status do item Filme for no indicando que ele no existe no estoque, uma mensagem enviada para o objeto Reservar para criar uma
reserva.
Um retngulo desenhado em torno das mensagens mostra os caminhos alternativos que podem ocorrer dependendo da condio.
Diagrama de Atividades
Um diagrama de atividades ilustra o fluxo de atividades que precisam ocorrer durante uma operao ou processo.
Voc pode construir o diagrama de atividades para ver o fluxo de trabalho em vrios nveis de foco.
Nvel Alto - O Foco em nvel de sistema representa cada caso de uso como uma atividade e diagramas do fluxo de trabalho entre os
diferentes casos de uso.
Diagramas de fluxo de nvel mdio ocorrem em um caso de uso particular.
Diagrama de fluxo de baixo nvel ocorrem no interior de uma operao particular de uma determinada operao de uma das classes do
sistema.
Um diagrama de atividade consiste em o ponto de partida do processo representado por um crculo slido e setas de transio que representam o
fluxo ou a transio de uma atividade para outra.
Retngulos arredondados representam as atividades, e um crculo com uma bola representa o ponto final do processo. Por exemplo, a Figura 10
mostra um diagrama de atividades genrico que representa um processo que comea com a atividade A, passa para a atividade B e conclui.
Freqentemente uma atividade ir condicionalmente seguir outra atividade , por exemplo, afim de alugar um filme , feita a verificao da
identificao do cliente. Um diagrama de atividades representa a condicionalidade por um ponto de deciso (representado por um losango) com a
guarda da deciso (a condio deve ser verdadeira para a atividade continuar) em colchetes([ ]) prxima da linha do fluxo conforme mostra a
figura 11 abaixo:
Em alguns casos duas ou mais atividades podem ser executadas em paralelo. Uma linha slida desenhada perpendicularmente para setas de
transao representam a diviso do fluxo em duas ou mais atividades. A figura 12 representa um diagrama de atividade para o processo de
devoluo de um filme. A ordem na qual os fluxos para incrementar o estoque e baixar o filme da locao no importa:
O propsito do diagrama de atividades modelar o controle de fluxo de cada atividade enquanto o programa esta sendo processado. Ele no nos
indicada qual objeto possui a responsabilidade sobre cada atividade. Para atribuir a responsabilidade de cada atividade aos objetos podemos
segmentar o diagrama de atividades em painis verticais particionados para cada atividade definido o objeto responsvel pela atividade no topo
do painel. A figura 13 abaixo mostra o diagrama de atividades para o processamento do caso de uso Alugar FIlme exibindo os painis e cada objeto
responsvel por cada atividade:
Para encerrar vou mostrar como podemos usar os diagramas de atividades para modelar a interface do usurio de uma aplicao.
Embora no seja um papel especfico da UML modelar a interface do usurio podemos usar alguns de seus diagramas para nos ajudar nesta tarefa.
O primeiro passo no desenvolvimento da interface do usurio e definir uma anlise das tarefas para descobrir como os usurios iro interagir com
o sistema.
A anlise das tarefas esta baseado nos casos de uso e nos cenrios que j foram modelados anteriormente. Podemos dessa forma criar diagramas
de atividades para modelar como a interao entre o usurio e o sistema ir ocorrer. Na figura 14 vemos um diagrama de atividades modelando as
atividades que o usurio realiza durante o processo de registro de informao de locao:
E assim neste artigo apresentei os conceitos bsicos sobre cenrios, diagramas de sequncia e diagramas de atividades de forma a dar uma idia
de como usar esses diagramas da UML para modelar a interao entre os objetos.
"Em verdade vos digo que, qualquer que no receber o reino de Deus como menino, no entrar nele." Lucas 18-17
Referncias:
Super DVD .NET - A sua porta de entrada na plataforma .NET
Super DVD Vdeo Aulas - Vdeo Aula sobre VB .NET, ASP .NET e C#
UML - Modelando sistemas - Casos de Uso. - Modelando sistemas com UML usando casos de uso.
http://www.umlet.com/
http://horstmann.com/violet/
Modelando sistemas com UML - Use Case e modelo ... - Macoratti.net
UML - Diagrama de classes - Macoratti.net
UML conceitos bsicos - Macoratti.net
UML - Modelando sistemas - Casos de Uso
UML - Unified Modeling Language e Visual Modeler
VB.NET - Revisitando conceitos OOP
VB .NET - Conceitos OOP
VB .NET - Primeiros passos - Conceitos - VI
VB .NET - Finalmente uma linguagem orientada a objetos.
OOP noes para iniciantes
O que significa "orientao a objetos" ?
Conceitos sobre Projetos - Decomposio de software
UML - Modelando sistemas - Casos de Uso
UML - Unified Modeling Language e Visual Modeler.
VB.NET - Revisitando conceitos OOP
VB .NET - Conceitos OOP.
VB .NET - Primeiros passos - Conceitos - VI.
VB .NET - Finalmente uma linguagem orientada a objetos.
OOP noes para iniciantes
O que significa "orientao a objetos" ?
Conceitos sobre Projetos - Decomposio de software.
Seo UML do site Macoratti.net
Jos Carlos Macoratti