Vous êtes sur la page 1sur 19

FVC FACULDADE VALE CRICARE

DIAGRAMA DE
CLASSE
Orientaes bsicas na elaborao de um diagrama de classe
Douglas Tybel
07/07/2011

Data Verso da
Reviso
Descrio da Reviso Autor
07/07/2011 1.00 Criada Douglas Tybel

2

Contedo
ORIENTAES BSICAS NA ELABORAO DE UM DIAGRAMA DE
CLASSE ............................................................................................................. 3
INTRODUO ................................................................................................... 4
Relacionamento entre classes ........................................................................... 5
So conexes entre classes: ...................................................................... 5
CENRIO ....................................................................................................... 5
IDENTIFICAR OS OBJETOS TANGVEIS ..................................................... 8
IDENTIFICAR OS OBJETOS POR SEUS ATRIBUTOS................................. 9
LISTA COMPLETA COM TODOS OS OBJETOS ENCONTRADOS ........... 10
Agrupar os Objetos por semelhana ......................................................... 10
Eliminar Classes desnecessrias ou repetidas ......................................... 11
MONTANDO O DIAGRAMA DE CLASSE .................................................... 12
Realizando as primeiras ligaes .............................................................. 12
Efetuando as ligaes entre as Classes ................................................... 13
DIAGRAMA DE CLASSE COMPLETO......................................................... 15
CENRIO PARA EXERCITARMOS ............................................................. 16
CONCLUSO ............................................................................................... 18
REFERNCIAS ............................................................................................ 19


3

ORIENTAES BSICAS NA ELABORAO DE UM
DIAGRAMA DE CLASSE

DOUGLAS DE OLIVEIRA TYBEL

Possui graduao em Administrao com habilitao em Anlise de Sistemas
pela Faculdade Vale do Cricar (2006). Ps-graduao em Engenharia de
Softwares (2008). Professor na Faculdade Vale do Cricar.

RESUMO:
Este artigo orienta o leitor na elaborao de um diagrama de classe,
procurando estabelecer, de forma sinttica, os principais pontos para a
abstrao dos objetos e classes de um cenrio especfico. Neste sentido,
descreve-se sequencialmente, os sucessivos componentes para a construo
de um diagrama de classe completo.

PALAVRAS-CHAVE: Diagrama. Objeto. Classe. Abstrao


4

INTRODUO
Em programao, um diagrama de classes uma representao da estrutura e
relaes das classes que servem de modelo para objetos. Podemos afirmar de
maneira mais simples que seria um conjunto de objetos com as mesmas
caractersticas, assim saberemos identificar objetos e agrup-los, de forma a
encontrar suas respectivas classes. Na Unified Modeling Language (UML)
em diagrama de classe, uma classe representada por um retngulo com trs
divises, so elas: O nome da classe, seus atributos e por fim os mtodos.
Vejam abaixo na Figura1 sua representao:

Figura 1 - Classe Clientes
Porque to importante encontramos as classes para o desenvolvimento de
um sistema? simples, pois cada classe do diagrama representa uma tabela
do banco de dados, por esse motivo to importante encontrarmos. Observe
tambm que para identificarmos uma classe, precisamos antes identificar seus
objetos com caractersticas semelhantes.
Ao analisarmos um cenrio, poderemos identificar inmeros objetos, contudo
nem todo objeto ser til para nosso diagrama de classe, essa classificao
dos objetos que usaremos chamado de Abstrao. Abstrao a forma de
concentrarmos apenas nos aspectos essenciais do nosso cenrio.
Para o desenvolvimento do nosso diagrama de classe, precisaremos de um
cenrio qualquer onde realizaremos um passo a passo at abstrairmos todas
as classes, a partir deste ponto, poderemos efetuar as ligaes e cardinalidade.

Figura 2: Demonstrao de visibilidade

A classe pode ter sua acessibilidade definida por visibilidade com os acessos:
public,private, protected, para tal, so usados os respectivos smbolos: +,- e #.
5

