Você está na página 1de 47

UML Aula III

Diagramas de Estado, Atividades, Componentes e Instalao


Ricardo Argenton Ramos

Diagrama de Estado
Um diagrama de estados (statechart), tambm conhecido por diagrama de transio de estado ou por mquina de estados, permite modelar o comportamento interno de um determinado objeto, subsistema ou sistema global. Estes diagramas representam os possveis estados de um objeto, as correspondentes transies entre estados, os eventos que fazem desencadear as transies, e as operaes (aes e atividades) que so executadas dentro de um estado ou durante uma transio. Os objetos evoluem ao longo do tempo atravs de um conjunto de estados como resposta a eventos e passagem de tempo.

Diagramas de Estado

Diagramas de Estado

Uma lmpada: que evolui entre os estados acesa e apagada, conforme se liga e desliga um interruptor

Diagrama de Estados de um PC

Diagrama de Estados de um PC (variante do anterior)

Diagrama de Estados de um PC (foco no estado Trabalhando)

Exerccio Faa um diagrama de Estados para a situao:


1. Uma mquina de lavar roupa: depois da passagem de um determinado perodo de tempo, a mquina de lavar termina o seu programa de lavagem, e inicia o de secagem.

Diagrama de Atividades
Um diagrama de atividades um caso particular de um diagrama de estados, no qual todos ou a maioria dos estados so estados de atividades e todas ou a maioria das transies so desencadeadas pela concluso das atividades dos estados anteriores; Uma atividade corresponde a uma execuo no atmica dentro de uma mquina de estados, ou de outra forma, corresponde execuo de um conjunto de aes.

Diagrama de Atividades x Estados


Ambos os tipos de diagramas so utilizados para modelar o tempo de vida de um objeto ou sistema. Contudo, um diagrama de atividades ilustra o fluxo de controle entre atividades, enquanto que um diagrama de estados ilustra o fluxo de controle entre estados.

Exemplo Genrico de Diagrama de Atividades

Diagramas de Atividades
Estes diagramas contm genericamente: Estados-ao: execues atmicas, no
interrompveis, com tempo de execuo irrelevante.

Estados-atividade: execues no atmicas


(decompostas), interrompveis, em que o tempo de execuo normalmente relevante.

Transies, Objetos.

Estados-atividades X estados-aes

Diagramas de Atividades (Decises)


A tomada de deciso um mecanismo comum no projeto de diagramas de atividades (e de estado), que consiste em especificar que atividade deve ser realizada aps a execuo da atividade corrente. Tal especificao suportada por uma condio com guarda (ex.: expresso lgica) que colocada de forma adjacente transio de estado correspondente.

Diagramas de Atividades (Decises) - Exemplo

Diagramas de Atividades (Caminhos Concorrentes )


Considere que o processo de levantar da cama implica a execuo das seguintes atividades tomar caf da manh, fazer a higiene matinal e cumprimentar a famlia. Considere que essas atividades tm de se realizar obrigatoriamente, embora no seja relevante a sua ordem de execuo. O problema colocado representa uma situao tpica na modelagem de workflows: representar a execuo independente e concorrente de um conjunto de atividades.

Diagramas de Atividades (Caminhos Concorrentes ) cont.


A UML providencia a soluo a esta questo atravs dos conceitos de difuso (fork) e de juno (join) de atividades, representados graficamente por linhas

Diagramas de Atividades (Pistas)


Na modelagem de processos de negcio comum a realizao de atividades por vrias entidades, participantes no dito processo. A UML prope o conceito de pistas (swimlanes) como elemento que permite agrupar as vrias atividades da responsabilidade de cada entidade participante. Cada grupo separado por uma linha vertical.

Diagramas de Atividades (Pistas) Cont.


Cada pista tem um nome nico dentro do seu diagrama, que deve corresponder ao nome da entidade participante, a qual deve ser uma entidade do mundo real. Por exemplo, o nome de um perfil de usurio, o nome de uma organizao, ou o nome de um sistema de informao.

Diagramas de Atividades (Pistas) Exemplo

Exemplo de Diagrama de Atividades da Operao de Fibonacci


Fibonacci frmula: fib(n) =1, se n <= 2; = fib(n-1)+ fib(n-2), se n> 2

Exerccio
Faa um diagrama de Atividades para a situao:
Retirando dinheiro de um caixa eletrnico (para cartes de crdito)

Diagramas de Componentes
Um componente uma pea bsica na implementao de um sistema; consiste, na prtica, num conjunto de artefatos fsicos em formato digital, por exemplo, arquivos de cdigo (fonte, binrio ou executveis) ou arquivos de documentos relativos ao negcio.

Diagramas de Componentes - Cont.


Definem-se pelo menos trs tipos distintos de componentes:
Componentes de instalao: constituem a base dos sistemas executveis (e.g., DLL, executveis, controles Active-X, classes Java). Componentes de trabalho: a partir dos quais so criados os componentes de instalao (e.g., arquivos com cdigo fonte, arquivos de dados, documentos). Componentes de execuo: criados como resultado da execuo de um sistema (e.g., processos, threads, agentes de software).

