Vous êtes sur la page 1sur 90

Diagrama de Classes

Objetivos
Prover respostas para as seguintes
perguntas:
Em um nvel alto de abstrao, que
objetos constituem o sistema em
questo?
Quais so as classes candidatas?
Como as classes do sistema esto
relacionadas entre si?
Quais so as responsabilidades de cada
classe?

Modelo de Classes de Anlise


(Anlise do Domnio)
Representa termos do domnio do
negcio.
Idias, coisas, e conceitos no mundo
real.
Descreve o problema representado
pelo sistema a ser desenvolvido, sem
considerar caractersticas da soluo
a ser utilizada.

Classes
Uma classe descreve seus objetos
atravs de atributos e operaes.
Atributos correspondem s
informaes que um objeto armazena.
Operaes correspondem s aes
que um objeto sabe realizar.
Detalhamento utilizado depende do
estgio de desenvolvimento e do nvel
de abstrao desejado.

Exemplo

Associaes
Para representar o fato de que objetos
podem se relacionar uns com os outros,
utilizamos associaes.
Uma associao representa relacionamentos
que so formados entre objetos durante a
execuo do sistema.
Embora as associaes sejam representadas
entre classes do diagrama, tais associaes
representam ligaes possveis entre os
objetos das classes envolvidas.

Notao para associaes


Na UML associaes so
representadas por uma linha que
liga as classes cujos objetos se
relacionam.

Participao
Uma caracterstica de uma associao
que indica a necessidade (ou no) da
existncia desta associao entre
objetos.
A participao pode ser obrigatria ou
opcional.
Se o valor mnimo da multiplicidade de uma
associao igual a 1 (um), significa que a
participao obrigatria
Caso contrrio, a participao opcional.

Acessrios para associaes


A UML define trs recursos de notao para
associaes:
Nome da associao: fornece algum significado
semntico a mesma.
Direo de leitura: indica como a associao deve
ser lida
Papel: para representar um papel especfico em
uma associao.

Classe associativa
Classe que est ligada a uma associao,
em vez de estar ligada a outras classes.
Usada quando duas ou mais classes esto
associadas, e necessrio manter
informaes sobre esta associao.
Sinnimo: classe de associao

Associaes n-rias
Define-se o grau de uma associao como a
quantidade de classes envolvidas na
mesma.
Na notao da UML, as linhas de uma
associao n-ria se interceptam em um
losango.
Na grande maioria dos casos prticos de
modelagem, as associaes normalmente so
binrias.
Quando o grau de uma associao igual a
trs, dizemos que a mesma ternria.

Exemplo de associao
ternria
Na notao da UML, as linhas de uma
associao n-ria se interceptam em
um losango nomeado.

Associaes reflexivas
Associao que representa ligaes entre objetos
que pertencem a uma mesma classe.
No indica que um objeto se associa a ele
prprio.
A definio de papis importante para evitar
ambigidades na leitura da associao.
Cada objeto tem um papel distinto na
associao.

Agregaes e Composies
So assimtricas, no sentido de que, se um objeto A
parte de um objeto B, o objeto B no pode ser parte do
objeto A
Propagam comportamento, no sentido de que um
comportamento que se aplica a um todo automaticamente
se aplica s suas partes.
As partes so normalmente criadas e destrudas pelo todo.
Se uma das perguntas a seguir for respondida com um
sim, provavelmente h uma agregao onde X todo e Y
parte.
X tem um ou mais Y?
Y parte de X?

Exemplo

Agregaes e composies diferenas


Destruio de objetos
Na agregao, a destruio de um objeto
todo no implica necessariamente na
destruio do objeto parte.

Pertinncia
Na composio, os objetos parte pertencem
a um nico todo.
Em uma agregao, pode ser que um
mesmo objeto participe como componente
de vrios outros objetos.

Agregao e Associao
Existe pouca diferena semntica
entre agregao e associao.
Na prtica, agregao usada
raramente.

Restries sobre
associaes

