24
Daniel Mota Rubens Brandas Catu-BA, 2011 Frameworks www.danielmota.com.br

Daniel Mota - Frameworks

Embed Size (px)

Citation preview

Page 1: Daniel Mota - Frameworks

Daniel Mota Rubens BrandasCatu-BA, 2011

Frameworks

www.danielmota.com.br

Page 2: Daniel Mota - Frameworks

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

Page 3: Daniel Mota - Frameworks

Solução: Frameworks!

"It shouldn't take a good programmer to build a good program." (Peter Deutsch)

www.danielmota.com.br

Page 4: Daniel Mota - Frameworks

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

Page 5: Daniel Mota - 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

Page 6: Daniel Mota - Frameworks

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

Page 7: Daniel Mota - Frameworks

Frameworks

CB

Difícil implementar Framework Fácil implementar Framework

32

1A

www.danielmota.com.br

Page 8: Daniel Mota - Frameworks

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

Page 9: Daniel Mota - Frameworks

Frameworks www.danielmota.com.br

Page 10: Daniel Mota - Frameworks

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

Page 11: Daniel Mota - Frameworks

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

Page 12: Daniel Mota - Frameworks

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

Page 13: Daniel Mota - Frameworks

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

Page 14: Daniel Mota - Frameworks

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

Page 15: Daniel Mota - Frameworks

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

Page 16: Daniel Mota - Frameworks

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

Page 17: Daniel Mota - Frameworks

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

Page 18: Daniel Mota - Frameworks

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

Page 19: Daniel Mota - Frameworks

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

Page 20: Daniel Mota - Frameworks

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

Page 21: Daniel Mota - Frameworks

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

Page 22: Daniel Mota - Frameworks

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

Page 23: Daniel Mota - Frameworks

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

Page 24: Daniel Mota - Frameworks

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