Você está na página 1de 43

APS – Diagramas UML

30/11/2022

6
1. Diagrama de Classes (recapitular)

2. Diagrama de Estados

3. Diagrama de Atividades

Agenda 4. Exercícios
Diagrama de Classes
(recapitular)

1
Associação: ligações entre as classes

Dependência:
- Linha solida ou tracejado se for
Diagrama de Classes uma dependência temporária

(recapitular) Agregação:
- Uma classe contém outra classe

Composição:
- Uma classe não existe sem a outra

Generalização:
Multiplicidade
- Herança entre as classes
- Implementação de interfaces

Navegabilidade:
Relações de Generalização:
Diagrama de Classes - Representam Hierarquias (as
(recapitular) setas apontam para o pai)
- Estilo das setas diferem
conforme o parente:
- Interface: linha tracejada,
seta branca;
- Classe abstrata: linha
sólida, seta branca;
Generalização: - Classe: linha sólida, seta
- Herança entre as classes preta;
- Implementação de interfaces
Associação: ligações entre as classes

Agregação:
Diagrama de Classes - Uma classe contém outra classe

(recapitular)

Dependência:
- Linha solida ou tracejado se for
uma dependência temporária Composição:
- Uma classe não existe sem a outra
Exemplo: Composição / Agregação

Diagrama de Classes
(recapitular)
Exercício:
Complete os tipos e indique as relações;

Diagrama de Classes
(recapitular)
Diagrama de Classes
(recapitular)

Exercício:
Complete os tipos e indique as relações;
Diagrama de Classes
(recapitular)

Exercício:
Complete os tipos e indique as relações;
Exercício: Editor gráfico

Estamos a desenvolver um editor gráfico para permitir desenhar


polígonos e círculos no ecrã.
Diagrama de Classes As restrições devem ser observadas durante a execução do editor
(recapitular) e precisam de ser especificadas no modelo:

1. um polígono possui três ou mais vértices;


2. um vértice de um polígono não pode ser ao mesmo tempo
vértice de outro polígono nem centro de um círculo;
3. o centro de um círculo não pode ser centro de outro círculo;
4. ao remover um polígono, removemos também os seus
vértices;
5. ao remover um círculo, removemos também o seu centro.
Diagrama de Classes
(recapitular)

Exercício: Editor gráfico

Estamos a desenvolver um editor gráfico para permitir desenhar polígonos e círculos no ecrã.

As restrições devem ser observadas durante a execução do editor e precisam de ser especificadas no modelo:

1. um polígono possui três ou mais vértices;


2. um vértice de um polígono não pode ser ao mesmo tempo vértice de outro polígono nem centro de um círculo;
3. o centro de um círculo não pode ser centro de outro círculo;
4. ao remover um polígono, removemos também os seus vértices;
5. ao remover um círculo, removemos também o seu centro.
4. Agência de viagens: (da aula anterior)

Uma agência de viagens vende bilhetes, estadias em hotéis.


Passeios e pacotes que podem agregar todos os anteriores.
Diagrama de Classes Os hotéis podem ter 3 categorias diferentes, o que define o
preço da estadia. Os hotéis e os bilhetes precisam de ser
e Objectos (exercício) reservados.

Todos os preços dependem da época da viagem e os bilhetes das


viagens podem ser pagas a prazo.

Defina um diagrama de classes para este sistema.


Diagrama de Estados

2
Estados:
Cada estado de um objeto reflete o valor dos atributos e
os seus relacionamentos, por exemplo:
1. Determinados valores de atributos de uma pessoa
evidenciam se essa pessoa está doente ou não.
Diagrama de 2. Se um objeto da classe pessoa está associado a outro
através de uma classe Casamento, dizemos que o
Estados estado civil é casado. auto-relacionamento

Diagrama de Estados

Especificam estados possíveis dos objetos,


transições entre os estados e reações aos
eventos que os atingem.

Cobrem todos os possíveis ciclos de vida


dos objetos que representam.
Representação do estado em DMEs da UML

Diagrama de
Estados

Pseudoestados Iniciais: Estados Finais: (olho de boi) Pseudoestados Finais:


Aponta para o estado do objeto quando ele Indica o estado que os objetos atingem
for criado (inicial) quando não há mais transições de saída.
Os estados permanecerão assim para
sempre.
Fork Join
Divide as transições Junta as transições

Diagrama de
Estados

Ponto de Entrada Ponto de Saída Escolha / Choice


Efetua uma transição com
base numa condição
Eventos, condições e ações em transições:

