Logo Passei Direto
Buscar

Orientação a Objetos

User badge image

Enviado por Nathy Quintanilha em

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

. .
Orientação a
Objetos
Conceitos Básicos
Orientação a objetos Conceitos Básicos
As técnicas orientadas a objeto permitem que o software seja construído de objetos
que tenham um comportamento especifico. Os próprios objetos podem ser
construídos a partir de outros, os quais, por sua vez, podem ainda ser construídos
de outros.
A análise de sistemas no mundo orientado a objeto é feita analisando-se os objetos
e os eventos que interagem com esses objetos. O projeto de software é feito
reusando-se classes de objetos existentes e quando necessário, construindo-se
novas classes.
Técnicas orientadas a objeto podem ser usadas para simplificar o projeto de
sistemas complexos. O sistema pode ser visualizado como uma coleção de objetos,
estando cada um dos objetos em um determinado estado. Os objetos são
construídos a partir de outros objetos.
A análise e o projeto orientados a objeto modelam o mundo em termos de objetos
que tem propriedades e comportamentos e eventos que disparam operações que
mudam o estado dos objetos. Os objetos interagem com outros objetos.
A modelagem e o projeto orientados a objeto são os paradigmas que devem
integrar todas as ferramentas e técnicas poderosas para a criação de software.
Estratégia de desenvolvimento baseada no conceito de que o sistema deve ser
construído a partir de componentes reutilizálfeis, chamados de objetos.
Conceitos
Entre as idéias fundamentais básicas para a tecnologia orientada a objeto incluem-
se: .
o Objetos;
• Classes;
o Métodos;
• Herança;
o Encapsulamento,
Cada conceito é uma idéia ou um entendimento pessoal que temos do nosso
mundo. Os conceitos que adquirimos nos permitem dar sentido sobre as coisas do
nosso mundo. Essas coisas às quais nossos conceitos se aplicam são denominados
objetos.
Objeto
o Um objeto pode ser real ou abstrato.
o Os objetos possuem informações (contém dados) e desempenham ações
(possuem funcionalidade).
o Qualquer coisa à qual um conceito ou tipo de objeto se aplica - uma
instância de um conceito ou tipo de objeto.
o Um objeto é uma instância de uma classe.
Exemplo:
o Uma fatura;
o Uma organização;
o Um vôo de avião;
o Uma pessoa;
o Um lugar.
Na análise e no projeto 00, estamos interessados no comportamento do objeto. As
operações são codificadas como métodos. A representação de software 00 do
objeto é, dessa forma, uma coleção de tipos de dados e métodos. No software 00:
Um objeto é qualquer coisa, real ou abstrata, a respeito da qual armazenamos
dados e os métodos que os manipulam.
Exemplo: um tipo de objeto poderia ser Fatura e um objeto poderia ser nO.
51.783.
085: O termo objeto, porém, é diferente do termo entidade. A entidade preocupa-
se apenas com os dados enquanto o objeto preocupa-se tanto com os dados como
com os métodos com os quais os dados são manipulados.
Métodos
• Os métodos especificam a maneira pela qual os dados de um objeto são
manipulados.
• Uma especificação dos passos pelos quais uma operação deve ser
executada.
• Ele é um script de implementação de uma operação.
• Diferentes métodos podem ser usados para executar a mesma operação.
• Os métodos de um tipo de objeto referenciam somente as estruturas de
dados desse tipo de objeto.
• A ação que um objeto ou uma classe podem desempenhar.
• Os métodos são similares às funções e procedures do universo da
programação estruturada.
Um objeto é, dessa forma, uma coisa, com suas propriedades representadas pelos
tipos de dados e seu comportamento representado pelos métodos.
Encapsulamento
O ato de empacotar ao mesmo tempo dados e objetos é denominado
encapsulamento. O objeto esconde seus dados de outros objetos e permite que os
dados sejam acessados por intermédio de seus próprios métodos. Isso é chamado
de ocultação de informações (information hiding).
• O encapsulamento protege os dados do objeto do uso arbitrário e não-
intencional.
• O encapsulamento é o resultado (ou ato) de ocultar do usuário os detalhes
da implementação de um objeto.
• O encapsulamento é importante porque separa a maneira como um objeto
se comporta da maneira como ele é implementado.
• A definição de como implementar os conhecimentos ou ações de uma classe,
sem informar como isto é feito.
Exemplo:
O1;ljeto
Op@:n~õ~spmnissÍveis• a única
~ in de w.anipuhr 1.t 5trUtlln lU
dados. O lÚtodo da ope~io t~
f)c1J.ho do 1JSU.Ú'io.
Cada objeto encapsula uma estrutura de dados e métodos. Uma estrutura de dados
encontra-se no centro de um objeto. O objeto é manipulado por métodos que
implementam as operações permitidas. A estrutura de dados pode ser usada
somente com os métodos. Essa restrição ao acesso é denominada encapsulamento,
que protege os dados contra adulteração. Os dados do objeto não podem ser
usados, exceto com esses métodos.
Classe
O termo classe refere-se à implementação de software de um tipo de objeto. Um
tipo de objeto especifica uma família de objetos sem estipular como o tipo e o
objeto são implementados. Os tipos de objetos são especificados durante a análise
00. Os tipos de objetos são implementados como módulos enquanto na linguagem
orientada a objeto, os tipos de objetos são classificados como classes.
• Uma classe é uma implementação de um tipo de objeto.
• Uma classe especifica uma estrutura de dados e os métodos operacionais
permissíveis que se aplicam a cada um de seus objetos.
• Uma classe pode ter sua própria estrutura de dados e métodos, bem como
herda - lá de sua superclasse.
Exemplo: Classe- Objeto - Método - Atributo.
Classe Objetos
Pessoa
~~Nome A
~Endereço IR
"I~Telefone I
M:'l r ia
~Idade Bu
~Altura I
O•Registra~) bl
~Matricular() É Pedro
~PagarO IO
EstudarO D
~CadastrarO Os
Classes Abstratas e Concretas
A classe abstrata é uma classe que não possui objetos instanciados a partir dela,
enquanto a classe concreta possui objetos instanciados (criados) a partir dela.
Exemplo: No mundo real, por exemplo, existem automóveis e aviões, mas nada
que seja simplesmente um veiculo (em outras palavras, se não for um carro ou
avião, não é de nosso interesse). Isso significa que podemos instanciar objetos
como carros e aviões, mas nunca iremos criar objetos veículos. As classes abstratas
são criadas quando necessitamos de uma cla~se que implemente recursos comuns
a duas ou mais classes.
Avião
Herança
Veículo
Avião - nO. de motores, autonomia,
velocidade máxima, altitude m~xjma.nO,
passageiros (anemeter, aterrissar, g1.issar,
aumentar e diminuir a velocidade).
Cano - n°. passageiros. autonomia, marca,
modelo (fazer curvas, aumentar e diminuir a
velocidade).
Veículo _ nO. passageiros, autonomia
(aumentar e diminuir a velocidade).
Carro
É comum haver similaridades entre diferentes classes. Frequentemente, duas ou
mais classes irão compartilhar os mesmos atributos e/ou métodos. Como nenhum
de nós deseja reescrever várias vezes o mesmo código, seria interessante se algum
mecanismo pudesse tirar proveito dessas similaridades. A herança é esse
mecanismo. Por intermédio da herança, é possível modelar relacionamentos do tipo
"é" ou "é semelhante", o que nos permite reutilizar rotinas e dados já existentes.
Uma subclasse herda as propriedades de sua classe-mãe; uma subclasse herda as
propriedades das subclasses e assim por diante. Uma subclasse pode herdar a
estrutura de dados e os métodos, ou alguns dos métodos, de sua superclasse. Ela
também tem métodos e às vezes, tipos de dados próprios.
Subclasse - uma classe que é um subtipo de uma ou mais classes (denominadas
supere/asses). Como tal, ela herda todas as características de suas superclasses.
Em outras palavras, todas as características de uma classe são reusáveis por suas
subclasses. Se a ciasse B herda de A, então dizemos que B é uma subclasse de A.
Superclasse - Uma classe que é um supertipo de uma ou mais classes (tb
chamadas de subc/asses).
Como tal, ela é uma classe a partir da qual todas as suas
características são herdadas por suas subclasses. Em outras palavras, todas as
características de uma superclasse são reusáveis por aquelas classes que são seus
subtipos. Se a classe B herda de A, então dizemos que A é uma superclasse de B.
Exemplo 1: A figura abaixo mostra uma classe e uma subclasse. A 'subclasse tem
os mesmos métodos de sua superclasse, mas tem também o método G. Ás vezes,
uma classe herda propriedades de mais de uma superclasse. Isso é denominado
herança múltipla.
80°O
Herança
Qasse
Subclasse
Exemplo 2: Pessoa - professor - aluno
085: As subclasses deverão sempre ficar abaixo da superclasse e o semicírculo
deverá sempre apontar da subclasse para a superclasse
Herança Simples e Múltipla
Quando uma classe herda características somente de uma outra classe, dizemos
que esta é uma herança simples. Quando uma classe herda de duas ou mais
classes, temos um caso de herança múltipla. Em qualquer circunstância, o fato que
você deverá lembrar é o seguinte: a subclasse herda todos os atributos e métodos
das superciasses.
Pássaro
Dra<!ão
Hierarquias de Generalização
La~arto
!'as.'"'" - Envergadura de asas , Velocidade
máxima (comer/voar).
Lag:tl'lo - N° de ganas, cor das escamas
(comer/voar)
Drngáo - Nome, Envergadura de asas ,
Velocidade máxima, N". de ganas, cor das
escamas (expelir/capturar donzelas/comer)
.
Um conjunto de classes relacionadas por meio da herança. Uma boa maneira de
organizarmos os conhecimentos é arranjando-o em hierarquias do geral para o
mais especifico. Por exemplo, a figura abaixo descreve uma hierarquia com o
conhecimento do tipo de objeto Pessoa no topo. Isso significa que Pessoa é um tipo
de objeto mais geral do que empregado e estudante. Isso significa que empregado
e estudante são subtipos de pessoa, ou, inversamente, que pessoa e um supertipo
de empregado e estudante
Pessoa
/\
Empregado Estudante
vendi\erente
Diferenças entre análise e projeto:
Primeira alternativa:
I. A análise modela o problema e consiste das atividades necessárias para
entender o domínio do problema (o que deve ser feito). É uma atividade de
investigação.
o projeto modela a solução e consiste das atividades de criação (como pode ser
feito)
Análise
Modelagem
do problema
(entender)
..•
Projeto
MOdela(lem
da solução
(criar)
Segunda alternativa:
I. A análise consiste de todas as atividades feitas com ou para o conhecimento
do cliente. A informação produzida é aquela que o cliente deve discutir e
aprovar
2. O projeto inclui as atividades que resultam em informação que interessa
apenas ao programador
3. Com essa definição, a análise invade um pouco o "lado da solução", pois o
cliente deve discutir alguns tipos de interações que ocorrerão na interface do
usuário, etc.
,
;,
An~lI.e=
InfQrmaçâo
impcmmte
para0
di.nt.
discutir e-
aprO'u'ar
Proj.to =
Informaçào
importlnte
PElf80
programador
apenaa
Diagramas de Objeto-Relacionamento
Os tipos de objetos têm relação com outros tipos de objeto. Os diagramas de
entidade-relacionamento são usados há anos na análise convencional de
sistemas. Os diagramas mostram as associações entre tipos de entidades. Um
diagrama de objeto-relacionamento é representado da mesma maneira que o
diagrama de entidade relacionamento.
Veja a figura abaixo:
Cliente
Armazém
Estoque de
Produto
Pedido
Linha de
Pedido
Produto
Um diagrama de objeto-relacionamento é essencialmente o mesmo que um
diagrama de entidade-relacionamento, onde cada retângulo poderia ser um tipo
de objeto na analise e projeto orientado a objeto. Fica mais fácil o entendimento do
modelo quando os tipos de objetos e as relações são representados num diagrama
de objeto-relacionamento; supertipos e subtipos num diagrama de generalização.
Diagramas Orientados a Objeto
Resumo dos símbolos usados para a analise e projeto orientado a objeto. Como já
sabemos um objeto, como uma entidade, é uma coisa real ou abstrata. Nós, por
conseguinte, usamos um retângulo para desenhar tipos de objetos. Recomenda-se
que os tipos de objetos e classes sejam desenhados com caixas de cantos vivos e
as atividades com caixas de cantos arredondados
D~dos ~CJ Significado:Caixa de cantos vivosRepreserrtam dados (tipoDe entidade, subtipos,registros)
Mínimo Máximo
C~rdin~lid~de (multíplicíd~de)
O
I I a-r B JA
L A ] I+[ B ]
I ~~
O Mais do
A que O
I I Vf ]
Mais doB que 1
A
Mais do Mais do
I I <fB ]
que 1 Que 1
A
Exclusividade Mútua
Uma e somente uma das
Ramificações são tomadas
~
[X J[A J /
A está associado a
ZX. Y ouZ.
Atividades
Caixa de cantos arredondados
Representam ertividades (furções,
processos ,pro::e dimentos) [ ]
[
onde temos:
) • ./
Fluxo ou seqüência
A r-a-rBJ
lA HB 1
[A]--O{BJ
[AJ. K[BJ
[A J • {B J
Mínimo lvláximo
O 1
I 1.
O lVIais do
que O
1 lVIais do
que 1
lVIais do lVIais do
que 1 que 1
I
Multiplicidade de Associação (cardinalidade):
• É o número de instâncias de uma classe relacionada com uma instância de
outra classe.
• Para cada associação, há uma multiplicidade em cada direção.
A notação usada pela UML, para os indicadores de multiplicidade, é:
Muitos *
Apenas Um 1
zero ou Muitos O..*
Um ou Muitos 1..*
zero ou Um 0..1
Artigo recebido como colaboração I sem Identificação de autoria.
	00000001
	00000002
	00000003
	00000004
	00000005
	00000006
	00000007
	00000008
	00000009
	00000010
	00000011
	00000012

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Mais conteúdos dessa disciplina

Mais conteúdos dessa disciplina