A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Frameworks - Introdução Professor: Hyggo Almeida.

Apresentações semelhantes


Apresentação em tema: "Frameworks - Introdução Professor: Hyggo Almeida."— Transcrição da apresentação:

1 Frameworks - Introdução Professor: Hyggo Almeida

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

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

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

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

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? 6 Frameworks - Introdução

7 Arcabouço/Framework 1 esqueleto, armação dos ossos do corpo humano ou de qualquer animal 2 ossatura do tórax, arca do peito 3 delineamento inicial; esboço, madeirame Ex.: a. de uma pintura, de um romance 4 estrutura (de madeira, ferro etc.) de uma construção 5 armação de uma máquina; carcaça 1 esqueleto, armação dos ossos do corpo humano ou de qualquer animal 2 ossatura do tórax, arca do peito 3 delineamento inicial; esboço, madeirame Ex.: a. de uma pintura, de um romance 4 estrutura (de madeira, ferro etc.) de uma construção 5 armação de uma máquina; carcaça

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

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

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

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

12 Benefícios Os principais benefícios de frameworks de aplicação são: Modularidade Modularidade Reusabilidade Reusabilidade Extensibilidade Extensibilidade Inversão de controle Inversão de controle 12 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 13 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 Qualidade Desempenho Desempenho Confiança no funcionamento Confiança no funcionamento 14 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 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 15 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 Princípio de Hollywood 16 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 Baseado principalmente em herança e ligação dinâmica Realizando herança de classes fundamentais Realizando herança de classes fundamentais Sobrescrevendo métodos gancho pré-definidos Sobrescrevendo métodos gancho pré-definidos Requer conhecimento do código do framework Requer conhecimento do código do framework Permitindo assim estendê-lo sem prejuízo ao núcleo Permitindo assim estendê-lo sem prejuízo ao núcleo 17 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 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 que respeitam determinada interface (contrato) Componentes integrados ao framework Componentes integrados ao framework Requer apenas conhecimento da interface de composição do framework Requer apenas conhecimento da interface de composição do framework Pois o núcleo mantém-se inalterado Pois o núcleo mantém-se inalterado 18 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 Mescla reúso caixa branca com reúso caixa preta Em geral e mais desejável: Em geral e mais desejável: Caixa branca para extensão do framework Caixa branca para extensão do framework Caixa preta para criação de aplicações Caixa preta para criação de aplicações 19 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 20 Frameworks - Introdução

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

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

23 Processo de Desenvolvimento 2. Definir núcleo invariante (Frozen Spots) O que não depende de aplicações específicas? 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? O que é específico das aplicações? 4. Qual o tipo de reúso? Quais os ganchos de reutilização? Quais os ganchos de reutilização? Quais os ganchos de extensão do framework Quais os ganchos de extensão do framework 5. Projeto, implementação e testes 6. Distribuição 23 Frameworks - Introdução

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

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

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


Carregar ppt "Frameworks - Introdução Professor: Hyggo Almeida."

Apresentações semelhantes


Anúncios Google