第五题:系统顺序图

重要概念:

1.对象:

  对象是特定行为与属性的集合。

  对象的表示方式有三种:

  a.包括对象名和类名

  b.只有类名。

  c.只有对象名

 

2.消息表示形式:

  消息用于描述对象间交互的方式及内容。

  消息分为四种:同步消息异步消息返回消息自关联消息

  a.同步消息:一个对象向另一个对象发出同步消息后,将处于阻塞状态,一直等到另一个对象的回应。

  表示方式:

  b.异步消息:一个对象向另一个对象发出异步消息后,这个对象可以进行其他的操作,不需要等到另一个对象的响应。

  表示方式:

  c.返回消息:同步消息的返回消息

  表示方式:

  注意:创建对象的表示法也是用虚线箭头表示!

  d.自关联消息:用来描述对象内部函数的互相调用。

  表示方式:

3.复合片段

  为了支持有条件和循环的构造(以区别于其他事物),UML使用了图框。图框是图的区域或片段,在图框中具有操作符或标签(例如loop)和保护信息(条件子句)。

  复合片段有多种,在此主要介绍一下几种:条件判断可选循环同步

  a.条件判断:用于描述代码中if…else…这种结构

  标记为“alt

  例如:

  

  b.可选:是一种特殊的“条件判断”,它只是一个if,没有else if或else

  可选的标记为:opt

  例如:

  

  c.循环:是指代码中的for、while之类的语句块。

  循环的标记为:loop

  例如:下图中[m,n]是指至少执行m次,最多执行n次

     

  d.同步:用于描述多线程的情况。

  同步的标记是:par

  例如:

  

   除此之外,顺序图中还包含一种特殊的形式,引用:

  在一个顺序图中,可以引用另一个顺序图,其引用方式类似于复合片段,

  标签为:ref

  例如:

  

4.系统顺序图:

  UML没有定义所谓的“系统顺序图”,而只是定义了“顺序图”。这一限定强调将系统的应用视为黑盒

  系统顺序图是为了阐述与讨论系统相关的输入和输出事件而快速、简单的创建新的制品。

  通常,软件系统主要对以下三种时间进行响应:

  1)来自参与者(人或计算机)的外部事件

  2)时间事件

  3)错误或异常(通常源于外部)

绘制要点:

  具体方法:http://www.cnblogs.com/ywqu/archive/2009/12/22/1629426.html

       http://blog.csdn.net/sunnylgz/article/details/8525287

  两篇文章,第一篇对主要内容进行简单介绍,第二篇更为详细。

  如果只为画出简图,第一篇就足够了。想要深入了解更详细的内容,推荐看第二篇。

注意事项:

  通常用系统顺序图来画一个用例场景(例如主场景或复杂的常用的场景)。

  1、首先要画一个system,前面要加个冒号,不写system,扣全部分,不写冒号扣1分,位置放错扣1分。

    因为要画的是系统事件,没有系统还画什么

  2、顺序:最左边是actor(前面也要加冒号),然后是system,然后就是用例的外部实体

  3、通常只要求描述一个场景(主场景)。主场景是按照最理想的情况把事情做完就可以了,不需要考虑细节

  4、系统顺序图通常只有3-5个事件,消息不应该超过5个!一定要仔细审题,如果某个事件操作很多,直接忽略后面那些细节,否则后面的很难做,越少越好

  5、后置条件:直接用注释写在后面

  6、后置条件只能写这3句话中的一句或几句:

     创建什么对象或删除什么对象修改什么属性生成什么关联

     这是整个画图考试唯一需要文字的地方

  7、操作契约:

     操作、交叉引用(用例)、前置条件、后置条件  

试题答案:

最新文章

  1. sql常用语句
  2. 【leetcode】Swap Nodes in Pairs (middle)
  3. Android的Proxy/Delegate Application框架 (主要介绍插件化开发)
  4. C标准库<string.h>实现
  5. 【整理】Angularjs 监听ng-repeat onfinishrender事件
  6. org.apache.solr.common.util.ContentStream.java及其实现类
  7. Android相关类关系
  8. kinect for windows - 手势识别之一,kinect手势识别框架
  9. 解决Shockwave flash在chrome该浏览器崩溃
  10. hdu_5589_Tree(莫队+字典树)
  11. Java豆瓣电影爬虫——模拟登录的前世今生与验证码的爱恨情仇
  12. C语言如何在两个文件中访问同一个全局变量
  13. 10.Flask上下文
  14. Ubuntu16.04 安装ROS及其IDE
  15. [物理学与PDEs]第3章习题2 仅受重力作用的定常不可压流理想流体沿流线的一个守恒量
  16. openssl-1.1.0g reference
  17. suList() 和 asList()
  18. STL中的Set用法(详+转)
  19. SpringBoot------Maven Install报错
  20. 感言&2

热门文章

  1. 定义Java类实现字节流转字符流
  2. EF数据Linq方式查询
  3. CSS 样式表{二}
  4. MySQL中SQL语句常见优化策略
  5. 完整的ELK+filebeat+kafka笔记
  6. [Python][pythonchallenge][TBC]古老的python在线挑战赛,很有意思 (C0-C4)
  7. KubeEdge v0.2发布,全球首个K8S原生的边缘计算平台开放云端代码
  8. 个人推荐-几款好用的App
  9. Java集合--Iterator和Enumeration比较
  10. 优化编辑器的编程语言 mlton