As transições definem os possíveis caminhos de passagem


de um estado para outro, que se dão pela ocorrência de
eventos em determinadas condições.

Diagrama de
Estados

Auto-transições:
São transições que podem partir de um
estado e chegar a ele próprio.
As transições são despoletadas obrigatoriamente pela
ocorrência de eventos, caso contrário os objetos permanecem
nos mesmos estados que se encontravam.

Os eventos podem ser externos ou temporais.


Eventos:

Um evento é uma ocorrência de um estímulo que pode


corresponder a uma transição de estado.
Existem quatro tipos de eventos:

Diagrama de Sinais: representa um objeto com nome que é enviado


assincronamente e recebido por outro objeto. Por exemplo:
Estados excepções try/catch.

Invocação: corresponde ao lançamento de uma operação,


tipicamente de modo síncrono.

Passagem de tempo: representa simplesmente a “passagem


do tempo” Por exemplo: after (1 hour)

Mudança de estado: representa a mudança de estado ou a


verificação de uma determinada condição. Por exemplo:
when time > 12:30
Eventos externos:

Acontecem no ambiente exterior ao que estudamos, sendo


relevantes para o sistema. Obrigam que algum processo do
sistema seja executado em resposta a um acontecimento.

Diagrama de Por exemplo: num sistema de controlo de stock, efetuar um


pedido e enviar uma fatura.

Estados Eventos temporais, três tipos:


1. Temporais fixos: é hora de …
2. Temporais relativos: após tanto tempo…
3. No final de uma atividade quando o objeto estava num
determinado estado.
Estados compostos:
Podem conter outros estados, Sintaxe das transições:
concorrentes ou independentes.
evento[condição]/ação

Exemplo:

entrega [prazo > 24h]/aplicar multa por atraso


Diagrama de
Estados

Passos para desenhar diagrama de


estados:
1. Identificar o estado inicial e final;
2. Identificar possíveis estados que o
objeto pode assumir;
3. Identificar os eventos e as condições
de transição.
Diagrama de
Estados (exercício)
Online Store Example:
1. On the event of an order being received, we transit from our
initial state to Unprocessed order state.
2. The unprocessed order is then checked.
3. If the order is rejected, we transit to the Rejected Order state.
4. If the order is accepted and we have the items available we
transit to the fulfilled order state.
5. However if the items are not available we transit to the
Pending Order state.
6. After the order is fulfilled, we transit to the final state. In this
example, we merge the two states i.e. Fulfilled order and
Rejected order into one final state.
Diagrama de
Estados (exercício)
Window Frame Example:

Identifique os estados e as transições apresentadas no diagrama?


Diagrama de
Estados (exercício)
Window Frame Example:

Identifique os estados e as transições apresentadas no diagrama?

Estados: Minimized, Restored e Maximized;

Transições: Open e Close;


- Quando a window é criada com o estado Open, entra no
estado Restored
- Quando a window é destruída usando o evento/operação
Close, pode estar em qualquer estado Minimized, Restored,
Maximized.
Diagrama de
Estados (exercício)
Window Frame Example:

Alterare o diagrama de estados para a seguinte proposta:

Se a window recebe um evento Minimize, indicando que deve ser


minimizada. E sempre que a window receber esse evento, deve ir
para o estado Minimized.
Diagrama de
Estados (exercício)
Window Frame Example:

Alterare o diagrama de estados para a seguinte proposta:

Se a window recebe um evento Minimize, indicando que deve ser


minimizada. E sempre que a window receber esse evento, deve ir
para o estado Minimized.
Diagrama de Atividades

3
Ações e Atividades:

Uma ação é uma computação atómica, ou seja, assume-se que


Diagrama de a sua execução é realizada num período de tempo instantâneo
e que não é interrompível. Por exemplo, criação ou destruição
de um objeto, envio de um sinal para outro objeto, invocação de
Atividades um método. Ações de entrada: entry; Ações de saída: exit.

Atividade é uma computação não atómica, pode ser


interrompível por outros eventos. Operação complexa que
eventualmente pode ser descrita por outro diagrama de
estados.

As atividades são elementos básicos dos diagramas de


atividades mas também podem ser referidas na especificação
de um estado, através do prefixo / palavra chave: do.
Sub-Estados:

Um sub-estado é um conceito avançado dos diagramas de


estados UML. É um estado que se encontra definido dentro de

Diagrama de um super estado.

Um estado que possui um conjunto de sub-estados designa-se


