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