面向对象的术语指:把软件组织成一系列离散的、合并了数据结构与行为的对象。
包含4个方面:
对系统的完整描述需要三种视角的模型:
对象是指具有标识的一个概念、一种抽象或事物。通常有对应的实体(如人),也可以只是一种概念(如二叉树)。
对象是类的一个实例。
方框,黑体,首字母大写,单数名词 如 Person
方框,黑体,下划线,首字母大写,对象名加冒号跟类名,如 JoeSmith:Person
方框表示类,至多有三格:
attributeName: dataType = defaultVaule
operationName (argumentList): returnType
其中argument表示法:
direction argumentName: type =defaultValue
direction包含输入(in),输出(out),可修改的输入参数(inout)
**链接(link)**是对象之间物理上或概念上的连接。 Joe Works For Simplex,Works For就是一个链接。(对象与对象之间的叫链接)
关联(association)描述了有着共同的结构和语义的一组链接。(类与类之间的叫关联)
1:正好为1
1…*:1或更多
3…5:3到5
*:(0或多)
Person – employee WorksFor employer – Company
{ ordered }
允许重复值的元素
允许重复值的有序元素集合
将依赖于两个类的属性提出来,既是关联,也是一个类
关联类与普通类,关联类只能出现一次。
在源类加一个限定符,可将关联的有效多重性从一对多降为一对一。
定义:泛化(generalization)是指类(父类)与起一个或多个变体之类(子类)的关系。
公共属性、操作和关联
继承父类的属性、操作、关联,增加特定的属性、操作、关联
name: string[1]
address: string [1…*]
“+” public
“-” private
“#” protected
“~” package
–
是一种强类型的关联
有传递性:(a是b的一部分,b是c的一部分,那么a是c的一部分)
反对称性:(a是b的一部分, b不是a的一部分)
一种“部分-整体”的关系 如(车与轮胎、引擎)
UML语言:箭头为空心菱形
相比聚合,有更多限制
部件与装配件的生命周期一致,如(公司与它的部门)
UML语言:箭头为实心菱形
指没有直接实例的类,但其子孙有直接的实例
UML语言:类名用斜体或{abstract}
抽象类的方法,子类必须有自己的实现。
意义:避免具体父类。父类设为抽象类。
一组相关的类
状态模型由多个状态图组成
某个时刻发生的事情,常与动词过去式对应。
最常见的事件:
信号是指一个对象到另一个对象的单向信息流动。
信号事件是指发送或接收信号的事件。
信号类:每一次信号传输都是唯一事件。
满足布尔表达式而引起的事件。
UML语言:when关键字,括号里含表达式
when (room temperature < heating set point)
在绝对时间上或在某个时间间隔内发生的事情的事件。
UML语言:when关键字,括号里含有时间的表达式。
when (date=January 1, 2000)
时间段表示:after
after (10 seconds)
是对象取值和链接的抽象。常对应ing后缀。
UML表示:可选状态名的圆角方框,首字母大写。
迁移transition是指从一个状态到另一个状态的瞬时变化。
警戒条件:为了让迁移发生而为真的布尔表达式
state1 -- timeout[cars in E/W left lanes] --> state2
timeout为事件名,斜体。方括号为警戒条件。从一状态到另一状态的直线,为迁移。
节点是状态,有向弧为迁移。
包含了多个状态图,每个类一个状态图。
效应effect指对响应事件而执行的行为的引用。
活动activity 由效应出发的实际行为,用“/”表示。
mouse down / display pop-up menu
do / flash waring light
系统的直接外部用户 如(用户user,管理员admin)
系统通过与参与者的交互可以提供的一段连贯的功能。
每个用例会涉及一个或多个参与者以及系统本身。
错误条件也是用例的一部分。
用例分割系统的功能。
用例:
购买一瓶饮料。
小结:
在客户选择并支付以后,自动售货机弹出饮料。
参与者:
客户
前置条件:
机器正在等待投入货币。
描述:
机器启动,处在等待状态。显示消息“投入硬币”。客户把硬币投入机器中。机器显示投入的总金额。并亮起用这些钱可以购买的物品所对应的的按钮。克换下其中一个按钮。机器弹出对应的物品,如果物品价格低于投入的金额,会找回零钱。
异常:
取消:如果客户在做出选择之前按下了取消按钮,客户的钱会退回,机器会复位到等待状态。
脱销:如果客户按下了一个脱销的产品,会显示消息“此物品已脱销”。机器继续接受硬币或等待选择。
后置条件: 机器等待投入硬币
包括一组用例和一组参与者。
详细描述用例的主题
系统在某个特定的执行期内所发生的一系列事件。
场景为一列文本语句,包含对象之间的消息以及对象所执行的活动。
John 登录。
系统建立安全的通信。
系统显示投资组合信息。
...
显示了交互的参与者以及参与者之间的消息顺序。
组成了复杂过程的步骤序列。显示控制流,专注于操作而不是对象。