/**
* 【UML】
*
* OOA:
* Object Oriented Analysis;
* 在 问题域 内 发现和描述 对象;
*
* OOD:
* Object Oriented Design;
* 如何 定义 软件对象 及 它们之间如何协作 以实现需求;
*
* 过程:
* 定义用例 —> 定义领域模型 -> 定义交互图 -> 定义类图
*
* what?
* unified modeling language;
* 描述、构造、文档化 系统制品 的 可视化语言;
* 一种 图形表示法;
*
* UML包括:
* 事物:
* 结构:
* 类、接口、构件、节点...
* 行为:
* 交互(消息)、状态...
* 分组:
* 包、子系统...
* 注释:
* 注释
* 关系:
* 依赖
* 关联(聚合、组合)
* 泛化
* Java中extend
* 实现
* Java中implement
* 图:
* 用例图、交互图(顺序图、协作图)、类图、活动图、状态图...
*
* 图的分类:
* 静态建模:
* 类图
* 动态建模:
* 顺序图(协作图)、用例图、活动图、状态图
* 扩展机制:
* Stereotype(模式化观念)、Tagged Value(标记值)、Constraint(约束)
*
*
*/
/**
* 【UML---类图】
* 作用:
* 标记 静态内容 及 类之间的关系;
* 类的表示法:
* 名称
* 属性:类型、可见性
* 方法:参数、返回值
* 接口表示法:
* 包表示法:
* 关系:
* 依赖
* 一个事物的变化 影响 另一个事物
*
* 低耦合:
* 降低 与 不稳定对象 之间的依赖;
* 关联
* 关联名
* 导航性
* 角色名称
* 多重性
*
* 聚合
* 整体 与 部分
* 组合
* 强聚合
*
* 泛化
* extends
* 实现
* implement
*
* when?
* any time;
*
* How?
* 对概念建模(领域模型)
*
* 分析(分析类图)
* 实体类(领域模型)
* 控制类(业务控制)
* 边界类(和用户相关)
*
* Java三件宝:
* 框架、模式(分析模式、设计模式...)、领域模型
*
*/
/**
* 【UML---顺序图】
* 作用:
* 对 动态方面 建模;
*
* what?
* 交互图的一种;
* 交互图:
* 顺序图:
* 强调 消息时间顺序 的交互图;
* 协作图;
* 强调 接收和发送 消息的对象 的结构组织的 交互图;
*
* 对动态方面建模?
* 动态方面:
* 随着时间的推移,一些对象被创建、属性值的改变、以及 其中一些对象的销毁、对象之间的 互相调用;
*
* 包括的概念:
* 对象
* 对象生命线
* 消息(方法调用)
* 对象的创建、销毁
*
* 描述的是正常情况下的顺序图;
*
*
*/
/**
* 【UML---需求分析与用例】
* 需求:
* 系统 必须提供的能力 和 必须遵循的条件;
*
* 需求分析的一种手段:
* 确定 和 编写 用例;
*
* 用例定义:
* 用例 是文本形式的情节描述;
* 用于 需求的发现和记录;
* 用例 会影响后续的OOA、OOD的工作;
*
* 用例相关概念:
* 系统:
* 系统边界:
* 参与者actor:
* 某些具有行为的事物,可以是人(由角色标识)、计算机系统或组织;
* 场景scene:
* 参与者 与 系统 之间的一系列特定的活动和交互;
* 主 成功场景、扩展点;
*
* 用例的目的和形式:
* 谁使用系统?使用的场景是什么?目的是什么?
* 用例编写的形式:
* 摘要:
* 需求分析早期,用于主成功场景;
* 非正式:
* 需求分析早期,覆盖不同场景;
* 详述:
* 详细编写所有步骤及各种变化;
* 编写用例应尽量使用行业的专业名称,而不是计算机术语;
*
* 如何发现用例?
* 1、选择系统边界;
* 2、确定主要参与者;
* 3、确定每个主要参与者的目标;
* 4、定义满足用户目标的用例,根据其目标对用例命名;
*
* 用例关联:
* 用例彼此之间有联系;
* 包含关系:
* 避免 用例文本的 重复编写;
*/
/**
* 【UML---状态图】
* what?
* 描述 一个特定的对象 所有可能的状态,以及 由于各种事件的发生而引起的状态之间的转移和变化;
* 状态图的要素:
* 开始状态
* 事件
* 转移
* 状态
* 结束状态
*/
/**
* 【UML---活动图(流程图)】
* what?
* 描述 事务或对象 的活动变化流程;
*
* 活动图的要素:
* 活动:
* 活动图主要结点;
* 用两边为弧的条形框表示,中间填充活动名称;
*
* 活动流:
* 描述 活动之间的 有向关系;
* 反映 一个活动 向 另一个活动之间的转移;
* 用 带箭头的实线表示;
*
* 分支:
* 表示活动流的分叉、合并;
* 表示一个活动按照某种条件 转移到 几个不同的活动;
*
* 分劈、汇合:
* 表示 并发的同步行为;
* 用同步杆表示;
*
* 泳道:
* 活动图中的 区域划分;
* 每个泳道代表一个责任区域;
* 一个泳道 中 包括 一组相关活动;
*
*/
/**
* 【UML---构件图】
* 构件Component:
* 一个 相对独立的 可装配的 物理块;
* 一般作为 一个独立的文件 存在;
*
* 构件具有确定的接口,相互之间可以调用,构件之间存在依赖关系;
*/
/**
* 【UML---部署图】
* 描述 系统中计算结点的拓扑结构 和 通信路径与结点上运行的软件构件等;
*
*/