原雅茹1, 谢斌红1, 潘理虎1,2, 张英俊1
(1.太原科技大学 计算机科学与技术学院, 山西 太原 030024; 2.中国科学院 地理科学与资源研究所, 北京 100101)
摘要:针对传统的软件开发方法每次开发同类系统时,很少能复用之前累积的开发经验,造成大量的重复性劳动的问题,提出了软件产品线开发方法,并将该方法应用于煤矿安全监控系统软件的开发中。在对煤矿安全监控系统产品线分析的基础上,针对监控系统的共性和变性特征,探讨了各特征之间的关系,使用基于特征的可变性建模方法构建了煤矿安全监控领域可变性模型。该模型可对监控系统的可变性进行有效管理,同时在特征依赖规则的指导下,可快速完成具体的可定制监控系统的需求特征分析,为后续煤矿安全监控领域可复用框架的实现奠定了基础。
关键词:煤矿安全监控; 软件产品线; 可变性模型; 可复用框架
Abstract:Traditional software development methods rarely can reuse accumulated development experiments when developed same system, and cause vast repetitive work. In view of the problem, development method of software product line was proposed and applied into the software development for coal mine safety monitoring and control system. On the basis of analysis of product line of the system, relationships among characteristics of the system were discussed according to commonality and variability characteristics of the system, variability model of the coal mine safety monitoring and control field based on feature modeling method of variability was built. The model can effectively manage variability of the system, and can quickly complete requirements analysis of specific customized monitoring and control system under guidance of the characteristics dependency rules at the same time, which lays foundation for following realization of reusable framework in the coal mine safety monitoring and control field.
Keywords:coal mine safety monitoring and control; software product line; variability model; reusable framework
随着科学技术和煤炭产业的发展,煤矿安全生产对安全监控系统提出了高安全性、高可靠性和高度集成化新要求,导致现有的安全监控系统暴露出越来越多的问题[1]。一方面,系统缺乏统一的标准和规范,各自封闭独立,无法进行有效的集成与扩展;另一方面,系统结构僵化、脆弱、不具有弹性,难以适应技术发展和需求变化要求,“软件危机”不断显露出来。因此,如何经济快速地开发出随需应变的、高质量的软件产品成为一个亟需解决的问题。
面对日益复杂的软件系统,软件复用被认为是解决“软件危机”的重要途径之一。软件产品线(Software Product Line, SPL)作为软件复用的前沿研究,已成为学术界研究热点,并在工业界得到初步应用[2-3]。软件产品线是一种面向特定领域的,以全面、系统的软件复用为基础的软件开发方法,主要目标是通过复用产品线核心资产实现一系列相似应用产品的开发,从而缩短软件上市时间,提高开发效率,降低开发成本及提高产品质量等[4]。而传统的软件开发每次面临同类系统的开发时,基本上都是从零开始,很少能复用之前累积的开发经验,造成大量的重复性劳动。针对传统软件开发方法存在的不足,本文研究了一种软件产品线开发方法,并将此方法应用于煤矿安全监控系统软件的开发中。通过对煤矿安全监控领域中的应用实体进行分析,识别出该领域的共性与变性,并对其进行适当设计和重用[5],最终构建出领域可变性模型。这为进一步实现煤矿安全监控领域可复用框架奠定了基础,也为同类系统定制化开发提供了核心资产,并在一定程度上解决了“软件危机”所带来的问题。
通过分析近年来所开发的煤矿安全监控系统发现,许多系统虽然采用的技术不同,但是都有许多相似功能[6-8],如图1所示。首先都有数据采集模块,负责采集监控对象的信息,然后经过数据的分析处理保存到数据库中,最后再以多种方式(列表或者图形)实时动态展示这些监控信息。这些系统的核心功能大同小异,业务流程基本相同,类似一个模板。
基于以上分析,本文提出一个煤矿安全监控系统的软件产品框架(Framework),该框架实现了大多数煤矿安全监控系统应具备的共性功能,并能对可变性进行有效的管理。监控系统框架开发完成后,当需要开发一个新的监控系统时,系统的共性功能由框架提供,可变部分利用组件技术进行二次开发和扩展。
图1 煤矿安全监控系统功能结构
Fig.1 Function structure of coal mine safety monitoring and control system
软件产品线的开发过程包括2个关键活动:领域工程(Domain Engineering)和应用工程(Application Engineering)[9],每个过程由需求、设计和实现3个阶段组成,如图2所示。其中领域工程阶段主要完成可复用核心资产的开发,应用工程阶段在领域工程的产出(可复用平台和核心资产)基础上完成具体的可定制产品的开发。领域工程中领域分析阶段(Domain Analysis)需求的可变性建模是实现煤矿安全监控系统产品线领域工程阶段的一项关键活动,也是实现煤矿安全监控领域可复用框架的重点和难点。
图2 软件产品线开发过程
Fig.2 Development process of software product line
可变性建模是软件产品线的关键问题,可变性模型实现了产品家族成员的共性和变性的描述[10]。本文在对煤矿安全监控系统产品线分析的基础上,针对监控系统的共性和变性特征,探讨了各特征之间的关系,最后使用一种基于特征的可变性建模方法[11]构建了煤矿安全监控系统的可变性模型。
特征是指从用户角度观察到的软件特性,其满足一个或者多个用户需求[12]。特征之间的关系通常出现在特征模型的父特征和子特征之间。识别出特征之间的关系,有助于识别出特征的可变性。在特征模型中表示的特征关系有2种:层次关系(Hierarchical Relationship)和依赖关系(Dependency Relationship)。
3.1.1 层次关系
(1) 组成关系(Composed-of):当父特征由多个子特征组成时,父特征与子特征之间是组成关系。如数据采集特征由采集、传感器显示和传感器报警3个子特征组成。
(2) 泛化/特化关系(Specialization):如果父特征是从子特征泛化出来的,那么父特征和子特征之间是泛化关系,子特征和父特征之间是特化关系。如报警特征的子特征有声音报警特征,声音报警特征又由蜂鸣器和报警喇叭2个子特征组成。所以,报警特征和声音报警特征之间是泛化关系。
(3) 可变点关系(Variation Point):如果父特征节点至少有一个直接的子特征,且子特征是可变特征,那么在父特征和子特征之间有可变关系,父特征节点和它的直接可变子特征一起叫做可变点。如传感器可以设置在多个地点,并且是可变的。
3.1.2 依赖关系
(1) 需要关系(Require):如果一个特征需要使用另一个特征来完成它的任务,那么这2个特征之间是需要关系。如传感器的报警功能依赖于对应的传感器。
(2) 排斥关系(Exclude):如果一个特征与另一个特征相互矛盾,它们不能同时配置,那么这2个特征是排斥关系。如断电和复电操作是互斥的。
(3) 影响关系(Influence):当选择一个特征配置应用产品时,这种选择对另一个特征产生了影响,那么这2个特征之间是影响关系。如传感器的设置地点与对应的传感器种类有关。
通过分析领域需求,并判别哪些需求是被该领域系统广泛共享的,哪些是可变的,最后确定领域的共性与变性特征。煤矿安全监控系统的特征分为必选、可选、单选和多选特征[13],见表1。识别出监控系统特征的可变性,有助于监控系统特征模型的构建。
表1 监控系统特征可变性分类
Table 1 Classification of feature variability of monitoring and control system
首先通过分析煤矿安全监控领域需求,确定监控系统的共性与可变性特征,然后识别这些特征之间的关系,最后构建出监控系统的可变性模型(Variability Model)和特征依赖图(Dependency Graph)。煤矿安全监控领域特征的可变性建模过程如图3所示。
图3 煤矿安全监控领域特征的可变性建模过程
Fig.3 Variability modeling process of coal mine safety monitoring and cotnrol field
通过参考AQ 6201《煤矿安全监控系统通用技术要求》[14]等标准和规范,并对若干典型的煤矿安全监控系统进行分析,最后采用FeatureIDE工具[15-16]构建了煤矿安全监控系统的可变性模型,如图4所示。
图4 煤矿安全监控领域可变性模型
Fig.4 Variability model of coal mine safety monitoring and control field
从图4可知,煤矿安全监控系统都要实现数据采集、信息传输、控制、报警、存储与查询及显示、打印等功能,同时部分系统还具有调节和决策功能。针对每个功能,可进一步细化它的子功能。
数据采集特征模型如图5所示。从图5可知,数据采集特征由3个子特征组成,必选特征为采集和传感器显示,可选特征为传感器报警。采集特征又包括传感器特征(模拟量和开关量)和传感器设置地点特征。
图5 数据采集特征模型
Fig.5 Feature modeling of data acquisition
通过分析煤矿安全监控系统特征之间的关系及约束,构建了该系统特征之间的约束规则。煤矿安全监控领域特征依赖图如图6所示。通过特征依赖图可清晰地展现出监控系统特征之间的依赖关系,为可定制煤矿安全监控系统的有效特征选择提供了依据。
图6 煤矿安全监控领域特征依赖图
Fig.6 Feature dependency graph of coal mine safety monitoring and control field
在4.2节所构建的煤矿安全监控领域可变性模型的基础上,使用FeatureIDE工具,可通过配置特征的方式快速为一个具体的可定制煤矿安全监控系统确定所属特征集。在构建完监控领域的可变性模型后,可以得到一个煤矿安全监控系统的特征集。图7为与图5中数据采集特征模型对应的可配置的特征集。在特征依赖规则的指导下,开发者可以快速完成可定制监控系统的需求分析工作,根据需要选择所需的特征,得到一个具体的煤矿安全监控系统的特征集,如图8所示。当选择甲烷传感器时,系统会根据特征间的约束规则自动选择传感器设置地点特征(煤与瓦斯突出)。当选择瓦斯传感器时,根据特征间约束规则,其安装位置有3种选择,此处需要手动选择传感器特征(工作面)。同理,在特征约束规则指导下,可完成其他特征的选择。
图7 煤矿安全监控领域数据采集特征
Fig.7 Data acquisition features of coal mine monitoring and control field
利用煤矿安全监控领域可变性模型可对煤矿安全监控系统特征的可变性进行有效的管理;同时在监控系统特征依赖规则的指导下,可快速完成具体的可定制煤矿安全监控系统的需求特征分析,在一定程度上解决了煤矿安全监控系统的规范化问题,也为同类系统定制化开发提供了核心资产,并为后续煤矿安全监控领域可复用框架的实现奠定了基础。
图8 可定制煤矿安全监控系统数据采集特征
Fig.8 Data acquisition features of customized coal mine safety monitoring and control system
参考文献(References):
[1] 郭勇义.煤矿安全生产监控系统集成关键技术及应用[M].北京:煤炭工业出版社,2012.
[2] BERGER T,RUBLACK R,NAIR D et al.A survey of variability modeling in industrial practice[C]// Proceedings of the Seventh International Workshop on Variability Modeling of Software-intensive Systems,Pisa,2013.
[3] BERGER T,NAIR D,RUBLACK R,et al.Three cases of feature-based variability modeling in industry[C]//Model-Driven Engineering Languages and Systems,Cham,2014:302-319.
[4] METZGER A,POHL K.Software product line engineering and variability management:achievements and challenges[C]//ICSE Future of Software Engineering Track,2014:70-84.
[5] SEIDL C,SCHUSTER S,SCHAEFER I.Generative software product line development using variability-aware design patterns[J].Computer Languages Systems & Structures,2016,51(3):151-160.
[6] 甄振.煤矿安全生产监测监控系统的设计[D].济南:山东大学,2013.
[7] 孙继平.煤矿安全监控技术与系统[J].煤炭科学技术,2010,38(10):1-4.
SUN Jiping.Mine safety monitoring and control technology and system[J].Coal Science and Technology,2010,38(10):1-4.
[8] 华钢,宋志月,王永星,等.物联网环境下煤矿安全监控系统体系架构研究[J].工矿自动化,2013,39(3):6-9.
HUA Gang,SONG Zhiyue,WANG Yongxing,et al.Research of architecture of coal mine safety monitoring and control system in the environment of Internet of things [J].Industry and Mine Automation,2013,39(3):6-9.
[9] ELFAKI A O,FONG S L,AIK K L T,et al.Towards detecting redundancy in domain engineering process using first order logic rules[J].International Journal of Knowledge Engineering & Soft Data Paradigms,2013,4(1):1-20.
[10] NIE K M,LI Z,FAN Z Q,et al.Systematic literarture review of software product line variability modeling techniques[J].Journal of Software,2013,24(8):2001-2019.
[11] 罗代忠,赵文耘.一种面向产品线的特征依赖建模方法[J].计算机应用,2008,28(9):2349-2352.
LUO Daizhong,ZHAO Wenyun.A feature dependency modeling method oriented product line[J].Computer Application,2008,28(9):2349-2352.
[12] 胡洁,王青.一种软件特征模型扩展和演化分析方法[J].软件学报,2016,27(5):1212-1229.
HU Jie,WANG Qing.Extensions and evolution analysis method for software feature models[J].Journal of Software,2016,27(5):1212-1229.
[13] 赵鄂,杨博文,杨贯中.一种适用于软件产品线的特征模型[J].计算机系统应用,2013,22(10):114-118.
ZHAO E,YANG Bowen,YANG Guanzhong.A feature model for software product line[J].Computer System Application,2013,22(10):114-118.
[14] 孙继平.AQ 6201《煤矿安全监控系统通用技术要求》修订意见[J].工矿自动化,2016,42(2):1-7.
SUN Jiping.Revision amendments of AQ 6201GeneralTechnicalRequirementsofCoalMineSafetyMonitoringSystem[J].Industry and Mine Automation,2016,42(2):1-7.
[15] PEREIRA J A,KRIETER S,MEINICKE J,et al.Feature IDE:scalable product configuration of variable systems[C]// International Conference on Software Reuse,Limassol,2016:397-401.
[16] THÜM T,KSTNER C,BENDUHN F,et al.FeatureIDE:an extensible framework for feature-oriented software development[J].Science of Computer Programming,2014,79(1):70-85.
YUAN Yaru1, XIE Binhong1, PAN Lihu1,2, ZHANG Yingjun1
(1.School of Computer Science and Technology, Taiyuan University of Science and Technology, Taiyuan 030024, China; 2.Institute of Geographic Science and Natural Resources Research, Chinese Academy of Science, Beijing 100101, China)
中图分类号:TD67
文献标志码:A 网络出版时间:2017-09-27 14:36
网络出版地址:http://kns.cnki.net/kcms/detail/32.1627.TP.20170927.1436.009.html
文章编号:1671-251X(2017)10-0043-05
DOI:10.13272/j.issn.1671-251x.2017.10.009
收稿日期:2017-04-12;
修回日期:2017-06-28;责任编辑张强。
基金项目:“十二五”山西省科技重大专项项目(20121101001);山西省中科院科技合作项目(20141101001);山西省社会发展科技攻关项目(20140313020-1)。
作者简介:原雅茹(1993-),女,山西运城人,硕士研究生,研究方向为软件体系结构、软件产品线开发, E-mail:398916756@qq.com。通信作者:谢斌红(1972-),男,山西万荣人,副教授,硕士研究生导师,主要研究方向为软件体系结构及服务计算,E-mail:xiebh_ty@163.com。
引用格式:原雅茹,谢斌红,潘理虎,等.煤矿安全监控领域可变性模型[J].工矿自动化,2017,43(10):43-47. YUAN Yaru, XIE Binhong, PAN Lihu, et al. Variability modeling of coal mine safety monitoring and control field[J].Industry and Mine Automation,2017,43(10):43-47.