Você está na página 1de 6

UNEB

Professor: Giuliano

Disciplina Tcnicas de Modelagem

TCNICA

MODELAGEM CONCEITUAL

GENERALIZAO/ESPECIALIZAO,
AGREGAO E COMPOSIO
Generalizao/Especializao
Herana o termo em orientao a objetos que se refere criao de novas classes a partir
de existentes onde os atributos e operaes comuns so agrupados para fins de reutilizao
de cdigo. Observe as duas classes abaixo:

Figura 1 classes independentes Gerente e Secretaria

Perceba que h muitos atributos comuns entre elas e isso demanda muito trabalho para
definir e alter-los. Alm disso, o que estas duas classes tm em comum ? Elas fazem parte
de um sistema de controle de pessoal e representam os funcionrios de uma empresa. Com
base nesses fatos, aplicaremos a tcnica da generalizao para eliminar as duplicidades e
deixar o modelo mais elegante.
1- Criao da superclasse
Para implementar a generalizao, criamos uma terceira classe generalista para agrupar
os membros comuns de Gerente e Secretaria (matricula, nome, salario e depto). Essa
classe deve receber um nome que tambm seja uma generalizao de gerente e
secretria e, por isso, escolhemos Funcionario.

Figura 2 superclasse Funcionario

2- Retirar elementos comuns das subclasses


A classe pai, tambm chamada de superclasse, ou ancestral, quem possui os atributos
comuns. A classe filha, ou subclasse, a classe que herda os membros da superclasse
e ainda possui os seus especficos (por isso, a subclasse tende a ser maior que a

UNEB
Professor: Giuliano

Disciplina Tcnicas de Modelagem

superclasse). Assim, o passo seguinte retirar os atributos comuns das duas


subclasses, deixando apenas os especficos:

Figura 3 subclasses com atributos comuns removidos

3- Fazer o relacionamento de generalizao entre subclasses e superclasse


Criamos um relacionamento de generalizao (cuja notao uma reta com um
tringulo na ponta) entre Gerente e Funcionrio e outro entre Secretria e Funcionrio. A
ponta da seta sempre deve apontar para a superclasse.

Figura 4 notao dos relacionamentos

Outra forma de representao pode ser vista na figura abaixo. Para fazer isso na
ferramenta JUDE, selecione um relacionamento, clique na ponta da seta, arraste e solte
sobre a ponta da outra seta.

Figura 5 outra forma de notao de duas generalizaes

UNEB
Professor: Giuliano

Disciplina Tcnicas de Modelagem

4- Validar os relacionamentos
Ao contrrio do relacionamento de associao, a generalizao no precisa de um
nome, pois implicitamente o relacionamento deve ser lido como um. Isso inclusive
serve para conferir se o j o relacionamento est vlido ou se o nome da classe
generalista foi escolhido corretamente. Assim, as seguintes perguntas devem ter uma
resposta afirmativa para que nosso relacionamento seja vlido:

Gerente um funcionrio ?
Secretria um funcionrio ?

- Resposta: SIm
- Resposta: Sim

5- Definir superclasse como abstrata (se for o caso)


Muitas vezes definimos uma classe que no representa verdadeiramente algo do mundo
real que precise ser instanciado (usado em programas). o caso da classe Funcionrio
criada neste exemplo. Na prtica, objetos do tipo Funcionario nunca sero usados, pois
instanciaremos apenas objetos a partir de Gerente e Secretaria. Funcionrio apenas
uma classe que surgiu da necessidade de uma generalizao. Classes assim so
chamadas de abstratas. Na UML, para indicar que uma classe abstrata, seu nome
deve ficar em itlico. Para fazer isso no JUDE, selecione a classe e mude seu atributo
Abstract para true.

Figura 6 - classe abstrata

Agregao
um tipo especial de associao onde tenta-se demonstrar que as informaes de um
objeto precisam ser complementadas pelas informaes contidas em um ou mais objetos de
outra classe, demonstrando um relacionamento todo-parte entre elas. interessante
ressaltar que para ser agregao, as classes podem viver independentemente. Vejamos um
exemplo onde temos as classes Time e Jogador. Um time pode ser composto de nenhum ou
vrios jogadores. Um jogador pode estar contido no mximo em um time.

Figura 7 - classes Time e Jogador

Poderamos apenas fazer uma associao entre Time e Jogador e extrair as cardinalidades,
mas queremos dar um enfoque que as informaes do time so completadas pelos seus
jogadores, ou seja, que os jogadores fazem parte do time. Entretanto, se eu excluir o time,
os jogadores continuam existindo. Assim, utilizamos a notao da agregao que uma reta
com um losango na ponta ligada classe do lado todo (que contm):