Representao Grfica de Componentes

Componente de Software
Um componente de software uma parte fsica de um sistema: existe de fato num determinado computador e no apenas na mente do analista, como acontece com o conceito de classe. Adicionalmente, um componente implementa uma ou mais classes, as quais so representadas dentro do cone de componente ou com relaes explcitas de dependncia de implementao.

Componente de Software Cont.


A UML identifica os seguintes esteretipos para componentes:
document: denota um documento. executable: denota um programa que possa ser executado num n. file: denota um documento contendo cdigo fonte ou dados. library: denota uma biblioteca dinmica ou esttica. table: denota uma tabela de uma base de dados.

Diagramas de Componentes (Ns)


Um n um objeto fsico que representa um recurso de processamento, geralmente tendo capacidades de memria e de processamento. Os ns podem consistir em recursos computacionais (hardware), mas tambm em recursos humanos ou recursos de processamento mecnico. Os ns podem ser representados como tipos e como instncias. Instncias de ns podem conter instncias de objetos e de componentes.

Diagramas de Componentes (Ns) Cont.


Um n representado como um cubo tridimensional. Dois ns podem-se encontrar ligados atravs de relaes de associao. Estas especificam a existncia de caminhos de comunicao entre os correspondentes ns e podem ser caracterizadas por um esteretipo, de modo a explicitar o tipo de comunicao envolvido (ex.: o tipo de canal ou o tipo de rede).

Diagramas de Componentes (Ns)

Diagramas de Componentes (Ns) Cont.


As propriedades dos ns (ex.: capacidade de memria principal, nmero de processadores, data de aquisio, entre outros) so representadas por marcas com valores. Por outro lado, podem-se definir esteretipos, com cones correspondentes, para modelar diferentes tipos de recursos de processamento.

Relaes entre Ns e Componentes


Um n pode conter componentes. Tal fato pode ser traduzido pela incluso dos componentes no smbolo do n, ou pelo estabelecimento de uma relao de dependncia, de esteretipo support entre o n e os componentes suportados.

Relaes entre Ns e Componentes

Ns e Componentes Semelhanas e Diferenas


As semelhanas so que ambos podem:
(1) participar em relaes de generalizao, dependncia e associao; (2) ser aninhados; (3) ter instncias; e (4) participar em interaes.

As diferenas so que os:


(1) componentes so elementos que participam na execuo de um sistema; ns so elementos que suportam e executam componentes; e (2) componentes representam agrupamento fsico de elementos lgicos; ns representam a instalao fsica de componentes.

Diagramas de Componentes (Exemplo)


Diagrama de Componentes relativo a uma Pgina HTML. Considere a pgina Web Example1.html com uma referncia a um applet Java:

Pgina Web Example1.html


<html> <head> <title>The Animator Applet (1.1) example 1</title> </head> <body> <h1>The Animator Applet (1.1) - example 1</h1> <applet codebase="." code=Animator.class width=460 height=160> </applet> <a href="Animator.java">The source.</a> <hr> </body> </html>

Diagramas de Componentes (Exemplo) Pgina Web


O diagrama de componentes correspondente a este mini-sistema consiste nos seguintes arquivos: example1.html, Animator.class,e Animator.java.

Diagramas de Componentes (Exemplo) Pgina Web

Exerccio: Faa um Diagrama de Componentes


relativo instalao de uma aplicao. Considere a aplicao WinCOR desenvolvida sobre ambiente MSWindows e responsvel pelo gerenciamento de (entrada e sada de) correspondncia de uma organizao. A aplicao consiste num conjunto variado de componentes de instalao, chamados:
wincor.exe: arquivo que contm o executvel da aplicao; pblib.dll, sde32.dll, sdemdb.dll: bibliotecas com cdigo binrio que providenciam funcionalidades adicionais; wincor.hlp: arquivo de ajuda sobre a aplicao; wincor.ini: arquivo de configurao da aplicao; entrada.db, saida.db: arquivos/tabelas da base de dados de suporte

Resposta

Diagramas de Instalao
Um diagrama de instalao ilustra a configurao dos elementos de processamento e dos componentes de software, processos e objetos neles suportados. Instncias de componentes de software representam manifestaes de execuo das unidades de cdigo.

Diagramas de Instalao
Um diagrama de instalao consiste num conjunto de ns ligados por associaes de comunicao. Os ns podem conter instncias de componentes (de execuo), o que significa que um componente instalado e executado num n.

Diagramas de Instalao (Exemplo 1)


servio de conexo a Internet por linha telefnica - cliente/servidor

instalao, da existncia de vrios PC

Diagramas de Instalao (Exemplo 2)


Equipamento de hardware tipicamente existente numa configurao domstica

Diagramas de Instalao (Exemplo 3)


Sistema de Trabalho Domstico.

Exerccio
Faa o Diagrama de Instalao do nosso novo laboratrio, em que dever constar um mecanismo de controle de entrada de alunos por biometria.