Generalizao e
Especializao
Relacionamentos entre classes.
Esses denotam relaes de generalidade
ou especificidade entre as classes
envolvidas.
O conceito mamfero mais genrico que o
conceito ser humano.
O conceito carro mais especfico que o
conceito veculo.

Esse o chamado relacionamento de


herana.

Terminologia
subclasse X superclasse .
classe base X classe herdeira .
classe de especializao X classe de
generalizao .
Notao definida pela UML

Herana de associaes
No somente atributos e operaes, mas
tambm associaes so herdadas pelas
subclasses.
No exemplo abaixo, cada subclasse est
associada a Pedido, por herana.

Propriedade da Herana
Transitividade: uma classe em uma
hierarquia herda propriedades e
relacionamentos de todos os seus ancestrais.
A herana pode ser aplicada em vrios nveis, dando
origem a hierarquia de generalizao.
Uma classe que herda propriedades de uma outra
classe pode ela prpria servir como superclasse.

Assimetria: dadas duas classes A e B, se A


for uma generalizao de B, ento B no
pode ser uma generalizao de A.
Ou seja, no pode haver ciclos em uma hierarquia de
generalizao.

Exemplo de herana

Classes Abstratas
Usualmente, a existncia de uma
classe se justifica pelo fato de haver
a possibilidade de gerar instncias
da mesma
Essas so as classes concretas.

No entanto, podem existir classes


que no geram instncias diretas.
Essas so as classes abstratas.

Classes Abstratas
Classes abstratas so utilizadas para
organizar e simplificar uma hierarquia de
generalizao.
Propriedades comuns podem ser
organizadas e definidas em uma classe
abstrata a partir da qual as primeiras
herdam.
Subclasses de uma classe abstrata tambm
podem ser abstratas, mas a hierarquia deve
terminar em uma ou mais classes concretas.

Notao para classes


abstratas
Na UML, uma classe abstrata
representada com o seu nome em itlico.
No exemplo a seguir, ContaBancria
uma classe abstrata.

Diagrama de Objetos
A UML define um segundo tipo de
diagrama estrutural, o diagrama de
objetos.
Pode ser visto com uma instncia de
diagramas de classes
Representa uma fotografia do sistema
em um certo momento.
exibe as ligaes formadas entre objetos
conforme estes interagem e os valores dos
seus atributos.

Exemplo Diagrama de
Objetos
i tem 1 : I tem P ed i d o
q u an ti d ad e = 6
P ed i d o 1 : P ed i d o
d a t aI t=PeP mr1eo3dPd/ i eu0dd9to/oi d2 o0 0 2
h o r a = 1 0 :0 0 a m

i tem 2 : I tem P ed i d o
q u an ti d ad e = 20

i tem 3 : I tem P ed i d o
q u an ti d ad e = 1

p ro d u to 20 : P ro d u to
n o m e = "C ad ern o M "
d es cri o = "C ad ern o em es p i ral tam an h o m d i o "
p r e o U n i t r i o = 4 ,5 0
d es co n to = 15
p ro d u to 12 : P ro d u to
n o m e = "C an eta E S F "
d e s c r i o = " C a n e t a e s f e r o g r fi c a 5 m m "
p r e o U n i t r i o = 1 ,2 0
d esco n to = 2
p ro d u to 07 : P ro d u to
n o m e = "E s q u ad ro "
d es cri o = "E s q u ad ro d e acr l i co 20 cm "
p r e o U n i t r i o = 2 ,3 5
d es co n to = 10

Tcnicas de Identificao de Objetos,


Atributos e Mtodos
Existem tcnicas (de uso no
exclusivo) usadas para identificar
classes:
Categorias de Conceitos
Anlise Textual de Abbott (Abbot Textual
Analysis)
Anlise de Casos de Uso

