Software product line (SPL) engineering has been successfully applied to software development by obtaining software systems as compositions of modular features. Existing approaches to SPL engineering, however, are typically bound to a specific technological space (such as, a programming language and a composer) and integrated development environment (IDE), and rely on extraction mechanisms that make strong assumptions on the underlying technological space. This tight coupling hinders reuse, evolution, and adoption of heterogeneous development environments. We propose a general, workbench-agnostic protocol for extracting feature models from existing software artifacts and for configuring and deriving software products. The protocol follows a bottom-up approach based on lightweight dependency units called "atoms", and organizes the extraction and configuration process around an SPL server (workbench-independent) and an SPL client with a workbench-specific backend and a generic frontend. The protocol makes few assumptions on the underlying software artifacts and is therefore applicable to varied SPLs. The applicability of this approach is presented through a prototypical implementation of the architecture in which several subsystems interact and can be swapped freely without affecting the others. In particular, we focus on the application of such a protocol in the context of language product lines (LPLs), demonstrating its applicability to concrete scenarios while preserving workbench-agnosticism. From bottom to top, the implementation comprises: Neverlang language artifacts, a Java SPL client backend, an agnostic and reusable SPL server written in Go and Prolog, and a JavaScript SPL client frontend.


翻译:[translated abstract in Chinese] 软件产品线(SPL)工程已通过将软件系统作为模块化特征的组合来获取,成功应用于软件开发。然而,现有的SPL工程方法通常局限于特定的技术空间(例如编程语言和组合器)及集成开发环境(IDE),并依赖于对底层技术空间做出强假设的提取机制。这种紧密耦合阻碍了异构开发环境的重用、演进和采纳。我们提出了一种通用的、与工作台无关的协议,用于从现有软件工件中提取特征模型,以及配置和派生软件产品。该协议采用自底向上的方法,基于称为“原子”的轻量级依赖单元,并围绕SPL服务器(与工作台无关)和具有工作台特定后端及通用前端的SPL客户端组织提取与配置流程。该协议对底层软件工件做出的假设较少,因此适用于各种SPL。通过一个原型实现展示了该方法的适用性,其中多个子系统可自由交互与互换而不影响其他子系统。我们特别关注了该协议在语言产品线(LPL)场景中的应用,验证了其在具体场景中的可行性,同时保持了工作台无关性。自底向上,该实现包括:Neverlang语言工件、Java SPL客户端后端、用Go和Prolog编写的无关且可复用的SPL服务器,以及JavaScript SPL客户端前端。

0
下载
关闭预览

相关内容

IEEE信号处理信函(SPL)是每月一次的存档出版物,旨在快速传播原始的,最先进的想法,并在信号,图像,语音,语言和音频处理方面提供及时、重要的贡献。 官网地址:http://dblp.uni-trier.de/db/journals/spl/
软件定义战争:跨越两大软件领域的鸿沟
专知会员服务
13+阅读 · 6月30日
《软件定义网络元素与机器代码的形式化验证》
专知会员服务
14+阅读 · 2025年11月18日
大模型软件工程
专知会员服务
89+阅读 · 2023年12月30日
2022年中国工业软件CAx行业深度研究报告
专知会员服务
21+阅读 · 2022年10月21日
异质信息网络分析与应用综述,软件学报-北京邮电大学
【翻译技术速递】测评:免费的术语抽取工具
翻译技术沙龙
139+阅读 · 2019年11月2日
推荐系统产品与算法概述 | 深度
AI100
11+阅读 · 2019年6月13日
一种关键字提取新方法
1号机器人网
21+阅读 · 2018年11月15日
《软件方法》1-8章全部自测题更新内容
UMLChina
11+阅读 · 2018年3月26日
国家自然科学基金
1+阅读 · 2015年12月31日
国家自然科学基金
8+阅读 · 2015年12月31日
国家自然科学基金
2+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
1+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
4+阅读 · 2014年12月31日
Arxiv
0+阅读 · 6月9日
Arxiv
11+阅读 · 2023年8月28日
VIP会员
最新内容
《基于强化学习的自动化红队测试》
专知会员服务
3+阅读 · 7月23日
伊朗不对称防空战略的演进
专知会员服务
3+阅读 · 7月23日
对抗环境下超视距目标打击的情报支援
专知会员服务
10+阅读 · 7月22日
《无人机对海面作战影响评估》
专知会员服务
15+阅读 · 7月21日
印度精确打击与指挥架构的断层
专知会员服务
7+阅读 · 7月20日
相关资讯
【翻译技术速递】测评:免费的术语抽取工具
翻译技术沙龙
139+阅读 · 2019年11月2日
推荐系统产品与算法概述 | 深度
AI100
11+阅读 · 2019年6月13日
一种关键字提取新方法
1号机器人网
21+阅读 · 2018年11月15日
《软件方法》1-8章全部自测题更新内容
UMLChina
11+阅读 · 2018年3月26日
相关基金
国家自然科学基金
1+阅读 · 2015年12月31日
国家自然科学基金
8+阅读 · 2015年12月31日
国家自然科学基金
2+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
1+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
4+阅读 · 2014年12月31日
Top
微信扫码咨询专知VIP会员