Upload
arlindo-santos
View
3.331
Download
4
Embed Size (px)
DESCRIPTION
Abordagem do conceito de framework, e das vantagens e desvantagens associadas.
Citation preview
SEMINÁRIO 2011/2012
FRAMEWORKSArlindo Santos ([email protected])
13-04-2023Arlindo Santos 2
frameworksSeminário2011/2012
• “Framework é um conjunto de classes que colaboram para realizar uma responsabilidade para um domínio de um subsistema da aplicação.”
• (Fayad e Schmidt)
O que é?
• Frameworks
13-04-2023Arlindo Santos 3
frameworksSeminário2011/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.
13-04-2023Arlindo Santos 4
frameworksSeminário2011/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.
13-04-2023Arlindo Santos 5
frameworksSeminário2011/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.
frameworksSeminário2011/2012
13-04-2023Arlindo Santos 6
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
O que é?
13-04-2023Arlindo Santos 7
frameworksSeminário2011/2012
• 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.
Problema vs Solução
13-04-2023Arlindo Santos 8
frameworksSeminário2011/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.
13-04-2023Arlindo Santos 9
frameworksSeminário2011/2012
• 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.
Problema vs Solução
13-04-2023Arlindo Santos 10
frameworksSeminário2011/2012
• 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.
Problema vs Solução
frameworksSeminário2011/2012
13-04-2023Arlindo Santos 11
• 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.
Problema vs Solução
13-04-2023Arlindo Santos 12
frameworksSeminário2011/2012
• 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.
Padrões vs frameworks
13-04-2023Arlindo Santos 13
frameworksSeminário2011/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
13-04-2023Arlindo Santos 14
frameworksSeminário2011/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
13-04-2023Arlindo Santos 15
frameworksSeminário2011/2012
• 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
Vantagens
13-04-2023Arlindo Santos 16
frameworksSeminário2011/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).
13-04-2023Arlindo Santos 17
frameworksSeminário2011/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
13-04-2023Arlindo Santos 18
frameworksSeminário2011/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
13-04-2023Arlindo Santos 19
frameworksSeminário2011/2012
• 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• …
Tecnologias embutidas
13-04-2023Arlindo Santos 20
frameworksSeminário2011/2012
• MVC
Tecnologias embutidas
13-04-2023Arlindo Santos 21
frameworksSeminário2011/2012
• 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.
Tecnologias embutidas
13-04-2023Arlindo Santos 22
frameworksSeminário2011/2012
• 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).
Tecnologias embutidas
13-04-2023Arlindo Santos 23
frameworksSeminário2011/2012
• 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.
Tecnologias embutidas
13-04-2023Arlindo Santos 24
frameworksSeminário2011/2012
• 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.
Tecnologias embutidas
13-04-2023Arlindo Santos 25
frameworksSeminário2011/2012
• 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.
Tecnologias embutidas
13-04-2023Arlindo Santos 26
frameworksSeminário2011/2012
• 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.
Tecnologias embutidas
13-04-2023Arlindo Santos 27
frameworksSeminário2011/2012
• 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.
Tecnologias embutidas
13-04-2023Arlindo Santos 28
frameworksSeminário2011/2012
• 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.
Tecnologias embutidas
13-04-2023Arlindo Santos 29
frameworksSeminário2011/2012
• 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
Documentação detalhada
13-04-2023Arlindo Santos 30
frameworksSeminário2011/2012
Comparação das Frameworks
13-04-2023Arlindo Santos 31
frameworksSeminário2011/2012
Comparação das Frameworks
13-04-2023Arlindo Santos 32
frameworksSeminário2011/2012
• Fayad, M. E. and Schmidt, D. C. (1997). Object-oriented application frameworks. Commun. ACM, 40(10):32–38.
Bibliografia