1 / 26

Frameworks - Introdução

Frameworks - Introdução. Professor: Hyggo Almeida. O que vimos na última aula ?. Pool de Threads. O que veremos hoje ?. Frameworks - Introdução. Reuso, reuso, reuso. Objetivo sempre: reutilizar c ódigo Reutilizar classes R eutilizar bibliotecas Collections , IO, ...

xerxes
Download Presentation

Frameworks - Introdução

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Frameworks - Introdução Professor: Hyggo Almeida

  2. O que vimos na última aula? • Pool de Threads Frameworks - Introdução

  3. O que veremos hoje? • Frameworks - Introdução Frameworks - Introdução

  4. Reuso, reuso, reuso • Objetivo sempre: reutilizar código • Reutilizar classes • Reutilizar bibliotecas • Collections, IO, ... Vamos um passo além

  5. 3 Aplicações “Calculadora” Científica Simples Financeira Frameworks - Introdução

  6. Motivação • Grande parte do esforço de desenvolvimento de software se origina da (Re) descoberta e (Re) invenção de conceitos do núcleo das aplicações • Dentro de um mesmo domínio de aplicação, estes conceitos se repetem (ou são similares) • Por que não criar um modelo único de projeto e implementação para um domínio que possa ser reutilizado em várias aplicações? Frameworks - Introdução

  7. Arcabouço/Framework • 1esqueleto, armação dos ossos do corpohumanoou de qualquer animal 2ossatura do tórax, arca do peito3delineamentoinicial; esboço, madeirameEx.: a. de umapintura, de um romance 4estrutura (de madeira, ferro etc.) de umaconstrução5armação de umamáquina; carcaça

  8. Definição Um framework é uma aplicação “semi-completa”, reutilizável, que pode ser especializada para produzir aplicaçõespersonalizadas Frameworks - Introdução

  9. Conceito • Identificam-se similaridades entre aplicações e cria-se um núcleo invariante com ganchos para extensão Núcleo UI BD Relatório Rede Frozen spots Hot Spots Frameworks - Introdução

  10. Exemplo • Frozen spots Botões janela Barra Menu “Visor” Botões desfazer e limpar Botões de operações básicas Botões numéricos Total Frameworks - Introdução

  11. Exemplo • Hot spots Ganchos para novas funcionalidades Frameworks - Introdução

  12. Benefícios • Os principais benefícios de frameworks de aplicação são: • Modularidade • Reusabilidade • Extensibilidade • Inversão de controle Frameworks - Introdução

  13. Benefícios: Modularidade • Encapsulam comportamentos “voláteis” atrás de interfaces bem definidas • Potencializam a qualidade de software através da localização explícita de mudanças nos aplicativos Frameworks - Introdução

  14. Benefícios: Reusabilidade • Interfaces estáveis permitem definir componentes genéricos que podem ser reutilizados em diversas aplicações • Com a maturidade dos componentes, tem-se: • Qualidade • Desempenho • Confiança no funcionamento Frameworks - Introdução

  15. Benefícios: Extensibilidade • Métodos gancho permitem estender o próprio framework • Adaptações para construir novos tipos de aplicações • Os ganchos permitem personalizar as aplicações para propósitos específicos, sem alterar a estabilidade do núcleo do framework Frameworks - Introdução

  16. Benefícios: Inversão de Controle • A arquitetura “executável” do framework é caracterizada pela inversão de controle • Isto permite que interfaces definam comportamentos específicos ativados como objetos de manipulação de eventos, que são invocados pelo mecanismo de disparo de eventos e ações do framework • Princípio de Hollywood Frameworks - Introdução

  17. Tipos de Framework: Perspectiva de Reúso • White Box (Caixa Branca) • Baseado principalmente em herança e ligação dinâmica • Realizando herança de classes fundamentais • Sobrescrevendo métodos gancho pré-definidos • Requer conhecimento do código do framework • Permitindo assim estendê-lo sem prejuízo ao núcleo Frameworks - Introdução

  18. Tipos de Framework: Perspectiva de Reúso • Black Box (Caixa Preta) • Baseado na definição de interfaces para componentes que podem ser “plugados” ao framework via composição de objetos • Componentes que respeitam determinada interface (contrato) • Componentes integrados ao framework • Requer apenas conhecimento da interface de composição do framework • Pois o núcleo mantém-se inalterado Frameworks - Introdução

  19. Tipos de Framework: Perspectiva de Reúso • Grey Box (Caixa Cinza) • Mescla reúso caixa branca com reúso caixa preta • Em geral e mais desejável: • Caixa branca para extensão do framework • Caixa preta para criação de aplicações Frameworks - Introdução

  20. Exemplos • Web: GWT, Struts, Spring, etc... • Mobile: Qt, Cocoa, ... • UI: SWT, Swing • Testes: JUnit, xUnit • Log: Log4J, Java Logging Framework • Persistência: Hibernate, Castor, ... • De domínio de aplicação: JHotDraw, Opt4J Frameworks - Introdução

  21. Processo de Desenvolvimento • Identificar similaridades entre aplicações • De fato, o primeiro passo é a delimitação do domínio... • ... mas isso depende do caso: • às vezes um domínio tem aplicações bem diferentes • e em outros casos, aplicações aparentemente de domínios diferentes podem gerar a necessidade de um framework no nível de: • Plataforma • Tecnologia • Sistema Operacional Frameworks - Introdução

  22. Processo de Desenvolvimento • Identificar similaridades entre aplicações • Esta fase funciona melhor se a equipe de desenvolvimento tiver desenvolvido várias aplicações similares • Mais fácil de identificar hot/frozen spots • Porém é possível também “observar o que existe no mundo” • Deve-se ter cuidado para não tornar o framework mais complexo do que necessário para a sua necessidade Frameworks - Introdução

  23. Processo de Desenvolvimento 2. Definir núcleo invariante (Frozen Spots) • O que não depende de aplicações específicas? 3. Definir ganchos para parte variante (Hot spots) • O que é específico das aplicações? 4. Qual o tipo de reúso? • Quais os ganchos de reutilização? • Quais os ganchos de extensão do framework 5. Projeto, implementação e testes 6. Distribuição Frameworks - Introdução

  24. O que vimos hoje? • Frameworks - Introdução Frameworks - Introdução

  25. O que veremos na próxima aula? • Frameworks - Projeto Frameworks - Introdução

  26. Dúvidas? ? Frameworks - Introdução

More Related