Buscar

Parte 4A Introdução a Orientação a Objetos

Prévia do material em texto

Engenharia de Software II
Parte 4 - A
Introdução à Orientação a Objetos
1
Prof. Dr. Celso Gallão
Abril/2017
F
A
T
E
C
 
S
Ã
O
 
C
A
E
T
A
N
O
“O engenheiro de software amador 
está sempre à procura da mágica, 
de algum método sensacional ou ferramenta 
cuja aplicação promete tornar trivial o 
desenvolvimento de software. 
É uma característica do 
engenheiro de software profissional 
saber que tal panacéia não existe.” 
[Grady Booch]
Engenharia de Software II – Parte 4 - Prof. Celso Gallão – Slide 2
Introdução à 
Orientação a Objetos1
Engenharia de Software II – Parte 4 - Prof. Celso Gallão – Slide 3
1.1 – Introdução
• Grande parte da pesquisa em Engenharia de 
Software e em Linguagens de Programação tem 
sido direcionada para a busca de metodologias 
que sejam:
• SIMPLES o suficiente: que permita ao programador 
atingir seus objetivos;
• PODEROSAS o bastante: para que o programador 
expresse todas suas soluções.
Orientação a Objetos1
Engenharia de Software II – Parte 4 - Prof. Celso Gallão – Slide 4
1.1 – Introdução
• A modelagem Orientada a Objetos, eleva o 
desenvolvimento de sistemas para um novo 
patamar.
• É um mecanismo que ajuda a definir a estrutura 
de programas com base nos conceitos do 
mundo real, abstraindo-os.
• Permite criar programas modulares, separando 
as partes do sistema por responsabilidades e 
fazendo com que essas partes se comuniquem 
entre si, por meio de mensagens.
Orientação a Objetos1
Engenharia de Software II – Parte 4 - Prof. Celso Gallão – Slide 5
1.2 – Conceitos Fundamentais
• Objeto
• Mensagem
• Classe
• Abstração
• Encapsulamento
• Herança
• Polimorfismo
Orientação a Objetos1
Engenharia de Software II – Parte 4 - Prof. Celso Gallão – Slide 6
1.2 – Conceitos Fundamentais
OBJETO
Os objetos do mundo real têm duas 
características básicas: 
• ESTADO: revela suas características. 
Por exemplo: uma pessoa possui idade, peso, 
altura, cor de cabelo, cor da pele, etc.
• COMPORTAMENTO: são as ações que o 
objeto executar. 
Por exemplo, uma pessoa pode andar, falar, 
ouvir, pular, etc.
Orientação a Objetos1
Engenharia de Software II – Parte 4 - Prof. Celso Gallão – Slide 7
1.2 – Conceitos Fundamentais
OBJETO
Por definição, um objeto é um pacote de software
que possui variáveis (estados) e métodos 
(comportamentos), e com um papel bem definido 
no domínio do problema.
Orientação a Objetos1
Engenharia de Software II – Parte 4 - Prof. Celso Gallão – Slide 8
1.2 – Conceitos Fundamentais
OBJETO
Os dados relativos a um objeto são denominados 
atributos.
Os métodos são as ações possíveis de serem 
realizadas pelo objeto. São similares às 
subrrotinas ou procedimentos da programação 
estruturada.
Orientação a Objetos1
Engenharia de Software II – Parte 4 - Prof. Celso Gallão – Slide 9
1.2 – Conceitos Fundamentais
MENSAGEM
Para os objetos interagirem e passarem a ter 
sentido e valor em um sistema, precisam 
comunicar-se entre si. Esta comunicação é feita 
por meio de troca de mensagens, e significa que 
um método está sendo executado.
Orientação a Objetos1
Engenharia de Software II – Parte 4 - Prof. Celso Gallão – Slide 10
1.2 – Conceitos Fundamentais
MENSAGEM
Uma mensagem é um sinal que um objeto envia 
para outro pedindo para o receptor do sinal que 
execute um de seus métodos.
Orientação a Objetos1
Engenharia de Software II – Parte 4 - Prof. Celso Gallão – Slide 11
1.2 – Conceitos Fundamentais
CLASSE
No mundo real, frequentemente percebemos 
vários objetos de um mesmo tipo. 
Por exemplo: seu carro é um dos muitos carros 
existentes no mundo.
Dizemos que um carro em particular é uma 
instância da classe de objetos conhecida como 
carros. 
Os carros, em geral, possuem estado (cor, potência do 
motor, combustível) e comportamento (ligar, acelerar, 
parar, mudar marcha) em comum.
Orientação a Objetos1
Engenharia de Software II – Parte 4 - Prof. Celso Gallão – Slide 12
1.2 – Conceitos Fundamentais
CLASSE
Na Orientação a Objetos também é possível ter 
vários objetos do mesmo tipo, que compartilham 
características em comum, podendo abstrair 
modelos para esses objetos. Esses modelos são 
as chamadas classes. 
São nas classes onde se definem as variáveis e 
implementam-se os métodos.
Orientação a Objetos1
Engenharia de Software II – Parte 4 - Prof. Celso Gallão – Slide 13
1.2 – Conceitos Fundamentais
CLASSE
Por definição, uma classe é um modelo que 
define as variáveis (estado) e os métodos 
(comportamento) comuns a todos os objetos do 
mesmo tipo.
Orientação a Objetos1
Engenharia de Software II – Parte 4 - Prof. Celso Gallão – Slide 14
1.2 – Conceitos Fundamentais
CLASSE
Na Classe se definem as características comuns 
e os Objetos são instâncias dessas Classes, 
com estado próprio.
Os Objetos são criados a partir de suas Classes.
Orientação a Objetos1
Engenharia de Software II – Parte 4 - Prof. Celso Gallão – Slide 15
1.2 – Conceitos Fundamentais
ABSTRAÇÃO: 
Dividir um conceito complexo em partes que 
interagem, abstraindo seus processos internos.
Uma classe é uma abstração de entidades 
existentes no domínio do sistema de software, 
levando-se em conta apenas os detalhes 
importantes para a resolução do problema e 
desprezando coisas que não têm importância no 
contexto.
Orientação a Objetos1
Engenharia de Software II – Parte 4 - Prof. Celso Gallão – Slide 16
1.2 – Conceitos Fundamentais
ABSTRAÇÃO: 
Por exemplo, uma C/C bancária. Ao abstrair, identifica-
se detalhes comuns, como o número da C/C, número 
da agência, saldo, etc.; e operações como débito em 
C/C, depósito e extrato da C/C. Genericamente, essas 
são as características de C/C para todos os bancos.
Orientação a Objetos1
Engenharia de Software II – Parte 4 - Prof. Celso Gallão – Slide 17
1.2 – Conceitos Fundamentais
ENCAPSULAMENTO: 
Cada parte pode esconder a complexidade de 
seu funcionamento interno, das outras partes, 
fornecendo apenas uma interface bem 
definida.
Permite que mudanças no seu modelo interno não 
afetem outras partes do sistema. 
Ajuda a prevenir o problema de interferência 
externa indevida sobre os dados do sistema.
Orientação a Objetos1
Engenharia de Software II – Parte 4 - Prof. Celso Gallão – Slide 18
1.2 – Conceitos Fundamentais
ENCAPSULAMENTO: 
Por exemplo: não é preciso conhecer os detalhes dos 
circuitos de um telefone para utilizá-lo. A carcaça do 
telefone encapsula esses detalhes, provendo uma 
interface mais amigável.
Orientação a Objetos1
Engenharia de Software II – Parte 4 - Prof. Celso Gallão – Slide 19
1.2 – Conceitos Fundamentais
ENCAPSULAMENTO: 
Na prática, limita-se o acesso a atributos de 
uma classe exclusivamente através de seus 
métodos de visibilidade. 
+ público (public): pode ser acessado por qualquer classe.
# protegido (protected): pode ser acessado apenas pela 
própria classe e suas subclasses.
- privado (private): pode ser acessado apenas pela própria 
classe a que pertence.
~ pacote (package): acesso dentro do pacote.
Orientação a Objetos1
Engenharia de Software II – Parte 4 - Prof. Celso Gallão – Slide 20
1.2 – Conceitos Fundamentais
HERANÇA
É um mecanismo que permite criar novas classes 
a partir de classes já existentes, aproveitando-se 
das características existentes na classe a ser 
estendida.
Orientação a Objetos1
Engenharia de Software II – Parte 4 - Prof. Celso Gallão – Slide 21
1.2 – Conceitos Fundamentais
HERANÇA
Assim, é possível criarclasses derivadas 
(subclasses) a partir de classes bases 
(superclasses). As subclasses são mais 
especializadas do que as suas superclasses, 
mais genéricas.
As subclasses herdam todas as características de 
suas superclasses, como suas variáveis e métodos.
Orientação a Objetos1
Engenharia de Software II – Parte 4 - Prof. Celso Gallão – Slide 22
1.2 – Conceitos Fundamentais
HERANÇA
Por exemplo:
Orientação a Objetos1
Engenharia de Software II – Parte 4 - Prof. Celso Gallão – Slide 23
1.2 – Conceitos Fundamentais
HERANÇA
Os subtipos, além de herdarem todas as 
características de seus supertipos, também 
podem adicionar mais características, seja na 
forma de variáveis e/ou métodos adicionais, bem 
como reescrever métodos já existentes na 
superclasse (polimorfismo).
A herança permite vários níveis na hierarquia de 
classes, podendo criar tantos subtipos quanto 
necessário, até se chegar no nível de especialização 
desejado.
Orientação a Objetos1
Engenharia de Software II – Parte 4 - Prof. Celso Gallão – Slide 24
1.2 – Conceitos Fundamentais
POLIMORFISMO (Várias Formas)
O polimorfismo denota uma situação na qual um 
objeto pode comportar-se de maneiras diferentes 
ao receber uma mensagem, dependendo do seu 
tipo de criação.
Duas subclasses de uma mesma classe podem 
ter implementações completamente diferentes de 
um mesmo método, o que leva os objetos a se 
comportarem de forma diferente, dependendo do 
seu tipo (classe).
Orientação a Objetos1
Engenharia de Software II – Parte 4 - Prof. Celso Gallão – Slide 25
1.2 – Conceitos Fundamentais
POLIMORFISMO (Várias Formas)
Por exemplo, uma classe chamada Impressora, em um 
programa que faça a impressão de relatórios. Esta 
classe é uma interface de acesso às funcionalidades 
da impressora por meio de um driver fornecido pelo 
fabricante. Impressoras diferentes poderão ser 
acessadas com uma simples mensagem de imprimir 
para a impressora, sem que o programa tenha que 
gerenciar tais diferenças.
Orientação a Objetos1
Engenharia de Software II – Parte 4 - Prof. Celso Gallão – Slide 26
1.2 – Conceitos Fundamentais
POLIMORFISMO (Várias Formas)
Orientação a Objetos1
Engenharia de Software II – Parte 4 - Prof. Celso Gallão – Slide 27
1.3 – Vantagens
• Reuso de código;
• Redução das linhas de código programadas;
• Separação de responsabilidades;
• Componentização;
• Maior flexibilidade do sistema;
• Facilidade na manutenção;
• Aumento de produtividade, dentre outras...
Orientação a Objetos1
Engenharia de Software II – Parte 4 - Prof. Celso Gallão – Slide 28

Outros materiais

Materiais relacionados

Perguntas relacionadas

Materiais recentes

Perguntas Recentes