Rose 画序列图

2023-11-02

 

转载请标明是引用于 http://blog.csdn.net/chenyujing1234 

欢迎大家拍砖

一、

1. 序列图的定义

UML 的表示中,序列图将交互关系表示为一个二维图。其中,纵向是时间轴,时间沿竖线向下延伸。横向代表了在协作中各独立对象的角色。角色使用生命线进行表示,当对象存在时,生命线用一条虚线表示,此时对象不处于激活状态,当对象的过程处于激活状态时,生命线是一个双道线序列图中的消息使用从一个对象的生命线到另一个对象生命线的箭头表示,箭头以时间顺序在图中从上到下排列。
 

2. 序列图在项目开发里的作用

 
序列图作为一种描述在给定语境中消息是如何在对象间传递的图形化方式,在使用其进行建模时,主要可以将其用途分为以下三个方面:

    (1)确认和丰富一个使用语境的逻辑表达。一个系统的使用情境就是系统潜在的使用方式的描述,也就是它的名称所要描述的。一个使用情境的逻辑可能是一个用例的一部分,或是一条控制流。

    (2)细化用例的表达。我们前面已经提到,序列图的主要用途之一,就是把用例表达的需求,转化为进一步、更加正式层次的精细表达。用例常常被细化为一个或者更多的序列图

    (3)有效地描述如何分配各个类的职责以及各类具有相应职责的原因。我们可以根据对象之间的交互关系来定义类的职责,各个类之间的交互关系构成一个特定的用例。例如,Customer对象向Address对象请求其街道名称指出Customer对象应该具有知道其街道名”这个职责

二、序列图的组成

1. 对象

序列图中的对象可以是系统的参与者或者任何有效的系统对象。对象的表示形式也和对象图中的对象的表示方式一样,使用包围名称的矩形框来标记,所显示的对象及其类的名称带有下划线,二者用冒号隔开,使用 对象名:类名 的形式,对象的下部有一条被成为 生命线 的垂直虚线。

 

2. 生命线

生命线( Lifeline )是一条垂直的虚线,用来表示序列图中的对象在一段时间内的存在。
每个对象的底部中心的位置都带有生命线。生命线是一个时间线,从序列图的顶部一直延伸到底部,所用时间取决于交互持续的时间,也就是说生命线表现了对象存在的时段。
对象与生命线结合在一起称为对象的生命线。对象的对象存在的时段包括对象在拥有控制线程时或被动对象在控制线程通过时存在。当对象在拥有控制线程时,对象被激活,作为线程的根。

3. 激活

序列图可以描述对象的激活( Activation ),激活是对象操作的执行,它表示一个对象直接地或通过从属操作完成操作的过程。它对执行的持续时间和执行与其调用者之间的控制关系进行建模
激活在序列图中用一个细长的矩形框表示,它的顶端与激活时间对齐而底端与完成时间对齐。被执行的操作根椐不同风格表示成一个附在激活符号旁或在左边空白处的文字标号。

4. 消息

消息( Messages )是从一个对象(发送者)向另一个或几个其他对象(接收者)发送信号,或由一个对象(发送者或调用者)调用另一个对象(接收者)的操作。
它可以有不同的实现方式,比如过程调用、活动线程间的内部通讯、事件的发生等。

 

三、序列图中的项目相关概念

1. 创建与销毁对象

创建一个对象指的是发送者发送一个实例化消息后实例化对象的结果
销毁对象指的是将对象销毁并回收其拥有的资源,它通常是一个明确的动作,也可以是其它动作、约束或垃圾回收机制的结果。
在序列图中,创建对象操作的执行使用消息的箭头表示,箭头指向被创建对象的框
在序列图中,对象被销毁是使用在对象的生命线上画大 × 表示,在销毁新创建的对象,或者序列图中的任何其他对象时,都可以使用。它的位置是在导致对象被销毁的信息上,或者在对象自我终结的地方。
 

2. 分支与从属流

