UML中涉及的概念及定义
Lecture 01
- 建模:把不太理解的东西和一些已经较为理解、且十分类似的东西做比较,可以对这些不太理解的东西产生更深刻的理解。目的是沟通、理解系统
- 模型:建模产生的结果,就是模型。模型是对事物的一种抽象、简化。
- 视图(view):是从某个方面得到的模型 (A view depicts selected aspects of a model.)
- 符号(notation /symbol):是一些图形和文本规则用来表示视图 (A notation is a set of graphical or textual rules for representing views.)
- 为什么要建模?
- 建模是为了成功开发复杂的软件项目。
- 建模的四个目的:
- 帮助我们按照需要对系统进行可视化。(visualize)
- 允许我们详细说明系统的结构和行为。(specify the structure or behavior of a system)
- 给出了一个指导我们构造系统的模板。(a template that guides us in constructing a system)
- 对我们所做出的决策进行文档化。(document)
- 建模的四项基本原理
- 选择要创建什么模型
- 每一种模型可以在不同的精度级别上表示
- 最好的模型是与现实相关联的
- 单个模型是不充分的, 对每一个重要的系统最好用一组几乎独立的模型去处理
Lecture 02
-
UML:Unified Modelling Language (统一建模语言)适用于软件开发全生命周期的各个阶段无关乎具体的实现平台。
-
正向工程/逆向工程
- 正向工程:模型转换为代码
- 逆向工程:代码转化为模型
-
UML概念模型
-
UML能为我们做什么
- 可以做软件需求分析
- 可以做软件开发设计
- 可以做系统部署设计
- 也适用非软件领域的系统建模(主要用于软件密集型系统。)
-
“4+1”视图
-
对象(object):拥有数据和行为的一个实体。
-
类(class):共享相同属性、操作、方法、关系或者行为的一组对象的描述符。
-
继承(inheritance):一个类获取另一个类的状态和行为,并添加其他状态和行为。
-
多态(polymorphism):“有多种形式”,可以通过重载(overloading)和重写(overriding)实现。
- 重写:在子类中重新定义父类的函数。
- 重载:在同一个类中,出现多个同名的方法(签名不同)。
-
封装(encapsulation):隐藏对象的实现细节的过程。通信是通过一个“接口”来实现的。
-
接口(interface):描述类的使用者如何与类交互。
-
抽象(abstract):为用户提供尽可能少的界面。(有更高的重用性)
Lecture 03 用例模型
- 关系:事物与事物之间不能孤立存在,一个事物总是和另外一个或多个事物之间存在某种联系。
- 关联关系:两个事物之间是一种组织、结构关系,持续时间是稳定的。(师生)【实线+无箭头】
- 依赖关系:两个事物之间的关系是短暂的、一方依赖另一方;箭头指向被依赖的一方。(画家与蝴蝶🦋)【虚线+杈箭头】
- 继承关系(泛化关系):一般事物与特殊事物之间的关系。(动物和猫)【实现+空心箭头】
- 实现关系:接口与具体实现事物之间的关系(插座与发电厂)。【虚线+空心箭头】
- 公共机制
- 详述:即规格说明、规约(specifications),主要以文字描述为主。
- 修饰:基本符号之上,再增加的细节,以便表达得更完美。
- 通用划分:相关概念之间的区分,(类、对象)(接口、实现)。
- 扩展机制:
- 构造型
- 标记值
- 约束
用例模型
- 用例视图 (usecase view) :支持对产品外部功能的建模。从软件产品的使用者的角度来描述用户对将要开发的产品的需求。