• Nenhum resultado encontrado

DiagramasdeAtividades

N/A
N/A
Protected

Academic year: 2021

Share "DiagramasdeAtividades"

Copied!
45
0
0

Texto

(1)

DIAGRAMAS

COMPORTAMENTAIS:

DIAGRAMA DE ESTADOS

(2)

MÁQUINAS DE ESTADO

 É um comportamento que especifica as

seqüências de estados de um objeto em resposta aos eventos.

 Estado  Transição  Evento

(3)

ESTADO

 É uma condição ou situação durante a vida de

um objeto, durante a qual ele satisfaz alguma condição, executa alguma atividade, ou espera por algum evento.

 Exemplos:  Ocioso

 Recebendo Pagamento  Entregando item

(4)

MÁQUINA DE VENDAS (ATM)

Ociosa Recebendo R$ Oferecendo serviços Entregando Troco Despachando Item entrada de moedas(quant.)

cancelar / devolver moedas

[ item vazio ]selecionar(item) [ troco < 0 ]

[ troco > 0 ] [ troco = 0 ]

(5)

ESTADO INICIAL

 É um estado especial que, explicitamente,

mostra o início da máquina de estado.

 Pode existir exatamente um estado inicial em

cada diagrama de estado.

 O ícone de estado inicial é um círculo compacto

(6)

ESTADO FINAL

Você pode usar um estado final para

explicitamente mostrar o final, se necessário.

O estado de parada é um círculo englobando

um círculo compacto com uma flecha.

Normalmente, você pode assumir que a

máquina de estado associada com uma

classe sairá de sua existência quando seu

objeto encapsulado é destruído.

(7)

ESTADOS

Ocioso Executando

teclaPressionada

término Estado

Inicial EstadoFinal

Estado

(8)

PARTES DE UM ESTADO

 Nome

Ações de entrada (entry):

 Quando entrar no estado, a ação será executada  Ações da saída (exit):

 Quando sair do estado, a ação será executada.  Atividades (do):

 Enquanto no estado, o objeto faz algo que

continuará a ser executado até ser interrompido por um evento

(9)

PARTES DE UM ESTADO: EXEMPLO

Nome-do-estado

entry: ação-de-entrada

exit: ação-de-saída

do: atividade

(10)

TRANSIÇÃO

 É um relacionamento entre dois estados

 O objeto no primeiro estado irá executar certas

ações.

 Quando o evento especificado ocorrer e as condições

especificadas forem satisfeitas vai entrar no segundo estado.

 Uma transição de estado é uma mudança de

estado causada por um evento.

 Utiliza-se transições de estado para conectar dois

estados em um diagrama de estado ou mostrar transições de um estado para ele mesmo.

(11)

TRANSIÇÃO

 Você pode mostrar uma ou mais transições de

estado de um estado desde que cada transição seja única.

 O símbolo para uma transição de estado é uma

linha com uma ponta de flecha apontando para o próximo estado.

(12)

PARTES DA TRANSIÇÃO

 Estado fonte  Evento de disparo  Condição de guarda  Ação  Estado alvo

(13)

EVENTO DE DISPARO

 Ocorrência de um estímulo que pode disparar

uma transição de estado

 Ex: Apertar o botão do mouse; Discar um dígito

(número)

 É possível haver uma transição sem um evento

(14)

CONDIÇÃO DE GUARDA

 Expressão booleana entre [ ], colocada após o

evento de disparo.

 A condição de guarda é avaliada apenas após a

(15)

encerrado o tempo Norte/Sul seguir em frente Norte/Sul virar à esquerda Leste/Oeste seguir em frente Leste/Oeste virar à esquerda

encerrado o tempo [carros na via N/S esq.]

encerrado o tempo [carros na via L/O esq.]

encerrado o tempo encerrado o tempo (sem carros na via N/S esq.)

encerrado o tempo [sem carros na via L/O esq.]

(16)

AÇÃO E ATIVIDADE

 Ação: uma resposta instantânea a uma transição  Usualmente associada a uma transição, embora

possa ser associada a um estado

Atividade (do): Uma operação que tem uma certa

(17)

PROBLEMAS COM MAQ. DE ESTADOS

 Máquinas de estados não estruturados não

possuem bom poder de expressão e tornam-se impraticáveis para problemas grandes

 As formas de estruturação:  Subestados seqüenciais

(18)

