Você está na página 1de 20

UNIDADE 8

Modelos de estados
Objetivos de aprendizagem

Reconhecer objetivos e caractersticas existentes na modelagem da viso dinmica do projeto. Compreender a notao utilizada nos diagramas que complementam a especificao do modelo dinmico do sistema. Reconhecer as possibilidades de utilizao e as notaes envolvidas no diagrama de estados e no diagrama de atividades.

Sees de estudo
Seo 1 Seo 2 Seo 3 Modelo de estados Modelo de atividades Consideraes sobre o uso da orientao a objetos

Universidade do Sul de Santa Catarina

Para incio de estudo


O modelo dinmico do sistema completa-se a partir de cinco diagramas: o de atividades, o de sequncia, os de colaborao, o de estados e o de casos de uso. Cada um desses diagramas especifica e esclarece aspectos diferentes do sistema. At este momento, voc estudou trs desses diagramas (casos de uso, colaborao e sequncia). Nesta unidade, sero apresentados os diagramas de transio de estado que modelam o comportamento de um objeto e o diagrama de atividade que modela a sequncia geral de aes para vrios objetos e casos de uso. Imagine um semforo de rua. possvel prever trs estados para ele: verde, amarelo e vermelho. O diagrama que permite especificar essa transio entre os eventos o diagrama de estados. A mudana de estado dispara aes diferentes do sistema, que, por sua vez, modificam o estado do objeto (sinal vermelho: ao parar!). J os diagramas de atividade conseguem especificar situaes, como paralelismos e sincronizaes, que so impossveis de serem especificadas no diagrama de casos de uso.

Seo 1 Modelo de estados


Os objetos de um sistema modificam seu estado de forma anloga a objetos do mundo real. Pense no cozimento do macarro. Em seu primeiro estado, ele est duro, pois no est cozido. Depois de cozido ele amolecer e assim entra em outro estado. Essa modificao chamada de transio entre estados. Voc pode dizer que um estado representa o resultado de atividades executadas por um objeto, determinada pelos valores de seus atributos e pela sua ligao com outros objetos (FURLAN, 1998).
206

Metodologias e Projetos de Software

Os objetos do sistema passam por vrios estados. Essa transio faz com o prprio sistema se modifique. Na verdade, a transio ocorre porque um evento (mensagens, timer, erros, condies sendo satisfeitas, entre outros) disparado no sistema faz com que o objeto realize determinadas aes, que fazem com que o objeto modifique seu estado.
O diagrama de estados (DTE) deve ser utilizado somente para algumas classes, ou seja, somente para aqueles que possuem estados bem definidos e onde a mudana de estados propicia a mudana do comportamento das classes.

No diagrama a seguir, possvel mapear os possveis estados dos objetos e as aes e condies necessrias para que ocorra a mudana de estados entre os objetos.

Figura 8.1 Diagrama de estados elevador Fonte: Elaborao da autora (2008).

O DTE dessa figura mostra:


os estados de um objeto; os eventos ou as mensagens que causam transio; as aes que resultam de uma mudana de estado.

Unidade 8

207

Universidade do Sul de Santa Catarina

Quais so os componentes de um diagrama de estados?

A existncia de estado em um objeto indica a ordem em que as operaes so executadas. No DTE, importante a descrio da ordem das operaes no tempo, pois essa ordem pode formalizar a caracterizao do comportamento de um objeto. O DTE utiliza-se de alguns componentes, so eles: a) Estado uma situao na vida de um objeto durante a qual ele satisfaz alguma condio ou realiza alguma atividade em resposta a um evento ou espera a ocorrncia de algum evento. No diagrama DTE, o estado representado por um retngulo arredondado.
Emitindo nota/O macarro est cozido/O menino est nadando. Objetos: nota, macarro, menino. Estado: emitindo, cozido, nadando.

Figura 8.2 Exemplos de estados Fonte: Elaborao da autora (2008).

b) Estado inicial O estado inicial de um objeto ocorre quando ele criado. Ele representado por um pequeno crculo fechado. Indica a partir de onde o DTE deve ser lido. Para cada DTE, voc s tem um estado inicial.

208

Metodologias e Projetos de Software

