基于环境与神经网络的软件自适应建模
2017-11-22覃志武谢晋雄蔡伊娜闫毅宣
覃志武,谢晋雄,蔡伊娜,闫毅宣,2
1) 深圳市检验检疫科学研究院,广东深圳 518045;2) 河北师范大学数学与信息科学学院,河北石家庄050024
【电子与信息科学/ElectronicsandInformationScience】
基于环境与神经网络的软件自适应建模
覃志武1,谢晋雄1,蔡伊娜1,闫毅宣1,2
1) 深圳市检验检疫科学研究院,广东深圳 518045;2) 河北师范大学数学与信息科学学院,河北石家庄050024
软件需求模型的建模是保证软件可靠运行的基础.传统方法在建模过程中对环境需求考虑较少,对环境的变化无法有效识别和合理应对,导致软件生命周期缩短.现有自适应建模过程属于被动感知需求,欠缺对未来可持续发展的需求加以预测和应对,同样无法延长软件生命周期.为了尽可能延长软件生命周期,提高重构开发效率,提出一种针对环境变化的软件自适应建模方法.该方法将软件运行所处环境作为需求单独分析处理,首先识别环境用例,其次构建环境用例并将功能指标进行量化处理,采用BP神经网络预测环境需求变化并作出应对策略.与HAN-YANG-XING模型比较,该方法可主动感知需求,对环境变化进行预测并做出适应性判断,有效延长软件生命周期.
软件工程;软件自适应;环境需求;软件建模;神经网络;环境用例预测
随着软件应用范围越来越广,软件系统运行的环境也越来越复杂且充满不确定性.这种情况的广泛存在使软件开发者希望软件建模过程具有自适应性特征,能针对不同环境自动做出调整和变化.这不仅可以降低软件开发成本,也有利于提高软件的可靠性.在开发软件系统时,软件的环境适应性需求是开发软件的重点,为此需要明确感知环境变化.
为提高软件自适应能力,学者们做了大量研究.文献[1-2]从需求建模分析角度综述了近年各种自适应建模方法,这些方法虽然能开展自适应建模,但模型的适用范围窄,且效率普遍偏低.文献[3]根据软件自适应理论,提出一种软件自适应环模型,但该模型缺乏有效分析和验证,无法保证软件可靠性.文献[4-5]尝试用可视化的建模用于软件自适应建模,但缺乏系统工程研究,不能充分满足自适应需求.文献[6-8]将可视化与形式化建模方法相结合用于软件自适应的建模与形式化验证,但没有考虑到模型转换、自适应特征等因素.文献[9-10]提出RELAX语言是一种表达自适应需求的有效方式,但这种需求描述性语言目前尚无法清晰描述具体的适应性需求.
为解决上述问题,文献[11]在IBM自治计算模型[12]基础上,提出一种改进型MAPE-K模型(简称HAN-YANG-XING模型),其建模过程如图1.该模型将软件自适应环中的环境、用户和软件自身这3个要素实现动态交互,完成分析后利用UML扩展软件和时间自动机进行建模.其优点是通过构造结构模型和行为模型,并利用时间自动机加以验证实现良好的适应性,建模效率高、可靠性好.但也存在以下弱点:① 该模型没有将用户需求和环境需求分开建模,当环境发生未知变化时,软件的建模工作需要重新开始,而用户需求仍需要考虑到建模过程中,建模效率将急剧降低;② 该模型通过对各类需求监视、分析、规划及执行4个步骤实现软件自适应,属被动感知需求方式,缺乏对需求变化的预测,在需求变化后才能做出调整,灵活度差.
图1 HAN-YANG-XING模型Fig.1 The HAN-YANG-XING model
文献[13]介绍了BP神经网络在日光温室室温预测的一种应用,利用神经网络对室温进行预测具有速度快、效率高的效果.文献[14-16]介绍了基于深度神经网络对训练需求进行预测的模型,其利用神经网络对多种场景需求进行预测的方式值得学习.
本研究针对HAN-YANG-XING模型的缺陷,结合神经网络预测的特点,提出一种基于环境与神经网络的软件自适应建模方法,将用户需求和环境需求分开分类处理,同时借鉴文献[17]中的基于反馈控制的自适应需求识别与分析方法,以实现快速精确自适应.
1 自适应软件反馈控制模型
为构建基于环境自适应建模方法,本研究给出一种自适应控制模型,如图2.该模型具有环境反馈回路和用户需求反馈回路,分别用于监视环境变化和用户需求变化.在某些环境因素发生变化时,该模型的反馈回路可以弥补需求建模过程中不能对环境需求进行调整的不足.
图2 自适应反馈控制模型Fig.2 The adaptive feedback control model
由于HAN-YANG-XING模型没有将用户需求和环境需求区分开,不利于实现软件对环境的自适应性.鉴于此,本研究提出一种可进行自适应环境建模的改进型HAN-YANG-XING模型,其控制逻辑分为环境自适应逻辑和需求自适应逻辑,如图3.
下面重点讨论环境自适应逻辑,其由对软件运行所需的环境进行感知、一致性判断、分析、适用判断、预测及执行6部分组成.其中,感知是建模人员对环境特征及软件在此环境运行时的各种指标进行提取;一致性判断是指感知环境需求后将获取的需求与之前一次建模预测的需求结果进行比对,判断新需求与预测需求是否一致;分析是指根据软件综合环境的特征,将软件在此环境运行过程中可能发生的错误异常进行判定分析,并设计规划出软件因环境产生错误异常时应该采取的应对措施和动作;适用判断是指对所采取措施和动作的有效性进行判断,在措施有效的情况下进行执行,无效的情况下将异常作为环境需求转到需求分析阶段;预测是利用将本次执行建模过程中的需求进行量化处理,再输入神经网络进行预测可能出现的需求;执行是指根据对应的需求构建用例执行软件应采取的措施.
图3 改进的HAN-YANG-XING模型Fig.3 The improved HAN-YANG-XING model
2 环境自适应需求建模分析
2.1 环境建模方法
本研究对环境自适应需求建模将以构建环境用例并建模的方式进行说明.在建模过程中,构建环境用例从感知步骤开始,环境用例生存周期贯穿整个建模周期.
用例建模的一般步骤是:① 对参与者(包括环境)进行识别;② 用例获取;③ 用例组织;④ 构建用例;⑤ 用例功能与预测结果的一致性判断;⑥ 分析用例做出应对执行方案;⑦ 用例适用判定;⑧ 用例功能预测.
构建环境用例后需将环境用例的功能指标量化处理. 量化处理方法主要通过编制用例功能指标表.指标表内容包括本身已经量化的数据,例如,接口数量、接口数据位数及接口数据长度大小等.对于不可量化的数据可利用专家打分法进行量化处理.
在一致性判断阶段,需要对量化好的功能指标与上一次预测好的指标进行比对.对结果相似或一致的功能指标,进入预测策略库调取预先设计好的策略.对不一致的功能进入分析阶段分析提出实现需求功能的方法.在完成分析过程后需要对环境用例是否适用于此环境进行判断.为保证软件良好的环境适应性,需要检查软件可能运行的全部环境和功能.当环境用例被判断为不能适应环境时,需要返回建模的初始阶段对用例重新规划分析,直到能适应环境及其变化为止.在对环境用例进行适应性分析时,应对不同异常的优先等级加以区分,对一些不重要的异常可加以忽略.对不适用的用例及功能需将其重置为环境需求,并对其重新进行用例感知.完成软件需求适用判断后,需根据本次建模和历史版本建模用例功能的指标数据对软件未来可能出现的环境用例变化进行预测,预测方法使用3层BP神经网络[18].预测完成后将预测结果保留并根据该结果制定预测策略库.制定预测策略可以在软件策略执行完成后进行,不占用软件开发执行阶段的资源.将预测的策略利用非执行的资源进行制定不仅不会影响本次建模过程,还可以节省下一次建模的资源.
2.2 环境自适应的需求预测
2.2.1 环境用例识别
环境用例识别首先要确定系统环境边界,找出系统的参与者.重点是选取受环境变化影响较大的功能和参数作为参与者之一进行调查,通过了解环境需求希望系统所提供的功能,并由此确定用例.定义非用户的需求,关系到将系统正常运行的底层软硬件需求作为环境需求,例如,接口数据长度增减的需求、系统数据库数据表类别数量增减的需求等.环境作为参与者时,要注意必须真实反映环境的状态和变化.深圳跨境电子商务检验检疫监管系统[19-20](简称跨境电商CIQ系统)环境用例如图4,限于篇幅仅展示最简略的用例图,显示系统实现最基本功能所需的几种接口,且主要选取出入境检验检疫综合业务管理系统(简称CIQ2000系统)接口作为范例展示.
由图4可见,业务用例包括备案、查验和管理3项接口业务,企业开展跨境电商业务之前,必须在CIQ系统中对企业信息及货物信息进行备案,并随时接受检验检疫局的查验,而检验检疫局则对企业与货物的备案信息进行核查,开展日常的查验和管理工作;环境用例有备案、查验、溯源监管及管理4项接口环境,其中,企业和检验检疫局的接口环境与业务用例中的接口业务一一对应.不同之处在于环境用例还要综合考虑CIQ2000接口环境和南方电子口岸接口环境.CIQ2000接口环境包括备案、查验和溯源监管;南方电子口岸接口环境则包括备案和查验.需要说明的是,CIQ2000系统为深圳出入境检验检疫局现有一般贸易货物报验系统,该系统开发于2000年,现已不适于跨境电子商务业务,但部分进出口报检业务审批功能仍必不可少.
图4 业务用例与环境用例对比Fig.4 Comparison of business and environment use cases
对环境用例要识别直接观测对象和间接观测对象.总体来说,在用例规划阶段首先要对环境需求进行拆分,将各种环境需求从总体环境需求中拆分出来单独分析.在获取环境用例后,组织用例将得到的用例按优先级划分,对应环境确定开发目标,判断环境用例是否需要补充后对环境用例进行汇总.完成组织用例后,要对用例进行详细描述.
表1列举了一个简单的例子用以展示环境用例描述.环境用例描述需要包含环境用例的各种基本环境要素.环境用例描述的关键在于需要将功能的指标进行量化处理.
2.2.2 环境用例的量化处理
在对环境用例进行详细描述后,分析人员需要根据用例的复杂程度决定是否需要将部分功能进行数据量化处理,对已有数据的功能描述可以直接使用.如果数据数量级较大可以进行一定处理,使其变为数量级较小的数据,处理数据的方法根据实际情况具体而定.对数据处理的目的是便于进行预测.
表1 用例描述基本格式
2.2.3 环境用例的预测
环境用例的预测是指在本次建模过程中提前预测下一版本的需求,并在重构建模之前的空闲阶段研究出预计实施方案.例如,检验检疫业务类型发生变化需要构建下一版本软件的情况下,如果建模人员提前获悉需求并利用空余时间提前做出准备,可以大大提高下一版本建模效率.
跨境电商CIQ系统需要处理大量的数据,而且检验检疫业务需要根据国内外疫情疫病及商品质量情况进行业务调整,例如,在发生检验检疫重大风险或危害的情况下,需要加大监管力度,增加抽检业务类型,增加企业需要申报或备案的资料数量.
由于抽检指标项目的增多导致接口中传输查验数据的规模会增大,数据长度、类型及存储空间大小都会发生变化.若提前预留大量的接口和资源会延长开发周期,增加开发成本,造成开发资源的浪费.而检验检疫关乎国门安全以及产品质量安全,在业务变化情况下,对下一版本系统的升级要求极其迫切,短期内进行大规模升级又会增加开发成本.所以根据商品质量情况和风险水平以及进出口量对接口传输数据的规模进行预测十分迫切.
为实现敏捷开发,本研究选用BP神经网络实现对环境需求预测.通过构建3层BP神经网络实现对各指标进行预测,详见表2(2010—2016年).由于进口货物种类繁杂,不同货物指标数量不同,且针对不同货物有专门查验标准,因此,本研究仅选取某商品的总查验指标数量和总进口批次、风险指数及企业数量作为范例.表2中数值需要进行量化处理使其数值均处于0~0.9.选取1~10月的数据作为训练集,将11和12月各指标数值作为期望值用于训练神经网络.
表2 提取的某商品环境用例功能指标数值表
范例选取2010—2016年总共70个月数值进行分析,如图5.该神经网络输入层有7个节点.实际中为提高准确度可以选较少数据进行分析得到下一年度预测数值.可以确定的是神经网络输出节点只有1个.根据经验公式
其中,i为隐含层神经元个数;n和m分别为输入、输出层节点个数.a为调节常数,取经验值4,可得i=12. 实际工程应用中,节点个数还要通过多次训练进行调整,需要尝试利用同一训练集训练不同节点数目的神经网络,从中选择误差最小的神经网络节点数作为最终结果.
图5 神经网络结构Fig.5 Neural network structure
本研究构建的3层BP神经网络其传输函数分别选用logsig(单极性S函数)、tansig(双极性S函数)和purelin(线性函数).具体训练时,训练函数选择 traingdx,并设定训练次数为5 000次、学习率为0.15.该设定决定了寻解过程中的步长,步长太大,就会搜索不仔细,可能跨过优解,而步长太小,寻解过程则较慢.本研究学习率为计算机多次尝试所得结果,为便于建模方法的应用直接设定为0.15.
2.2.4 环境用例预测结果处理
根据环境用例预测结果可得总查验指标数量、总进口批次、总风险指数和优秀企业数量4个指标,本研究将风险指数作为首要参考数值.当风险指数大于0.6时,说明存在较大风险,执法时会针对该问题作出判断,并增加查验指标数量,从而加大监管力度.当风险指数连续大于0.6超过4个月,则需要将接口中的查验指标数量提高2倍以上以备不时之需.同时,当预测进口批次相比上一年度增长一倍,也应做好对相应接口中的指标数量做出调整的准备.
2.2.5 环境用例适应性判断
用例构建完成后,需要对环境用例是否适用于此环境进行判断.由于软件基本功能已经明确,所以对环境适应性判断的前提必须保证基本功能在不同环境下的可用性.首先要判断在预设的环境下软件基本功能是否可用,然后检查在环境发生变迁的时候功能是否也可用.为保证软件良好的环境适应性时,需要检查软件可能运行的全部环境和全部功能.在发生异常时,可采取改变某个基本参数值、松弛某个目标以实现优先级更高的目标及完成不同的任务以替换出现异常的任务.
3 效果分析
将本研究方法与HAN-YANG-XING模型分别针对跨境电商CIQ2000系统进行建模比较时,其效果分析如下:
1) HAN-YANG-XING模型在建模过程中没有将环境需求和用户需求区分开,当需要兼容南方电子口岸等接口升级,或者系统在企业和检验检疫局等参与者的运行环境发生变化,环境需求将可能发生变化.此时软件就需要进行重新建模,用户需求仍需要参与到建模过程中.于是在第2次建模和验证的过程中仍要耗费大量的精力.在这种情况下采用本方法可以略过用户需求的部分,有效针对环境变化采取策略解决异常.
2) HAN-YANG-XING模型未对环境变化加以预测.虽然适用于对开发周期要求较低的软件系统,但系统环境发生变化后软件升级的需求较为迫切,且成本控制较为严格,例如,海关和检验检疫等关系进出口贸易的重点领域,缺乏对需求的预测判读,不利于进行快速升级和敏捷开发,同时HAN-YANG-XING模型的需求分析过程属于被动感知需求,不利于提高软件生命周期.
此外,本方法在深圳前海湾保税港区取得了较好的应用.以2015年为例,前海共备案跨境电商商品36 603品种次、进口跨境电商商品1 244批次、货值10.77亿元、发出订单邮包1 013.47万单,同比分别增长138倍、38倍、66倍和201倍,涉及备案企业247家.利用本方法建模的跨境电商CIQ系统顺利进行了多次升级,有效应对了大规模数据增长量,为国门安全保障发挥了重要技术支撑效用.
结 语
通过分析现有软件自适应建模方法的不足,首先给出自适应软件反馈控制模型,并阐述其在软件开发时所起到的关键作用.随后对环境用例分析建模开展研究,针对其主要过程,包括环境用例识别、量化处理、BP神经网络预测、结果处理及适用性判断等进行细致分析,并以跨境电商CIQ系统为例详细描述该方法的具体应用.结果证明,采用本方法进行环境需求分析会很大程度上减小开发难度,有效提高模型环境适应性,便于软件的重构.
引文:覃志武,谢晋雄,蔡伊娜,等. 基于环境与神经网络的软件自适应建模[J]. 深圳大学学报理工版,2017,34(6):570-576.
/
[1] Cheng B, Lemos R, Giese H, et al. Software engineering for self-adaptive systems: a research roadmap[M]. Berlin: Springer-Verlag, 2009.
[2] Yang Zhuoqun, Li Zhi, Jin Zhi, et al. A systematic literature review of requirements modeling and analysis for self-adaptive systems[C]// International Working Conference on Requirements Engineering: Foundation for Software Quality. Essen, Germany: Springer-Verlag, 2014: 55-71.
[3] 丁 博, 王怀民, 史殿习. 构造具备自适应能力的软件[J]. 软件学报, 2013, 24(9):1981-2000.
Ding Bo, Wang Huaimin, Shi Dianxi. Constructing software with self-adaptability[J]. Journal of Software, 2013, 24(9): 1981-2000.(in Chinese)
[4] 杨 帆, 蔡 勋, 刘衡竹. 一种自适应可视化软件结构[J]. 系统仿真学报, 2006, 18(z1):333-335.
Yang Fang, Cai Xun, Liu Hengzhu. A sort of flexible visualization architecture[J]. Journal of System Simulation, 2006, 18(z1):333-335.(in Chinese)
[5] Dobson S, Sterritt R, Nixon P, et al. Fulfilling the vision of autonomic computing[J]. Computer, 2010, 43(1): 35-41.
[6] Ramirez A, Cheng B. Verifying and analyzing adaptive logic through UML state models[C]// IEEE International Conference on Software Testing, Verification and Validation. Lillehammer, Norway: IEEE, 2008:529-532.
[7] Luckey M, Gerth S, Soltenborn C, et al. QUAASY: quality assurance of adaptive systems[C]// ACM International Conference on Autonomic Computing. Karlsruhe, Germany: ACM, 2011:179-180.
[8] Luckey M, Engels G. High-quality specification of self-adaptive software systems[C]// The 8th International Symposium on Software Engineering for Adaptive and Self-Managing Systems. San Francisco, USA: IEEE, 2013:143-152.
[9] Whittle J, Sawyer P, Bencomo N, et al. RELAX: incorporating uncertainty into the specification of self-adaptive systems[C]// IEEE International Conference on Requirements Engineering. Atlanta, USA: IEEE, 2009:79-88.
[10] Whittle J, Sawyer P, Bencomo N, et al. RELAX: a language to address uncertainty in self-adaptive systems requirement[J]. Journal of Requirements Engineering, 2010, 15(2): 177-196.
[11] 韩德帅, 杨启亮, 邢建春. 一种软件自适应UML建模及其形式化验证方法[J]. 软件学报, 2015, 26(4):730-746.
Han Deshuai, Yang Qiliang, Xing Jianchun. UML-based modeling and formal verification for software self-adaptation[J]. Journal of Software, 2015, 26(4): 730-746.(in Chinese)
[12] Chess D, Kephart J. The vision of autonomic computing[J]. IEEE Computer, 2003, 36(1):41-50.
[13] 刘淑梅, 薛庆禹, 黎贞发, 等. 基于BP神经网络的日光温室气温预报模型[J]. 中国农业大学学报, 2015, 20(1): 176-184.
Liu Shumei, Xue Qingyu, Li Zhenfa, et al. An air temperature predict model based on BP neural networks for solar greenhouse in North China[J]. Journal of China Agricultural University, 2015, 20(1): 176-184.(in Chinese)
[14] Li Jun, Mei Xue, Prokhorov D, et al. Deep neural network for structural prediction and lane detection in traffic scene[J]. IEEE Transactions on Neural Networks and Learning Systems, 2016, 28(3): 690-703.
[15] Tan T, Qian Y,Yin M. Cluster adaptive training for deep neural network[C]// Icassp IEEE International Conference on Acoustics. Brisbane, Australia: IEEE, 2015:4325-4329.
[16] 熊 伟, 李 兵, 陈 军, 等. 一种基于预测控制的SaaS系统自适应方法[J]. 计算机学报, 2016, 39(2):364-376.
Xiong Wei, Li Bing, Chen Jun, et al. A self-adaptation approach based on predictive control for SaaS[J]. Chinese Journal of Computers, 2016, 39(2): 364-376.(in Chinese)
[17] 刘 春, 张 伟, 赵海燕, 等. 基于反馈控制的软件适应性需求的识别与分析[J]. 软件学报, 2015, 26(4):713-729.
Liu Chun, Zhang Wei, Zhao Haiyan, et al. Software adaptation requirements identification and analysis based on feedback control[J]. Journal of Software, 2015, 26(4):713-729.(in Chinese)
[18] Cheng Zunshui, Li Dehao. Stability and hopf bifurcation of a three-layer neural network model with delays[J]. Neurocomputing, 2016, 175: 355-370.
[19] 深圳市市场监督管理局.SZDB/Z 183—2016 跨境电子商务通关 检验检疫系统架构[S].
Market and Quality Supervision Commission of Shenzhen Municipality. SZDB/Z 183—2016 Cross-border electronic commerce clearance-system architecture for inspection and quarantine[S].(in Chinese)
[20] 深圳市市场监督管理局.SZDB/Z 184—2016 跨境电子商务通关检验检疫业务流程[S].
Market and Quality Supervision Commission of Shenzhen Municipality. SZDB/Z 184—2016 Cross-border electronic commerce clearance-service process for inspection and quarantine[S].(in Chinese)
【中文责编:方圆;英文责编:木柯】
2017-05-20;Accepted2017-07-29
Senior Engineer Cai Yi’na. E-mail: 1530210935@qq.com
Softwareadaptivemodelingmethodbasedonenvironmentandneuralnetwork
QinZhiwu1,XieJinxiong1,CaiYi’na1,andYanYixuan1,2
1) Shenzhen Academy of Inspection and Quarantine, Shenzhen 518045, Guangdong Province, P.R.China 2) College of Mathematics and Information Science, Hebei Normal University, Shijiazhuang 050024, Hebei Province, P.R.China
The software requirement model is the basis to improve the development efficiency and ensure the reliable operation. However, the traditional methods can neither distinguish the environment requirements during the modeling process, nor effectively identify and give reasonable response to the environment changes. Meanwhile, the existing software adaptive modeling process belongs to passively sensing requirements and does not effectively predict and deal with future requirements. In order to solve the above-mentioned problems, a novel software adaptive modeling method is proposed to adapt to the environment changes. The method firstly utilizes the software environment in which the software is running as a separate requirement analysis. Then, the environment use case is identified and constructed and the function index is quantified. Finally, the BP neural network is used to predict the change of environment requirements and make the corresponding strategy. Compared with the HAN-YANG-XING model,the proposed method can actively sense requirements,predict the environmental changes and make adaptive judgments,which can effectively extend the software life cycle.
software engineering; software adaptive; environment requirement; software modeling; neural network; environment use case prediction
Foundation:Science and Technology Project of General Administration of Quality Supervision, Inspection and Quarantine of China (2015IK048,2015IK254); Science and Technology Support Project of Certification and Accreditation Administration of China (2016RJWKJ018); Shenzhen Science and Technology Application Demonstration Project (KJYY201602291416 21130); Shenzhen Technology Development Project (CXZZ20140419150802007, CXZZ20150504163316885)
:Qin Zhiwu, Xie Jinxiong, Cai Yi’na, et al. Software adaptive modeling method based on environment and neural network[J]. Journal of Shenzhen University Science and Engineering, 2017, 34(6): 570-576.(in Chinese)
TP 311
A
10.3724/SP.J.1249.2017.06570
国家质检总局科技计划资助项目(2015IK048,2015 IK254);国家认监委认证认可科技支撑计划资助项目(2016RJWKJ018);深圳市科技应用示范资助项目(KJYY20160229141621130);深圳市技术开发资助项目(CXZZ20140419150802007, CXZZ20150504163316885)
覃志武(1964—),男,深圳市检验检疫科学研究院高级工程师. 研究方向:软件工程与应用. E-mail:qzw@szciq.gov.com