Upload
internet
View
118
Download
4
Embed Size (px)
Citation preview
IntroduIntrodução ao Paradigma ção ao Paradigma de Orientação a Objetosde Orientação a Objetos
Prof. Leandro Buss BeckerProf. Leandro Buss Becker
'Crise do Software''Crise do Software'
prazos ultrapassadosprazos ultrapassadoscustos acima dos previstoscustos acima dos previstosnão atendimento dos requisitos dos não atendimento dos requisitos dos
clientesclienteselevado custo de manutenção elevado custo de manutenção
ComplexidadeComplexidade
hardware
engineering
complexidade
1982 1993
racionalização(metodologias)
fonte: AEG-Alemanha (1993)
Dados Interessantes:Dados Interessantes:
custos hardware vs. software custos hardware vs. software (fonte: SEL-ALCATEL)(fonte: SEL-ALCATEL) 1970 = 8:21970 = 8:2 1991 = 2:81991 = 2:8 hoje = 1:9hoje = 1:9
custos com manutenção de softwarecustos com manutenção de software HP-Alemanha (50% engenheiros HP-Alemanha (50% engenheiros
envolvidos em manutenção)envolvidos em manutenção) VW (80%)VW (80%)
"Metodologia de Projeto""Metodologia de Projeto"
CodificaçãoCodificação
"Metodologia de Projeto""Metodologia de Projeto"
CodificaçãoCodificação
OraçãoOração
Como domar esta complexidade ?Como domar esta complexidade ?
encapsular informaçãoencapsular informação('information hiding')('information hiding')
decomposiçãodecomposiçãohierarquia (níveis hierarquia (níveis
de abstração)de abstração)múltiplas visõesmúltiplas visões
ModularidadeModularidade
Propriedade de construção de sistemas Propriedade de construção de sistemas através de através de módulosmódulos
A A coesãocoesão de um módulo denota a média de um módulo denota a média da inter-relação entre os seus da inter-relação entre os seus componentescomponentes
O O acoplamentoacoplamento entre os módulos é o entre os módulos é o grau de interdependência entre elesgrau de interdependência entre eles
Ideal: Alta coesão e Baixo acoplamentoIdeal: Alta coesão e Baixo acoplamento
ModularidadeModularidade
ModularidadeModularidade
Arquitetura de um sistema de controle fabrilArquitetura de um sistema de controle fabril
ControleControle
SensoresSensores
Interface GráficaInterface Gráfica
MáquinasMáquinas
Classe Máquina Classe Máquina ......Classe CortadoraClasse Cortadora......Classe PerfuratrizClasse Perfuratriz......Classe PrensaClasse Prensa......
EncapsulamentoEncapsulamentoTécnica que consiste em separar aspectos de Técnica que consiste em separar aspectos de usouso dos aspectos de dos aspectos de implementaçãoimplementação
É igualmente chamado de Ocultamento de É igualmente chamado de Ocultamento de Informação ("Information Hide")Informação ("Information Hide")
Um componente de software ("objeto") possui Um componente de software ("objeto") possui uma interface visível e uma parte interna uma interface visível e uma parte interna invisível.invisível.
O compilador se encarrega de verificar a O compilador se encarrega de verificar a validade de uso dos componentes de um objeto validade de uso dos componentes de um objeto (através de regras de escopo) (através de regras de escopo)
EncapsulamentoEncapsulamento
EncapsulamentoEncapsulamento
Implementação de uma filaImplementação de uma fila
Visão do clienteVisão do cliente
Estado InternoEstado Interno Vetor de tamanho Fixo Estático ouVetor de tamanho Fixo Estático ou Vetor de tamanho Fixo Alocado dinâmicamente ouVetor de tamanho Fixo Alocado dinâmicamente ou Lista de Elementos ouLista de Elementos ou Abordagens MistaAbordagens Mista
FILAFILA
insereinsereremoveremove
HierarquiaHierarquia
Mecanismo utilizado para manipular Mecanismo utilizado para manipular sistemas complexossistemas complexos
As tres formas mais importantes de As tres formas mais importantes de Hierarquia são:Hierarquia são: Classificação e InstanciaçãoClassificação e Instanciação Generalização e EspecializaçãoGeneralização e Especialização Agregação e DecomposiçãoAgregação e Decomposição
HierarquiaHierarquia: : Classificação e Classificação e InstanciaçãoInstanciação
Classificar significa agrupar objetos com base em estruturas e Classificar significa agrupar objetos com base em estruturas e comportamentos semelhantes.comportamentos semelhantes.
Instanciar objetos significa gerar novos exemplares a partir de Instanciar objetos significa gerar novos exemplares a partir de uma descrição abstrata de um objeto genéricouma descrição abstrata de um objeto genérico
Os alunos são exemplares da classe Aluno, que por sua vez é Os alunos são exemplares da classe Aluno, que por sua vez é utilizada para gerar novos alunos.utilizada para gerar novos alunos.
AlunoAluno
AlunosAlunos AlunosAlunosAlunosAlunos
AlunosAlunos
AlunosAlunosAlunosAlunos
ClassificaçãoClassificação InstanciaçãoInstanciação
ClassificaçãoClassificação
HierarquiaHierarquia: : Generalização e Generalização e EspecializaçãoEspecialização
Generalizar significa remover restrições Generalizar significa remover restrições para obter abstrações mais genéricaspara obter abstrações mais genéricas
Especializar significa buscar Especializar significa buscar características que diferenciem características que diferenciem abstrações afinsabstrações afins
EstruturaEstruturade dadosde dados
FilaFila MatrizMatriz
GeneralizaçãoGeneralização EspecializaçãoEspecialização
HierarquiaHierarquia: : Agregação e Agregação e DecomposiçãoDecomposição
Agregar significa combinar abstrações Agregar significa combinar abstrações para obter estruturas e comportamentos para obter estruturas e comportamentos mais complexosmais complexos
Decompor significa detalhar uma Decompor significa detalhar uma abstração dividindo-a nos seus abstração dividindo-a nos seus elementos constituinteselementos constituintes
Linha de Linha de MontagemMontagem
EsteiraEsteira CortadoraCortadora PerfuratrizPerfuratriz
DecomposiçãoDecomposiçãoAgregaçãoAgregação
AbstraçãoAbstração
Abstrair é concentrar-se no que é Abstrair é concentrar-se no que é realmente relevante e ignorar detalhesrealmente relevante e ignorar detalhes
Observar as coisas por suas Observar as coisas por suas características mais gerais e deixar de características mais gerais e deixar de lado particularidadeslado particularidades
AbstraçãoAbstração
Conceitos Básicos: ObjetoConceitos Básicos: Objeto
encapsula dados (atributos) e funções encapsula dados (atributos) e funções (membros) => um objeto é uma abstração de (membros) => um objeto é uma abstração de dados e uma abstração de operações em uma dados e uma abstração de operações em uma mesma estruturamesma estrutura
possui uma interface de acesso bem definida possui uma interface de acesso bem definida (atributos e métodos internos são invisíveis ao (atributos e métodos internos são invisíveis ao meio externo “information hidding principle”)meio externo “information hidding principle”)
um objeto possui estado, comportamento e um objeto possui estado, comportamento e identidadeidentidade
ObjetosObjetos
ObjetoObjeto
Estado de um objeto: conjunto de valores Estado de um objeto: conjunto de valores associados às propriedades do objeto. Tais associados às propriedades do objeto. Tais propriedades representam características, atributos propriedades representam características, atributos ou qualidades associadas à entidade representada ou qualidades associadas à entidade representada pelo objetopelo objeto
O Comportamento de um Objeto descreve como se O Comportamento de um Objeto descreve como se processam as mudanças de seu estado em função processam as mudanças de seu estado em função de sua interação com o mundo externo. Tais de sua interação com o mundo externo. Tais mudanças são efetuadas através de operações mudanças são efetuadas através de operações realizadas pelo objetorealizadas pelo objeto
Exemplo de Objeto: EmpregadoExemplo de Objeto: Empregado
Um empregado de uma firma pode ser Um empregado de uma firma pode ser representado por um objeto. Todo representado por um objeto. Todo empregado tem um nome, carteira de empregado tem um nome, carteira de identidade, CIC, endereco, seção na qual identidade, CIC, endereco, seção na qual trabalha, salário, etc. Pode-se alterar o trabalha, salário, etc. Pode-se alterar o salário de um empregado, imprimir seu salário de um empregado, imprimir seu endereço, etc.endereço, etc.
Objetos Abstratos: ListaObjetos Abstratos: Lista
Dentro de um programa, uma lista pode Dentro de um programa, uma lista pode ser representada como um objeto. O ser representada como um objeto. O número de elementos é uma informação número de elementos é uma informação sobre o estado atual da lista. Elementos sobre o estado atual da lista. Elementos podem ser inseridos e removidos.podem ser inseridos e removidos.
Objetos 'Industriais'Objetos 'Industriais'
em especial, componentes de sistemas de em especial, componentes de sistemas de automação podem ser facilmente modelados com automação podem ser facilmente modelados com objetos: sensores, tanques, máquinas, etc.objetos: sensores, tanques, máquinas, etc.
ex: uma fresa em uma linha de produção pode ser ex: uma fresa em uma linha de produção pode ser modelada como um objeto. Cada fresa tem sua modelada como um objeto. Cada fresa tem sua especificação, rotação nominal, tensão, etc. especificação, rotação nominal, tensão, etc. Controla-se a fresa através de comandos para Controla-se a fresa através de comandos para mudar a posição, ligar/desligar, abaixar/levantar, mudar a posição, ligar/desligar, abaixar/levantar, etc..etc..
Conceitos Básicos: ClassesConceitos Básicos: Classes
Classe: objeto visto como um tipo Classe: objeto visto como um tipo abstrato, do qual pode-se gerar diversas abstrato, do qual pode-se gerar diversas cópias. Uma classe define, em um único cópias. Uma classe define, em um único local, propriedades comuns a todos as local, propriedades comuns a todos as instâncias desta classe.instâncias desta classe.
Instância: a partir de uma classe pode-se Instância: a partir de uma classe pode-se gerar diversas instâncias (objetos)gerar diversas instâncias (objetos)
ClassesClasses
Classes e ObjetosClasses e Objetos
MundoMundoRealReal
veículoveículo
MarcaMarcaPlacaPlaca
ler_placaler_placa
FerrariFerrariIDN8810IDN8810
Fiat UnoFiat UnoIAS3333IAS3333
instânciasinstânciasclasseclasse
Objetos e ClassesObjetos e Classes
O estado de um objeto é representado O estado de um objeto é representado pelo conjunto de valores associados às pelo conjunto de valores associados às suas característicassuas características
esses valores são armazenados nas esses valores são armazenados nas variáveis de instância do objeto. Tais variáveis de instância do objeto. Tais variáveis são definidas na classe que gera variáveis são definidas na classe que gera o objetoo objeto
Objetos e ClassesObjetos e Classes
Uma classe define o comportamento de Uma classe define o comportamento de suas instânciassuas instâncias
Este comportamento é o conjunto de Este comportamento é o conjunto de operações que podem ser realizadas operações que podem ser realizadas pelos objetospelos objetos
Classes X Instâncias X ObjetosClasses X Instâncias X Objetos
Objetos são gerados a partir de classesObjetos são gerados a partir de classes
Uma classe define as propriedades e o Uma classe define as propriedades e o comportamento dos objetos gerados por elacomportamento dos objetos gerados por ela
Todo objeto é uma instância de uma classeTodo objeto é uma instância de uma classe
ExemploExemploObjetosObjetos Funcionário Pedro Silva, CI 2819283399, Rua Funcionário Pedro Silva, CI 2819283399, Rua
Silva Só, 88 - Porto AlegreSilva Só, 88 - Porto Alegresalário R$ 1000,00salário R$ 1000,00
Funcionária Marta Andrade, CI 1234567891, Funcionária Marta Andrade, CI 1234567891, Rua Siqueira Campos, 29 - CarazinhoRua Siqueira Campos, 29 - Carazinhosalário R$ 600,00salário R$ 600,00
Classe FuncionárioClasse Funcionário Nome, CI, Endereco, SalárioNome, CI, Endereco, Salário
Leitura RecomendadaLeitura Recomendada
BECKER, L.B.; PEREIRA, C.E. BECKER, L.B.; PEREIRA, C.E. SIMOO-RT - An Object-SIMOO-RT - An Object-oriented Framework for the development of real-time oriented Framework for the development of real-time industrial automation systemsindustrial automation systems. Ieee Transactions On . Ieee Transactions On Robots Automation, v. 18, n. 4, p. 421-430, 2002. Robots Automation, v. 18, n. 4, p. 421-430, 2002.
KIM, Kane. KIM, Kane. APIs for real-time distributed object APIs for real-time distributed object programmingprogramming. IEEE Computer (special issue on OO RT . IEEE Computer (special issue on OO RT Distributed Computing), p. 72-80, June 2000.Distributed Computing), p. 72-80, June 2000.
Referências BibliográficasReferências Bibliográficas
Rumbaugh, J. et al. “Rumbaugh, J. et al. “Modelagem e Modelagem e Projetos Baseados em ObjetosProjetos Baseados em Objetos“. Ed. “. Ed. Campus, 1994.Campus, 1994.