Figura 8.3 Estado inicial Fonte: Elaborao da autora (2008).

c) Estado final O estado final indica o final do ciclo de vida de um objeto. Ele representado por um crculo eclipsado. O estado final opcional e pode existir mais de um em um mesmo DTE.

Figura 8.4 Estado final Fonte: Elaborao da autora (2008).

Figura 8.5 Exemplo DTE Fonte: Elaborao da autora (2008).

No diagrama da figura 8.5, o estado final acontece logo depois da atualizao do estoque que modifica o estado do objeto em estoque. d) Transio Quando a ao ou atividade de um estado est completa, o fluxo de controle passa ao estado seguinte de ao. Especifica-se esse fluxo utilizando transies para mostrar o caminho de um estado de ao ou de atividade para o estado seguinte. Graficamente voc representa a transio por uma linha simples com uma direo. As transies no ativadas podem ter condies de proteo, significando que a transio ser iniciada somente se essa condio for satisfeita.

Unidade 8

209

Universidade do Sul de Santa Catarina

Imagine quando voc est no banheiro pronto para iniciar o banho. Automaticamente voc pensa em duas possibilidades: o estado do chuveiro est ligado ou desligado. Em outras palavras: voc pode representar isso em um diagrama de estados. Nesse DTE, o evento girar a torneira; e as aes so abrir e fechar.

Figura 8.6 Exemplo DTE tomar banho Fonte: Elaborao da autora (2008).

Furlan (1998) define quatro possibilidades de eventos em um DTE:

Recibo de sinal explcito do outro objeto So gatilhos de uma transio (recibo de mensagens). O objeto recebe um sinal de outro objeto e muda de estado. Neste tipo de evento, o objeto que envia a mensagem fica esperando a sua finalizao. Passagem de perodo designado de tempo O evento acontecer aps um determinado perodo de tempo, disparando a mudana de estados. Nesse tipo de evento, utiliza-se a clusula after. Por exemplo: se voc tiver o evento after (1 minuto), significa que o evento ser executado um minuto depois de o objeto entrar no estado atual. Uma condio tornando-se verdadeira mostrada uma condio de guarda em uma transio de estados. Nesse caso, voc utiliza a clusula when, por exemplo, when (quantidade < 5), e ento a transio disparada se a quantidade for menor que 5. Recibo de chamada de operao pelo prprio ou por outro objeto mostrada como uma assinatura de evento em transio de estado. Um objeto solicita um servio a outro objeto.

210

Metodologias e Projetos de Software

Figura 8.7 DTE para matrcula de um curso Fonte: Esmin (1999).

Quando voc possui uma ao, ela possui um processo, que a transio do estado. Essa transio normalmente um processo de curta durao e que no pode ser interrompido. Muitas vezes, em vez de aes voc pode ter atividades relacionadas. Quando isso acontece, voc tambm possui um processo associado, mas o processo est associado a um estado. O processo mais duradouro e a atividade pode ser eventualmente interrompida por um evento.
A condio de guarda uma expresso de valor lgico usada em uma transio. Voc pode definir a condio utilizando-se parmetros, referncias e ligaes da classe. Observe na figura 8.7: s ser includo um aluno no curso se o contador for menor que 10.

Unidade 8

211

Universidade do Sul de Santa Catarina

Quando voc define uma condio de guarda, ela s disparada se o evento associado ocorrer e se a condio for verdadeira. A condio de guarda sempre aparece no DTE com o uso de colchetes, como:
Realizar_saque (quantia) [quantia=saldo]/sacar (quantia)

No diagrama da figura 8.8, Lima (2005) apresenta um DTE para Pedidos. O pedido pode ser confirmado ou cancelado pelo cliente. O estado Pendente possui uma ao reflexiva Pedidos Pendentes. Ao finalizar o Pedido, o estado do Pedido estar alterado.

Figura 8.8 DTE Emitir Pedido Fonte: Lima (2005).

212

Metodologias e Projetos de Software

Lembre-se, utilize o diagrama de transio de estados para:

descrever o comportamento de um objeto ao longo de vrios casos de uso; modelar objeto dotado de comportamento muito dinmico.

