Sei sulla pagina 1di 52

Frameworks

UNIPAR Universidade Paranaense


Desenv. Baseado em Padres de Proj. e Frameworks
Prof. Jemerson Fernando Maia
Toledo - Pr - 02/2014
Introduo
Um dos principais objetivos da
Engenharia de Software o reuso.
Aumenta qualidade;
Reduz esforos de desenvolvimento;
Reusar software no simples
Maioria dos esforos resultam apenas
a reutilizao de pequenos
componentes

2
Introduo
Em frameworks a reutilizao o foco
principal.
Possibilita que uma famlia de produtos
seja gerada a partir de uma nica
estrutura que captura os conceitos mais
gerais da famlia de aplicaes (Pinto,
2000).
3
Introduo
Principais vantagens do uso de
frameworks
Aumento do reuso
Diminuio do tempo para produo de
famlia de aplicaes
Framework prov reutilizao de
Design
Cdigo
Reuso em larga escala
4
Definies
Um framework um conjunto de classes que
constituem um design abstrato para solues de
uma famlia de problemas.
Johnson e Foote (1988)

Um framework um conjunto de objetos que
colaboram com o objetivo de cumprir um conjunto
de responsabilidades para uma aplicao ou um
domnio de um subsistema.
Johnson (1991)
5
Definies
Uma arquitetura desenvolvida com o objetivo de
se obter a mxima reutilizao, representada como
um conjunto de classes abstratas e concretas, com
grande potencial de especializao.
Mattsson (1996)
6
O que so Frameworks afinal
Frameworks so projetados com a
inteno de facilitar o desenvolvimento
de software;
uma tcnica da Orientao a Objetos,
voltada para a reutilizao e se beneficia
de:
abstrao, polimorfismo e herana.
Um framework descreve a arquitetura de
um sistema orientado a objetos.
7
O que so Frameworks afinal
Ele pode ser vislumbrado como o
esqueleto de uma aplicao que pode
ser customizado pelo programador. Com
frameworks no se busca apenas
reutilizar simples componentes de
software, mas subsistemas, aumentando
assim o grau de reutilizao.
8
Objetivos de um Framework
Elevar produtividade;
Reduzir despesas;
Reutilizao de cdigo;
Reutilizao da anlise;
Reduzir erros (bugs);
Desenvolvimento em larga escala
Conjuntos de aplicaes mais
homogneas
9
Caractersticas
Reusvel
Propsito final
Para ser reusvel, deve primeiro ser
usvel
Bem documentado
Fcil de usar
Extensvel
Framework contm funcionalidade
abstrata (sem implementao) que deve
ser completada
10
Caractersticas
Seguro
Desenvolvedor de aplicaes no pode
destruir o framework
Eficiente
Devido a seu uso em muitas situaes,
algumas das quais podero necessitar de
eficincia
11
Caractersticas
Inversion-of-Control (IoC)
Princpio de Hollywood: Dont call us, we
call you
Framework define o controle de fluxo
Inverso do controle de fluxo, comparativamente s
bibliotecas de classes
Framework comanda a resposta do sistema
aos eventos externos
Invocando operaes definidas pelo programador
12
Caractersticas
Inversion-of-Control (IoC)
13
Caractersticas
Inversion-of-Control (IoC)
14
Biblioteca de Classes





Snot
Foo
Bar
Framework