UML 中,存在两种方式可以来修改序列图中消息的控制流,分别是:分支和从属流
分支是指的是从同一点发出多个消息的并指向不同的对象,根据条件是否互斥,可以有条件和并行两种结构。由于序列图只表示某一个活动按照时间顺序的经历过程,所以在 Rational Rose 2003 中,对序列图的分支画法没有明显的支持。
从属流指的是从同一点发出多个消息指向同一个对象的不同生命线。从属流在 Rational Rose 2003 中不支持,因为添加从属流以后会明显增加序列图的复杂度。

 

四、使用Rose创建序列图

1. 创建对象

创建一个新的类图,可以通过以下方式进行。

  ()右键单击浏览器中的Use Case View(用例视图)、Logical View(逻辑视图)或者位于这两种视图下的包。

  ()在弹出的菜单中,选中New(新建)下的Sequence Diagram”(序列图)选项。

  ()输入新的序列名称。

  ()双击打开浏览器中的序列图。

2. 创建生命线

当对象被创建后,生命线便存在。当对象被激活后,生命线的一部分虚线变成细长的矩形框。
Rational Rose 2003 中,是否将虚线变成矩形框是可选的,我们可以通过菜单栏设置是否显示对象生命线被激活时的矩形框
设置是否显示对象生命线被激活的矩形框步骤为:在菜单栏中选择 Tools (工具)下的 Options (选项)选项,在弹出的对话框中选择 Diagram (图)选项卡,选择或取消 Focus of control 选项。

3. 创建消息

在序列图中添加对象与对象之间的简单消息的步骤如下:

     (1)选择序列图的图形编辑工具栏中的图标,或者选择菜单栏Tools(工具)中Create(新建)下的Object Message选项,此时的光标变为符号。

     (2)单击需要发送消息的对象。

     (3)将消息的线段拖动到接收消息的对象中

     (4)在线段中输入消息的文本内容。

     (5)双击消息的线段,弹出设置消息规范的对话框,在弹出的对话框中,在General选项卡中可以设置消息的名称或等,消息的名称也可以是消息接收对象的一个执行操作,我们在名称的下列菜单中选择一个或从新创建一个即可,我们称之为消息的绑定操作。

     (6)如果需要设置消息的同步信息,也就是说设置消息成为简单消息、同步消息、异步消息、返回消息、过程调用、阻止消息和超时消息等,可以在Detail选项卡中进行设置,还可以设置以消息的频率。

4. 创建对象与销毁对象

由于创建对象操作也是消息的一种,我们仍然可以通过发送消息的方式创建对象。在序列图的图形表示中,和其它对象不一样的是,其它对象通常唯一图的顶部,被创建的对象通常位于图的中间部位

 

销毁对象表示对象生命线的结束,在对象生命线中使用一个 X 来进行标识。给对象生命线中添加销毁标记的步骤如下:

    (1)在序列图的图形编辑工具栏中选择   按钮,此时的光标变为+符号。

    (2)单击欲销毁对象的生命线,此时该标记在对象生命线中标识。该对象生命线自销毁标记以下的部分消失。

 

五、使用Rose创建序列图案例分析

1. 需求分析

我们可以通过更加具体的描述来确定工作流程,基本工作流程如下:

    1)李老师希望通过系统查询某名学生的学科成绩。

    2)李老师通过用户界面录入学生的学号以及学科科目请求学生信息。

    3)用户界面根据学生的学号向数据库访问层请求学生信息。

    4)数据库访问层根据学生的学号加载学生信息。

    5)数据库访问层根据学生信息和学科科目获取该名学生的分数信息。

    6)数据库访问层将学生信息和分数信息提供给用户界面。

    7)用户界面将学生信息和分数信息显示出来。

2. 确定序列对象

建模序列图的下一步是从左到右布置在该工作流程中所有的参与者和对象,同时也包含要添加消息的对象生命线

3. 创建序列图

 

远程网络教学系统为例,在该系统中,系统管理员需要登录系统才能进行系统维护工作,如添加教师信息、删除教师信息等。根据系统管理员添加教师信息用例,创建相关序列图。

 

 

rose画图实践---BBS申请版主

参考文章:http://blog.csdn.net/lsh6688/article/details/5946758

 

最近一直在一个论坛上发帖,感觉很有意思,经过一番的努力,我申请当了这个论坛的英语部落的版主,

