Aula 3 Engenharia de Software II
Aula 3 Engenharia de Software II
Aula 3 Engenharia de Software II
UML
Prof. Yulle Gustavo
E-mail Yulle.Gustavo@ifpa.edu.br
O que é UML
História
Diagrama de Classes
Ferramentas de Modelagem
Certificação
Bibliografia
O que é e por que usar UML?
3
Um pouco de história...
James Rumbaugh
Versão 0.9 Versão 1.1 Versão 1.3 Versão 1.5 Versão 2.1
e Grady Booch
- Versão 0.8
- Ivar Jacobson
Versão 1.0 Versão 1.2 Versão 1.4 Versão 2.0
- “três amigos”
4
UML - Diagramas
• Lista de Diagramas
Diagrama Objetivo Grupo Diagrama
Classes Classe, características e relacionamentos. Estrutural
Componentes Estrutura e conexão de componentes. Estrutural
Estruturas Compostas Decomposição de uma classe em tempo de execução. Estrutural
Instalação Distribuição de artefatos nos nós. Estrutural
Objetos Exemplo de configurações de instâncias. Estrutural
Pacotes Estrutura hierárquica em tempo de compilação. Estrutural
Casos de Uso Como os usuários interagem com um sistema. Comportamental
Atividades Comportamento procedimental e paralelo. Comportamental
Máquinas de Estado Como os eventos alteram um objeto no decorrer de sua vida. Comportamental
Sequência Interação entre objetos; ênfase na sequência. Interação
Comunicação Interação entre objetos; ênfase nas ligações. Interação
Visão Geral da Interação Mistura de diagrama de sequência e de atividades. Interação
Sincronismo Interação entre objetos; ênfase no sincronismo. Interação
5
Criando um projeto UML no
NetBeans
• Para iniciar o NetBeans:
– Iniciar / Programas / Netbeans / NetBeans IDE 6.5
• Para criar um novo Projeto UML:
– Arquivo
- Novo projeto
6
Criando um projeto UML no
NetBeans
• Digite o nome e o local onde será criado o projeto:
7
UML – Diagrama de Caso de Uso
8
Ator
• Humano ou entidade.
• Interage com o sistema.
• Iniciam o sistema.
• Fornecem dados.
• Usam as informações do sistema.
9
Caso de Uso
10
<<include>> e <<extend>>
• <<include>>
– Relacionamento com outro caso de uso que sempre será
executado.
• <<extend>>
– Relacionamento com outro caso de uso que pode ou não ser
executado.
11
Diagrama de
Caso de Uso
12
Diagrama de
Caso de Uso
Descrição Diagrama
Pagamento de Serviço
Extensões:
1a. Usuário não autorizado
1a.1 O usuário não possui perfil para realizar pagamentos
1a.2 O usuário é direcionado ao passo 6.
3a. Serviço não finalizado
3a.1 O sistema apresenta que o serviço não foi finalizado
3a.2 O usuário é direcionado ao passo 6.
13
Diagrama de
Caso de Uso
• Exemplo de Caso de Uso para sacar dinheiro
14
Criando um diagrama
de Caso de Uso
• No item Diagramas -> Novo -> Diagrama...
15
Criando um diagrama
de Caso de Uso
16
Exemplo Prático
17
Resposta do
exemplo prático
18
O que colocar no
diagrama de Caso de Uso
19
O que não colocar no
diagrama de Caso de Uso
• Textos longos.
• Muitas extensões.
• Todos diagramas se chamando.
• Todas as ações CRUD separadas.
• Detalhes da tela (botões, combos, links, etc).
• Não é um fluxograma!
20
UML – Diagrama de Classes
21
Estrutura
da classe
22
Atributos
23
Operações
24
Visibilidade
- private
~ default
# protected
+ public
25
Atributos e
operações estático
26
Comentário
27
Comentário
• O comentário pode ser utilizado em qualquer diagrama,
podendo ou não ser vinculado a algum elemento.
28
Associações
29
Associação
• Relacionamento simples entre duas classes:
30
Agregação
31
Composição
32
Agregação x Composição
33
Classe de associação
• Utilizamos para realizar o relacionamento entre duas
classes:
• ou
34
Associação
35
Navegabilidade
36
Multiplicidade
► Um para Muitos
Multiplicidade
44
Criando um diagrama de
Classes
• No item Diagramas -> Novo -> Diagrama...
46
Criando um diagrama de
Classes
• Ao clicar em Finalizar teremos a seguinte tela:
47
Exemplo
48
Resposta exemplo prático
49
Exemplo prático
50
Resposta exemplo prático
51
Dependência
52
Dependência
• Palavras - chave de dependência:
<<call>>
<<create>>
<<dependency>>
<<use>>
53
Em um aplicativo de e-commerce, uma classe Cart depende de
uma classe Product porque a primeira utiliza a segunda como um
parâmetro para uma operação de inclusão.
Exemplo
Associação x Dependência
55
Associação x Dependência
• Exemplo:
56
Classe Abstrata
57
Herança
58
Interface
59
Interface
• Exemplo:
60
Pacote
61
Template
62
Enumeration
63
Exemplo prático
64
Resposta exemplo prático
65
O que colocar no diagrama
de classes
• Concentre-se nas áreas principais do sistema.
• O necessário para que as pessoas envolvidas possam
entender.
• Mantenha as notações simples.
• Gere um diagrama de classe flexível, facilitando futuras
atualizações.
• Desenvolva o diagrama baseado na metodologia
adotada, podendo ser um diagrama de negocio,
diagrama especifico por áreas do sistema ou diagrama
com todas as classes envolvidas no sistema.
66
O que não colocar no diagrama
de classes
• Para não aumentar a complexidade de um
diagrama de classes, normalmente não
adicionamos no diagrama:
– Classes que representam telas.
– Classes de conexão e acesso ao banco de
dados.
– Classes de API’s da linguagem ou de terceiros.
Não tente usar todas as notações disponíveis no mesmo diagrama.
Não desenhe modelos para tudo, a menos que
seja realmente necessário.
67
Ferramentas IDE
68
Adicionando o plug-in de
UML no NetBeans
• No menu Ferramentas → Plug-ins
– Selecione em Plug-ins disponíveis → UML
69
Certificações UML
http://www.omg.org/uml-certification/exam_info.htm
70
Referencia bibliografica
71