Livro - ic.ufmt

Propaganda
Universidade Federal de Mato Grosso
Instituto de Computação
Pós Graduação Lato Sensu em Banco de Dados
Fundamentos de Banco de Dados
e
Modelagem de Dados
Prof. Dr. Josiel Maimone de Figueiredo
[email protected]
Abril - 2015
Pós Graduação Lato Sensu em Banco de Dados
Disciplina: Fundamentos de Banco de Dados e
Modelagem de Dados
Aula 3
Modelagem de Dados
com UML
Abril – 2015
O que é Modelagem
➔
Arquitetura de Banco de Dados
Conceitual
Aplicação
Conexão
Lógica
SGBD
Física
MER ou UML
Visão
Tópicos
➔
Conceitos básicos
➔
O que é UML?
➔
Unified Modeling Language
➔
Diagrama de Classes
➔
UML x MER
➔
Exemplos
➔
Exercícios
O que é a UML

(Unified Modeling Language)?
linguagem escrita por
 Grady Booch,
 Jim Rumbaugh e
 Ivar Jacobson.

Em 1997 é aprovada como padrão pela OMG;

Atualmente na versão 2.0;

Por ser uma linguagem, não especifica o método
para desenvolvimento, mas sim o que se utilizar
para desenvolver utilizando o paradigma OO.
Origens da UML
Booch
Rumbaugh
Jacobson
Fusion
Meyer
Operation descriptions,
Message numbering
Before and after
conditions
Harel
State charts
UML
Embley
Singleton classes,
High-level view
Gamma, et.al
Wirfs-Brock
Frameworks, patterns,
notes
Shlaer - Mellor
Object Lifecycles
Odell
Classification
Responsibilities
O que é a Unified Modeling
Language (UML)?
➔
➔
Combina o melhor de
➔
Modelagem de Dados
➔
Modelagem de Negócios
➔
Modelagem de Objetos
➔
Modelagem de Componentes
Linguagem padrão para
➔ visualizar,
➔
especificar,
➔
construir e
➔
documentar artefatos
7
Conceitos da UML
➔
Pode ser usada para modelar visualmente:
➔
A interação da aplicação com o mundo
externo
➔
A arquitetura da organização
➔
O comportamento da aplicação
➔
A estrutura da aplicação
➔
Os componentes da aplicação
8
Artefatos UML
➔
IC - UFMT
[Amber2001]
Estrutura da UML
➔
Diagramas
➔
Estáticos
➔
Diagrama de Classes
➔
Diagrama de Objetos
➔
Diagrama de Componentes
➔
Diagrama de Implantação
Estrutura da UML
➔
Diagramas
➔
Dinâmicos
➔
Diagrama de Casos de Uso
➔
Diagrama de Sequência
➔
Diagrama de Colaboração
➔
Diagrama de Atividade
➔
Diagrama de Estados
Estrutura da UML
➔
Para modelagem de dados é utilizado o
Diagrama de Classes
➔
Se baseia no
➔
Paradigma da Orientação a Objetos
Princípios da Orientação a Objetos
Princípios da Orientação a
Objetos
• Classe e Objeto
• Encapsulamento
• Relacionamento
• Herança
• Associação
• Polimorfismo
Objetos são Abstrações
Os objetos são representações de uma entidade do
mundo real.

São utilizadas, da entidade do mundo real, apenas
características relevantes ao sistema a ser modelado.

São representados atributos e comportamentos da
entidade.

Ex:
Atributos: tamanho, cor, etc.
Comportamentos: destampar,
escrever, etc.
Objetos possuem propriedades
Objetos possuem características que
determinam seu estado atual.

 Essas características são chamadas de atributos.
 Cada atributo possui um domínio e um valor.
 O estado de um objeto é determinado pelo valor
atual de seus atributos.
Objetos possuem operações que mudam seu
estado, ou seja, operam sobre os valores de
seus atributos.

 Essas operações, também, podem ser chamadas de
comportamento.
Objetos possuem propriedades
Um
(cont.)
Objeto possui um identificador
 que é único entre todos os outros objetos.
 Gerado pelo sistema
 Não muda de valor durante a vida do objeto
Dois
objetos são iguais se possuirem o mesmo
identificador.
Mesmo
possuindo o mesmo estado dois
objetos podem ser diferentes.
Classe
Uma classe é um modelo (“fôrma”) para grupos de
objetos que possuem as mesmas características.

