Você está na página 1de 13

Diagramas de Atividade e Diagramas de Estado

Ricardo R. Gudwin
DCA-FEEC-UNICAMP
Introduo
Neste texto, apresentamos um sumrios de dois tipos de diagramas UML: o diagrama de atividades
e o diagrama de estados.
Diagrama de Atividades
O diagrama de atividades um diagrama UML utilizado para modelar o aspecto
comportamental de processos. um dos diagramas que mais soreu mudan!as em seu meta"modelo,
desde seu surgimento no UML #.$. Neste diagrama, uma atividade modelada como uma
sequ%ncia estruturada de aes, controladas potencialmente por n&s de decis'o e sincronismo. (m
seu aspecto mais simples, um diagrama de atividades pode ser conundido com um luxograma.
(ntretanto, ao contrrio de luxogramas, os diagramas de atividades UML suportam diversos outros
recursos, tais como as parties e os n&s do tipo fork e merge, alm da deini!'o de regies de
interrupo, que permitem uma modelagem )em mais rica do que simplesmente um luxograma.
Um exemplo de um diagramas de atividade simples mostrado na igura # a seguir.
Neste diagrama, o ponto preto * esquerda indica o in+cio da atividade, as caixas com cantos
arredondados representam a!,es, os pequenos losangos s'o n&s de decis'o e a )arra vertical preta
um n& de sincroniza!'o do tipo fork. Os arcos conectando as a!,es representam a sequ%ncia em que
as a!,es devem ser executadas, sendo que nos arcos que saem dos n&s de decis'o existem
condies de guarda, que decidem qual ser a pr&ximo a!'o a ser executada. (ssas condi!,es de
guarda devem ser proposi!,es mutuamente exclusivas, de tal orma que para n arcos saindo de um
n& de decis'o, somente um deles pode ser verdadeiro a cada instante de tempo. -or im, no canto
direito do diagrama encontra"se um n& de inaliza!'o, que denota o inal da atividade.
Figura 1: Exemplo de um Diagrama de Atividades Simples
. igura / a seguir mostra um diagrama de atividades com parti!,es. 0iagramas com
parti!,es permitem que processos onde m1ltiplos agentes atuam, potencialmente em paralelo,
possam ser representados.
Figura 2: Diagrama de Atividades com Parties

Ao
Uma a!'o representa um passo elementar de uma atividade, ou se2a, um passo que n'o pode
ser decomposto dentro de uma atividade. Uma atividade representa um comportamento que pode
ser composto por a!,es ou outras su)"atividades. Uma a!'o pode ter um con2unto de arcos de
entrada e de sa+da, que especiicam o luxo de controle e de dados para outros n&s. Uma a!'o n'o
inicia sua execu!'o at que todas as suas condi!,es de entrada se2am satiseitas. 3omente quando
uma a!'o terminada que a a!'o su)sequente ica 4a)ilitada.
Uma a!'o representada conorme a igura 5 a seguir:

Figura 3: Exemplos de Aes
.lternativamente, a!,es podem ser deinidas com pr"condi!,es, que deinem as condi!,es
necessrias para que a a!'o possa ser executada, e p&s"condi!,es, que deinem o estado depois que
a a!'o executada. (xemplos de situa!,es com essa podem ser vistos na igura 6 a seguir.

