基于工作流的可信软件过程的定义方法

文档序号:6463226阅读:235来源:国知局
专利名称:基于工作流的可信软件过程的定义方法
技术领域
本发明涉及工作流技术、软件过程技术和软件可信性技术,尤指一 种基于工作流的可信软件过程定义方法。
背景技术
软件的可信性是一个比较新的概念,并没有一个/>认的、准确的回答。可信性是软件的重要特性,它包括信息安全性(security),完整性 (integrity)、有戋丈'l"生(availability),正确'l"生(correctness)、可靠寸生(reliability)、 隐私性(privacy)、安全性(safety)以及持久性(survivability)等属性。可信性 是一个包括多个属性特征的多维质量特性,各个属性之间相互联系且相 互影响。要构造一个可信的软件系统是一项非常复杂的系统工程,它涉 及大量的QoS(Quality of Service服务质量)决策内容,包括安全性、可靠 性、可用性、性能以及资源使用等。它不是单一的设计、开发、测试和 验证的问题,而是在各个阶段都要对系统的可信属性进行全局考虑和评 估,任何一个环节出了问题,整个系统的可信性都将不复存在。因此, 一方面必须从全局的角度将整个软件开发过程规范起来,对系统构造的 全过程进行追踪与监控来保障软件的可信性;另一方面,必须依靠已有 的软件开发经验对系统的各项可信属性进行评估和权衡,从而做出合理 的决策。实践证明,软件产品的质量在很大程度上取决于过程的质量,因此, 加强对软件产品质量的形成过程的有效管理是保障软件系统可信性的重 要手段。软件过程是软件生存周期中为达到某个目标而必须实施的所有 软件工程活动集合,一个软件过程可以分成若干个活动。本发明所述的软 件过程指的是诸如软件计划过程、软件需求过程、软件开发过程、软件 测试过程、软件配置管理过程等类似的软件具体过程的抽象。软件过程管理主要关注的是软件过程技术层面的管理,其中,软件过程技术层面的内容主要包括 一 个软件组织定义可用并支持持续改进的软件过程的 能力,所定义的软件过程按照预期执行的能力以及在执行的过程中得到 不断改进从而达到软件组织目标的能力。工作流技术是目前比较流行的过程实现技术。它包含了两部分内容 工作流元模型和工作流管理系统。实现工作流管理系统的基础是建立合 理的工作流模型,而工作流元模型又是建立工作流模型的基础。因此, 合理的工作流元模型是实现工作流管理系统的关键。近年来面向CMM/CMMI ( Capability Maturity Model/Capability Maturity Model Integration)的软件开发过程管理、监控、度量和改进方 法和支持工具的研究成为热点。国际上具有代表性的主要研究成果包括 定义了一些软件开发过程框架,比如RUP;制定了一些软件质量通用标 准,如ISO/ IEC14598和ISO/ IEC 9126,以及开发了 一批相应的支持工 具,比如IBM Rational质量管理相关工具,包括Rational Portfolio Manager 、 Team Unified Platform等;配置管理相关工具,如CVS (Concurrent Version System )、 Retional ClearCase和ClearQuest、 Microsoft 的VisualStudio SourceSafe等;测试管理工具,如Mercury Interactive 7> 司的Testdirector、 IBM公司的Rational Suite Teststudio等。然而,目前没有哪种产品能够支持可信软件开发全过程的管理和质 量保证活动。发明内容为了解决上述问题,本发明结合工作流技术,目的是为了保证软件 系统的开发过程的可信性,利用工作流对软件系统开发的可信过程进行 定义,给出可信软件过程元模型和工作流模型的定义和工作流引擎运行 时的算法,为进一步对可信软件过程的追踪和监控奠定基础。为了实现上述目的,基于工作流的可信软件过程定义和追踪方法包括4个步骤1) 确定可信软件过程定义需要的关键模型元素,给出可信软件过程 定义元模型;2) 对工作流管理联盟的过程模型做形式化的整理,给出过程工作流 模型的形式化定义;3 )对可信软件过程实例化,给出过程工作流活动实例的形式化定义; 4)给出工作流引擎运行时的原理性算法。其中,在所述步骤l)的可信软件过程定义元模型是采用UML建模 语言制定。软件过程定义是指确定过程中的活动及其关系,其中包括指 明过程的开始和结束的条件,活动本身的信息等。其中,所述的步骤2)的形式化定义是对WFMC组织给出的基于有 向图的过程模型做形式化的整理。其中,所述的步骤3)中对可信软件过程实例化是因为只有建立一个 可信软件过程模型的实例,然后给出该实例运行之前所需要的全部资源, 才能保证该软件过程的执行。也就是说过程工作流管理系统中运行的是 模型的实例,而不是模型本身。其中,在所述步骤4)中的算法包括用户根据过程创建过程实例和活 动实例的算法和活动实例的执行算法。本发明的技术效果是,利用工作流系统对可信软件开发过程进行定 义,开发过程包括需要执行的软件活动,执行过程中涉及到的相关软件 文档及相关软件产品,参与活动执行的软件工作组人员等,为开发可信 的软件系统提供了 一种软件过程方面的支持,也为进一 步监控和跟踪可 信软件过程提供了基础,保证最终的软件系统的可信性


