O que REALMENTE significa Framework?????????  XML
Índice dos Fóruns » Ferramentas, Frameworks e Utilitários
Autor Mensagem
TiagoTC
JavaTeenager

Membro desde: 09/02/2008 01:12:58
Mensagens: 189
Offline

Desculpa a pergunta, mas a verdade é que já cansei de procurar definições de "framework" na internet. Todas elas são diferentes uma da outra! Uma diz que framework são pequenas rotinas de código, outra diz que são interfaces gráficas ( ), outra diz que framework é sinônimo de biblioteca... Mas afinal de contas: o que é um framework?

Obrigado!

Pérola: "Nunca coloque seu celular em um forno de microondas, pois isso faz com que a bateria exploda" - Manuais de telefones celulares
maquiavelbona
JWizard
[Avatar]

Membro desde: 29/06/2006 09:06:51
Mensagens: 2447
Localização: São Paulo - SP
Offline

Se você procurou, a melhor definição que eu lembre é a da Wikipedia. Pode se basear por ela.

Até!

----------------------------------------------------------------
"Within a few years a simple and inexpensive device, readily carried about, will enable one to receive on land or sea the principal news, to hear a speech, a lecture, a song or play of a musical instrument, conveyed from any other region of the globe. "
Nikola Tesla - A means for furthering Peace (1905)

"Gedanken ohne Inhalt sind leer, Anschauungen ohne Begriffe sind blind."
Immanuel Kant - Kritik der reinen Vernunft (1781)
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20587
Localização: Curitiba/PR
Offline

Você está confuso porque existe mais de uma definição. Mas, alguns livros fazem as seguintes definições:

1. Biblioteca: Conjunto de código pronto. Pode ser um conjunto de funções matemáticas, não precisa necessariamente orientada a objetos. Portanto, mesmo as frameworks são bibliotecas.

2. Toolkit: Conjunto de classes que, mas cuja arquitetura não se baseia em extensão, mas sim em uso. Um exemplo seria a STL do C++, ou o pacote java.util.concurrent. Mas, por essa definição, não seria a AWT (Abstract Window Toolkit), já que boa parte de suas classes são extensíveis.

3. Framework: Biblioteca de classes que suportam uma funcionalidade, mas que baseiam-se em extensão. Como o caso do Swing, onde você é obrigado a implementar um TableModel, por exemplo. O framework, portanto, é mais intrusivo e gera mais acoplamento do que um Toolkit. Geralmente, um framework chega a impor algum tipo de arquitetura ao projeto de software.

4. Engine: Um framework que geralmente gerencia o fluxo do código (geralmente roda num loop). Seria também o caso do Swing, JMonkeyEngine, Ogre ou do glut.

Essas 4 são as definições que mais gosto. Mas autores diferentes misturam esses conceitos uma vez ou outra. Portanto, não fique tão preso as definições.

This message was edited 1 time. Last update was at 18/02/2008 11:44:44


@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
pintofree
Virtual Machine Man
[Avatar]

Membro desde: 19/12/2007 12:44:42
Mensagens: 651
Localização: Cuiabá - MT
Offline

eu pessoalmente penso em framework como um conjunto de classes especificos para determinada tarefa, assim ao usar um framework penso em reaproveitar o trabalhado que outras pessoas criaram facilitando meu trabalho

SCJP - Sun Certified Java Programmer
SCWCD - Sun Certified Web Component Developer, Enterprise Edition 5

"When the compiler's not happy, ain't nobody happy."

[Email] [MSN]
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20587
Localização: Curitiba/PR
Offline

pintofree wrote:eu pessoalmente penso em framework como um conjunto de classes especificos para determinada tarefa, assim ao usar um framework penso em reaproveitar o trabalhado que outras pessoas criaram facilitando meu trabalho


Bem, isso é exatamente o que todas as definições acima tem em comum. Mas não deixa de ser verdadeiro, já que muitos autores consideram todas as definições sinônimas.

@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
sergiotaborda
GUJ Expert
[Avatar]

Membro desde: 22/03/2005 20:57:48
Mensagens: 3433
Offline

ViniGodoy wrote:

