时序图
用对象间的交互来描述用例
时序图描述了对象之间传递消息的时间顺序,用来表示用例的行为顺序。
消息类型
1、简单消息
没有区分同步和异步的消息
2、同步消息
消息的发送者把控制传递给消息的接收者,然后停止活动,等待消息的接收者放弃或者返回控制,用来表示同步的意义。
3、异步消息
消息发送者通过消息把信号传递给消息的接收者,然后继续自己的活动,不等待接受者返回消息或者控制。
异步消息的接收者和发送者是并发工作
4、返回消息(Return Message)
同步消息的一部分,是一种响应反馈的消息
5、自关联消息
表示方法的自身调用以及一个对象内的一个方法调用另外一个方法
类图 Class diagram
显示了模型的静态结构,特别是模型中存在的类、类的内部结构以及它们与其他类的关系等。类图基础属性
+name: String
-age: int
#weight: double类图基础方法
+study ()
+ 表示public
- 表示private
# 表示protected
下划线表示static
斜体表示抽象
类与类之间关系:
泛化关系
Generalization
1.继承关系,一个类(称为子类、子接口)继承另外的一个类,动物和老虎。
2.实现关系(Realization),类实现接口(interface)。
依赖关系
Dependency
两个相对独立的对象,一个对象负责构造另一个对象的实例,或者依赖另一个对象的服务。
动物依赖氧气和水。调用新陈代谢方法需要氧气类与水类的实例作为参数。
关联关系
Association
两个相对独立的对象,一个对象的实例与另一个对象的一些特定实例存在固定的对应关系。
单向关联
(单箭头):当一个类‘知道’另一个类时,可以用关联。如企鹅需要‘知道’气候的变化。
双向关联
(无箭头):两个类彼此知道它们之间的关系,都可以调用对方的公共属性和方法。
聚合关系
Aggregation
一种弱的拥有关系,has-a的关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分。
两个对象具有各自的生命周期。
每一只大雁都属于一个大雁群,一个大雁群可以有多只大雁。
当大雁死去后大雁群并不会消失,两个对象生命周期不同。
组合关系
Composition
一种强的‘拥有’关系,contains-a的关系,体现了部分和整体关系,部分和整体的生命周期一样。
鸟和翅膀是组合关系,部分和整体的关系,且翅膀和鸟的生命周期相同。
XML
eXtensible Markup Language 可扩展标记语言
XML被设计用来传输和存储数据,HTML被设计用来显示数据。
<?xml version="1.0" encoding="UTF-8"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
第一行是XML声明。它定义XML的版本(1.0)和所使用的编码
下一行描述文档的根元素(意思:“本文档是一个便签”)
接下来4行描述根的4个子元素(to, from, heading body)
最后一行定义根元素的结尾
XML元素指的是从(且包括)开始标签直到(且包括)结束标签的部分
元素可包含其他元素、文本或者两者的混合物
元素也可以拥有属性,<book>
元素拥有属性(category=“CHILDREN”)
<bookstore>
<book category="CHILDREN">
<title>Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
<book category="WEB">
<title>Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
</book>
</bookstore>
在上例中,<bookstore>
和 <book>
都拥有元素内容,因为它们包含了其他元素。<author>
只有文本内容,因为它仅包含文本。
JSON
JavaScript Object Notation 一种轻量级的数据交换格式
JSON是存储和交换文本信息的语法,类似XML,JSON 比XML更小、更快,更易解析
JSON结构有两种:对象、数组
1、对象:“{}”括起来的内容,数据结构为
{
key1:value1,
key2:value2,
...
}
key为对象的属性,value为对应的属性值
key是字符串,value可以是字符串、数值、true/false、null、对象或数组
取值方法:通过key获取属性值(.key1的值是value1)
2、数组:“[ ]”括起来的内容,和其它语言中一样,使用索引获取值。数据结构如下
[
{
key1:value1,
key2:value2
},
{
key3:value3,
key4:value4
}
]