《电子商务系统分析与设计之动态模型-交互图19497.pptx》由会员分享,可在线阅读,更多相关《电子商务系统分析与设计之动态模型-交互图19497.pptx(33页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、CASECASEJ M UJ M U集美大学工商管理学院信息管理与信息系统系集美大学工商管理学院信息管理与信息系统系第6章电子商务系统分析与设计电子商务系统分析与设计动态模型动态模型交互图交互图交互的概念交互的概念一次交互就是指在特定语境中,为了实现某一个目标,一次交互就是指在特定语境中,为了实现某一个目标,而在一组对象之间进行交换的一组消息所表示的行为而在一组对象之间进行交换的一组消息所表示的行为。一个消息就是一个对象激活另一个对象中的操作调用。一个消息就是一个对象激活另一个对象中的操作调用。“方法调用方法调用过程在过程在UMLUML中怎样表示中怎样表示?”交互图交互图交互图(交互图(Int
2、eraction DiagramInteraction Diagram)是由一组对象和它们)是由一组对象和它们之间的关系构成,其中包括在对象间的传递的信息,它之间的关系构成,其中包括在对象间的传递的信息,它包括顺序图和协作图。包括顺序图和协作图。顺序图顺序图着重描述对象按照时间顺序的消息交换。顺着重描述对象按照时间顺序的消息交换。顺序图描述了类相互协作的完成预期行为的动态过程。序图描述了类相互协作的完成预期行为的动态过程。协作图协作图着重描述系统成分如何协同工作。着重描述系统成分如何协同工作。例子:例子:通过一个简单交易系统来说明通过一个简单交易系统来说明UMLUML交互图交互图 要达到某个特
3、定的目标,必然要执行一系列的方法调用。要达到某个特定的目标,必然要执行一系列的方法调用。UMLUML序列图的典型用途就是序列图的典型用途就是显示出方法调用过程。显示出方法调用过程。在在UMLUML序列序列图中,调用一个操作就叫做发送一个消息(图中,调用一个操作就叫做发送一个消息(MessageMessage)。)。交易事务中计算累计金额的时序图交易事务中计算累计金额的时序图时序图有两个维度:垂直维度以发生的时间顺序显示消时序图有两个维度:垂直维度以发生的时间顺序显示消息息/调用的序列;水平维度显示消息被发送到的对象实例调用的序列;水平维度显示消息被发送到的对象实例 对象对象生命生命线线激活激活
4、期期消息消息活动条可以嵌套,表示活动条可以嵌套,表示在前一方法的执行过程在前一方法的执行过程中,又有同一对象的另中,又有同一对象的另一个方法被调用一个方法被调用.交易事务中计算累计金额的相关的代码片断交易事务中计算累计金额的相关的代码片断/*/*属于属于SaleSale类:从类:从lineItemlineItem的单项金额计算交易总金额,的单项金额计算交易总金额,returnreturn交易总额交易总额*/*/public double calcTotal()public double calcTotal()total=0.0;Iterator i=lineItems.iterator();t
5、otal=0.0;Iterator i=lineItems.iterator();while(i.hasNext()total+=while(i.hasNext()total+=(LineItem)i.next().calcTotal();(LineItem)i.next().calcTotal();return total;return total;/*/*属于属于LineItemLineItem类:计算当前项目的交易金额,类:计算当前项目的交易金额,return return 交易金额交易金额*/*/public double calcTotal()public double calcTo
6、tal()total=total=product.calcTotal(this);product.calcTotal(this);return total;return total;/*/*属于属于ProductProduct类:计算指定数量的产品价值多少;类:计算指定数量的产品价值多少;return return 金额金额*/*/public double calcTotal(public double calcTotal(LineItem liLineItem li)return amount*return amount*li.getQuantity();li.getQuantity();
7、下图显示了下图显示了SaleSale类类complete()complete()方法的序列图,方法的序列图,completecomplete()()方法调用了方法调用了SaleSale类的两个方法:类的两个方法:calcTotal()calcTotal()和和calcPayments()calcPayments()。环形的回调。环形的回调符号表示一个对象正在调用它自身的方法。符号表示一个对象正在调用它自身的方法。协作图协作图:强调发送和接收消息的对象的组织结构的交互作用强调发送和接收消息的对象的组织结构的交互作用图图.有路径有路径,协作图有顺序号。在协作图中,交互动作的次协作图有顺序号。在协作
8、图中,交互动作的次序由消息的编号决定。序由消息的编号决定。交易事务中计算累计金额的协作图交易事务中计算累计金额的协作图在实践中,许多必需的交互序列可以隐含在类图在实践中,许多必需的交互序列可以隐含在类图之中,特别是类图用类原型和之中,特别是类图用类原型和Stereotype(Stereotype(构造构造型型)来表示特定的行为和交互模式之时。来表示特定的行为和交互模式之时。UMLUML交互交互图把原本隐含的交互过程明确地表达出来,同时图把原本隐含的交互过程明确地表达出来,同时也明确地说明了原本在类图中不明确的交互过程。也明确地说明了原本在类图中不明确的交互过程。UMLUML交互图是对倾向于描述
9、静态特征的类图的补交互图是对倾向于描述静态特征的类图的补充,使得对象的动态交互过程明确化。充,使得对象的动态交互过程明确化。本例结束!本例结束!对交互图有一定的对交互图有一定的认识了吧?!认识了吧?!时序图的主要元素时序图的主要元素时序图的主要元素时序图的主要元素对象与角色:最顶上一排矩形框。在交互图中,参与交对象与角色:最顶上一排矩形框。在交互图中,参与交互的对象既可以是具体的事物,又可以是原型化的事物。互的对象既可以是具体的事物,又可以是原型化的事物。作为具体的事物,一个对象代作为具体的事物,一个对象代表现实世界中的某个东西。例如,表现实世界中的某个东西。例如,aProduct作为类作为类
10、Product的一个实例,可以代表一个的一个实例,可以代表一个特定的产品;而如果作为一个原型化的事特定的产品;而如果作为一个原型化的事件,则件,则aProduct可以代表类可以代表类Product的任何一的任何一个实例。个实例。生命线与控制焦点:每个对象都有自己的生命线与控制焦点:每个对象都有自己的生命线,对象生命线是一条垂直的虚线,生命线,对象生命线是一条垂直的虚线,用来表示一个对象在一段时间内存在。用来表示一个对象在一段时间内存在。消息:用来描述对象之间所进行的通信的,该信息带有消息:用来描述对象之间所进行的通信的,该信息带有对将要发生的活动的期望。当传送一个消息时,它所引对将要发生的活动
11、的期望。当传送一个消息时,它所引起的动用是一个通过对计算过程的抽象而得到的可执行起的动用是一个通过对计算过程的抽象而得到的可执行语句。语句。时序图的主要元素时序图的主要元素时序图的主要元素时序图的主要元素同步消息同步消息l同步消息的发送者把控制传递给消息的接收者,然后暂同步消息的发送者把控制传递给消息的接收者,然后暂停活动,等待消息接收者放弃或退回控制。停活动,等待消息接收者放弃或退回控制。l同步消息的接收者执行所请求的操作,如果需要的话,同步消息的接收者执行所请求的操作,如果需要的话,可以把控制传递给另一个对象角色,请求做某个操作,可以把控制传递给另一个对象角色,请求做某个操作,并且当该操作
12、完成后把控制返回给原来的同步消息的发并且当该操作完成后把控制返回给原来的同步消息的发送者。送者。l同步消息的接收者也可以直接返回或发送信息给原来的同步消息的接收者也可以直接返回或发送信息给原来的消息的发送者。消息的发送者。l同步消息的接收者必须是一个被动对象(同步消息的接收者必须是一个被动对象(Passive Passive ObjectObject),即它是一个需要通过消息的驱动才能执行动),即它是一个需要通过消息的驱动才能执行动作的对象。作的对象。异步消息异步消息l异步消息的发送者通过消息把信号传递给消息的接收者,异步消息的发送者通过消息把信号传递给消息的接收者,然后继续自己的活动,不等待
13、接收者返回信息或控制。然后继续自己的活动,不等待接收者返回信息或控制。l异步消息的接收者执行所请求的操作,操作完成后可以异步消息的接收者执行所请求的操作,操作完成后可以发回信息给异步消息的发送者。异步消息的发送者和接发回信息给异步消息的发送者。异步消息的发送者和接收者是并发工作的。在交互图中大量的是异步消息。收者是并发工作的。在交互图中大量的是异步消息。l 一个异步消息可以做以下一个异步消息可以做以下3 3件事情之一。件事情之一。l创建一个新线程。此时的异步消息连接到一个激活期的顶部。创建一个新线程。此时的异步消息连接到一个激活期的顶部。l创建一个新对象。创建一个新对象。l与一个已经在运行的线
14、程通信。与一个已经在运行的线程通信。l异步消息的接收者必须是一个主动对象(异步消息的接收者必须是一个主动对象(Active Active objectobject),即它是一个不需要消息驱动就能执行其动作),即它是一个不需要消息驱动就能执行其动作的对象。的对象。对象的创建与销毁对象的创建与销毁l 一个对象可以在交互中创建。如果一个对一个对象可以在交互中创建。如果一个对象是在交互中创建的,则该对象的生命线就象是在交互中创建的,则该对象的生命线就从接收到一个标有构造型从接收到一个标有构造型CreateCreate的的创建消息之时开始。创建消息之时开始。l一个对象可以在交互中销毁。如果一个对象一个对
15、象可以在交互中销毁。如果一个对象是在交互中销毁的,则该对象的生命线就从是在交互中销毁的,则该对象的生命线就从接收到一个标有构造型接收到一个标有构造型destroydestroy的的销毁消息之时终止。对象销毁的标志是在其销毁消息之时终止。对象销毁的标志是在其生命线的端都标上一个生命线的端都标上一个“”“”。对数据库的对数据库的JDBCJDBC接口的访问接口的访问说明说明“:客户机:客户机”要等待消息要等待消息“CreateCreate”完成完成执行,创建了执行,创建了“:事务:事务”对象后,才继续发出同步对象后,才继续发出同步消息消息“setAction“setAction(a a,d,od,o
16、)”,请求请求“:事务:事务”对象进行对象进行设置数据操作。设置数据操作。“:事务:事务”转为转为休眠状休眠状态态,最后被,最后被“销毁销毁”时序图示例时序图示例1 1协作图协作图协作图主要元素协作图主要元素协作图主要元素协作图主要元素链:协作图中链的符号即一条连接两个类角色的实线。链:协作图中链的符号即一条连接两个类角色的实线。消息编号:消息的编号有两种,一种是无层次编号,它消息编号:消息的编号有两种,一种是无层次编号,它简单直观;另一种是嵌套的编号,它更易于表示消息的简单直观;另一种是嵌套的编号,它更易于表示消息的包含关系。包含关系。迭代标记:用迭代标记:用*号表示,表示循环,通常还有迭代
17、表达号表示,表示循环,通常还有迭代表达式,用来说明循环规则。式,用来说明循环规则。协作图主要元素协作图主要元素协作图主要元素协作图主要元素监护条件:通常是用来表示分支的,也就是表示监护条件:通常是用来表示分支的,也就是表示“如果如果条件为条件为true,才发送消息,才发送消息”。在通信图中使用监护条件一定要有所限制,通常应只列在通信图中使用监护条件一定要有所限制,通常应只列出主要的监护条件,否则会影响其阅读。如果需要,尽出主要的监护条件,否则会影响其阅读。如果需要,尽可能还是通过顺序图来表示可能还是通过顺序图来表示。时序图建模技术时序图建模技术设置交互的语境。设置交互的语境。通过识别对象在交互
18、中扮演的角色,设置交互的场景。通过识别对象在交互中扮演的角色,设置交互的场景。为每个对象设置生命线。为每个对象设置生命线。从引发某个消息的信息开始,在生命线之间画出从顶到底依从引发某个消息的信息开始,在生命线之间画出从顶到底依次展开的消息,显示每个消息的特性(如参数)。次展开的消息,显示每个消息的特性(如参数)。如果需要可视化消息的嵌套或实际计算发生时的时间点,可如果需要可视化消息的嵌套或实际计算发生时的时间点,可以用激活修饰每个对象的生命期。以用激活修饰每个对象的生命期。如果需要说明时间或空间的约束,可以用时间标记修饰每个如果需要说明时间或空间的约束,可以用时间标记修饰每个消息,并附上合适的
19、时间和空间约束。消息,并附上合适的时间和空间约束。如果需要更形式化的说明某控制流,可以为每个消息附上前如果需要更形式化的说明某控制流,可以为每个消息附上前置和后置条件。置和后置条件。课堂习题课堂习题集美大学工商管理学院信息管理与集美大学工商管理学院信息管理与信息系统信息系统图书馆管理系统的时序图图书馆管理系统的时序图系统管理员添加书籍的时序图系统管理员添加书籍的时序图图书管理员处理借书的时序图(不包括图书管理员处理借书的时序图(不包括预留书籍的情况)预留书籍的情况)系统管理员删除书目的时序图系统管理员删除书目的时序图借阅者预留书籍的时序图借阅者预留书籍的时序图用例图用例图所有的用例必须始于角色
20、,而且有些用例也结束于角色。所有的用例必须始于角色,而且有些用例也结束于角色。角色是位于你所工作的系统外部的人或其他系统。角色是位于你所工作的系统外部的人或其他系统。系统管理员添加书籍的时序图系统管理员添加书籍的时序图图书管理员处理借书的时序图图书管理员处理借书的时序图(不包括预留书籍的情况)(不包括预留书籍的情况)系统管理员删除书目的时序图系统管理员删除书目的时序图借阅者预留书籍的时序图借阅者预留书籍的时序图课堂作业课堂作业思考思考:请将其转成协请将其转成协作图作图?答案答案你答对了吗你答对了吗?小结小结交互图可以有两种方式为系统动态建模交互图可以有两种方式为系统动态建模 按时间顺序为控制流建模按时间顺序为控制流建模 按组织结构为控制流建模按组织结构为控制流建模 谢谢 谢!谢!