• 《火球——UML大战需求分析》(第1章 大话UML)——1.2 结构型的UML(Structure Diagram)


    说明:

    《火球——UML大战需求分析》是我撰写的一本关于需求分析及UML方面的书,我将会在CSDN上为大家分享前面几章的内容,总字数在几万以上,图片有数十张。欢迎你按文章的序号顺序阅读,谢谢!本书已经在各大网上书城及书店销售,欢迎你的关注。

    ------------------------------------------------------------------------------------------------------------------------------

    第1章 大话UML

    摘要:你只需要阅读完本章,就能从宏观上掌握UML的知识,在你的脑袋中形成一张UML的蓝图。你能全面了解UML的基本知识,UML的各种图的用途和概况,你能和实际工作遇到的问题联系起来,帮助你进一步规划下一步的学习。


    1.2 结构型的UML(Structure Diagram)


    类图(Class Diagram

    请看下面这个类图:

    图1 某模具系统类图副本.jpg

    图 1.1 某模具系统类图

    此图截取自某模具管理系统的业务概念分析图,图中一个一个的矩形就是类,这些类之间有各种线条连接,这些线条表示类之间的关系。类图是分析业务概念的首选,类图可能是使用率最高的 UML图。

    再看下面这个Person类图,这时 软件设计时用到的一个图:

    图2 Person类图.jpg
    图 1.2 Person类图

    该Person类有以下属性(Attribute):Name(姓名),Sex(性别),Department(部门)等,有以下操作(Operation):Work(工作)等。类有属性和操作,但用类图分析业务模型时,往往不需要使用操作,如图1.1中的类就只有属性。
    Attribute有特性、特征等译法,Operation也称作方法,但本书遵循UML中文术语标准,即Attribute为属性,Operation为操作。

    对象图(Object Diagram)一般情况下只有在 软件开发中才会使用到对象图,下面的内容以开发的角度来说明对象图,如果你没有开发经验,阅读起来可能有一点难度。

    图1.2中的Person类,用代码实例化如下:
    Person person = new Person();
    ……

    类(Class)实例化后就是对象(Object),对象person是类Person的实例,上述代码可以用对象图表示如下:

    图1.3 Personl类的对象图.jpg
    图 1.3 Person类的对象图

    对象图和类图的样子很相似,对象是类的实例化,“person : Person”表示对象person是类Person的实例。对象图往往只在需要描述复杂算法时才会使用,画出来的对象图往往不会只有一个对象,该图只画了一个对象,其目的是尽量简化以便读者的理解什么是对象图。
    需求分析工作中基本上不需要使用对象图,从严谨的角度来看某些情况下应该使用对象图,但我往往还是会用类图来处理,这样更加简便而且容易理解。我们将在类图一章再次讲解对象图。

    构件图(Component Diagram)构件图也叫 组件图,两个名字均符合UML中文术语标准。
    一辆汽车由轮子、发动机等物理部件组成,一个软件往往也是由很多“物理部件”(如:控件、重用构件等)组成的,构件图就是用来描述软件内部物理组成的一种图。下图是某权限构件设计图:

    图1.4 某权限构件设计图.jpg
    图 1.4 某权限构件设计图

    图1.4右上方有这样标志 的矩形表示一个构件,构件可以再包含构件。
    软件需求分析工作中,需要用到构件图的情况不是很多,以下情况除外:
    1. 待开发的系统需要与第三方的系统、原有系统、某些老系统等交互,这时可用构件图描述交互要求。
    2. 客户对软件设计有某些特殊要求,这时可用构件图来描述要求。
    构件图有时不会单独使用,还会和 部署图一起结合使用。

    部署图(Deployment Diagram)

    部署图是用来描述系统如何部署、本系统与其他系统是怎样的关系的一种图,如下图:

    图1.5 某24小时便利店的管理系统部署图.jpg
    图 1.5 某24小时便利店的管理系统部署图

    图中一个个立体的矩形是部署图的“节点”,一个节点表示一个物理的设备,节点之间的线条表示节点间的物理连接关系。
    大部分客户都会具备一定的IT基础环境(如具备局域网、一些服务器、某些软件平台等),软件系统需要基于当前的IT基础环境来规划,这时我们可以使用部署图来做这个规划。
    分析系统的 需求,不能忽略系统架构、部署、IT架构等方面的要求,我们要基于客户当前的IT基础环境,做一个最符合客户利益的规划。
    要活用构件图、部署图来分析需求,需要具备一定的IT基础架构知识和软件设计知识,如果你还不具备相关知识,那么可以考虑抓紧补充相关知识。不过需求分析工作更多的还是分析业务,提炼功能性需求,这部分工作能做好是相当不容易的事情。对于技术方面的非功能性需求分析,可交由有技术背景的专业人士负责。

    包图(Package Diagram)

    Package有“打包”的意思,包图的主要用途是“打包”类图。用类图描述业务概念时,很多时候会因为业务类太多,而导致类图非常庞大,不利于阅读,这时可以将某些类放入“包”中,通过包图来组织业务概念图。

    下图是包图的一个示例:

    图1.6 包图.jpg
    图 1.6 包图

    图中好像文件夹样子的就是一个“包”,包之间的线条表示包之间的关系。



    请看下一节……



    作者:张传波

    创新工场创业课堂讲师

    华为某团队高级顾问

    《火球——UML大战需求分析》作者

    www.umlonline.org 创办人


  • 相关阅读:
    c语言,浮点数转byte array
    go的select 只会执行一个case,就会退出select 块
    【转】pphp中goto的用法
    [转]php 中yield是个什么东西
    z-index 0 和auto的区别,这个例子好好琢磨一下
    SpringMVC框架下实现原生分页功能
    Jackson 高级应用
    Jackson 的 基本用法
    Jackson转换为Collection、Array
    spring处理数据库中Date类型字段转换成时间戳问题
  • 原文地址:https://www.cnblogs.com/suncoolcat/p/3297308.html
Copyright © 2020-2023  润新知