• Nenhum resultado encontrado

13-DEstados

N/A
N/A
Protected

Academic year: 2021

Share "13-DEstados"

Copied!
52
0
0

Texto

(1)

Engenharia de Software Orientada a

objetos

Prof. Rogério Celestino dos Santos

(2)
(3)

Objetivo

 Um diagrama de estados especifica uma máquina de estados, com estados e transições entre estados causadas por eventos

Pode também especificar as ações e atividades realizadas em resposta a eventos ou durante a permanência em estados,

respectivamente

Usado normalmente para modelar o ciclo de vida dos objetos de uma classe (objeto visto como máquina de estados)

 O estado de um objeto é uma das possíveis condições nas quais um objeto pode existir.

(4)

Comportamento e ciclo de vida de objetos ou

sistemas reativos

 Um diagrama de estados é útil para modelar o comportamento e o ciclo de vida de um objeto ou sistema reativo

 Objeto/sistema reativo: funciona por resposta (reação) a estímulos (eventos)

 Comportamento reativo ≠ comportamento invocável (operações)

 Sistema reativo ≠ sistema transformacional (tipo filtro Unix)

 Sistemas de interação com o usuário (como formulários, botões, etc.) são tipicamente reativos

Sistemas de tempo real (ex: semáforo) podem ser vistos

como sistemas reativos que reagem a eventos temporais (timeout, ...)

Sistemas reativos geralmente têm memória - um estado interno que acumula o efeito dos estímulos recebidos no passado e afeta a resposta a estímulos futuros

(5)

Comportamento e ciclo de vida de objetos ou

sistemas reativos

Ciclo de vida de um objeto/sistema: as seqüência de estados

por que pode passar durante a sua vida em resposta a eventos, em conjunto com as respostas a esses eventos, ou seja:

os estados possíveis (exemplo - estado civil: solteiro, casado, ...)

as transições de estado possíveis (exemplo: pode passar de solteiro para casado, mas não o contrário)

os eventos que causam essas transições (exemplo: o casamento implica a passagem ao estado de casado)

as ações do objeto em resposta a esses eventos (ex: despedida de solteiro)

Objeto como máquina de estados

 Objetos da mesma classe têm o mesmo ciclo de vida, para isso basta construir um diagrama de estados para a classe

(6)

Notação básica

 Seqüência de mudança de estado:

 Ocorre o evento associado à transição e a condição de guarda é verdadeira

 É interrompida a atividade associada ao estado de origem, se não tinha já terminado

 É executada a ação á saída do estado de origem

 É executada a ação associada à transição

(7)

Estados

Um estado é uma condição ou situação na vida de um objeto, durante a qual o objeto satisfaz alguma condição, realiza alguma atividade ou espera por algum evento

 Exemplo (relacionado ao estado civil de uma pessoa): solteira, casada, ...

 Escolha dos estados e relação com atributos e ligações:

 Saldo da conta bancária, após saque, ficou igual a zero, conta bancária bloqueada para saques;

 Um produto esta no estado indisponível quando a quantidade em estoque fica zero.

(8)

Estados

 É determinado pelas ligações com outros objetos.

Quando uma peça de veiculo esta no estado de indisponível é

necessário suspender a Ordem de Serviço de atendimento do veiculo.

 Se Aluno não devolveu livro na biblioteca no prazo

(9)

Estados inicial e final

O estado inicial defini a partir de que ponto um DE

deve começar a ser lido.

(10)

Estados inicial e final

O estado final é representado como um círculo

“eclipsado” e indica o fim do ciclo de vida de um

objeto.

(11)

Transições

Uma transição é uma relação entre dois estados indicando que um objeto no 1º estado realizará uma certa ação (opcional) e passará ao 2º estado quando um evento especificado ocorrer se uma condição especificada (opcional) for satisfeita

 Duas transições ao sair do mesmo estado devem ter eventos diferentes ou condições mutuamente exclusivas, para que o diagrama de estados seja determinístico

 Se, num dado estado, ocorrer um evento que não corresponde a nenhuma transição, nenhuma transição é disparada e o evento é ignorado

