2. 北京航空航天大学 计算机学院, 北京 100191
2. Computer College, Beihang University, Beijing 100191, China
软件依据需求而建模,需求建模目的是抽取和验证需求,以期真实可靠、稳定。需求是人们对真实世界现象的期望,由于人类认识常存在矛盾,需求不一致难以避免:1)需求冲突、语义矛盾;2)需求信息不完整、模糊;3)需求冗余是需求不一致的根本原因[1, 2]。目前相关研究有一些成果,如Nuseibeh等提出不一致需求管理框架[3],认为不一致的需求是不满足规则的命题,而任何需求建模方法隐含一组检验规则;还有一些相关研究是多视点需求建模的不一致管理[4],认为需求的不一致源自不同角度的认识和表达,从不同视点将系统分解为多个局部视图,分别获取需求完整建模,在集成过程中检测不一致;而王学智等对C4ISR系统能力需求中存在的不一致问题深入分析,构建能力模糊本体,研究了能力需求模型一致性验证技术[5]。
需求不一致的处理方法主要有:1)逻辑推理证明方法采用带标记的逻辑公式作为需求表示形式,通过禁止所有平凡推理暂时容忍不一致需求,然后维护需求一致性断言集并设置需求优先级别,检测、跟踪并自动处理不一致需求;2)模型检验方法采用状态变迁作为需求建模原则,并利用模型检验技术进行需求不一致性处理;3)基于目标的方法区分了需求不一致的4种程度,包括矛盾、分歧、竞争和障碍,通过检测和处理分歧解决不一致问题。这些研究成果已有很多应用,在一些特定领域取得很好效果,为相关研究做出很多有益指导,但这一过程对建模人员有较高的知识要求,缺少更接近普通认知的过渡,进一步的应用受到很大限制,其根本原因是不能将易理解方便沟通与高度自动化形式化2个要求统一起来,导致需求模型难以与实际对应,建模理论难以转换为实际应用,需求分析管理自动化程度和智能化水平不高。
基于资源、组织与业务的需求模型(requirement model on resources,organization and business,ROB),用人们认识世界的一般方法抽取需求,将数据、角色和功能指称到描述真实世界的资源、组织与业务,从不同视角基于递归分解思想将需求抽象为需求树,以期确定、完整一致的表达需求。文中在ROB基础上提出建立ROB知识库,通过知识推理检验需求一致性,并将一致需求增加到断言知识库中,形成逐步扩展断言库的需求建模方法,保证了需求完整性、一致性。
1 ROB结构ROB从3个视点(资源、组织与业务)进行需求分析,形成多视点结构:1)业务视点通过分类、分解的方法分析业务以描述功能需求;2)组织视点分析角色权限和人为活动等需求;3)资源视点获取数据需求。
ROB具有层次结构:1)资源层建立数据模型形成数据需求;2)组织层将参与者抽象为角色,通过权限、关系建立需求模型;3)业务层为真实模拟业务活动过程,从业务分解与协同(角色、资源与业务协作)建立功能需求模型。ROB层次间具有关联。
ROB基于递归分解的思想:1)业务分为复合业务和活动;复合业务由一组更基本的业务构成,这些基本业务之间存在线性、并行等关系,即业务流;活动是最基本的业务,包括角色、资源和API;API定义为五元组,包括前置条件、起始状态、过程状态、终止状态和目标状态。2)组织分为机构组织和角色;机构组织由更基本的机构组织构成,这些基本组织间存在辖制关系;角色是最基本的组织,角色在特定资源上具有一组操作能力。3)资源分为复合资源和原子资源;复合资源可由更基本的资源构成,这些基本资源可分为主资源和非主资源,二者有确定的函数依赖关系;原子资源是最基本的资源,由一组属性组成,包括主属性和非主属性,主属性和非主属性间存在确定的函数依赖关系。ROB将需求抽象为统一的树形模型,如图 1所示。
2 ROB本体概念体系从需求理解的角度看,需求工程依赖于人们对现实世界的认识程度,现实世界被抽象为概念与关系,因此在需求工程中引入本体增强了表达能力,在很大程度上满足了需求分析的要求。本体是相关专题的基本术语和关系,以及利用这些术语和关系构成该专题的规则的集合[6],本体是领域概念模型的显示表示[7]。陆汝钤等将对象和本体结合,提出面向本体的需求分析OORA[8],此后本体论应用于需求工程的研究有了很大发展,如金芝等提出的基于问题框架的需求建模[9]。
2.1 ROB本体概念层次本体概念是ROB 建模全过程所有方法及对象分类的概括,主要包括需求任务(Errand)、业务功能(Business)、执行模块(Task)、业务状态(State)、组织与角色 (Organization)、资源(Resource)、需求任务类型(ERdType)、资源类型(RscType)和操作类型(OptType)。ROB 本体概念层次结构如图 2所示,T表示ROB 本体概念全域。
Errand分为基本简单任务(Basic)和复合任务(Composite);Task分为前置模块(Pretask)和核心模块(Stage);State分为前置条件(Precondit)、输入(Input)、过程(Procedure)、输出(Output)和后置服务(Postcondi);Organization分为部门(Department)和角色(Role),Department分为领导(Leader)和员工(Subject);Resource分为元素(Element)和属性(Attribute),Element分为主成员(Key)和普通成员(Member);Attribute 有一组操作权限。
2.2 ROB模型本体关系ROB 本体中概念不是孤立存在的,概念间存在关系,主要包括:1)isA,描述格式为isA (A,B),表示A是B的子类(subclass);2)hasRsc,描述格式为 hasRsc(A,B),语义解释为一个A(需求任务/角色/状态)涉及到一个资源B;3)hasOrg,描述格式为 hasOrg(A,B),语义解释为一个A(需求任务/状态)涉及一个组织B;4)hasBusi,描述格式为 hasBusi(A,B),语义解释为一个基本需求任务A由一个业务功能B实现;5)hasTask,描述格式为 hasTask(A,B),语义解释为一个复合需求任务A需要分解为一组核心执行模块B;6)hasErd,描述格式为 hasErd(A,B),语义解释为一个执行模块A必须作为一个需求任务B进行分析;7)hasSubR,描述格式为hasSubR(A),语义解释为一个资源A是一组规模更小的子资源集;8)hasSubO,描述格式为 hasSubO(A),语义解释为一个组织A是一组规模更小的子组织集;9)hasLead,描述格式为 hasLead(A,B),语义解释为领导可管辖普通成员;10)hasFuncdep,描述格式为 hasFuncdep(A,B),语义解释为一个主资源可函数决定一组普通资源;11)hasPremise,描述格式为 hasPremise(A,B),语义解释为一个核心执行模块存在必须先执行的一组前置模块;12)hasCon,描述格式为 hasCon(A,B),语义解释为业务功能含一前置条件描述;13)hasInt,描述格式为 hasInt(A,B),语义解释为业务功能含一个输入描述;14)hasPro,描述格式为 hasPro(A,B),语义解释为业务功能有一个过程描述;15)hasOut,描述格式为 hasOut(A,B),语义解释为业务功能含一输出描述;16)hasPost,描述格式为 hasPost(A,B),语义解释为业务功能必含一后置结果描述;17)hasType,描述格式为 hasType(A,B),语义解释为需求任务必有一个任务类型;18)hasErand,描述格式为 hasErand(A,B),语义解释为角色可参与需求任务;19)hasOpt,描述格式为 hasOpt(A,B),语义解释为角色可拥有一组操作使用权;20)hasAttr,描述格式为 hasAttr(A,B),语义解释为每一具体操作是在具体Attribute上的操作;21) hasOptTp,描述格式为 hasOptTp(A,B),语义解释为每一具体操作有一操作类型。ROB模型本体关系如图 3所示。
3 检验一致的需求建模 3.1 描述逻辑语言计算机作为智能化信息处理工具,需要将信息或程序赋予某种程度的知识语义,并编码表示;需求富含语义知识,描述逻辑是重要的知识表示工具,用描述逻辑处理需求工程问题是计算智能的一个具体应用。
通过一阶逻辑赋予非逻辑方法以形式语义是描述逻辑最初思想[10]。本体是对知识显示的概念化描述[11],而描述逻辑是一种本体描述语言[12]。描述逻辑建立在概念和关系之上,有很强的语义表达和推理能力,可用于描述需求,检测需求一致性。
ALC是最小的命题封闭的描述逻辑[13]语言,在保证推理能力基础上有很强表达能力,近年来有关描述逻辑语言扩展方面的研究也已有很多,如引入构造子、引入具体域[14, 15]。文中采用扩展描述逻辑SHOIN(D),是通用本体语言OWL-DL的逻辑基础。
描述逻辑基本符号包括:1)原子概念:A;2)概念:C,D;3)全概念Τ,空概念⊥;4)原子关系:P;5)关系:R;6)概念构造子:¬,∩,∪;7)量词:R.,R.;8)包含符号:⊆,⊇;9)括号:(,);10)个体:a。根据ROB 描述需求,文中采用描述逻辑SHIQ,SHIQ有如下语法[16]:①C::= A|(T|(⊥|¬C|C ∩D)|C∪D)|R.C|R.C| θ_n R|θnR.C|θnR;②R::=P|¬R|R∩S|R∪S|R°S|R^+ |R^-。
描述逻辑知识库包括术语公理库TBox和断言事实库ABox。TBox公理公式形如AC和A⊆C。ABox包括个体断言和关系断言。描述逻辑推理问题包括面向概念的推理和面向个体的推理2类。描述逻辑推理的核心问题是可满足性问题,所有推理问题可化为可满足性问题。Tableau算法是判定可满足性问题有效算法,已得到广泛应用。目前Tableau算法扩展、复杂性及优化策略等研究已较为深入且有具体应用。
3.2 ROB本体知识库ROB本体知识库包括概念集合(Concept)、关系集合(Association)和规则集合(Constraint)。
1)概念
ROB本体概念表示类,如基本概念ERdType和RscType定义为集合:ERdType::={basic,composite},RscType::={int,float,char,string,struct,enum,*},OptType::={create,insert,delete,update,select}
类含有属性,这些属性与相关类关联,相应概念定义等知识加入到TBox。如,Errand具有属性hasType关联ERdType类,而其子类Basic的属性hasBusi关联Business,属性hasRsc关联Resource,属性hasOrg关联Organization。ROB 模型核心概念相应的公式如表 1所示。
Concept | Super | Definition |
①Errand | T | Errand::=T∩ hasType.ERdType∩ hasRsc.Resource∩ hasOrg.Organization∩( hasBusi.Busines∪ hasBusi. Busines∪ has a sk.Tasks). |
②Basic | Errand | Basic::=Errand∩ hasBusi.Busines |
③Composite | Errand | Composite::=Errand ∩ has Task. Tasks. |
④Business | T | Business::= hasPro.Procedure∩(T∪ hasCon.Precondit∪ hasInt.Input∪ hasOut.Output∪ hasPost.Postcondi). |
⑤Task | T | Task::=T∩ hasErd. Errand |
⑥Stage | Task | Stage::=T∩ hasPremise.Pretask. |
⑦State | T | State::=T∩ hasRsc.Resource∩ hasOrg.Organization |
⑧Resource | T | Resource::=Element∪Attribute |
⑨Organization | T | Organization::=Role∪Department |
⑩Attribute | Resource | Attribute::=Resource∩ hasRscType.RscType |
⑪ Role | Organization | Role::=Organization∩ hasOpt.Operator∩ hasErand.Errand |
⑫ Operator | T | Operator::=T∩ hasAttr.Attribute∩ hasOptTp.OptType. |
⑬ Key | Element | Key::=Element∩ has Funcdep.Member. |
⑭ Leader | Department | Leader::=Department∩ hasLead.Subject. |
2)关系
ROB知识库中还以描述逻辑刻画了关系,如关系hasBusi描述为:( has Busi.Business)⊆Basic,Basic⊆(hasBusi.Business)。表示hasBusi定义域为Basic,而值域为Business。表 2列出主要关系。
Associat | Super | Mult | Domain | Range |
①hasOrg | T | 1:1 | Errand∪State | Organization |
②hasStat | T | 1:5 | Business | State |
③hasPost | hasStat | 1:1 | Business | Postcondi |
④hasCon | hasStat | 1:1 | Business | Precondit |
⑤hasInt | hasStat | 1:1 | Business | Input |
⑥hasPro | hasStat | 1:1 | Business | Procedure |
⑦hasOut | hasStat | 1:1 | Business | Output |
⑧hasErd | T | 1:1 | Task | Errand |
⑨hasTask | T | 1:N | Composite | Task |
⑩has Funcdep | hasMain | 1:N | Key | Member |
⑪ hasPremise | hasMain | 1:N | Stage | Pretask |
⑫ hasLead | hasMain | 1:N | Leader | Subject |
ROB知识库还包括概念间的子类关系和关系之间的子类关系,描述为公理加入到TBox中,描述逻辑中将子类描述为公式,形如:Composite⊆Errand,hasPost⊆hasStat等,表 3列出主要子类关系。
Included assertion |
①Composite⊆Errand,Basic⊆Errand |
②Stage⊆Task,Pretask⊆Task |
③Leader⊆Department,Subject⊆Department,Role⊆Organization,Department⊆Organization |
④Postcondi⊆State,Precondit⊆State,Input⊆State,Procedure⊆State,Output⊆State |
⑤Key⊆Element,Member⊆Element,Attribute⊆Resource,Element⊆Resource |
⑥hasPost⊆hasStat,hasCon⊆hasStat,hasInt⊆hasStat,hasPro⊆hasStat,hasOut⊆hasStat |
3)约束
ROB 模型概念和关系必须满足一组约束,这些约束用于保证需求完整性和一致性。按约束来源可分为概念约束、关系约束和实例约束。
(1)概念约束,限定实例必须的数量,保证概念完整,如:每个需求任务必有一个资源、一个组织和一个功能实现等,表 4列出主要的概念约束。
Numbers Constraint on Concept | |
① | Errand⊆≥1hasRsc∩≤1hasRsc |
② | Errand ⊆≥1hasOrg∩≤1hasOrg |
③ | Basic⊆≥1hasBusi∩≤1hasBusi |
④ | Business⊆≥0hasPost∩≤1hasPost |
⑤ | Business⊆≥0hasInt∩≤1hasInt |
⑥ | Business⊆≥1hasPro∩≤1hasPro |
⑦ | Business⊆≥0hasOut∩≤1hasOut |
⑧ | Business⊆≥0hasCon∩≤1hasCon |
⑨ | Composite⊆≥2hasTask |
⑩ | Task⊆≥1hasErd∩≤1hasErd |
⑪ | Leader⊆≥0hasLead∩≤NhasLead |
⑫ | Stage⊆≥0hasPremise∩≤NhasPremise |
⑬ | State⊆≥1hasRsc∩≤1hasRsc |
⑭ | State⊆≥1hasOrg∩≤1hasOrg |
⑮ | Key⊆≥0hasFuncdep∩≤N has Funcdep |
(2)关系约束,限定概念必要的属性,表示概念必须存在一些关系,如:每个需求任务必对应一组执行模块,对应一个表示功能过程的状态等;表 5列出了主要关系约束。
Relation Constraint | |
① | Operator⊆hasAttr(Attribute∩ hasRscType) |
② | Basic⊆hasBusi(Business∩ hasPro) |
③ | Role⊆hasOpt(Operator∩ hasOptTp) |
④ | Task⊆hasErd (Errand∩ hasType) |
⑤ | Task⊆hasErd (Errand∩ hasRsc) |
⑥ | Task⊆hasErd (Errand∩ hasOrg) |
⑦ | Business⊆hasStat(State∩ hasRsc) |
⑧ | Business⊆hasStat(State∩ hasOrg) |
(3)实例约束,通过限定实例间的对应关系,保证语义完整和一致性,如:若任务a对应组织b和资源c,而b对应资源d,则d与c是相同实例。表 6列出主要的实例约束规则。
Individual Constraint | |
① | hasErand(? e,? x)∧hasOrg(? x,? z)→hasSubO(? e,? z) |
② | hasSubO(? x,? o)→hasLead(? x,? o) |
③ | hasRsc(? x,? y)∧hasBusi(? x,? z)∧hasState(? z,? s)∧hasOrg(? s,? o)→hasRscR(? x,? o) |
④ | hasOrg(? x,? y)∧hasBusi(? x,? z)∧hasState(? z,? s)∧hasOrg(? s,? o)→hasSubO(? x,? o) |
⑤ | hasTask(? x,? y)∧hasErd(? y,? z)→isA(? x,? z) |
⑥ | hasErd(? x,? y)∧hasTask(? y,? z)→isA(? x,? z) |
4)性质
通过限定实例间关系和性质,建立可推导的公式,约束对应的需求语义冲突,如:hasSub与isA存在互逆性质;ROB 概念、实例间所有性质包括传递性(Transitive)、对称性(Symmetry)、函数关系(Function)和逆关系(inverse)、属性继承(Property Inherit)和特性继承 (Characteristics inherit)。表 7列出ROB性质。
regular | Associate |
Transitive | hasSubO,hasSubR,hasSub,isA,hasLead,has Funcdep,hasPremise, |
Symmetry | differentFrom, sameAs |
Function | hasBusi,hasOrg,hasRsc,hasErd |
inverse | (hasSub,isA), (hasErd,has |
Property Inherit | hasSub,isA,InstancOf |
Characteristics inherit | (hasLead,hasSubO),(hasFuncdep,hasSubR) ,(hasSubO,hasSub) ,(hasSubR,hasSub) |
根据关系性质可构造出更多推导公式,用于推理验证,以检查和判定实例断言可满足性。
3.3 检验一致的需求建模过程ROB本体知识库包括概念集合(Concept)、关系集合(Association)和规则集合(Constraint)。
定义1 ROB知识库。ROB知识库KB={TBox,ABox},其中TBox术语公理集合包含了ROB概念(表 1)、关系(表 2、3)、约束(表 4~6)公式;ABox是ROB断言模块的有限集合。
定义2 ROB断言模块。ROB断言模块是ROB断言的有限集合,包括概念断言和角色断言。如:一个ROB断言模块(AssertionBlock)ablock含一组断言:概念断言Errand(?e),表示e是一个需求任务;Business(?b),表示b是一个业务功能; Organization(?o),表示o是一个组织; 关系断言hasSubO(?o,?o1),表示组织o中包含规模更小的组织o1。
通过定义ROB本体概念体系以及约束、性质,在描述逻辑中建立知识库,并将需求建模过程描述为创建ROB断言模块的过程,利用描述逻辑推理能力进行一致性检查和验证,目的是发现不完整、不一致问题。
性质1 完整性。一个ROB断言模块若满足所有概念约束则称为具有概念完整性;满足所有关系约束称具有关系完整性;满足所有实例约束称具有实例完整性。一个ROB断言模块具有完整性当且仅当同时具有概念完整性、关系完整性和实例完整性。
定义3 冲突。对一个ROB知识库KB K,ROB断言模块中任意断言按ROB性质推导公式,若出现形如¬R(a,b)∧R(a,b)的推论,即ROB断言模块冲突。
性质2 一致性。若一个ROB断言模块具有完整性,且对知识库KB K不存在冲突,则称具有一致性。
ROB需求一致的建模过程是在本体知识库基础上不断扩展断言知识的过程,下面进行说明:
第一,扩展断言知识过程描述:1)创建ROB断言模块,捕获需求,根据语义抽取ROB需求对象及联系,将这些对象、联系表示为ROB断言,形成ROB断言模块;2)完整性检查,若具有完整性则进行第3步,否则根据检查结果增加断言以扩展ROB断言模块,扩展后重新执行第2步完整性检查;3)一致性检查,若具有一致性则进行第4步,否则根据检查结果修改断言后执行第2步完整性检查;4)扩展断言知识。
ROB断言模块对应一个在知识库KB上的解释(即ROB断言模块的一个模型)M1,M1作为新的断言知识扩展为特定断言库ABox A1;ROB断言模块具有原子性,一个ROB断言模块要么被取消,要么作为断言知识增加到ABox。
第二,扩展断言库过程描述:ROB基于递归分解思想反复获取需求,每次增加新的ROB断言模块都对应一模型M,整个建模过程就是一个有限集合:{Mi|i=1,2,···,n},其中每个元素Mi是一个模型;模型Mi对应特定的断言库ABox Ai,可作为模型Mi+1的ABox,与公理知识库TBox T一起构成Mi+1的完整知识库。
ROB建模过程不断创建ROB断言模块,经过完整性、一致性检验后转化为断言知识增加到断言知识库,核心工作就是完整性、一致性检验。由性质2可知,一致性问题包含完整性问题;一致性检验是在ROB知识库基础上的推理问题,可转化为可满足问题;可满足问题推理验证Tableau算法等可参阅文献[17, 18, 19, 20],文中主要提出ROB需求一致的建模方法,Tableau算法的扩展、复杂性和优化策略等。
4 案例分析需求建模是一项浩大工程,常需反复迭代。文中在论述理论的基础上编制了相应的建模分析软件,提高了ROB建模自动化与智能化水平,本节以一个案例展示ROB需求建模过程。案例:某学校研发智能化综合实训管理平台的需求。
4.1 扩展断言知识ROB知识库中初始ABox A为空,即ABox A0=。
1)创建ROB断言模块
(1)捕获需求:①项目名称:智能化综合实训管理平台;②需求单位:某学校;③目标任务:实训教学教务综合管理;④项目目的:提高实训教学质量,提高实训室管理水平。(2)抽取ROB需求对象个体:t0:实训室、实训教学综合管理;b0:智能化综合实训管理平台;o0:某学校;r0:整体资源;(3)创建ROB断言模块:ablock0={Task(t0),Basic(e0),Business(b0),Organization(o0),Resource(r0),hasErand(t0,e0),hasBusi(e0,b0),hasOrg(e0,o0),hasRsc(e0,r0)}
2)完整性检查
遍历ROB断言模块中断言,应用Tableau算法依次进行完整性检查,完整性可满足性问题约束包括:(1)概念完整性约束;(2)关系完整性约束;(3)实例完整性约束。 例如:遍历ROB断言模块ablock0中个体断言,检验对概念约束的可满足性,由于不满足Business⊆≥1hasPro∩≤1hasPro(表 4公式⑥),ablock0不具有完整性,添加个体断言Procedure(p0)以扩展ablock0,即:ablock0=ablock0∪{Procedure(p0)},然后重新执行完整性检查。
3)一致性检查
遍历ROB断言模块中断言,应用Tableau算法依次判定可满足性:(1)把TBox带入到ABox中消除TBox;(2)ABox中断言转化为否定正则形;(3)ABox上应用扩展规则直到无可用规则; (4)只要存在解释,也就是说只要有一个ABox一致,则原始ABox一致。
4)扩展断言知识
将ROB断言模块中的所有断言公式添加到ABox A0中,如:A0=A0∪ablock0;ablock0={Task(t0),Basic(e0),Business(b0),Organization(o0),Resource(r0),Procedure(p0),hasErand(t0,e0),hasBusi(e0,b0) ,hasOrg(e0,o0),hasRsc(e0,r0),hasOrg(p0,o0),hasRsc(p0,r0)}.
4.2 扩展断言库1)ROB需求分解
ROB建模基本方法是分解,每一次分解都对应一组ROB断言模块:(1)分解得新需求转化为ROB需求断言模块;(2)分解本身需转化为ROB断言模块。对每一个ROB断言模块,都需要经过完整扩展断言知识(4.1)的过程。
例如,按ROB结构对需求任务e0分解为:t1(实训教学核心任务);t2(实训教学基础任务);t3(实训教学日常任务)。(1)分解得新的需求:①Task(t1);②Task(t2);③Task(t3)。分别执行完整的扩展断言知识的过程;分别对应为有序的断言知识库:①ABox A1;②ABox A2;③ABox A3。(2)分解本身是断言知识:①对应的ROB断言模块ablock(decomposed)=(KB-{Basic(e0)})∪{Composite(e0)};②完整性检查,得:ablock(decomposed)= ablock(decomposed)∪{hasTask(e0,t1),hasTask(e0,t2),hasTask(e0,t3)}∪{hasPremise(t1,t2)};③ablock(decomposed)经过一致性检查和扩展断言知识后,对应新的断言知识库ABox Ade1。
分解说明:①需求分解逐步进行,细化的程度由分析人员确定;②分解的结果作为新需求,扩展为断言知识的过程是相同的;③重点讨论保证一致地建模过程和方法,为论述方便,这里不对详细分解过程描述。
2)扩展断言库
ROB建模过程逐步分解细化需求,不断产生ROB断言模块,每一个ROB断言模块经过一致性检验和扩展,作为断言知识增加到知识库中,在初始知识库基础上形成一个新的ABox。从最初对应原始知识库ABox=,到分析结束整个过程,形成一个有序的ABox有限集合:ABox Aset={ABox Ai|i=1,2,···,n},其中每个元素是一个特定的断言知识库,Aset记录了断言知识库的扩展过程,表示了需求分析的整个过程,为基于推理的需求管理提供了方便。例如,案例需求分解过程对应一个有序ABox的集合,断言库扩展过程如图 4所示。
断言知识库扩展过程每一步通过断言知识扩展实现,断言知识扩展需经过完整性检查、一致性检查,保证了完整一致地进行需求分析。
5 结束语ROB需求建模提取需求分析要素:资源、组织和业务,从这3个视点抽取需求信息,通过演绎分解建立需求树,分析约束规则消除冗余,将不同视点下的需求树装配为完整需求树。ROB模型引入本体理论,建立概念层次体系,形成概念及关系,进一步结合语义建立了约束与规则,基于描述逻辑构建了需求模型公理知识库,根据推理规则及公式性质建立了基本的断言知识库,ROB需求建模过程不断建立新的实例断言,将需求建模过程转化为断言知识库的逐步扩展过程。由于将需求完整问题转化为需求一致问题,需求一致检验归结为规则约束下的可满足问题,利用现有研究成果Tableau算法等检验,保证了ROB建模的需求一致性。
检验一致的ROB需求建模方法借鉴了现有的需求建模技术和观点,设计了一组规则用于推理、验证和约束,并基于逻辑知识库的推理能力实现需求模型的一致性检验。目前研究存在一些不足:1)主要关注功能需求而对非功能需求等其他需求问题考虑不足;2)着重于特定需求建模实例和复杂问题的解决,没有从软件工程全局设计模型;3)专注于描述逻辑知识库中逻辑推理问题而对ROB需求分解方法缺乏规范指导,依然依赖于专家经验;4)由于将需求一致性问题转化为可满足问题,而Tableau算法复杂难解。
进一步工作主要有:1)设计合理的实验,通过实验分析和数据比对,发现实际可行的有效算法;2)通过专家审议和验证分析,规范ROB需求分解过程和评估度量体系,以进一步提高建模的自动化程度;3)分析运用非功能需求等其他需求的建模研究成果,从功能需求、非功能需求等扩展ROB模型,形成全面、统一的建模方法;4)分析软件全生命周期的工作,基于ROB在软件工程各阶段设计相应的工作,以形成完整的需求建模体系,进一步提高软件工程的自动化智能化水平。
[1] | SPANOUDAKIS G, ZISMAN A. Inconsistency management in software engineering: survey and open research issues[M]. Handbook of Software Engineering and Knowledge Engineering. Singapore: World Scientific Publishing Co., 2001: 329-380. |
[2] | SPANOUDAKIS G, FINKELSTEIN A, TILL D. Overlaps in requirements engineering[J]. Automated Software Engineering, 1999, 6(2): 171-198. |
[3] | NUSEIBEH B, EASTERBROOK S, RUSSO A. Leveraging inconsistency in software development[J]. Computer, 2000, 33(4): 24-29. |
[4] | NUSEIBEH B, FINKELSTEIN A, KRAMER J. Viewpoints: meaningful relationships are difficult![C]//Proc of the 25th Int'l Conf. on Software Engineering. Portland: IEEE Computer Press, 2003: 676-683. |
[5] | 王智学,董庆超,朱卫星,等.一种支持能力需求概念一致性和合理性分析的方法[J].计算机学报, 2013, 36(1): 10-21.WANG Zhixue,DONG Qingchao,ZHU Weixing. An approach for conceptual analysis on capability requirements consistency and reasonability [J].Chinese Journal of Computers, 2013, 36(1): 10-21. |
[6] | NECHES R, FIKES R E, FININ T, et al. Enabling technology for knowledge sharing[J]. AI Magazine, 1991, 12(3): 36-56. |
[7] | GRUBER T R. A translation approach to portable ontology specifications[J]. Knowledge Acquisition, 1993, 5(3): 199-220. |
[8] | 陆汝钤,金芝,陈刚.面向本体的需求分析[J].软件学报,2000,11(8):1009-1017.LU Ruqian,JIN Zhi,CHEN Gang. Ontology-oriented requirements analysis[J]. Journal of Software, 2000, 11(8): 1009-1017. |
[9] | 陈小红,尹斌,金芝.基于问题框架的需求建模:一种本体制导的方法[J].软件学报, 2011, 22(2): 177-194.CHEN Xiaohong,YIN Bin,JIN Zhi. Ontology—guided requirements modeling based on problem frames approach[J].Journal of Software, 2011, 22(2): 177-194. |
[10] | FRANZ B, DIEGO C, DEBORAH L, et al. The description logic handbook: theory, implementation, and applications[M]. New York: Cambridge University Press, 2003: 555-574. |
[11] | GRUBER T R. A translation approach to portable ontology specifications[J]. Knowledge Acquisition, 1993, 5(2): 199-220. |
[12] | FRANZ B, IAN H, ULRIKE S. Description logics as ontology languages for the semantic web[C]//Mechanizing Mathematical Reasoning: Essays in Honor of JORG H Siekmann on the Occasion of His 60th Birthday, 2005:228-248. |
[13] | SCHMIDT S, SMOLKA G. Attributive concept descriptions with complements[J]. Artificial Intelligence, 1991.48(1): 1-26. |
[14] | 常亮,史忠植,陈立民,等.一类扩展的动态描述逻辑[J].软件学报, 2010, 21(1): 1-13.CHANG Liang, SHI Zhongzhi, CHEN Limin, et al. Family of extended dynamic description logics[J]. Journal of Software, 2010, 21(1): 1-13. |
[15] | 常亮,史忠植,古天龙,等.可判定的时序动态描述逻辑[J].软件学报, 2011, 22(7): 1524-1537CHANG Liang, SHI Zhongzhi, GU Tianlong, et al. Decidable Temporal Dynamic Description Logics[J]. Journal of Software, 2011, 22(7): 1524-1537. |
[16] | 沈国华,张伟,黄志球,等.基于描述逻辑的特征语义建模及验证[J].计算机研究与发展, 2013, 50(7): 1501-1512SHEN Guohua, ZHANG Wei, HUANG Zhiqiu. Description-logic-based feature modeling and verification[J]. Journal of Computer Research and Development, 2013, 50(7): 1501-1512. |
[17] | 刘全,崔志明,高阳,等.一种逻辑强化学习的tableau推理方法[J].智能系统学报, 2008, 3(4): 355-360.LIU Quan,CUI Zhi-ming,GAO Yang, et al. Tableau reasoning method based on logical reinforcement learning[J]. CAAI Transactions on Intelligent Systems, 2008, 3(4): 355-360. |
[18] | 叶育鑫,欧阳丹彤,刘瑶,等.基于SHOIQ(D)的本体一致性检测[J].计算机工程与科学,2009, 31(8):7-10.YE Yuxin,OUYANG Dantong, LIU Yao, et al. Consistency checking of the SHOIQ(D)-based ontology[J].Computer Engineering & Science, 2009, 31(8):7-10. |
[19] | 石莲,孙吉贵.描述逻辑综述[J].计算机科学,2006, 33(1):194-197.SHI Lian,SUN Jigui. Description Logic Survey[J].Computer Science,2006, 33(1):194-197. |
[20] | 古华茂,王勋,凌云,等.完全析取范式群判定 SHOIN(D)-可满足性[J].软件学报,2010, 21(8):1863-1877.GU Huamao, WANG Xun, LING Yun, et al. Determining the SHOIN(D)-satisfiability with a complete disjunctive normal form group[J]. Journal of Software,2010,21(8):1863-1877. |