2. Toolkit: Conjunto de classes que, mas cuja arquitetura não se baseia em extensão, mas sim em uso. Um exemplo seria a STL do C++, ou o pacote java.util.concurrent. Mas, por essa definição, não seria a AWT (Abstract Window Toolkit), já que boa parte de suas classes são extensíveis.



Eu concordo com as definições do Vini só queria dizer que o toolkit ( conjunto de ferramentas) é realmente baseado em uso e não extensão, no sentido de que para funcionar não precisamos extender nada, nem reimplementar nada; mas isso não quer dizer que não possamos. O exemplo perfeito é pacote de coleções. As coisas são feita para serem usada tal como estão, mas podemos sempre implementar um List ou um Set se quisermos.
Essa é a diferença fundamental em relação a framework, onde para funcionar algo tem que ser obrigatoriamente implementado (ele apanas fornece ganchos). Embora a maioria dos frameworks apresente implementações padrão dessas peças especiais: primeiro porque quando a pessoa começa a usar o framework começa por usar o que já vem pronto, segundo porque os defaults ajudam a explicar o conceito do framework para que depois haja implementações especificas. (Todos os Default-...-Model do swing são exemplos disto)


Criando sua própria API de Validação



Blog do MiddleHeaven
[WWW]
bzanchet
Java Ninja

Membro desde: 18/05/2006 20:04:34
Mensagens: 256
Offline

Martin Fowler wrote:(In software any term means many things.)
- http://www.martinfowler.com/articles/designDead.html




http://conceitua-se.blogspot.com/
[WWW] [MSN]
rubinelli
JavaEvangelist
[Avatar]

Membro desde: 26/04/2005 11:18:25
Mensagens: 469
Offline

ViniGodoy wrote:3. Framework: Biblioteca de classes que suportam uma funcionalidade, mas que baseiam-se em extensão. Como o caso do Swing, onde você é obrigado a implementar um TableModel, por exemplo. O framework, portanto, é a mais intrusivo e gera mais acoplamento do que um Toolkit.


Vini, gostei das definições, mas acho que muito mais do que a extensão de classes, a grande diferença entre um framework e uma biblioteca é a inversão de controle: em vez do seu código chamar o framework, o framework executa seu código, normalmente em resposta a um evento. O assunto fica confuso porque a maioria dos frameworks incluem bibliotecas também.
[WWW]
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20587
Localização: Curitiba/PR
Offline

rubinelli wrote:Vini, gostei das definições, mas acho que muito mais do que a extensão de classes, a grande diferença entre um framework e uma biblioteca é a inversão de controle: em vez do seu código chamar o framework, o framework executa seu código, normalmente em resposta a um evento. O assunto fica confuso porque a maioria dos frameworks incluem bibliotecas também.


Sim, essa é uma consequência de basear a hierarquia em herança, e não em composição.

Mas isso ocorre em toolkits também. Por exemplo, no método sort geralmente você é obrigado a fornecer um callback (ou uma interface) para que ele saiba como ordenar os dados. E, por você ser obrigado a implementar uma interface, não transforma o toolkit em framework e também há a inversão de controle.

Na minha definição fiz questão de citar uma coisa que realmente acho ser o diferencial:
O Toolkit não te impõe qualquer tipo de design em suas classes, enquanto o framework geralmente já te dá um modelo pronto, e força que você o adote através de herança. Por isso, o grau de acoplamento é maior e há intrusão, já que você fica proibido de modelar de outras formas (as vezes até melhores do que as propostas). Tente abrir mão do modelo MVC no Swing ou no Struts e você verá bem o que estou falando.

A inversão de controle que você falou realmente ocorre, e no caso do framework é mais profunda do que uma primeira análise sugere. Só não acho que a presença dela seja decisiva para dizer que algo é um framework, embora a ausência possa dizer que algo não é um.

This message was edited 1 time. Last update was at 18/02/2008 11:45:59


@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
Tamara Ramos
Smalltalk

Membro desde: 02/07/2011 18:54:07
Mensagens: 3
Offline

