一、用例图
 
1、说明
 
     1.1  用例图说明的事谁要使用系统以及他们使用该系统可以做些什么?  <业务需求>
       1.2  解析一个用例图,我们可以发现它包含4个基本组件:
  • 系统
  • 参与者
  • 用例(功能)
  • 关系
          另外可以通过在用例前面加上包名和两个冒号来确定该用例是属于哪个包的。如:staff::mechanic。如果用  多个参与者与用例之间有同一关系,可以重新考虑为用户选择的在系统中扮演的角色的名称。使名称更为广泛化,以一个参与者取代重复的参与者。
 
2、包含用例图
 
     用  虚线和箭头连接,起始处为包含用例,终止处为被包含用例。包含关系用于表示用例为执行其功能从其他用例引入功能。(  重用某些功能)
 
     教师必须记录成绩,更新成绩。这两个用例都从一个用例包含了一项为save grades的公用功能,成绩总会被保存。
 
3、 扩展关系(继承)
 
     表示用例可以通过其他用例得到扩展
 
     Notify guardians 用例是添加到save grades 功能中的一项功能。
     与包含关系相比,用例必须包含被包含用例,而扩展关系则有是否使用被扩展功能的选择权。
 
4、创建用例图步骤
 
     找出系统中的参与者和用例
     
       区分用例的优先次序
 
     细分每个用例(描述)
 
     建立用例模型结构
 
     建立用户界面的原型
 
PS: 软件开发过程
 
       
泛化
二、活动图
 
     用于面向对象的系统的不同组件之间建模工作流 
 
1、作用
  • 进一步规划用例
  • 标识用例的前后条件
  • 发现新用例
2、组件:
     
  • 活动,指示动作
  • 状态,指示系统当前状态 (在StarUML里面,状态和活动是同一个标识,其实状态图应该是一个矩形四个角为小圆弧)
  • 转意,显示从一种状态到另一种状态的控制流
      UML描述了两个特殊状态,即开始状态和结束状态。开始状态以  实心黑点表示,结束状态以  带有圆圈的实心黑点表示。
     
  • 控制点,用来允许控制流仅沿着满足预置条件的方向
  • 决策点,对控制流继续的方向做出决策
  • 事件和触发器,强制控制流从一个活动到另一个活动的活动(类似JAVA中的方法)
  • 游泳道(强烈推荐在模型中涉及多个对象事使用游泳道)
  • 分岔联络
 
 
三、 顺序图
 
     用于显示参与者如何以一系列顺序的步骤与系统的对象交互的模型(不同的活动对象之间的交互)  由于StarUML对顺序图的支持不是很好,本节最好贴上笔抄
 
1、组件:
     
  • 活动对象,可以是系统的参与者或者任何有效的系统对象
 
  • 消息, 用来说明顺序图中不同活动对象之间的通信

               消息可以包含条件一边限制他们只在满足条件对才能发送
 
               消息包含四种类型:
                         
                           同步  :  指示在消息完成之前,工作流被中断        
                           
                           返回  :  显示控制流返回到调用的活动对象
     
                           异步  :  用于被返回的消息,活动对象不等待来自该消息的响应
 
                         简单  :  在同步和异步之间没有区别
 
                         即时创建对象 :
                                                     
                 
2、创建顺序图4项任务:
     
  • 确定需要建模的工作流
  • 从左到右布置对象
  • 添加消息和条件以便创建每一个工作流
  • 绘制总图以便连接各个分图
3、附图(笔抄):
 
                   
 
 
四、 类图
 
1、作用:
  • 为了更加详细地展示产品
  •    提供指示完成有效功能的路径地图所需的信息
2、组件
 
  • 类的标记符
  • 关系
  • 多重性,一个类的多少对象与另一个类的一个对象相关
     上例描述了一个Teacher教授1到无限多个班级,一个Student属于4-6个班级,一个Class有10-30个学生
1,3..*(除2之外的自然数); 2,4,6,8,10(大于0小于等于10的偶数)
 
  • 角色,在类图中使用角色可以帮助读者理解第一个类对于第二个类的作用,角色与多重性显示在相同的位置
  • 对象的标识符

     对象的特性值显示在特性名之后,中间用等于号连接
 
  • 包, 一种把类分组为通用类目的方式
    
       Developer属于Development包
 
  • 数据类型
 
3、步骤
     创建类图两个反复步骤就是
  • 确定类及其关联
  • 确定特性和操作
 
 
五、 协作图
 
1、对象实例的3种标记符
  • 未指示类的实例
      
  • 完全限定对象,包含对象名和实例名
       
  • 对象实例未命名,带有类名的实例
 
 
2、协作图中对象实例角色的4种标记符
  • 不带对象名的角色名

  • 不带对象名,带角色名和类名

  • 带有对象名和角色名

  • 完全限定

 
3、类角色的3种标记符
  • 不带类名的角色名

 
  • 带角色名和类名

 
  • 不带角色名的类名
 
4、链接
 
     “parameter”固化类型指示一个对象是另一个对象的参数,而"local"固化类型指定一个对象在其他对象中具有局部作用域
 
5、消息
  • 同步:
  • 异步:
  • Flat:
 
 
6、序列化消息
     
 
7、迭代
  对于每一个ObjectB, Message都会从ObjectA发送到对应的ObjectB
  Message被从ObjectA到ObjectB 发送了5次
 
 
