Daniel Mota Rubens BrandasCatu-BA, 2011
Frameworks
www.danielmota.com.br
Qual o problema da produção de softwares?Programar é difícil ! Onde está a maior dificuldade?Os programadores são mortais, é preciso fornecer formas de re-uso que vão além de código: re-uso de análise, design, código.
"Interface design and functional factoring constitute the key intelectual content of software and is far more difficult to create or re-create than code" (Peter Deutsch)
www.danielmota.com.br
Solução: Frameworks!
"It shouldn't take a good programmer to build a good program." (Peter Deutsch)
www.danielmota.com.br
O que será abordado:
1. O que é um Framework?2. Características básicas dos Frameworks3. Arquitetura base dos Frameworks 4. Diferenças no uso de Framework e Biblioteca de Classes5. Vantagens e Desvantagens de Frameworks6. Tipos e Classificações de Frameworks7. Uma lista de Frameworks
Frameworks
O que é um framework?
“Framework é um conjunto de classes que colaboram para realizar uma responsabilidade para um domínio de um subsistema da aplicação.”
— Fayad e Schmidt
Frameworks www.danielmota.com.br
Um framework provê uma solução para uma família de problemas semelhantes, usando um conjunto de classes e interfaces que mostra como decompor a família de problemas. Esses objetos e classes colaboram para cumprir suas responsabilidades, devendo ser flexível e extensível para permitir a construção de várias aplicações com pouco esforço, especificando apenas as particularidades de cada aplicação
Frameworks www.danielmota.com.br
Frameworks
CB
Difícil implementar Framework Fácil implementar Framework
32
1A
www.danielmota.com.br
Características Básicas● Um framework deve ser reusável, para isso deve primeiro ser usável
● Bem documentado e Fácil de usar● Deve ser extensível
● O framework contém as funcionalidades abstratas (sem implementação), que deve ser completada
● Deve ser de uso seguro● O desenvolvedor de aplicações não pode destruir o framework
● Deve ser eficiente● Devido a seu uso em muitas situações, algumas das quais poderão necessitar de eficiência
● Deve ser completo● Para endereçar o domínio do problema pretendido
Frameworks www.danielmota.com.br
Frameworks www.danielmota.com.br
Arquitetura base
Boa parte dos frameworks usam a arquitetura Model-
view-controller (MVC), é um padrão de arquitetura de
software que visa separar a lógica de negócio da lógica de
apresentação, permitindo o desenvolvimento, teste e
manutenção isolado de ambos.
Frameworks
As linhas sólidas indicam associação direta e as tracejadas indicam associação indireta.
www.danielmota.com.br
Objetivo do MVC
Separar dados, ou lógica de negócios, (Model) da interface do usuário (View) e do fluxo da aplicação (Control).
Frameworks
Na arquitetura MVC, a lógica de negócios, não sabe de quantas nem quais interfaces com o usuário estão exibindo seu estado. Com as diversas possibilidades de interfaces, a MVC é uma ferramenta indispensável para desenvolvermos sistemas
www.danielmota.com.br
Framework vs. Biblioteca de Classes OO
Numa biblioteca de classes, cada classe é única e independente das outras. Já num framework, as dependências/colaborações estão embutidas, impondo um modelo de colaboração.
Frameworks
BC
A D
B
C A
D
Biblioteca OO Framework
www.danielmota.com.br
Vantagens
Se o framework estiver pronto, os benefícios são claros em termos de:
● Redução de custos● Redução de time-to-market● Maximização de reuso (análise, design, código, testes)◦ Desenvolvedores se concentram em adicionar valor em vez de reinventar a roda
Frameworks www.danielmota.com.br
Vantagens
Além de proporcionar:● Melhor consistência e compatibilidade entre aplicações● Não se perde o conhecimento com a saída de especialistas e o conhecimento pode ser usado/estudado sem a presença do especialista◦ Há menos manutenção
Frameworks www.danielmota.com.br
Desvantagens
● Se tiver que construir um framework é complexo● Reuso não vem sozinho, deve ser planejado● Benefícios são realizados em longo prazo● Ainda há poucas empresas trabalhando com framework
Frameworks www.danielmota.com.br
Tipos de Frameworks
Classificação de frameworks é feita de acordo com duas dimensões:
● Como o Framework é usado.● Onde o Framework é usado
Frameworks www.danielmota.com.br
Classificação: Como é usado
● Inheritance-focused: Estende ou modifica as funcionalidades pela definição de sub-classes com override de métodos;● Composition-focused: Usa as funcionalidades já presentes no framework, sem visualizar ou alterar;● Híbridos: é inheritance-focused com alguma funcionalidade pronta.
Frameworks www.danielmota.com.br
Classificação: Onde é usado
Framework de suporte: Provê serviços de nível de sistema operacional (e não de aplicação), provendo:
● Acesso a arquivos● Computação distribuída● Device drivers
● Estes são casos raros
Frameworks www.danielmota.com.br
Classificação: Onde é usado
● Framework de aplicação: chamado de framework horizontal, encapsula conhecimento aplicável a uma vasta gama de aplicações, resolve apenas uma fatia do problema da aplicação.
Frameworks www.danielmota.com.br
Classificação: Onde é usado
● Framework de domínio: chamado de framework vertical. Encapsula conhecimento aplicável a aplicações pertencendo a um domínio particular de problema. Resolve boa parte da aplicação
Frameworks www.danielmota.com.br
Frameworks Horizontais● Interface do Usuário (GUI)
● Apple MacApp● Corel/Inprise/Borland OWL● Java Foundation Classes (JFC/Swing)● Microsoft Foundation Classes (MFC)
● Frameworks para persistência● Exemplo: TopLink ou CocoBase
● Camada acima do JDBC para prover mapeamento objeto-relacional
Frameworks www.danielmota.com.br
Frameworks Horizontais● Middleware
● Enterprise Java Beans● Microsoft MTS/COM+
● Frameworks MVC● Struts● IBM servlet manager● Oracle9iAS MVC Framework● WebWork● Zend Framework● Java Infobus (Framework para passar dados entre Java Beans)
Frameworks www.danielmota.com.br
Frameworks Verticais● Visio, Jhotdraw
● Editores de desenho estruturado ● IBM San Francisco
● Para construção de aplicações financeiras complexas● Frameworks para jogos● Landin e Niklasson Framework
● Jogos de dados● Rogers Framework
● Framework para monitoração de risco financeiro
Frameworks www.danielmota.com.br
Referencias
● WIKIPÉDIA, MVC. <http://pt.wikipedia.org/wiki/MVC>. Acesso em 27/05/2011.●________, Framework. http://pt.wikipedia.org/wiki/Framework. Acesso em 27/05/2011.● SAUVÉ, Jacques. Frameworks. < http://www.dsc.ufcg.edu.br/~jacques/cursos/map/html/arqu/mvc/mvc.htm>. Acesso em 27/05/2011.● ________, Model-View-Controller (MVC) http://www.dsc.ufcg.edu.br/~jacques/cursos/map/html/map2.htm>. Acesso em 27/05/2011.
Frameworks www.danielmota.com.br
Top Related