Seo 2 Modelo de atividades


O diagrama de atividades o quarto diagrama responsvel pela descrio dos aspectos dinmicos de um caso de uso. O diagrama de atividade modela a lgica utilizada em um caso de uso. Neste caso, o diagrama de atividade permite apresentar interaes, decises e passos executados em paralelo impossveis de representar somente com o caso de uso. Pode ser utilizado para descrever um processo de negcio, a partir da necessidade de entender melhor um problema. O diagrama vai permitir que voc entenda melhor o comportamento do sistema, no decorrer dos diversos casos de uso. Esse modelo tambm utilizado para especificar a programao com multithreading. O diagrama de atividade lembra muito o antigo fluxograma, lembra-se dele? O diagrama de atividade deve ser usado em situaes em que todos ou a maioria dos eventos representam a concluso das aes geradas internamente ou seja, os fluxos processuais de controle e em situaes onde acontecem eventos assncronos. O diagrama permite escolher a ordem pela qual as coisas devem ser feitas, indicando as regras essenciais de sequncia que devem ser seguidas.

Unidade 8

213

Universidade do Sul de Santa Catarina

O conceito de multithreading utiliza o conceito de thread que considerado um processo leve, em que o espao de endereamento compartilhado por vrios programas. No ambiente multithreading, no existe a ideia de programas associados a processos, mas a threads. O processo nesse ambiente tem um thread de execuo, mas compartilha o espao de endereamento com inmeros outros threads (MACHADO, 2002).

Para Furlan (1998), os diagramas de atividades podem modelar o sistema de duas maneiras:

Para modelar o fluxo de trabalho As atividades so focalizadas conforme visualizadas pelo ator. Por exemplo, no fluxo de trabalho de processamento de um pedido incluir classes como Pedido e Cobrana. As instncias dessas duas classes sero produzidas por determinadas atividades (processar pedido criar um objeto Pedido, por exemplo); outras atividades podero alterar esses objetos (por exemplo, Enviar pedido modificar o estado do objeto Pedido a ser preenchido). Para modelar uma operao Os diagramas so empregados como fluxogramas. O diagrama permite visualizar, especificar, construir e documentar o comportamento de qualquer elemento da modelagem. Os diagramas de atividades podem ser anexados a classes, interfaces, componentes, ns, casos de uso e colaborao.

Na figura 8.9, observe os possveis componentes de um diagrama de atividades.

214

Metodologias e Projetos de Software

Figura 8.9 Modelo de um diagrama de atividades Fonte: Elaborao da autora (2008).

O diagrama sempre tem um estado inicial e um estado final. A transio de trmino liga um estado a outro, ou seja, o trmino de um passo o incio de outro. Cada uma das aes disparada no momento em que ocorre o trmino do evento anterior. Os pontos de ramificaes so pontos em que, a partir de uma transio de entrada, voc pode ter vrias transies de sada. o caso das condies de guarda do diagrama. Os objetos apresentados no diagrama podem ser:

Atividade Representada pelo retngulo ovalado. Objeto Representado por um retngulo.

Unidade 8

215

Universidade do Sul de Santa Catarina

Seta cheia Relao de precedncia entre atividades. Seta pontilhada Consumo ou produo de objeto por atividade. Linha horizontal cheia Ponto de sincronizao. Pequeno crculo cheio Estado inicial. Pequeno crculo eclipsado Estado final.

No diagrama, voc percebe que existem dois fluxos paralelos (atividade 3 e 4) e que no existe limitao para o nmero de processos paralelos, pois a sincronizao desses fluxos acontece pelo uso de uma barra paralela. A barra pode ser utilizada para bifurcao ou juno. Se for uma barra de juno (join) (no diagrama aparece como sincronizao), dois ou mais fluxos de transio sero unidos em um nico fluxo. Se for uma barra de bifurcao a partir de uma transio de entrada, so criados dois ou mais fluxos paralelos (no diagrama aparece a bifurcao na condio de guarda se). Na figura a seguir, voc v o diagrama de atividade para o caso de uso realizar saque do sistema de caixa eletrnico.

216

Metodologias e Projetos de Software

ad Activity Diagram

Incio

Verificar existncia da conta e validade da senha

