Carregar apresentação
A apresentação está carregando. Por favor, espere
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
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.