8、如何建立协作图
 
  • 确定属于协作图的元素
  • 建模这些元素之间的结构化关系
  • 建模实例层的协作图
 

staruml详解的更多相关文章

  1. Linq之旅:Linq入门详解(Linq to Objects)

    示例代码下载:Linq之旅:Linq入门详解(Linq to Objects) 本博文详细介绍 .NET 3.5 中引入的重要功能:Language Integrated Query(LINQ,语言集 ...

  2. 架构设计:远程调用服务架构设计及zookeeper技术详解(下篇)

    一.下篇开头的废话 终于开写下篇了,这也是我写远程调用框架的第三篇文章,前两篇都被博客园作为[编辑推荐]的文章,很兴奋哦,嘿嘿~~~~,本人是个很臭美的人,一定得要截图为证: 今天是2014年的第一天 ...

  3. EntityFramework Core 1.1 Add、Attach、Update、Remove方法如何高效使用详解

    前言 我比较喜欢安静,大概和我喜欢研究和琢磨技术原因相关吧,刚好到了元旦节,这几天可以好好学习下EF Core,同时在项目当中用到EF Core,借此机会给予比较深入的理解,这里我们只讲解和EF 6. ...

  4. Java 字符串格式化详解

    Java 字符串格式化详解 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 文中如有纰漏,欢迎大家留言指出. 在 Java 的 String 类中,可以使用 format() 方法 ...

  5. Android Notification 详解(一)——基本操作

    Android Notification 详解(一)--基本操作 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/Notification 文中如有纰 ...

  6. Android Notification 详解——基本操作

    Android Notification 详解 版权声明:本文为博主原创文章,未经博主允许不得转载. 前几天项目中有用到 Android 通知相关的内容,索性把 Android Notificatio ...

  7. Git初探--笔记整理和Git命令详解

    几个重要的概念 首先先明确几个概念: WorkPlace : 工作区 Index: 暂存区 Repository: 本地仓库/版本库 Remote: 远程仓库 当在Remote(如Github)上面c ...

  8. Drawable实战解析:Android XML shape 标签使用详解(apk瘦身,减少内存好帮手)

    Android XML shape 标签使用详解   一个android开发者肯定懂得使用 xml 定义一个 Drawable,比如定义一个 rect 或者 circle 作为一个 View 的背景. ...

  9. Node.js npm 详解

    一.npm简介 安装npm请阅读我之前的文章Hello Node中npm安装那一部分,不过只介绍了linux平台,如果是其它平台,有前辈写了更加详细的介绍. npm的全称:Node Package M ...

随机推荐

  1. Allegro封装的制作

    过孔封装的层次分析: 1.阻焊层Solder Mask:又称绿油层,是PCB上的非布线层,用于制成丝网漏印板,将不需要的焊接的地方涂上阻焊剂.由于焊接PCB时焊锡在高温下的流动性,所以必须在不需要焊接 ...

  2. vim 寄存器的使用

    1. 寄存器的格式 "[a~z] 2. 在复制时指定寄存器:"ayw 3. 剪切时使用寄存器:"add 3. 黏贴时指定从某个寄存器处获取数据:"ap 4. 几 ...

  3. Flash制作和软件使用

    Flash制作和软件使用 2014-11-09 ——君子善假于物也 引子 虽说FLASH在随着HTML5的发展而受阻,尤其移动终端都不再支持它了,但是在一段时间内还是重要的.近期朋友说要结婚,想弄个电 ...

  4. About me --- Connecting the dots

    在这个难以入眠的夜里,乔布斯年在斯坦福的演讲里说的“Connecting the dots”又萦绕耳际,即当我们往回看,就清楚了 自己曾经的生活和现在甚至将来是串联在一起的,这些经历决定了我们事业.生 ...

  5. 【BZOJ2216】[Poi2011]Lightning Conductor 决策单调性

    [BZOJ2216][Poi2011]Lightning Conductor Description 已知一个长度为n的序列a1,a2,...,an.对于每个1<=i<=n,找到最小的非负 ...

  6. libcurl以get方式请求服务器端文件

    static size_t callbackfunction(void *ptr, size_t size, size_t nmemb, void* userdata){    FILE* strea ...

  7. 当半导体的工艺制程走到7nm后

    https://mp.weixin.qq.com/s/LjFTtEKFX2o8kLjn3y6GbQ 深度学习的异构加速技术1:效率因通用而怠,构架为AI而生 一方面,当半导体的工艺制程走到7nm后,已 ...

  8. css zoom 属性

    oom这个属性是ie专有属性,除了设置或者检索对象的缩放比例之外,它还有可以触发ie的haslayout属性,清除浮动,清除margin重叠等作用. 不过值得注意的一点就是火狐浏览器不支持zoom属性 ...

  9. Hive与impala的对比测试实验

    前面几篇随笔记录了我安装环境的一些笔记,环境ok以后,自然要看看impala到底性能如何,拿他来hive做做对比: 前面hive章节中,已经建立了一张名叫chengyeliang的table,该表的结 ...

  10. 人生苦短之Python函数的健壮性

    如何评论一个开发代码写的好?清晰简洁明了?No,No,一个处女座就可以写出来了,整齐地代码,详细的注释不是代码好的标准,应该说不是最重要的标准.代码写的是否健壮才是检验的重要标准. 代码的健壮性: 当 ...