Figura 8 - agregao entre Time e Jogador

UNEB
Professor: Giuliano

Disciplina Tcnicas de Modelagem

Composio
A composio uma variao da agregao onde se tenta representar um vnculo mais
forte entre os objetos todo-parte ao ponto de um no existir sem o outro. Vejamos o exemplo
entre as classes Revista e Edio. Uma revista deve ser composta de no mnimo um artigo,
mas pode conter vrios. Um artigo obrigatoriamente deve pertencer a uma e somente uma
revista.

Figura 9 - classes Revista e Artigo

Poderamos fazer apenas uma associao entre Revista e Artigo, mas queremos
demonstrar que revista e artigos formam um nico conjunto e que um no existe sem o
outro. O smbolo da composio diferencia-se graficamente da agregao por utilizar um
losango preenchido que, da mesma forma, deve ficar do lado do objeto -todo:

Figura 10 composio entre Revista e Artigo

Uma revista pode ter vrios artigos, mas se a revista for excluda, teremos que excluir
tambm os artigos. No faz sentido ter um objeto artigo que ele esteja vinculado a uma
revista. Sua nica razo de existir "compr" a revista.

Agregao x Composio x Associao


Imagine um cenrio onde temos duas classes "A" e "B" e estamos na dvida de qual
relacionamento colocar entre elas. Inicie fazendo a seguinte pergunta:
1 - Se A for excludo, terei que excluir tambm o B ?

Sim = utilize relacionamento de composio

No = pode ser agregao ou simplesmente uma associao. V para a pergunta 2


2 B tem alguma utilidade sozinha?

Sim = utilize uma associao comum

No = utilize relacionamento de agregao


Referncias
GUEDES, Gilleanes. UML, uma abordagem prtica. Ed. Novatec: So Paulo, 2004.
NOGUEIRA, Admilson. UML - Unified Modeling Language - Generalizao, agregao,
composio e dependncia. Disponvel na internet em
http://www.linhadecodigo.com.br/Artigo.aspx?id=943. Acesso em 21/03/2009

UNEB
Professor: Giuliano

Disciplina Tcnicas de Modelagem

Exerccios Propostos
1. Usando seus conhecimentos de generalizao/especializao, analise as duas classes
abaixo e proponha um novo modelo que elimine as duplicaes

2. Usando seus conhecimentos de generalizao/especializao, analise as trs classes


abaixo e proponha um novo modelo que elimine as duplicaes

3. Usando seus conhecimentos de generalizao/especializao, analise as duas classes


abaixo e proponha um novo modelo que elimine as duplicaes

4. Em um sistema foram identificadas duas classes: Pessoa e Corao. Uma pessoa deve
ter um e somente um corao e um corao s pode pertencer a uma pessoa. Com
base no enunciado acima, faa a representao das duas classes (atributos e mtodos
no so necessrios) e seu relacionamento (com nome e cardinalidades).
5. Em um sistema para uma concessionria foram identificadas as classes Carro e
Autopea. Um carro pode possuir uma ou vrias autopeas. Uma autopea serve para
apenas um carro. Com base no enunciado acima, faa a representao das duas
classes (atributos e mtodos no so necessrios) e seu relacionamento (com nome e
cardinalidades).
6. Em um sistema de vendas foram identificadas as classes Pedido e ItemPedido. Um
pedido deve conter no mnimo um item ou vrios. Um item deve obrigatoriamente
pertencer a um nico pedido. Com base no enunciado acima, faa a representao das

UNEB
Professor: Giuliano

Disciplina Tcnicas de Modelagem

duas classes (atributos e mtodos no so necessrios) e seu relacionamento (com


nome e cardinalidades).
7. Em um sistema para uma editora foram identificadas as classes Livro, Captulo e Pgina.
Um livro composto nenhum ou vrios captulos. Um captulo deve obrigatoriamente
pertencer a um nico livro. Um captulo contm uma (no mnimo) ou mais pginas. Uma
pgina no necessariamente precisa pertencer a um captulo, mas se pertencer, pode
ser a mais de um. Com base no enunciado acima, faa a representao das duas
classes (atributos e mtodos no so necessrios) e seu relacionamento (com nome e
cardinalidades).
8. Faa a representao do relacionamento entre as classes Pas, Estado e Cidade. Um
pais composto de vrios estados (pelo menos um estado requerido). Estados podem
ter nenhuma ou vrias cidades. Uma cidade obrigada a pertencer a um, e somente um
estado. Um estado obrigatoriamente tem que pertencer a um pas

Você também pode gostar