APP下载

基于分层递增验证的可信管理软件构造方法

2012-09-02战德臣冯锦丹聂兰顺徐晓飞

哈尔滨工业大学学报 2012年5期
关键词:可信性管理软件度量

战德臣,冯锦丹,聂兰顺,徐晓飞

(1.哈尔滨工业大学计算机科学与技术学院,150001哈尔滨;2.北京卫星制造厂,100094北京)

管理软件被广泛应用于工业、商业、服务业以及政府部门,对企业和组织的运行起到关键性的支撑作用,因此软件是否具有可信性至关重要.管理软件可信性问题的典型表现包括:软件系统中复杂的业务逻辑处理是否正确;财务信息、核心商业机密、技术机密等能否保证不会被非授权人员访问和纂改;软件系统的流程是否不会走到非预期的状态;各种路径是否已被完整地覆盖和解释;软件系统的集成和互操作是否如其所声明的工作;所有数据是否被正确的集成和完整的处理;软件系统能否适应其所声明的多样化、多变性需求.可信的管理软件如何快速低成本的开发以支持复用和满足不断变化的业务需求,给管理软件研发人员提出了一个更为艰巨的任务.

为了解决管理软件的快速开发问题,领域内广为使用的是对象管理组织提出的模型驱动的体系结构(Model Driven Architecture,MDA)规范[1].其核心思想是将软件系统开发这样一个复杂的大问题进行多步求解和逐步求精,以保证软件符合需求.从软件可信性的角度看,借助MDA将软件系统的可信性问题可分解为软件模型的可信性问题和软件代码的可信性问题,即跨越了软件可信性与用户可信需求之间的鸿沟,自动化的模型转换与代码生成有助于保持可信性的自上而下传递.然而MDA并未将可信软件的构造作为其主要目的,且在模型驱动的软件开发方法中也未显式地将软件可信性的度量、验证、优化等过程和方法纳入其中.因此在MDA中引入可信相关的方法,使之形成模型驱动的可信软件构造方法,是解决可信管理软件构造问题的新思路.本文在总结目前相关研究的基础上,提出一种基于分层递增验证的可信管理软件模型驱动架构,以此为企业管理软件领域的研究人员提供一个基本的理论参考框架.

1 相关研究

1.1 软件可信性

可信软件的研究主要集中在复杂环境下嵌入式软件和开放环境中网络软件,对可信软件的含义存在相似的理解.高可信系统能够以可理解可预期的形式运行、抵御恶意侵袭和事故,不会引起意外或不期望的损失[2].文献[3]是可信计算机组织(TCG)用实体行为的预期性来定义可信:如果它的行为总是以预期的方式,朝着预期的目标,则一个实体是可信的.一般认为软件的可信性包含以下属性[4-7]:可靠性(Reliability),可用性(A-vailability),防危性(Safety),机密性(Confidentiality),生存性(Survivability),安全性(Security),容错性(Fault tolerance),实时性(Realtime),完整性(Integrity)和可维护性(Maintainability)等,其中可靠性被认为是可信软件最重要的属性.当前研究较为成熟的是针对可信性中某个关键性质而展开的,例如研究在嵌入式软件和网络应用软件中的可靠性度量评测与保证技术.在管理软件研究领域,客户对软件的可信性需求所描述的不一定是软件可靠性这样单一的属性,还可能包含其他的性质.因此只有当软件满足客户的需求规范中描述的所有性质时,才可以认为软件是可信的.

1.2 模型驱动架构

围绕MDA的分层建模、转换、转换过程中的一致性保持、代码生成等问题,国内外学者进行了广泛的研究.文献[8]在MDA的基础上嵌入执行确认活动,提出了一种新SPMDA结构,建立多链排队网模型(Multi-chain Queuing Network model,QN)到LQN(Layered Queuing Network)的转换,使用LQN描述系统的服务需求与硬件资源的关系和参数,用配置图建立基于构件的软件模型到平台环境的映射.国外在MDA领域的研究覆盖范围广泛且较为深入,相对而言国内关于MDA理论方面的研究内容主要集中于MDA思想在系统开发上的理论指导,而抽象层度较高的建模方法论、模型转换以及建立特定领域内完整MDA模型规范等方面的研究很有限,当前主要应用于嵌入式领域和企业管理软件领域.MDA研究仍存在的不足主要表现为对语义的映射考虑不足,缺少对模型与代码的可信性度量与验证,缺乏基于MDA构造完整软件系统的系统性实践和集成平台.