Categorias de Conceitos
Conceitos concretos: edifcios, carros, salas de aula.
Papis desempenhados por seres humanos:
professores, alunos, empregados, clientes.
Eventos, ou seja, ocorrncias em uma data e em uma
hora particulares: reunies, pedidos, aterrisagens,
aulas.
Lugares: reas reservadas para pessoas ou coisas:
escritrios, filiais, locais de pouso, salas de aula.
Organizaes: colees de pessoas ou de recursos:
departamentos, projetos, campanhas, turmas.
Conceitos abstratos: princpios ou idias no
tangveis: reservas, vendas, inscries, boleto.

Anlise Textual de Abbott


Identificar termos da narrativa de casos de
uso e documento de requisitos que podem
sugerir classes, atributos, operaes.
Fontes de informao: documento de
requisitos, modelos do negcio, glossrios,
conhecimento sobre o domnio.
Nomes (substantivos e adjetivos) que
aparecem no mesmo so destacados.
Aps isso, os sinnimos so removidos.

Anlise Textual de Abbott


(cont.)
Cada termo remanescente se
encaixa em uma das situaes a
seguir:
O termo se torna uma classe;
O termo se torna um atributo;
O termo no tem relevncia alguma
com o SW.

Anlise Textual de Abbott


(cont.)
Tcnica de identificao de operaes e de
associaes: destacar verbos no texto.
Verbos de ao (calcular, confirmar, cancelar,
comprar, fechar, estimar, depositar, sacar)
so operaes em potencial.
Verbos com sentido de ter so potenciais
agregaes ou composies.
Verbos com sentido de ser so
generalizaes em potencial.
Demais verbos so associaes em potencial.

Anlise Textual de Abbott


(cont.)
O resultado (as classes candidatas) depende de
os documentos utilizados como fonte serem
completos.
A tcnica pode levar identificao de diversas
classes candidatas que no geraro classes.
A anlise do texto de um documento pode no
identificar uma classe importante.
Em linguagem natural, as variaes lingsticas
e as formas de expressar uma mesma idia so
bastante numerosas.

Anlise de Casos de Uso


Caso particular da ATA.
Tcnica preconizada pelo RUP.
Casos de uso como ponto de partida.
A realizao de um caso de uso
responsabilidade de um conjunto de objetos que
devem colaborar para produzir o resultado
daquele caso de uso.
Aplica-se a tcnica para identificar as classes
necessrias produo do comportamento que
est documentado na descrio do caso de uso.

Anlise de Casos de Uso


Procedimento de aplicao:
Estudar a descrio textual de cada caso de uso
para identificar classes candidatas.
Para cada caso de uso, o texto (fluxos principal,
alternativos e de exceo, ps-condies e prcondies) analisado.
Identificar classes que possam fornecer o
comportamento do mesmo.
Na medida em que os casos de uso so
analisados, as classes so identificadas.

Pode-se categorizar as classes.

Categorizao de Classes
Objetos de entidade : usualmente objetos
do domnio do problema
Objetos de fronteira : atores interagem
com esses objetos
Objetos de controle : servem como
intermedirios entre objetos de fronteira e
de entidade, definindo o comportamento
de um caso de uso especfico.

Categorizao de Classes
Categorizao proposta por
Jacobson.
Possui correspondncia (mas no
equivalncia!) com o padro de
arquitetura model-view-controller (MVC)

Esteretipos na UML: boundary,


entity, control

Objetos de Entidade
Repositrio para informaes e as regras de
negcio manipuladas pelo sistema.
Representam conceitos do domnio do negcio.
Caractersticas
Normalmente armazenam informaes persistentes.
Vrias instncias da mesma entidade existindo no sistema.
Participam de vrios casos de uso.

Exemplo:
Um objeto Pedido participa dos casos de uso Realizar
Pedido e Atualizar Estoque.
Este objeto pode existir por diversos anos ou mesmo tanto
quanto o prprio sistema.

Objetos de Fronteira
Comunicao do sistema com os atores.
traduzem os eventos gerados por um ator em
eventos relevantes ao sistema
tambm so responsveis por apresentar os
resultados de uma interao dos objetos.

Existem para que o sistema se comunique com


o mundo exterior.
H dois tipos principais de objetos de fronteira:
Os que se comunicam com o usurio (atores
humanos): relatrios, interface grfica.
Os que se comunicam com atores no-humanos

