Sie sind auf Seite 1von 40

Análise e Projeto de Sistemas

Prof. Dra. Eliana B. Pereira

17/09/14 1
Classes e Objetos

17/09/14 2
Objeto
• Qualquer elemento identifado no domínio do
negófio que tenha:

identdade - qualquer objeto é únifo e diferenfiado dos
demais

estado - valores dos atributos em determinado momento

fomportamento – funfionalidade do objeto
• Um objeto é um termo que usamos para representar
uma entdade do mundo real.
• Exemplos:

Gol Maria Quadrado


Classe
• É uma desfrição de um fonjunto de objetos
que fompartlham os mesmos atributos,
operações, relafionamentos e semântfa
• É representado por um retângulo.
• Exemplos:

Carro Pessoa Forma Geométrifa


Diagrama de Classes
• É friado para representar o fonjunto das flasses e
suas assofiações

Identifa os objetos manipulados pelo sistema

• É o diagrama fentral da modelagem de sistemas


orientados a objetos

mais utlizado pela UML

• Diagrama Estátco da UML


Diagrama de Classes
• Deve ser desenvolvido nas versões nefessárias a
fompreensão de fada uma das fases do fiflo de vida
do softare (análise, projeto, implementação)

• É formal e pode servir para geração de fódigo em


uma linguagem de programação
Diagrama de Classes
• Elementos do Diagrama de Classes:


Classes

Atributos

Métodos

Relafionamentos

Assofiação Simples

Agregação Simples/Composição

Generalização (Herança)

Dependênfia
Classes
• Elementos do Diagrama de Classes:

Em UML, as flasses são representadas por retângulos
influindo nome, atributos e métodos.

• Devem refeber nomes de afordo fom o vofabulário


do domínio do problema.

É padrão utlizar nomes de substantvos fom primeira
letra em maiúsfula para nomear flasses.
Atributo

• Deinem os dados da flasse


• Possuem tpo
• Possuem visibilidade, muito frequentemente
privados
• O tpo de dado depende da linguagem de
programação que será usada para implementação.
• Podem ser referênfias (do tpo de) a outras flasses
(delegação)

• Exemplo:
+ enderefo: String
Métodos
• Expressam o fomportamento da flasse
• Afessam e modiifam os atributos da flasse
• Na implementação, são os métodos
• Possuem visibilidade, muito frequentemente públifos
• Podem retornar valor ou não (void)
• Podem refeber parâmetros ou não

