Frameworks e Componentes
Daniel Fernando Pavelec
Motivação

Reuso

Orientação a objetos

Diminuição do tempo para produzir
uma aplicação
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)

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)
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
Comum
Biblioteca
Framework
Objetivo

Manter o conhecimento

Código menor

Otimizar generalização e a especialização
Benefícios

Modularidade

Reuso

Extensibilidade
Classificação - Extensão
 Whitebox
 Blackbox
 Graybox
Vantagens
 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
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
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
Processo de desenvolvimento

Processo baseado na experiência

Processo baseado na análise do
domínio

Processo utilizando design patterns
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
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
Documentação

Propósito do framework

Como usar os fundamentos do framework

Propósito das aplicações: exemplos

Design do framework
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
Design do Framework
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.”
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

Download

DanielPavelec - ComponentesFrameworks