Por Que Orientação a Objetos? Prof. Marcel Hugo Ciências da Computação – Bacharelado FURB
Agenda 1. Cenário 2. Reutilização 3. Orientação a Objetos 4. Conclusões
Software Está Ficando Mais Complexo fonte: Communications of the ACM % de Funções de Sistema no Hardware 20 40 60 80 100 1960 1970 1980 1990
Custos Custos de desenvolvimento são muitos altos Elevam-se os custos de manutenção: década de 70 e 80: 60 - 65 % dos custos totais atualmente: 70 - 80 % dos custos totais
Flexibilidade frente a mudanças Mudanças nos processos de negócio do usuário: década de 40: 10 anos década de 60-70: 5 anos década de 90: 2 anos século 21: 6 meses
Onde está o Nirvana ? Não se sabe ! Porém a reutilização é peça chave para aumento da produtividade e melhoria da qualidade.
2. Reutilização Usar novamente algo que foi feito. Em hardware: projetar baseado em componentes; integrar componentes; desenvolver novos quando necessário. Em software: código (rotinas); ???
Objetivos da Reutilização Permitir uma ampla utilização de todos os tipos de informação encontradas na situação de desenvolvimento. Exemplo: requisitos especificação código testes ou seja, todas as atividades.
Benefícios da reutilização Menor produção de software novo: aumento de produtividade ganho de qualidade ganho de confiabilidade conhecimento adquirido pode ser compartilhado
Casos práticos Níveis de reusabilidade elevam a produtividade
Várias técnicas para reutilização Repositórios (meio de armazenamento) Análise de domínio Engenharia reversa Orientação a objetos ...
3. Orientação a Objetos (OO) Tecnologia que enxerga os sistemas como sendo coleção de objetos interagentes. Novo paradigma de desenvolvimento Envolve todas as atividades de desenvolvimento: análise , projeto , programação , testes, ...
Fundamento da OO Na compreensão do mundo, os seres humanos utilizam-se de três métodos de organização dos pensamentos: Diferenciação; Distinção entre todo e parte; Classificação.
Diminui a diferença semântica Real Carro Árvore João Casa Modelo dirige Carro mora na Árvore Casa João
Benefícios de Modelagem OO Modelos que casam com a forma de seus negócios; Gerenciamento simplificado, através da quebra das aplicações em unidades menores e mais bem definidas; Maximiza a reutilização de código (Herança e Polimorfismo); Habilidade de tirar vantagem de padrões de componentes para conexão entre plataformas, utilizando serviços padrão; Componentes comerciais (disponíveis no mercado).
Métodos Reduzem a Complexidade e o Risco de Utilizar OO “With C++, it’s harder to shoot yourself in the foot... but when you do, you blow off your whole leg.” Bjarne Stroustrup, criador da linguagem C++ “Object orientation is not a panacea but a high power tool - dangerous if misused but capable of great things.” Object Interest Group
4. Conclusões Como todo paradigma, necessita de mudança cultural. Tecnologia poderosa, porém deve ser adotada de forma consciente. Deixou de ser moda e tendência tecnológica para ser realidade.
Agradecimentos Valter Medina - TechMark