Uma classe especifica quais são as características
(propriedades) do grupo de objetos:

 Atributos e Operações
Um Objeto é um exemplar de uma determinada
classe.

Representação de Classes
Uma classe é representada graficamente
através de um retângulo, contendo seu nome e
suas propriedades.


Ex:
NomeClasse
nomeAtributo
nomeOperação()
Encapsulamento
➔
Uma calculadora possui as 4 operações
básicas (soma, subtração, multiplicação,
divisão).
➔
Como cada operação é feita?
➔
Como ela armazena os números e os mostra?
➔
➔
Um usuário utiliza apenas os botões da
calculadora.
Calculadoras de fabricantes diferentes operam
de maneiras diferentes, porém a aparência, o
acesso aos dados e sua manipulação é
praticamente a mesma.
Encapsulamento
➔
Encapsular é a tarefa de
➔
➔
➔
esconder a forma de implementação
das operações,
definir a forma de acesso e ativação
das operações e,
determinar quais operações são
visíveis externamente.
Encapsulamento
➔
Vantagens
➔
➔
➔
O acesso aos dados é controlado,
Evita que os dados sejam manipulados
incorretamente,
Se a forma de manipulação do dado é
alterada não há mudanças para quem
utilizava as operações.
Encapsulamento
➔
Tipos de Visibilidade
➔
➔
➔
Pública (+) – acesso externo total por
qualquer objeto.
Privada (#) – somente o objeto pode acessar.
Protegida (-) – objetos da mesma classe ou
subclasses podem acessar.
Relacionamentos
➔
➔
➔
➔
Permite que ocorra uma abstração maior na
modelagem das classes.
Através dos relacionamentos que os objetos
interagem entre si.
A interação entre os objetos ocorre através
de trocas de mensagens.
Os tipos de relacionamentos são:
➔
Herança
➔
Associação
➔
Agregação
Herança
➔
Define o relacionamento É_UM entre classes,
criando uma hierarquia.
➔
Utiliza os conceitos da Abstração de
Generalização / Especialização, nos quais
todas as propriedades de uma classe são
herdadas por outras.
Herança
➔
Notação:
Superclasse
Publicação
Livro
Artigo
Subclasses
Revista
Herança Múltipla
➔
Uma classe pode herdar propriedades de
mais de uma classe.
➔
Ex:
Professor
Aluno
Monitor
Herança Múltipla (problemas)
Muitas vezes certas
Pessoa
características podem
gerar conflitos.
➔
Ex:
Professor
Aluno
Monitor
Interface
➔
Define um conceito semelhante ao de herança
múltipla, porém resolve o problema de conflitos.
➔
Uma (ou todas) das superclasses é definida
como uma interface, assim:
➔
Não pode possuir instâncias,
➔
Todos os seus atributos são constantes.
➔
Seus métodos não possuem corpo.
➔
A classe que herda de uma interface é dita
implementar a interface.
Herança Múltipla (problemas)
Muitas vezes certas
<<interface>>
Pessoa
características podem
gerar conflitos.
➔
Ex:
<<interface>>
Professor
<<interface>>
Aluno
Monitor
Associação
➔
➔
Define um relacionamento diferente do tipo
É_UM, podendo ter qualquer semântica.
Ex:
Livro
possui
Autor
Associação
➔
(cont.)
Multiplicidade
➔
➔
Define a forma de participação dos objetos no
relacionamento.
É expressada através do número mínimo e máximo de
participantes.
Tipos
Representação
Muitos
n
Apenas Um
1
Zero ou Muitos
0..n
Um ou Muitos
1..n
Zero ou Um
0..1
Intervalo Específico
n..m
Associação
➔
(cont.)
Ex: atribuição de multiplicidade
Livro
Livro
1..n
1..n
possui
possui
1..n
1..n
Autor
Autor
Associação
(cont.)
➔
Auto-relacionamento
➔
Ex:
é pré-requisito
0..n
Livro
é pré-requisito
0..n
possui pré-requisito
Classe de Associação
➔
➔
Quando uma associação possui atributos é
necessário criar uma classe para esse
atributo.
Ex:
Aluno
1..n
possui
Rendimento
nota
frequencia
1..n
Disciplina
Autor
Agregação
➔
➔
Um tipo especial de Associação que define o
relacionamento É_Composto:
➔
Um objeto é composto de outros objetos e
➔
Um objeto é parte de outro objeto.
Ex:
Livro
1..n
contém
1..n
Capítulo
Autor
Agregação por Valor
➔
➔
➔
Também chamado de Composição
A parte não existe sem o todo, ou a parte só
existe dentro do todo.
Ex:
Livro
1..n
contém
1..n
Capítulo
Autor
Agregação por Referência
➔
A parte pode existir sem o todo.
➔
Ex:
Categoria
1..n
contém
1..n
Produto
Autor
Polimorfismo
➔
➔
➔
É a capacidade de um operador executar uma ação
apropriada dependendo dos tipos dos operandos.
Possibilita utilizarmos de maneira uniforme
métodos que possuem o mesmo tipo de chamada,
porém implementações diferentes.
Dois tipos de Polimorfismo:
➔
Sobrecarga e
➔
Redefinição
Sobrecarga
➔
➔
Ocorre quando são definidos dois métodos
que possuem a mesma chamada, porém
recebem parâmetros diferentes.
Ex:
Funcionario
+busca(codigo)
+busca(nome)
Redefinição
➔
➔
Uma operação é definida na superclasse é
redefinida na subclasse para um tratamento
adequado de suas especificidades.
Ex:
Funcionario
+calculaSalario()
Gerente
Vendedor
+calculaSalario()
+calculaSalario()
Dependência
➔
➔
Indica que mudança em uma classe pode
causar mudanças na outra.
Relacionamento não estrutural
Cliente
Fornecedor
Relacionamento
de Dependência
42
Restrições
➔
Representa regras de negócio que não são
expressas por outros elementos da
linguagem.
Funcionário
Professor
1..*
Coordenador
3
1
Departamento
{subset}
1
43
UML x MER
➔
MER
➔
➔
➔
➔
Modelagem de Regras de Negócio e
Restrições
O MER facilita representação dos dados
contudo não aborda a manipulação desses
dados
Regras de negócio devem ser colocadas no
Dicionário de Dados
Arquitetura N-camadas as regras de negócio
devem ser distribuídas nas diversas
camadas.
44
UML x MER
➔
UML (Diagrama de Classes)
➔
➔
UML tem uma representação mais integrada
com todo o processo de desenvolvimento.
UML com os conceitos de Orientação a Objetos
aproxima mais a modelagem do mundo real.
➔
UML possui diversas representações adicionais
➔
Contudo:
➔
A estrutura conceitual pode ser confundida com
➔
a estrutura lógica de armazenamento e
➔
a estrutura lógica de classes da aplicação
45
UML x MER
➔
IC - UFMT
[Amber2001]
Exercício
➔
➔
Fazer a modelagem abaixo com MER e UML
”Uma loja de móveis deseja informatizar suas atividades.
Sabe-se que existem as atividades de venda e de reforma de
móveis. Um móvel possui as seguintes propriedades: foto,
material, peso, tipo e se faz parte de um conjunto, nesse caso
é necessário saber qual é o conjunto. Os tipos de móveis
permitidos são: sofá, mesa, cadeira e armário. Para sofás
deseja-se armazenar o número de lugares e
o tipo de
estofado. Para as cadeiras deseja-se saber se possuem braços
e rodas. Para os armários é preciso saber o número de
prateleiras, gavetas e de portas. Em qualquer serviço é
preciso saber o(s) funcionário(s) que o executou. No final do
mês é preciso saber quantos serviços foram feitos no período
por cada funcionário. Das entregas é preciso saber se
obedeceram ao prazo inicialmente previsto.”
Exercício
➔
Comparar MER e UML no que diz respeito às
representações, ou seja, todas as regras de
modelagem do MER podem ser representadas
em UML ? E vice-versa?
Referências
➔
➔
Silberschatz, A.; Korth, H.F.; Sudarshan,S.; ”Database System Concepts”; Fifth Edition; 2008.
Ana Cristina S. L. Melo, A.C.S.L.; ”Entendendo a UML - uma abordagem prática”; Universidade Estácio de
Sá Analista de Sistemas;
➔
Gonçalves, M.; ”Análise Orientada a Objetos - UML - Unified Modeling Language”
➔
Bezerra, E. ;”Princípios de Análise e Projeto Orientados a Objetos com UML ”; Editora CAMPUS.
➔
OMG – www.omg.org
➔
UML – www.uml.org
➔
UML Essencial – Grady Booch, Ivar Jacobson e James Rumbaugh.
Download