+ public
- private
# protected
RELACIONAMENTO ENTRE CLASSES

So conexes entre classes:

1. Dependncia
uma relao do tipo usa em que as mudanas na implementao
de uma classe podem causar efeitos em outra classe que a usa.
Exemplo: uma classe usa a outra.
2. Generalizao
o uma relao do tipo um entre uma coisa geral
(superclasse) e uma coisa mais especfica (subclasse).
3. Associao
o uma relao estrutural na quais classes ou objetos esto
interconectados.

Uma associao entre objetos chamada de uma ligao (link).
Nome da associao
Papeis da associao
Multiplicidade da associao
Agregao da associao
Composio da associao

CENRIO
Voc trabalha para uma empresa de desenvolvimento como Analista de
Sistemas. O responsvel pelo setor que voc trabalha, em uma reunio,
distribuiu tarefas para cada membro da equipe. Sua tarefa foi desenvolver um
6

diagrama de classe para que seja iniciado o desenvolvimento de um novo
software.
A empresa que nos contratou, deseja adquirir o certificado ISO 9001 em
qualidade, entretanto uma das normas repassadas foi que, deve ser obrigatrio
controlar os pedidos de suporte/servio que so feitos pelos clientes.
O ramo da empresa Servie Desk
1
o fluxo do processo segue abaixo:

O cliente entra em contato com a central atravs do telefone;
Um atendente tem um prazo curto para registrar esta solicitao,
informando os dados do cliente, o que foi solicitado, o nvel de
urgncia, o grupo de atendimento, o tcnico, um ou mais
equipamentos envolvidos na manuteno. Anotar toda a interao
realizada no equipamento, como por exemplo: Se ele conectar
remotamente ao equipamento, deve informar em um histrico e
suponhamos que 3 segundos depois ele reinicie o equipamento,
dever informar no histrico tambm. Resumindo: Toda interao
deve ser anotada no registro com data e hora.
Caso ele consiga resolver o que foi solicitado, o tcnico do
Service Desk ir salvar o registro com a situao de Resolvido
encerrando o caso, contudo dever em um local especfico do
registro definir como ele resolveu o caso, informando que se
tratava de um Incidente
2
, Problema
3
ou Solicitao
4
. O registro
deve ser categorizado, escolhendo dentre trs classificaes:
Categoria >> Sub Categoria >> Item da categoria, onde a
categoria uma lista de tipo de servio, como por exemplo: Se foi
Hardware ou Software. A Sub Categoria est relacionada com a
categoria, pois dependendo do que foi escolhido na primeira lista
ser mostrada na segunda que ser uma Sub Categoria, como
por exemplo: No caso da escolha de Hardware, seria informado
na subcategoria algum tipo de pea do equipamento que o

1
O Service Desk uma Central de Servios de atendimento integrado em Tecnologia da
Informao, baseado na ITIL, que presta assessoria, gesto e integrao de recursos e
ferramentas, para atendimento interno (staff) ou externo (clientes direto e indiretos).
2
Parada repentina ou reduo da qualidade do servio.
3
Vrios incidentes j ocorridos sem soluo.
4
Pedido de servio.
7

