Diferenças entre edições de "Framework"

cd
(cd)
 
{{mais fontes|data=Dezembro de 2008}}
Um '''''framework''''' em [[desenvolvimento de software]], é uma [[abstração]] que une [[código]]s comuns entre vários projetos de software provendo uma funcionalidade genérica. Um ''framework'' pode atingir uma funcionalidade específica, por configuração, durante a programação de uma aplicação. Ao contrário das [[biblioteca (computação)|bibliotecas]], é o ''framework'' quem dita o fluxo de controle da aplicação, chamado de [[Inversão de Controle]].<ref name="ufcg" >{{citar web|url=http://www.dsc.ufcg.edu.br/~jacques/cursos/map/html/frame/oque.htm|titulo=O que é um framework?|obra=dsc.ufcg.edu.br|lingua=inglês|acessodata=30/11/2015}}</ref>
 
== Conceito ==
 
Um ''Framework,framework'' ou arcabouço conceitual, é um conjunto de conceitos usado para resolver um problema de um domínio específico. ''Framework'' conceitual não se trata de um software executável, mas sim de um [[modelo de dados]] para um domínio.{{Carece de fontes|data=Dezembro de 2008}} ''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.
 
O ''framework'' atua onde há funcionalidades em comum a várias aplicações, porém para isso as aplicações devem ter algo razoavelmente grande em comum para que o mesmo possa ser utilizado em várias aplicações.
{{quote|''Framework'' é um conjunto de classes que colaboram para realizar uma responsabilidade para um domínio de um subsistema da aplicação.|Fayad e Schmidt<ref name="ufcg" />}}
''Frameworks'' possuem vantagens, tais como: maior facilidade para a detecção de erros, por serem peças mais concisas de [[software]]; concentração na abstração de soluções do problema que estamos tratando; eficiência na resolução dos problemas e otimização de recursos.
 
=== Partes ===
 
''Frozenspots'' são as partes fixas de um ''framework'', também conhecidos como ''hook points''. São serviços já implementados pelo framework. Normalmente realizam chamadas indiretas aos ''hotspots''.
 
''Hotspots'' são as partes flexíveis de um ''framework''. São pontos extensíveis, necessitam de complementação por funcionalidades/serviços que devem ser implementados. ''Hotspots'' são partes nas quais os programadores que usam o ''framework'' adicionam o seu código para especificar uma funcionalidade de sua aplicação. São invocados pelo ''framework'', ou seja, [[classe (programação)|classes]] (implementadas pelo programador da aplicação) recebem mensagens de uma classe do ''framework'' (''frozenspot''). Isso geralmente é implementado através de [[herança (programação)|herança]] e de [[método (programação)|métodos]] [[abstração (programação)|abstratos]];.
 
== Tipos ==
 
''Frameworks'' verticais são confeccionados através da experiência obtida em um determinado contexto específico. Esses são mais comumente chamados de frameworks especialistas. Tentam resolver problemas de um domínio e são usados em vários softwares do mesmo domínio. Exemplos: ''framework'' financeiro, recursos humanos.
 
Após alguns projetos em um domínio específico, serão percebidos pontos semelhantes entre estes projetos; E é com base nesses pontos que será construído o framework vertical (especialista).
 
''Frameworks'' horizontais não dependem do domínio da aplicação e podem ser usados em diferentes domínios. Exemplos: Interfaces gráficas, persistência, transação.
 
=== Orientação a objetos ===
{{Técnico|seção}}
Especificamente em [[orientação a objetos]], ''framework'' é um conjunto de [[classe (programação)|classes]] com objetivo de reutilização de [[arquitetura de software]], provendo um guia para uma solução em um domínio específico de ''software''.{{Carece de fontes|data=Dezembro de 2008}} ''Framework'' se diferencia de uma simples biblioteca, pois esta se concentra apenas em oferecer implementação de funcionalidades, sem definir a reutilização de uma solução de arquitetura.
 
Muitos engenheiros acreditam que a arquitetura é determinada pelos requisitos e por isso esperam que a fase de [[engenharia de requisitos]] esteja finalizada para então iniciar sua. Porém, apenas uma fração dos requisitos específicos do sistema têm influência na arquitetura. A identificação dos requisitos que são significantes para a arquitetura pode ser respondida através de um ''framework'' conceitual desenvolvido especialmente para um domínio específico, uma vez que esta resposta é muito dependente do domínio. Avançar para a fase de projeto ou mesmo iniciar a implementação do sistema não quer dizer que a definição da arquitetura esteja finalizada. Isto significa que o detalhamento obtido até então já é suficiente para prosseguir com o projeto de uma parte do sistema.
 
== Administração de empresas ==
== Partes ==
''Frozenspots'' são as partes fixas de um ''framework'', também conhecidos como ''hook points''. São serviços já implementados pelo framework. Normalmente realizam chamadas indiretas aos ''hotspots''.
 
''Hotspots'' são as partes flexíveis de um ''framework''. São pontos extensíveis, necessitam de complementação por funcionalidades/serviços que devem ser implementados. ''Hotspots'' são partes nas quais os programadores que usam o ''framework'' adicionam o seu código para especificar uma funcionalidade de sua aplicação. São invocados pelo ''framework'', ou seja, [[classe (programação)|classes]] (implementadas pelo programador da aplicação) recebem mensagens de uma classe do ''framework'' (''frozenspot''). Isso geralmente é implementado através de [[herança (programação)|herança]] e de [[método (programação)|métodos]] [[abstração (programação)|abstratos]];
 
== Framework em administração de empresas ==
Em administração, um ''framework'' é uma estrutura conceitual básica que permite o manuseio homogêneo de diferentes objetos de negócio. Serve para incrementar a disciplina de gestão e predefinir entregáveis comuns para cada objeto de negócio.
 
Exemplos de frameworks para gestão: [[ISO 9000]], [[ISO 14000]], [[OHSAS 18000]], [[ITIL]], [[COBIT]], [[CMM]], [[HACCP]], [[SCRUM]].
 
== Ver também ==
{{referências}}
 
== Ver também ==
* [[Django (framework web)|Django]]
* [[jQuery]]
* [[.NET]]
* [[Django (framework web)|Django]]
* [[Framework para aplicações web]]
* [[jQuery]]
 
{{referências}}
== Ligações externas ==
{{título em itálico}}
* {{Link||2=http://www.dsc.ufcg.edu.br/~jacques/cursos/map/html/frame/oque.htm|3=O que é um framework?}}
 
{{Portal3|Tecnologias de informação}}
 
[[Categoria:Terminologia informática]]
[[Categoria:Framework| ]]
[[Categoria:Programação orientada a objetos]]
[[Categoria:Informática]]
[[Categoria:Engenharia de software]]
[[Categoria:Programação orientada a objetos]]