1.3 基于构件的可信软件构造与验证

基于构件的软件开发成为降低软件开发成本的重要方法之一[9].基于构件的可信软件开发过程离不开对其可信性的度量与评测,软件可信性度量成为可信软件研究的核心问题.在软件开发生命周期的各阶段中都可以对可信性进行不同角度的度量.1)在软件设计阶段采用预言方式发现并解决可能潜在的问题.可建立系统的描述模型,如基于RADL的软件体系结构模型或动态错误树系统模型[10],通过模型检测设计中可能存在问题予以较早解决,有助于较早减少软件错误来增强可信性.2)软件开发阶段主要进行预测性度量与跟踪修正.系统可信性的度量与验证有两个层面,即系统模型的可信性验证[11]和程序代码的可信性验证[12].3)在软件测试阶段,主要是基于测试数据进行软件测试和精确评估.软件错误检测是软件测试阶段的主要任务.Bev Littlewood等[13]认为不同的软件设计对应着不同的错误检测方案,提出一种多样错误检测度量方法.4)在软件应用过程中使用实际数据进行实际评测[14].5)也有部分研究考虑软件生命周期中一些阶段之间存在不同或相关的影响因素,需要从整体上予以考虑.虽然有研究覆盖了软件生命周期的全过程,但也只是针对一种或两种关键性质进行跟踪度量与改善.从软件实现的技术角度考虑,对于多个可信性质的度量技术往往是分离的,比如容错技术、调度、形式化验证等技术,这些技术应用于不同的领域,没能针对统一的可信性形成一个集成技术平台.针对上述问题,本文提出在可互操作、可配置、可执行的模型驱动体系结构(Interoperable Con-figurable Executable Model Driven Architecture,ICEMDA)[15]中融入可信性度量与验证是构造可信管理软件的一种有效途径,其可提供一套系统性的可信软件开发理论指南和集成平台.

2 基于分层递增验证的可信管理软件模型驱动构造方法体系

定义1(管理软件可信性)管理软件可信性是指软件具备可信性意味着软件系统按用户期望的方式运行,不会导致非预期的状态,换言之,软件系统的可信性是其行为对声明的符合程度.

基于这种理解,本文在ICEMDA的管理软件开发方法中,显式地引入软件可信性的度量、计算、判定及改善,实现PSM模型=>构件代码=>软件系统的增量式可信性验证与构造,最终实现软件系统可信,即其行为符合用户期望这一目标.

ICEMDA将软件开发/构造过程划分为4个层次:1)面向过程与对象技术相结合的CIM/PIM层;2)向下转换为可支持实现的PSM层;3)进一步转换到以干业务构件为核心的代码层;4)干业务构件被部署到系统层且被配置成面向特定需求的复用业务构件,并通过工作流引擎将复用业务构件和工作流可执行模型组装成完整的软件系统.ICEMDA的每个层次都有要构造的实体,其可被逐层转换.

定义2(ICEMDA各层次的构造体)把ICEMDA各阶段中所要构造的目标实体,如CIM模型、PIM模型、PSM模型、构件代码(干业务构件、复用业务构件)和软件系统等,称作ICEMDA各层次的构造体.

定义3(构造体具有可信性)给定可信性度量指标集Φ,(用户的)可信性需求φ是定义在指标集Φ上的一些约束,M是构造体的某种面向可信性计算的描述模型,ξ是一组度量/计算方法,对Φ中的每个指标,ξ能够度量/计算M的指标值,称M是可信的,当且仅当ξ(M)|=φ,其中|=是满足关系.

具体而言,构造可信的管理软件系统就是逐步建立满足客户需求的可信构造体,即建立可信的工作流模型和业务构件PSM模型,将其转换为CODE层可信的干业务构件,在系统层面配置出可信的工作流可执行模型和可信的复用业务构件,最终组装成可信的软件系统.

图1给出了基于ICEMDA的可信管理软件构造方法架构.此构造方法由4个核心步骤组成:

图1 基于分层递增验证的模型驱动软件构造方法

1)可信度量指标集Φ的定义及可信性需求φ描述;2)将面向开发的构造体转化为支持可信性计算模型M;3)可信性指标的度量、计算问题ξ,包括如何由构成要素的可信性指标计算整体的可信性;4)调整构造体的构成要素,使可信指标得以改善.客户需求随着模型到代码的实例化过程逐步细化且严格,对ICEMDA各层次构造体具有不同的可信性需求.

将ICEMDA各层次上原本以构造/开发为目标的构造体,转换为面向可信性度量与验证的可信性描述模型,以可信性度量指标体系为基础,计算可信性描述模型的可信性影响指标,根据综合可信性指标计算结果判定该构造体的可信性,基于可信性判定对构造体进行多目标可信优化.

ICEMDA各层横向采用适当的可信性计算方法度量与验证构造体对客户需求的满足度,出具可信度证明,纵向基于构造体可信性保持与递增的策略,确保可信性从构造上游到下游的传递性.采用基于ICEMDA的可信构造方法,将模型驱动的软件开发方法和可信性度量与验证技术结合起来,将构造可信的大型软件系统分解为逐层建立可信构造体的问题,以实现可信软件分层验证的增量式开发.

可信管理软件的构造过程中存在3个关键性问题:1)有效的表征客户可信需求,并将其合理的分布到软件开发的不同阶段进行验证;2)在软件开发的不同阶段对软件系统的构成要素进行逐步、增量式可信性验证;3)保证可信性伴随着各种要素的转换和组装被不断的保持与增强的构造技术.本文以业务构件PSM模型为例,说明其可信性度量与验证的具体过程.

2.1 支持MDA的可信性度量指标体系

软件系统的可信性是多种性能度量的综合指标,如可从可靠性、安全性、效率、适应性等方面对可信性进行度量来采用可信度衡量一个软件系统的可信性高或低.可信性度量指标体系中存在两类指标:可信性指标和可信性影响指标.这与软件可信性密切相关,面向终端用户、分析设计人员,且反映其软件外特性的度量指标称为可信性指标,每个可信性指标可能受到存在于软件系统内部的若干关键特性的影响,这些关键特性间接影响到软件系统的整体可信性能,将这些面向软件开发人员且影响可信性的软件内特性,称为可信性影响指标.

PSM模型层、代码层和系统层的构造体形态与内容不同,其可信性指标与可信性影响指标也存在差异,跨ICEMDA各层面的可信性度量指标集如表1所示.在ICEMDA各层次上对可信度量指标进行划分的过程中,需要满足两个基本原则:1)单层内目标针对性强;2)不同层间指标分布合理,基于可信保持减少层间同类型指标重复.

表1 支持MDA的可信性度量指标体系

PSM模型相对于PIM层包含了特定的实现机制,参数类型和构件模型的平台概念等要素.PSM业务构件模型,主要从结构性、业务逻辑性与平台实现相关性3个方面建立指标.干业务构件代码度量两个方面的内容:1)程序是否实现了客户对业务活动的功能性需求;2)程序是否在可接受的性能指标约束范围内运行.软件系统的可信性指标集中于度量业务功能是否实现了客户的需求;是否实现了不同配置约束对业务功能的安全性限制.运行态性能是否满足客户的非功能性需求等方面.

2.2 由“面向构造的模型/代码”向“面向可信计

算的模型”的转换方法与技术

ICEMDA体系中已有的构造体主要是面向软件开发/构造而建立的模型或代码,相对不易于可信性指标的计算,可将其转换为支持可信性度量/计算的模型,使构造体内要素与可信性影响指标的关系显式的表征出来.

业务构件PSM模型是依据客户需求从可实现可执行角度建立的构件实现模型.基于XML模型文件存储业务构件的数据集、操作集、生命周期状态变迁和安全性相关信息等,既描述了结构关系又体现了约束和逻辑关系,但其对可信性指标的显式表达不足.为计算该模型对客户可信性需求的满足度,提出采用基于图论与逻辑公式的标记算法.

