UML需求分析之类图

UML分类

UML(unified Modeling Language)统一建模语言UML除了用于软件设计,还能用于需求分析,在实际工作中UML恰恰是沟通的良好桥梁。UML能直观、形象、描述出业务概念,业务流程,客户的期望和需求。UML官方资料是很枯燥,语法多,实际工作中用到的语法并不多,我本科软件工程,学校开了UML的课,当时并没有很好吸收,工作后重新回顾,我写的的这一系列主要用于需求分析方面。

我们要知道任何工具只是辅助工具,学习UML关键在于改变思维习惯,多锻炼面向对象分析能力。

  • UML在实际中分为下面两种类别:
分类

我们可以利用结构型的UML图对客户业务进行结构建模(静态),利用行为型的UML图进行行为建模(动态),这些建模活动将帮助我们更好地认识客户的业务和做好业务流程再造的工作。

需求分析流程

类图

面向对象

类图
  • ”+“ 表示public - 表示private,软件分析不用理会全画成+ 就可以;
  • 类图包含类名,属性,操作;

关联关系

关联关系

如果觉得两个业务概念之间有关系但又不确定具体是什么就可以先画一条线连接起来,为了排版我们也可以用折线;

  • x..y 意思x到y个,x < y
    • 表示0到多个
  • 如果A类有一个成员变量保存的是类B的引用,也就是说类A可以找到类B,需求分析角度来说就是业务概念A可以找到B

包含关系(聚合/组合关系)

包含关系

空心菱形表示聚合关系,实心菱形表示组合关系,我们用的时候可以用“弱”“强”包含关系来记或者理解;

  • “弱”包含指部门没了,员工也还在,或者员工可以有多个部门,”强“包含指部门没了,员工也不在,而且员工只能有一个部门;
  • 同样*的用法和上面一样,如果没有表示1;

泛化关系(继承)

泛化关系

学生,老师都”继承“了员工的属性,同时也有自己的属性,可以理解为老师,学生是员工的一种。在实际的软件需求分析工作中,我们往往有两种认识事物的角度,我们以员工、学生、讲师的关系为例子来说明。

  • 角度一:在培训现场,我们看到的是学生和讲师,后来你发现,原来讲师是内部员工来的!于是你可以从学生和讲师这两个类出发,发现学生和讲师其实都是员工!
  • 角度二:作为这个公司的领导,希望公司形成一一种学习和进步的风气,促进公司的进步,于是领导希望员工之间能互相分享知识和经验。从这个角度看来,领导先想到的是员工,然后再进一步发现员工可以当学生也可以当讲师。

依赖关系

依赖

虚线箭头就是依赖(Dependency)关系,说明A依赖B,就像烟鬼依赖香烟。但依赖程度是相对而言,不一定是A没有B就不能“生存了”,具体业务逻辑中,对于某件事情得A需要B的协助才能完成也是一种依赖关系;

”递归“关系

描述文件夹与文件的关系可以如下图


image

如果是文件夹下的文件夹下还有文件夹呢?


image

无论是弱包含还是强包含,都可以“自包含”。除了“自包含”可以形成“递归”,其实直线关系同样是可以指向自己的,这个叫“自关联”,这样也形成了“递归”关系
image

这种“递归”结构,一旦展开就会形成一棵树型的结构。需求分析时如果发现树型的业务结构,你可以考虑使用“自包含”或者“自关联”来分析。其实“自包含”、“自关联”的说法是不严谨的,只是方便记忆和理解,实际上具体的一个文件夹是不会包含自己的。这里我们需要进一一步理解类图中的每-一个类所代表的意义,一个类并不是指具体的一个业务对象,一个类泛指属于这个类的任意一个业务对象。

”三角“关系

当列出公司,雇员至少3个属性,我们就会思考薪金是雇员的关键属性吗?岗位?合同期?公司与雇员在法律上是怎么确立的?那么会想到公司会和雇员签署劳务合同,那这三者是什么关系?


三者关系

要识别出能表征两个类关系的关联类,难度是有点高,有这样的-些步骤:

  • 如果觉得两个类有关系,则先拉上一条直线再说。
  • 如果觉得两个类有关系,但怎样画都觉得这个关系不太合适,那么可以思考是不是漏了一个关联类。
  • 分别列出这两个类的关键属性,思考这些属性的属性值是不是由该类本身就可以确定了。例如:如果我们最开始将薪金作为员工的属性,那么你可以思考薪金的具体数字,是不是员工自已本身可以确定的?你会发现薪金其实是由公司和员工商定后确定的,并不是员工自已本身可以决定。
  • 通过对属性的思考,可能会发现这个属性应该是属于另外-一个类的,思考这个类是不是能表征原来两个类关系的关联类。


    image

这个图可能最体现它们的“三角”关系了,关联类也可以表达成这样的方式。但我在实际工作还是以关联类的方式来表达,我觉得关联类的表达方式更加贴切和专业一点。在具体的需求分析工作中,如果发现三个类形成了类似该图的“三角”关系,你可以思考其中一个类是不是可能是关联类,但要注意并不是凡是出现了“三角”关系就一定会有关联类。

类图的最大魅力在于帮助你发掘和提炼业务模型,其他的非UML图可能是做不到的。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 151,511评论 1 330
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 64,495评论 1 273
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 101,595评论 0 225
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 42,558评论 0 190
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 50,715评论 3 270
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 39,672评论 1 192
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,112评论 2 291
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 29,837评论 0 181
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 33,417评论 0 228
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 29,928评论 2 232
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,316评论 1 242
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 27,773评论 2 234
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,253评论 3 220
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 25,827评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,440评论 0 180
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 34,523评论 2 249
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 34,583评论 2 249

推荐阅读更多精彩内容