Atividades por “estado composto”. Um estado composto pode ter sub-
estados concorrentes (ortogonais) ou sub-estados sequenciais
(disjuntos). E um estado pode ser decomposto em vários níveis
de inclusão.
A Figura seguinte detalha o estado “Trabalhando” tendo em conta a realização
concorrente de duas sub-máquinas de estado.

Uma tem a ver com o mecanismo de tratamento de eventos conduzidos pelo


utilizador (e.g., via teclado ou rato): o PC espera pelo input do utilizador,

Diagrama de seguidamente regista esse input e por fim faz a respectiva visualização no
monitor. A outra máquina de estados tem a ver com a leitura do tempo do
relógio do PC e a correspondente actualização no seu monitor.

Atividades Ambas as maquinas de estados actuam concorrentemente de forma


independente.
Um diagrama de atividades é um caso particular de um
diagrama de estados. Também conhecidos por fluxogramas.
Onde os estados são “estados de atividades” e as transições
são desencadeadas pela conclusão das atividades dos
Diagrama de estados anteriores.

Atividades
Ambos servem para modelar o tempo de vida de um objeto ou
sistema. Contudo, o diagrama de atividades ilustra o fluxo de
controlo entre atividades, enquanto o diagrama de estados
ilustra o fluxo de controlo entre estados.

Estes diagramas contêm genericamente:


- Estados-ação: execuções atómicas, não interrompíveis com o
tempo de execução irrelevante;
- Estados-atividade: execuções não atómicas, decompostas,
interrompíveis, em que o tempo de execução interessa.
- Transições;
- Objetos;
Concorrência em diagramas de atividades

Diagrama de
Atividades

Eventos de entrada / saída:


Pistas / Swimlanes Servem para explicitar a
Permite agrupar várias emissão e a receção de um
atividades por entidade. sinal.
Podem representar
objetos, por exemplo:
:Orçamento
Utilizações típicas dos diagramas de atividades:

Diagrama de Os diagramas de atividades são utilizados para modelar aspetos


de comportamento do sistema como um todo, de um sub-
Atividades sistema, de uma operação ou de uma classe.

No entanto, são usados principalmente para especificar:

- Operações: usados como fluxogramas que detalham o


algoritmo. Por exemplo: tomada de decisão, difusão/fork e
junção/join.

- Workflows / processos de negócio: identificação dos atores


intervenientes e correspondente colaboração com o sistema.
Por exemplo: pistas/swimlines e modelação fluxo de objetos
Desenhe o diagrama de estados de uma torradeira. Defina os
diferentes estados do pão na torradeira. Especifique
os necessários eventos, acções, e condições.
Diagrama de
Atividades
(exercícios)
Diagrama de
Atividades
(exercícios)
Identifique e descreva:
- As entidades;
- As ações;
- As decisões;
- Os objetos;
Diagrama de
Atividades
(exercícios)
Adicione ao diagrama de atividades:

a) The Enter Data action state outputs a


Report Criteria object that is then input
by the Generate Information action
state.
Diagrama de
Atividades
(exercícios)
Adicione ao diagrama de atividades:

a) The Enter Data action state outputs a


Report Criteria object that is then input
by the Generate Information action
state.
Diagrama de
Atividades
(exercícios)
Adicione ao diagrama de atividades:

b) The Generate Information action state


transitions to the Print Information action
state only if the report is successfully
generated; otherwise, the project
management system generates an error
using the Generate Error action state. In
either case, the project manager may
choose to print more than one report.
Diagrama de
Atividades
(exercícios)
Adicione ao diagrama de atividades:

b) The Generate Information action state


transitions to the Print Information action
state only if the report is successfully
generated; otherwise, the project
management system generates an error
using the Generate Error action state. In
either case, the project manager may
choose to print more than one report.
Diagrama de
Atividades
(exercícios)
Adicione ao diagrama de atividades:

c) The project management system must


simultaneously generate a report using the
Generate Information action state (as well as
handle error processing discussed in part b)
and execute other processing using the
Other Processing action state. Once the
report is printed and other processing is
handled, the project manager may choose
to print more than one report.
Diagrama de
Atividades
(exercícios)
Adicione ao diagrama de atividades:

c) The project management system must


simultaneously generate a report using the
Generate Information action state (as well as
handle error processing discussed in part b)
and execute other processing using the
Other Processing action state. Once the
report is printed and other processing is
handled, the project manager may choose
to print more than one report.
Diagrama de
Atividades
(exercícios)
Todas as alterações a, b e c, num diagrama
de atividades final.

Você também pode gostar