将基于XML的构件模型转换为与逻辑相合并的PSM业务构件可信性描述模型,基本思想如下:首先,基于XML的业务构件模型M0转换为有向图结构.将数据集元素与子元素之间的结构关系转换为顶点A到B的有向边,顶点的结构是XML元素与其属性构造的多元组V(name,AttributeSet).再依次建立操作集、状态变迁集、权限约束等关系的转换,直至XML模型等价的反映为图.其次,将图与客户需求φ0的合并机制.用φ0中的原子公式ψi标记图上的顶点,在V中添加一个标记向量.若标记成功,将该ψi从φ0中移出到被标记公式集T1={ψi|ψi已被成功标记}中,若未找到与其匹配的顶点,则将子公式移至未标记公式集T2={ψi|ψi标记失败}中,直至φ0为空,此时可获得基于XML与逻辑合并的PSM业务构件可信描述模型.根据具体情况来确定哪些顶点能与ψi相关的可信性影响指标匹配并采用何种方式标记.当ψi的公式内容是:1)数据集D1→d1∧d2,若图中已有d1和d2顶点,则用d1∧d2标记它们的共同父节点D1;2)最大继承深度h:则用h标记具有继承关系的类顶点;3)ψi:若相对应的顶点还没有用ψi标记,则用ψi标记.其中对于复杂算子采用适当得连接词将其进行等价变形的预处理,或采用特殊变异的方式,对复杂算子变换处理方法以改进标记算法效率,使模型和公式的规模控制为线性.

2.3 可信性指标计算与可信性判定方法

所谓可信的业务构件PSM模型M0,即ξ(M0)|=φ0,就是指M0满足模型层客户需求可信逻辑约束的程度.为了构造可信的M0,需要在建模过程中检测模型的可信性,采用基于多维标记空间的业务构件模型可信性度量与验证算法,其基本思想如下:

算法的输入:以XML形式表达的PSM业务构件模型M0;以逻辑形式表达的PSM层客户可信性需求φ0.

输出:M0的可信度(或称M0对φ0的满足度).

基本步骤为:首先,采用可信描述模型转换方法“基于图与逻辑公式的标记算法”将以XML形式存储的PSM业务构件模型转为与合并了逻辑φ0信息的,基于图的PSM业务构件可信性描述模型.此时,获取到被标记公式集T1和未标记公式集T2.然后,将标记图映射到多维标记空间中分别计算被标记指标的数值.一个顶点在多个子公式标记情况下构成了一个多维标记向量Ci=<ui1,ui2,…,uin>,因此将标记图投影到一个描述多个逻辑维度的空间中,将同一逻辑维度的标记顶点、标记向量以及边投影到该逻辑维上进行计算指标值.高度抽象的业务构件模型,通常可变属性规模较大,因此有必要在不同维度上的应用简化技术.计算T2集合中的未标记逻辑公式的满足度,获取图上可标记的可信性影响指标值,综合两类指标统计业务构件模型的可信度,采用加权累加法等可信度的计算方案.最后输出PSM业务构件模型的可信度值.

客户需求中包含一个期望的可信阀值d0,判定本模型可信与否,将可信指标的计算结果与d0进行比较,若<d0则认为此模型不可信,并提取指标值与期望性能的差异,反馈给用户使其针对不可信的关键点进行修正或优化,若≥d0则为模型出具可信度证明.

2.4 基于可信性判定的可信软件构造技术

根据可信性判定结果,通过调整ICEMDA各层次构造体的要素和要素之间的关系,以提高其与客户期望差异过大的可信性影响指标值,使构造体可信.在ICEMDA软件系统构造过程中存在从PSM模型到代码,代码到系统的两次转换过程,转换的必要原则是上游到下游的可信性能够保持.针对MDA各层次构造体分别提出基于可信性判定的优化方法和技术,目的在于通过调整完善构造体内部的要素或要素之间的关系以提高其可信性.针对PSM模型,提出面向多目标可信优化的模型完善方法.基本思想为:输入是以XML形式表达的不满足可信性要求PSM业务构件模型M0和与客户需求差异过大的可信度量指标集δ0.以δ0的内容作为模型可信性改善过程的多个优化目标,通过调整影响这些可信指标的模型要素,实现本模型可信度量值的提升,直到模型满足客户可信需求为止.输出为优化后的业务构件XML模型M'0.

2.5 软件开发平台

