Anda di halaman 1dari 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

Anda mungkin juga menyukai