Вы находитесь на странице: 1из 33

CENTRO UNIVERSITRIO DE BARRA MANSA

COPEP COORDENADORIA DE PS-GRADUAO E PESQUISA


PS-GRADUAO EM TECNOLOGIA E PROJETO DE BANCO DE DADOS

Projeto de Banco de Dados Relacional


Prof. Me. Gabriel P. S. Brenner

CONTEDO PROGRAMTICO
MODELO ENTIDADE E RELACIONAMENTO
PROJETO DE BANCO DE DADOS RELACIONAL
OUTRAS TCNICAS DE MODELAGEM
- REVISO SOBRE CLASSES
- TCNICA DE MODELAGEM COM FOCO NAS
RESPONSABILIDADES
- TCNICA TEXTUAL DE ABBOTT
- MAPEAMENTO DE CLASSES (UML)

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: Projeto de Banco de Dados Relacional

FRASE MOTIVACIONAL

O engenheiro de software amador est


sempre procura de mgica, de algum
mtodo sensacional ou ferramenta cuja
aplicao promete tornar trivial o
desenvolvimento de software. uma
caracterstica do engenheiro de software
profissional saber que tal panacia no
existe.
Ps-Graduao em Tecnologia e Projeto de Banco de Dados
Disciplina: Projeto de Banco de Dados Relacional

DEFINIO DE CLASSE

Classe o descritor de um conjunto de objetos que


compartilham os mesmos atributos, operaes, mtodos
e comportamento.
Uma classe e outros elementos da UML que descrevem
conjuntos de instncias so considerados descritores.
Uma classe o estncial a partir do qual so criados
(gerados) objetos. Cada objeto tem a mesma estrutura e
comportamento definido pela classe da qual ele se
originou. Se o objeto obj pertence a classe C, dizemos
que obj uma instncia de C.
Ps-Graduao em Tecnologia e Projeto de Banco de Dados
Disciplina: Projeto de Banco de Dados Relacional

CLASSE

Representam um conceito dentro do sistema que


est sendo modelado.
Formam o vocabulrio do sistema.
Dependendo do modelo, o conceito pode ser relativo a
coisas do mundo real ou envolver algoritmos ou
implementao em computador.
Exemplo: Parachoque, Paralama, Porta podem ser
exemplos classes de um modelo que representa um carro.
Ps-Graduao em Tecnologia e Projeto de Banco de Dados
Disciplina: Projeto de Banco de Dados Relacional

CLASSE
Uma classe pode tambm representar conceitos abstratos (no material). Neste
caso, usa-se reificao, isto , tratar o conceito abstrato como coisa.
A reificao uma instrumento muito utilizado pelo ser humano, por exemplo, na
literatura e filosofia.
Ex.: Tup, deus do trovo em tupi.
Um nome a reificao de uma coisa e um verbo a
reificao de uma ao
A reificao tambm muito utilizada em modelagem.
Por exemplo, pode-se criar uma classe Sonho que vai descrever as propriedades de
um sonho.
Ps-Graduao em Tecnologia e Projeto de Banco de Dados
Disciplina: Projeto de Banco de Dados Relacional

NOMEANDO CLASSES
O nome de uma classe um texto, constitudos de letras, nmeros e outros
caracteres especiais exceto alguns utilizados na linguagem em que ser
implementado.
Na prtica, devem ser nomes ou frases curtas que funcionam como nomes, trazidos
do vocabulrio do domnio, sem espao ou caracteres especiais para que seja
possvel de ser implementada sem adaptao ou mudanas.
As letras iniciais de cada palavra devem ser maisculas.
Ex1.: TurmaCurso
Ex2.: Aluno
Ex3.: PedidoCompra

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: Projeto de Banco de Dados Relacional

RESPONSABILIDADE DAS CLASSES