在现有ICEMDA架构的软件开发平台基础上,引入各层构造体的可信性判定度量和优化方法,形成一套支持可信软件构造的模型驱动的软件开发工具集,如图2所示.PSM可视化建模工具,业务构件程序生成工具,业务构件配置工具,工作流模型转换工具,这些工具的输出结果均要经过可信描述模型验证容器进行处理.该容器包含由“面向构造的模型/代码”向“面向可信性计算的模型”的转换功能,可信性度量与验证并出具可信度证明的功能、基于可信性判定的优化构造功能.最后通过面向可信性保持的系统配置/部署工具组装出可信的软件系统.

图2 可信管理软件的模型驱动开发平台

3 结论

1)显式地将构造体的可信性度量和验证系统性综合性的融入到ICEMDA架构中,其目标是解决可信管理软件的快速构造问题.

2)该体系为可信管理软件的构造提供了一个基本方法框架,其基础理论体系包含:一套支持MDA的企业管理软件可信度量指标体系;以MDA各层次构造体为中心的可信性计算、判定和优化的反馈机制;模型驱动的可信软件构造技术和平台.

[1]OMG.MDA guide version 1.0.1[R].[2003-06-12].http://www.omg.com/.

[2]High confidence software and systems coordinating group.High confidence software and systems research needs[R].[2001-01-10].http://www.ccic.gov/pubs/hcssresearch.pdf.

[3]PEARSON S.Trusted computing platform,the next security solution[R].Bristol U K:HP Laboratories,2002.

[4]陈火旺,王戟,董威.高可信软件工程技术[J].电子学报,2003,31(12A):1933-1938.

[5]AVIZIIENIS A,LAPRIE J C,RONDELL B.Foundational concepts of computer system dependability[C]//LARP/IEEE-RAS Workshop on Robot Dependability of Technological Challenge of Dependable Robots Environment.Washington,DC:IEEE Computer Society,2001:21-22.

[6]LAPRIE J C.Dependability computing:concepts,limits,challenge[C]//Proceeding of the 25th IEEE International Symposium on Fault-Tolerant Computing.Washington,DC:IEEE Computer Society,1995:42-54.

[7]CAVANO J P.Toward high confidence software[J].IEEE Transactions on Software Engineering,1985,11(12):1449-1455.

[8]CORTELLESSA V,Di MARCO P,INVERARDI P.Software performance model driven architecture[C]//Proceedings of the ACM Symposium on Applied Computing.New York,ACM,2006:1218-1223.

[9]梅宏,申峻嵘.软件体系结构研究进展[J].软件学报,2006,17(6):1257-1275.

[10]REUSSNER R H,SCHMIDT H W,POERNOMO I H.Reliability prediction for component-based software architectures[J].The Journal of Systems and Software,2003,66(3):241-252.

[11]蒋屹新,林闯,曲扬,等.基于Petri网的模型检测研究[J].软件学报,2004,15(9):1265-1276.

[12]FENTON N E,PFLEEGER S L.Software metrics:a rigorous&practical approach[M].Beijing:Tsinghua Press,2003:250.

[13]LITTLEWOOD B,POPOV P T,STRIGINI L,et al.Modeling the effects of combining diverse software fault detection techniques[J].IEEE Transaction on software engineering,2000,26(12):1157-1167.

[14]LORENZOLI D,MARIANI L,PEZZ`E M.Towards self-protecting enterprise applications[C]//Proceedings of the The 18th IEEE International Symposium on Software Reliability.Washington,DC:IEEE Computer Society,2007:39-48.

[15]战德臣,冯锦丹,聂兰顺,等.一种可互操作可配置可执行的模型驱动体系结构[J].电子学报,2008,36(12A):120-127.

猜你喜欢

可信性管理软件度量
鲍文慧《度量空间之一》
仓储管理软件在物流自动化解决方案中的应用与发展
基于可信性的锅炉安全质量综合评价研究
模糊度量空间的强嵌入
在区间上取值的模糊变量的可信性分布
迷向表示分为6个不可约直和的旗流形上不变爱因斯坦度量
Five golden rules for meeting management
项目法在工程造价管理软件中的应用
基于可信性理论的风电场电能质量模糊综合评估
共享电单车的管理软件