tcnico interagiu, tipo DVD/R, no caso de Categoria ser Software
a sub categoria deveria ser qual software, tipo: Word, Excel e
etc...E no item da categoria deveria ser escolhido o que foi
realizado pelo tcnico, no caso de Hardware >> DVD/R, poderia
ser SUBSTITUIDO, LIMPADO..etc. No caso de Software >> Word
>> INSTALADO,DESINSTALADO etc...
Caso o tcnico do Service Desk no consiga resolver no seu
prazo que ser o mais curto, dever enviar o registro para outro
grupo de atendimento onde existiro outros tcnicos que podero
ir at o equipamento fisicamente para resolver o problema com
um prazo mais extenso. Um grupo composto por vrios
tcnicos, no registro deve constar o grupo que atendeu e o
tcnico, pois cada registro conta como receita em reais para o
grupo sendo apurado ao efetuar fechamento mensal. O
pagamento para os grupos de atendimento feito por quantidade
de registros atendidos no prazo estipulado.
Se mesmo o grupo de atendimento fsico tenta entrar em contato
com o cliente, mas no o obtiver sucesso, o tcnico poder deixar
o registro agendado, para realizar esta tarefa deve ser informado
no registro data e hora que ser retornado o atendimento do
chamado e definir a situao do registro para Pendente pelo
cliente, definir tambm a data e hora para o prximo contato.
Esta situao de pendncia significa que o tcnico no est
atendendo por culpa do cliente e o tempo em que o registro fica
nesta situao ser debitado ao final do apuramento, a fim de
beneficiar o grupo que o atende, pois cada grupo tem um tempo
para atender os registros e se ultrapassar este prazo recebe
multa em cima do valor do chamado.
Ao final caso o pedido tenha sido designado para outro grupo, ou
esteja em andamento, pendente, cancelado ou resolvido, deve-se
informar em um campo especfico o que foi feito neste registro
resumidamente. Se a situao do registro estiver definida como
Resolvido, uma pesquisa de satisfao dever ser enviada
para o solicitante.
8

IDENTIFICAR OS OBJETOS TANGVEIS

Para identificarmos um objeto, precisamos antes entender como v-los, para
isso, basta ter como regra que: O objeto algo tangvel, que podemos
perceb-lo a nossa frente, sendo possvel encontr-lo no mundo real ou virtual.
Exemplos de objetos que podemos perceber ao ir a uma lanchonete: Mesa,
Cadeira, Atendente, Lanche, Bebida e etc.
Vamos tentar encontrar os objetos do nosso cenrio, observe o primeiro
item abaixo:
O cliente entra em contato com a central atravs do telefone;
Nesta frase acima, podemos identificar como objetos:
Cliente
Telefone
Cliente considerado um objeto, pois tangvel e existem vrios outros iguais
a ele com as mesmas caractersticas, assim como o telefone.

No segundo item do cenrio identificamos:
Atendente
Solicitao
Grupo
Tcnico
Equipamento
Histrico

O nico item acima que gera dvida se ou no um objeto, seria histrico, pois
no normal vermos este objeto, entretanto ele existe, veja o exemplo deste
objeto no mundo real: Na escola existe o histrico escolar ou na clnica existe
histrico mdico e etc.

No terceiro item do cenrio identificamos:
Categoria
Sub Categoria
Item da categoria
9

Observe que estes objetos acima so difceis de identificarmos no mundo real,
mas preste ateno no cenrio de uma locadora de DVD veja que as placas
com o gnero dos filmes so categorias, aquelas placas so objetos tangveis
representando categorias que j seria sua classe me.
Os itens quatro e cinco do cenrio esto apenas explicando o processo, no
identificamos nenhum objeto novo.
No sexto e ultimo item do cenrio identificamos os seguintes objetos:
Pedido
Pesquisa satisfao


IDENTIFICAR OS OBJETOS POR SEUS ATRIBUTOS

Aps identificarmos os objetos que estavam visveis no cenrio, agora teremos
que encontr-los atravs de seus atributos, onde os atributos so
caractersticas do objeto, suponhamos que no cenrio acima, foi falado sobre
algum objeto, contudo no foi pronunciado seu nome, dificultando assim sua
localizao. Para encontrarmos teremos que identificar atributos ou
caractersticas, como por exemplo: se no cenrio dado acima, tivssemos o
atributo CPF, poderamos identificar que esta caracterstica pertence ao cliente,
identificando assim o objeto Cliente sem que seu nome houvesse sido
pronunciado no cenrio.
Voc deve repassar todo cenrio novamente em busca destas caractersticas
sem objetos, abaixo segue alguns que identifiquei:
Data
Hora
Situao
Tipo de Servio
Prazo
Observe que os atributos Data, Hora, Situao, Tipo de Servio e Prazo so
referente ao pedido, sendo assim, para identificarmos novas classes a partir
desses atributos, teremos que realizar a seguinte pergunta para cada um deles:
10