Seleciona a opo Saque

Informa o valor do saque

Cliente digita a senha

Informa erro

Senha Vlida?

No

Saldo Suficiente Informa Saldo Insuficiente

Realiza contagem das cdulas

Disponibiliza cdulas

Atualiza Saldo

Final

Figura 8.10. Diagrama Realizar Saque do Sistema de Caixa Eletrnico Fonte: Elaborao da autora (2008).

Unidade 8

217

Universidade do Sul de Santa Catarina

possvel observar pelo diagrama a sequncia de atividades que devem ser realizadas e a precedncia de cada atividade. Na figura a seguir, apresentado o diagrama de atividade para o caso de uso Gerar Contrato de Aluguel do sistema Imobilirio:
ad CSU05 Incio

Corretor Efetua Login

Selecionar Cliente

Selecionar Fiador

Avisa Cliente da Negativa

Dados Aprovados?

Sim

Secionar Imvel

Insere dados do aluguel

Contrato Imprime Contrato

Final

Figura 8.11 - Diagrama Gerar Contrato de Aluguel do Sistema Imobilirio Fonte: Elaborao da autora (2008).

218

Metodologias e Projetos de Software

Lembre-se, utilize o diagrama de atividade:


Para explicitar comportamentos paralelos; na modelagem de workflow; em caso de programao com multithreading; para melhor entendimento de workflow entre vrios casos de uso.
Workflow descreve tarefas dos processos de negcio (conjunto de uma ou mais atividades relacionadas que, coletivamente, atingem um objetivo) em um nvel conceitual necessrio para compreender, avaliar e reprojetar o processo de negcio (BORTOLI, 2004).

Seo 3 Consideraes sobre o uso da orientao a objetos


Durante este estudo no foram apresentados todos os diagramas e todas as vises possveis da UML. Na verdade, foram privilegiadas as vises consideradas fundamentais para qualquer desenvolvimento de software. A complementao pode ser feita por meio da leitura do livro UML: guia do usurio escrito por Booch, Rumbaugh e Jacobson, em 2000. Ao finalizar esta unidade, importante retomar um tema importante: quais so os benefcios do uso da orientao a objetos? Pode-se afirmar que o uso desse paradigma proporciona o melhor gerenciamento das funes do sistema, o aumento da produtividade pelo uso da reutilizao, a melhor qualidade dos servios oferecidos e a facilidade do mapeamento do mundo real versus o mundo computacional. Apesar de todas essas vantagens, o mercado ainda no absorveu completamente essa metodologia. Por qu? Furlan (1998) lista alguns motivos para tal quadro:

incerteza; falta de mo de obra qualificada;

Unidade 8

219

Universidade do Sul de Santa Catarina

ferramentas imaturas; O investimento da empresa j realizada em ferramentas no orientadas a objetos.

A introduo da UML, suas facilidades e o grande nmero de ferramentas que suportam sua notao vm gradativamente revertendo esse quadro. O grande potencial de comunicao e reaproveitamento pela reutilizao de modelos em futuras aplicaes tem aproximado empresas de desenvolvimento do modelo orientado a objetos. Agora, para praticar os conhecimentos conquistados nesta unidade, realize a seguir as atividades propostas.

Sntese
Com esta unidade, voc complementou seu conhecimento sobre a representao dinmica do sistema por meio de seus diagramas de atividade e estado. Os fluxos de estado so excelentes na descrio de fluxos complexos, permitindo a visualizao da execuo do caso de uso. O diagrama de estado descreve muito bem o comportamento de um nico objeto, mas quando o comportamento envolve diversos objetos mais adequado o uso do diagrama de atividades. O diagrama de atividades suporta a descrio de comportamentos paralelos modelando o fluxo de trabalho, principalmente quando diferentes casos de uso interagem entre si ou utilizam multiprocessamento. Outra situao de uso comum para o diagrama de atividade seu uso para entender o comportamento, dependncias das aes e as prprias aes necessrias na realizao do caso de uso.

220

Metodologias e Projetos de Software

