Your SlideShare is downloading. ×
Arquitetura de software e Frameworks
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Arquitetura de software e Frameworks

798
views

Published on

Published in: Education

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
798
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
21
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Frameworksorientados a objetos Por Sergio Crespo
  • 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 hot­spot KernelFramework © 2010  Prof. D.Sc. Sérgio Crespo      email:crespo@unisinos.br
  • 4. hot­spot hot­spotFramework © 2010  Prof. D.Sc. Sérgio Crespo      email:crespo@unisinos.br
  • 5. Framework hot­spots © 2010  Prof. D.Sc. Sérgio Crespo      email:crespo@unisinos.br
  • 6. Input_Data Sort_Data GetData(…) Sort_Proc(… hot­spot 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  2processo de desenvolvimento ................ Aplicação  n Desenvolvimento  de  aplicações  baseado  em  frameworksO processo de desenvolvimento de um framework é mais difícil e trabalhoso, já que estuda­se agora soluções para um conjunto de problemas de um determinado domínio. Na análise do domínio, observa­se as caracteristicas comuns das diversas aplicações.Desenvolve­se 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. FrameworksDiretrizes de desenvolvimentoExiste 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. FrameworksDiretrizes 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. FrameworksDocumentação deFrameworks Público X Documentação Propósito do  Aplicações de  Como Utilizar Framework ExemploDecisão de  X ­ ­ Uso Utilização X X XManutenção X X X © 2010  Prof. D.Sc. Sérgio Crespo      email:crespo@unisinos.br
  • 18. Frameworks - exemplos ET++ UniDraw HotDraw© 2010  Prof. D.Sc. Sérgio Crespo      email:crespo@unisinos.br
  • 19. ET++ FrameworkET++: A Portable Application Framework André Weinand Erich GammaET++ 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
  • 20. Arquitetura © 2010  Prof. D.Sc. Sérgio Crespo      email:crespo@unisinos.br
  • 21. exemplo1© 2010  Prof. D.Sc. Sérgio Crespo      email:crespo@unisinos.br
  • 22. exemplo2© 2010  Prof. D.Sc. Sérgio Crespo      email:crespo@unisinos.br
  • 23. exemplo3© 2010  Prof. D.Sc. Sérgio Crespo      email:crespo@unisinos.br
  • 24. Unidraw Framework  Unidraw: a framework for building  domain­specific graphical editors John Vlissides / IBMUnidraw é 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 stand­alone 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
  • 28. UniDraw Framework © 2010  Prof. D.Sc. Sérgio Crespo      email:crespo@unisinos.br
  • 29. Unidraw – exemplo 1© 2010  Prof. D.Sc. Sérgio Crespo      email:crespo@unisinos.br
  • 30. Unidraw – exemplo 2© 2010  Prof. D.Sc. Sérgio Crespo      email:crespo@unisinos.br
  • 31. Unidraw – exemplo 3© 2010  Prof. D.Sc. Sérgio Crespo      email:crespo@unisinos.br
  • 32. HotDraw Framework© 2010  Prof. D.Sc. Sérgio Crespo      email:crespo@unisinos.br
  • 33. HotDraw Framework       HotDraw is a two-dimensional graphics frameworkfor structured drawing editors that is written inVisualWorks Smalltalk. It has been used to create manydifferent editors from CASE tools to a HyperCard clone. You caneasily create new figures and special manipulation tools foryour drawings. Unlike many other drawing editors, HotDrawdrawings can be animated.http://st-www.cs.uiuc.edu/users/brant/HotDraw/ © 2010  Prof. D.Sc. Sérgio Crespo      email:crespo@unisinos.br
  • 34. HotDraw Framework© 2010  Prof. D.Sc. Sérgio Crespo      email:crespo@unisinos.br
  • 35. HotPaint - HotDrawThe HotPaint program is a simple painting program. This program shows how to create new figures, as well as, how to create new tools. © 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
  • 37. HotDrawThe MovingDrawing program is a simple animated program. You can draw rectangles. The rectangles move closer to each other until they come together in some central location. This program can be useful to learn how to animate drawings. © 2010  Prof. D.Sc. Sérgio Crespo      email:crespo@unisinos.br
  • 38. HotDrawThe NetworkEditor program uses animation to solve the n­body problem. You specify the nodes and the weights between the nodes in the bottom part of the window, and the top part displays the nodes. The editor also allows you to move the nodes if they reach a stable but un­optimal positioning. © 2010  Prof. D.Sc. Sérgio Crespo      email:crespo@unisinos.br
  • 39. ObjectWorld - HotDrawThe ObjectWorld program can be used for teaching some Smalltalk basics. You can draw figures in the bottom of the window, and animate them by entering Smalltalk commands in the top part of the window. © 2010  Prof. D.Sc. Sérgio Crespo      email:crespo@unisinos.br
  • 40. PERTChart - HotDrawThe PERTChart program allows you to create and edit PERT charts. You can create new PERT figures and specify their name and start date. Their ending date will be automatically computed. © 2010  Prof. D.Sc. Sérgio Crespo      email:crespo@unisinos.br