De tudo que eu pesquisei sobre Framework, estas informações foi a que mais consegui entender, e mesmo assim não entendi cerca de 30% do que seria, eu sou formada Relações Públicas e estou fazendo pós-graduação de GTIC (Gestão de Tecnologia da Informação e Comunicação) e em um material de estudo "CobiT 4.1" eu vi uma menção a Framework, será que há alguém que poderia explicar para uma leiga no assunto de uma maneira que talvez eu pudesse entender?
Grata
RafaelCassau
JavaChild
[Avatar]

Membro desde: 28/04/2011 20:32:11
Mensagens: 142
Localização: Américo Brasiliense - SP
Offline

Bom dia Tamara Ramos na minha opinião Framework em programação quer dizer um conjunto de classes já implementadas e testadas, prontas para o uso, para facilitar a vida do programador, deixar as tarefas do dia a dia mais rapidas e eficientes sem falar no reaproveitamento de código e na padronização, mais pelo contexto da sua pergunta, Framework quando se trata de assuntos como melhoria de processos falando em Cobit ou Itil v3. Framework quer dizer um conjunto de regras = etapas padronizadas para a resolução de um ou varios problemas, referentes a organização da empresa, melhoria de processos para obter melhor qualidade e eficiencia desde o chamado de um cliente até a resolução final do problema!

espero ter ajudado, abraços!

Estudando OCJP 6.0 e ITIL v3

"Tudo posso naquele me fortalece"
[Email]
andredecotia
JWizard
[Avatar]

Membro desde: 19/10/2009 14:37:32
Mensagens: 2267
Localização: São Paulo
Offline

TiagoTC wrote:Desculpa a pergunta, mas a verdade é que já cansei de procurar definições de "framework" na internet. Todas elas são diferentes uma da outra! Uma diz que framework são pequenas rotinas de código, outra diz que são interfaces gráficas ( ), outra diz que framework é sinônimo de biblioteca... Mas afinal de contas: o que é um framework?

Obrigado!


Na minha opinião:

Suas definições estão corretas, eu complementaria dizendo que um framework "encapsula um código (ex: de difícil/complexo entendimento), dando uma interface mais amigável".

--
André AS


Analista Programador Java Web freelancer / home office
Linkedin: http://www.linkedin.com/profile/view?id=41470291&trk=tab_pro

[Email] [MSN] [ICQ]
Tamara Ramos
Smalltalk

Membro desde: 02/07/2011 18:54:07
Mensagens: 3
Offline

Obrigada André, e obrigada Rafael, você me auxiliou muito com a sua explicação estou no módulo de Governança em TI, e agora entendi bem!!!

Atenciosamente,
Tâmara Ramos.
andredecotia
JWizard
[Avatar]

Membro desde: 19/10/2009 14:37:32
Mensagens: 2267
Localização: São Paulo
Offline

Tamara Ramos wrote:De tudo que eu pesquisei sobre Framework, estas informações foi a que mais consegui entender, e mesmo assim não entendi cerca de 30% do que seria, eu sou formada Relações Públicas e estou fazendo pós-graduação de GTIC (Gestão de Tecnologia da Informação e Comunicação) e em um material de estudo "CobiT 4.1" eu vi uma menção a Framework, será que há alguém que poderia explicar para uma leiga no assunto de uma maneira que talvez eu pudesse entender?
Grata


Bom, são conceitos diferentes dependendo da colocação, veja que Governança de TI -> ITIL/Cobit são um framework no sentido de "um conjunto de práticas/maneiras/diretrizes
para se fazer um trabalho".

A explicação feita por mim foi para frameworks no contexto de Linguagem de Programação.

Você entendeu mesmo?

--
André AS


Analista Programador Java Web freelancer / home office
Linkedin: http://www.linkedin.com/profile/view?id=41470291&trk=tab_pro

[Email] [MSN] [ICQ]
Tamara Ramos
Smalltalk

Membro desde: 02/07/2011 18:54:07
Mensagens: 3
Offline

Na verdade entendi mais o que Rafael falou por conta do contexto, mas meu entendimento com relação a sua ajuda foi parcial rsrsrsr. Sabe não é? Não técnica!!!
 
Índice dos Fóruns » Ferramentas, Frameworks e Utilitários
Ir para:   
Powered by JForum 2.1.8 © JForum Team