Atividades de autoavaliao
Leia com ateno os enunciados e realize as questes propostas. 1) Complete as afirmaes a seguir. a) Esta modificao chamada de _______________ entre estados. b) Os ______________ representa o resultado de atividades executadas por um objeto. c) O ______________ indica o final do ciclo de vida de um objeto. d) Os ______________ de um sistema modificam seu estado de forma anloga a objetos do mundo real. 2) Indique se os conceitos a seguir fazem parte do diagrama de estados (DTE) ou do diagrama de atividade (DA). a) ( ) O diagrama mostra os estados de um objeto. b) ( ) O diagrama explicita comportamentos paralelos. c) ( ) O diagrama mostra os eventos ou as mensagens que causam uma transio. d) ( ) O diagrama apoia o entendimento de workflow entre vrios casos de uso. 3) Relacione os conceitos a seguir. Observe que uma mesma opo pode se repetir. A) After B) Estado inicial C) When D) Transient E) Join a) ( ) utilizado em um DA para indicar uma bifurcao. b) ( ) Ocorre quando o objeto criado. c) ( ) Utilizado para designar a paassagem de um perodo predeterminado de tempo. d) ( ) utilizado para representar uma condio de guarda. e) ( ) utilizado em um DA para indicar uma sincronizao.

Unidade 8

221

Universidade do Sul de Santa Catarina

4) Construa o diagrama de atividades do caso de uso Agendar Horrio da Clnica Bem-Estar a partir da viso do ator Atendente.

Empresa : Clnica Bem-Estar


1) Funo: fomos contratados para analisar seu processo atual e verificar como expandir suas operaes e melhorar seu nvel de servio. Histrico: A clnica, fundada h 5 anos, atua no atendimento clnico peditrico. A clnica possui 34 mdicos cadastrados em diferentes especialidades como: cardiologia, clnica geral, dermatologia etc. Todos os mdicos utilizam internet e e-mail. A faixa etria predominante de 30, 35, 40, 42, 44 e 48 anos. Todos os mdicos so aptos do ponto de vista fsico. O paciente pode ser atendido de forma particular ou por convnios. Os convnios atendidos so o Bruxtr, Vpfzm e UIOlk. Cada mdico faz 3 plantes semanais de 4 horas seguidas; as consultas possuem um intervalo de 30 minutos. Existe a possibilidade de a consulta ser de retorno, nesse caso so apenas 15 minutos. A clnica 24 horas. Cada mdico possui uma agenda preta onde so marcadas as consultas. Na marcao da consulta colocado o nome do paciente, horrio e convnio. Trabalham h 3 anos na clnica com planilhas Excel. A clnica possui 2 atendentes que so responsveis por preencher o cadastro inicial do paciente, que contm nome, endereo, telefone, data de nascimento, convnio. O mdico, ao atender o paciente, preenche sua ficha manualmente, informando peso, altura, idade, motivo da consulta, queixa principal, doenas anteriores, diagnstico, prescrio. A prescrio pode ser a solicitao de exames ou medicamentos com posologia. A clnica possui de 700 a 800 fichas, sendo que cerca de 600 so de atendimento por convnio. O gerente da clnica est ansioso, pois no consegue controlar questes relacionadas ao nmero de pacientes atendidos por convnio e particular, mdicos mais procurados e picos de movimento. Volume de atendimentos: 56 por dia. Outra questo de interesse manter um controle de laboratrios conveniados, pois o mdico poderia indicar o laboratrio j no momento da prescrio.

222

Metodologias e Projetos de Software

Unidade 8

223

Universidade do Sul de Santa Catarina

Saiba mais
Para aprofundar as questes abordadas nesta unidade, voc poder pesquisar em: BEZERRA, E. Princpios de anlise e projeto de sistemas com UML. So Paulo: Campus, 2002. (Ler captulos 10 e 11.) BOOCH, G.; RUMBAUGH, J.; JACOBSON, I. UML: guia do usurio. So Paulo: Campus, 2000. (Ler captulos 18 e 19.) BORTOLI, A. O uso do workflow para apoiar a elicitao de requisitos. Workshop em engenharia de requisitos. 2004 FURLAN, Jos. Modelagem de objetos. So Paulo: Makron Books, 1998. (Ler captulo 6.)

224

Você também pode gostar