一、用例图
 
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. js eval 解析字符串

    //带变量的字符串var str = 'var a=1; var b=2;'; eval(str); alert(a+b);//结果 3: //数组字符串var arrStr = "[1,2 ...

  2. Spring MVC访问静态资源

    http://www.cnblogs.com/yank/p/4477204.html SpringMVC访问静态资源 在SpringMVC中常用的就是Controller与View.但是我们常常会需要 ...

  3. Cocos2d-x 避免手工输入项目需要编译的cpp文件到Android.mk里

    手工输入项目需要编译的cpp文件到Android.mk里的缺点 1)繁琐,如果cpp文件很多,简直无法忍受 2)手工输入过程中容易出现错误 3)如果cpp文件更改名称,需要修改Android.mk文件 ...

  4. ActiveMQ测试工具

    1. 测试工具 目前使用两种测试工具进行压力测试 1. Jmeter 测试单客户端收发多主题,测试高并发,大数据量时的接收效率 2. emqtt_benchmark测试多客户端收发主题,测试高吞吐量下 ...

  5. python 调用函数时使用星号 *, **

    python 调用函数时使用星号 *, ** 调用函数时使用星号 * 或 ** test(*args):* 的作用其实就是把序列 args 中的每个元素,当作位置参数传进去.如果 args 等于 (1 ...

  6. AtomicInteger在实际项目中的应用

    AtomicInteger.一个提供原子操作的Integer的类. 在Java语言中,++i和i++操作并非线程安全的.在使用的时候,不可避免的会用到synchronized关键字. 而AtomicI ...

  7. 构建基于Javascript的移动web CMS——Hello,World

    在一篇构建基于Javascript的移动web CMS入门--简单介绍中简单的介绍了关于墨颀CMS的一些原理,其极框架组成.于是開始接着应该说明一下这个CMS是怎样一步步搭建起来. RequireJS ...

  8. 发送邮件程序报错454 Authentication failed以及POP3和SMTP简介

    一.发现问题 在测试邮件发送程序的时候,发送给自己的QQ邮箱,程序报错454 Authentication failed, please open smtp flag first. 二.解决问题 进入 ...

  9. 不为客户连接创建子进程的并发回射服务器( select实现 )

    前言 在此前,我已经介绍了一种并发回射服务器实现( 点此进入 ).它通过调用fork函数为每个客户请求创建一个子进程.同时,我还为此服务器添加了自动消除僵尸子进程的机制.现在请想想,在客户量非常大的情 ...

  10. java内部类和静态内部类的区别

    1 相同点 使用的时候,import的时候,除了包名,还要带外部类. 2 不同点 2.1 对象创建的方式不同 静态内部类创建对象的时候,独立于外部类及其对象,就好像它是一个独立的类,可以和外部类一样使 ...