Transição automática: transição sem evento

 Tem como evento implícito o fim da atividade associada ao estado de origem

(12)

Transições

Os estados estão associados a outros pelas

transições e é mostrada como uma seta

conectando-os.

(13)

Transições

Uma transição pode ser rotulada com uma expressão

da seguinte forma:

(14)

Auto-transição

É quando um objeto sai do estado em que se

encontra, podendo executar alguma ação quando

dessa saída, e em seguida retornar ao mesmo

estado.

 Observe que Registrando locação é um estado do objeto da

classe Locação, a busca e o registro do filmes se dá nas classes Cópias de Filmes e Itens da locação.

(15)

Auto-transição

 Um aluno solicita o empréstimo de um livro da biblioteca.

 Observe que o estado EmprestandoLivro é um estado do objeto da classe Emprestimo e a retirada do livro se da na classe Livro.

(16)

Eventos

Um evento é uma ocorrência significativa que tem uma

localização no tempo (instante de tempo do evento) e no espaço

 No contexto de uma máquina de estados, um evento pode ter como resposta uma transição (mudança de estado) e/ou uma ação

 Os eventos relevantes a um sistema de software podem ser classificados em:

Eventos de chamada: recebimento de uma mensagem de outro objeto.

Eventos de sinal: recebimento de um sinal.

Eventos temporal: passagem de um intervalo de tempo pré-definido.

(17)

Eventos de chamada

 Corresponde ao recebimento de uma mensagem de outro objeto.

 No evento de chamada o objeto que envia a mensagem fica esperando a execução da mesma.

 Pode-se pensar neste tipo de evento como uma solicitação de serviço de um objeto a outro.

(18)

Eventos de chamada

 No exemplo a seguir o pedido foi encerrado pelo cliente e faz-se necessário obter-se o valor total do pedido de itens.

 Nesse caso, a classe Pedido faz uma requisição a classe ItensDoPedido para que esta encontre o valor total dos itens pedido e entregue a ela.

(19)

Eventos de sinal

Neste evento o objeto recebe um sinal de outro objeto

que pode fazê-lo mudar de estado.

No evento de sinal o objeto remetente continua o seu

processamento após ter enviado o sinal.

Exemplo:

Uma classe Impressora possui um objeto documento no estado imprimindo e pode ser alterado para impresso, quando de sua

conclusão. Este fato não impede que a classe impressora continue sendo demandada por outros objetos.

(20)

Eventos de sinal

Na situação apresentada se esta efetuando a

matricula do aluno quando é comprovado o

pagamento do boleto, anteriormente emitido. Nesse

momento o contrato é emitido enquanto se

desenvolve o processo da matricula.

No caso apresentado a matricula do aluno prossegue

independente da emissão do contrato.

(21)

Eventos Temporal

Corresponde à passagem de um intervalo de tempo

predefinido. O objeto pode interpretar a passagem de

um certo intervalo de tempo como sendo um evento.

É especificado com a cláusula after, em event, seguida

de um parâmetro que especifica um intervalo de

(22)

Eventos de mudança

É representado por uma expressão de valor lógico

(verdadeiro ou falso) e é especificado utilizando-se a

cláusula when, em event.

when(saldo > 0): significa que a transição é disparada

quando o valor do atributo saldo for positivo.

A cláusula when pode ser utilizada em eventos

temporais.

when(horário = 00:00h): emitir total

(23)

Condição de guarda - Guard

 É uma expressão de valor lógico que condiciona o disparo de uma transição.

 A transição correspondente é disparada se e somente o evento associado ocorre e a condição de guarda é verdadeira.

 Uma transição que não possui condição de guarda é sempre disparada quando o evento ocorre.

(24)

