tecnologia Frame (engenharia de software) - Frame technology (software engineering)

Tecnologia de moldura (FT) é uma linguagem neutra (ou seja, processa vários idiomas) sistema que fabrica software personalizado a partir de blocos de construção, máquinas-adaptável, chamados reutilizáveis quadros . FT é usado para reduzir o tempo, esforço e erros envolvidos na concepção, construção e evolução dos grandes sistemas de software complexos. Fundamental para FT é sua capacidade de impedir a proliferação de componentes semelhantes, mas sutilmente diferentes, um problema que assola engenharia de software, para o qual construções de linguagem de programação (sub-rotinas, classes ou templates / genéricos) ou add-in técnicas como macros e geradores não conseguiu proporcionar uma solução prática, escalável.

Um número de implementações de FT existir. Netron Fusão especializada na construção de software de negócios e é proprietário. ART (Adaptive Reuse Technology) [2] é uma implementação de uso geral, de código aberto do FT. Paul G. Bassett inventou o primeiro FT, a fim de automatizar a edição repetitivo, sujeito a erros envolvidos na adaptação de programas (gerados e mão-escritos) para requisitos e contextos em mudança.

A literatura substancial existe agora que explica como FT pode facilitar a maioria dos aspectos do ciclo de vida do software, incluindo modelagem de domínio, levantamento de requisitos, arquitetura e design, construção, testes, documentação, ajuste fino e evolução. Comparações independentes de FT abordagens alternativas para confirmar que o tempo e os recursos necessários para construir e manter sistemas complexos podem ser substancialmente reduzidos. Uma razão: FT protege os programadores de redundâncias inerentes do software: FT reproduziu COTS -objetos bibliotecas de equivalentes XVCL quadro bibliotecas que são dois terços menor e mais simples; aplicativos de negócios personalizados são rotineiramente especificado e mantido por Netron Fusão quadros SPC que são 5% - 15% do tamanho de seus arquivos de origem montados.

Frames

Abaixo estão duas descrições informais, seguido por uma definição e explicação mais precisa.

  1. Um quadro é uma componente adaptável numa linha de montagem automatizada de software. Imagine uma fábrica de auto onde, em vez de ter pára-choques específicos, pára-lamas, e outras peças para atender as especificidades de cada modelo de carro, temos apenas um pára-choques genérico, um fender genérico, e assim por diante. Agora imagine que estas peças genéricas poderiam ser clonadas e em forma para caber cada modelo de carro como ele veio para baixo da linha. Tal fantasia iria revolucionar a fabricação; e ao mesmo tempo impossível para partes físicas, isto é o que quadros fazer por software (e informação em geral).
  2. Um quadro é uma receita para "cozinhar" um texto (programa). Suas instruções dizem como misturar seus ingredientes - pedaços de moldura de texto dentro de si - com os ingredientes de outros quadros. O “chef” é um processador de quadro que executa as instruções, ou seja, os comandos de quadro , que alteram (adicionar, modificar, apagar) ingredientes conforme necessário, para se adequar a receita principal.

Formalmente, um quadro é uma macro processual que consiste em frame-texto - zero ou mais linhas de comandos simples (programa) de texto e imagem (o que são realizadas pelo processador quadro do FT, uma vez que fabrica programas personalizados). Cada quadro é tanto uma componente genérica em uma hierarquia de subconjuntos aninhados, e um procedimento para integrar-se com os seus quadros de submontagem (um processo recursivo que resolve conflitos de integração a favor dos subconjuntos de nível superior). As saídas são documentos personalizados, tipicamente módulos de fonte compiláveis.

Os principais comandos

  • invocar um quadro (a chamada de procedimento que ocorre no momento da construção, enquanto a construção de textos do programa);
  • atribuir um (lista de) expressão (s) para um parâmetro de quadro (uma construção em tempo atribuição variável);
  • inserir frame-texto antes, instead-of, ou depois blocos de frame-texto, marcado por expressões de parâmetros;
  • instanciar um parâmetro de quadro (uma avaliação da expressão de tempo de construção);
  • selecionar frame-textos para transformação (a instrução Case-tempo de construção);
  • iterar uma moldura de texto, enquanto variando certos parâmetros (A construção em tempo while).