Eu preciso uma lista de: Atributo ? , onde no lugar de Atributo voc substitui
por atributos acima. Veja os testes abaixo:
Eu preciso uma lista de Data? = No
Eu preciso uma lista de Hora? = No
Eu preciso uma lista de Situao? = Sim
Eu preciso de uma lista de Tipo de Servio? = Sim
Eu preciso uma lista de Prazos? = Sim
As perguntas com resposta Sim, sero novas classes, segue abaixo as novas
classes encontradas:
Situaes
Tipo de Servios
Prazos

LISTA COMPLETA COM TODOS OS OBJETOS ENCONTRADOS

Listaremos abaixo para facilitar nossa visualizao, todos os objetos
encontrados aps nossa abstrao:
Cliente
Telefone
Atendente
Solicitao
Grupo
Tcnico
Equipamento
Histrico
Categoria
Sub Categoria
Item da categoria
Pedido
Pesquisa satisfao
Situaes
Tipo de Servios
Prazos

Agrupar os Objetos por semelhana
Nosso prximo passo agrupar todos os objetos encontrados por
caractersticas semelhantes, como por exemplo: Mesa e Cadeira tm as
mesmas caractersticas, sendo classificadas como Mveis. Assim devemos
trabalhar os itens acima:
11


Cliente, Atendente e Tcnico = Pessoas
Solicitao, Histrico, Pedido e Pesquisa de Satisfao = Documentos
Telefone = Equipamentos

Veja que alguns dos objetos acima no foram classificados, devido a no
necessidade de tal processo, pois j est em sua classificao correta,
devemos apenas usar o plural, pois normalmente uma classe est no plural
devido sua origem em agrupar vrios objetos.

Eliminar Classes desnecessrias ou repetidas

Observe no item anterior que muitas classes so do mesmo gnero, fazendo
com que esteja repetida no diagrama e se uma classe se repete no banco de
dados ser uma tabela criada sem propsito nenhum.
Para eliminar, vejamos primeiro as classes que agrupamos por semelhana:
Observe que Pedido e Solicitao no cenrio fez referncia a uma mesma
coisa, assim podemos ento eliminar uma das duas, eu eliminei a solicitao.
Veja que o objeto Telefone um item de equipamentos, sendo assim podemos
tambm elimin-lo:
Abaixo a nova lista de classes:
Pessoas
Cliente
Atendente
Grupo
Tcnico
Equipamento
Histrico
Categoria
Sub Categoria
Item da categoria
Pedido
Pesquisa satisfao
Situaes
Tipo de Servios
Prazos


12

MONTANDO O DIAGRAMA DE CLASSE

Para iniciarmos os primeiros passos de nosso diagrama de classe, desenhe em
uma folha de papel um retngulo com trs divises para cada classe.
Veja abaixo na Figura2, como deve ficar:


Figura 3 - Diagrama de classe sem ligaes e cardinalidade

Realizando as primeiras ligaes

Para efetuarmos a primeira ligao, faremos com os objetos que agrupamos
por caractersticas semelhantes, como por exemplo: Clientes, Atendentes e
Tcnicos se relacionam com pessoas, segue abaixo as ligaes:
13


Figura 4 - Parte do diagrama de classe envolvendo pessoas


Figura 5 - Parte do diagrama de classe envolvendo documentos

Efetuando as ligaes entre as Classes