自己感觉是一件非常好的事情,能和大家在论坛上交流英语,虽然不多,但是做为版主,

每天都要发一些新的内容。

 

还要看懂别人的发帖,对帖子进行处理,评价帖子。这样也能提高自己的英语水平。

 

正好学习了rose ,我就用rose来画出论坛申请版主模块的时序图,和协作图。
 论坛名称:木蚂蚁
时序图:

 

协作图:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Rose 画序列图 的相关文章

  • 子集约束在 UML 类图中意味着什么

    有subset在部门类和人员类之间 但我不知道比是什么意思 家庭作业机会 查看由子集约束链接的两个关系 每个部门有多名成员 每个部门设经理一名 子集表示这两者之间的约束 如果后一个关系的元素是第一个关系的子集 那么你会如何描述其含义 EDI
  • 用例图包括

    我有一个关于用例图的问题 如图所示 用户可以输入或更新他的姓名和问题 正如您所看到的 用户在第一次输入信息时需要输入姓名和问题 因此包括在内 但是 如果他希望更新他的信息 图表是否表明他必须修改名称和问题 因为它们包含在内 例如 如果他拼错
  • 学习如何分析项目

    我刚刚偶然开始为我公司的一个客户 中小企业 分析一个项目 我是一名 Net 开发人员 5 年 在分析软件方面经验很少 来自学校的 UML 我们刚刚结束了与用户两周的交谈 并得到了一份不错的需求清单 显然 我们已经过滤掉了最重要的需求 并且必
  • 在 NetBeans 7.1.1 中创建 UML 类图

    我想安装 启用 NetBeans 插件来创建和查看 UML 图 如图所示here http wiki netbeans org wiki images b b8 Vista Nimbus Uml Screenshot NBLookAndFe
  • 类图转换为关系模型;继承和匹配表

    对于一个学校项目 我应该设计上学期项目的系统 我们使用 UML 创建一个极其简单的用例图 没有 lt
  • 如何在 UML 中指定“一次一个”?

    我正在制作一个类图Classroom and a Course class 我怎样才能表明Classroom只能有一个Course一次在其中吗 我知道我可以使用多重性来指定教室可以只开设一门课程 但这并不能完全指定在不同时间可以有除该一门课
  • UML 聚合可以是双向的吗?

    我正在 Python 中实现一个具有 MVC 模式的应用程序 具有以下类定义 class Controller object def init self model view self model model self view view
  • 多个参与者,相同的用例 [用例]

    我试图描述一个用例 其中系统内的多个参与者可以执行相同的活动 例如 假设 作为示例 我想要使用 更新客户端 用例 但几个已确定的参与者可以执行此操作 Manager Chief Executive Customer Service Repr
  • 如何用序列图来展示一个类与另一个类之间的关系,以该类的实例的实例作为输入?

    我将使用之前的相同示例question https stackoverflow com questions 66934927 how to represent the relationship between an instance of
  • Dia:图表编辑器:盒子对象的限制?

    如标题所示 我尝试为 hte 3d 图形引擎 ogre3d 开发尽可能少的方案 问题是大图方案 Ogre Root 类需要相当多的从它下降的箭头 用关系箭头连接框的模型是它们只能通过边界周围的特定点 称为 关节 或其他东西 进入 退出 但现
  • 如何在 UML 序列图中显示实例化?

    如何显示 Web 服务器实例化视图并重新获得流的控制权 也许我没有使用正确的图表类型 非常感谢 Ruben 的答案中的图表是正确的 但缺少一般的 UML 答案 当 创建 线 在本例中为虚线 连接到所创建生命线的框 标签 顶部时 它会创建另一
  • 类图中的组合和依赖之间的区别?

    我知道 有人就这个案例问过同样的问题 但我仍然不明白 我需要一个具体的答案 谢谢你 D 既然冈努斯没有正确解释构图的含义 我就只好这么做了 正如 Gangnus 所解释的 聚合是一种特殊形式协会具有预期含义部分 整体关系 但没有精确的语义
  • UML类图:抽象方法和属性是这样写的吗?

    当我第一次为一个小型 C 项目创建 uml 类图时 我在属性方面遇到了一些麻烦 最后我只是将属性添加为变量 lt
  • Pear PHP UML 类图 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在尝试创建现有代码的图形表示 我尝试使用 VS PHP 使用 Visual Studios 201
  • 在序列图中引用给定类的实例

    我必须建模一个系统 其中类的对象Person将调用静态方法getBook Book在课堂上Book这将返回特定书籍的实例 如何引用操作得到的图书实例 到目前为止 我可以想到两种方法 这两种方法我都没有见过 使用过 这就是为什么我正在寻找co
  • 是否有适用于 Java 的 Harel Statechart DSL 工具?

    我正在寻找一种能够理解 DSL 的工具 在其中我可以定义生成 Java 代码的状态图 或者 DSL 中的状态图可以按原样运行 该工具最好用 Java 编写 并且必须根据 Harel 状态图 或等效的 UML 2 状态机 的定义支持超级状态和
  • UML:一对多关系表示?

    我是 UML 新手 还不太理解其表示法 这是我对图的理解 The system has many doctors Doctors can have many patients however patients can only have o
  • 用例图的本质

    对于学校作业 我们必须制作用例图 但我们拥有的文档并不是很丰富 它仅描述用例由哪些组件组成 以及一个示例 我们必须制作一个关于图书馆系统的用例 我们已经找到了 11 个用例 但我不会用所有用例来打扰您 IIRC 用例描述了系统的典型用法 对
  • Visual Basic 6.0 UML 图生成器

    有没有免费的 UML 图生成器可以将 VB6 源代码转换为 UML 图 您是否见过 Deanna 提到的内置 Visual Modelerhere https stackoverflow com questions 16912161 use
  • UML 状态机,本地转换与外部转换

    正如已经问过的http www eclipse org forums index php t 452409 http www eclipse org forums index php t 452409 我不确定我是否正确理解了本地转换的含义