Ações

 Uma ação é uma computação atômica executável que resulta numa mudança de estado ou no retorno de um valor

 A mudança de estado pode ser outro objeto

 Não tem duração (pelo menos no modelo) e não pode ser interrompida

 Ocorre em resposta a um evento

 Ações são associadas a transições (mais comum) ou estados

 Ação à entrada num estado: entry/ação

 equivale a associar a ação a cada transição que entra no estado

 Ação à saída de um estado: exit/ação

 equivale a associar a ação a cada transição que sai do estado

 Ação em resposta a evento interno a um estado: evento/ação

 difere de auto-transição, porque não são executadas ações à saída e entrada e não é interrompida a atividade associada ao estado

(25)

Ações

Ao transitar de um estado para outro, um objeto pode

realizar uma ou mais ações.

Uma ação é uma expressão definida em termo dos

atributos, operações, associações da classe ou dos

parâmetros do evento que também podem ser

(26)
(27)

Estado Ponto de junção

Pode ser que o próximo estado de um objeto varie de

acordo com uma condição.

Se o valor da condição de Guarda for verdadeiro, o

objeto vai para um estado E2; se o valor for falso, o

objeto vai para o estado E3.

(28)

Estado Ponto de junção

É como se a transição tivesse uma decisão, e cada

transição de saída da decisão tivesse uma condição

de guarda própria.

(29)

Estado Ponto de junção

 A cada transição de saída do ponto de junção esta associado uma

condição de guarda.

 A transição que o objeto sempre segue é aquela para a qual a

condição de guarda é verdadeira. A condição falsa é utilizada para tratar as seqüências alternativas dos

(30)

Estado Ponto de junção

Quando uma das condições é verdadeira, todas as

demais são falsas.

(31)

Estado Ponto de junção

Pontos de junção permitem que duas ou mais

transições compartilhem uma “trajetória de

transições”.

De uma forma geral, pode haver um número ilimitado

de transições chegando e saindo de um ponto de

junção.

Pode haver também uma transição de saída que

(32)
(33)
(34)

Estado Ponto de escolha dinâmico

-

Choice

Representa um ponto na transição de estados de um

objeto em que deve ser tomada uma decisão, a partir

da qual um determinado estado será ou não gerado

Assim, um Estado de Ponto de Escolha Dinâmico é

representa uma escolha, apoiada por Condições de

Guarda, em que se decidirá qual o próximo estado do

objeto será gerado

Ele é representado por um círculo vazio, de onde

(35)
(36)

Estado Ponto de escolha dinâmico

-

Choice

Observe o exemplo

que trata do evento

encerramento de

uma conta bancária

onde o saldo tem

que ser zero para

que ela seja

(37)

Cláusulas do Estado

Um objeto enquanto estiver em um estado poderá

desenvolver atividades.

As atividades são representadas no interior do

retângulo que representa o estado do objeto no

momento.

Há três cláusulas predefinidas: entry,exit,do

Sintaxe geral:

(38)

Cláusulas do Estado - entry

É usada para especificar uma ação a se realizada no

momento em que o objeto assume um estado.

A ação desta cláusula é sempre executada,

(39)

Cláusulas do Estado – exit

Serve para declarar ações que são executadas

sempre, no momento, que o objeto sai de um estado.

É sempre executada, independentemente do estado

(40)

Cláusulas do Estado - do

Usada para definir alguma atividade a ser executada

continuamente enquanto o objeto encontra-se no

(41)

Transições internas de Estado

Uma transição interna é uma transição que não faz o

objeto mudar de estado

O objetivo da transição é fazer com que uma ação ou

atividade seja executada sem que uma mudança de

estado ocorra

(42)

Transições internas de Estado

Clausula event/guard/action

(43)

Estados Aninhados ou Composto

Diagramas de estado podem ficar complexos e difíceis de

gerenciar

Estados podem ser usados para simplificar diagramas

complexos

Um superestado é um estado que encerra estados

aninhados chamados subestados

Transições comuns dos subestados são representados no

nível do superestado

é permitido qualquer número de níveis de aninhamento

(44)
(45)

Estados concorrentes

Trata-se de um tipo especial de estado composto.

Um objeto em um estado concorrente pode estar em

(46)

