Framework
Un framework es un conjunto coherente de componentes de software estructurales utilizados para crear los cimientos y el contorno de toda o una parte de un software (arquitectura). Un framework difiere de una simple biblioteca de software principalmente por:
Su genérico, débilmente especializado, a diferencia de las bibliotecas; un framework a este respecto puede estar compuesta de varias bibliotecas especializadas cada una en un campo. Un framework, sin embargo, puede especializarse en un idioma determinado, una plataforma específica, un área en particular: informes, mapas, etc. ;
El framework que impone por su propia construcción, guiando la arquitectura de software e incluso llevando el fabricante para cumplir ciertos patrones; bibliotecas de componentes se organizan entonces de acuerdo con el mismo paradigma.
Los framework están diseñados y utilizados para modelar la arquitectura de aplicaciones de software, aplicaciones Web, middleware y componentes de software. Framework se adquieren por los ingenieros y embebidos en aplicaciones de software en el mercado, que están, por tanto, rara vez adquiridos e instalados por separado por un usuario final.
Un framework es un conjunto de herramientas y componentes de software organizados de acuerdo con un plan y patrones arquitectónicos, la formación o la promoción de un «esqueleto» del programa conjunto. A menudo se ofrece como una biblioteca de software, y acompañado por el plan de arquitectura objetivo framework.
Un framework está diseñado para ayudar a los programadores en su trabajo. La organización de la estructura es la máxima productividad de los programadores que lo utilizarán – prenda caída de los costos de construcción y programa de mantenimiento. El contenido exacto del marco es dictado por el tipo de programa y la arquitectura objetivo.
Hay diferentes tipos de framework:
Framework infraestructura del sistema: el desarrollo de sistemas operativos, interfaces gráficas, herramientas de comunicación (por ejemplo .Net Framework, Struts);
Marco de middleware de integración (middleware) para federar aplicaciones heterogéneas. Con el fin de proporcionar diferentes tecnologías en la forma de una única interfaz;
Framework de negocio: desarrollo de aplicaciones específicas para el sector empresarial de la compañía;
Framework de gestión de contenido: son las bases de un sistema de gestión contenedor para la creación, recopilación, clasificación, almacenamiento y publicación de «propiedad escaneada.»
Las principales ventajas de estos framework están reutilizando su código, la normalización del ciclo de vida del software (especificación, desarrollo, mantenimiento, evolución), que permiten formalizar una arquitectura adaptada a las necesidades de la empresa. Se basan en la experiencia de los acontecimientos anteriores.
En programación orientada a objetos, se hace típicamente un marco de clases padre se deriva y se extendió por herencia a las necesidades específicas de cada software que utiliza el framework. Con un framework orientado a objetos, el programador puede personalizar los principales elementos del programa, por extensión, utilizando el mecanismo de herencia: crear nuevas clases que contienen todas las características que se establece, y su más características propias creado por el programador a las necesidades específicas de su programa. El mecanismo de herencia permite transformar la funcionalidad existente en las clases del framework.