Este ponto trabalhoso, pois devemos testar classe por classe em busca de
ligaes, veja abaixo como realizar esta tarefa:
Sabemos que o cliente entra em contato com o atendente que gera um pedido.
Com esta informao observamos que um pedido foi gerado da interao entre
cliente e atendente, em que um cliente pode solicitar vrios pedidos para um
atendente e um atendente a vrios clientes. Sua cardinalidade ser N para N,
onde N quer dizer muitos, sendo: Muitos para Muitos, quando ocorre esse tipo
de cardinalidade nasce uma nova tabela ou classe, entre esses dois foi a
classe pedidos, que j havamos identificado antes. O importante sobre a N
para N que a classe que nasceu recebe os cdigos das classes que o fizeram
a relao, ficando a classe Pedido com o cdigo do cliente e o cdigo da
atendente.
14

Sabe-se tambm que esse pedido ser repassado para um tcnico que o
atender, sendo assim um tcnico pode atender a vrios pedidos e um pedido
pode ser atendido por um tcnico, sendo representado por 1-N, lembrando que
a classe que recebe o N herda o campo chave da outra classe como chave
estrangeira, sendo assim ficar a tabela de pedidos com mais um campo
chamado: cdigo do tcnico.
Faa o processo para todas as classes, use sempre a pergunta dessa forma:
Um Nome de um objeto da classe pode nome da ligao (verbo) um ou
vrios nome da classe
Como ficaria entre Pedidos e situao:
Um pedido pode passar por uma ou vrias situaes?
Resposta: Vrias (N), pois ao abrir o pedido pode estar na situao em
andamento, ou at mesmo, em outro ponto do tempo pode ficar pendente e
ser concluda ao final do servio.
Ao realizar a pergunta, a cardinalidade que descoberta sempre vai para a
classe de destino, depois precisamos fazer o reverso, a mesma pergunta com
o verbo ao contrrio do seu uso, por exemplo: Se usar conter o reverso seria
estar contido.
Uma situao pode ter passado por um ou vrios pedidos?
Resposta: Vrias (N), uma vez que uma situao pode ser usada por diversos
pedidos, veja que existem, por exemplo, diversos pedidos com a situao de
Concludo.
A cardinalidade presente ser de N para N ou muitos para muitos, indicando
que devemos criar uma classe de relacionamento entre as duas para absorver
as chaves primrias de ambas as classes.

Figura 6: Cardinalidade entre Pedidos e Situacoes

15

DIAGRAMA DE CLASSE COMPLETO

+setCadastrar()
+getConsultar()
Clientes
-codPessoa
-numCliente
Tcnicos
-codPessoa
-numTecnico
Grupos
-codGrupo
-codFuncinario
Pedidos
-codOrdem
-codDoc
-codCliente
-codFuncionario
-codGrupo
-codTipo
-codCategoria
-codsubCategoria
-codItem
Tipos de Servios
-codTipo
Pessoas
-codPessoa
-Pessoa
Categorias
-codCategoria
-categoria
Equipamentos
-codEquipamento
Itens_da_Categoria
-codItem
-item
Atendentes
-codPessoa
-numAtendente
1
*
1
*
1
*
1
*
1
*
1
*
1
*
Pedido_Equipamentos
-codPedido
-codEquipamento
1
* 1
*
1
*
Situaes
-codSituao
-situao
Pedido_Situaes
-codSituao
-codOrdem
-tempoNaSituao
1
*
1
*
Histrico_de_Atendimento
-codHistrico
-codDoc
1
*
1*
1
*
1
0..1
1
0..1
1
0..1
Sub_Categorias
-codCategoria
-codSubCategoria
-subCategoria
1
0..*
-codDoc
Documentos
1
0..1

Figura 7 - Diagrama de classe completo


16

CENRIO PARA EXERCITARMOS

Voc trabalha para uma empresa coorporativa, seu cargo Analista de
Sistemas. O responsvel pelo setor Ativos
5
lhe enviou um email solicitando o
desenvolvimento de um software para resolver um problema que o setor tem
constantemente enfrentado com as auditorias internas, esta medida de suma
importncia e o desenvolvimento deve ser realizado o mais breve possvel
antes que auditoria externa faa a prxima visita. Sua tarefa foi desenvolver um
diagrama de classe para que seja iniciado o desenvolvimento deste novo
software.
Abaixo segue o cenrio informado pelo responsvel do projeto:
A empresa que nos contratou, deseja adquirir o certificado ISO 9001 em
qualidade, entretanto um dos itens de verificao o registro de
movimentao dos ativos.

