Tecnología de frameTecnología de frame (FT) es una lengua-neutro (es decir, procesa varios idiomas) que fabrica software personalizado[1] a partir de bloques reutilizables y adaptables a la máquina, llamados frames. FT se utiliza para reducir el tiempo, el esfuerzo y los errores involucrados en el diseño, construcción y evolución de sistemas de software grandes y complejos. Fundamental para FT es su capacidad para detener la proliferación[2] de componentes similares, pero sutilmente diferentes, un problema que afecta a la ingeniería de software, para el cual se construyen lenguajes de programación (subrutinas, clases o plantillas/genéricos) o técnicas complementarias como Frame y los generadores no pudieron proporcionar una solución práctica y escalable. Existen varias implementaciones de FT. Netron Fusion se especializa en la construcción de software empresarial y es privado.[3] ART (Adaptive Reuse Technology) es una implementación de código abierto de uso general de FT. Paul G. Basset invento el primer FT para automatizar la edición repetitiva y propensa a errores involucrada en la adaptación de programas (generados y escritos a mano) a requisitos y contextos cambiantes.[4] Ahora existe una literatura sustancial[5][6][7][8][9][10][11][12] que explica cómo FT puede facilitar la mayoría de los aspectos del ciclo de vida del software, incluido el modelado de dominios, la recopilación de requisitos, arquitectura y diseño, construcción, pruebas, documentación, puesta a punto y evolución. Las comparaciones independientes de FT con enfoques alternativos[13] confirman que el tiempo y los recursos necesarios para construir y mantener sistemas complejos pueden reducirse sustancialmente. Una razón: FT protege a los programadores de las redundancias inherentes al software: FT ha producido bibliotecas de objetos COTS de bibliotecas de frame XVCL equivalentes que son dos tercios más pequeñas y más simples;[2] las aplicaciones empresariales personalizadas se especifican y mantienen de forma rutinaria mediante Netron FusionSPC frames que son del 5% al 15% del tamaño de sus archivos fuente ensamblados. FramesA continuación, hay dos descripciones informales, seguidas de una definición y explicación más precisas.
Formalmente, un Frame es una macro de procedimiento que consiste en texto de Frame: cero o más líneas de texto ordinario (programa) y comandos de Frame (que realiza el procesador de Frame de FT mientras fabrica programas personalizados). Cada Frame es un componente genérico en una jerarquía de subconjuntos anidados y un procedimiento para integrarse con sus Frame de subconjunto (un proceso recursivo que resuelve conflictos de integración en favor de subconjuntos de nivel superior). Los resultados son documentos personalizados, normalmente módulos fuente compilables. Los comandos principales
El procesador transforma el texto del Frame reemplazando comandos con texto ordinario y emitiendo texto ordinario tal como está. Ejemplos: reemplaza una invoke por el resultado del procesamiento del Frame invocado; remplaza una asignación con nada; y una instancia se convierte en el texto ordinario resultante de evaluar la expresión asignada del parámetro de Frame, que puede ser una concatenación de cadenas, expresiones aritméticas y parámetros de Frame anidados. Relaciones de componentesInvoke establece relaciones de componentes entre cuadros. Por ejemplo, en la figura 1: F es el componente de J y C es el subcomponente de J. Por su puesto, muchos componentes pueden invocar el mismo subcomponente, como en I y J invocando F, cada uno construyendo un texto diferente. La estructura general de los componentes forma una semilattice genérica,[14] siendo cada Frame la raíz de un subensamblaje. Así, C es un propio subconjunto; F y C son componentes del subconjunto F, y J, F y C son componentes del subconjunto J.[15] Alcance del contextoEl alcance del contexto es lo que distingue a FT de otros sistemas de modelado y construcción: cada marco constituye el contexto en el que integra su subensamblaje. En subconjuntos anidados, los niveles inferiores están progresivamente más libres de contexto porque integran menos información. Los conflictos de integración se resuelven a favor del marco más sensible al contexto para asignar o insertar un parámetro; se convierte en solo lectura para todos los demás marcos en el subconjunto de ese frame.[16] En la figura 1, los frames F y C entrarían en conflicto si asignan valores diferentes al parámetro p. Entonces F anula a C, es decir, el procesador de trama ignora las asignaciones de C a p, y usa los valores de F para p en F y C. Del mismo modo, J puede anular tanto F como C, y así sucesivamente. El alcance del contexto es importante porque todos los ajustes necesarios para ajustar cualquier número de (sub) componentes a un contexto dado son explícitos y locales en ese contexto. Sin el alcance del contexto, tales ajustes son en su mayoría implícitos, dispersos y ocultos dentro de las variantes de los componentes. Estas variantes no solo tienden a proliferar, causando redundancia y complejidad innecesarias, sino que la evolución del sistema también es innecesariamente difícil y propensa a errores. Frames de especificaciones y plantillasUn Frame de especificación (SPC) es el Frame superior de un conjunto completo, por lo tanto, el Frame más sensible al contexto. El procesador comienza en un SPC, como L o M en la figura 1, para fabricar un programa o subsistema completo. Si bien, en principio, un SPC podría personalizar cada detalle, en la práctica un SPC es una pequeña fracción de todo su ensamblaje porque la mayoría de las excepciones (y excepciones a excepciones, etc.) ya han sido manejadas por varios Frame de subconjunto. Dada una biblioteca de Frame, los SPC implican lógicamente los programas que construyen; así, los SPC reemplazan los archivos fuente como puntos de control primarios. Es una práctica habitual usar plantillas para crear SPC que crean programas, luego usar SPC para administrar y desarrollar esos programas indefinidamente. Esta práctica reduce en gran medida la cantidad de detalles que los programadores de aplicaciones deben conocer y administrar. También evita las redundancias, complejidades y errores inherentes a la copia y edición de textos fuente a mano. El tiempo de depuración también se reduce porque la mayoría de los componentes se reutilizan, por lo tanto, se prueban previamente. Los errores tienden a localizarse en los SPC, ya que son los menos probados. Una plantilla es un SPC arquetípico, con comentarios incrustados que explican cómo personalizarlo. Por lo general, hay una pequeña cantidad de tipos de programas, cada uno de los cuales se caracteriza por una plantilla. Al copiarlo y completarlo, los programadores convierten una plantilla en un SPC sin tener que recordar qué cuadros necesitan, sus relaciones de componentes o qué detalles normalmente necesitan ser personalizados. Lenguajes Específicos de dominio basados en frameUn lenguaje específico de dominio basado en FT (FT-DSL) es un lenguaje específico de dominio cuya semántica (expresada en código de programa) se ha diseñado en frames. Un editor FT-DSL típico se traduce entre expresiones DSL y una trama que adaptará la semántica enmarcada para expresar equivalentes de código de programa de las expresiones DSL. Un SPC sentado encima de este subensamblaje puede especificar en el código del programa cualquier personalización inexpresable en el lenguaje específico del dominio. Por lo tanto, cuando los usuarios regeneran el código del programa a partir de expresiones DSL alteradas, no se pierden las personalizaciones anteriores.[17] Ingeniería de marcoLa ingeniería de cuadros aplica la ingeniería de software a un entorno de tecnología de cuadros. Esto incluye análisis de dominio, diseño, escritura, prueba y co-evolución de marcos junto con los sistemas que construyen.[12] El encuadre ocurre de abajo hacia arriba y de arriba hacia abajo. De abajo hacia arriba, los ingenieros de marcos suelen crear marcos unificando y parametrizando grupos de elementos de programa similares (de cualquier granularidad, desde fragmentos de texto a subsistemas) en equivalentes genéricos. El enfoque de arriba hacia abajo combina la experiencia en el dominio con el refinamiento iterativo de prototipos, limitado por los requisitos de aplicación y arquitectura, los estándares corporativos y el deseo de desarrollar un conjunto de activos reutilizables cuyo rendimiento exceda en gran medida la inversión. (La reutilización se mide dividiendo el tamaño total de las bibliotecas de marcos en el tamaño total de las construcciones resultantes, y / o contando las reutilizaciones de marcos individuales). Una biblioteca de frames madura mejora la rentabilidad porque los interesados en proyectos de software pueden restringir su atención a las novedades de un sistema, dando por sentado la mayor parte de sus componentes y arquitectura robustos. Una biblioteca madura no es estática. Los ingenieros de cuadros pueden, utilizando el comando de selección, desarrollar cuadros reutilizables indefinidamente, cumpliendo nuevos requisitos sin necesidad de modificaciones en los programas fabricados a partir de versiones anteriores de cuadros.[9] Referencias
|