Objetos de Controle
So a ponte de comunicao entre objetos de
fronteira e objetos de entidade.
Responsveis por controlar a lgica de execuo
correspondente a casos de uso.
Decidem o que o sistema deve fazer quando um
evento de sistema ocorre.
Agem como controladores dos outros objetos para a
realizao de um caso de uso.

Traduzem eventos de sistema em operaes


que devem ser realizadas pelos demais
objetos.

Importncia da
Categorizao
A categorizao BCE parte do
princpio de que cada objeto
especialista em realizar um de trs
tipos de tarefa:
comunicar com atores (fronteira),
manter as informaes (entidade),
coordenar a realizao de um caso de
uso (controle).

Importncia da
Categorizao
A importncia dessa categorizao
est relacionada capacidade de
adaptao a eventuais mudanas.
Se cada objeto tem atribuies
especficas dentro do sistema, mudanas
podem ser menos complexas e mais
localizadas.
Uma modificao em uma parte do
sistema tem menos possibilidades de
resultar em mudanas em outras partes.

Modelo de Anlise no Processo


Iterativo e Incremental
Em um desenvolvimento dirigido a
casos de uso, aps a descrio dos
casos de uso, possvel iniciar a
identificao de classes.
As classes identificadas so refinadas
para retirar inconsistncias e
redundncias.
As classes so documentadas e o
diagrama de classes inicial
construdo.

Modelo de Anlise no Processo


Iterativo e Incremental (cont.)
As construes do modelo de casos de uso
e do modelo de classes so retroativas
uma sobre a outra.
Novos casos de uso podem ser identificados
Pode-se identificar a necessidade de
modificao de casos de uso preexistentes.

Depois que a primeira verso do modelo de


classes de anlise est completa, retornar
ao modelo de casos de uso e verificar a
consistncia entre os dois modelos.

Modelo de Anlise no Processo


Iterativo e Incremental (cont.)

Classes de Projeto
O modelo de classes de projeto
resultante de refinamentos no modelo de
classes de anlise.
Esse modelo construdo em paralelo com o
modelo de interaes.
A construo do modelo de interaes gera
informaes para a transformao do modelo
de classes de anlise no modelo de classes de
projeto.

O modelo de classes de projeto contm detalhes


teis para a implementao das classes.

Aspectos a considerar na fase de projeto

Adio de novas classes ao modelo


Especificao de atributos,
operaes e de associaes
Descrever refinamentos e conceitos
relacionados herana, classes
abstratas, Interfaces, polimorfismo.

Especificao de classes de
fronteira
No atribuir a essas classes
responsabilidades relativas lgica do
negcio.
Classes de fronteira devem apenas servir
como:
Ponto de captao ou
Ponto de apresentao de informaes.

A nica inteligncia que essas classes


devem ter a que permite a elas realizarem
a comunicao com o ambiente do sistema.

Especificao de classes de
fronteira (cont.)
H diversas razes para isso:
Se o sistema tiver que ser implantado
em outro ambiente, as modificaes
resultantes sobre seu funcionamento
seriam mnimas.
O sistema pode dar suporte a diversas
formas de interao com seu ambiente.
Essa separao resulta em melhor
coeso.

Especificao de classes de
fronteira (cont.)
Durante a anlise, considera-se que
h uma nica classe de fronteira
para cada ator.
No projeto, algumas dessas classes
podem resultar em vrias outras.

Especificao de classes de
fronteira (cont.)
Clientes WEB clssicos
Classes de fronteira so pginas HTML.

Clientes stand-alone
Recomendvel que os desenvolvedores
pesquisem os recursos fornecidos pelo
ambiente de programao sendo
utilizado. Ex. Swing/JFC

Especificao de classes de
fronteira (cont.)
A maioria das classes de entidade
normalmente permanece na passagem
da anlise ao projeto.
Classes de entidade so normalmente
as primeiras classes a serem
identificadas, na anlise de domnio.
Deve-se identificar quais delas geram
objetos que devem ser persistentes.