Uma responsabilidade um contrato ou obrigao de uma classe.
Responsabilidades representam os conhecimentos e as aes que
possibilitam a uma classe cumprir seu papel.
Os atributos e operaes podem ser vistos como aspectos ou
caractersticas atravs das quais as responsabilidades so cumpridas.
Um bom ponto de partida para a definio de uma classe a definio
de suas responsabilidades (o que ela deve conhecer, qual papel ela
deve cumprir e quais aes ela precisa ter para que o cumpra).

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: Projeto de Banco de Dados Relacional

RESPONSABILIDADE DAS CLASSES


Responsabilidades so descritas como frases ou pargrafos curtos
em formato textual livre.
Podem ser documentadas em uma parte descrio da classe ou
como uma nota estereotipada como <<responsabilidade>> ligada
a classe.
Ex.:

<<Responsabilidade>>
Aluno

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: Projeto de Banco de Dados Relacional

Determina os dados do
aluno que participar das
turmas e das notas no
sistema

ATRIBUTO DE CLASSES

Atributo uma propriedade, com nome, de uma


classe que descreve um conjunto de valores que
instncias da propriedade podem ter.
Uma classe pode ter nenhum ou vrios atributos.
A cada momento, os objetos de uma classe vo ter
valores especficos para cada um de seus atributos;

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: Projeto de Banco de Dados Relacional

NOMEANDO ATRIBUTOS

Os nomes de atributos so semelhantes aos nomes


de classe, s que a primeira letra costuma ser
minscula.
Pode-se especificar a classe (tipo) a que pertence
um atributo e um valor inicial.
Exemplo:

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: Projeto de Banco de Dados Relacional

MTODOS DE CLASSES
Uma operao a especificao de uma transformao ou
consulta que um objeto pode ser solicitado a executar.
Em geral, a invocao de uma operao de um objeto
resulta na alterao de seu estado.
O nome de uma operao costuma ser verbo ou frase curta
que representa um comportamento.
Nomes iniciados com maiscula,
Exemplo:
sem espao e sem caracteres
especiais.
Um mtodo pode ou no retornar
valor.
Ps-Graduao em Tecnologia e Projeto de Banco de Dados
Disciplina: Projeto de Banco de Dados Relacional

MODELANDO CLASSES
Classes so usadas para modelar abstraes oriundas do problema a
resolver ou da soluo a ser desenhada.
Essas abstraes so parte do vocabulrio do domnio.
Juntas, representam as coisas que so importantes para usurios e/ou
implementadores.
Uma classe bem estruturada:
Prov uma abstrao clara de alguma coisa trazida do domnio do
problema ou da soluo.
compreende um conjunto pequeno, bem definido de
responsabilidades e as realiza bem.
permite uma clara separao entre sua especificao e sua
implementao.
simples e inteligvel mas ao mesmo tempo extensvel e adaptvel.
Ps-Graduao em Tecnologia e Projeto de Banco de Dados
Disciplina: Projeto de Banco de Dados Relacional

TCNICA DE MODELAGEM COM FOCO


NAS RESPONSABILIDADES

Identifique as coisas (substantivos) que os usurios ou


implementadores usam para descrever o problema ou uma
soluo.
Essas coisas so classes ou candidatas a classes.
Para cada abstrao, identifique um conjunto de
responsabilidades com auxlio dos cartes CRC quando
necessrios.
As responsabilidades precisam estar bem definidas e
entendidas por todos.
Ps-Graduao em Tecnologia e Projeto de Banco de Dados
Disciplina: Projeto de Banco de Dados Relacional

TCNICA DE MODELAGEM COM FOCO


NAS RESPONSABILIDADES

Estabelea uma distribuio balanceada de


responsabilidades entre as classes.
Identifique as classes que colaboram com as classes
identificadas.
Proveja os atributos e operaes necessrios para
executar as responsabilidades das classes.

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: Projeto de Banco de Dados Relacional

CARTES CRC