Snot
Foo
<<abstract>>
Bar
Ciente
usa
usa
CienteBar
CienteFoo
Propriedades
Ncleo do framework
Conjunto de classes que juntas
colaboram para implementar uma
arquitetura de famlia de sistemas
Pontos de extenso
Na forma de classes abstratas ou
interfaces
Controle de Fluxo da Aplicao
Fluxo definido pelo comportamento das
classes que representam o seu ncleo
Classes responsveis por invocar classes
que estendem os pontos de extenso
15
Propriedades
16
Ncleo
Pontos de Extenso
Propriedades
Hot Spots
Pontos de Flexibilizao
Partes passveis de customizao e
extenso
Expressam aspectos do domnio do
framework que no podem ser
antecipados
Descobertos na anlise do domnio
Posteriormente instanciados por especialistas
no domnio da aplicao
17
Propriedades
Frozen Spots
Partes fixas (ncleo)
Partes de cdigo j implementadas
Chamam um ou mais hot spots definidos em
cada instncia
18
Abstrao
Frameworks no so executveis
Servem para produzir uma aplicao
completa e executvel
Instanciando o framework implementando
cdigo especfico aplicao para cada
hot spot
19
Abstrao
20
Tcnicas de Customizao
Extenso de classes abstratas
Implementao de interfaces
Configurao/Composio de classes existentes
Parametrizao
21
Tcnicas de Customizao
22
Customizao por Herana:
Implementao dos Mtodos Abstratos
Tcnicas de Customizao
23
Classificao (escopo)
Frameworks da Infra-estrutura de
Sistema
Do suporte ao desenvolvimento das infra-
estruturas de sistemas como
Comunicaes
Interfaces com usurio
Compiladores
Frameworks de Integrao com
Middleware
Padres e classes que do suporte
comunicao de componentes e a troca de
informao
24
Classificao (escopo)
Frameworks de Aplicaes
Corporativas
Suportam o desenvolvimento de tipos
especficos de aplicao como
telecomunicaes ou sistemas financeiros
Relacionados com Famlia de Programas
25
Classificao (tcnica de
extenso )
Alm da classificao por escopo,
so classificados quanto a tcnica de
extenso dos hot spots :
Frameworks caixa branca, ou white
box;
Frameworks caixa preta, ou black box;
Frameworks caixa cinza, ou gray box;
26
Frameworks caixa branca
White Box
Fortemente ligado s caractersticas das
linguagens OO
Herana e Classes Abstratas
Instanciao atravs da criao de novas
classes
Utilizao de herana e de implementao de
mtodos
Requer bom entendimento do framework
para criar uma instncia
Padres de projeto tipicamente usados
Template Method e Abstract Factory
27
Frameworks caixa preta
Black Box
Instanciados a partir de scripts ou de algum
tipo de configurao
XML
Wizard Grfico
Fundamenta-se no mecanismo de
composio
No requer entendimento de detalhes
internos para produzir uma instncia
O Black Box utiliza o padro Strategy onde o
instanciador passa um objeto que definir o
funcionamento do framework.
28
29
Frameworks caixa preta e caixa
branca
Frameworks caixa cinza
A grande maioria dos frameworks no so
nem White Box, nem Black Box, mas Gray
Box, uma mistura de ambos.
Normalmente um framework inicia como
White Box por causa dos custos menores e
ento com sua evoluo envolve-se com
Black Box.
Frameworks Gray Box possuem as
caractersticas conjuntas dos frameworks
caixa branca e preta, de forma a tentar
evitar as desvantagens dos dois.

30
Frameworks caixa cinza
Tipo varia de acordo com a abordagem
utilizada para a implementao dos Hot
Spots
31
Por Herana
Por Composio
Gray-Box White-Box Black-Box
Frameworks X Aplicaes
Orientado a Objetos
32
Aplicao orientada a objetos:
um programa completo
executvel.
no geram famlias de frameworks
Framework:
aplicaes incompletas
no executveis.
geram famlias de aplicaes
Frameworks X Biblioteca de
Classes
33
Bibliotecas
Conjunto de classes relacionadas
Funcionalidades de propsito geral
Classes no relacionadas a um domnio de aplicao
especfica
Em contrapartida s classes de um framework
Diferena
Grau de reutilizao
Impacto na arquitetura da aplicao
Classe de uma biblioteca
Reutilizada sozinha
Classe de um framework
Reutilizada juntamente com as outras em uma
instanciao

Frameworks X Biblioteca de
Classes
34
Classes instanciadas pelo cliente
Cliente chama funes
No tem fluxo de controle pr-definido
No tem interao pr-definida
No tem comportamento default
Customizao com subclasse ou
composio
Chama funes da aplicao
Controla o fluxo de execuo
Define interao entre objetos
Prov comportamento default
Frameworks X Padres de
Projetos
Aparentemente, ambos consistem de classes,
interfaces e colaboraes prontas
Diferenas
Design patterns mais abstratos do que frameworks
Framework inclui cdigo, design pattern no (apenas exemplo do uso de
pattern)
Devido presena de cdigo, framework pode ser estudado a nvel de
cdigo, executado, e reusado diretamente
Design patterns elementos arquiteturais menores do que
frameworks
Framework tpico contm vrios design patterns mas o contrrio nunca
ocorre
Exemplo: Design patterns so frequentemente usados para documentar
frameworks
Design patterns menos especializados do que frameworks
Frameworks sempre tm um domnio de aplicao particular enquanto
design patterns no ditam uma arquitetura de aplicao particular

