Frameworks e Componentes Daniel Fernando Pavelec.
-
Upload
luiz-gustavo-domingos-benke -
Category
Documents
-
view
221 -
download
0
Transcript of Frameworks e Componentes Daniel Fernando Pavelec.
![Page 1: Frameworks e Componentes Daniel Fernando Pavelec.](https://reader035.fdocumentos.tips/reader035/viewer/2022062306/5706384d1a28abb8238f6a6b/html5/thumbnails/1.jpg)
Frameworks e Componentes
Daniel Fernando Pavelec
![Page 2: Frameworks e Componentes Daniel Fernando Pavelec.](https://reader035.fdocumentos.tips/reader035/viewer/2022062306/5706384d1a28abb8238f6a6b/html5/thumbnails/2.jpg)
Motivação Reuso
Orientação a objetos
Diminuição do tempo para produzir uma aplicação
![Page 3: Frameworks e Componentes Daniel Fernando Pavelec.](https://reader035.fdocumentos.tips/reader035/viewer/2022062306/5706384d1a28abb8238f6a6b/html5/thumbnails/3.jpg)
Componentes “Um componente de software é um empacotamento físico de software executável com uma interface pública bem definida.” (Jon Hopkins)
“Um pacote coerente de artefatos de software que podem ser independentemente desenvolvidos e entregues como uma unidade e que pode ser composto, sem modificação, com outros componentes para construir algo maior”. (D´Souza e Wills)
![Page 4: Frameworks e Componentes Daniel Fernando Pavelec.](https://reader035.fdocumentos.tips/reader035/viewer/2022062306/5706384d1a28abb8238f6a6b/html5/thumbnails/4.jpg)
Framework – O que é ? Técnicas de Reuso e “Componentização”
Design e Código
Representação física
Fluxo de Controle -> Domínio
Adaptáveis (Hot Spots)
![Page 5: Frameworks e Componentes Daniel Fernando Pavelec.](https://reader035.fdocumentos.tips/reader035/viewer/2022062306/5706384d1a28abb8238f6a6b/html5/thumbnails/5.jpg)
Algumas definições “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
![Page 6: Frameworks e Componentes Daniel Fernando Pavelec.](https://reader035.fdocumentos.tips/reader035/viewer/2022062306/5706384d1a28abb8238f6a6b/html5/thumbnails/6.jpg)
Biblioteca
Comum
Framework
![Page 7: Frameworks e Componentes Daniel Fernando Pavelec.](https://reader035.fdocumentos.tips/reader035/viewer/2022062306/5706384d1a28abb8238f6a6b/html5/thumbnails/7.jpg)
Objetivo Manter o conhecimento
Código menor
Otimizar generalização e a especialização
![Page 8: Frameworks e Componentes Daniel Fernando Pavelec.](https://reader035.fdocumentos.tips/reader035/viewer/2022062306/5706384d1a28abb8238f6a6b/html5/thumbnails/8.jpg)
Benefícios Modularidade
Reuso
Extensibilidade
![Page 9: Frameworks e Componentes Daniel Fernando Pavelec.](https://reader035.fdocumentos.tips/reader035/viewer/2022062306/5706384d1a28abb8238f6a6b/html5/thumbnails/9.jpg)
Classificação - Extensão Whitebox
Blackbox
Graybox
![Page 10: Frameworks e Componentes Daniel Fernando Pavelec.](https://reader035.fdocumentos.tips/reader035/viewer/2022062306/5706384d1a28abb8238f6a6b/html5/thumbnails/10.jpg)
Diminuição de linhas de código na aplicação O código do framework já está escrito e depurado Frameworks oferecem reutilização de código e design Maior foco na área específica e menor foco na parte de compatibilidade do sistema Facilidade na manutenção da aplicação Pouco esforço de desenvolvimento da aplicação Integração Eficiência
Vantagens
![Page 11: Frameworks e Componentes Daniel Fernando Pavelec.](https://reader035.fdocumentos.tips/reader035/viewer/2022062306/5706384d1a28abb8238f6a6b/html5/thumbnails/11.jpg)
Desvantagens Dificuldade para se desenvolver bons frameworks A qualidade da documentação é essencial para o
usuário (desenvolvedor) Maturidade do Framework vs. Compatibilidade Depuração complicado A flexibilidade e a generalização do framework
podem afetar a eficiência em algumas aplicações Curva de aprendizagem Pouca padronização Manutenção do framework
![Page 12: Frameworks e Componentes Daniel Fernando Pavelec.](https://reader035.fdocumentos.tips/reader035/viewer/2022062306/5706384d1a28abb8238f6a6b/html5/thumbnails/12.jpg)
Framework vs. Patterns Design patterns são mais abstratos do que
um framework Frameworks são mais especializados do
que patterns. Design patterns possuem uma arquitetura
menor do que um framework. Pattern descreve como fazer um design,
enquanto um framework é o próprio design Patterns complementam frameworks
![Page 13: Frameworks e Componentes Daniel Fernando Pavelec.](https://reader035.fdocumentos.tips/reader035/viewer/2022062306/5706384d1a28abb8238f6a6b/html5/thumbnails/13.jpg)
Processo de desenvolvimento Processo baseado na experiência
Processo baseado na análise do domínio
Processo utilizando design patterns
![Page 14: Frameworks e Componentes Daniel Fernando Pavelec.](https://reader035.fdocumentos.tips/reader035/viewer/2022062306/5706384d1a28abb8238f6a6b/html5/thumbnails/14.jpg)
Diretrizes de desenvolvimento O foco deve ser como o usuário interage
com o framework.
É importante identificar quais as classes e operações do framework o usuário terá que utilizar
A quantidade de código escrita deverá ser reduzida a um mínimo
![Page 15: Frameworks e Componentes Daniel Fernando Pavelec.](https://reader035.fdocumentos.tips/reader035/viewer/2022062306/5706384d1a28abb8238f6a6b/html5/thumbnails/15.jpg)
Documentação Documentação Adaptativa:
Os que decidem qual framework utilizar.
Os que já decidiram usar o framework
Os que desejam realizar algum tipo de manutenção no framework
![Page 16: Frameworks e Componentes Daniel Fernando Pavelec.](https://reader035.fdocumentos.tips/reader035/viewer/2022062306/5706384d1a28abb8238f6a6b/html5/thumbnails/16.jpg)
Documentação Propósito do framework
Como usar os fundamentos do framework
Propósito das aplicações: exemplos
Design do framework
![Page 17: Frameworks e Componentes Daniel Fernando Pavelec.](https://reader035.fdocumentos.tips/reader035/viewer/2022062306/5706384d1a28abb8238f6a6b/html5/thumbnails/17.jpg)
Exemplo Agenda Eletrônica Enunciado:
O sistema de agenda pode ter vários usuários Os usuários selecionam o tipo de evento para o qual
ele deseja ser alarmado Ao selecionar um evento o usuário escolhe o
alarme(data e hora) que deseja e como ele deve ser avisado
O usuário é avisado através dos canais de comunicação do sistema com o usuário
Ex. de evento: tarefa, aniversário Ex. de canal: celular, email
![Page 18: Frameworks e Componentes Daniel Fernando Pavelec.](https://reader035.fdocumentos.tips/reader035/viewer/2022062306/5706384d1a28abb8238f6a6b/html5/thumbnails/18.jpg)
Aniversárioaniversariante
Tarefadescricao
Emailendereco
Celularnumero
Canal
getCanal()setCanal()
Alarmedatahora
getAlarme()setAlarme()criarCanal()alterarCanal()excluirCanal()alarmar()
Sistema
criarUsuario()
Evento
getEvento()setEvento()criarAlarme()alterarAlarme()excluirAlarme()informarUsuario()
Usuárionomeloginsenha
criarEvento()alterarEvento()excluirEvento()getUsuario()setUsuario()
![Page 19: Frameworks e Componentes Daniel Fernando Pavelec.](https://reader035.fdocumentos.tips/reader035/viewer/2022062306/5706384d1a28abb8238f6a6b/html5/thumbnails/19.jpg)
Design do Framework
NewClasse
NewClasse
Canal
getCanal()setCanal()
Alarmedatahora
getAlarme()setAlarme()criarCanal()alterarCanal()excluirCanal()alarmar()
Sistema
criarUsuario()
Evento
getEvento()setEvento()criarAlarme()alterarAlarme()excluirAlarme()informarUsuario()
Usuárionomeloginsenha
criarEvento()alterarEvento()excluirEvento()getUsuario()setUsuario()
![Page 20: Frameworks e Componentes Daniel Fernando Pavelec.](https://reader035.fdocumentos.tips/reader035/viewer/2022062306/5706384d1a28abb8238f6a6b/html5/thumbnails/20.jpg)
Conclusão Analisar:
O domínio do problema que um framework endereça
A estrutura interna de um framework Como o framework deve ser usado
“Quanto mais customizado um componente é, mais ele se adapta a uma situação em particular porém mais esforço é necessário para aprende-lo e para usa-lo efetivamente.”
![Page 21: Frameworks e Componentes Daniel Fernando Pavelec.](https://reader035.fdocumentos.tips/reader035/viewer/2022062306/5706384d1a28abb8238f6a6b/html5/thumbnails/21.jpg)
Referências Cris Kobryn, Modeling Components
and Frameworks with UML, Communications of the ACM, 43(10), pp. 31-38, October 2000.
Silva, P. Ricardo, Suporte ao desenvolvimento e uso de componentes e framework, Tese Doutorado – UFRS – 2000