随机推荐

  • Linux网络管理-配置网卡

    目录 一 概念 二 配置网卡 2 1 命令行配置 2 1 1 查询网卡 2 1 2 配置网卡 2 2查询IP地址 2 3 查询DNS 三 配置两台机器通信 3 1 查看参数 3 2 进入配置环境 3 3 重启网卡 四 主机改名 五 重点 扩
  • ChatGPT写文书再次翻车,行文寡淡没有灵魂一眼假!

    留学申请文书是每个渴望出国深造的学子都会面临的一道门槛 近年来 随着人工智能ChatGPT的迅猛发展 文能写文章 武能改Bug AI代写留学文书逐渐成为一种趋势 不少人直呼申请文书有救了 然而 这种趋势是否真的有益呢 或许 我们应该对这种现
  • ‘sleep_for’ is not a member of ‘std::this_thread’ 报错是因为版本太低

    1 GCC编译器 从编译器GCC4 8 X的版本完全支持 1 目前C 11特性 之前成为C 0X特性 从GCC4 3的后续版本中逐步对C 11进行支持 2 从官方信息可以看到 目前从完全对C 11特性进行支持的是从编译器GCC4 8 X的版
  • 虚拟数字人和GPT-4的结合,能否迎来新爆发?

    最近 ChatGPT一直在互联网上狂飙 从 去年11月底推出到月活过亿 仅花了2个月的 时间 它既可以拥有美国的医学牌照 参加司法考试 又能写小说 编代码 查资料 还可 以陪你闲聊 你问它什么话题 它都能对答如流 有模有样 3月13日 Ch
  • python模块openpyxl常用指令

    1 加载xlsx文件 from openpyxl import load workbook wb load workbook xlsx file 2 获取加载xlsx文件有哪些sheets 1 遍历方法 for sheet in wb pr
  • 【软件教程】如何让vscode连接ssh时免密登录

    准备软件 客户机安装vscode vscode官网https code visualstudio com 客户机和服务器配置ssh 确保能够连接 VSCode ssh免密登录教程 一 在Client客户机生成ssh密钥对 打开客户机的cmd
  • bat获取所有的参数

    bat默认只能获取到1 9个参数 分别用 1 2 9引用 如果传给bat的参数大于9个 就必须用shift 工作需要 要写个bat脚本 获取所有的参数 再将所有的参数传给Java 代码如下 allparam就是获取到的所有参数字符串 ech
  • Window 窗口属性及嵌入窗口到D3D渲染窗口顶层

    Window窗口有很多属性 可以通过设定window的style和ex style中知道 这些属性有时候在实现某些效果的时候 是非常非常重要 以前都没有怎么详细了解 只是在用到对应的API时看一下 根本没有详细深入 这里想记录一下最近工作上
  • Python 创建Windows窗口(GUI)

    创建Windows窗口 GUI py 基本的四要素 import tkinter 导入tkinter模块 root tkinter Tk 创建Window窗口对象 root title 我的第一个GUI程序 窗口标题 root mainlo
  • 屏幕截图的实现和源代码

    最近打算写一些入门相关的小应用程序开发实例 个人感觉学习程序开发 其关键的一步就是阅读源代码 RTFSC 呵呵 然后尝试自己动手编写 这里所谓的自己动手编写并不是让你照着源代码一句话一句的敲 也不是复制粘贴 而是阅读了源代码以后 学习其中的
  • 使用vscode 连接服务器 进行深度学习代码调试

    博主本来在Win上已经配好环境了 但是在跑代码的过程中 因为tensor拼接得太大了 导致笔记本内存不足 因此需要到服务器上跑 为什么选择vscode 如果直接用xshell连接服务器 在命令行运行py文件 不是很直观 也不能debug 还
  • Linux HugePage

    1 闲聊 有一段时间 数据库上出现过CPU消耗非常高的问题 最后分析到了Linux HugePage 发现自己对这一块都没什么了解 于是做了 些了解 Linux 下的大页分为两种类型 标准大页 Huge Pages 和透明大页 Transp
  • ZK实现SASL认证+Kafka连接ZK

    ZK实现SASL认证 Kafka连接ZK 关键词 zk sasl kfaka 未授权认证 参考文档 搭建Kafka集群时 对ZooKeeper认证与权限控制 http ohmycat me 2019 05 08 kafka with zoo
  • VUE element-ui之table表格中嵌套输入框,且输入框失焦自动勾选当前行

    步骤 表格中直接插槽法
  • linux tasklet 的分析与使用

    linux tasklet 的分析与使用 目录 linux tasklet 的分析与使用 tasklet 源码分析 tasklet shedule 调度的分析 tasklet 执行 tasklet 使用简单示例 结论 tasklet 是利用
  • HTTP协议深度剖析及其在各个阶段的作用

    作者 禅与计算机程序设计艺术 1 简介 HTTP HyperText Transfer Protocol 即超文本传输协议 是互联网中使用的基于TCP IP通信协议 HTTP是一个属于应用层的协议 由于其简洁 灵活 易用 快速的方式 越来越
  • three.js简介 —— 3D框架

    随着HTML5的普及 网页的表现能力越来越强大 浏览器提供了WebGL接口 可以通过调用对应API进行3D图形的绘制 Three js在这些基础接口之上又做了一层封装 原文链接 特点 Three js特点 掩盖了3D渲染细节 面向对象 功能
  • 大数据之数据仓库与信息采集平台实战

    一 Kylin前置概念 1 Kylin术语 1 Data Warehouse 数据仓库 数据仓库是一个各种数据 包括历史数据和当前数据 的中心存储系统 是BI business intelligence 商业智能 的核心部件 这里所谈的数据
  • Fegin的GET请求传对象

    学习笔记 Fegin的GET请求如何传递对象 近期做项目发现使用Fegin的GET请求时 如果使用了对象进行传输 会被当做POST请求处理 解决方法如下 1 接口使用 ModelAttribute注解 GetMapping getTest
  • Rose 画序列图

    转载请标明是引用于 http blog csdn net chenyujing1234 欢迎大家拍砖 一 1 序列图的定义 在 UML 的表示中 序列图将交互关系表示为一个二维图 其中 纵向是时间轴 时间沿竖线向下延伸 横向代表了在协作中各