O documento discute frameworks, definindo-os como conjuntos de classes que colaboram para realizar tarefas em domínios específicos de uma aplicação. Explora as vantagens dos frameworks, como redução de custos e tempo de desenvolvimento, e características como reusabilidade, extensibilidade e inversão de controle. Também examina tecnologias comumente embutidas em frameworks, como MVC, ORM e AJAX.
2. Seminário frameworks
2011/2012
O que é?
• “Framework é um conjunto de classes que
colaboram para realizar uma
responsabilidade para um domínio de um
subsistema da aplicação.”
• Frameworks
• (Fayad e Schmidt)
Arlindo Santos 09-05-2012 2
3. Seminário frameworks
2011/2012
O que é?
• Um framework, em desenvolvimento de
software, é uma abstração que une
códigos comuns entre vários projetos de
software fornecendo uma funcionalidade
genérica.
Arlindo Santos 09-05-2012 3
4. Seminário frameworks
2011/2012
O que é?
• Ao contrário das bibliotecas, é o
framework quem dita o fluxo de controle
da aplicação, chamado de Inversão de
Controle.
Arlindo Santos 09-05-2012 4
5. Seminário frameworks
2011/2012
Frameworks
• Framework de software compreende de
um conjunto de classes implementadas
em uma linguagem de programação
específica, usadas para auxiliar o
desenvolvimento de software.
Arlindo Santos 09-05-2012 5
6. Seminário frameworks
2011/2012
O que é?
Framework é uma
arquitectura, um conjunto
de ficheiros organizados,
com uma série de
funções, rotinas e
variáveis, que servem
para nos poupar o tempo
de “REIVENTAR A
RODA” diversas e
diversas vezes, para cada
novo projeto
Arlindo Santos 09-05-2012 6
7. Seminário frameworks
2011/2012
Problema vs Solução
• Qual é o problema?
– Programar é difícil.
• Onde está a maior dificuldade?
– “O Design de Interface e a sua construção de
maneira funcional é a chave da propriedade
intelectual de um software e é bem mais difícil
de ser criada ou recriada do que o código
fonte.” - Peter Deutsch.
Arlindo Santos 09-05-2012 7
8. Seminário frameworks
2011/2012
Problema vs Solução
• Ou seja:
– os requisitos funcionais de um software são
facilmente copiados por outro, uma boa
solução de interface não.
Arlindo Santos 09-05-2012 8
9. Seminário frameworks
2011/2012
Problema vs Solução
• Solução:
– Temos que fornecer formas de re-uso que
vão além de código: re-uso de análise,
design, código.
– Framework orientado a objeto.
Arlindo Santos 09-05-2012 9
10. Seminário frameworks
2011/2012
Problema vs Solução
• Onde o framework entra…
– Um framework captura a funcionalidade
comum a várias aplicações.
– As aplicações devem ter algo razoavelmente
grande em comum: pertencer a um mesmo
domínio de problema.
Arlindo Santos 09-05-2012 10
11. Seminário frameworks
2011/2012
Problema vs Solução
• Um framework é uma
aplicação quase
completa, mas com
pedaços que faltam!
• Ao usar um
framework, o trabalho
consiste em criar os
pedaços que são
específicos para sua
aplicação.
Arlindo Santos 09-05-2012 11
12. Seminário frameworks
2011/2012
Padrões vs frameworks
• Padrões de projeto de software não são
frameworks, pois padrões possuem um nível
maior de abstração.
• Um framework inclui código, diferentemente
de um padrão de projeto.
• Um framework pode ser modelado com
vários padrões de projeto, e sempre
possuem um domínio de uma aplicação
particular, algo que não ocorre nos padrões e
projeto de software.
Arlindo Santos 09-05-2012 12
13. Seminário frameworks
2011/2012
Vantagens
• Redução de custos
• Redução de time-to-market
• Deteção de erros – cada funcionalidade
está separada por blocos
• Segurança
• Extensibilidade
• Ajuda fácil - comunidade
Arlindo Santos 09-05-2012 13
14. Seminário frameworks
2011/2012
Vantagens
• A longo prazo - Despois do período de
familiarização, as vantagens aparecem
• Produtividade - Como toda a equipa usa um
determinado framework, então usam as
mesmas convenções, classes e bibliotecas, a
manutenção de um programa fica muito mais
ágil (produtividade);
• Eliminação das tarefas repetitivas
• Facilidade na geração de testes
• Geração de documentação
Arlindo Santos 09-05-2012 14
15. Seminário frameworks
2011/2012
Vantagens
• Maximização de re-uso (análise, design, código,
testes).
• Programadores concentram-se em adicionar valor
ao invés de reinventar a roda.
• Menos manutenção.
• A herança permite alterar ou adicionar
funcionalidades.
• Estabilização melhor do código (menos defeitos)
devido ao seu uso em várias aplicações.
• Uso de tecnologias embutidas
Arlindo Santos 09-05-2012 15
16. Seminário frameworks
2011/2012
Vantagens
• Melhor consistência e compatibilidade entre
aplicações.
• Framework oferece uma forma de empacotar
o conhecimento de especialistas sobre
domínios de problemas.
• 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.
• Resultado: criação de patrimônio estratégico
da empresa (Strategic Asset Building).
Arlindo Santos 09-05-2012 16
17. Seminário frameworks
2011/2012
Desvantagens
• Dificuldade de aprendizagem
• Construir um framework é complexo
- Necessita de planeamento
• Quem pode pensar em longo prazo quando
se está competindo "On Internet time"?
- Necessário modificar o processo de
desenvolvimento e criar novos incentivos
- Benefícios são realizados em longo prazo
Arlindo Santos 09-05-2012 17
18. Seminário frameworks
2011/2012
Características Básicas
•Um framework deve ser reusável:
– É o propósito final!
•Para ser reusável, deve primeiro ser usável:
– Bem documentado
– Fácil de usar
• Deve ser extensível:
– O framework contém funcionalidade abstrata (sem
implementação) que deve ser completada
• 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
Arlindo Santos 09-05-2012 18
19. Seminário frameworks
2011/2012
Tecnologias embutidas
• MVC
• ActiveRecord
• AJAX (Asynchronous Javascript and XML)
• Internacionalização: É o processo de
possibilitar que seja facilmente alterada a
linguagem da interface e de mensagens de
uma determinada aplicação.
• ORM
• …
Arlindo Santos 09-05-2012 19
21. Seminário frameworks
2011/2012
Tecnologias embutidas
• MVC
– View
• É a interface do utilizador, é a transformação dos
dados do Model para que o utilizador possa interagir
com o sistema.
– Model
• Model é a camada de lógica do MVC que é usada pela
camada de apresentação e de acesso ao espaço de
armazenamento (ex: base de dados).
– Controler
• O controller processa e responde a eventos dos
utilizadores (GET, POST e entre outros), podendo
alterar o estado do Model.
Arlindo Santos 09-05-2012 21
22. Seminário frameworks
2011/2012
Tecnologias embutidas
• MVC
– Vantagens
• Como o modelo MVC gere múltiplas formas de
visualização usando o mesmo modelo, e é fácil manter,
testar e atualizar sistemas múltiplos;
• É muito simples incluir novos clientes. Inclui-se apenas
novos views e controles;
• Torna a aplicação escalável;
• É possível ter um desenvolvimento em paralelo para o
modelo, visualizador e controle pois são
independentes;
• É mais fácil gerir a complexidade da aplicação
dividindo-a em modelo, visualizador e controlador
(MVC).
Arlindo Santos 09-05-2012 22
23. Seminário frameworks
2011/2012
Tecnologias embutidas
• MVC
– Desvantagens
• Requer uma quantidade maior de tempo para
analisar e modelar o sistema;
• Requer pessoal com conhecimento especializado;
• Não é aconselhável para pequenas aplicações.
Arlindo Santos 09-05-2012 23
24. Seminário frameworks
2011/2012
Tecnologias embutidas
• ORM (Object-relational mapping)
– O ORM é uma técnica de desenvolvimento utilizada para reduzir
a impedância da programação orientada a objetos utilizando
base de dados relacionais. As tabelas do base de dados são
representadas através de classes e os registos de cada tabela
são representados como instâncias das classes
correspondentes.
– Com esta técnica, o programador não precisa de se preocupar
com os comandos em linguagem SQL; irá usar uma interface de
programação simples que faz todo o trabalho de persistência.
– Não é necessária uma correspondência direta entre as tabelas
de dados e as classes do programa. A relação entre as tabelas
onde originam os dados e o objeto que os disponibiliza é
configurada pelo programador, isolando o código do programa
das alterações à organização dos dados nas tabelas do banco
de dados.
Arlindo Santos 09-05-2012 24
25. Seminário frameworks
2011/2012
Tecnologias embutidas
• Validation
– Indica se o framework tem alguma estrutura de validação embutida em
sua estrutura.
• Auth module
– Indica se a estrutura tem um módulo embutido para assegurar a
autenticação do utilizador.
• Modules
– Indica se a estrutura do framework é modularizada por exemplo, possui
um parser da alimentação de RSS, o módulo de separação de pdf´s ou
etc;
• Tableless
– O nome Tableless é um nome mais “publicitário” para se referir a sites
que seguem os Padrões. Os sites Tableless não são construídos
usando as tables. Elas usam XHTML para apresentar a informação e
as Folhas de Estilo (CSS) para formatar essa informação.
Pelo motivo de as tables não serem usadas para a
estruturação, essa metodologia se chama Tableless.
Arlindo Santos 09-05-2012 25
26. Seminário frameworks
2011/2012
Tecnologias embutidas
• ActiveRecord
– Abstrai o programador de conhecer a fundo uma
linguagem de manipulação de dados, como a SQL,
além de manter toda a aplicação desenvolvida no
paradigma orientado a objetos.
• Db objects
– Indica se a estrutura inclui outros objetos da base de
dados, como classes de linguagem de programação
orientada a objetos
• Templates
– Os templates, ou modelos, têm por finalidade
separar o design, a parte HTML, da programação,
no nosso caso, o PHP.
Arlindo Santos 09-05-2012 26
27. Seminário frameworks
2011/2012
Tecnologias embutidas
• AJAX (Asynchronous Javascript and XML)
– Toda página AJAX está em um objeto chamado XMLHTTPRequest, o qual permite
que sejam feitas requisições assíncronas ao servidor web, não precisando de
atualizações na página ou espera por parte do utilizador.
• Caching
– Caching é o melhor recurso para a redução de processamento do servidor
envolvendo a renderização e lógica da camada de acesso a dados.
– Podemos dividir o caching em três tipos básicos:
• Cache de Respostas (OutputCache)
– O cache de respostas é a forma mais simples de se tirar proveito do sistema de cache, sem
necessidade de redesenho ou alterações de código - o conteúdo a ser enviado ao cliente (resposta) é
armazenado em memória e disponibilizado para as próximas requisições. De fato, todo o conteúdo
dinâmico pode ser armazenado em mecanismos que suportem o HTTP 1.1 (servidor web, navegadores
e proxies) de forma que requisições subsequentes sejam servidas diretamente a partir do cache sem
execução de código.
• Cache de Fragmento
– Existem situações onde o cache de toda uma página de resposta não é adequado. Um caso
óbvio, seria àquele no qual o desenho da aplicação requerer que algumas partes/seções de uma
página específica tenham versões específicas para um determinado grupo de utilizadores (e.g. menu
baseado no perfil do utilizador) e que outras partes sejam comuns à todos (e.g. conteúdo
genérico c/ notícias gerais). Este é o cenário ideal para o uso do fragment caching.
• Cache de Objetos
– O objeto de Cache é recriado a cada reinício da aplicação, o que nos lembra uma certa similaridade
com o objeto Application. A principal diferença entre os dois reside no fato de que o objeto de Cache
proporciona funcionalidade específicas, tais como dependências e políticas de expiração.
Arlindo Santos 09-05-2012 27
28. Seminário frameworks
2011/2012
Tecnologias embutidas
• Integração PEAR
– Pear é um sistema de repositório e de distribuição para
componentes reutilizáveis de PHP.
– Pear é composto por:
• Repositório organizado e padronizado de código aberto para programadores de
PHP Sistema para a distribuição e manutenção de pacotes.
• PFC (PHP Foundation Classes).
• Estilo padronizado de código.
• Sites e listas de discussão para a comunidade de colaboradores.
– O código PEAR é dividido em “pacotes”. Cada pacote é um projeto
separado com sua própria equipe de desenvolvimento, número de
versão, ciclo da publicação, documentação e uma relação definida
a outros pacotes.
• Internacionalização
– É o processo de possibilitar que seja facilmente alterada a linguagem
da interface e de mensagens de uma determinada aplicação.
Arlindo Santos 09-05-2012 28
29. Seminário frameworks
2011/2012
Documentação detalhada
• Uma boa documentação não é somente uma
descrição do que é a ferramenta e para que
ela serve.
– é toda a descrição histórica,
– todo um apoio para os programadores como
exemplos práticos de sua aplicação,
– detalhes da sua criação e implementação,
– descrição do comportamento e funcionamento da
mesma,
– fóruns de discussão,
– e demais conceitos abordados acima
Arlindo Santos 09-05-2012 29
32. Seminário frameworks
2011/2012
Bibliografia
• Fayad, M. E. and Schmidt, D. C. (1997).
Object-oriented application frameworks.
Commun. ACM, 40(10):32–38.
Arlindo Santos 09-05-2012 32
Notas do Editor
Model-view-controller (MVC) é um padrão de arquitetura de software. Com o aumento da complexidade das aplicações desenvolvidas torna-se fundamental a separação entre os dados (Model) e o layout (View). Desta forma, alterações feitas no layout não afetam a manipulação de dados, e estes poderão ser reorganizados sem alterar o layout.