Ocioso Manutenção fazerManutenção Validando Selecionando Processando Imprimindo H entry / lerCartão exit / ejetarCartão cartãoInserido cancelar Ativo

(19)

 Diagramas de Estado especificam uma

seqüência permitida de mudanças nas classes do Diagrama de Classes

 Constrói-se um Diagrama de Estado para cada

classe com comportamento temporal significativo

 Objetos se comunicam pelo envio e resposta a

eventos

RELAÇÃO ENTRE DIAGRAMAS DE

(20)

 Eventos, ações e atividades podem ser

representados como operações das Classes

 Diferenças temporárias são apropriadamente

modeladas através de estados diferentes de uma mesma classe

RELAÇÃO ENTRE DIAGRAMAS DE

(21)

 Digramas de Casos de Uso e Interação ajudam

o início do processo de construção de Diagramas de Estados

 Somente construa Diagramas de Estados para

classes de objetos com um comportamento dinâmico significativo.

 Nem todas as classes de objeto necessitam de

um Diagrama de Estado

(22)

 Somente considere os atributos relevantes

quando da definição de um estado. Nem todos os atributos mostrados nas classes precisam ser

usados na Diagrama de Estados

 Verifique a conseqüência nos vários Diagrama de

Estados quando da existência de eventos compartilhados

(23)
(24)
(25)
(26)

DIAGRAMAS DE ATIVIDADES

(27)

DIAGRAMA DE ATIVIDADES

São um dos 5 diagramas da UML para a

modelagem de aspectos dinâmicos;

Os Diagramas de Atividades mostram o

fluxo entre atividades (ações

não-atômicas);

São um caso especial dos Diagramas

de Estados, com a maioria das

transições, resultantes do término das

atividades;

São

semelhantes

aos

antigos

fluxogramas;

São muito usados para modelar

atividades concorrentes.

(28)

TRANSIÇÕES E CONDIÇÕES

Transições sem condições

 são disparadas assim que as atividades

correspondentes terminam;

Transições com condições

 só disparam quando a atividade termina e as

(29)
(30)

CONCORRÊNCIA, FORKS E JOINS

Barras de sincronização são usadas

para especificar forks e joins:

um fork  representa um único fluxo de

controle em vários fluxos de controle concorrentes;

um join  representa a sincronização de dois

(31)

CONCORRÊNCIA, FORKS E JOINS

Atividades depois de um fork podem ser

realizadas em qualquer ordem, ou ao

mesmo tempo;

Para que as atividades depois de um join

possam ser realizadas, todas as atividades

(32)

Procurar bebida

[achou café]

H

Pessoa

H [sem café] [sem Coca]

[achou Coca] Pegar lata de Coca Beber Adicionar água à máquina Colocar café no filtro Colocar filtro na máquina Ligar máquina Filtrar café Pegar xícara Colocar café na xícara

(33)

SWIMLANES (RAIAS)

Swimlanes (raias) são usadas para

definir quais são as classes (ou conjuntos

de classes) responsáveis pela realização

de cada atividade;

Swimlanes são especialmente úteis para a

modelagem de processos empresariais;

Em muitos casos, os swimlanes implicam

concorrência,

ou

pelo

menos

(34)

H S o l i c i t a r p r o d u t o P r o c e s s a r p e d i d o C o l e t a r m a t e r i a i s E n v i a r p e d i d o R e c e b e r p e d i d o P a g a r c o n t a E n c e r r a r p e d i d o H C o b r a r d o c l i e n t e C l i e n t e V e n d a s E s t o q u e

(35)

USO DO DIAGRAMA DE ATIVIDADES

Fazer a modelagem de um fluxo de

trabalho (workflow);

 As atividades são focadas, conforme

visualizadas pelos atores que colaboram com o sistema;

 Considere que nenhum sistema complexo de

software existe isoladamente, por exemplo:

numa empresa de venda a varejo, haverá alguns

sistemas automatizados, assim como sistemas humanos. Com o diagrama de atividade podemos fazer a modelagem dos processos de negócios em relação às formas como os vários sistemas automatizados e humanos colaboram.

(36)

USO DO DIAGRAMA DE ATIVIDADES

Fazer a modelagem de uma operação;

 Detalhes de uma computação são modelados;  Representa o fluxograma das ações de uma

(37)

MODELANDO WORKFLOW

Estabeleça o foco do workflow.

 Para sistemas não-triviais, é impossível

