46 Engenharia de Software Magazine - Diagramas de Atividades
Geraldo Magela Dutra Gonalves
geraldo.magela@ufjf.edu.br graduado em Engenharia Civil e possui es- pecializao em Anlise e Desenvolvimento de Sistemas, ambas pela Universidade Federal de Juiz de Fora. tcnico em TI da Universidade Federal de Juiz de Fora onde trabalha com desenvolvimento de sistemas de informao e informtica desde 1988. professor do Curso Superior de Tecnologia em Anlise e Desenvol- vimento de Sistemas da Fundao Dom Andr Arcoverde em Valena, RJ. De que se trata o artigo? Esse artigo apresenta o Diagrama de Atividades, modelo disponvel na UML para modelagem de aes/atividades bem como uxo de controle entre elas. Essa representao pode se dar em vrios nveis diferentes demonstrando a versati- lidade dessa ferramenta. Diagramas de ativida- des podem ser poderosos aliados no esforo de documentar de forma eciente um sistema em construo. Para que serve? O artigo pretende estabelecer um guia descom- plicado para estudantes e prossionais envolvi- dos em anlise e desenvolvimento de sistemas de informao. Ao reunir as caractersticas mais utilizadas da notao, facilita o enquadramento das diversas situaes de modelagem em busca de facilidade e clareza. Em que situao o tema til? Tanto para equipes de desenvolvimento nas or- ganizaes onde to preterida a atividade de documentao, quanto no ambiente acadmico, pela imensa e generalizada aplicao que se faz nesses ambientes da UML Linguagem de Mo- delagem Unicada. Diagramas de Atividades Abordagem Prtica Parte 3 A abordagem prtica apresen- tada nessa sequncia de ar- t igos chega aos diagramas de atividades, ferramenta fecunda de modelagem, herdeira e sucessora dos fluxogramas utilizados no passado para declarao de lgica de programas. Esse parentesco pode, a princpio, despertar desconfiana numa parcela da comuni- dade de desenvolvedores, por indicar uma ferramenta orientada a processos e no aderente orientao a objetos. Mas esse preconceito no se justifica: alm de trazer consigo a frtil notao original dos fluxogramas, destinada representao de estruturas sequencias de deciso e de repetio, os diagramas de atividades incorporam notao adi- cional para representao de fluxos de controle concorrentes e de fluxos de controle tempo-dependentes (apesar da UML oferecer um diagrama especfico para essa necessidade, o diagrama de temporizao), duas ocorrncias mui- to comuns em modernos sistemas de informaes. Desenvolvimento Nesta seo voc encontra artigos voltados para diferentes abordagens de apoio ao desenvolvimento de projetos de software Edio 31 - Engenharia de Software Magazine 47 PROJETO Diagramas de atividades modelam aspectos dinmicos dos sistemas, e nessa caracterstica reside sua maior qualidade: versatilidade. Como um conjunto de notaes destinado a representar fluxos de controle, sua utilizao no se restringe ao mbito computacional, estendendo-se deste ao mbito organizacional. Em sntese, diagramas de atividades podem ser emprega- dos para descrever complexos processos de negcio, fluxos de controle de casos de uso ou at simplesmente a estrutura algortmica de funes individuais integrantes de atividades de um sistema. Quando associados ao escopo de uma classe ou ao escopo de um conjunto de classes (um pacote, por exem- plo), podem representar a progresso da passagem de controle entre mtodos das mesmas, documentando eficientemente as cadeias de aes desenvolvidas pelo sistema. Um diagrama de atividades pode referir-se ao script realizado pelos mtodos de uma classe controladora de um caso de uso, dando nfase s atividades e aes, e no troca de mensagens. Esse tipo de representao complementar representao dos diagramas de interao gerando um conjunto consistente. Diagramas de atividades trazem tambm alguma herana de redes PERT (Program Evaluation and Review Technique), tcnica utilizada em engenharia civil para estabelecer a rede de atividades a serem desenvolvidas em um canteiro de obras e determinar, entre outras coisas, em combinao com a tcnica CPM (Critical Path Method ), o caminho crtico dessa rede de atividades, ou seja, aquele que determina o tempo total de durao das atividades. Definies bsicas e notao Aparentados com os diagramas de transio de estados, dia- gramas de atividades compartilham com aqueles uma parte significativa da notao. Estados de ao e estados de atividade so representados por um retngulo de cantos arredondados. De forma coerente com os diagramas de estados, aes so atmicas e atividades so conjuntos de aes e/ou atividades encadeadas. Um diagrama de atividades pode constituir uma grande ati- vidade (no atmica) formada por diversas aes (atmicas) e/ ou sub-atividades. Entre duas aes e/ou atividades, uma seta simboliza simplesmente o trmino de uma atividade e o incio da outra. Em princpio no necessrio rotular esse elemento, mas uma condio de guarda poder estar eventualmente as- sociada a ele. Os smbolos de incio e final so idnticos queles utilizados em diagramas de estados. A Figura 1, abaixo, apre- senta essa notao. Os fluxos de controle so tambm chamados transies, embora no estejam associados com eventos. Representam passagem de controle de uma atividade para outra. A literatura tcnica referencia isso como tokens, espcie de sinalizador de trmino de uma atividade e comeo da seguinte. Como parte da herana dos fluxogramas, diagramas de ati- vidades incorporam notao para representao de fluxos de controle sequenciais, assim como para ramificaes originadas a partir de decises. Caminhos alternativos so representados por um pequeno losango que simboliza alternativas possveis trilhadas atravs da avaliao de expresses de guarda. Adi- cionalmente, uma expresso de exceo (else) pode ser acres- centada. A mesma representao utilizada para fundir dois fluxos de controle. As junes no representam sincronizao, j que os caminhos da estrutura so mutuamente excludentes. Nas ramificaes obrigatria a presena de uma expresso de guarda associada a cada ramo, mas nas junes elas no se fazem necessrias. A Figura 2 mostra essa notao. Fluxogramas de sistemas e programas foram desenvolvidos em harmonia com o paradigma estruturado de desenvolvimento de sistemas (na verdade j existiam antes mesmo da programao estruturada), que admitia processar apenas um nico fluxo de controle por vez. Uma evoluo dos diagramas de atividades admitir e incentivar a representao de fluxos de controle concorrentes, caracterstica avanada das linguagens de progra- mao orientadas a objetos. Uma barra em negrito, horizontal ou vertical, utilizada para fazer a bifurcao. A partir dela, um nico fluxo de controle transforma-se em dois ou mais fluxos que executam simultaneamente. Quando tais fluxos so pro- cessados, aquele de maior durao determina a durao total da bifurcao (em semelhana s redes PERT/CPM) e o encerra- mento dos fluxos concorrentes s se d aps a sincronizao dos Figura 1. Notao bsica Figura 2. Pamificaoese1unoes 48 Engenharia de Software Magazine - Diagramas de Atividades mesmos. A mesma barra em negrito sincroniza fluxos paralelos e os finaliza. A Figura 3 mostra essa notao. Aplicao no nvel de processos de negcios Diagramas de atividades so empregados para modelar desde rotinas isoladas, fluxos de controle de casos de uso at os fluxos de controle de processos de negcio. Quando apli- cado ao nvel de negcios, um diagrama de atividades mostra diversas atividades que se encadeiam atravs da organizao e, embora constituam um mesmo sistema, so comumente desempenhadas por agentes diversos. Numa de suas mais versteis utilidades, os diagramas de atividades separam as atividades de cada agente envolvido em raias, espcie de com- partimento que isola as aes exclusivas de um agente sem, contudo, desconect-las do todo. Quando aplicadas ao escopo de classes, cada raia pode congregar os mtodos realizveis por instncias das mesmas, e o fluxo de controle entre elas. A notao de raias tem o aspecto destacado na Figura 4. Enquanto o fluxo de atividades realizado, diversas aes/ atividades manipulam objetos do sistema e eventualmente provocam mudanas em seus estados. Uma caracterstica interessante dos diagramas de atividades a representao de fluxos de objetos (ou talvez fosse melhor denominar essa representao de presena de objetos nos fluxos de controle). Os objetos envolvidos em determinadas atividades (sejam eles instanciados naquele momento, sejam materializados desde um banco de dados ou simplesmente tenham sofrido um transio de estado) so representados no diagrama de atividades com a mesma notao de objetos utilizada em diagramas de objetos. O estado que sofreu transao (se isso ocorreu) representado dentro do objeto entre colchetes. Um fluxo de controle flui pelo objeto em questo significando que a ao/atividade onde o flu- xo se origina manipula o objeto representado, e eventualmente provoca nele alguma transio de estado. Na Figura 5 esto representadas as notaes para fluxos de objetos. Figura 3. 8ifurcaoesesincronizaoes Figura 4. Raias Aplicao no nvel de fluxos de controle Para serem aplicados em diferentes escopos de utilizao, os diagramas de atividades dispem de um rico conjunto de no- taes. Representando rotinas, o desenvolvedor depara-se com as situaes comuns do nvel de programao, quais sejam, estruturas de deciso e estruturas de repetio/iterao. Embora as estruturas de iterao possam ser representadas com a notao mais bsica dos fluxogramas, os diagramas de atividades passaram a contar com notao adicional mais poderosa. Em determinadas situaes, as aes/atividades de uma regio de um diagrama de atividades devem ser aplica- das a um conjunto de elementos. Nessa situao, utilizam-se regies de expanso nos diagramas. Tais regies so representadas por uma linha tracejada que agrega um conjunto de aes/atividades que sero aplicadas a todos os elementos de um conjunto de entrada e geraro vrios elementos em um conjunto de sadas. Na entrada dessa regio de expanso coloca-se um elemento que representa a coleo de entrada; chamado pino de entrada da regio. De forma semelhante, na sada da regio de expanso situa-se um pino de sada, representando a coleo de sada da regio. Na maioria das vezes, a lista de entrada e a lista de sada tm tamanhos idnticos, mas isso no constitui uma regra. As ope- raes internas da regio de expanso podem estar associadas Figura 5. Fluxos de objetos Edio 31 - Engenharia de Software Magazine 49 PROJETO a expresses booleanas que controlam a incluso de objetos na matriz de sada; a matriz de sada, assim, pode conter menos elementos do que a matriz de entrada. Nessa situao, preciso utilizar um smbolo de final de fluxo, indicando que o fluxo termina ali, para um determinado objeto da coleo de entrada. A Figura 6 ilustra as notaes discutidas. Modelando aes/atividades tempo-dependentes A UML, em sua verso 2.0, disponibilizou um diagrama para modelagem tempo-dependente, os Diagramas de Temporiza- o, embora a literatura tcnica ainda no se refira muito a eles. De qualquer forma, os diagramas de atividades dispem de um subconjunto de notaes destinado a modelar situaes onde o tempo um fator preponderante. Estando sujeito a lapsos de tempo como fatores determinan- tes de sua lgica, um sistema precisa desenvolver habilidades para lidar com sinais. Estes entes so comumente gerados por entidades fora do sistema (embora possa haver sinais gerados internamente) e precisam ser reconhecidos por ele. Para tanto, Figura 6.Pegioesdeexpansao Figura 7. Modelagem de mecanismos tempo-dependentes dois smbolos de estados especiais so disponibilizados: um estado especial gerador de sinais e um estado especial reco- nhecedor de sinais. Adicionalmente, um smbolo de lapso de tempo est disponvel (uma pequena ampulheta), permitindo modelar a dependncia de um objeto, uma coleo de objetos (no caso mais til) ou ainda de toda uma cadeia de aes/atividades em relao ao tempo. Na Figura 7 esto representados dois trechos de um diagrama de atividades com mecanismos tempo-dependentes. No primeiro deles, a Atividade 2 s ser realizada quando as aes/ativida- des que a precedem estiverem concludas e sincronizadas. Por essa razo a barra de juno est direita das aes/atividades participantes. Se a Atividade 1 se completar antes da chegada do sinal, a juno aguardar at que ele chegue. Se o estado reconhecedor receber um sinal e Atividade 1 estiver incompleta, a juno ainda aguardar, at que ela se complete. No segundo exemplo, os fluxos de controle paralelos so independentes e esto em disputa; o primeiro a se completar encerra o fluxo principal. Por isso, a barra de bifurcao est esquerda das aes/atividades envolvidas. Em ambos os exemplos, existem restries de tempo indicadas pela ampulheta. Notaes complementares Existe uma regra de ouro para modeladores de sistemas com UML. Todo diagrama para ser til tem que ser legvel. Grandes diagramas tornam-se confusos e dificultam o trabalho de implementao que deveriam simplificar. O cruzamento de diversas linhas nos diagramas so sempre um foco de poluio visual que prejudica sua legibilidade. Como auxlio, para evitar sucessivos cruzamentos, existem os conectores. Eles servem para conectar aes/atividades que estejam em regies afastadas do mesmo diagrama, evitando que longas linhas o cruzem. Quando usadas para modelar fluxos de trabalho ou opera- es, as atividades s vezes representam exatamente um mto- do de determinada classe e nesse sentido possuem parmetros exatamente como esses. Se um diagrama de atividades usa atividades representando mtodos que dependam de par- metros de entrada, assim como necessitem gerar um retorno de um determinado tipo, eles podem ser representados por pinos, afixados no smbolo da atividade. Aplicando as notaes para obter diagramas teis Para exemplificar o desenvolvimento de diagramas de ati- vidades claros e teis, o contexto apresentado e trabalhado nos dois primeiros artigos dessa srie mantido. O escopo simples e tem a vantagem de possuir regras de negcio bastante intuitivas, o que simplifica seu entendimento. Modelando lgica controladora de casos de uso Uma primeira aplicao, embora no a mais nobre, dos diagra- mas de atividades na modelagem da lgica controladora de um caso de uso. Se o desenvolvedor optou por adotar um padro de desenvolvimento em camadas, tal lgica estar presente em diversas classes controladoras, cada caso de uso contando com 50 Engenharia de Software Magazine - Diagramas de Atividades uma ou mais classes dessa categoria, dependendo da quantidade de cenrios desse caso de uso. A Figura 8 apresenta uma proposta de representao nesse nvel. Embora estejam representadas apenas atividades, alguns nodos do diagrama poderiam ser aes ou sub-atividades. Alguma argumentao contra esse tipo de emprego apia-se no fato de que os casos de uso j estaro especificados e que os diagramas de sequncia j capturaram a abstrao de envio de mensagens com o rigor necessrio, mas as descries textuais dos casos de uso so um tanto pobres para representar deci- ses, iteraes e processamento paralelo, e nesse particular, ao contrrio, as representaes implementadas pelos diagramas de atividades so bastante ricas. Parece adequado concluir que, embora um diagrama de ativi- dades no deva substituir a especificao textual detalhada de um caso de uso ele pode ter um carter complementar, sobre- maneira para fluxos de controle no triviais. Adicionalmente podem ser mostradas raias, separando as responsabilidades de diversas classes. Modelando operaes e regras de negcio Uma segunda maneira de emprego dos diagramas de ati- vidades na modelagem da lgica de uma operao ou na modelagem de uma regra de negcio. Na verdade essas duas formas de representao so equivalentes, pois uma operao complexa quase sempre uma operao que implementa uma ou mais regras de negcio no triviais. Com um ou outro nome, os diagramas de atividades estaro, nesse caso, repre- sentando estruturas algortmicas bem prximas do nvel de programao. Para exemplificar esse emprego, considera-se um segundo caso de uso no contexto de controle acadmico descrito no Quadro 1. A especificao de casos de uso descreve textualmente as regras de negcio empregadas em suas implementaes, e essa tarefa, dependendo da complexidade da regra de neg- cio, pode tornar-se difcil, tediosa e contra producente. Para regras de negcio mais complexas e destinadas leitura por uma audincia de tcnicos, muito mais produtivo e eficiente descrev-las com diagramas de atividades. Mais uma vez, no se trata de eliminar a descrio textual do caso de uso, mas de complement-la e at mesmo enriquec-la com diagramas de atividades. A Figura 9 apresenta um diagrama compacto que apresenta de forma muito mais clara a RN01 descrita acima. Modelando processos de negcio Uma ltima forma de utilizao dos diagramas de atividades a de representao de processos de negcio. til quando os processos desenvolvidos pela organizao so de mediana a grande complexidade e principalmente quando tais processos, mesmo inseridos em um nico grande fluxo de trabalho, so desempenhados por numeroso agentes diferentes, em sees e departamentos diferentes. Nessa situao, os diagramas de atividades capturam de forma singular as dependncias existentes entre estes processos e sua sequncia natural, fornecendo excelente viso do todo. A Figura 10, embora Figura 8. Modelagem do fluxo de controle do caso de uso CriarMatrcula AnalisarAprovao (CSU002) Sumrio: A secretaria dispara esse caso de uso para um aluno ou para um conjunto de alunos, obedecendo a um calendrio letivo. Ator Primrio: Secretaria Pre-condies: A secretria est logada no sistema. Fluxo Principal: ... Fluxo Alternativo: ... Fluxo de exceo: ... Ps-condies: Relaes com alunos aprovados e reprovados podem ser emitidas. Regras de Negcio: RN01: Para obter aprovao em uma determinada disciplina o aluno deve: 1. obter freqncia nas aulas no inferior a 75% do total de aulas ministradas no semestre. 2. perfazer mdia de avaliaes parciais (duas) no inferior a 3,0 pontos numa escala de 0 a 10 pontos. 3. se a mdia de avaliaes parciais for igual ou superior a 7,0 pontos o aluno estar aprovado na referida disciplina. 4. se a mdia de avaliaes parciais for inferior a 7,0 pontos mas no inferior a 3,0 pontos o aluno estar habilitado a prestar exames finais. 5. para obter aprovao na disciplina o aluno dever logra nota no exame final que produza mdia final igual ou superior a 5,0 pontos. Quadro 1. Especificao do caso de uso AnalisarAprovao bastante simplificada, ilustra o emprego da ferramenta com esse escopo. Resumindo as boas prticas Existem dezenas de dicas teis para se conseguir gerar bons diagramas de atividades. Antes de procurar enumer-las, en- tretanto, existe uma considerao sobre a aplicabilidade dos diagramas de atividades que vale a pena explorar. Diagramas de atividades na verdade parecem se situar na fronteira entre UML como linguagem declarativa e UML como uma lingua- gem executvel. Isso pode soar fantasioso, mas na verdade, no . Diagramas de atividades representam atividades e aes (ao computacional, atmica) o que abre uma possibilidade real de gerar cdigo til a partir deles. Martin Fowler, em seu livro UML Essencial, faz consideraes sobre uma UML exe- cutvel, embora sem demonstrar grande entusiasmo. Mas o estudo detalhado das possibilidades um assunto no mnimo muito frtil. Edio 31 - Engenharia de Software Magazine 51 PROJETO Figura 9. Diagrama de atividades de uma operao ou regra de negcio O Guia do Usurio UML, indicado na bibliografia, enumera dicas valiosas para o emprego dos diagramas em dois nveis: modelagem de fluxos de trabalho (o mesmo que processos de negcio) e na modelagem de uma operao no trivial. Operaes triviais e repetitivas, como operaes bsicas sobre cadastros, por exemplo, no necessitam modelagem; elas so demasiadamente triviais para serem facilmente desenvolvi- das por programadores experientes. Em relao modelagem de processos de negcio, funda- mental estabelecer quais processos sero representados e no procurar incluir todos eles; isso quase sempre impossvel. Uma boa medida decidir primeiro a importncia de deter- minados objetos, para depois incluir processos de negcio relativos aos primeiros. Cuidados especiais devem ser tomados na determinao de pr-condies e ps-condies de execuo do diagrama como um todo; esta uma maneira de, partindo de uma condio inicial, alcanar um objetivo claro, que mantm coerente o fluxo de operaes. preciso ter ou obter uma viso bem clara da sequencialidade entre as aes/atividades declaradas importantes. Quando certas partes de um diagra- ma apresentam-se em mais de um lugar dentro do diagrama, podem ser modeladas em diagramas exclusivos que sero referenciados no diagrama original. Uma das potencialidades da UML ser flexvel. Existem as sintaxes bsicas, mas elas admitem representaes customiza- das. tudo uma questo de uso racional da metodologia com anuncia dos membros de uma equipe de projeto. Para usar de forma no cannica a linguagem necessrio ser criativo e inovar, e produzir diagramas legveis e teis. Quando o uso das notaes mais ordinrias comear a produzir diagramas confusos, hora de procurar substitu-las por notaes alterna- tivas simplificadoras. Assim, pensam-se os fluxos sequenciais em primeira instncia, ramificaes, e finalmente, em proces- samentos paralelos. Esses ltimos so to comuns no mbito computacional quanto no mbito organizacional. Como ltima medida deve-se considerar a representao de objetos no fluxo de trabalho como uma caracterstica muito Figura 10. Diagrama de atividades modelando processos de negcio importante. Importante por que promove integrao e exige consistncia entre diversos modelos desenvolvidos por um sistema: quando um objeto representado no diagrama de atividades, ele precisa estar presente no diagrama de classes desenvolvido priori; quando um estado de determinado objeto exibido no diagrama de atividades, ele tem que estar definido no diagrama de transio de estados daquele objeto e tem que resultar de uma transio vlida declarada l; quando uma regio de expanso utilizada no diagrama de ativida- des, a matriz de entrada geralmente uma lista de objetos, um multi-objeto que dever estar devidamente presente em algum diagrama de sequncia. Essas dependncias entre os diagramas os tornam coesos e consistentes. A modelagem de operaes pode estar associada a qual- quer elemento participante de qualquer modelo do sistema. Se uma operao um mtodo de uma classe, um diagrama de atividades que a modele estar associado a essa classe. Se uma operao participa de um caso de uso, um diagrama de atividades estar associado a esse caso de uso. De qualquer forma, aplicado com esse escopo, os diagramas de ativida- des estaro representando lgica intrnseca ao elemento ao qual se associam. Para representar lgica nesse nvel mais baixo necessrio estar atento a entidades e comportamentos puramente com- putacionais, como parmetros e tipos de retorno, assim como atributos de classes participantes. Pr-condies e ps-con- dies continuam teis para nortear o rumo das atividades. Nesse escopo, os nodos do diagrama tendem mais a ser aes do que atividades. As ramificaes estaro representando estruturas de deciso. Aes computacionais concorrentes devem pertencer a classes ativas (admitem threads). Como considerao final sobre o emprego de diagramas de atividades, considere que seu uso deve ser complementar aos diagramas mais objeto-orientados natos, por assim dizer. Diagramas de sequncia e diagramas de casos de uso devem ser enriquecidos com diagramas de ativida- des. O foco a organizao em classes de objetos, no em funcionalidades. 52 Engenharia de Software Magazine - Diagramas de Atividades Concluso Os diagramas de atividades, assim como diagramas de sequ- ncia e diagramas de estados, so ferramentas poderosas de modelagem de sistemas. A resistncia demonstrada em adotar seu uso pela comunidade de desenvolvedores reside muito mais em uma cultura bem antiga arraigada nessa comunidade do que em crticas quanto sua eficcia ou aplicabilidade. Na verdade, desenvolvedores foram e so resistentes em de- senvolver documentao, tanto de baixo nvel (programas bem comentados) quanto de alto nvel (documentao de sistema). Esse fenmeno consequncia de uma cultura voltada para o imediatismo e pela concluso falaciosa de que sua supresso abrevia o tempo de entrega do produto. Embora isso possa at ser verdadeiro numa primeira avalia- o, as consequncias dessa prtica podem revelar-se extre- mamente onerosas na mais importante fase do ciclo de vida dos sistemas: sua manuteno. Documentao de alto nvel bem estruturada, um auxlio inestimvel na localizao de artefatos que necessitem manuteno e embora isso seja sabido h dcadas, nada mudou significativamente de l pra c. Essa cultura s pode ser combatida na base, na prpria formao do profissional que atua na rea. Em relao ao emprego dos diagramas de atividades, a mes- ma postura pragmtica adotada para diagramas de sequncia e para diagramas de estados se aplica. A abordagem prtica no deve tentar justificar documentao pobre. Trata-se de alcanar um nvel de detalhamento que documente e fornea suporte, sem se transformar numa tarefa consumidora de recursos de pessoal e de tempo excessivos. Esse ajuste peculiar, tanto para projetos quanto para equipes. Para serem teis, diagramas de atividades devem apenas ser complementares s abstraes dos outros diagramas do modelo, enriquecendo-os, e nunca os substituindo. Como regra geral, o emprego dos diagramas de atividades deve ser explorado em necessidades especficas de modelagem. Quando se torna necessrio compreender e modelar casos de uso no triviais, a representao do fluxo de controle entre as aes/atividades participantes pode contribuir muito. As vises complementares fornecem input real para implemen- taes mais elegantes e mais manutenveis. Conforme j foi mencionado, operaes triviais no neces- sitam modelagem. Operaes bsicas sobre cadastros, por exemplo, costumam produzir diagramas de atividades muito parecidos, tornando-os desnecessrios. claro que o projetista confia na capacidade de seus programadores para desenvolv- las corretamente. Entretanto, algumas operaes assumem importncia tal, a ponto de tornarem-se fatores crticos para o sucesso de determinado sistema. Alem destas, algumas operaes, embora sem apresentar um grau muito elevado de complexidade, podem empregar uma grande quantidade de regras de negcio muito especficas de um domnio parti- cular. Em ambos os casos, faz-se necessrio apresentar uma especificao da lgica dessas operaes, o que pode ser feito com facilidade utilizando-se diagramas de atividades. Na representao de fluxos de controle concorrentes, diagramas de atividades so insubstituveis. Em contrapartida, existem situaes em que o emprego dos diagramas de atividades deve ser evitado. Uma delas quando se faz necessrio analisar como os objetos em uma colaborao realizam um caso de uso. Essa abstrao da competncia dos diagramas de sequncia. A incluso, em um diagrama de atividades, de todos os objetos que participam da colaborao, o tornaria extremamente confuso e descaracterizado. Outra atribuio que no deve ser investigada por diagramas de ati- vidades como um objeto muda seus estados durante seu ciclo de vida. Embora os objetos possam figurar entre os elementos dos diagramas de atividades, e embora seus estados possam ser representados ali, demonstrar todas as transies a que esto sujeitos, assim como os estados resultantes, atribuio dos diagramas de transio de estados. Todavia, a representao de objetos nos diagramas de atividades conecta-os aos diagramas de estados, produzindo consistncia. A sintaxe rigorosa, assim como a interdependncia de notao e consistncia entre os diagramas de estados, diagramas de sequncia e os diagramas de atividades, proporcionam uma base estvel para que desenvolvedores de ferramentas CASE de modelagem de projetos produzam sutes cada vez mais teis e confiveis, que explorem com robustez a consistncia entre modelos, tarefa que pode se tornar impraticvel para seres humanos, notadamente em projetos de nvel mdio a alto de complexidade. BEZERRA, Eduardo. Princpios de anlise e projeto de sistemas com UML. 2.ed. Rio de Janeiro: Campus-Elsevier, 2007. 370p. BOOCH, Grady; RUMBAUGH, James; Jacobson, IVAR. UML: Guia do Usurio. 2.ed. Rio de Janeiro: Campus-Elsevier, 2006. 474p. FOWLER, Martin. UML essencial: um breve guia para a linguagem padro de modelagem de objetos. 3.ed., Porto Alegre: Bookman, 2006. 160p. BLAHA, Michael; RUMBAUGH, James. Modelagem e projetos baseados em objetos com UML 2.2.ed. Rio de Janeiro: Campus-Elsevier, 2006. 496p. Bibliografia D seu feedback sobre esta edio! A Engenharia de Software Magazine tem que ser feita ao seu gosto. Para isso, precisamos saber o que voc, leitor, acha da revista! D seu voto sobre este artigo, atravs do link: www.devmedia.com.br/esmag/feedback D