Introdução ao Paradigma
de Orientação a Objetos
Prof. Leandro Buss Becker
[email protected]
'Crise do Software'
prazos ultrapassados
custos acima dos previstos
não atendimento dos requisitos dos
clientes
elevado custo de manutenção
Complexidade
complexidade
racionalização
(metodologias)
engineering
hardware
1982
1993
fonte: AEG-Alemanha
(1993)
Dados Interessantes:
custos hardware vs. software
(fonte: SEL-ALCATEL)
 1970 = 8:2
 1991 = 2:8
 hoje = 1:9
custos com manutenção de software

HP-Alemanha (50% engenheiros
envolvidos em manutenção)
"Metodologia de Projeto"
Codificação
"Metodologia de Projeto"
Codificação
Oração
Como domar esta complexidade ?
encapsular informação
('information hiding')
decomposição
hierarquia (níveis
de abstração)
múltiplas visões
Modularidade
Propriedade de construção de sistemas
através de módulos
A coesão de um módulo denota a média
da inter-relação entre os seus
componentes
O acoplamento entre os módulos é o
grau de interdependência entre eles
Ideal: Alta coesão e Baixo acoplamento
Modularidade
Modularidade
Arquitetura de um sistema de controle fabril
Controle
Sensores
Interface Gráfica
Máquinas
Classe Máquina
...
Classe Cortadora
...
Classe Perfuratriz
...
Classe Prensa
...
Encapsulamento
Técnica que consiste em separar aspectos de
uso dos aspectos de implementação
É igualmente chamado de Ocultamento de
Informação ("Information Hide")
Um componente de software ("objeto") possui
uma interface visível e uma parte interna
invisível.
O compilador se encarrega de verificar a
validade de uso dos componentes de um objeto
(através de regras de escopo)
Encapsulamento
Encapsulamento
Implementação de uma fila
FILA
Visão do cliente
insere
remove
Estado Interno



Vetor de tamanho Fixo Estático ou
Vetor de tamanho Fixo Alocado dinâmicamente
ou
Lista de Elementos
Hierarquia
Mecanismo utilizado para manipular
sistemas complexos
As tres formas mais importantes de
Hierarquia são:



Classificação e Instanciação
Generalização e Especialização
Agregação e Decomposição
Hierarquia: Classificação e
Instanciação
Classificar significa agrupar objetos
com base em estruturas e
comportamentos semelhantes.
Instanciar objetos significa gerar novos
exemplares a partir de uma descrição
abstrata de um objeto genérico
Aluno
Classificação
Instanciação
Alunos
Alunos Alunos
Alunos
Alunos
Alunos
Classificação
Hierarquia: Generalização e
Especialização
Generalizar significa remover restrições
para obter abstrações mais genéricas
Especializar significa buscar
características que diferenciem
abstrações afins
Estrutura
de dados
Generalização
Especialização
Fila
Matriz
Hierarquia: Agregação e
Decomposição
Agregar significa combinar abstrações
para obter estruturas e comportamentos
mais complexos
Decompor significa detalhar uma
abstração dividindo-a nos seus
elementos constituintes
Linha de
Montagem
Agregação
Esteira
Cortadora
Decomposição
Perfuratriz
Abstração
Abstrair é concentrar-se no que é
realmente relevante e ignorar detalhes
Observar as coisas por suas
características mais gerais e deixar de
lado particularidades
Abstração
Conceitos Básicos: Objeto
encapsula dados (atributos) e funções
(membros) => um objeto é uma abstração
de dados e uma abstração de operações
em uma mesma estrutura
possui uma interface de acesso bem
definida (atributos e métodos internos são
invisíveis ao meio externo “information
hidding principle”)
um objeto possui estado, comportamento
e identidade
Objetos
Objeto
Estado de um objeto: conjunto de valores
associados às propriedades do objeto. Tais
propriedades representam características, atributos
ou qualidades associadas à entidade representada
pelo objeto
O Comportamento de um Objeto descreve como se
processam as mudanças de seu estado em função
de sua interação com o mundo externo. Tais
mudanças são efetuadas através de operações
realizadas pelo objeto
Exemplo de Objeto: Empregado
Um empregado de uma firma pode ser
representado por um objeto. Todo
empregado tem um nome, carteira de
identidade, CIC, endereco, seção na qual
trabalha, salário, etc. Pode-se alterar o
salário de um empregado, imprimir seu
endereço, etc.
Objetos Abstratos: Lista
Dentro de um programa, uma lista pode
ser representada como um objeto. O
número de elementos é uma informação
sobre o estado atual da lista. Elementos
podem ser inseridos e removidos.
Objetos 'Industriais'
em especial, componentes de sistemas de
automação podem ser facilmente modelados com
objetos: sensores, tanques, máquinas, etc.
ex: uma fresa em uma linha de produção pode ser
modelada como um objeto. Cada fresa tem sua
especificação, rotação nominal, tensão, etc.
Controla-se a fresa através de comandos para
mudar a posição, ligar/desligar, abaixar/levantar,
etc..
Conceitos Básicos: Classes
Classe: objeto visto como um tipo
abstrato, do qual pode-se gerar diversas
cópias. Uma classe define, em um único
local, propriedades comuns a todos as
instâncias desta classe.
Instância: a partir de uma classe pode-se
gerar diversas instâncias (objetos)
Classes
Classes e Objetos
Mundo
Real
veículo
classe
Ferrari
IDN8810
Marca
Placa
instâncias
ler_placa
Fiat Uno
IAS3333
Objetos e Classes
O estado de um objeto é representado
pelo conjunto de valores associados às
suas características
esses valores são armazenados nas
variáveis de instância do objeto. Tais
variáveis são definidas na classe que gera
o objeto
Objetos e Classes
Uma classe define o comportamento de
suas instâncias
Este comportamento é o conjunto de
operações que podem ser realizadas
pelos objetos
Classes X Instâncias X Objetos
Objetos são gerados a partir de classes
Uma classe define as propriedades e o
comportamento dos objetos gerados por ela
Todo objeto é uma instância de uma classe
Exemplo
Objetos
 Funcionário Pedro Silva, CI 2819283399, Rua
Silva Só, 88 - Porto Alegre
salário R$ 1000,00
 Funcionária Marta Andrade, CI 1234567891,
Rua Siqueira Campos, 29 - Carazinho
salário R$ 600,00
Classe Funcionário

Nome, CI, Endereco, Salário
Referências Bibliográficas
Rumbaugh, J. et al. “Modelagem e
Projetos Baseados em Objetos“. Ed.
Campus, 1994.
Download

Aula1-IntroOO