340 likes | 446 Views
Introdu ção ao Paradigma de Orientação a Objetos. Prof. Leandro Buss Becker lbecker@das.usfsc.br. '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
E N D
Introdução ao Paradigma de Orientação a Objetos Prof. Leandro Buss Becker lbecker@das.usfsc.br
'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 fonte: AEG-Alemanha (1993) hardware 1993 1982
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 Arquitetura de um sistema de controle fabril Controle Interface Gráfica Sensores 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)
FILA insere remove Encapsulamento Implementação de umafila • Visão do cliente • Estado Interno • Vetor de tamanhoFixoEstáticoou • Vetor de tamanhoFixoAlocadodinâmicamenteou • 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 Os alunos são exemplares da classe Aluno, que por sua vez é utilizada para gerar novos alunos. Aluno Classificação Instanciação Alunos Alunos Alunos Alunos Alunos Alunos
Hierarquia: Generalização e Especialização • Generalizarsignifica remover restriçõesparaobterabstraçõesmaisgenéricas • Especializarsignificabuscarcaracterísticasquediferenciemabstraçõesafins 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 Decomposição Esteira Cortadora 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
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
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 e Objetos Mundo Real Ferrari IDN8810 veículo Marca Placa classe 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 Alegresalário R$ 1000,00 • Funcionária Marta Andrade, CI 1234567891, Rua Siqueira Campos, 29 - Carazinhosalá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.