Estados paralelos

 Representa estados paralelos após uma transição

 Para esta representação utiliza-se a Barra de

Sincronização (Fork e Join).

 Barras de sincronização não representam decisões a exemplo de Junction

Point e Choice.

Fork\Dividir

(47)

Estados de história

 Esse estado permite retornar exatamente ao ultimo sub-estado em que o objeto se encontrava quando, por algum motivo, o processo foi interrompido.

 Assim, por meio de um Estado de História, podemos retornar exatamente ao ultimo subestado em que o objeto encontrava-se quando da interrupção do processo

(48)

Estados de Sub-Maquina

É equivalente a um estado composto ou concorrente,

porém, seus sub-estados não são apresentados no

diagrama, o que indica que são apresentados em outro

diagrama.

Não há divisões internas na

figura que o representa.

O exemplo mostra que o

estado Calculando novo

valor do produto será tratado

por outro Diagrama de

Maquina de Estado.

(49)

Estados cortados

 São utilizados em estados de sub-maquinas quando um estado externo ao da sub-maquina gera uma

transição para um sub-estado

contido, porém não representado, no estado de sub-maquina.

 O exemplo mostra uma transição do estado Produto suspenso para um sub-estado interno do estado de sub-maquina Calculando novo valor

(50)

Exercício

Uma empresa cadastra seus funcionários de acordo

com o seu estado civil, se solteiro ou casado. Para

os funcionários na situação de solteiro é fornecido

passe de ônibus. Para os funcionários na situação de

casado é fornecido passe de ônibus e vale

alimentação. Tanto o passe de ônibus quanto ao vale

de alimentação, são incluídos nos vencimentos dos

respectivos funcionários. Represente este requisito

através do diagrama de estado

(51)

Exercício 2

Desenvolva um DE para um sistema de cursos de

informática seguindo os seguintes fatos:

Primeiramente, o usuário deve selecionar o curso ao

qual a matrícula e refere

Em seguida, deve selecionar a turma da matrícula em

questão

Finalmente, o atendente irá selecionar o aluno que

deseja realizar a matrícula e, então, registrar a

(52)

Exercício 2

 Considerando o DTE e a seqüência de eventos listada abaixo, marque a alternativa correta:

Eventos: new, ev1, ev0, ev2,ev3, ev5,ev0,ev2

a) Após a ocorrência dos eventos o objeto se encontra no estado estA

b) Após a ocorrência dos eventos o objeto se encontra no estado estC

c) Após a ocorrência dos eventos o objeto se encontra no estado estB

d) Após a ocorrência dos eventos o objeto se encontra no estado estD

Referências

Documentos relacionados

Estudar o efeito da plastificação do ATp com glicerol nas características físico-químicas da blenda PLA/ATp; Analisar a mudança na cristalinidade dos laminados submetidos a

Os autores relatam a primeira ocorrência de Lymnaea columella (Say, 1817) no Estado de Goiás, ressaltando a importância da espécie como hospedeiro intermediário de vários parasitos

O TBC surge como uma das muitas alternativas pensadas para as populações locais, se constituindo como uma atividade econômica solidária que concatena a comunidade com os

Essas informações são de caráter cadastral (técnico responsável pela equipe, logradouro, etc.), posicionamento da árvore (local na rua, dimensões da gola, distância da

A busca por um contato com a natureza (sem dúvida, idealizada), vinculada a uma “fuga do caos urbano”, contribuiu para que o surfe e, anos depois, com a expansão da cidade para

Dessa maneira, os resultados desta tese são uma síntese que propõe o uso de índices não convencionais de conforto térmico, utilizando o Índice de Temperatura de Globo Negro e

Local de realização da avaliação: Centro de Aperfeiçoamento dos Profissionais da Educação - EAPE , endereço : SGAS 907 - Brasília/DF. Estamos à disposição

Considera-se que a interdisciplinaridade contribui para uma visão mais ampla do fenômeno a ser pesquisado. Esse diálogo entre diferentes áreas do conhecimento sobre