《(精品)软件工程顺序图.ppt》由会员分享,可在线阅读,更多相关《(精品)软件工程顺序图.ppt(30页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、UML 顺序图顺序图顺序图是强调消息时间顺序的顺序图是强调消息时间顺序的交互图。交互图。顺序图描述了对象之间传送消顺序图描述了对象之间传送消息的时间顺序,用来表示用例中的息的时间顺序,用来表示用例中的行为顺序。行为顺序。顺序图将交互关系表示为一个顺序图将交互关系表示为一个二维图。纵向是时间轴,时间自上二维图。纵向是时间轴,时间自上而下。横向显示了代表协作中单个而下。横向显示了代表协作中单个对象的分类角色。对象的分类角色。顺序图用来建模以时间顺顺序图用来建模以时间顺序安排的对象交互,并且把序安排的对象交互,并且把用例行为分配给类。它是用用例行为分配给类。它是用来显示参与者如何采用若干来显示参与者
2、如何采用若干步骤与系统对象交互的模型。步骤与系统对象交互的模型。一、定义顺序图一、定义顺序图顺序图的一个用途是显示顺序图的一个用途是显示用例的行为序列。当行为被用例的行为序列。当行为被实现时,每个顺序图中的消实现时,每个顺序图中的消息同对象的操作或状态机中息同对象的操作或状态机中迁移上的事件触发相一致。迁移上的事件触发相一致。任何用例都可以使用顺序图任何用例都可以使用顺序图进一步阐明和实现。进一步阐明和实现。二、为什么要建模顺序图二、为什么要建模顺序图顺序图主要有两个主要的顺序图主要有两个主要的助记符:活动对象和这些活动助记符:活动对象和这些活动对象之间的通信消息。对象之间的通信消息。活动对象
3、可以是任何在系活动对象可以是任何在系统中扮演角色的对象,不管它统中扮演角色的对象,不管它是对象实例还是参与者,每个是对象实例还是参与者,每个分类角色显示为一条生命线,分类角色显示为一条生命线,代表整个交互期间上的角色。代表整个交互期间上的角色。如下图所示。如下图所示。三、顺序图的标记符 1.活动对象活动对象 活动对象可以是系统的活动对象可以是系统的参与者或者任何有效的系统对象。参与者或者任何有效的系统对象。对象是类的实例,它使用包围名对象是类的实例,它使用包围名称的矩形框来标记。名称带下划称的矩形框来标记。名称带下划线,顺序图中对象的标记符如下线,顺序图中对象的标记符如下图所示。图所示。每个分
4、类角色表现为垂直列每个分类角色表现为垂直列生命线。在角色存在的时间内,生命线。在角色存在的时间内,生命线显示为虚线;在角色的过生命线显示为虚线;在角色的过程激活时间内,生命线显示为双程激活时间内,生命线显示为双线。线。2.消息2.消息 消息用来说明顺序图中不同活动消息用来说明顺序图中不同活动对象之间的通信。它可以在一个对对象之间的通信。它可以在一个对象需要取消不同对象的进程时或者象需要取消不同对象的进程时或者需要向另一个对象提供服务时,使需要向另一个对象提供服务时,使用消息。用消息。消息从活动对象生命线到接收对消息从活动对象生命线到接收对象生命线的箭头表示。箭头以时间象生命线的箭头表示。箭头以
5、时间顺序在图中从上到下排列。箭头上顺序在图中从上到下排列。箭头上面标记要发送的消息,如下图所示。面标记要发送的消息,如下图所示。把参与者表示为活动对象把参与者表示为活动对象的建模可以说明参与者如何的建模可以说明参与者如何与系统交互,以及系统如何与系统交互,以及系统如何与用户交互。参与者可以调与用户交互。参与者可以调用对象,对象也可以通知参用对象,对象也可以通知参与者,如下图所示。与者,如下图所示。四、四、如何使用消息进行通信如何使用消息进行通信 消息是顺序图活动对象之间通信的惟一消息是顺序图活动对象之间通信的惟一方式。方式。UML中消息使用了一些简介的标记符。中消息使用了一些简介的标记符。消息
6、可以包含条件以便限制它们只有满消息可以包含条件以便限制它们只有满足条件时才能发送。条件显示在消息名称上足条件时才能发送。条件显示在消息名称上面的方括号中,如下图所示:面的方括号中,如下图所示:在在UML中,总共有中,总共有4种类种类型的消息,如下图所示。型的消息,如下图所示。到目前为止只看到了一种到目前为止只看到了一种消息,即简单消息消息,即简单消息(flat message)1.同步消息同步消息 同步消息同步消息(synchronous message)代表一个操代表一个操作调用的控制流。同步消息的发送者把控制作调用的控制流。同步消息的发送者把控制传递给消息的接收者。然后暂停活动,等待传递给
7、消息的接收者。然后暂停活动,等待消息接收者的应答,收到应答后才继续自己消息接收者的应答,收到应答后才继续自己的操作。的操作。2.异步消息异步消息 异步消息异步消息(asynchronous message)用于控制流在完成前不需要中用于控制流在完成前不需要中断的情况断的情况3.简单消息五、用例五、用例上图上图 表示处理请求用例的顺表示处理请求用例的顺序图。图中五个方框分别表示五序图。图中五个方框分别表示五个对象:个对象:ProcessMonitor、EngineManager、Engine、EntactmentDB、Logfiles。这个用例是由这个用例是由ProcessMonitor 接收用
8、户操作,再将这些操作转接收用户操作,再将这些操作转换成固定的请求,发送给引擎执换成固定的请求,发送给引擎执行而产生的。行而产生的。当当ProcessMonitor 接收到用户接收到用户在界面上所作的操作后,将这些操作在界面上所作的操作后,将这些操作转换为固定的命令请求,发送给转换为固定的命令请求,发送给EngineManager。EngineManager 再根据接收到命令的再根据接收到命令的类别,将命令分发给不同的类别,将命令分发给不同的Engine。Engine 则具体执行相应的命令。则具体执行相应的命令。Engine 执行完命令后,通知执行完命令后,通知EntactmentDB 修改相应
9、的数据。接下修改相应的数据。接下来,来,Engine 再通知再通知Logfiles 将所作的操将所作的操作记录下来,以供以后查询。最后,作记录下来,以供以后查询。最后,Engine 直接将结果返回给直接将结果返回给ProcessMonitor,由,由ProcessMonitor将将结果包装,显示给用户。结果包装,显示给用户。创建顺序图包含四项任务:创建顺序图包含四项任务:1)确定需要建模的工作流。)确定需要建模的工作流。2)从左到右布置对象。)从左到右布置对象。3)添加消息和条件以便创建每)添加消息和条件以便创建每一个工作流。一个工作流。4)绘制总图以便连接各个分图。)绘制总图以便连接各个分图
10、。六、学习如何建模顺序图六、学习如何建模顺序图1.确定工作流确定工作流建模顺序图的第一步是确定将要建模顺序图的第一步是确定将要建模的工作流。对于这个练习,我建模的工作流。对于这个练习,我们将要建模们将要建模Grading system 的的View Grades 用例。为此,需要至少标识用例。为此,需要至少标识出出3个要建模的工作流:个要建模的工作流:教师成功地检查学生分数教师成功地检查学生分数教师试图检查某个学生的分数,教师试图检查某个学生的分数,但是该学生在系统中不存在。但是该学生在系统中不存在。教师试图检查某个学生的分数,教师试图检查某个学生的分数,但是该学生分数在系统中不存在。但是该学
11、生分数在系统中不存在。2.布置对象布置对象建模顺序图的下一步是从左到建模顺序图的下一步是从左到右布置所有的参与者和对象,右布置所有的参与者和对象,包含要添加消息的对象生命线。包含要添加消息的对象生命线。3.添加消息和条件添加消息和条件接下来,对每一个工作流作接下来,对每一个工作流作为独立的顺序图建模。从基本为独立的顺序图建模。从基本的工作流开始,它是没有出错的工作流开始,它是没有出错条件,并且需要最少决策的工条件,并且需要最少决策的工作流。在本例中,基本工作流作流。在本例中,基本工作流是教师成功地检查某个学生的是教师成功地检查某个学生的分数。如下图所示。分数。如下图所示。注意选择适当的消息类注意选择适当的消息类型(异步、同步、简单和返型(异步、同步、简单和返回)。接下来以独立的顺序回)。接下来以独立的顺序图建模从属工作流。此处只图建模从属工作流。此处只建模否定的条件,如下图所建模否定的条件,如下图所示。示。注意使用条件来指示在什么时候注意使用条件来指示在什么时候发送什么消息,如下图所示现在已经发送什么消息,如下图所示现在已经完成了每一个工作流的顺序图。完成了每一个工作流的顺序图。4.绘制总图绘制总图 建模顺序图的最后一步是建模顺序图的最后一步是把所有独立的工作流连接为把所有独立的工作流连接为一个总图。一个总图。
限制150内