从场景描述到场景目标模型的转化方法.docx
- 文档编号:1329630
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:17
- 大小:169.30KB
从场景描述到场景目标模型的转化方法.docx
《从场景描述到场景目标模型的转化方法.docx》由会员分享,可在线阅读,更多相关《从场景描述到场景目标模型的转化方法.docx(17页珍藏版)》请在冰点文库上搜索。
从场景描述到场景目标模型的转化方法
从场景描述到场景目标模型的转化方法
胡乐娟1魏长江1
(1.青岛大学信息工程学院青岛266071)
摘要场景建模在需求建模中起到很大作用,但同时也存在一些的缺陷。
为了弥补场景建模存在的缺陷,本文提出了一种从场景描述到场景目标模型的建模方法。
我们本文首先介绍了场景描述语言的一些规则,然后对场景进行完整性检查,最后给出场景转化成目标模型的方法以及对该方法进行场景建模的评价。
关键词场景目标模型场景描述完整性
中图分类号TP391
TransformingfromScenariosdescriptiontotheirTargetModels
HUlejuan1WEIchangjiang1
1(DepartmentofInformationEngineering,QingDaoUniversity,QingDao266071,China)
AbstractDespitetheirimportantroleinsoftwaredevelopment,scenariossufferfrommajordrawbacks.Toremedythesedrawbacks,thispaperpresentsanapproach,namelythetheoryofscenariosdescription,andthetransformationfromscenariostotheirtargetmodels.Thispaperfirstlaysoutthescenariosdescriptionrules,thengivesscenarios’completenesscheckingmethod,finallyshowsamethodthattransformsscenariostotheirtargetmodelsandourassessmentofthisapproach.
Keywordsscenarios;targetmodels;scenariosdescription;completeness
1引言
场景是软件开发中需求分析的一种有效方法,在软件开发过程中发挥了很大作用。
一方面,场景实例作为软件需求的一种载体,充分反映了软件使用者的观点,有助于需求相关者之间的讨论、沟通、达成共识[]。
在软件设计过程中,场景帮助软件设计者概念化和构思系统构架;在软件测试中,场景用来描述测试用例;因此,场景可以作为软件开发过程中的起点和终点[]。
尽管,场景在软件开发过程中起到很大作用。
但是场景只能对需求某部分进行描述,场景描述模糊,存在二义性,并且包含不必要的细节[2][]。
此外,场景对扩展目标和设计选择表达不明显[2],偏重个人观点[],缺乏通用的结构、目标[]。
通常场景描述非常复杂,需要很多人为劳动投入[],并且难以使用[2]。
场景仅对系统一些常用实例的描述,对于需求描述非常有限[]。
场景在软件开发过程在使用过程中存在的种种问题,表明单独使用场景不能够准确的描述所有的系统需求。
为了解决场景在软件开发开发中的种种缺陷,许多专家学者提出了许多提高需求描述的机制。
例如,Sutcliffe提出将场景与任务模型结合的方法[2],认为模型可以作为场景的补充,模型是需求描述、构建和概念化需求的有效手段。
陈小红提出了基于问题框架的需求建模方法:
一种本体制导的方法,设计了一种本体知道的基于问题框架方法的需求建模方法[]。
刘春提出了一种基于“用例+控制”驱动的软件分析与设计方法,“用例+控制”模型支持需求工程师在通一个模型中自然地表达软件系统的功能性需求和可信性需求[]。
谢仲文提出了一种基于特征组合的软件需求建模[],该方法通过递归的形式化定义功能性特征和非功能性特征,并把功能型特征和非功能性特征统一为软件需求模型,并给出了基于特征组合的软件需求建模过方法。
本文的想法来源为Rolland的L’ecritoire方法以及YeWang的模式语言方法。
L’ecritoire方法是一种目标与场景结合的方法。
L’ecritoire方法认为场景与目标结合的方法可以减少单独使用一种方法带来的问题[][]。
模式语言方法是由浙江大学计算机系YeWang提出的方法。
该模式语言方法将场景转化为四个相互关联的认知学方面的场景目标魔性。
该方法中模型能够有效地进行需求描述、需求结构化以及需求概念化,模型作为场景的补充[]。
通过对L’ecritoire目标与场景结合的场景建模方法和YeWang的模式语言方法进行研究学习,发现该模式语言方法没有对场景描述进行模糊性以及二义性问题进行分析,并且没有对场景完整性进行验证。
L’ecritoire方法使用选择策略、组合策略以及精化策略能够更好地进行需求完整性检验,并且对场景描述进行二义性和模糊性检查,但是场景用文本的形式表示不够直观。
针对单独使用YeWang的模式语言方法和L’ecritoire方法存在的问题,本文的提出了一种基于分支语句的场景建模方法。
该方法首先定义了场景描述语言的一些规则,然后对场景进行完整性检查,最后利用场景建模方法把场景转化成四个相互关联的模型。
通过ATM机服务实例分析证明基于分支语句的建模方法能够有效地解决场景的完整性问题、二义性问题、模糊性问题。
该方法中场景以自然语言和场景模型的方式表示,场景文本和场景模型相互补充。
场景模型表示方法更加直观、方便涉众交流,能够很好地应对需求变更。
本文的结构如下:
第二部分对L’ecritoire方法和模式语言建模方法进行简要介绍;第三部分是本文的核心,详细介绍了基于分支语句的场景建模的方法;第四部分是使用实例分析验证了基于分支语句的场景建模方法的有效性;第五部分是对该方法的总结。
2L’ecritoire方法和模式语言方法的介绍
2.1L’ecritoire方法介绍
L’ecritoire方法是一种目标与场景结合的方法。
L’ecritoire场景建模方法有两大主要活动:
目标发现和场景认定。
该建模方法中目标发现和场景认定是两个相补的活动,这两个活动重复的、递增的形式进行。
这两大活动有对应的准则:
认定准则和发现准则。
在认定准则中定义了场景描述风格和内容规范,发现准则规定了目标发现规则。
详细内容见文献10、11。
2.2模式语言方法的介绍
模式语言方法的场景建模是由YeWang提出。
该模式语言对场景进行认知学和需求工程角度进行分析,得出了二者之间存在相似点,并且把需求工程中的场景利用认知学知识进行建模。
其元模型如图1。
图1元模型
2.2.1认知学的场景概念
模式语言方法中主要用了认知学中的动觉意向视图。
动觉意向视图和需求工程知识是该场景概念模型的理论基础。
动觉意向视图模式包括起点路径终点视图、整体部分视图、容器视图和连接视图。
对这四种视图的介绍详见文献13。
Lakoff认为场景与起点路径目标图模式相似:
初始状态(起点)、时间序列(路径上的地点)、最终状态(终点或者目标)、时间维度(方向)。
这种结构是时间维度的起点路径终点模式。
Lakoff认为场景包括人、物、目标、属性、命题。
场景是整体的,每一个元素都作为场景的部分。
场景有目标结构,该目标结构说明场景中人的目标。
这种结构也是起点路径终点扩展应用。
Lakoff认为目标可以理解为终点,完成目标可以理解为起点和终点的路径。
此外,容器机制可以保存场景中所有元素,因此场景相关的所有元素都在容器里。
连接机制用来表示场景中各元素之间的联系。
2.2.2需求工程中场景的定义
需求工程中场景一般用元模型构建。
不同的学者对场景有不同的定义,因而存在不同的元模型。
下面是几种比较常见的场景元模型。
Roland把场景定义为:
有许多动作组成,场景中动作的结合描述了一条由初始状态到终止状态的独特的路径[7]。
根据他的观点,场景元模型包括以下方面:
(1)场景具有初始状态和终止状态。
初始状态描述了触发场景的前置条件。
终止状态定义了场景要达到的最终状态。
(2)场景有成功场景和异常场景。
成功场景描述目标成功实现的场景,异常场景描述没有成功实现目标场景。
(3)操作有两种:
原子操作和操作流。
原子操作描述不同代理之间的交互,这些交互会对参数产生影响。
(4)代理和资源主体会参与到原子操作中。
(5)操作流可以由任何一种下面所说的语义特征:
顺列、选择、循环、并发。
Sutcliffe把场景定义为“具有顺序的事件流,该序列描述实现用例的一条可能的路径”[6]。
这个定义表明,场景有许多用例,每个场景代表实现用例的一个实例。
每个场景可能描述成功场景和异常场景。
基于场景的需求分析方法SCRAM元模型包括以下交互概念:
(1)用例描述了实现目标相关的操作图,描述用例目标。
(2)用例有用户定义的属性,这些属性表明操作类型,如交互操作、控制操作。
(3)每一个操作包含一个或者多个代理。
每一个代理可能是人,机器或者是多种实体组合。
(4)代理有用户定义的属性,这些属性描述代理完整性和相关知识。
(5)每一个操作可能导致状态转换,因而改变主体状态。
结构化的主体是稳定的现实世界的主体,具有空间属性,具有模型化物理组织单元和逻辑组织单元。
2.2.3模式语言方法建模的主要步骤
上文从认知学和需求工程方面介绍了场景,我们可以发现二者之间的相似性。
因而,场景可以用认知学知识进行建模。
模式语言场景建模方法包含四个模式:
描述场景过程(POM),描述主体状态变化(OTM),识别代理以及代理之间的交互(AOM),展现目标以及子目标(GOM)。
每种模式定义给定场景一个方面,并且提供目标模型转化指导。
四个部分将场景转化为四个相互关联的目标模型。
如图2展示了场景模式语言转化的过程。
具体的转换方法见文献13。
图2场景建模过程
3基于分支语句的场景建模方法介绍
第2节分别简单介绍了L’ecritoire方法和模式语言方法。
L’ecritoire方法场景建模应对场景文本表示过程中的模糊性、二义性、完整性问题,然而该方法产生的场景是自然语言形式的,不够直观。
模式语言方法将场景进行模型建模,场景模型比较直观,但是该方法不能很好的应对场景的完整性问题。
本人对L’ecritoire方法和模式语言方法进行研究学习,针对这两种方法存在的问题,提出了基分支语句的场景建模方法。
该方法首先定义了场景描述语言的一些规则,然后对场景进行完整性检查,最后利用场景建模方法把场景转化成四个相互关联的模型。
本文的场景使用四个模型和自然语言的形式的场景描述表示。
场景描述语句分为两种:
一种是描述操作的语句,另一种是分支语句。
每个分支语句描述场景可能出现的状况,每种状况都是推进场景的方式。
在建模过程前,我们需要对分支语句进行处理,找出遗漏的场景,然后对所有的场景利用基于分支语句场景建模方法建模。
最终需求场景以完整的、无二义性的、清晰地自然文本形式和模型形式进行表示。
本文的建模过程是从高级抽象场景到低级抽象场景重复进行的过程。
3.1场景描述语言中的模糊性和二义性检查
遵循一些简单的场景规则能够提高场景的质量。
本文参考需求工程课本[]在场景语言语法方面、场景结构、场景的内容三个方面定义场景描述规则。
场景描述规则包括:
(1)使用一般现在时;
(2)使用主动语态;(3)使用主谓宾句式结构;(4)避免使用情态动词;(5)每一个交互用一个句子完成,交互发生在代理之间,并且有方向性;(6)主体有一个或者多个状态,操作可以改变主体的状态;(7)明确参与者,避免使用代词或者冠词;(8)每个场景只包含一个交互序列。
我们规定所有与场景描述规则相悖的语句都需要更改。
该规则避免了用自然语言进行场景描述带来的模糊性以及二义性问题。
我们也可以参考消歧算法基于语义的关键词提取算法[]。
3.2L’ecritoire场景转化方法
我们在3.1节定义了场景描述的规则,需求分析人员参考场景描述规则写出场景描述。
本文场景延续以往场景抽象分层方法,由高层抽象到低层抽象分为三层:
上下文层、系统交互层、内部层。
本节将对L’ecritoire模式语言场景方法进行具体介绍。
3.2.1场景转换方法介绍
(一)场景的完整性分析
根据3.1中的场景描述规则,我们可以得到无二异性、清晰的场景描述。
本小节我们将介绍场景的完整性分析。
场景的完整性分析主要针对场景中的分支语句进行处理。
下面是分支语句的定义以及分支语句的运算法则。
定义分支语句定义。
分支语句是一个四元组,A=
其中aid是该分支语句的标识,每一个标识代表一个分支语句。
集合{P}表示分支语句执行前必须满足的状态的集合。
集合{Q}表示执行分支语句后的状态的集合。
集合{R}表示该场景中的每条分支的集合。
公理1组合定律。
如果A和B代表两个分支语句中的分支的子集,C代表通过A、B自然组合后得到的结果,则三者之间的关系可表示为:
C=A×B。
公理2结合定律。
对于三个分支语句的分支子集A、B、C满足结合律,即(A×B)×C=A×(B×C)。
公理3一元运算。
对于每个分支语句,%A代表该语句是必选的,!
A代表该语句是可选的。
本文默认分支语句为必选,且必选可简写为A。
公理4组合定律。
组合定律用来表示分支语句中的分支。
如果C表示分支语句中所有的分支,A、B代表该分支语句中的两个分支情况,A、B、C之间的关系可表示为:
C=A+B。
公理5分配律。
对于分支语句A、B、C满足关系式(A+B)×C=A×C+B×C。
通过对场景分支语句以及运算法则进行定义,我们可以把场景的功能性特征最终以分支语句表达式和操作语句进行表示。
考虑到场景分支语句中的依赖其子语句,因此对场景分支语句进行分析也需要对该语句的子语句进行分析。
使用分支语句运算法则,我们可以把父分支语句用子分支语句来表示。
由此我们可以得出:
根据分支语句运算法则,我们可以把所有的分支语句用其子分支语句表示。
如此,使用递归算法,我们可以把所有得分支语句用原子分支语句表示。
这样一个场景的功能性需求可以用树模型进行表示。
根据场景的分支树,我们快速的找到场景的每种推进方式,方便场景分析人员检查场景完整性问题。
使用场景树进行场景表示可以避免人为因素带来的场景完整性问题。
场景完整性分析算法过程自然语言表述为:
(1)从场景描述中依次找出分支语句;
(2)按照定义对分支语句进行定义;(3)将场景描述按照公理进行描述;(4)将场景用分支树表示出来;(5)对分支树进行深度优先遍历,对分支树的每条路径进行合理性检验,去除没有实际意义的分支。
(二)过程模型转化方法介绍。
该过程的目标是描述场景过程,并将场景转化为过程的模型POM。
该模型的主要元素为:
状态、操作以及该抽象层次二者之间的关系。
步骤如下:
(1)找出场景中的初始状态,并且把该状态作为起点;
(2)找出场景中的终止状态,并且把该状态当作终点;(3)找出起点到终点的动作序列,把这些动作序列当作作作起点到终点的路径;(4)动作序列方向作为起点路径终点的方向。
该模型我们用用UML活动图表示。
(三)状态模型转化方法介绍。
该过程目标是描述场景中的状态变化,兵将场景转化为状态模型OTM。
该模型的主要元素有:
主体、状态、状态转换以及操作。
步骤如下:
(1)识别场景中的所有主体以及引起主体状态转换的操作;
(2)将主体的状态、状态转化以及相应的操作按照场景过程进行排序;(3)把初始的主体作为起点;(4)把终止的主体作为终点;(5)把状态变换作为起点到终点的路径。
该模型我们用状态图表示。
(四)交互模型转换方法介绍。
该过程目标是识别代理以及代理之间的交互,并把场景转化为交互模型AOM。
该模型的主要元素有:
代理以及操作。
步骤如下:
(1)列出给定场景的代理以及代理相关的操作;
(2)将操作分为两类:
一类是需要不同代理的操作,另一类是只需要一个代理的操作;(3)按照场景发生顺序分别表示两类操作。
该模型用消息序列图表示。
(五)目标模型转换方法介绍。
该过程目标是使用目标来发现场景,使用场景来精化目标,并把场景转化成目标模型GOM。
该过程的主要元素有:
目标,包括成功目标和失败的目标或称作异常目标。
步骤如下:
(1)从场景中提取目标;(2)把目标分解成子目标,每个子目标表示一个起点,被分解的目标作为终点。
本文目标模型用AND/OR树表示。
基于分支语句的场景建模方法整体过程为:
(1)首先获得的场景按照场景描述规则进行场景描述;
(2)找出场景描述中的每条分支;(3)建立场景的分支树;(4)依次对场景进行POM、OTM、AOM、GOM模型建模。
高抽象层次场景目标的子目标是低抽象层次场景的目标。
因而,通过使用基于分支语句的场景建模方法可以分别对三个抽象层次的场景进行建模。
如图3所示。
图3场景建模过程
4实例分析
第三部分展示了系统场景描述的规则以及系统场景转化为场景模型的方法步骤。
本文场景抽象层次依据传统的场景抽象分层,分为三层:
上下文场景、系统场景以及系统内部场景。
这三层抽象最高层为上下文场景,最低层为系统内部场景。
模式语言方式把每一个给定的场景转化成四种模式。
从高层抽象到底层抽象场景转化依赖于GOM子目标。
每一个子目标是低层场景的目标。
在某一层场景转换结束以后,这种模式将应用到低层次场景转换。
在对新场景进行模式转换之前,由高层抽象模式语言方法转换的新场景需要文本化表示出来。
这种过程与Rollandetal.1998年提出的场景识别目标发现准则相似。
两者之间的区别是Rolland活动方法重点在与目标模型转换,本文提出的方法把场景转换为四种模型。
下文展示模式语言方法在ATM机中的具体的应用。
4.1上下文场景建模
第3节描述了场景描述规则。
首先我们按照场景描述规则描述场景。
上下文场景的描述如下:
银行顾客将银行卡插入ATM机,ATM机提供的服务包括查询余额、取钱、存钱、密码服务,用户选择一项服务,ATM机退卡。
下文将介绍上下文场景的建模过程。
通常来说上下文场景只包含一个场景。
该层次场景描述构建系统的业务目标。
(1)场景完整性分析
场景中的分支语句有:
余额查询、取钱、存钱、密码服务。
该层的分支树如图4所示。
图4上下文分支树
(2)POM建模。
我们找出该层次场景的初始状态:
银行顾客将银行卡插入ATM机。
找出终止状态:
ATM机将银行卡退还给银行顾客。
其中余额查询、取钱、存钱、密码服务属于选择关系。
图5为上下文场景的POM图。
图5上下文POM
(3)OTM建模。
我们找到场景主体ATM机以及四个状态:
余额查询状态、取钱状态、存钱状态、密码服务状态,以及改变主体状态的相关操作:
ATM机进行余额查询、ATM机进行取钱服务、ATM机提供存钱服务、ATM机提供密码服务。
图6为上下文场景的OTM图。
图6上下文OTM
(4)AOM建模。
我们找出场景的代理:
ATM机以及银行顾客。
ATM机与银行顾客对应的操作有:
插入卡、询问顾客需要的服务类型、余额查询、取钱、存钱、密码服务、退卡。
图7为上下文场景的AOM。
图7上下文AOM
(5)GOM建模。
我们找出场景的目标以及子目标:
ATM机服务,余额查询服务、存钱服务、取钱服务、密码服务。
其中存钱服务、取钱服务、密码服务、余额查询服务是ATM机服务子目标。
而且各子目标之间是AND关系。
图8为上下文层次的GOM图。
图8上下文GOM
4.2交互层场景建模
系统交互层场景包含一个或者多个场景,每一个场景对应上下文场景的一个子目标。
该层场景描述了系统与相关涉众以及涉众之间的交互。
该层次的场景是对上下文场景的精化,是上下文场景的具体化表现。
交互层场景建模的目标是为上下文场景每一个子目标进行场景建模。
为了文章简洁我们只对正常的取钱场景进行建模分析。
根据第三节我们规定的场景描述准则,我们得出场景的描述如下:
银行顾客把银行卡插入ATM机。
ATM机检查银行卡的有效性。
ATM机检查密码的正确性。
用户输入要取的钱数目。
ATM机验证数目有效性。
ATM机吐钱。
ATM机提示用户打印凭条。
ATM机打印凭条。
ATM机退卡给用户。
(1)场景的完整性分析。
该层场景的分置语句有:
ATM机检查银行卡的有效性、ATM检查密码的正确性、ATM机验证数目的有效性。
该层次的分支树如图9表示。
图9交互层分支树
(2)POM建模。
我们找到该场景中的初始状态:
“银行顾客把银行卡插入ATM机中”。
终止状态:
“ATM机吐出相应的钱数”、“ATM机打印凭条”。
场景操作顺序为:
“ATM机检查银行卡的有效性”、“ATM机检查密码的正确”、“ATM机验证数目有效并吐钱”、“ATM机提示用户打印凭条”。
图10为交互层POM图。
图10交互层POM
OTM建模。
该层建模目标是找出业务主体——ATM机和银行顾客以及引起该主体变化的操作。
图11是该层的OTM图。
图11交互层OTM
AOM建模。
该层的目标是:
找出代理——银行顾客和ATM机,代理之间的交互。
图12为该层的AOM图。
图12交互层AOM
GOM建模。
该层的目标时该层的子目标:
保证密码正确、保证卡有效、保证ATM机吐出正确的钱数、保证展示正确的凭条。
如图13所示。
图13交互层GOM
每一个交互层次的子目标用模式语言方法会产生新的场景。
例如,吐钱场景来自子目标“保证吐出正确数量的钱”。
到此,用户可以对内部层目标进行模式语言方法分析。
4.4内部层的转化
系统内部层抽象场景包含多个场景,每一个场景对应系统交互层的子目标。
该层次的场景详细描述了场景内部操作。
该层次场景是对系统交互场景的精化,该层次的场景是最低抽象层次的场景。
需求分析人员需要对系统交互层的每一个子目标进行分析,为了简便我们只对吐钱场景进行分析。
根据第3部分场景描述规则,内部层的取钱场景描述如下:
银行用户输入钱数。
ATM机请求后台系统余额查询。
余额充足,后台系统指示ATM机吐出相应的钱数。
后台系统对银行卡收支进行更新。
(1)场景完整性分析
该场景中的分置于句有:
ATM机请求后台系统余额查询。
可知该场景中分支情况为余额充足和余额不足两种情况。
该层场景的分支树如图14所示。
图14内部层分支树
(2)POM建模。
该场景的初始状态是:
银行顾客输入钱数。
终止状态是:
余额充足,ATM机吐出相应的钱数且后台系统更新账户信息。
动作顺序为:
ATM机请求后台系统进行余额查询、后台系统指示ATM机吐出相应的钱数。
如图15所示。
图15内部层POM
(3)OTM建模。
该层建模目标为找出该层的主体以及引起主体状态变化的操作。
图16为该层的OTM。
图16内部层OTM
(4)AOM建模。
该层建模目标是找出该层的代理以及代理之间的交互。
图17为该层的AOM。
图17内部层AOM
(5)GOM建模。
该层建模目标是找出该层的子目标——保证ATM机吐出正确的钱数、保证账户余额更新。
图18为该层的GOM。
图18内部层GOM
5总结
场景在软件开发过程中起到很大的作用,同时给予场景的软件开发存在很多缺陷。
本人查阅了相关的场景建模方法。
针对L’ecritoire场景建模方法和YeWang的模式语言建模方法存在的问题,提出了L’ecritoire模式语言建模方法。
该方法综合了L’ecritoire场景建模方法和模式语言建模方法的优势。
我们对场景描述规则进行定义,根据场景描述规则进行场景描述可以有效减少场景描述过程中的模糊性以及二义性问题。
使用选择策略以及组合策略进行场景发现有效的避免人为因素带来的场景完整性问题。
通过对场景建模,我们将场景转化为四个相互关联的模型,该模型能直观的反映场景目标。
场景模型与自然语言描述的场景相比更加直观,方便相关涉众交流,也为后续的软件开发做了铺垫。
总之,本文综合L’ecritoire方法与
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 场景 描述 目标 模型 转化 方法