Estructura

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 20 de febrero de 2022; las comprobaciones requieren 7 ediciones .

Marco (a veces marco ; anglicismo , neologismo de marco  - esqueleto , marco, marco, estructura) - una plataforma de software que determina la estructura de un sistema de software; software que facilita el desarrollo y la integración de diferentes componentes de un gran proyecto de software.

La palabra "marco" también se usa, y algunos autores la usan como la principal, incluso sin basarse en absoluto en el análogo inglés [1] [2] [3] . También puede hablar sobre el enfoque de marco [3] como un enfoque para crear programas, donde cualquier configuración de programa se construye a partir de dos partes:

  1. La parte permanente es un marco que no cambia de configuración a configuración y lleva nidos en los que se coloca la segunda parte variable;
  2. Módulos enchufables (o puntos de expansión).

Diferencias de la biblioteca

"Framework" difiere del concepto de biblioteca en que una biblioteca se puede usar en un producto de software simplemente como un conjunto de subrutinas de funcionalidad similar, sin afectar la arquitectura del producto de software y sin imponerle ninguna restricción. Si bien el "marco" dicta las reglas para construir la arquitectura de la aplicación, establece el comportamiento predeterminado en la etapa inicial de desarrollo: el "marco", que deberá expandirse y cambiarse de acuerdo con los requisitos especificados. Un marco de software de ejemplo es CMF ( Content Management Framework ) y una biblioteca de ejemplo es un módulo de correo electrónico .

Además, a diferencia de una biblioteca, que combina un conjunto de funciones similares, un "marco" puede contener una gran cantidad de bibliotecas de diferentes temas.

La diferencia clave entre un "marco" y una biblioteca es la inversión de control : el código de usuario llama a las funciones (o clases) de la biblioteca y toma el control después de la llamada. En el "marco", el código de usuario puede implementar un comportamiento específico que está incrustado en el código "abstracto" más general del marco. En este caso, el "marco" llama a las funciones ( clases ) del código de usuario [4] .

Marco del sistema de software

Este es el marco de un sistema de software (o subsistema). Puede incluir: programas de utilidad, bibliotecas de código, lenguaje de secuencias de comandos y otro software que facilita el desarrollo y la integración de diferentes componentes de un gran proyecto de software. Por lo general, la asociación se produce mediante el uso de una única API .

Ejemplos: frameworks web como Zend Framework, Laravel o Symfony PHP frameworks , o Django escrito en Python .

Marco de aplicación

Una de las principales ventajas de usar aplicaciones "wireframe" es la estructura "estándar" de la aplicación. Los "marcos" se hicieron populares con la llegada de las interfaces gráficas de usuario , que tendían a implementar un marco estándar para las aplicaciones. Con su uso, se hizo mucho más fácil crear herramientas para crear interfaces gráficas automáticamente , ya que la estructura de la implementación interna del código de la aplicación se conoció de antemano. Las técnicas de programación orientada a objetos se utilizan normalmente para proporcionar un marco (por ejemplo, las partes de una aplicación se pueden heredar de las clases base del marco).

Uno de los primeros frameworks de aplicaciones comerciales fue MacApp , escrito por Apple para el " Macintosh ". Originalmente creado con una versión extendida (orientada a objetos) del lenguaje " Object Pascal ", posteriormente fue reescrito en " C++ ". Otros marcos populares de "Macintosh" incluyen:

En diversos grados, los marcos de aplicación son " Cocoa " para Mac OS X , así como los marcos de trabajo gratuitos que existen como parte de los proyectos de Mozilla , OpenOffice.org , GNOME y KDE .

Microsoft ha creado un producto similar para " Windows " llamado Microsoft Foundation Classes (MFC). Actualmente, el producto estrella de Microsoft para el desarrollo de software es " .NET ".

Los frameworks de aplicaciones multiplataforma (para sistemas operativos Linux , Macintosh y Windows) son, por ejemplo, widget toolkit , wxWidgets , Qt , .NET , MyCoRe o FOX toolkit .

Marco del modelo conceptual

Un concepto abstracto de estructura que se utiliza en la investigación para identificar posibles formas de resolver un problema o representar una idea.

Implementación del marco

Un "marco" se define como un conjunto de clases concretas y abstractas y definiciones de cómo interactúan. Las clases concretas normalmente implementan relaciones mutuas entre clases. Las clases abstractas son puntos de extensión donde se pueden usar o adaptar marcos.

Un punto de extensión  es esa "parte" del marco para el que no se proporciona implementación. En consecuencia, el marco de un modelo conceptual consta de clases conceptuales , y el marco de un sistema de software consta de clases de un lenguaje de programación de propósito general.

El proceso de creación de un marco consiste en seleccionar un subconjunto de las tareas del problema y sus implementaciones. En el curso de las implementaciones, las herramientas generales de resolución de problemas están contenidas en clases concretas y las herramientas mutables se trasladan a puntos de extensión.

Véase también

Notas

  1. V. Faronov. Creación de aplicaciones con C#, Moscú, EKSMO, 2008, pág. 12
  2. Métodos y tecnologías de reingeniería de SI. KV Akhtyrchenko, T. P. Sorokvasha Archivado el 3 de agosto de 2009 en Wayback Machine , Institute for System Programming RAS
  3. 1 2 Gorbunov-Posadov M. M. Programas extensibles . - M. : Políptico, 1999. - 336 p. — ISBN 5-901-11801-4 . Archivado el 20 de septiembre de 2012 en Wayback Machine .
  4. Martín Fowler. InversionOfControl  . _ Consultado el 5 de noviembre de 2013. Archivado desde el original el 23 de enero de 2011.