Contenu connexe
Similaire à Frameworks OO
Similaire à Frameworks OO (20)
Plus de Sergio Crespo (8)
Frameworks OO
- 2. Frameworks
O que é um Framework???
“Um framework é um conjunto de classes que constitui
um design abstrato para soluções de uma família 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 aplicação ou um domínio
de um subsistema.” - Johnson -1991
“Uma arquitetura desenvolvida com o objetivo de se
obter a máxima reutilização, representada como um
conjunto de classes abstratas e concretas, com grande
potencial de especialização.” - Mattsson - 1996
© 2010 Prof. D.Sc. Sérgio Crespo email:crespo@unisinos.br
- 3. Frameworks
...
Particularização n
Particularização 2
Particularização 1
hotspot
Kernel
Framework
© 2010 Prof. D.Sc. Sérgio Crespo email:crespo@unisinos.br
- 4. hotspot hotspot
Framework
© 2010 Prof. D.Sc. Sérgio Crespo email:crespo@unisinos.br
- 5. Framework hotspots
© 2010 Prof. D.Sc. Sérgio Crespo email:crespo@unisinos.br
- 6. Input_Data Sort_Data
GetData(…) Sort_Proc(… hotspot
SetData(…) )
Show_Vect(…
)
Sort_Proc
--Bolha
--Quick-
sort
--etc...
© 2010 Prof. D.Sc. Sérgio Crespo email:crespo@unisinos.br
- 7. Frameworks
Framework vs outras abordagens
Design pattern orientado a objeto.
Linguagem de pattern.
Biblioteca de classes.
Uma aplicação orientada a objetos.
© 2010 Prof. D.Sc. Sérgio Crespo email:crespo@unisinos.br
- 8. Frameworks
Design Pattern orientado a objeto
Design patterns são mais abstratos do que um
framework.
Design patterns possuem uma arquitetura menor do
que um framework. Um framework pode conter
vários Patterns, no entanto o oposto não se aplica.
Frameworks são mais especializados do que
patterns. Frameworks estão sempre relacionados a
um domíno de aplicação, enquanto patterns são
mais genéricos e podem ser aplicados em vários
domínios de aplicação.
[Mattsson - 1996]
© 2010 Prof. D.Sc. Sérgio Crespo email:crespo@unisinos.br
- 9. Frameworks
Linguagem de pattern
Descreve como fazer um design, enquanto um
framework é o próprio design.
Complementam frameworks desde que ensinem
aos projetistas como utilizá-lo e a descrever
porque ele foi projetado desta maneira.
[Mattsson - 1996]
© 2010 Prof. D.Sc. Sérgio Crespo email:crespo@unisinos.br
- 10. Frameworks
Biblioteca de classes
São um conjunto de classes relacionadas que tem
funcionalidades de propósitos gerais
Suas classes não são relacionadas a um domínio
de aplicação específica, como no caso de classes
de um framework.
A diferença é o grau de reutilização e o seu
impacto na arquitetura da aplicação.
Uma classe da uma biblioteca é reutilizada
sozinha, enquanto uma classe de um framework é
reutilizada juntamente com as outras em uma
instanciação.
[Mattsson - 1996]
© 2010 Prof. D.Sc. Sérgio Crespo email:crespo@unisinos.br
- 11. Frameworks
Uma aplicação orientada a objeto
Descreve a execução um programa que atende a
todos os requisitos de uma especificação.
Um framework captura as funcionalidades de
diversas aplicações no domínio, mas não é
executável, já que não cobre o comportamento de
uma aplicação específica.
[Mattsson - 1996]
© 2010 Prof. D.Sc. Sérgio Crespo email:crespo@unisinos.br
- 12. Frameworks
Análise Design Aplicação
Desenvolvimento tradicional orientado a objetos
Análise do Framework
Aplicação 1
domínio design
Aplicação 2
processo de desenvolvimento ................
Aplicação n
Desenvolvimento de aplicações baseado em frameworks
O processo de desenvolvimento de um framework é mais difícil e trabalhoso, já
que estudase agora soluções para um conjunto de problemas de um
determinado domínio. Na análise do domínio, observase as caracteristicas
comuns das diversas aplicações.
Desenvolvese o framework e as diversas aplicações serão feitas a partir da
instanciação do framework.
© 2010 Prof. D.Sc. Sérgio Crespo email:crespo@unisinos.br
- 13. Frameworks
Caracterização quanto ao Uso Um framework
orientado a objetos pode ser usado de duas
formas:
Derivando se as classes do framework.
( architecture-driven ou inheritance-focused ou white box )
Combinado classes existentes.
( data-driven ou composition-focused ou black box ).
© 2010 Prof. D.Sc. Sérgio Crespo email:crespo@unisinos.br
- 14. Frameworks
Diretrizes de desenvolvimento
Existe um pequeno número de diretrizes para o desenvolvimento de
framework.
Uma das mais importantes que se deve ter em mente
quando se está desenvolvendo um framework é como
criar a interação entre o framework e o seu usuário, de
maneira que a sua instanciação seja feita sem muito
esforço.
O foco deverá estar em como o usuário interaje com o
framework. Quando o usuário for desenvolver uma
aplicação instanciando o framework, é necessário
determinar quais os passos que serão realizados pelo
framework e quais serão realizados pelo usuário.
© 2010 Prof. D.Sc. Sérgio Crespo email:crespo@unisinos.br
- 15. Frameworks
Diretrizes de desenvolvimento
É importante identificar quais as classes e operações
do framework que o usuário terá que utilizar. A
quantidade de código escrita deverá ser reduzida a
um mínimo, e isto é possível pelos seguintes
motivos:
Implementações concretas do framework que
poderão ser utilizadas sem nenhuma modificação.
O número de classes que devem ser derivadas
devem ser reduzidas ao menor número possível.
© 2010 Prof. D.Sc. Sérgio Crespo email:crespo@unisinos.br
- 16. Como instanciar um
framework
Formas de se instanciar um framework.
Conectando componentes já existentes
reutiliza a interface do framework
reutiliza regras para a conexão dos componentes
Criando novas sub-classes concretas
as sub-classes são bem acopladas a super-classe
é necessário ter um maior conhecimento das classes
abstratas
© 2010 Prof. D.Sc. Sérgio Crespo email:crespo@unisinos.br
- 17. Frameworks
Documentação de
Frameworks
Público X Documentação
Propósito do Aplicações de
Como Utilizar
Framework Exemplo
Decisão de
X
Uso
Utilização X X X
Manutenção X X X
© 2010 Prof. D.Sc. Sérgio Crespo email:crespo@unisinos.br
- 19. ET++ Framework
ET++: A Portable Application Framework
André Weinand
Erich Gamma
ET++ is a portable application framework, used to
make platform-independent GUI-based application
programs, at
The University of Illinois at Urbana-Champaign.
© 2010 Prof. D.Sc. Sérgio Crespo email:crespo@unisinos.br
- 24. Unidraw Framework
Unidraw: a framework for building
domainspecific graphical editors
John Vlissides / IBM
Unidraw é um framework C++ para a criação de
editores gráficos customizáveis que usa a bliblioteca
IterViews.
http://www.vectaport.com/pub/doc/unidraw.ps
© 2010 Prof. D.Sc. Sérgio Crespo email:crespo@unisinos.br
- 25. O que é o Unidraw
Unidraw é um framework para a criação de
editores gráficos orientados a objetos para domínios
como desenho técnico e artístico, composição de
músicas e design de circuitos eletrônicos.
A arquitetura Unidraw simplifica a
construção desses editores provendo níveis de
abstrações que são comuns aos vários domínios.
© 2010 Prof. D.Sc. Sérgio Crespo email:crespo@unisinos.br
- 26. Unidraw
O uso do framework Unidraw busca alcançar os
três pontos básicos a seguir :
Dá suporte a uma variedade de editores de objetos gráficos
para vários domínios;
Diminui significativamente o tempo para desenvolver um
editor específico comparado com uma implementação
especialista (voltada especificamente para um determinado
domínio);
Pode ser usado para criar editores standalone com
performance e utilidade comparáveis àqueles
desenvolvidos especificamente.
© 2010 Prof. D.Sc. Sérgio Crespo email:crespo@unisinos.br
- 27. Abstrações do Unidraw
Unidraw define quatro abstrações básicas :
Componentes (components) : encapsulam a aparência e
a semântica dos objetos de um domínio;
Ferramentas (tools) : provêm a manipulação direta dos
componentes;
Comandos (commands) : definem as operações dos
componentes e objetos;
Representação externa (external representation) : define
como será o arquivo de saída gerado pelo editor.
© 2010 Prof. D.Sc. Sérgio Crespo email:crespo@unisinos.br
- 33. HotDraw Framework
HotDraw is a two-dimensional graphics framework
for structured drawing editors that is written in
VisualWorks Smalltalk. It has been used to create many
different editors from CASE tools to a HyperCard clone. You can
easily create new figures and special manipulation tools for
your drawings. Unlike many other drawing editors, HotDraw
drawings can be animated.
http://st-www.cs.uiuc.edu/users/brant/HotDraw/
© 2010 Prof. D.Sc. Sérgio Crespo email:crespo@unisinos.br
- 36. Hotdraw
The DrawingInspector program is a visual inspector for
Smalltalk. Objects in Smalltalk are represented by figures, and
references between objects are represented by directed lines.
© 2010 Prof. D.Sc. Sérgio Crespo email:crespo@unisinos.br