一、用例图
 
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. ssm 网页

    http://stackoverflow.com/questions/14545872/bean-named-xxx-must-be-of-typexxx-but-was-actually-of-ty ...

  2. SpringBoot学习之验证信息国际化

    以登录为例: 1.controller的登录方法: @RequestMapping("/SSOAuth/login") @ResponseBody public ResponseV ...

  3. PHP中使用Redis

    Redis是什么 Redis ( REmote DIctionary Server ) , 是一个由Salvatore Sanfilippo写的key-value存储系统. Redis是一个开源的使用 ...

  4. 关于提高沟通能力的书单 | 章鱼书单zz

    上周推荐了一份关于提高写作能力的书单,这周,我们来聊聊沟通能力. 在现代社会,沟通能力变得越来越重要.人与人之间的社交渠道越来越丰富,工作中的协同合作也越来越普遍.我们要沟通的人越来越多,节奏越来越快 ...

  5. (总结)Nginx配置文件nginx.conf中文具体解释

    #定义Nginx执行的用户和用户组 user www www; #nginx进程数,建议设置为等于CPU总核心数. worker_processes 8; #全局错误日志定义类型,[ debug | ...

  6. vs2010中添加dll文件

    1.更改设置 1.1   project->properties->configuration properties->C/C++->General->Addtional ...

  7. iOS用户是否打开APP通知开关跳转到系统的设置界面

    1.检测用户是否打开推送通知  /** 系统通知是否打开 @return 是否打开 */ //检测通知是否打开iOS8以后有所变化 所以需要适配iOS7 + (BOOL)openThePushNoti ...

  8. iOS开发之──传感器使用

    本文转载至 http://mobile.51cto.com/iphone-423219.htm 在实际的应用开发中,会用到传感器,下面首先介绍一下iphone4的传感器,然后对一些传感器的开发的API ...

  9. WinCE下使用C#的几个小技巧

    1.我们知道,在使用Windows的开发机上用C#启动一个外部程序的方法有很多,但这些方法用在使用WinCE的目标工控机上都无能为力,现在小嫚儿以打开一个IE为例,介绍如何在WinCE下使用C#来打开 ...

  10. poj 2888 Magic Bracelet <polya定理>

    题目:http://poj.org/problem?id=2888 题意:给定n(n <= 10^9)颗珠子,组成一串项链,每颗珠子可以用m种颜色中一种来涂色,如果两种涂色方法通过旋转项链可以得 ...