Especificao de classes de
fronteira (cont.)
Como identificar cada um de seus objetos
unicamente.
Ex. um objeto da classe Aluno unicamente
identificado pelo valor de sua matrcula.

Um identificador de implementao, que


no tem correspondente com atributo
algum do domnio, pode ser criado.
Possibilidade de manipular identificadores de
maneira uniforme e eficiente.
Maior facilidade quando objetos devem ser
mapeados para um SGBDR

Especificao de classes de
entidade
A maioria das classes de entidade
normalmente permanece na passagem
da anlise ao projeto.
Classes de entidade so normalmente
as primeiras classes a serem
identificadas, na anlise de domnio.
Deve-se identificar quais delas geram
objetos que devem ser persistentes.

Especificao de classes de
entidade
Como identificar cada um de seus
objetos unicamente.
Ex. um objeto da classe Aluno
unicamente identificado pelo valor de sua
matrcula.

Um identificador de
implementao, que no tem
correspondente com atributo
algum do domnio, pode ser criado.

Especificao de classes de controle


Normalmente associado a um caso
de uso
O controle pode ser particionado em
duas ou mais outras classes para
controlar diversos aspectos da
soluo.
Evitar a criao de uma nica classe
com baixa coeso e alto
acoplamento.

Especificao de classes de controle


Exemplos dos aspectos de uma
aplicao cuja coordenao de
responsabilidade das classes de
controle:
produo de valores para
preenchimento de controles da interface
grfica,
autenticao de usurios,
controle de acesso a funcionalidades do
sistema

Especificao de classes de controle


Responsabilidades de controlador de
caso de uso:
Coordenar a realizao de casos de uso.
Servir como canal de comunicao entre
objetos de fronteira e objetos de entidade.
Comunicar com outros controladores.
Mapear aes do usurio para mensagens a
serem enviadas a objetos de entidade.
Manipular excees provenientes das
classes de entidades.

Especificao de outras
classes
Alm do refinamento de classes preexistentes,
diversos outros aspectos demandam a
identificao de novas classes durante o projeto.
Persistncia de objetos
Distribuio e comunicao (RMI, CORBA, DCOM)
Autenticao/Autorizao
Logging
Classes para testes (Test Driven Development)
Uso de bibliotecas, componentes e frameworks

Concluso: a tarefa de identificao de classes


no termina na anlise.

Refinamento de atributos e mtodos


Os atributos e mtodos de uma classe a
habilitam a cumprir com suas
responsabilidades.
Atributos: permitem que uma classe
armazene informaes necessrias
realizao de suas tarefas.
Mtodos: so funes que manipulam os
valores do atributos, com o objetivo de
atender s mensagens que o objeto
recebe.

Sintaxe para atributos e


mtodos

C l i en te
+ o b te r N o m e ( ) : S tr i n g
+ d e fi n i r N o m e ( i n u m N o m e : S t r i n g )
+ o b te r D a ta N a sc i m e n to ( ) : D a ta
+ d e fi n i r D a t a N a s c i m e n t o ( i n u m a D a t a : D a t a )
+ o b te r T e l e f o n e ( ) : S tr i n g
+ d e fi n i r T e l e f o n e ( i n u m T e l e f o n e : S t r i n g )
+ o b te r L i m i te C r d i to ( ) : M o e d a
+ d e fi n i r L i m i t e C r d i t o ( i n u m L i m i t e C r d i t o : fl o a t )
+ o b te r I d a d e ( ) : i n t
+ o b te r Q u a n ti d a d e C l i e n te s( ) : i n t
+ o b t e r I d a d e M d i a ( ) : fl o a t

Sublinhado: mtodo/atributo
esttico
/ : atributo derivado

Visibilidade
Qualificadores de visibilidade aplicveis a
atributos tambm podem ser aplicados a
operaes.
+ visibilidade pblica
# visibilidade protegida
- visibilidade privativa

O real significado depende da linguagem


