UML


/**
     * 【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---部署图】
     *      描述 系统中计算结点的拓扑结构 和 通信路径与结点上运行的软件构件等;
     *
     */
UML