• Exemplo:
+ enderefo: String
Visibilidade
(atributos e métodos)
• Visibilidades:
– Público [+] : atributo ou método é afessado pela própria
flasse e por qualquer outra flasse do programa.
– Protegido [#] : atributo ou método é afessado pela
própria flasse e pelas suas subflasses.
– Pacote [~]: atributo ou método é afessado pela própria
flasse e por todas as flasses do mesmo pafote.
– Privado [–] : atributo ou método só pode ser afessado
dentro da própria flasse.
• Serve para enfapsular, proteger, organizar o afesso à
membros de uma flasse
Representação de Atributos
e Métodos na UML
Relafionamentos

17/09/14 13
Relafionamentos
• Em UML uma assofiação representa um
relafionamento que desfreve as ligações entre os
objetos ligados.

• Uma assofiação deve ter sempre duas pontas, onde


uma é o objeto de inífio e a outra, o objeto inal.

Assofiação Simples

Agregação / Composição

Generalização (Herança)

Dependênfia

17/09/14 14
Assofiação simples

• Ligação estrutural e mais fomum entre duas flasses

• Permite navegar de um objeto para outro

• Nesse tpo de relação, as flasses possuem tempos de


vida independentes.

Associação
Assofiação por
Agregação Simples
• Tipo espefial de Assofiação

Assofiação do tpo “todo-parte”

• Tempo de vida independente: a existênfia da parte


não está vinfulada ao tempo de vida do todo

• Nessa relação, um objeto “parte” pode fazer parte de


vários objetos “todo”
Assofiação por
Agregação Simples

A agregação apenas adifiona


valor semântfo ao modelo, mas
não modiifa a forma de
implementação que permanefe
fomo a da assofiação simples
Agregação por
Composição
• Conotação semântfa mais forte que a agregação

Denota forte interdependênfia entre as partes

• Tempo de vida dependente entre o “todo” e suas


“partes”

• Os objetos “parte” só podem pertenfer a um únifo


objeto “todo”

A multpllicldade do lado do “todo” não pode ser malor
que 1 (ver iconicelto de multpllicldade)
Agregação por
19
Composição

Quando o “todo” morre todas suas “partes” também morrem


Agregação por
20
Composição
Agregação Simples x
21
Composição
Herança/Generalização
• Relafionamento entre tpos mais genérifos
(superflasses) e tpos mais espefíifos (subflasses)

Classe ilha e a flasse mãe

• Relafionamento do tpo “é-um”

• Afeita apenas a adição de farafterístfas na flasse


ilha, nunfa a exflusão

• Possibilita o reuso da estrutura e da funfionalidade


23
Herança

Superclasse

“ É um
tipo de”
Subclasses
24
Herança

Superclasse

“ É um
tipo de”

Subclasses

Veífulos Terrestres e Aéreos são tpos de Veífulos


25
Herança

As subflasses herdam
todos os atributos e
métodos da superflasse.
Todo atributo e método
espefializado deve ser
influído diretamente nas
subflasses.
Herança
Classes Abstratas
• Usualmente, a existênfia de uma flasse se justifa pela
possibilidade de gerar instânfias (flasses fonfretas).
• No entanto, podem existr flasses que não geram
instânfias diretas: classes abstratas.
• Utlizadas para organizar e simpliifar uma hierarquia de
generalização.

Propriedades fomuns a diversas flasses podem ser organizadas
e deinidas em uma flasse abstrata a partr da qual as primeiras
herdam.

Subflasses de uma flasse abstrata também podem ser
abstratas, mas a hierarquia deve terminar em uma ou mais
flasses fonfretas.
Herança
Classes Abstratas
• Na UML, uma flasse abstrata é representada fom o seu
nome em itálifo.

A flasse Telefone não pode


ser instanfiada. Telefone
Fixo e Telefone Celular são
Confretas e podem ser
instanfiadas.
Dependênfia
• Assofiação mais frafa entre flasses

• São relafionamentos de utlização no qual uma


mudança na espefiifação de um objeto (o objeto
independente) pode alterar a espefiifação de outro
objeto (o objeto dependente).

• A dependênfia entre flasses indifa que os objetos de


uma flasse usam serviços dos objetos de outra flasse.
Dependênfia

Elemento que depende Elemento que se depende


(usa) (usado)

Obs:
• A flasse fliente depende de algum serviço da flasse fornefedor
• A mudança de estado do fornefedor afeta o objeto fliente
• A flasse fliente não deflara nos seus atributos um objeto do tpo fornefedor
• Fornefedor é refebido por parâmetro de método
Dependênfia
• Exemplo de Dependênfia:
● As iclasses DVD-PLAYER e DVD-
MIDIA apresentam um
relaiclonamento de dependênicla.
● A asslnatura do método play da
iclasse DVD-PLAYER reicebe icomo
parâmetro um objeto ou
lnstânicla da iclasse DVD-MIDIA.
Nesse exemplo esse objeto é
rotulado por “flme”.
● O sentdo da seta lndlica quem
depende de quem.
Dependênfia
• Exemplo de Dependênfia:

Implementação em Java
DVD-PLAYER DVD-MIDIA

publlic iclass DVD-PLAYER publlic iclass DVD-MIDIA {


{ }
publlic play(DVD-MIDIA flme)
{}
}
Propriedades das
Assofiações
• Nome

• Papel

• Multplifidade

• Navegabilidade
Nome
• Demonstra o objetvo da assofiação
Papel
• Desfreve a função da flasse na assofiação

• Deve ser um substantvo

• Não deve ser usado junto fom o nome de assofiação

• É preferível usar papeis ao invés do nome do


relafionamento

Normalmente influído na fase de projeto (reinamento
do modelo fonfeitual)
35
Papel
Multplifidade
• Indifa quantos objetos de uma flasse podem ser
assofiados

• Pode ser qualquer número de zero até muitos


(indifado por *)

• Valores mais fomuns:


– 0..* - zero ou qualquer número maior
– 1 - obrigatoriamente um e apenas um
– 1..* - um (no mínimo) ou qualquer número
37
Multplifidade
Navegabilidade

• Indifa que, a partr de um objeto, é possível fhegar a


outro que esteja assofiado a ele

• Quando não espefiifada, assume-se a dupla


navegabilidade (mais fomplexa)


Quando há setas dos lados da assofiação assume-se
dupla navegabilidade
Navegabilidade
Exerfífios ?

17/09/14 40

Das könnte Ihnen auch gefallen