35
Frameworks X Padres de
Projetos
36
Documentao de
Frameworks
Documentao do framework
indispensvel;
Tarefas mais importantes e essenciais
principalmente para frameworks de
aplicao;
A falta dessa documentao pode
aumentar a curva de aprendizado;
Necessria para toda a vida do
framework;
a ferramenta principal para os
desenvolvedores entenderem o
framework;
37
Desenvolvimento de Framework
Desenvolvimento tradicional orientado a objetos
Anlise da
Aplicao
Design Aplicao
Desenvolvimento de aplicaes baseado em frameworks
Anlise do
Domnio
Design do
Framework
Aplicao 1
Aplicao 2
Aplicao n
...
38
Processo de desenvolvimento de
um framework
O processo de desenvolvimento
utilizando framework consiste em
desenvolver o framework (projetista);
Responsvel pela estrutura bsica
Determina pontos de extenso
desenvolver uma aplicao com esse
framework (desenvolvedor) ;
Satisfaz pontos de extenso
Instncia o framework
realizar manuteno ao framework
(manetedor) ;
Redefinir e acrescentar novas funcionalidades
39
Processo de desenvolvimento
Caso Geral
Anlise do Domnio
do Problema
Testar o Framework
desenvolvendo Aplicao
Desenvolvimento
do Framework
1. Usar
2. Erros e
Experincia
3. Atividade de manuteno
usando a experincia
40
Processo de desenvolvimento
Baseado na Experincia
Desenvolvimento
da Aplicao
Desenvolvimento
do Framework
1. Elementos em Comum
2. Experincia
Inicio do desenvolvimento
de n aplicaes
1. Re-desenvolver as n aplicaes
usando o Framework
2. Desenvolver as aplicaes
n+1,n+2, ... usando o Framework
Atividade de manuteno
usando a experincia
41
Processo de desenvolvimento
Baseado na Anlise de Domnio
Anlise do
Domnio
Desenvolvimento
da Aplicao
Desenvolvimento
do Framework
1. Identificar abstraes e
elementos em comum
2. Usar 3. Experincia
4. Atividade de manuteno
usando a experincia
42
43
Exemplo 1 - Agenda
Servio de agenda eletrnica para a WWW
Servio possui com as seguintes facilidades:
cadastro do usurio
registro em eventos da agenda
tarefas, compromissos, aniversrios e programas de TV
(disponibilizados futuramente).
eventos registrados podem possuir alarmes para lembrar
ao usurio da sua ocorrncia
alarmes
meios de comunicao
Hotspots
Canais de comunicao
Tipos de eventos
Exemplo 1 - Agenda
Hot Spots
44
Exemplo 1 - Agenda
45
Vantagens
Com o framework pronto, benefcios
Reduo de custos
Reduo de time-to-market
Motivos
Maximizao de re-uso (anlise, design,
cdigo, testes)
Reutilizao de design feito por outros pode
transferir conhecimento e experincia para o
usurio do framework

46
Vantagens
Desenvolvedores adicionam valor em vez
de reinventar a roda
Menos manuteno
Fatorao de aspectos comuns a vrias
aplicaes
Melhora do cdigo (menos defeitos)
devido ao uso em vrias aplicaes
47
Vantagens
Outras vantagens
Diminuio de linhas de cdigo na
aplicao
Melhor consistncia e compatibilidade
entre aplicaes
Conhecimento sobre o domnio da
aplicao mantido dentro da
organizao
48
Desvantagens
Construir um framework complexo
Re-uso no vem sozinho: deve ser
planejado
mais complexo e demora mais fazer
uma aplicao tendo que construir um
framework em vez de fazer a aplicao
do zero
Documentao essencial para o
usurio (desenvolvedor) poder utilizar
o framework
49
Desvantagens
Dificuldade para manter
compatibilidade com verses
anteriores
Frameworks se tornam mais maduros
com o passar do tempo e as aplicaes
devem evoluir em paralelo
Flexibilidade e generalizao do
framework podem trabalhar contra
sua eficincia em algumas aplicaes
50
Concluso
Os frameworks so ferramentas de
desenvolvimento que visam a reduo
de custos, tempo e outros recursos
em um projeto.
Mesmo tendo tantas vantagens o
apoio utilizao de framework no
unnime.
A utilizao dessa ferramenta pode
ser muito til como tambm pode ser
um empecilho por outro lado.
51
Atividade
Criar uma aplicao que realize trs
operaes:
Some dois valores inteiros
Calcule a rea de uma circunferncia:
PI(3,1416) * Raio
Calcule o juros simples mensal:
juros = capital * % juros/ms * tempo

Dever apresentar informaes da operao (descrio),
solicitar para o usurio informar os valores e apresentar o
resultado.
52

Potrebbero piacerti anche