Escolar Documentos
Profissional Documentos
Cultura Documentos
Práticas de Engenharia de
Software
Modelos (UML)
- parte 2
2
Diagrama de Casos de Uso
3
Diagrama de Casos de Uso
Linha representando a
interação (associação) entre o
ator e o caso de uso
5
Diagrama de Casos de Uso
▶ Representação básica e elementos
▶ Atores
▶ Caso de Uso
▶ Associação
▶ Sistema
6
Representação do Ator do Sistema
▶ Um ator também pode ser mostrado como uma classe com a palavra-chave de
estereótipo «ator».
Customer
Ator Customer (”cliente”)
como Classe
7
Generalização entre atores
▶A generalização entre atores é usada como o mesmo sentido/objetivo que o
usado para generalização entre classes.
8
Limites no Diagrama de Casos de Uso
▶ Representação de limites do sistema em forma de caixa para delimitar o escopo
do sistema.
▶ Os limites podem servir também para organizar o sistema por assuntos (módulos).
9
Limites estereotipados no Diagrama de Casos de Uso
▶ Exemplo do uso de estereótipos para um “assunto” (módulo independente):
Assunto do serviço meteorológico estereotipado como «Serviço»
10
Caso de uso
▶ Cada caso de uso deve ter um nome.
▶O caso de uso é mostrado como uma elipse contendo o nome do caso de uso.
11
Generalização entre casos de uso
▶A generalização entre os casos de uso é semelhante à generalização entre as
classes (caso de uso “filho” herda as propriedades e o comportamento do caso de
uso “pai” e pode substituir o comportamento do pai.
O caso de uso “Autenticação de
Usuário da Web” é um caso de
uso abstrato especializado
em casos de uso ”Login”, “Lembrar-
me” e “Logon Único”.
12
Relacionamento de “extensão” (extend) entre casos de uso
Ex:
O caso de uso de registro é
completo e significativo por si só.
Ele poderia ser estendido com o caso
de uso opcional Get Help On
Registration (Ajuda ao Registro).
14
Relacionamento de “include” entre Casos de uso
▶Um relacionamento de inclusão (“include”) é
um relacionamento direto entre dois casos de uso, que
ocorre de forma obrigatória (não é opcional).
▶O “include” representa um comportamento que ocorre
quando um caso de uso incluído é inserido no comportamento
do caso de uso de inclusão (o principal/base).
▶O relacionamento de inclusão é análogo a uma chamada de
sub-rotina ou macro e pode ser usado:
▶quando há partes comuns do comportamento de dois ou mais casos de uso,
▶para simplificar grandes casos de uso, dividindo-os em vários casos de uso.
15
Relacionamento de “include” entre Casos de uso
EX:
Os casos de uso Depositar
Fundos e Retirar Dinheiro incluem
o caso de uso Autenticação do
Cliente .
16
Relacionamento de “include” entre Casos de uso
▶Os casos de uso grandes e complexos podem ser simplificados dividindo-
os em vários casos de uso, cada um descrevendo alguma unidade lógica
de comportamento. Observe que a inclusão de casos de uso se torna
incompleta por si só e exige que os casos de uso incluídos sejam
completos.
EX:
O caso de uso de “Checkout” inclui
vários casos de uso – “Pesquisar Item”,
“Calcular Total e Taxas” e “Pagamento”.
17
Resumo – Diagrama de Casos de Uso
18
Exercício resolvido (1)
▶ Descreva as funcionalidade de um editor de texto simplificado (ex: Bloco de
Notas). Em seguida, elabore um diagrama de casos de uso para as funcionalidade
identificadas.
Dica: concentre-se nas principais funções do editor, aquelas nas quais o usuário
utiliza na confecção do texto.
19
Exercício
▶ Descreva as funcionalidade de um editor de texto simplificado (ex: Bloco de
Notas)
▶ RESP:
20
Exercício
▶ Diagrama de casos de uso para as funcionalidade identificadas.
RESP: Para simplificar o levantamento (preliminar), as funções para editar um texto (inserir linha,
apagar, etc) ficam agrupadas em um único caso de uso (um grande caso de uso).
21
Exercício resolvido (2)
▶Solução
23
Diagrama de Comunicação
(antigo Diagramas de colaboração na UML 1.x)
24
Diagrama de Comunicação
▶O diagrama de comunicação é um tipo de diagrama
de interação UML que mostra as interações entre objetos na linha do
tempo, usando mensagens sequenciadas em um arranjo de forma livre.
▶O diagrama de comunicação corresponde e pode ser convertido a
um diagrama de sequência (vice-versa).
▶Nos diagramas de comunicação:
▶Os objetos são mostrados com conectores de associação entre eles.
▶Asmensagens são incluídas nas associações e são mostradas como
setas curtas apontando na direção do fluxo de mensagens.
▶Aseqüência de mensagens é mostrada por meio de um esquema de
numeração
25
Diagrama de Comunicação – Exemplo
▶Os dois diagramas a seguir mostram um diagrama de
comunicação e o diagrama de seqüência que mostra as
mesmas informações.
▶A criação do diagrama de sequência a partir do diagrama de
comunicação é possível, seguindo a sequência das mensagens
a partir do esquema de numeração.
▶O objetivo principal de um diagrama de comunicação é
mostrar claramente o conjunto completo de mensagens
transmitidas entre objetos (troca de mensagens).
26
Diagrama de Comunicação – Exemplo
▶ Exemplo de um cenário principal (fluxo normal) para o caso de uso “Criar Contato”.
27
Diagrama de Comunicação – Exemplo
(correspondência ao Diagrama de Sequência)
28
Exercício: Diagrama de Sequência em Comunicação
▶ Parao diagrama de sequência (caso de uso “Processamento de pedidos”), crie o
diagram de colaboração correspondente.
OBS: A mensagem “Enviar()” é do tipo assíncrona.
: Comprador
SOLUÇÃO
30
Diagrama de Transição de Estados
(ou Diagrama de Máquina de Estados)
31
Diagrama de Transição de Estados
32
Exemplos didáticos
▶ Como exemplo, o diagrama da máquina de estados a seguir mostra os estados
pelos quais uma porta passa durante sua vida útil.
A porta pode estar em um de três estados: "Aberta", "Fechada" ou "Trancada". Pode responder aos eventos
Abrir (open), Fechar (close), Bloquear (lock) e Desbloquear (unlock). Observe que nem todos os eventos são
válidos em todos os estados; por exemplo, se uma porta for aberta, você não poderá trancá-la até fechá-
la. Observe também que uma transição de estado pode ter uma condição de guarda anexada: se a porta
estiver aberta, ela só pode responder ao evento Close (Fechar) se a condição doorWay-> isEmpty for
33 atendida.
Estado
▶Um estado é uma restrição ou situação no ciclo de vida de um objeto,
em que uma restrição se mantém (durante um tempo), o objeto
executa uma atividade ou espera por um evento.
▶Um estado é denotado por um retângulo arredondado com o nome do
estado escrito dentro dele.
35
Transição
▶As linhas de transição representam o movimento de um
estado para outro. Cada linha de transição é rotulada com
o evento que causa a transição.
▶Ver um sistema como um conjunto de estados e transições entre estados é
muito útil para descrever comportamentos complexos.
▶Uma transição pode ter um gatilho, uma condição (guarda) e um efeito.
"Trigger" é a causa da transição, que pode ser um sinal, um evento, uma mudança em alguma
condição ou a passagem do tempo. "Guarda" é uma condição que deve ser verdadeira para que
o gatilho cause a transição. "Efeito" é uma ação (método) que será chamada diretamente no
objeto que possui a máquina de estado como resultado da transição.
36
Ações do Estado
▶ Emum exemplo no qual uma transição gera um efeito, pode-se denotar uma
ação.
▶ Ação é uma computação atômica executável, que inclui chamadas de operação
(um método), a criação ou destruição de outro objeto ou o envio de um sinal para
um objeto. Uma ação está associada a transições e durante as quais uma ação não
é interrompível - por exemplo, entrada, saída.
▶O diagrama abaixo mostra um estado com uma ação de entrada (“pickup”) e uma
ação de saída (“disconnect”), em duas formas de representação.
37
Autotransições
38
Nível de detalhamento do Diagrama de Estado
▶Um diagrama de estado pode ser mostrado em diversos níveis de
detalhamento (abstração).
▶ Ex:Máquina de estado comportamental de alto nível para caixa eletrônico de banco (um
sistema)
39
Diagrama de Estados e “sub-estados”
▶Exemplo: Operação do forno de micro-ondas. O estado “Operação” é
detalhado (explodido) para deixar mais claro o seu funcionamento.
Resumo – Diagrama de Máquina de Estado
41
Diagrama de Componentes
42
Diagrama de Componentes
▶ Um diagrama de componentes ilustra os componentes de software (as “peças de
software”), controladores, bibliotecas, etc., que irão compor um sistema.
▶ Um diagrama de componente tem um nível mais alto de abstração do que um
diagrama de classe
▶geralmente um componente é implementado por uma ou mais classes (ou
objetos) em tempo de execução.
▶ “Componentes” são blocos de construção, com certa independência(*), em diversos
níveis de granularidade (tamanho) de um software.
▶ (*) Independência no sentido que podem ser substituídos sem comprometer o funcionamento do sistema.
▶Conector de montagem
▶O conector de montagem conecta a interface
necessária de um componente
(Componente1) com a interface fornecida de
outro componente (Componente2); isso
permite que um componente forneça os
serviços que outro componente requer.
44
Elementos do Diagrama de Componentes
▶Portas
▶ O uso de portas no componente permite que
um serviço ou comportamento seja
especificado para fora de seu ambiente
(fornecer serviços externos), bem como
especifica parâmetros de entrada para que o
serviço possa funcionar.
▶As portas podem especificar entradas e
saídas, pois podem operar de forma
bidirecional.
▶EX: O diagrama detalha um componente com
uma porta para serviços online junto com
duas interfaces fornecidas para entrada e
rastreamento de pedidos, bem como um
45 pagamento de interface necessário.
Exemplo de Diagrama de Componentes
▶O diagrama exemplificado demonstra alguns componentes e seus
inter-relacionamentos.
• Os conectores "ligam" as interfaces
fornecidas por "Produto" e
“Customer“ (Cliente) às interfaces
necessárias especificadas por
“Order“ (Pedido).
• Um relacionamento de dependência
mapeia os detalhes da conta
associada (Account) de um cliente
para a interface necessária; "
Payment“ (Pagamento), indicado
por “Order“ (Pedido).
46
Resumo – Diagrama de Componentes
▶ Osprincipais elementos do diagrama de componentes UML: componente, interface
fornecida, interface necessária, porta, conectores.
47
Diagrama de Implantação (Deployment)
48
Diagramas de implantação
▶Um diagrama de implantação modela a arquitetura do software em
tempo de execução (em funcionamento ou implantado em um
ambiente de operação).
▶Elemostra a configuração dos elementos de hardware (nós) e mostra
como os elementos e artefatos de software são mapeados nesses nós.
▶Elementos básicos:
▶Nó e Instância de Nó
▶Artefato
▶Associação
▶Nó Conteiner
O49diagrama de implantação pode ser adaptado para representar a arquitetura de rede de um sistema.
Veja mais em https://www.uml-diagrams.org/network-architecture-diagrams.html
Diagrama de Implantação – Nó
▶Nódefine uma classe (genérica) de um hardware. Ex: Servidor,
Computador, etc
▶Uma Instância de Nó exemplifica (instancia) um nó em termos de
equipamento (tipo, marca, etc). Ex: HP-Pavillion é uma instância de
um nó Computador.
50
Diagrama de Implantação – Nó estereotipado
▶Estereótipos de nós: alguns nós podem ser identificados por
estereótipos, por exemplo: «database-server», «mobile-device»,
«computador», «array-disco», «pc», «cliente-pc», «smartphone», «SSL-
server», «servidor-web»,«Storage»,«servidor-unix »,«notebook», etc.
▶Pode ser representado pelo nome ou por um ícone apropriado no canto
superior direito do símbolo do nó
51
Diagrama de Implantação – Artefato
▶Um artefato é um produto do processo de desenvolvimento de
software . Isso pode incluir modelos de processo (por exemplo, modelos
de caso de uso, modelos de design, etc.), arquivos de código-fonte,
executáveis, documentos de design, relatórios de teste, protótipos,
manuais do usuário, etc.
▶Um artefato é denotado por um retângulo mostrando o nome do
artefato, a palavra-chave «artefato» e um ícone de documento,
conforme mostrado abaixo.
▶Um artefato representa (na prática) um
componente de software (em “manifesto”).
52
Diagrama de Implantação - Manifestação de componentes por
artefatos
53
Diagrama de Implantação – Associação
▶Uma associação representa um “link” de comunicação entre os nós.
54
Diagrama de Implantação – Nó como contêiner
▶Um nó pode conter outros elementos, como componentes ou artefatos.
55
Exemplo de Diagrama de Implantação
▶ Diagrama de implantação em nível de especificação: Aplicativo da web implantado
no servidor Tomcat JSP e esquemas de banco de dados - para o sistema de banco de
dados.
56
Exercícios
57
Q01
▶ Represente em forma de classe (apenas uma classe e seus
atributos) as
abstrações para o problemas a seguir.
A) Uma multa de trânsito capturada por um radar eletrônico, que
será aplicada ao motorista e seu veículo.
B) Um bilhete de estacionamento, que é gerado em máquinas
automatizadas (presentes em um shopping-center, por
exemplo). O bilhete é retirado pelo motorista, e no final do
passeio/compras ele se dirige ao guichê para pagar.
58
Q02
▶ Identifiqueos atributos para as classes abaixo, considerando o essencial para o
contexto do problema:
a) Aluno (de uma universidade que frequenta um curso em um semestre)
b) Livro (em um sistema de biblioteca acadêmica)
c) Veículo (carro de passeio para uma locadora de automóveis)
59
Q03
60
Q04
▶ Considere a atividade que você fez sobre o sistema de Clínica Médica.
▶ Descrição (Produto para gestão de clínica)
▶O produto deve dar suporte à gestão de uma clínica médica, onde trabalha uma equipe de médicos e
enfermeiros. O software será usado pelos recepcionistas para marcação de consultas, assim como aos
médicos para registro do prontuário e evolução (histórico) dos pacientes. Os enfermeiros atuam nas
funções de atendimento ambulatorial ao paciente, registrando procedimentos ambulatoriais (avaliação
clínica, aplicação de medicamentos, medição, coleta, curativos, etc). O software deve permitir a
recepção de resultados de exames, enviados diretamente dos laboratórios conveniados aos médicos, que
os solicitaram para os pacientes. Por opção do médico, estes resultados podem ser entregues aos
pacientes, ou guardados na clínica para consulta posterior.
61
Q05 – Diagrama de Comunicação
b) X:
c) Y: m2()
d) Z: m3() m4()
62
Q6 – UML
E1 ____
E2 ____
63
Q7 – Identificação de classes/objetos
64
Q8 – Diagrama de Casos de Uso
▶Considere um sistema para um terminal de auto-atendimento de um
banco. Um cliente do banco ao utilizar o terminal de auto-
atendimento pode realizar as seguintes transações:
Obter o extrato da sua conta bancária, podendo escolher a opção de imprimir ou
visualizar em tela.
Realizar saque da conta.
Realizar transferência de valores entre a sua conta e outra conta.
Em todas as transações é necessário fornecer a identificação da conta e do
acesso do cliente (através de uma senha e passando o cartão no terminal).
▶Desenhe o diagrama de casos de uso, considerando os possíveis
relacionamentos de include (incluir) e extend (estender).
65
Q9 – Diagrama de Sequência
▶Faça o Diagrama de Sequência a partir da regra de um jogo de dados,
descrito abaixo e do modelo conceitual presente na figura a seguir.
Jogo de Dados: no jogo de dados, um jogador lança dois dados; se a soma dos
valores das face for 7, ele ganha; caso contrário, ele perde.
66
Q10 – Diagrama de Estados
67
LISTA DE EXERCICIOS DO CAP 4 (Livro Engenharia de Software na Prática)
68