Você está na página 1de 68

IFPA

Tecnologia em Análise e Desenvolvimento de Sistemas (TADS)

Práticas de Engenharia de
Software

Modelos (UML)
- parte 2

PROFESSOR: Claudio Roberto de Lima Martins


claudiomartins2000@gmail.com
1
Agenda
▶ Esta aborda alguns diagramas não vistos no Cap 4 do livro
ESM.

2
Diagrama de Casos de Uso

3
Diagrama de Casos de Uso

▶Um diagrama de casos de uso descreve a relação entre atores


e casos de uso (funcionalidades) de um dado sistema.
▶Atorespodem ser usuários de um sistema, bem como outros sistemas,
equipamentos, e qualquer entidade que interage com o sistema e está
modelado fora dos limites do sistema.
▶Este é um diagrama que permite dar uma visão de alto nível
do sistema, sendo fundamental a definição correta da sua
fronteira.
▶O diagrama complementa a narrativa da documentação dos
casos de uso (como vistos nas aulas anteriores).
4
Diagrama de Casos de Uso
▶ Representação básica
▶O ator é uma classe esterotipada por um boneco (stick man)

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.

No exemplo, o ator “Web Client” é


uma superclasse abstrata para
Administrador, Editor e Cliente.

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»

Os estereótipos UML para


o assunto são:
•"Subsistema"
•"Processador"
•"Serviço"
•"Componente"

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.

Caso de uso de registro do usuário .


Caso de uso de transferência de fundos

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

▶“Extend” é um relacionamento direcionado que especifica


como e quando o comportamento definido no caso de uso de
extensão suplementa (estende) o comportamento definido
no caso de uso estendido (o caso de uso base/principal).
▶O caso de uso estendido é independente do caso de uso
estendido.
▶A extensão do caso de uso normalmente define
um comportamento ”opcional”
▶Significaque a chamada ao caso de uso estendido não é necessariamente
obrigatório de ocorrer no fluxo alternativo do caso de uso principal.
13
Relacionamento de “extensão” (extend) entre casos de uso

▶O relacionamento estendido entre os casos de uso é mostrado por uma


seta tracejada com uma ponta de seta aberta do caso de
uso estendido para o caso de uso estendido (base).
A seta é rotulada com a palavra-chave «extend»

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

▶Um relacionamento de inclusão entre os casos de uso é mostrado por


uma seta tracejada com uma ponta de seta aberta do caso de uso base
para o caso de uso incluído. A seta é rotulada com a palavra-
chave «include»

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:

▶Um editor de texto simplificado manipula o texto (seus dados/objetos) em um


editor orientado a linhas. O texto é armazenado em arquivos que consistem em
sequências de linhas, onde cada linha é uma sequência de caracteres.
▶Oeditor oferece ao usuário funções básicas de edição usando o teclado, como
quebra de linha (tecla ENTER), inserção de uma linha adicional, apagar o
texto, selecionar texto, copiar texto, etc. Há operações extras que permitem
formatar a fonte, pesquisar um texto, trocar um texto por outro, etc.
▶Uma vez editado um texto, o editor permite operações típicas para criar um
novo texto, salvar, imprimir e ler arquivos de textos salvos.

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)

▶Elabore um Diagrama de Casos de Uso para o seguinte cenário:


▶Um Vendedor tira um pedido para um cliente e ao tirar o pedido,
ele pode ou não, dependendo do valor do pedido ou forma de
pagamento, consultar o SPC. Ao tirar o pedido, será feita a
verificação de pagamentos em atrasos do cliente.
▶Ao ator Entregador é delegada a funcionalidade de entrega do
pedido, mas também será feito a verificação de pagamentos em
atrasos, reutilizando a especificação dessa funcionalidade.

OBS: identifique os casos de uso principais e os casos de uso de


inclusão e extensão.
22
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

▶Um diagrama de máquina de estado (ou Diagrama de Máquina de


Estados) modela o comportamento de um único objeto, especificando
a sequência de eventos pelos quais um objeto passa durante sua vida
útil em resposta a eventos.

▶Com isso, o objeto pode passar de um estado inicial para um estado


final através de uma transição.

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.

Primavera Verão Outono Inverno

Diagrama de transição de estados das estações do ano (ciclo fechado)


34
Estados iniciais e finais
▶O estado inicial é denotado por um círculo preto preenchido e pode ser rotulado
com um nome (ou não). Pode representar um “pseudo” estado que inicia o
processo do ciclo de vida dos estados do objeto.
▶O estado final é denotado por um círculo com um ponto dentro e também pode
ser rotulado com um nome.

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

▶Um estado pode ter uma transição que retorna a si mesmo.


▶Isso é mais útil quando um efeito está associado à transição.

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.

▶Componente pode abranger um módulo ou grande parte de um sistema, sempre


observando componente como um “bloco” físico, executável (já compilado,
binário, ou executável).
Ex: uma página web, uma biblioteca “.jar”, uma API, um arquivo executável
43
(.exe), um script (.bat ou shell), etc.
Elementos do Diagrama de Componentes
▶Componente
▶ Oscomponentes são representados como um
classificador retangular com a palavra-chave
«componente»; opcionalmente, o componente
pode ser exibido como um retângulo com um
ícone de componente no canto superior direito.

▶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.

O diagrama a seguir mostra um


diagrama de implantação para uma
rede, representando protocolos de rede
como estereótipos e multiplicidades nas
extremidades da associação.

54
Diagrama de Implantação – Nó como contêiner
▶Um nó pode conter outros elementos, como componentes ou artefatos.

O diagrama a seguir mostra um diagrama de implantação para parte de um


sistema embarcado, representando um artefato executável contido no nó da
placa-mãe.

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

▶Identifiqueas classes com seus atributos e relacionamentos


(associações) para o contexto a seguir:
▶ Uma turma de um curso de graduação tem disciplinas ministradas em salas diferentes.
Uma turma possui uma identificação, turno, série e datas de início e término para
matricula. Uma sala é identificada por um número, contém uma quantidade de lugares e
está localizada em um prédio. Um curso tem um nome e um número de alunos
matriculados, além de um período em semestres para sua conclusão. Uma disciplina tem
um nome e um código, pertence a um curso e possui carga horária, ementa e conteúdo
programático.

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.

▶ Elabore um diagrama de classes para a definição do sistema. Considere apenas as


classes de negócio, sem métodos (apenas atributos essenciais e relacionamentos).

61
Q05 – Diagrama de Comunicação

▶Considerandoo diagrama de comunicação a seguir, quais classes


implementam os métodos m1(), m2(c), m3() e m4() ?
m1()
a) A: :A

b) X:
c) Y: m2()
d) Z: m3() m4()

Obs: essa notação representa


uma coleção de objetos

62
Q6 – UML

▶Identifique os elementos do diagrama abaixo.


▶Qual o nome desse diagrama?
b) ____

E1 ____

a) ____ c) ____ d) ____

E2 ____

63
Q7 – Identificação de classes/objetos

▶Identifiqueclasses e/ou relacionamentos a partir das seguintes


regras do negócio:
 A) Pedidos são compostos de vários itens de pedido.
 B) Um item de pedido diz respeito a um e exatamente um produto.
 C) Um pedido pode conter até 20 itens.

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

▶Elabore um Diagrama de Transição de Estados para um semáforo


(sinal de trânsito).

67
LISTA DE EXERCICIOS DO CAP 4 (Livro Engenharia de Software na Prática)

▶Solucione as questões do Cap 4 do livro:


 https://engsoftmoderna.info/cap4.html

68

Você também pode gostar