论文标题
将通用可变性语言与Web工程的多语言注释相结合
Integrating the Common Variability Language with Multilanguage Annotations for Web Engineering
论文作者
论文摘要
Web应用程序开发涉及管理以不同语言实现的代码,页面或样式表等大量的文件和资源。为了应对Web应用程序的自动生成定制配置,尽管大多数研究都鼓励使用基于作曲的方法来实施软件产品线,但行业通常采用基于注释的方法。最近的工作试图将这两种方法结合在一起以获得互补的好处。但是,技术公司不愿采用新的开发范式,例如面向功能的编程或面向方面的编程。此外,将这些编程模型应用于Web应用程序是极其困难的,主要是因为它们的多语性性质,因为它们的开发涉及多种类型的源代码(Java,Groovy,JavaScript),模板(HTML,Markdown,Markdown,XML),样式表文件(CSS及其变种scesssssssssssssssss)和其他文件(ymss)和其他文件(yms),以及其他文件。我们建议将通用可变性语言用作基于构图的方法,并集成注释,以管理软件产品线的细性可变性。在本文中,我们(i)表明,现有的基于构图和基于注释的方法(包括一些众所周知的组合)不适合建模和实施Web应用程序的可变性; (ii)提出了一种合并的方法,该方法将注释有效地集成到基于组成的Web应用程序的方法中。我们实施我们的方法,并通过工业现实世界系统展示其适用性。
Web applications development involves managing a high diversity of files and resources like code, pages or style sheets, implemented in different languages. To deal with the automatic generation of custom-made configurations of web applications, industry usually adopts annotation-based approaches despite the majority of studies encourage the use of composition-based approaches to implement Software Product Lines. Recent work tries to combine both approaches to get the complementary benefits. However, technological companies are reticent to adopt new development paradigms such as feature-oriented programming or aspect-oriented programming. Moreover, it is extremely difficult, or even impossible, to apply these programming models to web applications, mainly because of their multilingual nature, since their development involves multiple types of source code (Java, Groovy, JavaScript), templates (HTML, Markdown, XML), style sheet files (CSS and its variants, such as SCSS), and other files (JSON, YML, shell scripts). We propose to use the Common Variability Language as a composition-based approach and integrate annotations to manage fine grained variability of a Software Product Line for web applications. In this paper, we (i) show that existing composition and annotation-based approaches, including some well-known combinations, are not appropriate to model and implement the variability of web applications; and (ii) present a combined approach that effectively integrates annotations into a composition-based approach for web applications. We implement our approach and show its applicability with an industrial real-world system.