Figura : Aes defi!idas com Pr"#co!dies e P$s#co!dies
Atividades
.tividades podem ser representadas por sequ%ncias de a!,es e tam)m de su)"atividades.
0essa orma, para representar uma su)"atividade dentro de uma atividade 7ou se2a, todo um
con2unto de a!,es ou su)"atividades8, utiliza"se uma representa!'o semel4ante a de uma a!'o, com
um pequeno +cone no canto direito inerior. . nota!'o para uma atividade pode ser vista na igura 9
a seguir.
Figura %: Exemplo de Atividade
0o ponto de vista ormal, uma atividade conorme representada na igura 9 n'o
exatamente uma atividade, mas uma a!'o especial, c4amada de :all;e4avior.ction, que de
maneira at<mica invoca a execu!'o de toda uma atividade. (ntretanto, para eeitos prticos,
podemos entend%"la como uma atividade de"per"si.
Eventos
Outros elementos que podem aparecer em um diagrama de atividades correspondem a
eventos. (ventos s'o mudan!as de estado instant=neas que propiciam o in+cio de uma outra a!'o.
(xistem )asicamente tr%s representa!,es para eventos. -ara representar um evento 1nico que, caso
aconte!a, propicia o in+cio de uma a!'o su)sequente, utiliza"se a a!'o especial AcceptEve!tActio!,
representada pela nota!'o indicada na igura >.
Figura &: Eve!to 'ue Propicia o i!(cio de uma A)o su*se'ue!te
-ara representar um evento peri&dico, que acontece de tempos em tempos, e a cada vez que
aconte!a avore!a o in+cio de uma a!'o su)sequente, utiliza"se a nota!'o apresentada na igura ? a
seguir.
Figura +: Eve!to ,empori-ado
-ara representar a gera!'o de um evento deli)erado, ao inal de uma a!'o, utiliza"se a
nota!'o indicada na igura @ a seguir.
Figura .: /era)o de um Eve!to
.s iguras A, #$ e ## a seguir ilustram o uso de eventos 2unto com a!,es.
Figura 0: Eve!to e A)o correspo!de!te
Figura 11: /era)o e 2ecep)o de Eve!to
Figura 11: Exemplo de Eve!to ,empori-ado e A)o
Objetos
.lm do luxo de controle, que especiica uma sequ%ncia de a!,es que deinem um
processo, um diagrama de atividades tam)m pode representar o luxo de dados acontecendo em
um processo. (sse luxo de dados pode ser representado deinindo"se explicitamente os o)2etos
necessrios para que uma a!'o possa ser realizada, )em como os o)2etos gerados ap&s a inaliza!'o
de uma a!'o. Um o)2eto representado da mesma maneira que em um diagrama de classes,
entretanto sem a necessidade de estar su)lin4ado. .lguns exemplos de uso de o)2etos podem ser
vistos na igura #/ a seguir.
Figura 12: Exemplos do 3so de 4*5etos e!tre Aes
O)2etos podem tam)m ser passados como par=metros para atividades completas. Be2a o
exemplo da igura #5.
Figura 13: 4*5etos como Par6metro para Atividades
Ns de Controle
.lm de a!,es, atividades, eventos e o)2etos, os diagramas de atividade admitem um
con2unto de assim c4amados n&s de controle, pois controlam o luxo do processso. (sses n&s podem
ser visualizados na igura #6 a seguir.
Figura 1: 7$s de 8o!trole
O primeiro n& de controle o n de deciso. O)serve que um losango pode representar
tanto um n& de decis'o como um n& do tipo merge. Cuando existe um 1nico arco de entrada no n& e
diversos arcos de sa+da, ele representa um n& de decis'o. Nesse caso, cada arco de sa+da deve
indicar uma condi!'o de guarda, entre colc4etes, condi!'o que deve ser satiseita para caracterizar o
respectivo arco como a sequ%ncia de controle. Cuando 4 diversos arcos de entrada e um 1nico n&
de sa+da, tem"se um n& do tipo merge. (sse n& utilizado para agregar diversos luxos de controle
em um s&.
O segundo tipo de n& de controle o n& de sincroniza!'o. (sse n& utilizado para
representar luxos de controle que ocorrem em paralelo, ou se2a, a!,es que devem acontecer em
paralelo. N&s de sincroniza!'o podem ser de dois tipos dierentes. O primeiro deles um n& do tipo
orD, que ocorre quando se quer indicar que, a partir daquele instante, as a!,es su)sequentes devem
acontecer em paralelo. Um exemplo de um n& do tipo orD indicado na igura #9.
Figura 1%: Exemplo de 7$ do tipo fork
Na igura #> temos o outro caso de sincroniza!'o, o n& do tipo 5oi!.
Figura 1&: Exemplo de 7$ do tipo 5oi!
Os n&s do tipo 2oin servem para indicar um ponto de sincroniza!'o entre luxos de a!'o que
est'o acontecendo em paralelo. 3omente quando todas as a!,es que c4egam a um 2oin estiverem
conclu+das que a a!'o consecutiva pode ser executada.
O n& de in+cio e de inal 2 oram apresentados anteriormente. importante, entretanto,
ressaltar a dieren!a que existe entre um n& do tipo inal de atividade e um n& do tipo inal de luxo.
Cuando o inal de uma a!'o alcan!a um n& do tipo inal de atividade, isso signiica que a atividade
como um todo, representada pelo diagrama termina. Cuando o inal de uma a!'o alcan!a um n& do
tipo inal de luxo, somente o luxo em quest'o que termina, mas a atividade continua, em outros
luxos que este2am ainda em uncionamento.
Interrupes e Regies de Interrupo
(m diagramas de atividade UML /.$, introduziu"se o conceito de interrup!'o e regi,es de
interrup!'o. .s interrup!,es 7ou excess,es8 s'o notacionadas como arcos em orma de raio,
conorme pode ser ilustrado na igura #? a seguir.
Figura 1+: Exemplos de 7ota)o para 9!terrupes
-ode ser interessante indicar o con2unto de a!,es onde as interrup!,es podem ocorrer.
Cuando isso or interessante, essas regi,es podem ser demarcadas por meio de ret=ngulos com
lin4as trace2adas. Um exemplo desta nota!'o encontra"se na igura #@ a seguir.
Na igura #@ acima, representa"se que o evento de requisi!'o de cancelamento de pedido s&
pode acontecer na regi'o demarcada, ou se2a, enquanto alguma das a!,es dentro da regi'o estiverem
sendo executadas. Eor a da regi'o de interrup!'o, o evento n'o deve ser considerado.
Figura 1.: 2egies de 9!terrup)o
Pontos de Etenso
-ara evitar que lin4as longas conectando pontos extremos de um diagrama tornem o
diagrama muito polu+do, podem ser utilizados pontos de extens'o. Um exemplo de um ponto de
extens'o pode ser visto na igura #A a seguir:
Figura 10: Po!tos de Exte!s)o
Parties
3em o conceito de parti!,es, os diagramas de atividade UML uncionam meramente como
extens,es de luxogramas. . introdu!'o do conceito de parti!'o traz toda uma rica gama de
representa!,es para os diagramas UML. .s parti!,es podem ser representadas como indicado na
igura /$ a seguir.
Figura 21: Exemplos de Parties
.s parti!,es servem para indicar que dierentes a!,es s'o executadas por dierentes agentes
dentro de um processo. O caso mais interessante e que dos mais importantes para n&s utilizar
diagramas de atividade com parti!,es para representar casos de uso. Nesse caso, uma parti!'o
utilizada para representar o usurio e outra para representar o sistema. Um exemplo apresentado
na igura /# a seguir.
Figura 21: 3so de Diagrama de Atividades para 2eprese!tar 8asos de 3so
0iagramas de atividade como os da igura /# s'o utilizados para detal4ar os casos de uso
levantados durante a especiica!'o do sistema. Nesses diagramas, assume"se que o usurio do
sistema realiza certas a!,es e o sistema, em resposta, reage realizando certas tareas. :om isso, o
comportamento do sistema pode ser especiicado.
Outros Re!ursos em Diagramas de Atividades
Os diagramas de atividades possuem ainda, de acordo com a vers'o /.5 da norma UML, outros
recursos n'o apresentados aqui neste texto, que podem elevar so)remaneira a complexidade do
diagrama. 0entre eles, o recurso de regi,es de expans'o, os pinos de entrada e sa+da, os n&s
estruturados, os con2untos de par=metros e outros, podem ser consultados diretamente no texto da
norma.
Diagramas de Estado "#$%uinas de Estado&
Os diagramas de estado 7ou mquinas de estado, como aparecem na vers'o /.5 da norma
UML8 s'o utilizadas para modelar um comportamento discreto em sistemas de transi!'o entre
estados initos. (xistem )asicamente dois usos para mquinas de estado: mquinas de estado
comportamentais e mquinas de estado para protocolos.
Mquinas de estado comportamentais podem ser utilizadas para especiicar o
comportamento de vrios tipos de elementos. -or exemplo, podem ser utilizadas para modelar o
comportamento de entidades individuais 7o)2etos8, por meio da modiica!'o dos valores de seus
atri)utos. O ormalismo de mquina de estados neste caso uma variante orientada a o)2etos dos
Statec:arts de Farel.
Mquinas de estado para representar protocolos expressam as transi!,es legais que um
o)2eto pode desenvolver. :om seu uso, pode"se deinir o ciclo de vida de o)2etos, ou uma determina
ordem na invoca!'o de suas opera!,es. -ara este tipo de mquina de estado, interaces e portas
podem estar associados.
Os diagramas de estado UML possuem diversos detal4es que o tornam uma poderosa
erramenta para a modelagem de transi!'o entre estados. (ntretanto, neste texto, n'o iremos tratar
de todos seus recursos, nos limitando a a)ordar suas caracter+sticas )sicas. Leitores interessados
nos detal4es mais soisticados devem se remeter diretamente * norma.
Estado
Um estado modela uma situa!'o durante a qual alguma condi!'o 7usualmente impl+cita8 se
mantm. (ssa invari=ncia tanto pode representar uma situa!'o esttica, como um o)2eto aguardando
que um evento externo ocorra, como condi!,es din=micas, como um processo apresentando um
determinado comportamento. . nota!'o para um estado pode ser visualizada na igura // a)aixo.
Figura 22: 2eprese!ta)o para um Estado
.lternativamente, um estado pode ter seu espa!o interno su)dividido em compartimentos,
conorme ilustra a igura /5.
Figura 23: Exemplo de Estado com 8ompartime!to 9!ter!o
O compartimento interno pode a)rigar uma lista de a!,es ou atividades que podem ser
realizadas quando se entra 7e!tr;8, sai 7exit8 ou permanece 7do8 no estado. Outros tipos de
comportamentos podem tam)m ser deinidos. . igura /6 mostra um exemplo de um pequeno
diagrama de estados que usa esses recursos.
Figura 2: Exemplo de um Diagrama de Estado
. nota!'o para os arcos que ligam os estados pode assumir a seguinte sintaxe, visualizada na
igura /9.
Figura 2%: 7ota)o para os Arcos e!tre Estados
Os estados n'o necessariamente precisam utilizar os compartimentos internos. O diagrama
mostrado a seguir na igura /> tam)m um diagrama de estados.
Figura 2&: Estados sem 8ompartime!tos 9!ter!os
Os diagramas de estado UML podem adquirir n+veis )astante soisticados de complexidade.
. igura /? a seguir ilustra um pouco da complexidade poss+vel
Figura 2+: Diagrama de Estados mais 8omplexo
:omo os estados de um diagrama de estados n'o demandam o uso dos compartimentos
internos, o)serva"se que a nota!'o )astante semel4ante * nota!'o de uma a!'o em um diagrama
de atividades. necessrio, entretanto, deixar claro que os dois diagramas t%m uma sem=ntica
)astante dierente entre si. Nos diagramas de atividades, o comportamento est expresso
undamentalmente nos n&s do diagrama. :ada n& representa um peda!o de comportamento. No
diagrama de estados, ao contrrio, todo o comportamento se encontra nos arcos do diagrama, sendo
que os n&s do diagrama de estados representa o que est nos arcos do diagrama de atividades, e os
n&s dos diagramas de atividades representam o que est nos arcos dos diagramas de estado. .ssim,
apesar de visualmente )astante similares, do ponto de vista sem=ntico, o que representado em
cada diagrama exatamente o oposto um do outro.
(m termos notacionais, 2 4ouve uma grande mudan!a nos diagramas de atividades e
diagramas de estado, passando"se da norma UML # para o UML /. .s a!,es do diagrama de
atividades no UML # tin4a uma nota!'o ligeiramente dierente da atual, que se az muito mais
pr&xima dos estados do diagrama de estados. (ste autor sup,e que no uturo, novas modiica!,es
poder'o ocorrer nestes diagramas, para evitar am)iguidades.

Você também pode gostar