mostrar todos os workflows interessantes em um diagrama;

Selecione os objetos de negócio que têm

as responsabilidades de mais alto nível

(swimlanes);

(38)

MODELANDO WORKFLOW

A partir de estado inicial, especifique as

atividades e ações que ocorrem com o

passar do tempo (estados de atividades

ou ações);

No caso de ações complicadas, ou

conjuntos de ações que acontecem várias

vezes, junte-as em estados de atividades

e forneça diagramas de atividades

separados em que cada caso é expandido

separadamente.

(39)

MODELANDO WORKFLOW

Represente as transições entre estados de

atividades. Iniciando por:

 1. fluxo seqüencial;

 2. ramificação (Branching);

 3. bifurcação e união (Fork e Join);

Se

existem

objetos

envolvidos

no

workflow, inclua-os no diagrama de

atividade. Indique as mudanças de valores

e estados, se necessário.

(40)

Cliente Televendas Contabilidade Estoque Solicitar devolução Receber número de devolução Enviar item I : Item [devolvido] Creditar conta Receber item I : Item [disponível] Incluir item novamente no estoque

(41)

MODELANDO UMA OPERAÇÃO

Identifique todas as abstrações que estão

envolvidas com a operação (parâmetros e

tipos de retorno se houver; os atributos da

classe que a contém; etc.);

Identifique as pré-condições no estado

inicial da operação e as pós-condições no

estado final da operação;

Identifique os invariantes da classe que a

contém e que devem ser mantidos

durante a execução da operação.

(42)

MODELANDO UMA OPERAÇÃO

Começando no estado inicial da operação,

especifique

as

atividades

e

ações

realizadas

ao

longo

do

tempo,

representando-as como estados;

Use bifurcações para identificar caminhos

condicionais e iteração;

Somente se a operação pertencer a uma

classe ativa, use fork e join para modelar

fluxos de controle paralelos.

(43)

MODELANDO UMA OPERAÇÃO

Exemplo:

no contexto da classe Linha, é apresentado o

diagrama de atividades que especifica o algoritmo da operação interseção;

 a assinatura da operação inclui um único

parâmetro (l) e um único valor de retorno (da classe Ponto);

a classe Linha tem dois atributos e interesse:

slope (que armazena a inclinação da linha); e

delta (que armazena o deslocamento da linha em

(44)

MODELANDO UMA OPERAÇÃO

Exemplo:

 no algoritmo da operação existe uma proteção

que testa se a inclinação da linha atual é a mesma que a inclinação do parâmetro l;

 se for a mesma, não haverá interseção das

linhas; retornando um ponto em (0,0)

 caso contrário, a operação primeiro calcula um

valor x para o ponto de interseção e depois um valor y; x e y são objetos locais à operação;

(45)

y = (slope*x) + delta;

return Point(x,y)

x = (l.delta - delta) / (slope - I.slope); else

return Point(0,0) [slope = I.slope]

Referências

Documentos relacionados

obtidas em cada base, também são registradas, elas são utilizadas para dar volume ao sistema subterrâneo.. Trabalhos sobre levantamentos topográficos em cavernas [1,2] discutem

A Lista de Fauna Ameaçada de Extinção e os Entraves para a Inclusão de Espécies – o Exemplo dos Peixes Troglóbios Brasileiros.. The List of Endangered Fauna and Impediments

As variáveis peso, estatura e circunferência da cintura apresentaram valores médios superiores aos homens em relação as mulheres, sendo o inverso observado para índice

O mesmo pode ser relatado por Luz &amp; Portela (2002), que testaram nauplio de Artemia salina nos 15 pri- meiros dias de alimentação exógena para trairão alcançando

A par disso, analisa-se o papel da tecnologia dentro da escola, o potencial dos recursos tecnológicos como instrumento de trabalho articulado ao desenvolvimento do currículo, e

Mário Jabur Filho, conforme dispõe a legislação vigente, comunica que estarão abertas as inscrições para seleção dos candidatos para preenchimento de vaga para Médico

Exposição no Átrio do Auditório Municipal de Mesão Frio Exposição dos trabalhos feitos nas Oficinas de Origamis para alunos, promovida no dia 13 de Abril de 2011 na

d) os dados obtidos na avaliação fonoaudiológica foram, na maioria da vezes, suficientes para definir a conduta fonoaudiológica quanto à necessidade de avaliação abrangente ou