26
Frameworks - Introdução Professor: Hyggo Almeida

Frameworks - Introdução

  • Upload
    xerxes

  • View
    43

  • Download
    0

Embed Size (px)

DESCRIPTION

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, ... - PowerPoint PPT Presentation

Citation preview

Page 1: Frameworks - Introdução

Frameworks - IntroduçãoProfessor: Hyggo Almeida

Page 2: Frameworks - Introdução

O que vimos na última aula?

Pool de Threads

2Frameworks - Introdução

Page 3: Frameworks - Introdução

O que veremos hoje?

Frameworks - Introdução

3Frameworks - Introdução

Page 4: Frameworks - Introdução

Reuso, reuso, reuso

Objetivo sempre: reutilizar código

Reutilizar classes

Reutilizar bibliotecas Collections, IO, ...

Vamos um passo além

Page 5: Frameworks - Introdução

3 Aplicações “Calculadora”

5Frameworks - Introdução

Simples

Científica

Financeira

Page 6: Frameworks - Introdução

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?

6Frameworks - Introdução

Page 7: Frameworks - Introdução

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

Page 8: Frameworks - Introdução

Definição

Um framework é uma aplicação “semi-completa”, reutilizável, que pode

ser especializada para produzir aplicações personalizadas

8Frameworks - Introdução

Page 9: Frameworks - Introdução

Conceito

Identificam-se similaridades entre aplicações e cria-se um núcleo invariante com ganchos para extensão

9Frameworks - Introdução

NúcleoUI

Relatório

BD

Rede

Frozen spots

Hot Spots

Page 10: Frameworks - Introdução

Exemplo

Frozen spots

10Frameworks - Introdução

Barra Menu

Botões janela

“Visor”

Botões desfazer e limpar

Botões numéricos

Total

Botões de operaçõesbásicas

Page 11: Frameworks - Introdução

Exemplo

Hot spots

11Frameworks - Introdução

Ganchos para novasfuncionalidades

Page 12: Frameworks - Introdução

Benefícios

Os principais benefícios de frameworks de aplicação são: Modularidade Reusabilidade Extensibilidade Inversão de controle

12Frameworks - Introdução

Page 13: Frameworks - Introdução

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

13Frameworks - Introdução

Page 14: Frameworks - Introdução

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 14

Frameworks - Introdução

Page 15: Frameworks - Introdução

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 15

Frameworks - Introdução

Page 16: Frameworks - Introdução

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 16

Frameworks - Introdução

Page 17: Frameworks - Introdução

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

17Frameworks - Introdução

Page 18: Frameworks - Introdução

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

18Frameworks - Introdução

Page 19: Frameworks - Introdução

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

19Frameworks - Introdução

Page 20: Frameworks - Introdução

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

Frameworks - Introdução

Page 21: Frameworks - Introdução

Processo de Desenvolvimento

1. 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 21

Frameworks - Introdução

Page 22: Frameworks - Introdução

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

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

22Frameworks - Introdução

Page 23: Frameworks - Introdução

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ção23

Frameworks - Introdução

Page 24: Frameworks - Introdução

O que vimos hoje?

Frameworks - Introdução

24Frameworks - Introdução

Page 25: Frameworks - Introdução

O que veremos na próxima aula?

Frameworks - Projeto

25Frameworks - Introdução

Page 26: Frameworks - Introdução

Dúvidas?

?26Frameworks - Introdução