• 我学UML建模系列之《基础篇》


    在开始讲述UML之前还有几个重要的概念必须要理解的。这些是UML中隐含的,非常重要的概念。但这些概念是很难理解的,不会用UML的表面原因是不知道在哪里用,怎么用,本质上是没有搞懂这些概念。下面将对这些概念逐一说明:

    一、建模

      建模是通过对客观事物建立一种抽象的方法用以表征事物并获得对事物本身的理解,同时把这种理解概念化,将这些逻辑概念组织起来,构成一种对所观察的对象的内部结构和工作原理的便于理解的表达方式。

      下图为业务建模公式:

    二、用例驱动

      用例驱动是一个非常重要的概念,或者说整个软件生产过程就是一个用例驱动。实现用例是必须要做的事情,一旦用例实现了,那么问题领域就解决了。这就是用例驱动方法的原则。

      用例驱动包括以下内容:

      。逻辑视图:系统只有一个逻辑视图,该视图以图形的方式说明关键的用例实现,包括子系统和类。

      。进程视图:系统中有一个进程视图,该视图以图形的方式说明了处理活动在系统中进程的详细组织结构,其中包括类和子系统到进程或线程中的映射。

      。部署视图:系统只有一个部署视图,该视图以图形的方式说明了处理活动在系统中的各节点的分布,包括进程和线程的物理分布。

      。实施视图:实施视图的作用是获取为实施定制的架构决策,它通常包含以下内容:

      1、列举实施模型中的所有子系统

      2、描述子系统如何组织为层次和分层次的构件图

      3、描述子系统间的导入依耐的关系图解

      实施视图的作用哉:

      1、个人团队和分包商分配实施工作,

      2、估算要开发,修改,删除的代码数量

      3、阐明大规模复用理由

      4、考虑发布策略

      以下是用例视图的图解:

      

    三、抽象层次

      抽象层次是面向对象中极其重要又难以撑握的知识。首先,抽象层次越高,具体信息就越少,但是概括力又最强,反之概括信息越丰富,结果越确定。相反概括力就没有那么明显。从信息的表达能力上说,抽象层次越高,表达能力越丰富,越容易理解。很多使用UML的朋友都会觉得选择用例的粒度是一件很困难的事,实际上,选择用例粒度困难的本质是由于没有找准抽象层次产生的。

      抽象有两种方法,一是自顶向下,另一种是自底向上,自顶向下的方法实用于让人们从头开始认识事物。例如汽车的工作方式是从发动机,传感装置,变速器等较高层次的概念来讲就更容易明白,如果降一个层次从改动机原理来讲就不容易让人明白。如果再降一个层次从热力学与力学原理来讲就更没有人能听懂。自底向上的方式适用于在实践中改进和提高的认识。例如在实践中发现发动机的问题,并改进或提高发动机的性能或者更换新的发动机,以便提汽车的整体性能。在软件编程中主体上应采用自顶向下的方法,用少量的概念覆盖系统需求,再逐步降低抽象层次,直到编写代码。同时应当辅以自底向上的方法,通过总结在较低抽象层次的实践经验来改进较高层次的概念以提升软件的质量。

    下图为统一过程一般抽象层次过程图:

     四、视图

      视图是UML中另一个非常重要的概念,视图用于组织UML元素,表达出模型某一方面的元素。视图的准确应用是建立好模型的一个重要因素。 视角是人们观察事物的角度,不同的人从不同角度观察到事物也不相同,视角是针对视图来说的,不同的视角展示了同样信息的不同认知角度以便于理解。一方面,从信息的展示的角度来说,恰当的视角可以让观察者更容易抓住信息的本质;另一方面,从观察者角度来说,他只会关心信息中他所感兴趣的一部份,其它的视角对他来说没有多大意义。因此在展示信息时选择适当的视角并展示给适当的观察者是十分必要的。

    五、对象分析方法

      对象分析方法具有以下特性:

      。一切都是对象

      。对象是独立的

      。对象都具有原子性

      。对象都是可抽象的

      。对象都有层次性

      以下为对象分析方法图解:

    切记:当明白以上这些本质后,对以后能快速理解建模有着非常重要的意义。


    人生的无奈那么多谁可以数得清?请告诉我!别回头走自己的路,就算有些事让人无助,至少我有一路吃苦的幸福!多年以后当我抬头望天空,湛蓝的色彩中依然有我沉郁多年的思绪!回归那一季那个曾叫‘山子’的男孩纯洁的微笑,然后宿命收拢指间,我们无处可逃
    作者:Love Coding
    出处:http://www.cnblogs.com/youshan/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    1、线性DP 198. 打家劫舍
    1、线性DP 354. 俄罗斯套娃信封问题
    127. 单词接龙
    1. 线性DP 887. 鸡蛋掉落 (DP+二分)
    200. 岛屿数量
    1. 线性DP 152. 乘积最大子数组
    1. 线性DP 53. 最大子序和.
    1. 线性DP 120. 三角形最小路径和
    如何在RHEL 8上安装Python 3
    在Ubuntu 20.04 LTS Focal Fossa上安装Drupal
  • 原文地址:https://www.cnblogs.com/youshan/p/2439332.html
Copyright © 2020-2023  润新知