de programao em questo.
O conjunto das operaes pblicas de uma
classe chamado de interface

Projeto de mtodos
Mtodos de criao e destruio de
objetos
Mtodos de acesso (getX/setX)
Outros mtodos:
Valores derivados, formatao,
converso,....

Alguns mtodos devem ter uma


operao inversa bvia
habilitar e desabilitar; tornarVisvel e
tornarInvisvel; adicionar e remover;

Detalhamento de mtodos
Diagramas de interao fornecem um
indicativo sobre como mtodos devem ser
implementados.
Como complemento, notas explicativas
tambm so teis no esclarecimento de
como um mtodo deve ser implementado.
O diagrama de atividades tambm pode
ser usado para detalhar a lgica de
funcionamento de mtodos mais
complexos.

Implementao de
associaes
H trs casos, em funo da
conectividade: 1:1, 1:N e N:M
Para uma associao 1:1 entre duas
classes A e B :
Se a navegabilidade unidirecional no
sentido de A para B, definido um atributo
do tipo B na classe A.
Se a navegabilidade bidirecional, pode-se
aplicar o procedimento para as duas
classes.

Conectividade 1:1

Conectividades 1:N e N:M


Para uma associao 1:N ou N:M entre duas
classes A e B:
So utilizados atributos cujos tipos
representam colees de elementos.
tambm comum o uso de classes
parametrizadas.
Idia bsica: definir uma classe parametrizada cujo
parmetro a classe correspondente ao lado muitos
da associao.

Classe parametrizada
Uma coleo pode ser representada
em um diagrama de classes atravs
uma classe parametrizada.
Def.: uma classe utilizada para
definir outras classes.
Possui operaes ou atributos cuja
definio feita em funo de um ou
mais parmetros.

Conectividade 1:N
Formas alternativas para
representao de uma associao
cuja conectividade 1:N.

Conectividade 1:N (Cont)

Conectividade N:M

Classes Associativas

Tipos de Herana
Com relao quantidade de
superclasses que certa classe pode
ter.
herana mltipla
herana simples

Operaes polimrficas
Uma subclasse herda todas as propriedades de
sua superclasse que tenham visibilidade
pblica ou protegida.
Pode ser que o comportamento de alguma
operao herdada seja diferente para a
subclasse.
Nesse caso, a subclasse deve redefinir o
comportamento da operao.
A assinatura da operao reutilizada.
Mas, a implementao da operao (ou seja, seu
mtodo) diferente.

Operaes polimrficas
(Cont)
Operaes polimrficas so aquelas
que possuem mais de uma
implementao.
A assinatura repetida na(s)
subclasse(s) para enfatizar a
redefinio de implementao.
O objetivo de manter a assinatura
garantir que as subclasses tenham
uma interface em comum.

Operaes polimrficas
(Cont)
Se duas ou mais subclasses implementam
uma operao polimrfica, a mensagem
para ativar essa operao a mesma para
todas essas classes.
No envio da mensagem, o remetente no
precisa saber qual a verdadeira classe de
cada objeto, pois eles aceitam a mesma
mensagem.
A diferena que os mtodos da operao
so diferentes em cada subclasse.

Operaes polimrficas exemplo

Operaes polimrficas
Operaes polimrficas tambm podem
existir em classes abstratas.

Operaes polimrficas
(cont)
Operaes polimrficas implementam o
princpio do polimorfismo:
dois ou mais objetos respondem a
mesma mensagem de formas
diferentes.

Exerccios
Para cada especificao a seguir,
projete dois diagramas de classes:
De anlise
De projeto

Convenes nesta disciplina


Classes de Anlise
Mtodos "simples"
Atributos sem tipo
Associaes nomeadas
Cardinalidades definidas
Classes de entidade

Projeto
Mtodos complexos (relativos a duas ou mais classes)
Mtodos com atributos e valores de retorno
Atributos com tipo (inclusive criados) e visibilidade
Classes de fronteira e de controle (com mtodos)
Projetado durante/aps os modelos dinmicos

