一种建立软件需求模型的方法

文档序号:6471525阅读:392来源:国知局

专利名称::一种建立软件需求模型的方法
技术领域
:本发明属于软件开发技术和工具领域,特别是涉及一种建立软件需求模型的方法。
背景技术
:随着计算机应用的不断发展和深入,人们需要收集和处理的信息规模急剧增大,其中计算机软件在信息收集和处理中起着至关重要的作用。由于软件己成为信息基础设施并具备密集型特点,使得软件一方面日益成为人们生活中的一部分,如电子政府、电子商务和手机等,人们也日益依赖软件。另一方面,一些高尖端
技术领域
,如航空航天、国防军事等领域,对软件的质量提出了很高的要求。然而,软件开发的开发状况和质量远未达到人们的期望和要求,例如大部分软件产品不能在预期计划和预算经费内完成以及软件的质量低下等。虽然产生上述问题的原因有很多,但软件需求问题可以说是其中的一个最大原因,许多的研究已经发现,当软件开发项目失败时,软件需求问题通常正是核心问题。因此,在软件开发过程中,必须极早和有效地发现和解决与软件需求相关的问题。需求建模在软件需求分析中是十分重要的工作。需求建模主要是根据待开发软件系统的需求利用某种建模方法建立该系统的逻辑模型(也称需求模型),以明确待开发软件系统"做什么"的问题。所谓模型就是为了理解事物而对事物做出的一种抽象,是对事物的一种无歧义的书面描述。软件需求模型则是对软件系统需求的抽象描述,并由文本、图形符号或数学符号以及组织这些符号的规则形成。在软件的实际开发中,为了更好地理解需求,特别是复杂的软件系统的需求,软件开发人员应从不同的角度分析待开发软件系统的需求信息,使用精确的方法构造系统的模型,验证模型是否满足用户的需求,并在设计过程中逐渐把与实现相关的细节加进模型,直至最终用程序实现模型。对于相当复杂而又难于理解的系统,特别需要进行需求建模。为了建立软件系统的需求模型,软件开发人员使用了许多的建模方法。在目前的需求建模方法中,需求建模方法大部分是用图形符号来描述需求模型,如统一建模语言(UML:UnifiedModelingLanguage)等。虽然图形的含义比较直观和易理解,但其只能是一种半形式化的方法,缺乏严格的语义,并且存在随意性等问题。另一方面,形式化的需求建模方法主要用严格的数学知识和符号来构造系统的需求模型,使得需求模型更加严密、无二义性和易于推理。但不足之处是概念符号过于抽象,需要具有较好的数学基础和严格地专门训练后才能掌握和使用,而且可能会增加软件开发费用。作为形式化需求描述语言的典型代表作有Z方法和B方法等。因此,在上述需求建模方法的基础上有必要研究和实现将文本表示的需求和由图形或数学符号表示的需求模型结合起来,建立待开发软件系统的需求模型,以检测其需求中存在的问题。
发明内容本发明目的在于针对现有技术的不足,提供一种建立软件系统需求模型的方法,该方法能够帮助软件开发人员在软件实际开发工作中建立待开发软件系统的需求模型,并能通过需求模型分析和检测软件需求中存在的问题。本发明的技术方案用于针对用户所确定待开发软件系统的问题域的边界和范围,建立软件需求模型,包括以下步骤,步骤l,根据问题域标识和定义视点,所述视点是一个视点源根据其关注点和问题域而提出的需求信息的集合;所述标识和定义视点的具体步骤如下步骤1.1,分析并确定出问题域中存在的需求源作为视点源;步骤1.2,确定每个视点源对问题域的关注点;步骤1.3,根据关注点创建视点;步骤2,为步骤1中定义的每一个与待开发软件系统相关的视点建立场景,具体步骤如下步骤2.1,提取用户用自然语言描述的需求并收录到视点中,分析用自然语言描述的需求,确定其中的所有动作和动作的主客体,然后将动作及相应的主客体一起视为待开发软件系统中的行为;步骤2.2,分析步骤2.1所得的所有行为,并从中筛选出与待开发软件系统密切相关的有效行为;步骤2.3,分析有效行为间的执行关系,执行关系为顺序、并行、确定选择或非确定选择;步骤2.4,将步骤2.2所得的所有有效行为按其间的执行关系构成有序的行为系列,从而构建出视点中的场景;步骤3,使用行为描述语言建立系统需求模型,具体步骤如下步骤3.1,对于视点中的每一个场景,用行为描述语言将其中的每个有效行为描述为原子行为;即设某个场景中包含n个有效行为,描述所得n个原子行为表达为原子行为标识1:原子行为定义1;原子行为标识2:原子行为定义2;原子行为标识n:原子行为定义n;步骤3.2,根据场景中有效行为间的关系,用行为描述语言将场景中所有原子行为联结成场景行为表达式,从而构成场景行为模型;即设某个场景中包含n个有效行为,场景行为表达式-场景中所有的n个原子行为及其原子行为间的关系;步骤3.3,对于每一个视点,根据视点中所有场景间的关系,将视点中所有场景行为模型联结成视点行为表达式,从而构成视点行为模型,视点行为表达式=视点中所有场景行为表达式及其场景间的关系;所有视点行为模型构成初始的系统需求模型;步骤4,检测系统需求模型,具体步骤如下步骤4.1,检测每个视点中所有场景的原子行为定义的正确性;步骤4.2,检测场景行为表达式的合法性,以及场景内所有原子行为之间的连续性和同一视点内场景行为模型间行为输入/出的一致性;步骤4.3,检测每个视点行为表达式的合法性和所有视点行为模型间行为输入/出的一致性;步骤4.4,显示检测结果;若检测结果为发现问题则修改相应的场景行为模型或视点行为模型,并返回重复步骤4.1步骤4.3的检测,直到每个视点都检测结果通过;若检测结果通过,综合所有视点行为模型得到最终的系统需求模型并输出。而且,进行步骤1时,根据问题域的逻辑特性和问题域内部各成分间的逻辑关系,将问题域划分成一个以上子问题域;步骤1.2中,每个视点源对问题域的关注点包括每个视点源对所有子问题域的关注点,而且,步骤1.3中创建视点以视点模板的形式实现;视点模板规定了视点的描述内容,且一个视点模板由多个信息槽组成;这些信息槽不仅用于记录与该视点相关的基本信息,包括视点名称、视点创建时间和用户名,而且也用于记录与该视点相关的用户需求信息,包括用自然语言描述的该视点中的需求和场景、用行为描述语言描述的视点行为模型和该视点内所有场景行为模型。而且,系统行为模型表示为M^(V,R0,Rl,R2),其中V表示与待开发软件系统相关的视点的集合,且V中每个视点对应一个视点行为模型,R0、Rl、R2分别表示V中视点间的重叠、顺序和无关关系;视点行为模型表示为Ml-(B,+,If,i|,;),其中B表示视点内所有场景行为表达式的集合。+,If,||,;分别表示B中场景间的非确定、确定选择、并行和顺序关系。本发明具有以下主要有益效果其一.针对软件系统的特点,本方法使用场景和视点技术,提供适合于复杂软件系统的需求建模技术方案。并且通过划分子问题域,进一步降低复杂软件系统需求建模难度。其二.本方法能将用户使用自然语言表达的需求转化为场景及行为表达式,从而能实现从自然语言到半形式化,然后到形式化的需求描述,为自动检测软件系统的需求是否正确和完整奠定了良好的基础。其三.软件行为的正确与否决定了软件能否满足用户需求,并且软件系统的特性如可信特性也是通过软件行为来验证的。在需求分析阶段通过分析待开发软件的需求信息和行为,并建立严格地描述基于软件行为的需求模型,这将有助于检测待开发软件的许多特性。其四.本方法所提供的行为描述语言可用于表达一些其他建模技术和符号,如状态图、工作流图和数据流图等一些半形式化的、基于图形的需求建模技术。通过转换工具自动转化为用行为描述语言描述的形式化需求模型。使得本方法能兼容一些其它的建模方法和技术,从而具有较好的广泛性和实用性。其五.软件行为有利于从形式化的角度建立和检测软件需求模型,从而获得高质量的软件需求。图l为本发明的流程图2为本发明具体实施例的需求示意图。具体实施例方式参见附图l,本发明提供的技术方案流程如下,具体实施时可以采用计算机实现以下流程的自动运行步骤l,根据问题域标识和定义视点,所述视点是一个视点源根据其关注点和问题域而提出的需求信息的集合;所述标识和定义视点的具体步骤如下步骤1.1,分析并确定出问题域中存在的需求源作为视点源;步骤1.2,确定每个视点源对问题域的关注点;步骤1.3,根据关注点创建视点;所谓问题域是指与问题相关的部分现实世界。所谓视点是一个视点源根据其关注点和某个问题域而提出的需求信息的集合。根据相应的问题域,从中找出所有的视点源及其关注点,并将它们标识为视点。对于复杂的待开发软件系统,直接从其中标识视点可能有些困难,本发明提出进一步技术方案,首先根据问题域的逻辑特性和问题域内部各成分间的逻辑关系,将复杂的问题域分解为多个子问题域,然后根据视点源确定在每个子问题上的关注点,每个视点源对问题域的关注点包括每个视点源对所有子问题域的关注点。可见本发明特别适合于对较复杂和规模较大的软件系统实现需求建模。待开发软件系统并不很复杂时,则无需进行子问题域划分。具体实施时可以采用视点模板形式视点模板规定了视点的描述内容,且一个视点模板由多个信息槽组成;这些信息槽不仅用于记录与该视点相关的基本信息,包括视点名称、视点创建时间和用户名,而且也用于记录与该视点相关的用户需求信息,包括用自然语言描述的该视点中的需求和场景、用行为描述语言描述的视点行为模型和该视点内所有场景行为模型。创建视点后,即为该视点生成视点模板,然后可以由计算机自动生成或者人工编写填入视点基本信息;用户需求信息中,自然语言描述的需求可以从客户提供的需求文本中直接提取或者人工输入,视点模板中在后续步骤得到其它相关信息是以自然语言描述的需求为原始依据,并可自动或半自动填入模板,例如执行步骤2.4后得到自然语言描述的场景。模板化处理视点可以方便管理和修改。本发明提供了实施例的视点模板所含信息槽列表如下<table>tableseeoriginaldocumentpage11</column></row><table><table>tableseeoriginaldocumentpage12</column></row><table>步骤2,为步骤l中定义的每一个与待开发软件系统相关的视点建立场景,具体步骤如下步骤2.1,提取用户用自然语言描述的需求并收录到视点中,分析用自然语言描述的需求,确定其中的所有动作和动作的主客体,然后将动作及相应的主客体一起视为待开发软件系统中的行为;步骤2.2,分析步骤2.1所得的所有行为,并从中筛选出与待开发软件系统密切相关的有效行为;步骤2.3,分析有效行为间的执行关系,执行关系为顺序、并行、确定选择或非确定选择;步骤2.4,将步骤2.2所得的所有有效行为按其间的执行关系构成有序的行为系列,从而构建出视点中的场景。一个场景是软件系统的用户能感受到的软件系统的一个完整功能。通过分析视点中用自然语言描述的需求,并从中归纳出场景的描述内容。因为视点中用自然语言描述需求,因此场景的描述也主要用自然语言。本发明利用场景技术实现从自然语言描述的用户需求到形式化的系统需求模型的过渡,使得该方法易于使用。步骤3,使用行为描述语言建立系统需求模型,具体步骤如下步骤3.1,对于视点中的每一个场景,用行为描述语言将其中的每个有效行为描述为原子行为;步骤3.2,根据场景中有效行为间的关系,用行为描述语言将场景中所有原子行为联结成场景行为表达式,从而构成场景行为模型;步骤3.3,对于每一个视点,根据视点中所有场景间的关系,将视点中所有场景行为模型联结成视点行为表达式,从而构成视点行为模型,所有视点行为模型构成初始的系统需求模型。该步骤中不采用自然语言,而利用行为描述语言(BDL,BehaviorsDescriptionLanguage)表达行为模型。本发明采用行为描述语言这种形式化语言作为描述手段之一,其主要用于严格地描述待开发软件系统的行为模型,可以为以后自动检验待开发软件系统的各种特性奠定良好的基础。行为描述语言对行为、场景到视点的描述表达都给出了严格的表现形式,即设某个场景中包含n个有效行为,描述所得n个原子行为表达为原子行为标识1:原子行为定义1;原子行为标识2:原子行为定义2;原子行为标识n:原子行为定义n;场景行为表达式-场景中所有的n个原子行为及其原子行为间的关系;视点行为表达式=视点中所有场景行为表达式及其场景间的关系。具体实施时,按照这种确定的行为描述语言语法,计算机可以自动完成从自然语言描述的需求到建立初始系统需求模型的全过程,然后通过修改和检测最终形成正确的系统需求模型。为了便于管理,本发明进一步提供了模型表达方式系统行为模型可以表示为M:(V,R0,Rl,R2),其中V表示与待开发软件系统相关的视点的集合,且V中每个视点对应一个视点行为模型,R0、Rl、R2分别表示V中视点间的重叠、顺序和无关关系;视点行为模型表示为Ml-(B,+,If,II,;),其中B表示视点内所有场景行为表达式的集合。+,If,||,;分别表示B中场景间的非确定、确定选择、并行和顺序关系。这种形式化表示,可以保证视点行为模型和系统行为模型在表达方面的正确性,以及防止视点间需求信息可能会发生重叠从而导致行为模型间出现行为冲突和不一致。本发明还提供了实施例在此步骤形成的行为描述语言文本以供参考令ABehID为原子行为标识,BehID为行为标识。(1)原子行为1)原子行为表达式ABehID:f(sub,obj)[When前置条件][OUTTo(ID)(Vl,.....,vm)].其中f为主体sub施用于客体obj的服务、操作或动作。When,INFrom和OUTTo分别为行为执行的前置条件,行为的输入和输出。2)空动作ABehID:Idel.3)复合行为结束动作ABehID:Return(ABehID)或Return().其中Return()表示正常退出系统。(2)简单行为l一ABehID;(原子行为构成简单行为)(3)复合行为1)顺序行为(a)H魁/羊卜*膨2卜垂叫;是,,(b)2)未确定选择行为:3)确定选择行为4)并行行为卜是膨;&婦,—丑e/;/D,&I—"e//D2&.....&|-忍eMD"I—5e膨,+触/02+...+触/Z)"-JggWD1&I-丑^/1)2&6为布尔表达式I6r/ze"魁/D!孤e&膨2"—触叫&I—触/"2&.....&I—5e揚,|,(4)系统行为模型的结构如下:系统名视点ID,的行为模型;视点IDn的行为模型。(5)视点行为模型的结构如下视点ID:15VPBEGIN场景IDi的行为模型场景IDn的行为模型VPBehID=视点行为表达式=场景的BehID场景间关系符场景的BehID[场景间关系符场景的BehID......]VPEND(6)场景行为模型的结构如下场景ID[,场景ID]:(符号"[]"表示其中的内容是可选的)BEGINBEH:BehID=场景行为表达式;[BehID=子行为表达式!];;END16求模型,具体步骤如下步骤4.1,检测每个视点中所有场景的原子行为定义的正确性;步骤4.2,检测场景行为表达式的合法性,以及场景内所有原子行为之间的连续性和同一视点内场景行为模型间行为输入/出的一致性;步骤4.3,检测每个视点行为表达式的合法性和所有视点行为模型间行为输入/出的一致性;步骤4.4,显示检测结果;若检测结果为发现问题则修改相应的场景行为模型或视点行为模型,并返回重复步骤4.1步骤4.3的检测,直到每个视点都检测结果通过;若检测结果通过,综合所有视点行为模型得到最终的系统需求模型并输出。为保证视点行为模型和场景行为模型符合行为描述语言的语法,以及为以后检验软件系统的需求奠定基础,有必要从语法的角度检测所有的视点行为模型和场景行为模型,从而检测视点内行为表达式的合法性,也就是检测是否符合步骤3所用的规定表达方式。并且检测行为连续性、行为间输入/出的一致性。通过循环检测修改,保证所有视点行为模型正确后,才得最终系统需求模型。本发明应用广泛,为了便于本领域技术人员更清晰地理解本发明技术方案,在此选择了一个具体实例应用方式进行详细说明参见附图2,采用本发明对银行自动取款机系统(ATM)建立需求模型。关于ATM系统的需求用自然语言陈述如下(a)某银行拟开发一个自动取款机系统,它是一个由ATM、中央计算机、分行计算机及柜员终端组成的网络系统。ATM和中央计算机由总行投资购买。总行拥有多台ATM,分别设在全市各主要街道上。分行负责提供分行计算机和柜员终端。柜员终端设在分行营业厅及分行下属的各个储蓄所内。该系统的软件开发成本由各个分行分摊。(b)银行柜员使用柜员终端处理储户提交的储蓄事务。柜员负责把储户提交的存款或取款事务输进柜员终端,接收储户交来的现金或支票,或付给储户现金。柜员终端与相应的分行计算机通信,分行计算机具体处理针对某个账户的事务并且维护账户。(C)储户可以用现金或支票向自己拥有的某个账户内存款或开设新账户。储户也可以从自己拥有的账户取款。通常,一个储户可能拥有多个账户。拥有银行账户的储户有权申请领取银行卡。使用银行卡可以通过ATM访问自己的账户,或用银行卡在ATM上提取现金(即取款),或查询有关自己账户的信息(例如,某个指定账户上的余额)。(d)所谓银行卡就是一张特制的磁卡,上面有分行代码和卡号。分行代码唯一标识总行下属的一个分行,卡号确定了这张卡可以访问哪些账户。每张银行卡仅属于一个储户所有,但同一张卡可能有多个副本。因此,必须考虑同时在若干台ATM上使用同样的银行卡的可能性。也就是说,系统应该能够处理并发的访问。(e)当用户把银行卡插入ATM之后,ATM就与用户交互,以获取有关这次事务的信息,并与中央计算机交换关于事务的信息。首先,ATM要求用户输入密码,接下来ATM把从这张卡上读到的信息以及用户输入的密码传给中央计算机,请求中央计算机核对这些信息并处理这次事务。中央计算机根据卡上的分行代码确定这次事务与分行的对应关系,并且委托相应的分行计算机验证用户密码。如果用户输入的密码是正确的,ATM就要求用户选择事务类型(取款、査询等)。当用户选择取款时,ATM请求用户输入取款额。最后,ATM从现金出口吐出现金,并且打印出账单交给用户。该实例的需求建模过程如下一、划分问题域明确了ATM系统的范围和边界后,将该系统划分成3个子问题域,即总行,ATM机和分行。二、标识视点根据以上划分出的子问题域,首先分析并确定出这些子问题域中存在的需求源即视点源和每个视点源对子问题域的关注点。在本实例中,可针对以上3个子问题域各自建立1个视点,并生成如图2所示的视点模板。然后,在各自的视点模板中填写相应的视点基本信息视点名称,视点标识、视点责任人,相关的子问题域,关注点,视点源和视点创建时间。三、描述用自然语言表达的需求对于己标识出的视点,在各自视点模板的槽"需求描述"中填入用自然语言表达的用户需求,即用文字表达的(a)(e)部分。四、建立场景在本实例中,场景是指在各视点的范围内按顺序描述用自然语言表达的需求中出现的一系列行为。建立场景的简单方法是首先从自然语言描述的需求中提取出描述场景的动作和主客体,即可根据自然语言描述中主+谓+宾结构得出组成场景的动作和动作的主客体,例如"用户输入密码"、"用户选择事务"等等。然后,再提取某些隐含的动作,得出组成场景的动作,例如,"分行请总行验证",从中可以提取出隐含动作"发送验证请求"等。最后将各视点内的所有的动作按执行时间的顺序排列,以形成各视点内的场景。一个视点可拥有多个场景。以下是ATM系统3个视点中的场景1)ATM视点中的场景ATM在显示屏上显示问候信息顾客将磁卡插入ATM;ATM读出磁卡上的代码,并检索该卡能否使用;如果磁卡能使用,ATM要求顾客输入密码。ATM等待密码输入;顾客输入密码;ATM请求中央计算机核对信息如果密码正确,ATM请求顾客选择事务处理类型。ATM等待输入事务类型;顾客选择取现金事务,并输入取出的数量;ATM请求中央计算机处理事务;ATM与中央计算机交换关于事务的信息;ATM做好取现金的准备,ATM吐出相应的纸币;ATM向顾客返还磁卡。ATM打印并输出收付款说明书。2)总行视点中的场景总行拥有多台ATM总行由各个分行组成总行拥有中央计算机中央计算机接受卡的信息中央计算机根据卡上的分行代码确定这次事务与分行的对应关系中央计算机委托相应的分行计算机验证用户密码中央计算机接受事务处理类型中央计算机委托相应的分行处理事务3)分行视点中的场景(由分行场景和柜员终端场景组成)a)分行场景分行负责提供分行计算机和柜员终端分行计算机维护账户分行接受用户密码分行计算机验证用户密码分行接受事务处理类型分行计算机处理针对某个账户的事务b)柜员终端场景柜员终端接受用户请求用户请求柜员终端建立新账户用户请求柜员终端建立新卡用户请求柜员终端建立处理事务(如存取款,査询等)柜员终端与相应的分行计算机通信柜员终端从分行计算机获取各种处理信息;柜员终端处理各种请求柜员终端向用户提交处理后的结果所有建立的场景均被填写入相应视点模板的槽"场景描述"中。五、用行为描述语言建立视点行为模型对于每一个视点,可根据视点中已建立的场景用行为描述语言建立视点行为模型。例如,总行视点的行为模型可表示如下HeadBank:〃总行场景VPBEGINABEH:Hbankl:拥有(总行,多台ATM)Hbank2:组成(多个分行,总行)Hidel:idel();//idel—直等待ATM请求或分行回答〃总行接收ATMif求或分行回答一Hreceive:响应(总行,ATM请求或分行回答)OUTTo(VPdatacell)(响应类型)〃接收ATM验证请求Hresponse:接收(总行,ATM)OUTTo(VPdatacell)(ATM号)〃中央计算机接收第i,ATM传来的卡信息和密码Hreceivel:接收(总行,第i个ATM)WhenATM号=iINFrom(VPdatacell)(卡信息,密码)〃根据卡信息,判断分行号Discern:判断(中央计,机,卡信息)OUTTo(VPdatacell)(分行号(值));〃*中央计算机将卡信息、密码及验证卡信息请求发送给相应分行验证;TranRequestl:传递(总行,第j个分行)When分行号=』INFrom(VPdatacell)(分行号)OUTTo(#LocalBank)(卡信息,密码)〃中央计算机接收第j个分行传来的验证结果RecResponl:接收(总行,第j个分行)When分行号=』INFrom(VPdatacell)(验证结果);〃*中央计算机将验证结果发送到ATM机Tranresultl:传递(总行,第i个ATM)WhenATM号=iand分行号=jINFrom(VPdatacell)(ATM号,分行号)OUTTo(#ATM)(验证结果);〃*中央计算机接收ATM传来的事务请求Hreceive2:接收(总行,第i个ATM)WhenATM号=iINFrom(VPdatacdl)(事务类型,事务信息)TranRequest2:传递(总行,第j个分行)When分行号=』INFrom(VPdatacell)(分行号)OUTTo(#LocalBank)(卡信息,事务类型,事务信息);〃中央计算机将分行答复发送到ATM机RecRespon2:接收(总行,第j个分行)When去行号-jINFrom(VPdatacell)(事务处理结果);〃*中央计算机将返回结果发送到ATM机Tranresult2:传递(总行,第i个ATM)WhenATM号=iand分行号=jINFrom(VPdatacell)(ATM号,分行号)OUTTo(#ATM)(事务处理结果);Returnto:Return(Hidel);BEH:BEHHeadBank=Hbankl;Hbank2;HideljIf响应类型-ATM请求ThenBehhbankl;ElseBehhbank2;FiReturnto;Behhbankl=Hresponss;If验证请求ThenHreceivel;Discern;TranRequestl;Else//中央计算机接收ATM传来的事务请求Hr6cciv62jTranRequest2;Fi;Behhbank2=If回答验证请求Then//中央计算机将验证结果发送到ATM机RecResponl;Tranresultl;Else//中央计算机将分行答复发送到ATM机RecRespon2;Tranresult2;Fi;VPEND(ATM机和分行的视点行为模型与总行类似,从略)所有建立的视点行为模型均被填写入相应视点模板的槽"行为模型"中。六、检测所有的视点此步主要是根据行为描述语言的语法检测在第五步中建立的3个视点行为模型,以保证各视点内所有行为表达的合法性。由于每个场景行为模型和视点行为模型分别对应于一个行为表达式,故首先需要检测视点内所有原子行为表达的合法性。然后,在所有原子行为表达的合法性检测己通过的基础之上,进一步检测各视点内多个原子行为和多个场景间输入和输出的表达一致性,以及场景行为表达式和视点行为表达式表达的合法性。最后,检测3个视点间输入和输出的表达一致性。七、形成系统的行为模型,即系统需求模型24当3个视点被检测通过后,按行为描述语言文本的第(4)部分规定的系统行为模型的结构将所有的视点行为模型综合到一起,最终可形成ATM系统的系统需求模型。此后,可依据ATM系统的系统需求模型使用不同的检测方法检测ATM系统的特性,如系统的可信性,需求的一致性和系统的安全性等。权利要求1.一种建立软件需求模型的方法,用于针对用户所确定待开发软件系统的问题域的边界和范围,建立软件需求模型,其特征是包括以下步骤,步骤1,根据问题域标识和定义视点,所述视点是一个视点源根据其关注点和问题域而提出的需求信息的集合;所述标识和定义视点的具体步骤如下步骤1.1,分析并确定出问题域中存在的需求源作为视点源;步骤1.2,确定每个视点源对问题域的关注点;步骤1.3,根据关注点创建视点;步骤2,为步骤1中定义的每一个与待开发软件系统相关的视点建立场景,具体步骤如下步骤2.1,提取用户用自然语言描述的需求并收录到视点中,分析用自然语言描述的需求,确定其中的所有动作和动作的主客体,然后将动作及相应的主客体一起视为待开发软件系统中的行为;步骤2.2,分析步骤2.1所得的所有行为,并从中筛选出与待开发软件系统密切相关的有效行为;步骤2.3,分析有效行为间的执行关系,执行关系为顺序、并行、确定选择或非确定选择;步骤2.4,将步骤2.2所得的所有有效行为按其间的执行关系构成有序的行为系列,从而构建出视点中的场景;步骤3,使用行为描述语言建立系统需求模型,具体步骤如下步骤3.1,对于视点中的每一个场景,用行为描述语言将其中的每个有效行为描述为原子行为;即设某个场景中包含n个有效行为,描述所得n个原子行为表达为原子行为标识1原子行为定义1;原子行为标识2原子行为定义2;原子行为标识n原子行为定义n;步骤3.2,根据场景中有效行为间的关系,用行为描述语言将场景中所有原子行为联结成场景行为表达式,从而构成场景行为模型;即设某个场景中包含n个有效行为,场景行为表达式=场景中所有的n个原子行为及其原子行为间的关系;步骤3.3,对于每一个视点,根据视点中所有场景间的关系,将视点中所有场景行为模型联结成视点行为表达式,从而构成视点行为模型,视点行为表达式=视点中所有场景行为表达式及其场景间的关系;所有视点行为模型构成初始的系统需求模型;步骤4,检测系统需求模型,具体步骤如下步骤4.1,检测每个视点中所有场景的原子行为定义的正确性;步骤4.2,检测场景行为表达式的合法性,以及场景内所有原子行为之间的连续性和同一视点内场景行为模型间行为输入/出的一致性;步骤4.3,检测每个视点行为表达式的合法性和所有视点行为模型间行为输入/出的一致性;步骤4.4,显示检测结果;若检测结果为发现问题则修改相应的场景行为模型或视点行为模型,并返回重复步骤4.1~步骤4.3的检测,直到每个视点都检测结果通过;若检测结果通过,综合所有视点行为模型得到最终的系统需求模型并输出。2.根据权利要求1所述建立软件需求模型的方法,其特征是进行步骤1时,根据问题域的逻辑特性和问题域内部各成分间的逻辑关系,将问题域划分成一个以上子问题域;步骤1.2中,每个视点源对问题域的关注点包括每个视点源对所有子问题域的关注点。3.根据权利要求1或2所述建立软件需求模型的方法,其特征是步骤1.3中创建视点以视点模板的形式实现;视点模板规定了视点的描述内容,且一个视点模板由若干信息槽组成;这些信息槽不仅用于记录与该视点相关的基本信息,包括视点名称、视点创建时间和用户名,而且也用于记录与该视点相关的用户需求信息,包括用自然语言描述的该视点中的需求和场景、用行为描述语言描述的视点行为模型和该视点内所有场景行为模型。4.根据权利要求1或2所述建立软件需求模型的方法,其特征是系统行为模型表示为M=(V,R0,Rl,R2),其中V表示与待开发软件系统相关的视点的集合,且V中每个视点对应一个视点行为模型,R0、Rl、R2分别表示V中视点间的重叠、顺序和无关关系;视点行为模型表示为Ml=(B,+,If,II,;),其中B表示视点内所有场景行为表达式的集合。+,If,||,;分别表示B中场景间的非确定、确定选择、并行和顺序关系。全文摘要一种建立软件需求模型的方法,包括为问题域标识和定义视点;为每一个与待开发软件系统相关的视点建立场景;使用行为描述语言建立系统需求模型;检测所有的视点;若检测结果为发现问题则修改相应的场景行为模型或视点行为模型并返回重复检测,直到每个视点都检测结果通过;若检测结果通过,综合所有视点行为模型得到最终系统需求模型并输出。本发明通过使用场景和视点技术,能够为复杂软件系统的建立高质量的需求模型,为自动检测软件系统的需求是否正确和完整奠定了良好的基础。而且能够兼容一些其它的建模方法和技术,具有较好的广泛性和实用性。文档编号G06F9/44GK101464796SQ200810237469公开日2009年6月24日申请日期2008年12月29日优先权日2008年12月29日发明者黎万,昱姚,毋国庆,晶肖,袁梦霆申请人:武汉大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1