O processador transforma-quadro texto, substituindo com comandos de texto comum, e por emissores de texto normais como é. Exemplos: substitui um invocação pelo resultado do processamento da moldura invocado; ele substitui uma Atribuir com nada; e um instanciar torna-se o texto comum resultante da avaliação da expressão atribuída ao parâmetro de quadro, que pode ser uma concatenação de strings, expressões aritméticas e parâmetros dos quadros aninhados.

relacionamentos dos componentes

Montagem programas a partir Components.png Quadro

Invoke estabelece relacionamentos dos componentes entre frames. Por exemplo, na figura 1: F é J ‘componente s e C é J ‘subcomponente s. Claro, muitos componentes podem invocar o mesmo subcomponente, como em I e J invocando F , cada um construir um texto diferente. A estrutura global componente forma um genérico 'semitrama' , com cada quadro sendo a raiz de uma submontagem. Assim, C é a sua própria subconjunto; F e C são os componentes do F subconjunto, e J , F , e C são os componentes do J subconjunto.

escopo contexto

Contexto escopo é o que distingue FT de outros sistemas de modelagem e construção: Cada quadro constitui o contexto em que se integra o seu subconjunto. Em subconjuntos aninhados os níveis mais baixos são progressivamente mais livre de contexto porque integram menos informação. Conflitos de integração são resolvidos em favor do quadro mais sensível ao contexto para atribuir ou inserir um parâmetro - torna-se somente leitura para todos os outros quadros em subconjunto desse quadro. Na figura 1, quadros F e C entraria em conflito se atribuir valores diferentes para o parâmetro p . Assim F substitui C - ou seja, o processador de estrutura de ignora C ‘atribuição (s) s para p , e usa F ‘valor (s) s para p em F e C . Da mesma forma, J pode substituir ambos F e C , e assim por diante.

O contexto importa-escopo porque todos os ajustes necessários para se adaptar a qualquer número de (sub) componentes para um determinado contexto são explícitos e local a esse contexto. Sem contexto-escopo tais ajustes são principalmente implícita, espalhados e escondidos dentro de variantes de componentes. Não só essas variantes tendem a proliferar, causando redundância e complexidade desnecessária, mas a evolução do sistema também é desnecessariamente difícil e sujeito a erros.

quadros de especificações e modelos

Um quadro especificação (SPC) é superior, portanto, mais quadro de uma montagem inteira, sensível ao contexto. O processador começa no CCP, como a L ou M na figura 1, a fim de fabricar um programa completo ou subsistema. Embora em princípio um CCP poderia personalizar cada detalhe, na prática um CCP é uma pequena fracção da totalidade da sua montagem, porque a maioria das excepções (e excepções para excepções, etc.) já ter sido tratado por vários quadros de subconjuntos.

Dada uma biblioteca de quadro, SPCs logicamente implicar os programas que constroem; assim SPCs substituir arquivos de origem como pontos de controle primários. É prática rotineira de usar modelos para criar SPCs que criam programas, em seguida, usar SPCs para gerenciar e evoluir esses programas indefinidamente. Essa prática reduz significativamente o número de detalhes que os programadores de aplicativos deve conhecer e gerenciar. Ele também evita as redundâncias, complexidades e erros inerentes a cópia e edição de origem textos de mão. Tempo de depuração encolhe, mas também porque a maioria dos componentes são reutilizados, portanto, pré-testada. Erros tendem a localizar no CCP, como eles são os menos testado.

Um modelo é uma SPC arquetípica, com comentários incorporados explicando como personalizá-lo. Tipicamente, há um pequeno número de tipos de programas, sendo cada tipo caracterizado por um modelo. Copiando e preenchendo-in, programadores converter um modelo em um SPC sem ter que lembrar o que quadros que precisam, seus relacionamentos dos componentes, ou o que detalhes normalmente precisa ser personalizado.

linguagens específicas de domínio frame-based

Uma base-FT, linguagem específica de domínio (FT-DSL) é uma linguagem específica de domínio cuja semântica (expressa no código do programa) foram projetados em quadros . Um editor típico FT-DSL traduz entre expressões DSL e um quadro que irá adaptar-se a semântica emolduradas para expressar equivalentes de código de programa das expressões DSL. Um SPC estar no topo este subconjunto pode, em seguida, especificar no código do programa todas as personalizações inexprimíveis na linguagem específica de domínio. Assim, quando os usuários regenerar código do programa a partir de expressões DSL alterados, personalizações anteriores não são perdidas.

