O documento descreve conceitos de modelagem de sistemas, incluindo diagramas de casos de uso, classes, objetos e suas relações. Discutem-se casos de uso, atributos, operações, associações, generalização, agregação e normalização de dados.
2. DIAGRAMA DE CASO DE USO
Os casos de uso descrevem a funcionalidade do
sistema percebida por atores externos;
Um ator interage com o sistema podendo ser um
usuário, dispositivo ou outro sistema;
4. RELACIONAMENTOS
Entre um ator e um caso de uso
Associação: define uma funcionalidade do sistema do
ponto de vista do usuário;
5. RELACIONAMENTOS
Entre casos de uso
Associação
Include
Extend
Generalização ou Especialização
6. RELACIONAMENTOS
Include
Um relacionamento include de um caso de uso A para
um caso de uso B indica que B é essencial para o
comportamento de A. Pode ser dito também que
B is_part_of A;
7. RELACIONAMENTOS
Extend
Um relacionamento extend de um caso de uso B para
um caso de uso A indica que o caso de uso B pode ser
acrescentado para descrever o comportamento de A
(não é essencial);
8. RELACIONAMENTOS
Generalização ou Especialização (é_um)
Um relacionamento entre um caso de uso genérico para
um mais específico, que herda todas as características
de seu pai;
9. FASES DO DIAGRAMA DE CASOS DE USO
Roteiro de levantamento do modelo de casos de
uso:
Levantamento dos atores;
Levantamento dos casos de uso principais;
Definição dos relacionamentos:
Entre atores;
Entre atores e casos de uso;
Detalhamento dos casos de uso:
Relacionamentos entre casos de uso;
10. CLASSE
Abstração: se preocupa com a visão superficial de
um objeto, por isso serve para separar o
comportamento de um objeto de sua
implementação;
Classe: representam um modelo conceitual
primário para elementos que têm
responsabilidades e comportamento no sistema;
Objeto: objeto é simplesmente alguma coisa que
faz sentido no contexto da aplicação e não deve ter
nomes vagos;
11. DIAGRAMA DE CLASSES
É um esquema, padrão, ou molde, para descrever,
várias possíveis instâncias de dados ou seja
descreve as classes;
Notação UML:
12. ATRIBUTOS
Um atributo é uma propriedade de um
objeto
Ex.: Nome, idade (atributos de pessoa);
Cada atributo tem um valor para cada
instância
A idade de João é 26;
Devem ser valores de dados puros, e não
objetos;
Um atributo pode ter um valor default;
13. ATRIBUTOS
o Visibilidade:
o + {público}: o elemento pode ser utilizado pelo objeto no
qual ele pertence e por qualquer objeto cliente.
o # {protegido}: o elemento pode ser utilizado somente pelo
próprio objeto no qual ele pertence, ou se existirem, pelas
suas subclasses.
o - {privado}: o elemento pode ser utilizado somente pelo
objeto ao qual ele pertence.
o ~{package}: visível a classes do mesmo package.
14. OPERAÇÕES
Uma operação é uma função, ou transformação, que
pode ser aplicada para ou por objetos em uma classe
Ex: Contratar, PagarSalários são operações da Classe
Empresa;
Operações podem ser polimórficas
Ex: Imprimir arquivos binários, textos, figuras;
Operações podem receber parâmetros
Ex: Mover um polígono 10 pixels;
Todas as instâncias de uma classe compartilham as
mesmas operações;
16. ASSOCIAÇÕES
É uma relação que descreve um conjunto de
vínculos entre elementos de modelo
Podem ser reflexivas, binárias, ternárias, etc.
17. ASSOCIAÇÕES
Diagrama de Classes
País Cidade
Tem-capital
Nome Nome
Diagrama de Objetos
:País :Cidade
Tem-capital
Brasil Brasília
18. ASSOCIAÇÕES BINÁRIAS
Quando há duas classes envolvidas na associação
de forma direta de uma para a outra (mutualismo)
Empregado Empresa
Trabalha-para
19. MULTIPLICIDADE DE ASSOCIAÇÃO
Especifica quantas instâncias de uma
classe pode se relacionar com cada
instância de outra classe.
Limita o número na relação entre os
objetos.
Geralmente é “um” ou “muitos”, mas pode
ser um conjunto finito.
Carro Roda
se-move-sobre
4
21. MULTIPLICIDADE - UML
Exatamente 1
0..*
Muitos (zero ou mais)
0..1
Opcional (zero ou um)
1..*
Um ou mais
4
Numericamente Especificado (exatamente 4)
2,4..7
Numericamente Especificado (2,4,5,6 ou 7)
22. PAPÉIS DA ASSOCIAÇÃO
É o nome que identifica um lado da Associação.
Também chamado de Papel Executado (ou Nomes de
Papel, Role Names);
Pessoa Empregado Empregador Empresa
Trabalha-para
(associação)
23. ASSOCIAÇÃO
Diagrama de Classes
Empregado Trabalha-para Empresa
Nome Nome
Cargo 1..*
Diagrama de Instâncias (Objetos)
:Empregado Trabalha-para :Empresa
Lucas
IBM
Analista 1..*
24. AGREGAÇÃO
É a relação “parte-todo” ou “uma-parte-de”.
É uma forma especial de associação.
É uma relação do tipo “todo/parte” ou “possui um”
na qual uma classe representa uma coisa grande
que é composta de coisas menores.
25. AGREGAÇÃO
Ex: Diagrama de Classes
Microcomputador
Tipo
Placa-Mãe Processador RAM
Marca Velocidade Capacidade
26. AGREGAÇÃO
Ex: Diagrama de Instâncias (Objetos)
:Micro
P-IV
:Placa-Mãe :CPU :RAM
ASUS 1.4 Ghz 128 MB
28. GENERALIZAÇÃO
Generalização é o relacionamento que organiza
Classes baseado em suas similaridades e diferenças.
É a capacidade de se criar supertipos que encapsulam
a estrutura e o comportamento comum a vários
subtipos. Os procedimentos para se obter
generalização são:
Identificar similaridades de estrutura/comportamento entre
várias classes.
Criar o supertipo para encapsular a estrutura e o
comportamento comum a mais de uma classe.
Os objetos originais passam a ser subtipos do novo supertipo
criado.
29. ESPECIALIZAÇÃO
É a capacidade de se criar subtipos que
representam refinamentos nos quais a
estrutura e/ou comportamento do supertipo
são adicionados ou modificados.
Os procedimentos são:
Perceber que algumas classes apresentam
estrutura e/ou comportamento especializado.
Criar subtipos de acordo com a especialização.
30. GENERALIZAÇÃO/ESPECIALIZAÇÃO
Ex.:
Pessoa
matrícula
nome
idade
mudarNome()
obterIdade()
Funcionário Professor
promover() contratar()
31. ATENÇÃO
Pode confundir em virtude da notação
G A
Generalização = é-um
Agregação = tem-um, é-parte-de
32. FASES DO DIAGRAMA DE CLASSE
Generalização e Refinamento
Classes Associações Atributos
Especialização do modelo
Classes candidatas e rejeitadas
33. CLASSE DE ASSOCIAÇÃO
É representada como o símbolo de classe anexado por
uma linha tracejada;
Classe A Classe B
Nome da classe de associação
atributos
operacao
34. DEPENDÊNCIA
Indica a ocorrência de um relacionamento
semântico entre dois ou mais elementos do modelo
onde uma classe cliente é dependente de algum
serviço da classe fornecedora;
Não possui dependência estrutural;
Mudanças na classe fornecedora podem afetar as
classes clientes;
Dependência
Classe Classe
Fornecedora Cliente
35. NORMALIZAÇÃO
Dependente da modelagem de banco de dados;
Um estrutura de atributos não normalizada está na
zeríssima forma normal;
36. 1ª FORMA NORMAL
Remoção de grupos repetidos;
É verifica quando em determinadas estruturas de
atributos existem dados repetidos;
Exemplo:
Pedido
numero_pedido
codigo_pedido
nome_cliente
data_pedido
codigo_produto[15]
quantidade_produto[15]
descricao_produto[15]
37. 1ª FORMA NORMAL
Aplicando a 1ª forma normal gera a classe Pedido
Item que herdará os valores repetidos da classe
Pedido;
A relação é de agregação de pedido item com
pedido;
Pedido Pedido Item
numero_pedido
1 1..* codigo_produto[15]
codigo_pedido quantidade_produto[15]
nome_cliente descricao_produto[15]
data_pedido
38. 1ª FORMA NORMAL
Como obter a 1ª forma normal:
Verificar se há atributos repetidos na classe;
Destacar os atributos repetidos e suas respectivas
operações, criando uma nova classe com esses itens;
Estabelecer a associação de agregação regular e
multiplicidade entre as classes;