Sei sulla pagina 1di 8

.

NET - Implementando Solues OOP II


Programar fcil desenvolver software de qualidade uma arte.
Na primeira parte do artigo focamos na modelagem dos aspectos estticos de uma soluo OOP (ou POO - Programao Orientada a Objetos) e
vimos que:
o DRS que define o escopo do sistema;
Utilizamos o diagramas de caso uso, para definir os limites do sistema e identificar as entidades externas que iro utilizar o sistema;
Usamos o diagramas de classe para definir o modelo da estrutura das classes que sero desenvolvidas para implementar o sistema;
Vamos continuar a discutir as tcnicas de modelagem da UML focando na modelagem dos aspectos dinmicos da soluo. Para isso vamos abordar
os seguintes assuntos:
O propsito dos cenrios e como eles estendem os modelos de casos de uso;
Como os diagramas de sequncia modelo a interao dependente do tempo dos objetos em um sistema;
Como o diagrama de atividades mapeia o fluxo de atividades durante o processamento da aplicao;
A importncia do desenha da interface do usurio e como ela se encaixa no processo de uma soluo OOP;

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 :

figura 1.0 - Caso de uso - Alugar Filme

O texto a seguir descreve este caso de uso:


Pr-Condies : O cliente faz uma solicitao para alugar um filme para o funcionrio da locadora. O cliente faz parte dos membros
cadastrados para locao de filmes da locadora e entrega ao funcionrio seu carto de registro contendo sua identificao de membro. A
identificao do cliente como membro verificada no sistema. As informaes do cliente so exibidas sendo verificada se a conta do cliente
no possui pendncias de locaes a serem quitadas;
Descrio : O funcionrio verifica se o filme solicitado para locao esta no estoque. As informaes de locao so registradas e o cliente
informado da data de devoluo (vencimento da locao);
Ps-Condies : Nenhuma;
Dessa forma o seguinte cenrio descreve o processamento interno do caso de uso Alugar Filme:
O filme verificado no estoque;
O nmero de cpias existentes atualizado sendo decrementado da unidade locada;
A data de vencimento da locao (data de devoluo) determinada;
A informao da locao registrada. Esta informao inclui: o ttulo do filme, o nmero da cpia, a data atual e a data de devoluo;
O cliente informado da locao;
Este cenrio descreve a melhor execuo possvel para o caso de uso , mas excees podem ocorrer e um nico caso de uso pode gerar vrios
cenrios. Por exemplo, outro cenrio criado pelo para o caso de uso Alugar Filme poderia descrever o que acontece quando um filme no esta
presente no estoque.
Depois de mapear os vrios cenrios para um caso de uso voc pode criar diagrama de interaes para determinar quais classes de objetos estaro
envolvidos na realizao da funcionalidades dos cenrios. Os diagramas de interao tambm revelam quais operaes sero necessrias para
essas classes de objetos.
Na UML temos dois diagramas de interao:
Diagramas de seqncia
Diagramas de colaborao.

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 :

Um diagrama de sequncia representa um cenrio de caso de uso


Mostra os eventos que partem do ator para o sistema
O sistema ir emitir uma resposta para cada evento recebido do ator
Descreve ao logo de uma linha de tempo a sequncia de comunicao entre
os objetos
O tempo visualizado no sentido vertical de cima para baixo
As mensagens trocadas entre os objetos so representadas por setas
fornecem entrada bsica para determinar responsabilidades de classes e
interfaces.

figura 2.0 - Representao de um diagrama de sequncia

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:

figura 2.1 - Exemplos de representao de ativao, pe


ativao e mensagem
(fonte:
http://www.inf.ufpr.br/silvia/ES/UML/Diagramaseqsis

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.

Tipos de mensagens entre objetos


Ao analisar o diagrama de seqncia, voc pode determinar quais mensagens devem ser passadas entre os objetos envolvidos no processamento.
Na POO, as mensagens so transmitidas de forma sncrona ou assncrona.
Quando as mensagens so transmitidas de forma sncrona, o objeto de envio suspende o processamento e aguarda uma resposta antes de
continuar. A linha traada com uma ponta de flecha fechada no diagrama de seqncia representa mensagens sncronas.
Quando um objeto envia uma mensagem assncrona, o objeto continua o processamento e no fica esperando uma resposta imediata do
objeto receptor. A linha traada com uma ponta de seta aberta no diagrama de seqncia representa de mensagens assncronas.
A seta tracejada mostra geralmente uma mensagem de resposta; Estas linhas so mostrados na Figura 4.

figura 4.0 - Tipos de mensagens

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.

figura 5.0 - Exemplo de mensagem recursiva

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:

figura 7.0 - 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):

figura 8.0 - Mensagem restritiva

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:

Figura 9.0 - Restrio condicional

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.

figura 10 - Diagrama de atividades

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:

figura 11 - Ponto e Garda de deciso

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:

figura 12 - Processamento Paralelo

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:

figura 13 - Atribuindo responsabilidades aos objetos

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:

Figura 14 - Diagrama de Atividades - 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

Potrebbero piacerti anche