5图1为软件过程定义元模型; 图2为过程实例和活动实例的创建; 图3为活动实例的执行。
具体实施方式
为使本发明的特征及优点得到更清楚的了解,以下结合附图,作详 细i兑明。本发明包括以下5个步骤1) 确定可信软件过程定义需要的关键模型元素,给出可信软件过程 定义元模型;2) 对工作流管理联盟的过程模型做形式化的整理,给出过程工作流 模型的形式化定义;3 )对可信软件过程实例化,给出过程工作流活动实例的形式化定义; 4)给出工作流引擎运行时的原理性算法。其中,步骤1如图1所示,从工作流角度来理解,软件过程就是软 件生存周期中为达到某个目标而必须实施的所有软件过程活动集合。一 个软件过程可以分成若干个软件活动。根据软件过程的实际特点,在软 件过程的定义中需要确定如下的关键模型元素,即需要执行的软件活动 (activity ),执行过程中涉及到的相关软件文档(document)及相关软件产 品(product),参与活动执行的软件工作组人员(actor),软件活动的转 移信息(tmnsition)等。过程工作流管理系统参考国际工作流管理规范,以 工作流引擎为核心,实现了过程逻辑与业务逻辑的分离,能够可视化的 进行业务过程的分析、定义和业务单元的组装,从而使应用开发人员更 关注于业务逻辑的实现,降低了复杂过程应用的开发难度。其中,步骤2的形式化定义如下定义1 结点N是过程中的一个活动,即一个工作步骤N = <n,t, d, u, m, preA, postA, preC, postC, T>,是一个十元组。其中,n 表示结点名称;t表示活动类型,d是用到的数据集合即结点的参数集 合,包括活动执行时所需的前置条件、后置条件,所用到的数据都保存 在相应的数据库中,数据库包括组织模型库和系统运行库。活动之间通 过消息方式传递信息。u表示活动的执行者,可以是人员、计算机或其 他机器;m表示手动执行或自动执行的执行模式;preA表示与当前结点 相连接的前驱边集合,以及每条边的控制过程;可能的控制过程有串 行、与分支、或分支;postA表示与当前结点相连接的后继边集合,以及 每条边的控制过程,可能的控制过程有串行、与聚合、或聚合、循环 迭代。在此,前驱边与后继边组合起来,控制过程有五种情况串行、 与分支--与聚合、与分支--或聚合、或分支-或聚合、循环迭代;preC表 示当前结点的前置条件;postC表示当前结点的后置条件;T表示结点 执行所需的时间,即活动的持续时间。规定1 结点类型分为原子结点a 、路径节点r、块节点b、子过程结点p; 定义2 定义3 定义4 定义5subFlow。 定义6<N1 , N2>原子结点a是一个不能再分的结点。 路径结点r是无实际意义的起到路由、转移作用的结点。 块结点包括多个原子节点。 子过程结点p是可以细化成另一个过程的结点,即有向边C描述活动之间的数据流动关系和控制关系。C = 表示从Nl到N2的一条有向边。Nl到N2分别为边C 的前驱结点和后继结点。定义7 有向图G表示一个过程,G = <n, N, c〉为一个三元组, n是过程的名字;N是所有活动的集合,在此处称为结点,c是全部有向边的集合,它描述各活动之间的控制关系。其中,步骤3的过程工作流活动实例的形式化定义如下 定义8 活动实例Ni是过程实例中的一个工作步骤,Ni = <n, st, et, s〉。其中,n表示与此活动实例相对应的活动的名称。st表示Ni 的开始时间。et表示Ni的结束时间。s表示Ni的状态,它可能的状 态有初始、运行、激活、挂起、终止和完成。在创建了活动实例之后, 结点N的属性自动地赋给了 Ni。定义9 过程实例Pi是工作流的一次执行过程,Pi = <n, np, st, et, s, Pri>。其中,n表示过程实例的名字;np是相对应的工作流模型 的名字;st是过程实例的开始时间,et是过程实例的结束时间;s是过 程实例的状态,它可能的状态有初始、执行、就绪、等待、挂起和完成; Pri是过程实例的优先级,工作流引擎利用它进行过程间的调度。根据以 上定义,并根据活动实例和过程实例的定义,我们给出工作流实例的执 行算法,此算法由两部分组成 一是过程实例和活动实例的创建,二是 活动实例的执行。其中,步骤4中的算法包括二种算法, 一是用户根据过程创建过程 实例和活动实例的算法,二是活动实例的执行算法。算法1用户根据过程G创建过程实例Pi和活动实例Ni (如图2 所示)(1) 从过程工作流管理系统中选择用户指定的过程G。(2) 根据用户选择的软件过程模型G以及指定的名字,建立一个软 件过程实例Pi和Pi中的所有活动实例Ni,并进行初始化操作Pi.n = 实例名,Pi.nP = G n, Pi.st =系统当前时间,Pi.s =初始状态,Ni.n = N.n, Ni.s =初始状态。(3) 找到Pi中与开始结点相对应的活动实例Ni,并进行初始化搡作:Ni.s二等待状态,获得与Ni相对应的活动N的参数集合d。(4) Pi.s=执4亍状态;Ni.s=就绪状态。(5) 提交并执行Ni。算法2活动实例Ni的执行(如图3所示)(1) 判断结点类型,若为原子结点a,则至第2步;若为子过程p, 则记录过程实例的状态,进入子过程的开始结点,至第2步。(2) 判断前置条件preC是否满足,包括d (N的参数集合)全部获 得,以及若存在preA,则preA的状态都处于完成态(根据控制规则, 若与合并时要求所有的前驱边都处于完成态,若或合并时,则要求某一个前驱边为完成态即可),若preC为True,则执行下一步,否则等待至 条件满足。(3) 判断m,若为手动执行,则通知活动的参与者执行相应的动作; 若为自动,贝'J自动执行要求的操作,并^f吏st =系统当前时间,s =执行 状态。(4) 判断是否执行结束,对于手动执行,等待用户通知活动结束;对 于自动执行,若执行时间〉t,则认为结束,如果在执行期间发生异常终止 命令,则整个过程执行结束,且过程状态为终止状态。若执行结束,则 判断后置条件postC满足与否,即是否根据d修改了数据库信息。若 postC不满足,则等待;若postC满足,则根据控制规则激活后继边集 postA,并且由后继边集pos tA分别通知相应的后继结点。然后^f吏et = 系统当前时间,s-完成状态,活动执行结束,转至第1步。以上所述的实例对本发明的可信软件过程定义方法作了详细的说 明,但是本发明的具体实现形式并不局限于此,对于本技术领域的一般 技术人员来说,在不背离本发明所述方法的精神和权利要求范围的情况 下对它进行的各种显而易见的改变都在本发明的保护范围之内。
权利要求
1. 一种基于工作流的可信软件过程定义方法,其特征在于其包括以下步骤1)确定可信软件过程定义需要的关键模型元素,给出可信软件过程定义元模型;2)对工作流管理联盟的过程模型做形式化的整理,给出过程工作流模型的形式化定义;3)对可信软件过程实例化,给出过程工作流活动实例的形式化定义;4)给出工作流引擎运行时的原理性算法。
2. 如权利要求1所述的方法,其特征在于在所述步骤1)的可信软 件过程定义元模型采用UML建模语言制定。
3. 如权利要求1所述的方法,其特征在于所述的步骤l)中,软件 过程定义是指确定过程中的活动及其关系,包含指明过程的开始和结束 的条件及活动本身的信息。
4. 如权利要求1所述的方法,其特征在于所述的步骤2)的形式化 定义是对工作流管理联盟组织给出的基于有向图的过程模型做形式化的 整理。
5. 如权利要求1所述的方法,其特征在于在所述步骤4)中的算法 包括用户根据过程创建过程实例和活动实例的算法和活动实例的执行算法。
全文摘要
本发明公开了一种基于工作流的可信软件过程的定义方法,从软件过程角度在软件开发过程中对软件的可信性进行保证。本发明采用UML建模语言给出可信软件过程定义的元模型,并且对工作流管理联盟的过程模型做形式化的整理,给出可信软件过程工作流模型的形式化定义。该定义方法描述了一种可信的软件过程模型,描述了可信软件过程和过程活动的算法,给出过程参与者、过程活动的基本状态和状态变迁,论述了基于工作流技术实现可信软件过程的定义方法。本发明是保障可信软件过程顺利实施的根基,在定义方法的基础之上可进一步对可信软件过程实例进行监控和追踪。
文档编号G06F9/44GK101256491SQ20081010297
公开日2008年9月3日 申请日期2008年3月28日 优先权日2008年3月28日
发明者兰雨晴, 李红娟, 静 高 申请人:兰雨晴
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1