No trabalho de modelagem, cartes CRC (Classes,


Responsabilidade, Colaboraes) podem ser usados em na etapa
inicial de identificao de classes ou de candidatos a classe.
Cartes CRC so cartes (fichas de papel), cada ficha
corresponde a uma classe. Cada ficha contm o nome da classe e
2 colunas com descrio de suas responsabilidades e
colaboraes.
Colaboraes apresentam outras classes que interagem com a
classe descrita para o cumprimento de suas responsabilidades.
Ps-Graduao em Tecnologia e Projeto de Banco de Dados
Disciplina: Projeto de Banco de Dados Relacional

CARTES CRC

Nome da Classe
Responsabilidade

Locao
Colaboraes

Inserir/excluir locao

Cliente

Inserir/alterar/excluir filme na
locao
Calcular total locao

ItemLocacao, Filme

EncerrarLocacao

ItemLocacao, Filme,
ContaCorrente
ItemLocacao, Filme,
ContaCorrente

EfetuarDevolucao

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: Projeto de Banco de Dados Relacional

ItemLocacao, Filme

CONCEITOS O.O. - VISIBILIDADE

uma enumerao cujos valores {public,


protected,private } indicam se o elemento de
modelagem ao qual se referem podem ser vistos
fora de seu espao de nome.
Espao de nome a parte do modelo na qual o
nome pode ser definido ou usado. Dentro de um
espao de
nome, o nome tem um significado nico.
Ps-Graduao em Tecnologia e Projeto de Banco de Dados
Disciplina: Projeto de Banco de Dados Relacional

CONCEITOS O.O. - VISIBILIDADE

A visibilidade de um elemento de modelo define se


ele poder ser referenciado por um elemento fora de
seu espao de nome.
Visto de outra maneira, a visibilidade parte da relao
entre um elemento e seu Continer.
O Continer de um elemento pode ser uma classe, um
pacote ou algum outro espao de nome.
Visibilidade pode ser aplicada a atributos e operaes
em relao a uma classe ou entre classes e o pacote onde
ela foi definida (seu Continer), por exemplo.
Ps-Graduao em Tecnologia e Projeto de Banco de Dados
Disciplina: Projeto de Banco de Dados Relacional

CONCEITOS O.O. - VISIBILIDADE

A UML define 3 nveis de visibilidade:


Pblico: um elemento que possa ver o continer de um
elemento indicado na visibilidade pode tambm v-lo.
Protegido: somente um elemento dentro de um continer
ou o descendente de um continer pode ver o elemento
indicado.
Privado: somente um elemento dentro do continer pode
Ps-Graduao em Tecnologia e Projeto de Banco de Dados
Disciplina: Projeto de Banco de Dados Relacional

CONCEITOS O.O. - VISIBILIDADE

A visibilidade usada para realizar o


encapsulamento de uma abstrao, ou seja, expor
somente as features que so necessrias para a
cumprimento das responsabilidades de um elemento
de modelagem.
Isso essencial para se construir sistemas slidos e
resilientes, facilitando o entendimento, a
modularizao, a manuteno, etc.
Ps-Graduao em Tecnologia e Projeto de Banco de Dados
Disciplina: Projeto de Banco de Dados Relacional

CLASSE ABSTRATA E CLASSE


CONCRETA
Uma classe abstrata aquela usada somente na construo de uma
hierarquia de relacionamentos de generalizao no pode ter
nenhuma instncia direta.
utilizada para definir operaes e atributos comuns a um conjunto
de classes filho.
O oposto, aquela que gera objetos como instncias, tipo chamado
classe concreta.
Uma classe folha aquela que no pode gerar um filho
Em UML, pode-se usar a propriedade {leaf} para especificar uma
classe folha.
Uma classe raiz aquela que no pode ter pais.
Em UML, pode-se usar a propriedade {root} para especificar
uma classe raiz.
Ps-Graduao em Tecnologia e Projeto de Banco de Dados
Disciplina: Projeto de Banco de Dados Relacional

CLASSE ABSTRATA E CLASSE


