用例活动事件流生成活动图系统领域分析
小组成员:朱向荣 学号:ZY1106151
罗桂林 学号:ZY1106101 徐 浩 学号:SY1106516 郑晓静 学号:ZY1106131 李新然 学号:ZY1106106
二零一一年十一月二号
高等软件工程作业:用例活动事件流生成活动图系统的领域分析
用例活动事件流生成活动图系统的领域分析
用例(Use Case )是代表系统中各个项目相关人员之间就系统的行为所达成的契约。用例描述了在不同条件下,系统对某一项目相关人员的请求所做出的响应。提出需求的项目相关人员被称为主执行者(Primary Actor )。主执行者通过发起与系统的一次交互来实现某个目标。系统对任一执行者所做出的响应,要保证所有项目相关人员的利益不受侵犯。根据执行者做出的请求和请求涉及的条件,系统将执行不同的行为序列,每一行为序列称之为一个场景(Scenario )。一个用例是多个不同场景的集合。
用例是一种描述系统需求的方法,描述系统的实用方式,使用用例的方法来描述系统需求的过程就是用例建模。各种类型的开发活动包括项目管理、分析设计、测试、实现都是以系统用例为主要输入工作,用例模型奠定了整个软件开发的基础。
1用例的活动事件流
用例活动事件流是用例规约中最重要的部分,而用例规约是用例模型主要的部分之一(另外一个部分就是用例图)。活动事件流主要描述了系统和参与者如何协作来传递由用例所承诺的价值。我们先看下用例图规约都应该包含以下内容: 简要说明(Brief Description ):简要介绍该用例的作用和目的。
事件流(Flow of Event ):包括基本流和备选流,事件流应该表示出所有的场景。
用例场景(Use-Case Scenario ):包括成功场景和失败场景,场景主要是由基本流(Basic
Flow)和备选流(Alternate Flows)组合而成的。 特殊需求(Special Requirement ):描述与该用例相关的非功能性需求(包括性能、可靠性、
可用性和可扩展性等)和设计约束(所使用的操作系统、开发工具等)。 前置条件(Pre-Condition ):执行用例之前系统必须所处的状态。
后置条件(Post-Condition:用例执行完毕后系统可能处于的一组状态。
而用例模型中的用例图(Use Case Diagram)确定系统中所包含的参与者、用例和两者对应的关系,用例图描述的是系统功能的一个概述。用例方法最早是由Ivar Jackboson博士提出来,后来被综合到UML规范之中,成为一种标准化的需求的表达体系。
事件流可以作为一种地图,用于表示人们对系统所具备的功能感兴趣的领域。与形式化的地图或者流程图不同的是,事件流并没有将所有路径合并到一个图中。用例这种类似故事的特点产生了一种更具叙述性的格式,其中首先描述常规的路径,然后描述其他可供选择的路径。用例描述重点是将每个路径单独地描述为唯一的事件流。如图1-1所示,为事件流的典型结构:
图1-1 事件流的典型结构
用例事件流主要包括基本流和备选流。其中基本流描述的是用例最正常的一种场景,在基本流执行一系列的活动来响应参与者提出的服务请求,备选流则是负责描述用例执行过程中异常的或者偶尔发生的一些情况。备选流和基本流的组合基本上能够覆盖该用例所有可能发生的场景。
Page 2 Of 5
高等软件工程作业:用例活动事件流生成活动图系统的领域分析
事件流的一个优点就是所有信息都独立于基本流来保存,基本流定义了核心行为,备选流可以对其进行补充。
用例在实际执行的时候会有很多的不同情况发生,称之为用例场景;也可以说场景是用例的实例。在用例规约中,场景的描述可以由基本流和备选流的组合来表示。场景既可以帮助我们防止需求的遗漏,同时也可以对后续的开发工作起到很大的帮助;开发人员必须实现所有的场景、测试人员可以根据用例场景来设计测试用例。
2 UML活动图模型
UML作为一种强大的图形化建模语言,是理想的需求描述和建模分析工具,它对大规模的、复杂的、不断变化的用户需求有着很强的控制力。UML中的用例图是进行需求获取和描述的主要视图,它将用户需求描述为一个个用例。然而,通过用例图和用例规约却难以表达用例本身场景中流程的执行顺序。所以,可以用活动图来表达补充用例模型的不足。 UML活动图记录单个操作或方法的逻辑、单个用例或商业过程的逻辑流程。在很多方面,活动图是结构化开发中流程图和数据流程图((DFD)的面向对象等同体。UML成为“标准”建模语言的原因之一在于,它与程序设计语言无关。而且,UML符号只是一种语言而不是一种方法学。它可以在不做任何更改的情况下很容易地适应任何公司的业务运作方式。它提供了多种类型的模型描述图(diagram ),当在某种给定的方法学中使用这些图时,它使得开发中的应用程序更易理解。最常用的UML图包括:用例图、类图、序列图、状态图、活动图、组件图和部署图。
活动图表示在处理某个活动时,两个或者更多对象之间的过程控制流。活动图可用于在业务单元级别之上对更高级的业务过程进行建模,或者对低级别的内部类操作进行建模。
活动图用于对系统的动态方面建模。多数情况下,它包括对计算过程中顺序的(也可能是并发的)步骤进行建模。也可以用活动图对步骤之间的值的流动进行建模。活动图可以单独用来可视化、详述、构造和文档化对象群体的动态特性,也可以用于对一个操作的控制流建模。交互图则强调的是从对象到对象的控制流,而活动图强调的是从步骤到步骤的控制流。一个活动是行为的一个持续发生的结构化执行。活动的执行最终延伸为一些单独动作的执行,每个动作都可能改变系统的状态或者传递信息。
事实上,活动图可用于多种用途:图表用例的流动;对复杂的商业活动或进程建模;描述数据和信息的流动;甚至计算运算法则。此外,还可用于系统开发生命周期的后期,制定和跟踪测试用例。
3 用例的描述
用例描述的是对参与者来说有价值的一系列行动,而不是特性集。用例即不是类规范,也不是数据规范。这是应该由概念性模型捕捉的一种信息,在对象世界中,它通过UML类模型建模的。在UML中更提倡使用半形式化语言来描述用例。这是因为如采用过于形式化的描述,用户和客户很难理解用例,难以读懂;如完全使用纯文本描述有可能带来歧义性。 (1)用例的纯文本描述
在一般情况下,大多使用纯文本描述也就足够(即事件流描述),它包括如下内容:
① 用例的目的:必须明确地描述系统要做的工作,最终达到什么目的。
Page 3 Of 5
高等软件工程作业:用例活动事件流生成活动图系统的领域分析
② 活动者要做的工作:用例如何由活动者激发,如何要求活动者通知其执行结果。 ③ 活动者与用例之间的消息流:它们之间交换什么消息或事件来通知对方改变或恢复
信息。换句话说,就是要描述用例的动作序列,何时如何开始,顺序执行的。动作,何时结束。
④ 路径描述:哪些是不允许执行的路径,哪些是备选路径,哪些是基本路径。 ⑤ 用例如何结束:描述何时可认为用例已结束,怎样结束。
当认为用例描述已经是易于理解、正确、完整和一致的时候,用例描述就已经完成了。 (2)用例的形式化描述
在一个复杂的实时系统中,用例可能非常复杂,活动者和用例之间的交互作用可能要经历很多状态和可选择的转移,以至于几乎无法用文本描述来保持一致性。因此可以使用形式化的描述,即使用UML的活动图、状态图、交互图来对其描述。如何从用例事件流到自动生成UML的活动图,也是此次软件工程大作业的研究的重点。
4 用例活动事件流转化为UML模型
模型转化是MDA(Model Driven Architecture,模型驱动转换体系结构)的关键技术之一,变换工具通过输入源模型,执行变换定义,输出目标模型来实现模型的自动转换,从而将软件开发的焦点从编码迁移到建模上。 MDA提供了使用模型来直接引导理解、设计、建立、部署、运行、维护系统和修改系统流程,平台独立模型(PIM, Platform-Independent Model)、平台相关模型(PSM, Platform-Specific Model)和代码处于MDA的核心且是形式化的模型,整个软件开发过程都是以软件系统建模行为驱动的。
MDA是一种软件开发与构建企业应用架构的新方法,该方法重要的特点是定义了一种与具体实现技术和平台无关的应用系统描述规范。在MDA中,模型不仅仅是描述系统和辅助沟通的工具,而是软件开发的核心和主要媒介。MDA的目标是通过用模型精化的方式来消除那些不必要的抽象细节层次,在业务需求描述、系统功能和体系结构设计以及包含特定平台技术细节的系统设计3个层次上,MDA都给出了相应的描述,即计算无关模型CIM ( Computational-Independent Model )、平台无关模型PIM、平台相关模型PSM和代码。这些不同层次的模型之间存在着抽象与求精关系,模型之间通过映射机制实现模型的映射,保证了模型的可追溯性。建模和模型映射技术是MDA的核心。MDA中的系统定义独立于任何实现模型,并能通过映射对应到各种可能的平台结构中,进而可以基于模型来有效地实现需求模型向软件设计模型的转换。通过使用不同的映射规则,1个PIM可被映射成多个PSMo I个完整的MDA应用由一个特定的PIM加上1个或多个PSM及其场景共同组成。
MDA的核心思想就是抽象出与任何实现技术(如EJB, NET等等)无关、完整描述系统业务语义的平台无关模型PIM,针对不同实现技术制定转换定义;通过转换工具将PIM转换成与具体实现技术相关的平台相关模型PSM;最后,再通过转换工具将PSM自动转换成代码。在PIM和PSM之上还有一种更高抽象层次的计算机无关模型CIM, CIM是可选的,如果选择创建CIM,便可把它作为产生PIM的基础。
图2-1 基于MDA各模型的转换流程
Page 4 Of 5
高等软件工程作业:用例活动事件流生成活动图系统的领域分析
MDA是一系列规范的集合,其中有四个核心规范,它们分别是UML ( Unified Modeling Language,统一建模语言)、MOF ( Meta Object Facility,元对象设施)、CWM( Common Warehouse Metmodel,公共仓库元模型)、XMI ( XML Metadata Interchange XML元数据交换),它们使MDA技术成为可能,其中MOF是其它规范的基础。
XMI是OMG在MOF基础上提出的又一个重要标准,是一种基于XML语言的用于交换元数据信息的标准方式。只要使用遵循MOF的元模型所建立的模型都可通过XMI交换元数据。XMI通过标准化的XML文档格式和DTD ( Document Type Definition)为UML元模型和其它模型定义了数据交换格式,它同时也定义了一个从UML到XML的映射。XMI的主要目的就是让各种分布式的异构环境中的建模工具和元数据存储(metadata repositorie)仓库之间能方便地进行数据交换。
XMI集成了三个关键的工业标准:由W3C制定的标准XML、由OMG制定的建模标准UML和MOF。这三个标准的集成,能使各个分部式系统的开发人员能在互联网上方便地共享他们的对象模型和元数据。
XML定义了XML标记如何在XML中表示遵从MOF的序列化模型。XML以序列化的形式交换模型(元数据)。它定义了两种映射:MOF元模型和XML DTD(或者XML schema)之间的映射;MOF元数据和XML文档之间的映射。
具体相关描述,可以查阅相关资料MDA的四个核心规范资料,这里不予论述。 下面我举一个例子,比较直观的将用于描述用例活动事件流自动转化为活动图的一种可视化的表示方式。具体转化时,我们采用XML语言表示用例活动事件流,输出为活动图,而我们采用基于MDA架构或者设计的映射转化为技术来实现这一过程。
图4-1 采用XML表示的活动事件流自动转化为活动图的可视化示意图
5 参考文献
[1] 吴蓉.基于用例驱动的UML活动图自动生成技术研究和实现[J]:苏州大学,2009.
Page 5 Of 5
因篇幅问题不能全部显示,请点此查看更多更全内容