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

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

Frameworks - Introdução

Apresentações semelhantes


Apresentação em tema: "Frameworks - Introdução"— Transcrição da apresentação:

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 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 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


Carregar ppt "Frameworks - Introdução"

Apresentações semelhantes


Anúncios Google