engenharia quadro

Engenharia quadro aplica engenharia de software para um ambiente de tecnologia de moldura. Isso inclui análise de domínio, concepção, escrita, teste e quadros co-evoluindo juntamente com os sistemas que eles constroem. Framing ocorre tanto de baixo para cima e de cima para baixo. De baixo para cima, os engenheiros de quadro tipicamente criar quadros por unificar e grupos de elementos de programa semelhantes (de qualquer granularidade, a partir de fragmentos de texto para subsistemas) em equivalentes genéricos parametrização. A abordagem top-down combina expertise de domínio com requinte protótipo interativo, constrangida pela aplicação e os requisitos arquitectónicos, padrões corporativos, e o desejo de evoluir um conjunto de ativos reutilizáveis cujo retorno excede em muito o investimento. (Reutilização é medida dividindo-se o tamanho total das bibliotecas de frame para o tamanho total das construções resultantes, e / ou por contagem de quadro individual reutiliza.)

Uma biblioteca quadro madura aumenta custo-eficácia, porque os atores do projeto de software pode restringir a sua atenção para as novidades de um sistema, tendo a maior parte dos seus componentes robustos e arquitetura para concedido. Uma biblioteca madura não é estática. engenheiros quadro pode, usando o comando select, evoluir quadros reutilizáveis ​​indefinidamente, conhecer novas exigências sem necessidade de retrofits para programas fabricados a partir de versões anteriores dos quadros.

notas de rodapé

  1. ^ Software é enfatizado aqui; mas dadas as estruturas apropriadas, FT pode montar qualquer tipo de documentos: manuais técnicos e usuários finais, modelos UML, casos de teste, contratos legais, contas-de-materiais, etc.
  2. ^ Um b S.Jarzabek e S.Li "eliminando redundâncias com um 'Composição e Adaptação' Técnica meta-programação", Proc. Europeu Eng Software. Conf./ACM/SIGSOFT Symp. Fundamentos de Engenharia de Software, (ESEC / FSE 03), ACM Press, 2003, pp 237-246.; recebeu o ACM Distinguished Paper Award
  3. ^ PGBassett "Frame-Based Software Engineering", IEEE Software , julho 1987, pp. 9 -16
  4. ^ C.Holmes e A. Evens, "Uma revisão de Tecnologia Frame." 28 de novembro de 2003;
  5. ^ F.Sauer, "Metadados Impulsionada Multi-Artefato geração de código usa o frame de Programação Orientada," Workshop sobre Técnicas Generative no contexto de Model Driven Architecture (OOPSLA 02) de 2002 [1]
  6. ^ Um b H. Basit, Rajapakse DC, e S. Jarząbek, "Beyond Modelos: Um Estudo de clones no STL e algumas implicações gerais," Proc. Int'l Conf. Software Eng. (ICSE 05), ACM Press, 2005, pp. 451-459
  7. ^ Uma b c P.G. Bassett, Framing Software Reuse: Lições do mundo real , Prentice Hall, 1997.
  8. ^ S. Jarząbek, manutenção efetiva Software e Evolução: uma abordagem baseada em Reuse , Auerbach de 2007.
  9. ^ PGBassett, "The Case for Frame-Based Software Engineering," IEEE Software, julho de 2007, pp. 90-99
  10. ^ Um b P.G.Bassett, "Componentes adaptativos: Ás de Engenharia de Software in the Hole", Agile Project Management do cortador Consortium, Vol.5 # 5
  11. ^ I. Grossman e M. Mah, "estudo independente de Reutilização de Software", tecnologia. relatório, QSM Associates de 1994
  12. ^ O 'semitrama' é genérico porque os seus nodos e estrutura gráfico pode variar, dependendo dos valores dos parâmetros.
  13. ^ A ambiguidade reflete o hábito mental de pensar de um subconjunto como um componente.
  14. ^ Subconjuntos não-aninhados pode transferir o mesmo parâmetro.
  15. ^ Mão editar os mesmos personalizações em código regenerado de novo e novamente estimulou a invenção de FT.