CONCRETA
Uma classe abstrata aquela usada somente na construo de uma
hierarquia de relacionamentos de generalizao no pode ter
nenhuma instncia direta.
utilizada para definir operaes e atributos comuns a um conjunto
de classes filho.
O oposto, aquela que gera objetos como instncias, tipo chamado
classe concreta.
Uma classe folha aquela que no pode gerar um filho
Em UML, pode-se usar a propriedade {leaf} para especificar uma
classe folha.
Uma classe raiz aquela que no pode ter pais.
Em UML, pode-se usar a propriedade {root} para especificar
uma classe raiz.
Ps-Graduao em Tecnologia e Projeto de Banco de Dados
Disciplina: Projeto de Banco de Dados Relacional

POLIMORFISMO OU FOLIFORMISMO

Operaes tm algumas propriedades similares a classes.


Uma operao abstrata aquela que no tem um mtodo
definido.
Uma implementao para a operao tem que ser suprida
em algum de seus descendentes concretos.
Um elemento abstrato denotado pelo nome em itlico.
O oposto de abstrato concreto.
Polimorfismo trata tambm da sobrecarga de
procedimentos.

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: Projeto de Banco de Dados Relacional

HERANA

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: Projeto de Banco de Dados Relacional

AGREGAO / COMPOSIO
So tipos especiais de associaes.
A diferena est na semntica. Em agregaes e composies o
objeto est contido no outro, ao contrrio de associaes normais.
Estabelece-se o conceito todo/parte.
A diferena entre Agregao e Composio conceitual:
- Na agregao, quando o todo destrudo, as partes
permanecem.
- Na composio, quando o todo destrudo, as partes tambm
so destrudas
Ps-Graduao em Tecnologia e Projeto de Banco de Dados
Disciplina: Projeto de Banco de Dados Relacional

AGREGAO E COMPOSIO

FONTE: PRINCPIOS DE ANLISE E PROJETOS DE SISTEMAS COM UML - BEZERRA

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: Projeto de Banco de Dados Relacional

MULTIPLICIDADE

Nome
Apenas um
Zero ou
Muitos
Um ou Muitos
Zero ou um
Intervalo
especfico

Simbologia
1
0..*
1..*
0..1
n..m

FONTE: PRINCPIOS DE ANLISE E PROJETOS DE SISTEMAS COM UML - BEZERRA

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: Projeto de Banco de Dados Relacional

MULTIPLICIDADE

FONTE: PRINCPIOS DE ANLISE E PROJETOS DE SISTEMAS COM UML - BEZERRA

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: Projeto de Banco de Dados Relacional

MULTIPLICIDADE X CARDINALIDADE

FONTE: PRINCPIOS DE ANLISE E PROJETOS DE SISTEMAS COM UML - BEZERRA

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: Projeto de Banco de Dados Relacional

NOME DA ASSOCIAO
DIREO DE LEITURA E PAPIS

FONTE: PRINCPIOS DE ANLISE E PROJETOS DE SISTEMAS COM UML - BEZERRA

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: Projeto de Banco de Dados Relacional

CLAREANDO ASSOCIAES

FONTE: PRINCPIOS DE ANLISE E PROJETOS DE SISTEMAS COM UML - BEZERRA

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: Projeto de Banco de Dados Relacional

EXERCCIOS
Descreva um sistema com ao menos trs requisitos, identifique as
possveis classes (atravs dos substantivos).
Identifique, dessas possveis, quais so classes realmente.
Para cada classe, crie um carto CRC identificando as
colaboraes e responsabilidades.
Construa o diagrama de classes.
A partir do diagrama de classes, mapeie as classes em tabelas de
um banco de dados relacional.
Monte uma apresentao de, no mnimo 20 minutos e no mximo
30 minutos.

Ps-Graduao em Tecnologia e Projeto de Banco de Dados


Disciplina: Projeto de Banco de Dados Relacional

Вам также может понравиться