CN102508645B - 一种面向行为的软件需求模型可视化方法 - Google Patents
一种面向行为的软件需求模型可视化方法 Download PDFInfo
- Publication number
- CN102508645B CN102508645B CN201110284794.5A CN201110284794A CN102508645B CN 102508645 B CN102508645 B CN 102508645B CN 201110284794 A CN201110284794 A CN 201110284794A CN 102508645 B CN102508645 B CN 102508645B
- Authority
- CN
- China
- Prior art keywords
- behavior
- animation
- scene
- atom
- model
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Landscapes
- Processing Or Creating Images (AREA)
Abstract
本发明涉及一种面向行为的软件需求模型可视化方法。由于需求动画的实现与需求建模方法和需求模型密切相关,故首先研究基于软件行为的需求建模方法和行为描述语言,以建立基于软件行为的需求模型。其次,研究和建立从需求模型到需求动画描述模型的形式化转换机制和面向软件行为的、符合用户理解模式的需求动画运行机制,以实现需求模型的可视化。面向软件行为的需求动画能够辅助各种背景知识的用户直观和确切地理解需求模型中的行为过程,从而能够获取有效的用户反馈,提高需求分析的效率,减少软件开发成本。因此,本发明不仅具有重要的理论意义和创新性,而且也具有明确的实用价值。
Description
技术领域
本发明涉及一种软件需求模型可视化方法,尤其是涉及一种面向行为的软件需求模型可视化方法。
背景技术
在软件需求阶段,开发人员需要和用户进行充分的交流,获取尽可能详细的需求信息。这些需求信息中往往包含了一些与软件系统无关或者关系不大的信息,以及可能发生重叠或冲突的需求,另外,在软件需求获取中,用户往往并不清楚自己的真实需要,而在软件开发的后续阶段,这些需求的经常会发生变更,这些变更会极大地增加开发的复杂性和成本。因此,在目标软件系统比较复杂的情况下,需要利用需求建模方法建立系统的需求模型。需求建模的目的就是要在需求分析过程中从不同的角度建立和检验软件系统的需求模型,为项目相关人员提供一个可以进行沟通和验证需求信息正确性的平台,以获得高质量的需求,以及准确地表达和理解用户需求,确保需求模型和需求文档能准确表达用户的真实意愿。许多经验表明,如果能在软件需求阶段发现错误和问题,这对于节约软件开发成本和提高软件质量是十分有益的。
通过多年的研究和实践,软件需求验证理论和技术已取得了不少的成果和进步,如形式化的软件需求验证方法和技术等。然而,目前在软件需求验证方面还有许多需要研究的问题。例如,形式化验证方法的好处是严格和自动化,能够高效地获得可靠的验证结果。但形式化方法的最大问题是它们对数学基础的要求太高,难以被一般开发人员掌握。另外,非专业的需求用户难以理解形式化的模型,很难参与到验证过程中,验证过程和结果容易脱离用户的真实意愿。另一方面,非形式化方法或人工方法一般直观性和简单性较好,易于被开发人员掌握和操作,便于用户参与验证过程。但由于参与者的主观性,导致验证过程不够严密且随意性较大,难以保证验证结果的正确性和完整性,特别是在目标系统比较复杂的情况下,这种问题尤为突出。为解决上述问题,一个较好的做法是将可视化技术与形式化需求验证方法和技术相结合,利用图形、图像的直观性增强软件需求模型的可读性,增进非专业用户以及领域专家等项目相关人员对需求模型的理解和交流。
可视化是指使用图形,图像或者图片等技术,使一些不可见的对象、表达或者抽象概念变成可见的符号。可视化技术在其它计算机研究领域(如系统建模,仿真),以及软件工程其它阶段(如软件设计阶段)已经有了广泛的应用,而在软件需求阶段的应用研究还处于初步阶段。目前,国内外的相关研究者们在软件需求阶段采用了不同方法和技术进行可视化的研究,这些研究从表达技术和表达内容上可大致综合为两类,一类是利用各种图形符号静态地表示需求模型,且又可具体归纳为以下几种方式列表可视化、关系可视化、序列可视化、层次可视化、定量可视化。另一大类则是动态的表示需求模型,即用动画的形式动态的表现需求模型,又分为以下两种。一类方法是在演示动画时,通过执行需求模型中的过程或状态变换来驱动对应图形符号的改变,在一定程度上能够更加直观地、动态地表达需求模型,便于开发人员调试和理解需求模型。但动画中采用的图形符号与模型中的形式化符号相对应,对于非专业用户,这些符号难以理解。另一类方法,另一部分工具是使用现实世界的图形和图像作为动画执行元素,并用需求模型来驱动这些动画元素的执行。这些工具生成的动画便于非专业的用户理解,能够很好地促进用户和开发人员的交流。这类方法的问题是动画生成的自动化程度较低,动画的制作需要大量的人工参与描述动画执行脚本,而且在动画执行时没有显示与模型的直接联系。因此,在上述方法的基础上有必要研究和实现一种更好的将需求模型和动画元素结合起来的可视化方法,更直观的动态表示需求模型,以方便用户发现其需求中存在的问题,或改进原需求模型。
发明内容
本发明主要是解决现有技术所存在的形式化方法的最大问题是它们对数学基础的要求太高,难以被一般开发人员掌握等的技术问题;提供了一种使用形象直观的图形符号的动态变化来展示需求模型中的动态行为内容,模拟目标软件的主要执行过程,通过执行与行为模型对应的动画,能够辅助不同知识背景下的用户理解需求行为模型的一种面向行为的软件需求模型可视化方法。
本发明还有一目的是解决现有技术所存在的由于参与者的主观性,导致验证过程不够严密且随意性较大,难以保证验证结果的正确性和完整性,特别是在目标系统比较复杂的情况下,这种问题尤为突出等的技术问题;提供了一种半自动化地完成往常必须用人工去完成的工作,允许用户在项目的需求建模阶段就能够提出自己的修改意见,启发用户发现遗漏和不正确的潜在需求,获取有益的用户反馈意见,它极大程度上减少了需求变更的出现,大大地降低了软件开发的复杂性和开发成本的一种面向行为的软件需求模型可视化方法。
本发明再有一目的是解决现有技术所存在的演示动画时,动画中采用的图形符号与模型中的形式化符号相对应,对于非专业用户,这些符号难以理解等的技术问题;提供了一种表现力强,可以完成各种不同项目的可视化工程,同时基于项目本身的开发层次不同,可以完成针对性非常高的需求动画,提供给在不同层次上使用该软件的客户用以理解和提出反馈意见的一种面向行为的软件需求模型可视化方法。
本发明最后目的是解决现有技术所存在的使用现实世界的图形和图像作为动画执行元素,并用需求模型来驱动这些动画元素的执行,但是这类动画生成的自动化程度较低,动画的制作需要大量的人工参与描述动画执行脚本,而且在动画执行时没有显示与模型的直接联系等的技术问题;提供了一种简单易学,给用户和开发人员提供了很好的沟通平台,具有很好的广泛性和实用性的一种面向行为的软件需求模型可视化方法
本发明的上述技术问题主要是通过下述技术方案得以解决的:
一种面向行为的软件需求模型可视化方法,其特征在于,包括以下步骤:
步骤1,提取需求文档中主客体和行为;
步骤2,使用行为描述语言根据步骤1已经提取的需求文档中主客体和行为建立初始的系统需求模型;
步骤3,检测步骤2已经完成的初始的系统需求模型语法的正确性,并针对发现的问题进行修改相应的行为后建立系统需求模型;
步骤4,将步骤3完成的系统需求模型关联动画元素,制作行为动画;
步骤5,将制作好的行为动画设置动态执行参数,并演示动画。
在上述的一种面向行为的软件需求模型可视化方法,所述的步骤1中,具体操作方法如下:
步骤1.1,提取用户用自然语言描述的需求并收录到视点中,分析用自然语言描述的需求,确定其中的所有动作和动作的主客体,然后将动作及相应的主客体一起视为待开发软件系统中的行为;
步骤1.2,分析步骤1.1所得的所有行为,并从中筛选出与待开发软件系统密切相关的有效行为;
步骤1.3,分析有效行为间的执行关系,执行关系为顺序、并行、确定选择或非确定选择;
步骤1.4,将步骤1.2所得的所有有效行为按其间的执行关系构成有序的行为系列;
在上述的一种面向行为的软件需求模型可视化方法,所述的步骤2中,具体操作方法如下:
步骤2.1,对于视点中的每一个场景,用行为描述语言将其中的每个有效行为描述为原子行为;即设某个场景中包含n个有效行为,描述所得n个原子行为表达为
原子行为标识1:原子行为定义1;
原子行为标识2:原子行为定义2;
原子行为标识n:原子行为定义n;
步骤2.2,根据场景中有效行为间的关系,用行为描述语言将场景中所有原子行为联结成场景行为表达式,从而构成场景行为模型;即设某个场景中包含n个有效行为,场景行为表达式=场景中所有的n个原子行为及其原子行为间的关系;
步骤2.3,对于每一个视点,根据视点中所有场景间的关系,将视点中所有场景行为模型联结成视点行为表达式,从而构成视点行为模型,所有视点行为模型构成初始的系统需求模型。
在上述的一种面向行为的软件需求模型可视化方法,所述的步骤3中,具体操作方法如下:
步骤3.1,检测原子行为定义的正确性;
步骤3.2,检测复合原子行为定义的正确性;
步骤3.3,显示检测结果;若检测结果为发现问题则修改相应的行为(根据行为描述语言的语法修改,行为描述语言的语法在后续有介绍),并返回重复步骤3.1~步骤3.2的检测,直到检测结果通过;若检测结果通过,则得到基于行为的需求模型。
在上述的一种面向行为的软件需求模型可视化方法,所述的步骤4中,具体操作方法如下:
步骤4.1,设计动画的背景;
步骤4.2,选择关联主客体对应的动画元素,包括其图片、在背景中的位置、初始状态;
步骤4.3,设计行为动画脚本,控制动画元素的动态运行;
步骤4.4,生成行为动画,使用动画生成工具生成行为动画,如果行为动画脚本语法正确,则能成功生成,否则需要重新编辑行为动画脚本,直到成功生成。
在上述的一种面向行为的软件需求模型可视化方法,所述的步骤5中,具体操作方法如下:
步骤5.1,由于行为模型中有动态运行时才能确定的因素如if分支,因此需要给出if分支的策略;
步骤5.2,演示动画,观察行为序列和动画直接的关系,由用户反馈需求动画的演示效果。
因此,本发明具有如下优点:1.使用形象直观的图形符号的动态变化来展示需求模型中的动态行为内容,模拟目标软件的主要执行过程,通过执行与行为模型对应的动画,能够辅助不同知识背景下的用户理解需求行为模型;2.能够半自动化地完成往常必须用人工去完成的工作,允许用户在项目的需求建模阶段就能够提出自己的修改意见,启发用户发现遗漏和不正确的潜在需求,获取有益的用户反馈意见。它极大程度上减少了需求变更的出现,大大地降低了软件开发的复杂性和开发成本;3.表现力强,可以完成各种不同项目的可视化工程,同时基于项目本身的开发层次不同,可以完成针对性非常高的需求动画,提供给在不同层次上使用该软件的客户用以理解和提出反馈意见;4.简单易学,给用户和开发人员提供了很好的沟通平台,具有很好的广泛性和实用性。
附图说明
图1为本发明的流程图。
图2为本发明具体实施例的需求示意图。
图3为本发明具体实施例的制作需求动画截图。
图4为本发明具体实施例的演示示意截图。
具体实施方式
下面通过实施例,并结合附图,对本发明的技术方案作进一步具体的说明。
实施例:
参见附图1,本发明提供的技术方案流程如下,具体实施时可以采用计算机实现以下流程的自动运行:
步骤1,提取需求文档中主客体和行为,具体步骤如下:
步骤1.1,提取用户用自然语言描述的需求并收录到视点中,分析用自然语言描述的需求,确定其中的所有动作和动作的主客体,然后将动作及相应的主客体一起视为待开发软件系统中的行为;
步骤1.2,分析步骤1.1所得的所有行为,并从中筛选出与待开发软件系统密切相关的有效行为;
步骤1.3,分析有效行为间的执行关系,执行关系为顺序、并行、确定选择或非确定选择;
步骤1.4,将步骤1.2所得的所有有效行为按其间的执行关系构成有序的行为系列;
步骤2,使用行为描述语言建立系统需求模型,具体步骤如下:
步骤2.1,对于视点中的每一个场景,用行为描述语言将其中的每个有效行为描述为原子行为;即设某个场景中包含n个有效行为,描述所得n个原子行为表达为
原子行为标识1:原子行为定义1;
原子行为标识2:原子行为定义2;
原子行为标识n:原子行为定义n;
步骤2.2,根据场景中有效行为间的关系,用行为描述语言将场景中所有原子行为联结成场景行为表达式,从而构成场景行为模型;即设某个场景中包含n个有效行为,场景行为表达式=场景中所有的n个原子行为及其原子行为间的关系;
步骤2.3,对于每一个视点,根据视点中所有场景间的关系,将视点中所有场景行为模型联结成视点行为表达式,从而构成视点行为模型,所有视点行为模型构成初始的系统需求模型;
该步骤中不采用自然语言,而利用行为描述语言(BDL,BehaviorsDescriptionLanguage)表达行为模型。本发明采用行为描述语言这种形式化语言作为描述手段之一,其主要用于严格地描述待开发软件系统的行为模型,可以为以后自动检验待开发软件系统的各种特性奠定良好的基础。行为描述语言对行为、场景到视点的描述表达都给出了严格的表现形式,即设某个场景中包含n个有效行为,描述所得n个原子行为表达为
原子行为标识1:原子行为定义1;
原子行为标识2:原子行为定义2;
原子行为标识n:原子行为定义n;
场景行为表达式=场景中所有的n个原子行为及其原子行为间的关系;
视点行为表达式=视点中所有场景行为表达式及其场景间的关系。
具体实施时,按照这种确定的行为描述语言语法,计算机可以自动完成从自然语言描述的需求到建立初始系统需求模型的全过程,然后通过修改和检测最终形成正确的系统需求模型。
本发明还提供了实施例在此步骤形成的行为描述语言文本以供参考:
令ABehID为原子行为标识,BehID为行为标识。
(1)原子行为:
1)原子行为表达式
ABehID:f(sub,obj)
[When前置条件]
[INFrom(ID)(u1,…..,un)]
[OUTTo(ID)(v1,…..,vm)].
其中:f为主体sub施用于客体obj的服务、操作或动作。When,INFrom和OUTTo分别为行为执行的前置条件,行为的输入和输出。
2)空动作:ABehID:Idel.
3)复合行为结束动作:ABehID:Return(ABehID)或Return().
其中:Return()表示正常退出系统。
(2)简单行为:|-ABehID;(原子行为构成简单行为)
(3)复合行为:
1)顺序行为:(a)
(b)
2)未确定选择行为:
3)确定选择行为:
4)并行行为:
(4)系统行为模型的结构如下:
系统名:
视点ID1的行为模型;
……..
视点IDn的行为模型。
(5)视点行为模型的结构如下:
视点ID:
VPBEGIN
[视点内共享数据存储池ID;]
场景ID1的行为模型
……..
场景IDn的行为模型
VPBehID=视点行为表达式
=场景的BehID场景间关系符场景的BehID[场景
间关系符场景的BehID……]
VPEND
(6)场景行为模型的结构如下:
场景ID[,场景ID]:(符号“[]”表示其中的内容是可选的)
BEGIN
[ABEH::
ABehID::原子行为1;
……..
ABehID::原子行为n;]
BEH:
BehID=场景行为表达式;
[BehID=子行为表达式1];
…….
[BehID=子行为表达式m];
END
步骤3,检测行为模型语法的正确性,具体步骤如下:
步骤3.1,检测原子行为定义的正确性;
步骤3.2,检测复合原子行为定义的正确性;
步骤3.3,显示检测结果;若检测结果为发现问题则修改相应的行为,并返回重复步骤3.1~步骤3.2的检测,直到检测结果通过;若检测结果通过,则得到基于行为的需求模型。
步骤4,关联动画元素,制作行为动画,具体步骤如下:
步骤4.1,设计动画的背景;
步骤4.2,选择关联主客体对应的动画元素,包括其图片、在背景中的位置、初始状态等;
由行为模型中选定的主客体对象,可需要设置与主客体对象对应的动画元素和这些对象活动的“舞台背景图片”。“舞台背景图片”是动画对象显示的背景图片,可以将所有动画过程中不动的背景设计到“舞台背景图片”中。
表一动画元素的内容和用法
在主客体对象对应的动画元素包括主客体名、关联图片、类型、初始x坐标、初始y坐标、摆放层次深度。动画元素的内容和用法如表1所示。
对于任何一个主客体对象,都需要设置其对应的动画元素,可以逐个地采用“关联图片”的方式设置每一个对象的动画元素。
步骤4.3,设计行为动画,控制动画元素的动态运行;
行为动画是指动画BDL模型原子行为对应的动画操作原语的序列。这些操作序列在BDL模型的驱动控制,形成了一个完整的动画,而单个的原子行为动画是完整动画的最小组成部分。行为动画采用了简单的原语语句来控制图片的显示和运动,这些原语语句的序列组成了一个单个的原子行为动画。原子行为动画原语的功能如表2所示:
表2动画原语
需要根据原子行为表达式中的动作、主客体、infrom、outto描述来设计其对应的行为动画,通过上述动画原语的组合来表达所需的动画效果。当设计完成某一个原子行为对应的行为动画后,可以在相应行为名对应的文本框内填写相应的行为动画原语序列。
步骤4.4,生成行为动画,使用动画生成工具生成行为动画,如果行为动画脚本语法正确,则能成功生成,否则需要重新编辑行为动画脚本,直到成功生成;
步骤5,设置动态执行参数,演示动画,具体步骤如下:
步骤5.1,由于行为模型中有动态运行时才能确定的因素如if分支,因此需要给出if分支的策略;
If表达式是BDL模型中用于确定当前那一分支行为发生的条件语句,在动画的动态运行中其值可以为true或false。由于在动画运行过程中,需要确定if表达式的值来控制分支的选择。在初始设置动画模型遇到if分支时采取的措施是:if表达式初始值可设置为:random、true、false。Random方式是当动画模型执行到if分支,随机的选择为true、false。True或false方式即设置为固定的值true、false。在动态演示过程中,演示人员也可以临时改变If表达式的值。
步骤5.2,演示动画,观察行为序列和动画直接的关系,由用户反馈需求动画的演示效果;
动画演示包括三个部分:,‘运行动画窗口’、‘行为踪迹窗口’和‘BDL模型窗口’。‘运行动画窗口’为主窗口,其功能为控制动画演习的开始、暂停、重新开始,并显示由BDL模型驱动的动画。可以点击‘运行’按钮,开始动画运行;在动画运行后,可以点击暂停按钮,暂停动画演示;若需要重新开始演习动画,可以点击按钮,回到初始状态;若演示时,不需要展示‘行为踪迹窗口’中的内容,可以点击隐藏按钮,隐藏‘行为踪迹窗口’,再需要时再点击按钮来展示行为踪迹。
‘BDL模型窗口’,用红色高亮显示了当前运行的原子行为在BDL模型中的位置,并与行为踪迹和动画同步。
行为踪迹窗口中,显示和纪录了动画运行过程中原子行为的轨迹,并用红色高亮显示当前正在运行的行为,系统分析员和用户可以根据轨迹和动画效果来考察目标系统的需求。
本发明应用广泛,为了便于本领域技术人员更清晰地理解本发明技术方案,在此选择了一个具体实例应用方式进行详细说明:参见附图2,采用本发明对银行自动取款机系统(ATM)建立需求模型。关于ATM系统的需求用自然语言陈述如下:
(a)某银行拟开发一个自动取款机系统,它是一个由ATM、中央计算机、分行计算机及柜员终端组成的网络系统。ATM和中央计算机由总行投资购买。总行拥有多台ATM,分别设在全市各主要街道上。分行负责提供分行计算机和柜员终端。柜员终端设在分行营业厅及分行下属的各个储蓄所内。该系统的软件开发成本由各个分行分摊。
(b)银行柜员使用柜员终端处理储户提交的储蓄事务。柜员负责把储户提交的存款或取款事务输进柜员终端,接收储户交来的现金或支票,或付给储户现金。柜员终端与相应的分行计算机通信,分行计算机具体处理针对某个账户的事务并且维护账户。
(c)储户可以用现金或支票向自己拥有的某个账户内存款或开设新账户。储户也可以从自己拥有的账户取款。通常,一个储户可能拥有多个账户。拥有银行账户的储户有权申请领取银行卡。使用银行卡可以通过ATM访问自己的账户,或用银行卡在ATM上提取现金(即取款),或查询有关自己账户的信息(例如,某个指定账户上的余额)。
(d)所谓银行卡就是一张特制的磁卡,上面有分行代码和卡号。分行代码唯一标识总行下属的一个分行,卡号确定了这张卡可以访问哪些账户。每张银行卡仅属于一个储户所有,但同一张卡可能有多个副本。因此,必须考虑同时在若干台ATM上使用同样的银行卡的可能性。也就是说,系统应该能够处理并发的访问。
(e)当用户把银行卡插入ATM之后,ATM就与用户交互,以获取有关这次事务的信息,并与中央计算机交换关于事务的信息。首先,ATM要求用户输入密码,接下来ATM把从这张卡上读到的信息以及用户输入的密码传给中央计算机,请求中央计算机核对这些信息并处理这次事务。中央计算机根据卡上的分行代码确定这次事务与分行的对应关系,并且委托相应的分行计算机验证用户密码。如果用户输入的密码是正确的,ATM就要求用户选择事务类型(取款、查询等)。当用户选择取款时,ATM请求用户输入取款额。最后,ATM从现金出口吐出现金,并且打印出账单交给用户。
该实例的需求建模过程如下:
步骤一、描述用自然语言表达的需求。
对于已标识出的视点,在各自视点模板的槽“需求描述”中填入用自然语言表达的用户需求,即用上述文字表达的(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)柜员终端场景
柜员终端接受用户请求
用户请求柜员终端建立新账户
用户请求柜员终端建立新卡
用户请求柜员终端建立处理事务(如存取款,查询等)
柜员终端与相应的分行计算机通信
柜员终端从分行计算机获取各种处理信息;
柜员终端处理各种请求
柜员终端向用户提交处理后的结果
所有建立的场景均被填写入相应视点模板的槽“场景描述”中。
步骤三、用行为描述语言建立视点行为模型。系统分析员需根据要演示的需求,来建立动画行为模型,如下:
atm
Begin
abeh
incard1:插卡1(用户1,ATM)outto()(card).
ininfo1:输入信息1(用户1,ATM)outto()(userinformation).
recerivinfo1:接受信息1(ATM,用户1)infrom()(userinformation).
incard2:插卡2(用户1,ATM)infrom()(card).
ininfo2:输入信息2(用户1,ATM)outto()(userinformation).
recerivinfo2:接受信息2(ATM,用户1)infrom()(userinformation).
mstrans11:信息传输11(ATM,总行)outto()(userinformation).
mstrans12:信息传输12(总行,银行分行)outto()(userinformation).
Validatecard1:验证卡信息1(银行分行,账户信息数据库)infrom()(userinformation).
Validateaccept1:验证许可1(账户信息数据库,银行分行)outto()(coinfo).
mstrans13:信息传输13(银行分行,总行)outto()(coinfo).
Headofficemsback1:许可通知1(总行,银行分行)infrom()(coinfo).
databack14:数据回传14(总行,ATM)outto()(coinfo).
Billback15:吐钱(ATM,用户1)infrom()(Bill).
Cardback16:吐卡(ATM,用户1)infrom()(card).
mstrans21:信息传输21(ATM,总行)outto()(userinformation).
mstrans22:信息传输22(总行,银行分行)outto()(userinformation).
Validatecard2:验证卡信息2(银行分行,账户信息数据库)infrom()(userinformation).
Validateaccept2:验证许可2(账户信息数据库,银行分行)outto()(misinfo).
mstrans23:信息传输23(银行分行,总行)outto()(misinfo).
Headofficemsback2:许可通知2(总行,银行分行)infrom()(misinfo).
databack24:数据回传24(总行,ATM)outto()(misinfo).
Cardback26:吐卡(ATM,用户1)infrom()(card).
fileup:文件提交(用户2,银行柜台)outto()(file).
dataget:数据获取(银行柜台,银行分行)infrom()(userdata).
dataup:数据存档(银行分行,账户信息数据库)outto()(userdata).
filepass:文件存档(银行柜台,银行分行)outto()(file).
filein:文件备档(银行分行,总行)infrom()(file).
Idle1:idle.
beh
atm=if(正常场景=true)thensucelseIdle1fi;
if(异常场景=true)thenfailelseIdle1fi;
if(申请场景=true)thenapplyelseIdle1fi.
sucincard1;ininfo1;recerivinfo1;mstrans11;mstrans12Validatecard1;Validateaccept1;mstrans13;Headofficemsback1;databack14;Billback15;Cardback16.
failincard2;ininfo2;recerivinfo2;mstrans21;mstrans22;Validatecard2;Validateaccept2;mstrans23;Headofficemsback2;databack24;Cardback26.
apply=fileup;dataget;dataup;filepass;filein.
end
vpatm=atm
步骤四、检测行为模型语法的正确性。此步主要是根据行为描述语言的语法检测在第三步中建立的动画行为模型,以保证各视点内所有行为表达的合法性。此步可以用工具自动检测完成。
步骤五、关联动画元素,制作行为动画,如下:
依照步骤四(这里的步骤四是指方法中的步骤四,即步骤4,关联动画元素,制作行为动画,由于例子比方法多,本实施例中的第一步是获取需求,而上述步骤1至步骤5的方法中默认需求是已获取的)中的方法关联动画元素,设置背景图片,关联主客体的图片设置位置,见附图3。
设计行为动画脚本,以其中一个行为为例:
Mstran23:
SHOWXYP(misinfo,433,284,misinfo);MOV(misinfo,433,264,600);
MOV(misinfo,433,244,600);MOV(misinfo,433,224,600);
MOV(misinfo,433,204,600);MOV(misinfo,433,184,600);
MOV(misinfo,433,164,600);MOV(misinfo,433,144,600);
MOV(misinfo,433,124,600);MOV(misinfo,433,104,600);
DIS(misinfo);STOP(1000);
在完成所有的行为的行为动画脚本的设计工作后,动画设计人员可以使用工具生成行为动画模型,如果生成成功,则可以进入下一步,演示动画。
步骤六、演示动画
ATM动画演示包括三个演示部分,分别由三个窗口显示:‘运行动画窗口’、‘行为踪迹窗口’和‘BDL模型窗口’,见附图4。‘运行动画窗口’为主窗口,动态显示ATM传输一条信息给总行的过程。
‘BDL模型窗口’,用红色高亮显示了当前运行的原子行为在BDL模型中的位置,并与行为踪迹和动画同步,当前高亮的行为为mstrans11。
行为踪迹窗口中,显示和纪录了动画运行过程中原子行为的轨迹,并用红色高亮显示当前正在运行的行为,当前正显示原子行为:
mstrans11:信息传输11(ATM,总行)
本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。
Claims (2)
1.一种面向行为的软件需求模型可视化方法,其特征在于,包括以下步骤:
步骤1,提取需求文档中主客体和行为;
步骤2,使用行为描述语言根据步骤1已经提取的需求文档中主客体和行为建立初始的系统需求模型;
步骤3,检测步骤2已经完成的初始的系统需求模型语法的正确性,并针对发现的问题进行修改相应的行为后建立系统需求模型;
步骤4,将步骤3完成的系统需求模型关联动画元素,制作行为动画;
步骤5,将制作好的行为动画设置动态执行参数,并演示动画;
所述的步骤1中,具体操作方法如下:
步骤1.1,提取用户用自然语言描述的需求并收录到视点中,分析用自然语言描述的需求,确定其中的所有动作和动作的主客体,然后将动作及相应的主客体一起视为待开发软件系统中的行为;
步骤1.2,分析步骤1.1所得的所有行为,并从中筛选出与待开发软件系统密切相关的有效行为;
步骤1.3,分析有效行为间的执行关系,执行关系为顺序、并行、确定选择或非确定选择;
步骤1.4,将步骤1.2所得的所有有效行为按其间的执行关系构成有序的行为系列;
所述的步骤2中,具体操作方法如下:
步骤2.1,对于视点中的每一个场景,用行为描述语言将其中的每个有效行为描述为原子行为;即设某个场景中包含n个有效行为,描述所得n个原子行为表达为:
原子行为标识1:原子行为定义1;
原子行为标识2:原子行为定义2;
……
原子行为标识n:原子行为定义n;
步骤2.2,根据场景中有效行为间的关系,用行为描述语言将场景中所有原子行为联结成场景行为表达式,从而构成场景行为模型;即设某个场景中包含n个有效行为,场景行为表达式=场景中所有的n个原子行为及其原子行为间的关系;
步骤2.3,对于每一个视点,根据视点中所有场景间的关系,将视点中所有场景行为模型联结成视点行为表达式,从而构成视点行为模型,所有视点行为模型构成初始的系统需求模型;
本步骤中不采用自然语言,而利用行为描述语言表达行为模型;本方法采用行为描述语言这种形式化语言作为描述手段之一,其主要用于严格地描述待开发软件系统的行为模型,可以为以后自动检验待开发软件系统的各种特性奠定良好的基础;行为描述语言对行为、场景到视点的描述表达都给出了严格的表现形式,即设某个场景中包含n个有效行为,描述所得n个原子行为表达为:
原子行为标识1:原子行为定义1;
原子行为标识2:原子行为定义2;
……
原子行为标识n:原子行为定义n;
场景行为表达式=场景中所有的n个原子行为及其原子行为间的关系;
视点行为表达式=视点中所有场景行为表达式及其场景间的关系;
具体实施时,按照这种确定的行为描述语言语法,计算机可以自动完成从自然语言描述的需求到建立初始系统需求模型的全过程,然后通过修改和检测最终形成正确的系统需求模型;
本方法还提供了实施例在此步骤形成的行为描述语言文本以供参考:
令ABehID为原子行为标识,BehID为行为标识;
(1)原子行为包括:
1)原子行为表达式
ABehID:f(sub,obj)
[When前置条件]
[INFrom(ID)(u1,…,un)]
[OUTTo(ID)(v1,…,vm)].
其中:f为主体sub施用于客体obj的服务、操作或动作;When,INFrom和OUTTo分别为行为执行的前置条件,行为的输入和输出;
2)空动作:ABehID:Idel.
3)复合行为结束动作:ABehID:Return(ABehID)或Return().
其中:Return()表示正常退出系统;
(2)简单行为:|—ABehID;
(3)复合行为包括:
1)顺序行为:
2)未确定选择行为:
3)确定选择行为:
4)并行行为:
(4)系统行为模型的结构如下:
系统名:
视点ID1的行为模型;
……
视点IDn的行为模型;
(5)视点行为模型的结构如下:
视点ID:
VPBEGIN
[视点内共享数据存储池ID;]
场景ID1的行为模型;
……
场景IDn的行为模型;
VPBehID=视点行为表达式
=场景的BehID场景间关系符场景的BehID[场景间关系符场景的BehID……]
VPEND
(6)场景行为模型的结构如下:
场景ID[场景ID]:(符号“[]”表示其中的内容是能够选择的)
BEGIN
[ABEH:
ABehID:原子行为1;
……
ABehID:原子行为n;]
BEH:
BehID=场景行为表达式;
[BehID=子行为表达式1];
…….
[BehID=子行为表达式m];
END
所述的步骤3中,具体操作方法如下:
步骤3.1,检测原子行为定义的正确性;
步骤3.2,检测复合原子行为定义的正确性;
步骤3.3,显示检测结果;若检测结果为发现问题,则修改相应的行为,并返回重复步骤3.1~步骤3.2的检测,直到检测结果通过;若检测结果通过,则得到基于行为的需求模型;
所述的步骤4中,具体操作方法如下:
步骤4.1,设计动画的背景;
步骤4.2,选择关联主客体对应的动画元素,包括其图片、在背景中的位置、初始状态;
由行为模型中选定的主客体对象,需要设置与主客体对象对应的动画元素和这些对象活动的舞台背景图片;舞台背景图片是动画对象显示的背景图片,可以将所有动画过程中不动的背景设计到舞台背景图片中;
动画元素包括:
主客体名:主客体名是动画设计人员所选填写的对象列表中的那些对象的名称;
关联图片:主客体名是动画设计人员所选填写的对象列表中的那些对象的名称;
类型:类型是指这些关联图片是否为动态或静态;静态图片在动画一开始便显示,动态图片需要用动画原语来动态显示;
初始x坐标:关联图片左上角在背景图片上面的位置的初始横坐标;
初始y坐标:关联图片左上角在背景图片上面的位置的初始纵坐标;
摆放层次深度:图片在动画当中的显示的层次;层次决定了图片的位置相互重叠时显示情况,层次越深的图片会被层次浅的图片所覆盖,设计需根据动画的效果来设置相应对象的层次;
在主客体对象对应的动画元素包括主客体名、关联图片、类型、初始x坐标、初始y坐标、摆放层次深度;动画元素的内容和用法;
对于任何一个主客体对象,都需要设置其对应的动画元素,可以逐个地采用“关联图片”的方式设置每一个对象的动画元素;
步骤4.3,设计行为动画脚本,控制动画元素的动态运行;行为动画是指动画BDL模型原子行为对应的动画操作原语的序列;这些操作序列在BDL模型的驱动控制,形成了一个完整的动画,而单个的原子行为动画是完整动画的最小组成部分;行为动画采用了简单的原语语句来控制图片的显示和运动,这些原语语句的序列组成了一个单个的原子行为动画;原子行为动画原语的功能为:
MOV,包括对象,x坐标,y坐标,毫秒数t:将对象对应的图片由当前位置移动到坐标(x,y)处,花费t毫秒;
RESHOW,包括对象:重新显示对象,即在原位置重新显示初始关联图片;
SHOWP,包括对象,图片名:将对象显示为图片名对应的图片;
SHOWXYP,包括对象,x坐标,y坐标,图片名p:将该对象关联的图片名p,显示当在位置x,y坐标处;
DIS,包括对象:不显示该对象,即隐藏该对象对应的关联图片;
STOP,包括毫秒数t:当前行为的线程停止t毫秒;
SEND,包括if表达式,真假值:将if表达式的值置为相应的真假值,1为真,0为假,2为随机;
需要根据原子行为表达式中的动作、主客体、infrom、outto描述来设计其对应的行为动画,通过上述动画原语的组合来表达所需的动画效果;当设计完成某一个原子行为对应的行为动画后,可以在相应行为名对应的文本框内填写相应的行为动画原语序列;
步骤4.4,生成行为动画,使用动画生成工具生成行为动画,如果行为动画脚本语法正确,则能成功生成,否则需要重新编辑行为动画脚本,直到成功生成。
2.根据权利要求1所述的一种面向行为的软件需求模型可视化方法,其特征在于,所述的步骤5中,具体操作方法如下:
步骤5.1,由于行为模型中有动态运行时才能确定的因素如if分支,因此需要给出if分支的策略;
步骤5.2,演示动画,观察行为序列和动画直接的关系,由用户反馈需求动画的演示效果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110284794.5A CN102508645B (zh) | 2011-09-23 | 2011-09-23 | 一种面向行为的软件需求模型可视化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110284794.5A CN102508645B (zh) | 2011-09-23 | 2011-09-23 | 一种面向行为的软件需求模型可视化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102508645A CN102508645A (zh) | 2012-06-20 |
CN102508645B true CN102508645B (zh) | 2016-02-10 |
Family
ID=46220739
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110284794.5A Expired - Fee Related CN102508645B (zh) | 2011-09-23 | 2011-09-23 | 一种面向行为的软件需求模型可视化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102508645B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102831059A (zh) * | 2012-08-23 | 2012-12-19 | 北京工业大学 | 基于状态层的软件行为建模方法 |
CN103294475B (zh) * | 2013-06-08 | 2016-01-13 | 北京邮电大学 | 基于图形化业务场景和领域模板的业务自动生成系统和方法 |
CN104216703A (zh) * | 2014-06-23 | 2014-12-17 | 武汉大学深圳研究院 | 嵌入式软件系统程序的开发方法 |
CN104820672B (zh) * | 2015-03-19 | 2019-04-19 | 广东小天才科技有限公司 | 终端模拟开发的实现方法和系统 |
CN105893461A (zh) * | 2016-03-24 | 2016-08-24 | 中国人民解放军装甲兵工程学院 | 一种基于ea流程图的指挥流程信息可视化方法 |
CN107247581B (zh) * | 2017-03-07 | 2020-08-14 | 刘立 | 系统分析与概要设计交付模型的构建方法 |
CN109933825A (zh) * | 2017-12-18 | 2019-06-25 | 国家电投集团科学技术研究院有限公司 | 基于严重事故数值模拟最佳实践导则的计算方法及系统 |
CN112270403B (zh) * | 2020-11-10 | 2022-03-29 | 北京百度网讯科技有限公司 | 构建深度学习的网络模型的方法、装置、设备和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0738964B1 (en) * | 1995-04-18 | 2002-07-03 | Siemens Corporate Research, Inc. | Method for animating composite behavior of scenarios |
CN101464796A (zh) * | 2008-12-29 | 2009-06-24 | 武汉大学 | 一种建立软件需求模型的方法 |
CN101872322A (zh) * | 2009-04-27 | 2010-10-27 | 武汉大学 | 一种基于需求模型的软件特性检测方法 |
-
2011
- 2011-09-23 CN CN201110284794.5A patent/CN102508645B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0738964B1 (en) * | 1995-04-18 | 2002-07-03 | Siemens Corporate Research, Inc. | Method for animating composite behavior of scenarios |
CN101464796A (zh) * | 2008-12-29 | 2009-06-24 | 武汉大学 | 一种建立软件需求模型的方法 |
CN101872322A (zh) * | 2009-04-27 | 2010-10-27 | 武汉大学 | 一种基于需求模型的软件特性检测方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102508645A (zh) | 2012-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102508645B (zh) | 一种面向行为的软件需求模型可视化方法 | |
Fortmann-Roe | Insight Maker: A general-purpose tool for web-based modeling & simulation | |
Hinchey et al. | Industrial-strength formal methods in practice | |
Hietanen et al. | IFC model view definition format | |
Bruegge et al. | Object Oriented Software Engineering: Using UML Patterns and Java | |
Lilly | Use case pitfalls: top 10 problems from real projects using use cases | |
Landhäußer et al. | From requirements to UML models and back: how automatic processing of text can support requirements engineering | |
Jain et al. | Data-driven artificial intelligence (AI) models in the workforce development planning | |
Fouad et al. | Embedding requirements within model-driven architecture | |
CN101464796A (zh) | 一种建立软件需求模型的方法 | |
CN101872322A (zh) | 一种基于需求模型的软件特性检测方法 | |
Barjis | CPI modeling: Collaborative, participative, interactive modeling | |
US20040157193A1 (en) | Computer-aided design and production of an online learning course | |
CN102364440A (zh) | 一种用于建立软件需求模型的系统及建立软件需求模型的方法 | |
Bertelsen | The activity walkthrough: an expert review method based on activity theory | |
McIntosh | X3D-UML: user-centred design, implementation and evaluation of 3D UML using X3D | |
Adzic | Test Driven. NET Development with FitNesse | |
Brucker et al. | Building Information Modeling (BIM): a road map for implementation to support MILCON transformation and civil works projects within the US Army Corps of Engineers | |
CN107817970A (zh) | 一种构件系统建模及其动态演化一致性验证方法 | |
Bakshi et al. | Simulation of Derivatives Post-Trade Services using an Authoritative Data Store and the ISDA Common Domain Model | |
Fard et al. | Model And simulation scalability traits for interaction (Nexus) modeling of water and energy systems | |
Bloomfield et al. | Formal methods in the production and assessment of safety critical software | |
Mosteller et al. | Prototypical graphical simulation feedback in reference net-based domain-specific languages within a meta-modeling environment | |
Luo et al. | Using Fuzzy Cognitive Maps to Explore the Dynamic Impact of Megaproject Governance on Performance | |
Park et al. | UML design pattern metamodel‐level constraints for the maintenance of software evolution |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160210 Termination date: 20160923 |