Segue abaixo o que foi explicado pelo responsvel:

O cliente entra em contato com a central atravs do telefone
solicitando vrios tipos de servio para a TIC
6
, alguns deles so:
remanejamento/instalao/alienao
7
de Ativos (computadores,
monitores, impressoras e etc.);
Quando um equipamento instalado ou movido, seu histrico de
movimentao deve ser registrado e em um software central,
tambm deve ser possvel saber exatamente sua localizao.
A localizao do equipamento dividida por cidade, imvel,
andar e sala, por exemplo: Suponhamos que a empresa tenha
filiais em cidades distintas sendo que em cada cidade existem

5
Em contabilidade, Ativo um termo bsico utilizado para expressar o conjunto de bens,
valores, crditos, direitos e assemelhados que forma o patrimnio de uma pessoa, singular ou
coletiva, num determinado momento, avaliado pelos respectivos custos
6
Tecnologias da Informao e Comunicao - sigla para designar a informtica e sua
potencializao com os recursos de comunicao
7
Perda de algum bem material, fsico, mental, emocional, cultural, social, poltico e/ou
econmico.
17

outros imveis desta mesma filial, sendo estes imveis divididos
por andares e cada andar pode ter vrias salas separadas.
No cadastro do Ativo deve ser informada esta localizao
detalhadamente, a ponto do auditor ao verific-lo saiba
exatamente a localizao do equipamento.
Quem envia as solicitaes de movimentao so os tcnicos da
TIC, tendo em vista que so eles que fazem esta instalao ou
movimentao do Ativo. Um usurio que no seja da TIC,
proibido de tomar esta ao. Ao enviar a solicitao ele deve
informar a etiqueta do ativo e a localizao de destino para o
setor de Ativos, assim atravs desta solicitao que ficar com
situao de pendente at que seja movida pelo funcionrio do
setor de Ativos possvel alterar o cadastro do Ativo para a nova
localizao.
O funcionrio do setor de Ativo deve de posse da movimentao
enviada para mover o ativo, acessar o cadastro do ativo e alterar
sua localizao de acordo com o solicitado e tambm alterar a
situao da solicitao do tcnico da TIC para a nova situao:
MOVIDA.
O histrico destas solicitaes deve ser classificado por etiqueta do ativo e pelo
tcnico da TIC que o fez, a fim de posteriores conferncias.

18

CONCLUSO

Neste artigo conferimos as orientaes bsicas na elaborao de um diagrama
de classe, onde o ponto chave foi usar o processo de abstrao como aliado na
busca dos objetos espalhando em um contexto do cenrio. Vimos ainda como
classificar as classes eliminar duplicidades, identificar classes por atributos e
etc.
A dica passada aqui como identificar os objetos em um cenrio a fim de
projetar um diagrama de classe reduzindo falhas. Interessante dizer que
crianas identificam objetos mais facilmente do que os adultos, pois o
conhecimento sobre o processo pode deixar qualquer um cego devido ao foco,
fazendo com que alguns objetos fiquem invisveis.
Lembre-se de aplicar os passos: Identificar Objetos, Classific-los e eliminar
duplicidade, feito isso, voc ter o mais complicado que so as classes, depois
com ajuda de um bom livro de anlise ou um professor, realizar as
cardinalidade no ser problema algum.


19

REFERNCIAS
Melo, Ana Cristina. Desenvolvendo Aplicaes com UML, 1 Edio,
Brasport, 2002.

Melo, Ana Cristina. Desenvolvimento aplicaes com UML 2.0: do
conceitual implementao / Ana Cristina Melo. 2. Ed. Rio de Janeiro :
Brasport, 2004.

ISO 9001.