一、用例图
 
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. Android Studio之Activity切换动画(三)

    1.上一篇文章"Android Studio之多个Activity的滑动切换(二)"中实现了多个activity之间的滑动切换,可是新切换出的activity大多是从右側进入 2. ...

  2. Resharper 8.2的“安装”问题

    概述 完美解决Resharper 8.2的“安装”问题和VS2012写Javascript语句无法智能提示的问题: 目录 引言——Resharper 简介——安装——VS2012智能提示测试 引言 最 ...

  3. Spring LDAP

    LDAP Spring LDAP 使用 - Sayi像秋天一样优雅 - 开源中国社区 http://docs.spring.io/spring-ldap/docs/current/reference/ ...

  4. 解压 boot.img

    ./split_bootimg.pl boot.img Page size: 2048 (0x00000800) Kernel size: 7062084 (0x006bc244) Ramdisk s ...

  5. codeforces Looksery Cup 2015 H Degenerate Matrix

    The determinant of a matrix 2 × 2 is defined as follows: A matrix is called degenerate if its determ ...

  6. 【SVN版本回退】

    [SVN版本回退]根据想要回退的内容,然后选择revert to this revision或者revert changes from this revision.下面引用过来:譬如有个文件,有十个版 ...

  7. iOS8中提示框的使用UIAlertController(UIAlertView和UIActionSheet二合一)

     本文转载至 http://blog.csdn.net/liuwuguigui/article/details/39494597       IOS8UIAlertViewUIActionSheet ...

  8. EasyDarwin开源流媒体服务器性能瓶颈分析及优化方案设计

    EasyDarwin现有架构介绍 EasyDarwin的现有架构对网络事件的处理是这样的,每一个Socket连接在EasyDarwin内部的对应存在形式就是一个Session,不论是RTSP服务对应的 ...

  9. 清理yum 缓存

    两条命令 yum clean all 以及 rm -rf /var/cache/yum/* 如何有效的清理yum缓存 - CSDN博客 https://blog.csdn.net/nsrainbow/ ...

  10. netty+Protobuf (整合一)

    netty+Protobuf 整合实战 疯狂创客圈 死磕Netty 亿级流量架构系列之12 [博客园 总入口 ] 本文说明 本篇是 netty+Protobuf 整合实战的 第一篇,完成一个 基于Ne ...