一、用例图
 
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. Odoo 运费

    模块delievery可以将运费Charge给客户     安装delivery模块                 Delivery method     在做订单的时候,选择相应的运输方法, 系统 ...

  2. C++中sizeof(struct)怎么计算?(转)

    struct为空时,大小为1. 1. sizeof应用在结构上的情况 请看下面的结构: struct MyStruct { double dda1; char dda; int type; }; 对结 ...

  3. Flex4_Tree组件1(添加、删除、展开、关闭、右键菜单)

    1.屏蔽系统菜单:工程目录“html-template”文件夹-->“index.template.html”文件中,在var params = {};语句下添加新语句:        para ...

  4. Hnu 11187 Emoticons :-) (ac自己主动机+贪心)

    题目大意: 破坏文本串.使之没有没有出现表情.破坏就是用空格替换.问最少须要破坏多少个字符. 思路分析: 初看跟Hdu 2457 没什么差别,事实上Hdu2457是要求将字符替换成ACGT,而这个仅仅 ...

  5. CAM350 10.5移动和叠层的用法

    1.快捷键 EC复制                                       IMO测量最近距离                             UZ放大,缩小尺寸 UC拷 ...

  6. JAVA传输概念

    1.VO(View Object):视图对象,用于展示在前台界面. 2.DTO(Data Transfer Object):数据传输对象,泛指用于展示层与服务层之间的数据传输对象. 3. DTO和VO ...

  7. android中的常见对话框

    在android中对话框是一种常见的操作,常见的对话框有下面几种: 以下是xml布局文件: <LinearLayout xmlns:android="http://schemas.an ...

  8. RabbitMQ的工作模式

    简单模式: # #########################基于简单模式的 生产者 ######################### #!/usr/bin/env python import ...

  9. python--文件操作补充

    文件操作补充 f = open('file',encoding='utf-8')其中打开时不写模式默认只读f是文件句柄,文件操作符,不能使数字相当于content = f.read()content是 ...

  10. mysql "ON DUPLICATE KEY UPDATE" 语法

    如果在INSERT语句末尾指定了ON DUPLICATE KEY UPDATE,并且插入行后会导致在一个UNIQUE索引或PRIMARY KEY中出现重复值,则在出现重复值的行执行UPDATE:如果不 ...