文/魏永锋
安全生产领域软件复用技术研究
文/魏永锋
为了提升企业安全保障能力和政府监管能力,近年来各级安全监管监察机构和企业相继建设了数量众多的安全生产综合监管、隐患监管、危险源监控等软件系统,这些信息系统的设计方式,基本上是基于功能分解的系统构造方式,使得软件的刚性太强。并且这类安全生产软件在实施时要求按照企业或机构固有的业务进行定制,而安全生产领域一个重要特点是监管的行业众多,当监管的对象发生变化时,这种模式就不能够满足需要了,造成安全生产信息系统的二次开发工作量很大,并极易造成项目实施的失败。
通过对国家安全监管总局综合政务信息系统、行政执法统计系统、非药品类易制毒化学品等业务系统的分析,笔者提出一种可变性分析、可变点分析到可配置的柔性原型的一种适合安全生产领域的界面复用技术。通过该技术可以动态构建安全生产领域的软件系统,实现监管业务流程的动态调整,能够灵活适应企业及监管机构的战略思路、应用模式和组织结构的变化以及企业业务的可持续发展。这种基于原型的柔性技术使其开发和实施快速化,从而降低了开发和实施的风险和成本,为促进安全生产监管监察信息化系统的研究和建设提供了一种新的思路和途径。
安全生产领域信息系统的一个特点是监管对象众多,界面格式可变性强,不同的业务操作的界面元素既具有相似点又具有不同点,如各类监管对象的信息录入界面相似度很高,但后台数据处理部分基本一致。因此通过对安全生产信息化系统的界面可变性分析来提高整个系统的可重用性,可以起到事半功倍的效果。
1.分析工具选择
传统结构化和流行的面向对象两种主要软件工程设计方法,都只侧重软件内部模型的需求分析和设计。涉及到软件外部用户界面时,除了纯粹概念性的功能分析和表达外,并未提供完善的理论和表示支持。显然,这与用户界面在软件中重要的主导地位是不相符的。造成这一现状的原因,除了界面的分析设计缺乏足够的表达方法外,界面本身的复杂性恐怕是主要问题。为了解决这个问题,已经提出了许多界面工程设计和自动生成的模型和方法。我们采用界面分析中支持用户参与界面设计的FMP模型作为界面分析的模型工具,采用FODA(Feature-OrientedDomain AnalysisMethod,面向特征的领域分析方法)作为界面分析的方法,并采用UML作为描述工具。
2.界面模型可变性分析
为了归纳提取可复用元素,需要选择至少两个界面进行分析,现选择一个安全生产综合政务信息系统中的政务信息报送和请示报告起草两个界面进行分析,按照FMP分析模型,两个界面都包括数据模型、功能模型、表示模型三个模型视图。通过可变性分析,得出界面的表示模型是界面中可复用程度最高的部分,可复用元素与数据模型的关联度大,通过模型分析得到的元素进行可复用界面设计,可以最大化在安全生产信息系统内多个业务功能界面的可重用性。
3.界面元素可变点分析
根据界面模型分析的结果,结合特征分析方法,可以对表示模型中的可配置元素进行分析。将元素分解为具有一定语义功能的基本单位,称这些基本单位为特征,同一个特征在各个界面元素中会存在局部性的差异,为了表示这种差异性,可以用可变点和变体的概念来表示特征中存在的变化(可变点)及这些变化的不同表现方式(变体),特征可以有零个、一个或者多个可变点,每一个可变点还可以附加一个或者多个变体,变体是可变点的一个枚举项。
目前,界面设计方法主要包括两类,一类是把生成界面代码作为主要目的,根据设计人员对界面的定义生成出静态的界面;另一类是界面配置技术,在系统运行以前通过可视化界面配置工具对初始运行界面进行配置。采用配置技术可以动态实现对系统功能的裁减、重组、扩充,提高界面的可重用性。基于以上对界面可变性分析,提出一种基于原型的安全生产信息系统界面配置技术。设计及实现原理如图1所示。
图1 设计及实现原理
基于原型的安全生产信息系统界面设计思想,是将用户界面划分为不同的功能区域,每个功能区域由一个元素来实现和管理,通过界面元素可变性分析,提取元素中可变性后将元素可变特征抽取为参数,从而建设了一组可复用的原型库。在界面设计时通过选择组合需要的原型,并根据界面的功能模型及数据模型对原型进行参数化,在界面运行时自动将原型参数化为元素后,再动态组合成一个称为模板的可视页面中,从而实现了对原型的复用,实现了快速界面开发。
基于原型的界面设计方法,通过用户界面中原型的参数配置,自动生成用户界面,使得界面易于修改和扩展,极大地减少安全生产信息系统开发界面过程中繁杂、重复性的工作。
在设计了基于原型的安全生产信息系统界面设计框架基础上,对原型库、界面编辑器、动态组装器与编译器进行了实现。下图是基于原型的安全生产政务信息报送界面的实现示例:
图2 基于原型的界面生成实例
通过界面编辑器,在信息报送界面中使用了五个元素,根据元素的信息类别,标题、起草人姓名、起草日期、所属单位分别使用了原型库中的“EIMS单行”原型,信息正文元素选择“信息正文”原型,并通过指定原型的公文项属性,将不同元素分别与数据模型中的信息字段关联,原型实例化为元素并通过编辑器进行动态组装后生成源代码,后台编译器监测到代码的变动,对源代码进行动态编译从而生成可执行的界面。
基于原型的安全生产软件复用技术研究的目的,是通过柔性软件技术来适应安全生产信息系统个性化需求,来适应监管业务动态变化,从而增强安全生产软件开发的质量和效率、降低开发和实施的难度及成本、减少风险。通过领域分析抽取安全生产领域信息系统的共性和个性,从而设计出具有可配置机制的界面配置工具组件,通过配置来满足不同业务流程的个性化界面集,这样在安全生产监管的对象发生变化时,就可以使用工具进行再配置或再组合来调整系统,使其适合新的业务变化。同时这种体系结构对功能扩展具有开放性,在原有的原型集的基础上增加新的原型不影响原系统,使系统具有伸缩性和良好的可维护性。目前,这项研究成果已经在多个安全生产电子政务应用工程中获得了验证,并取得了良好的阶段性成果。
(作者单位:国家安全生产监督管理总局通信信息中心)
(责任编辑:古伟锋)