2. Definición de Framework
• Desde el punto de vista del desarrollo de software, un framework es una
estructura de soporte definida, en la cual otro proyecto de software puede ser
organizado y desarrollado.
Los frameworks suelen incluir:
* Soporte de programas.
* Bibliotecas.
* Lenguaje de scripting.
* Software para desarrollar y unir diferentes componentes de un proyecto de
desarrollo de programas.
Los frameworks permiten:
* Facilitar el desarrollo de software.
* Evitar los detalles de bajo nivel, permitiendo concentrar más esfuerzo y tiempo
en identificar los requerimientos de software.
3. Las principales ventajas de la utilización
de un framework son:
1. El desarrollo rápido de aplicaciones. Los componentes incluidos
en un framework constituyen una capa que libera al
programador de la escritura de código de bajo nivel.
2. La reutilización de componentes software al por mayor. Los
frameworks son los paradigmas de la reutilización.
3. El uso y la programación de componentes que siguen una política
de diseño uniforme. Un framework orientado a objetos logra
que los componentes sean clases que pertenezcan a una gran
jerarquía de clases, lo que resulta en bibliotecas más fáciles de
aprender a usar.
4. Las desventajas de los frameworks
son:
1. La dependencia del código fuente de una aplicación con respecto
al framework. Si se desea cambiar de framework, la mayor
parte del código debe reescribirse.
2. La demanda de grandes cantidades de recursos
computacionales debido a que la característica de reutilización
de los frameworks tiende a generalizar la funcionalidad de los
componentes. El resultado es que se incluyen características
que están "de más", provocando una sobrecarga de recursos que
se hace más grande en cuanto más amplio es el campo de
reutilización.
5. • El término framework tiene una acepción más amplia, en donde
además de incluir una biblioteca de componentes reutilizables, es
toda una tecnología o modelo de programación que contiene
máquinas virtuales, compiladores, bibliotecas de administración
de recursos en tiempo de ejecución y especificaciones de
lenguajes. Tal es el caso del framework Microsoft .NET.
• Otra ventaja de los frameworks, y en especial de esta acepción
ampia, es la portabilidad de aplicaciones de una arquitectura a
otra. Por ejemplo, los bytecodes generados a partir del código
fuente de clases en Java pueden ser ejecutados sobre cualquier
máquina virtual, independientemente de la arquitectura hardware
y software subyacente.