Um filme tem obrigatoriamente ao menos


uma cpia, mas pode possuir diversas delas.
Uma cpia refere-se exclusivamente a um
determinado filme.
Um scio pode realizar muitas locaes
enquanto permanecer scio da locadora, mas
uma locao refere-se unicamente a um
determinado scio
Cada locao deve obrigatoriamente
referenciar-se ao menos a uma cpia de um
filme, podendo referenciar-se a muitas
cpias.
Uma cpia pode ter sido locada diversas
vezes, em pocas diferentes obviamente

Modelar a situao usando um


diagrama de classes: Uma pessoa
ao longo da vida, tem vrios
empregos, em empresas diferentes.
Para a Previdncia, importante
saber a data de admisso e a data
de resciso de contrato com cada
uma dessas Empresas

Um cliente pode possuir muitos animais, mas um animal


pertence a um nico cliente. A clnica precisa de informaes a
respeito de cada cliente, como nome, endereo, e telefone.
Um animal pertence a uma nica espcie, porm podem haver
diversos animais cadastrados de uma determinada espcie.
preciso manter informaes a respeito de cada animal j
tratado, como nome, sexo, idade e espcie
Um animal pode realizar diversos tratamentos, mas um
tratamento realizado exlusivamente por um animal.
Cada tratamento possui ao menos uma consulta, mas pode
possuir muitas consultas. Uma determinada consulta refere-se
exclusivamente a um determinado tratamento. Cada consulta
deve armazenar informaes como a data em que foi realizada, o
veterinrio que atendeu o animal e o resumo da consulta.
Um veterinrio pode realizar muitas consultas, porm uma
consulta deve ser realizada por somente um veterinrio
Em uma consulta podem ser marcados exames para o animal. O
nmero de exames possveis em uma consulta indeterminado,
mas precisa ser registrado.

Uma universidade possui dois tipos de funcionrios: professores e


tcnico-administrativos. Quando so contratados, necessrio
cadastrar seu nome, telefone, endereo, CPF (que deve ser vlido), e a
data de contratao (que tambm precisa ser validada).
Para o professor deve ser cadastrado tambm a titulao, rea de
pesquisa, e o tipo de contrato (20 horas, 40 horas ou Dedicao
exclusiva).
Um funcionrio possui obrigatoriamente um nico cargo. O cargo possui
um ttulo e um salrio. O salrio do cargo pode ser aumentado apenas
uma vez por ano.
Um professor pode no ministrar disciplinas em um semestre, ou
ministrar at no mximo 3 disciplinas.
A disciplina pertence a um curso, ou a vrios cursos. Por exemplo,
Clculo 1 uma disciplina ministrada em vrios cursos diferentes da
rea de exatas.
Um curso possui muitas disciplinas. Para o cadastro da disciplina, devese informar o nome da disciplina, a carga horria, e o tipo da disciplina.
Um curso pode ser de graduao ou de ps-graduao. O curso possui
um nome e uma rea (ex. Exatas). Cursos de ps-graduao podem ser
de 2 tipos lato ou stricto sensu.
Cursos stricto senso devem ter a nota da CAPES e a grande rea a qual
pertencem.

Projetar um diagrama de classes para um sistema


simples de reserva e ocupao de quartos para um
hotel. O sistema deve armazenar reservas feitas por
um funcionrio de um ou mais quartos para um
determinado cliente. O funcionrio deve ser capaz
de: verificar se um quarto est ocupado ou no,
inserir ou alterar os dados de um cliente, realizar a
reserva de um quarto para um cliente. Considere os
atributos de todas as classes como privados. Cada
cliente e funcionrio deve possuir: nome, rg, CPF,
endereo, telefone. Deve ser possvel identificar a
quantidade de ocupaes j realizadas pelos
clientes. Um quarto pode ser simples ou luxo e deve
indicar o nmero de camas e o tipo de cada uma
delas (solteiro ou casal). Cada quarto deve ter
apenas um frigobar, que tem um contedo de
bebidas.

Vous aimerez peut-être aussi