5. A Linguagem UML
• UML (Linguagem de Modelagem
Unificada)
• Notação gráfica (visual) para modelar
sistemas orientados a objetos
• Não é uma linguagem de programação
• Define diagramas padronizados
• Complexa (muitos diagramas)
5
6. O que é modelagem?
• Modelo é uma simplificação da realidade
• Modelagem de software é a atividade de
construir modelos do sistema
• Não é uma representação completa do sistema
• UML pode ser usada em qualquer processo
de software
• Usada principalmente nas atividades de especificação
de requisitos e projeto
6
8. Por que modelar?
• Tão essencial quanto ter uma planta antes da
construção de uma casa
• Melhora a comunicação entre membros da equipe e cliente
• Equipe entende melhor o sistema
• Permite analisar o sistema sobre vários aspectos
• Facilita a programação e a manutenção
• Diminui a possibilidade de erros
8
9. Por que usar UML?
• Bons modelos são essenciais para a
comunicação entre os stakeholders
• Padronização
• Todo o time entende a modelagem, facilitando a
manutenção
• Facilita a programação
• Integração entre ferramentas para modelagem e
geração de código
9
10. Diagramas UML
• Tipos de Diagramas:
• Estrutural: modela organização do sistema ou
estrutura dos dados
• Comportamental: modela o comportamento dinâmico
do sistema e como ele responde a eventos
• Objetivos
• Visualizar o sistema
• Especificar estrutura e/ou comportamento
• Guiar e documentar as decisões
10
11. Exemplos de Diagramas
• Diagramas Estruturais (Estáticos)
• Diagrama de Classes
• Diagramas de Objetos
• Diagrama de Componentes
• Diagrama de Implantação, etc
• Diagramas Comportamentais
• Diagrama de Casos de Uso
• Diagrama de Sequência
• Diagrama de Estados
• Diagrama de Atividades, etc
11
14. 9 Diagramas UML
Diagrama de Casos de Uso
Diagrama de Sequência
Diagrama de Comunicação
Diagrama de Classes
Diagrama de Objetos
Diagrama de Estados
Diagrama de Atividades
Diagrama de Componentes
Diagrama de Implantação
14
15. 9 Diagramas UML
Diagrama de Casos de Uso
Diagrama de Sequência
Diagrama de Comunicação
Diagrama de Classes
Diagrama de Objetos
Diagrama de Estados
Diagrama de Atividades
Diagrama de Componentes
Diagrama de Implantação
15
16. Diagrama de Caso de Uso
• Diagrama mais geral da UML
• Utilizado geralmente na fase de Especificação
de Requisitos
• Apresenta:
• Quais usuários realizam certas funcionalidades
• Relacionamentos entre estas funcionalidades
16
18. 9 Diagramas UML
Diagrama de Casos de Uso
Diagrama de Sequência
Diagrama de Comunicação
Diagrama de Classes
Diagrama de Objetos
Diagrama de Estados
Diagrama de Atividades
Diagrama de Componentes
Diagrama de Implantação
18
19. Diagrama de Sequência
• Preocupa-se com a ordem temporal em que
as mensagens são trocadas
• Pode se basear em um Caso de Uso
• Identifica:
• Eventos associados a funcionalidade modelada
• Ator responsável por este evento
19
21. 9 Diagramas UML
Diagrama de Casos de Uso
Diagrama de Sequência
Diagrama de Comunicação
Diagrama de Classes
Diagrama de Objetos
Diagrama de Estados
Diagrama de Atividades
Diagrama de Componentes
Diagrama de Implantação
21
22. Diagrama de Comunicação
• Complementar ao Diagrama de Sequência
• Não se preocupa com a temporalidade
• Foca na organização estrutural dos objetos
• Define:
• Como os objetos estão vinculados
• Quais mensagens são trocadas entre objetos
22
24. 9 Diagramas UML
Diagrama de Casos de Uso
Diagrama de Sequência
Diagrama de Comunicação
Diagrama de Classes
Diagrama de Objetos
Diagrama de Estados
Diagrama de Atividades
Diagrama de Componentes
Diagrama de Implantação
24
25. Diagrama de Classes
• Diagrama mais utilizado da UML
• Serve de apoio para a maioria dos outros
diagramas
• Define a estrutura das classes do sistema
• Estabelece como as classes se relacionam
25
28. 9 Diagramas UML
Diagrama de Casos de Uso
Diagrama de Sequência
Diagrama de Comunicação
Diagrama de Classes
Diagrama de Objetos
Diagrama de Estados
Diagrama de Atividades
Diagrama de Componentes
Diagrama de Implantação
28
29. Diagrama de Objetos
• Complementar ao Diagrama de Classes
• Exibe os valores armazenados pelos objetos
de um Diagrama de Classes
29
31. 9 Diagramas UML
Diagrama de Casos de Uso
Diagrama de Sequência
Diagrama de Comunicação
Diagrama de Classes
Diagrama de Objetos
Diagrama de Estados
Diagrama de Atividades
Diagrama de Componentes
Diagrama de Implantação
31
32. Diagrama de Estados
• Modela as mudanças sofridas por um objeto
dentro de um determinado processo
• Pode ser utilizado para acompanhar os
estados pelo qual passa uma instância de
uma classe
32
35. 9 Diagramas UML
Diagrama de Casos de Uso
Diagrama de Sequência
Diagrama de Comunicação
Diagrama de Classes
Diagrama de Objetos
Diagrama de Estados
Diagrama de Atividades
Diagrama de Componentes
Diagrama de Implantação
35
36. Diagrama de Atividades
• Descreve as atividades a serem executadas
para a conclusão de um processo
• Concentra-se na representação do fluxo de
controle de um processo
36
38. 9 Diagramas UML
Diagrama de Casos de Uso
Diagrama de Sequência
Diagrama de Comunicação
Diagrama de Classes
Diagrama de Objetos
Diagrama de Estados
Diagrama de Atividades
Diagrama de Componentes
Diagrama de Implantação
38
39. Diagrama de Componentes
• Representa os componentes do sistema
• Componente: parte lógica e substituível do
sistema
• Componentes serão implementados como:
• Classes, pacotes, bibliotecas, …
39
41. 9 Diagramas UML
Diagrama de Casos de Uso
Diagrama de Sequência
Diagrama de Comunicação
Diagrama de Classes
Diagrama de Objetos
Diagrama de Estados
Diagrama de Atividades
Diagrama de Componentes
Diagrama de Implantação
41
42. Diagrama de Implantação
• Determina as necessidades de hardware,
quais software rodam em cada nó, etc
• Características físicas do sistema
• Servidores
• Estações de trabalho
• Impressora, scanner, etc
42
46. Atividades da
Modelagem OO
1. Definir o contexto do sistema
2. Projetar a arquitetura
3. Identificar os principais objetos
4. Desenvolver os modelos de objetos
5. Especificar interfaces entre objetos
46
47. Paralelo e Iterativo
• Atividades não são necessariamente
sequenciais
• Geralmente é feito de forma iterativa
1. Definir parte do contexto do sistema
2. Projetar parte da arquitetura
3. Identificar alguns objetos
4. Modelar objetos
5. Definir interfaces
47
48. (1) Definir o
Contexto do Sistema
• Objetivo: compreensão do software que está
sendo desenvolvido e de seu ambiente externo
• Técnicas adotadas
• Diagramas de Casos de Uso
• Descrição dos Cenários, etc.
• Ao definir o contexto, pode-se identificar
alguns objetos do domínio
48
49. (2) Projetar Arquitetura
• Primeiro passo do projeto de sistema
• Projeto arquitetural envolve
• Identificação dos componentes principais do sistema
• Definição das interfaces de comunicação entre os
componentes
49
52. (3) Identificar os
Principais Objetos
• Identificação de objetos também é um
processo iterativo
• Improvável fazer certo na primeira vez
• Não há fórmula mágica para a identificação
de objetos
52
53. Abordagem para
Identificação de Objetos
• Análise gramatical baseada na descrição dos
cenários de uso
• Como proceder:
• Substantivos: objetos ou atributos
• Verbos: métodos
• Refinar e definir novos objetos usando o conhecimento
do domínio do sistema
53
55. Exemplo de Cenário
Nome do Cenário: Sacar
Ator: Cliente
Pré-condição: Conta e senha validadas
Fluxo normal
1. Cliente entra com valor do saque
2. Sistema confirma dados e operação
3. Sistema debita valor da conta do cliente
Fluxos alternativo: Saldo insuficiente
3.1 Apresentar aviso ao cliente…
Pós-condição: Valor sacado é debitado do saldo do cliente
55
56. Exemplo de Cenário
Nome do Cenário: Sacar
Ator: Cliente
Pré-condição: Conta e senha validadas
Fluxo normal
1. Cliente entra com valor do saque
2. Sistema confirma dados e operação
3. Sistema debita valor da conta do cliente
Fluxos alternativo: Saldo insuficiente
3.1 Apresentar aviso ao cliente…
Pós-condição: Valor sacado é debitado do saldo do cliente
Potenciais objetos
do sistema
56
57. Exemplo de Cenário
Nome do Cenário: Sacar
Ator: Cliente
Pré-condição: Conta e senha validadas
Fluxo normal
1. Cliente entra com valor do saque
2. Sistema confirma dados e operação
3. Sistema debita valor da conta do cliente
Fluxos alternativo: Saldo insuficiente
3.1 Apresentar aviso ao cliente
Pós-condição: Valor sacado é debitado do saldo do cliente
Potenciais atributos
dos objetos
57
58. Exemplo de Cenário
Nome do Cenário: Sacar
Ator: Cliente
Pré-condição: Conta e senha validadas
Fluxo normal
1. Cliente entra com valor do saque
2. Sistema confirma dados e operação
3. Sistema debita valor da conta do cliente
Fluxos alternativo: Saldo insuficiente
3.1 Apresentar aviso ao cliente
Pós-condição: Valor sacado é debitado do saldo do cliente
Potenciais métodos
dos objetos
58
59. (4) Modelos de Objetos
• Fazem a ligação entre requisitos (problema)
e implementação (solução)
• Mostram objetos (ou classes de objetos) e os
relacionamentos entre essas entidades
• Devem incluir detalhes suficientes para
facilitar a programação
59
60. Várias Visões
• Para evitar modelos complexos, eles são
quebrados em diversas visões
• Modelos estáticos
• Modelos dinâmicos
• Modelo estático mais utilizado:
• Diagrama de Classes
60
61. (5) Especificar Interfaces
entre Objetos
• Interface: contrato entre objetos/componentes
• Desenvolvedores de outros objetos podem
assumir que a interface será implementada
• Objetos podem ter várias interfaces
61