Você está na página 1de 6

Linguagem de Modelagem Unificada

Diagramas de Atividades
Uma atividade o estado de estar fazendo algo: tanto um processo de mundo real, tal como datilografar uma carta, ou a execuo de uma rotina de software, tal como um mtodo em uma classe. O diagrama de atividades descreve a seqncia de atividades, com suporte para comportamento condicional e paralelo. Um diagrama de atividades uma variante de um diagrama de estados no qual a maioria, se no todos, dos estados estado de atividade. Portanto, muito da terminologia segue a mesma terminologia de estados. Na figura 1 o smbolo central o estado de atividade, ou simplesmente atividade.
Incio

Receber o Pedido

Separao Atividade
Preencher o Pedido Envia a Fatura

Guarda

Desvio [Seno]
Entrega Regular Recebe o Pagamento

[Pedido Urgente]
Entrega Durante a Noite

Intercalao Juno

Fechar o Pedido

Fim

Fig. 1: Diagrama de Atividades

Linguagem de Modelagem Unificada


Comportamento condicional delineado por desvios (branches) e intercalaes (merges). Um desvio (branch) uma transio de entrada nica e vrias transies de sada guardadas. Somente uma transio de sada pode ser tomada, de modo que os guardas devem ser mutuamente exclusivos. A utilizao de [else] como um guarda indica que a transio else dever ser usada se todos os outros guardas do desvio forem falsos. Uma intercalao (merge) tem mltiplas transies de entrada e uma nica sada. Um merge marca o final de um comportamento condicional iniciado por um branch. Comportamento paralelo indicado por separaes (forks) e junes (joins). Uma separao (fork) tem uma transio de entrada e vrias transies de sada. Quando uma transio de entrada acionada (triggered) todas as transies de sada so executadas em paralelo. Quando temos comportamento paralelo, precisamos sincronizar. Com a juno (join) a transio seguinte efetuada somente quando todos os estados nas transies de entrada tenham completado suas atividades. O diagrama de atividades permite escolher a ordem em que as coisas vo ser feitas. Ele simplesmente determina as regras essenciais de seqncias que devem ser seguidas. Esta a diferena-chave entre um diagrama de atividades e um fluxograma: os fluxogramas so normalmente limitados a processos seqenciais, enquanto que os diagramas de atividades podem lidar com processos paralelos. Os diagramas de atividades tambm so teis para programas concorrentes, uma vez que se pode projetar graficamente quais caminhos (threads) temos e quando eles precisam ser sincronizados. Separao e juno devem se completar. Isso significa que toda vez que tiver uma separao deve haver uma juno que una as threads iniciadas por aquelas separaes. Entretanto, existem vrias extenses para esta regra. Um thread que sai de uma separao pode abrir-se em uma nova separao, com os novos threads juntando-se antes de alcanar a juno da primeira separao. Se um thread saindo de uma separao vai direto para outra separao, podemos remover a segunda separao e somente ter os threads da segunda separao saindo da primeira separao. De modo semelhante, se uma juno vai direto para outra juno, podemos eliminar a primeira juno e ter as threads indo direto para a segunda. Uma construo avanada chamada de estado de sincronia permite que faamos sincronia em lugares onde a regra de encaixe de separao e juno impediria que fizssemos isso.

Linguagem de Modelagem Unificada


Existe uma exceo para regra de que todos os estados de entrada em uma juno devem ter terminado suas atividades, antes que a juno possa ser efetuada. Podemos acrescentar uma condio para um thread saindo de uma separao. O resultado um thread condicional. Durante a execuo, se a condio de um thread condicional for falsa, este thread considerado completado no que diz respeito juno.

Separao removida do diagrama [a fim de vinho] Cozinhar Espaguete Misturar Molho Carbonara Thread Condicional Abrir Vinho Tinto

Combinar

Fig 2: Separaes, Junes e Thread Condicionais

Decompondo uma Atividade


Uma atividade pode ser dividida em subatividades. Isso funciona mais ou menos como superestados e subestados em um diagrama de estados. Voc pode somente mostrar o superestado no diagrama-pai, ou pode mostrar o superestado no seu comportamento externo dentro dele. As vantagens dos estados de fim e incio explcitos so que uma atividade de entrega pode ser usada em outros contextos, e o diagrama-pai desacoplado dos contedos do diagrama subsidirio.

Concorrncia Dinmica
Concorrncia dinmica permite que voc mostre interaes sem que tenha que construir um ciclo.

Raias (Swimlanes)

Linguagem de Modelagem Unificada


Para usar raias, voc deve organizar seus diagramas de atividade em zonas verticais separadas por linhas. Cada zona representa as responsabilidades de uma classe especfica ou, no caso da figura 5, um departamento especfico. As raias so teis porque combinam a descrio de lgica do diagrama de atividades com a descrio de responsabilidade do diagrama de interao.

Receber o Pedido

Preencher o Pedido

Envia a Fatura

Entrega [Pedido Urgente]


Entrega Durante a Noite

[Seno]
Entrega Regular Recebe o Pagamento

Fechar o Pedido

Concorrncia Dinmica Fig 3: Utilizando uma Atividade Composta para a Entrega Receber o Pedido

* Preencher Linha de Item Fig 4: Concorrncia Dinmica

Entregar Pedido

Linguagem de Modelagem Unificada

Quando Utilizar Diagramas de Atividades


Os diagramas de atividades tm qualidades e fraquezas definidas, por isso a melhor maneira de us-los em combinao com outras tcnicas. A maior qualidade dos diagramas de atividades est no fato de que eles suportam e encorajam comportamento paralelo. A maior desvantagem destes diagramas que eles no deixam muito claras as ligaes entre aes e objetos. Voc pode definir uma ligao para um objeto rotulando uma atividade com um nome de objeto ou usando raias que dividem um diagrama de atividades em base em responsabilidades, mas isso no tem a clareza simples Setor pessoas de diagramas Execuo de interao. Servio de Atendimento Por esta razo, algumas Financeiro sentem que ao Cliente diagramas de atividades no so orientados a objetos e, portanto, so maus. Devemos utilizar diagramas de atividades nas seguintes situaes: Analisando um caso de uso. Compreendendo workflow Receber Descrevendo um algoritmo seqencial complicado o Pedido Lidando com aplicaes de processamento paralelo. No devemos usar diagramas de atividades nas seguintes situaes: Tentando ver como os objetos colaboram. Tentando ver como um objeto se comporta durante o seu ciclo de vida. Representando lgica condicional existente. O trabalho em UML 1.3 acrescentou muito mais rigor e preciso para Preencher Enviar a diagramas de atividades. Entretanto, isso tem vantagens e desvantagens. o Pedido Quando voc usa estes diagramas Fatura modelagem conceitual, muito deste para rigor atrapalha. Nestas situaes, voc no tem como objetivo preciso total, apenas uma viso geral de como as coisas funcionam. Por outro lado, o fato de ter um padro para diagrama de estados e Entregar Receber o diagramas de atividades faz com que exista uma base mais estvel para os o Pedido Pagamento desenvolvedores de ferramentas construrem as que executaro estes diagramas.

Fechar o Pedido

5
Fig 5: Raias

Linguagem de Modelagem Unificada

Onde Encontrar Mais Informao


Existe pouca informao sobre diagramas de atividades. O Reference Man (Rumbaugh, Jacobson e Booch, 1999) fornece muitos detalhes, mas no ensina como eles funcionam.

Você também pode gostar