1. 面向对象
    1. 基本概念
      1. OOSD=OOA+OOD+OOP
      2. 关联 association
      3. 组成 Composition
      4. 多态性 polymorphism
      5. 聚集 aggregation
        1. 共享聚集 Shared Aggregation
        2. 组成 Composition
      6. 继承 inheritance
      7. 共享聚集 Shared Aggregation
    2. OOA
      1. 1.识别对象
      2. 2.标识对象属性
      3. 3.识别对象行为
      4. 4.识别对象所属的类
    3. OOD
      1. 模块化
      2. 抽象
      3. 信息 隐藏
      4. 低耦合
      5. 高内聚
    4. OOP
      1. 所有对象赋予属性和方法 更人性化
  2. UML
    1. UML实现与部署
      1. 组件图
      2. 配置图
    2. 5类图 9种图形
      1. 用例图
      2. 静态图
      3. 行为图
      4. 交互图
      5. 实现图
  3. 用例图
    1. ----> <<include>>
    2. 子用例-----▷父用例
  4. 静态视图
    1. 类图
        1. 类名(Wall or java::awt::Wall)
          1. 首字母大写
          2. 正体为可实例化,斜体为抽象类
          3. 两个单词合并第二个首字母大写
        2. [类的属性]
          1. 单个单词首字母小写
          2. 多个单词合并,第二个之后大写
          3. 可见性 名称:类型 = 默认值 {约束特性}
        3. [类的操作列表]
          1. name (parameter list) : type of value returned
          2. 单个单词小写
          3. 多个单词除第一个单词其他首字母大写
        4. 继承
          1. 接口继承------▷
          2. 类的继承------▶
        5. 抽象类
          1. 类或者方法用斜体为抽象
        6. 关联
          1. 单向关联-----▶
          2. 双向关联 没有箭头
          3. 聚合
          4. 基本聚合 ◇---- 空心菱形
          5. 独立存在
          6. 组合聚合 实心菱形
          7. 不能独立存在
          8. 反射关联
          9. 类和自己关联
          10. 类的一个实例和类的另一个实例关联
          11. 关联类
          12. 虚线指向关联关系中间.
          13. 可见性
          14. public +
          15. protected #
          16. private -
          17. package ~
      1. 接口
        1. 区分方法
          1. <<interface>>
          2. 接口的名字以大写字母I开头
      2. 关系
        1. 依赖 Dependency
          1. 虚线加箭头
        2. 泛化 Generalization
          1. is a
          2. 空心箭头 + 实线
        3. 关联 Association
          1. has a
          2. 实线+箭头
          3. 聚合关系
          4. 强关联关系
          5. 空心菱形+实线+箭头 箭头指向部分
          6. 合成关系
          7. 比聚合关系强
          8. 实心菱形+实线+箭头
    2. 对象图
      1. 2个分栏 名称和属性
      2. 对象名:类名 匿名对象= :类名
      3. 不包含操作
      4. 链连接 不涉及多重性
      5. 只定义了属性的当前值,用于测试用例或例子中
    3. 包与包图
      1. 可见性
        1. public
        2. protected
        3. private
      2. 类包图 用例包图
      3. 注意
        1. 命名简单 具有描述性
        2. 目的:简化图
  5. 动态视图
    1. 状态图
      1. 常见活动
        1. 入口动作
        2. 动作
        3. 出口动作
      2. 监护条件和动作
        1. play [CD present]/ close drawer
      3. 入口和出口动作
        1. entry / find start of track; lower head
        2. exit / raisse head
        3. 在入口或者出口的状态里写
      4. 组合状态
        1. 状态图中间有分割线
        2. 组合状态内的子状态有一个为激活的
      5. 条件判断
        1. 菱形
    2. 活动图
      1. 表示对象的行为,与方法相关
      2. 可以表示整个系统的流程,与流程图相似
      3. 符号
        1. 菱形-分支
        2. 中括号-选择条件
        3. 虚线箭头-数据流
        4. 直线-信息分支和汇合点
        5. 点,圈中点-开始 结束
      4. 泳道图
    3. 时序图
      1. 带有生命线的对象:表示顺序图中参与交互的对象,每个对象下有生命线 Obj:class
      2. X 删除对象
      3. 激活的对象 竖着的矩形
      4. 返回消息 虚线
      5. 异步消息 半个箭头的线
      6. 同步消息 箭头 线
    4. 协作图
      1. 活动者(Actor),对象(Object),连接(Link)和消息(Message)
      2. 消息名称,参数和序号标在箭头上方
        1. 1.1: OrderLine (n, c)
        2. 1: totalPrice := compute (a, b)
  6. 双向工程
    1. 逆向工程
      1. 逆向工程就是将使用特定语言的代码通过映射转换成模型的能力
      2. 逆向工程则是由编程语言代码重新构造UML模型
    2. 正向工程
      1. 正向工程是从UML模型到编程语言的代码生成