Uma Estratégia Dirigida a Modelos em Linguagem de Descrição Arquitetural para Gerenciamento de Variabilidades do Middleware Ginga
Arquitetura de Software, ADL, Desenvolvimento orientado a Modelos, Middleware Ginga, Desenvolvimento Orientado a Aspectos, Linha de Produtos de Software,
Estratégias orientadas a modelos tem sido usadas para facilitar a customização de produtos no contexto de Linhas de Produtos de Software (LPS) e geração de código-fonte desses produtos derivados através do gerenciamento de variabilidades. A maioria dessas estratégias faz uso da especificação de modelos em UML (Unified Modeling Language), que apesar de ser amplamente aplicada, possui algumas limitações por ser essencialmente gráfica, apresentar deficiência em descrever precisamente a semântica da representação da arquitetura do sistema e gerar um modelo extenso, o que dificulta a visualização e compreensão dos elementos do sistema. Já as linguagens de descrição arquiteturais (ADLs) oferecem suporte textual e gráfico para representação estrutural dos elementos arquiteturais, suas restrições e interações. Essa tese apresenta Arch-GingaForAll, uma estratégia dirigida a modelos especificados e configurados usando a ADL LightPL-ACME para gerenciamento de variabilidades do middleware de TV Digital Ginga. Tal estratégia está associada a um processo com atividades sistemáticas que permite a geração automática do código-fonte dos produtos do Ginga customizados a partir dos modelos. O Arch-GingaForAll integra o desenvolvimento orientado a aspectos (DSOA), desenvolvimento dirigido a modelos (DDM), e LPS, o que permite a modelagem explícita e modularização de variabilidades e características transversais. O processo é instanciado pela ferramenta Arch-GingaForAll que oferece suporte para a especificação, em LightPL-ACME, de modelos da arquitetura e produtos derivados do gerenciamento de variabilidade da LPS do Ginga, bem como a geração de código-fonte do produto customizado. De forma a avaliar a eficiência, aplicabilidade, expressividade e complexidade da estratégia Arch-GingaForAll, foi realizado um experimento controlado que avalia e compara a ferramenta Arch-GingaForAll, com a ferramenta GingaForAll, que instancia o processo que faz parte da estratégia GingaForAll, baseada em UML. Ambas as ferramentas foram usadas para configuração do produto da LPS do Ginga e geração de código-fonte desse produto.