本文将分三个部分介绍Uml建模:Uml建模的作用、类图、startuml的使用

Uml的作用

   本文以java为例介绍Uml,在当前的软件开发中大多数使用面向对象开发(OO),面向对象的就是将现实世界中的对象,行为,关系等模拟化到软件系统中。当在开发一个软件系统的时候,不会一开始直接编程。这样做的后果就是没有经过详细的设计,导致后期某些业务逻辑基于现有的系统不能开发。所以对于软件系统的设计尤其重要。对于系统的设计分为两部分:1.需求分析人员根据现实业务场景,梳理出业务关系。(eg:一个老师带一个班的课程)2.软件设计师设计出对应的对象关系,行为,状态等(一个老师类,一个学生类 ,多多关系)。UML建模是将现实世界的业务抽象到软件系统中,通过图形的方式勾勒出整个系统,在UML中可以清晰的了解所有模块之间的关联关系。

一:Uml 建模三种模型

类模型:描述系统内部对象及其关系的静态结构。类模型由类图构建,类图中节点表示类,类与类之间的关联关系用不同含义的弧标识。

状态模型:描述对象随着时间迁移发生了哪些变化。状态模型使用状态图确定并实现控制。状态图的节点是状态,弧是由时间引发的状态间的转移。

交互模型:描述系统中对象如何协作完成更为宽泛的任务。用例:关注系统的功能,即系统为用户做了哪些事情。顺序图:显示交互对象以及发生交互的时间顺序。活动图:描述重要的处理步骤。

二:面向对象建模离不开最基础的面向对象的特性:抽象,继承,封装,多态,这些特性都会表现在类图上,对象可以被实例化,实例化的对象的属性,操作,类型模拟具体的对象特征。

三:类模型的特征

1.关联关系(Associated):描述在对象之间在物理上或者概念上的联系。关系方向是双向的,人和工具的关联,人使用工具工作。人和工具是多对多的关系。

表示关联关系的符号:1..5(1~5),* (表示多的意思),+(表示类是public修饰的)

关联中还有一种自关联:自己关联自己,常见的在树形结构中,例如组织关系

一个子机构可以有多个父结构,一个父结构可以有多个子机构

2.泛化(generalization)指一个父类与其一个或多个子类之间的关系。子类继承父类的特性,还可以表现出更宽泛的特征。

:String(生命属性的类型),+(表示public) - (private)#(protected) ~(package)    eat() (吃饭的方法)

3.实现(realization):接口是操作的集合,实现类继承接口,将接口声明的抽象操作具体化。例如:动物都有吃的动作,人是吃饭,猴子吃水果。

默认的接口图形是原型,在这里我再startUml 中修改了它的展现方式

4.聚合(aggregation)关系是一种弱关联。一个聚集对象有多个部件构成,部件是聚集的一部分。例如:车和轮胎的关系,轮胎没了,车依然存在。聚合具有传递性,A聚合B,B聚合C ,A聚合C,并且也具有反聚合性,A聚合C,C不能聚合A

这里以四轮车为例:一辆车由四个轮子聚合

5.组合(compostion):有两个恩爱的约束条件,一个组成部件至多属于一个装配件。而且一个组成部件一旦被分配给装配件,它就会和装配件有着相同的生命周期。装配件消亡,组成件也将随之消亡。例如:人和胳臂,人消失了,胳臂也不复存在,又例如:程序员没了代码就会死。这种关系要比聚合更强。这里也是用实心菱型表示。

6.单项关联(directedAssociation):没有生命周期的限制,一个引用另外一个

一个人有多辆车

7.依赖(dependency):物体与物体之间产生的依赖关系,例如:人依赖空气和水

所有的关联关系:

  一个动物的接口被人类所实现(realization),人这个类被男人和女人两个类所泛化(generalization),人类依赖(dependency)水和空气而存活,人类的胳臂和腿才能组合(compostion)成人类,缺一不可,人类消亡,胳臂和腿已经消亡.人类可以开一辆车或者多辆车(directedAssociation),多个车轮聚合(aggregation)成车的一部分,人类可以自关联,人类的父亲,孩子。人类也可以双向关联(association)

四:startUml的使用

1.下载startUml之后双击打开,点击default approach.

2.若左侧的工具栏没有显示,则点击view-->toolbox 在前面勾选,勾选model explorer。

3.找到Model explorer-->design model 右键点击 add--->选择package或者class

选中之后修改名称

3.拖拽这个类到文本框中进行编辑

4.连接关联关系,直接拖拽

5.直接添加的接口是圆形图标,要想设置成方格的形式Format-stereotype dispaly-textual

6.选中类或者接口点击这两个按钮既可以显示属性和行为(方法)

Uml 建模 一(类图建模和startuml的使用)的更多相关文章

  1. KsUML 免费的类图建模工具

    最近基于SharpDevelop和NClass两个开源软件,开发了一个免费的类图建模工具,详情请访问 www.TimeGIS.com KsUML类图建模工具是一个用来给软件开发人员使用的一种UML类图 ...

  2. 3.UML中的类图及类图之间的关系

    统一建模语言简介 统一建模语言(Unified Modeling Language,UML)是用来设计软件蓝图的可视化建模语言,1997 年被国际对象管理组织(OMG)采纳为面向对象的建模语言的国际标 ...

  3. GOF 的23种JAVA常用设计模式总结 02 UML中的类图与类图之间的关系

    统一建模语言UML 统一建模语言(Unified Modeling Language,UML)是用来设计软件蓝图的可视化建模语言,1997 年被国际对象管理组织(OMG)采纳为面向对象的建模语言的国际 ...

  4. UML中的类图及类图之间的关系

    统一建模语言简介 统一建模语言(Unified Modeling Language,UML)是用来设计软件蓝图的可视化建模语言,1997 年被国际对象管理组织(OMG)采纳为面向对象的建模语言的国际标 ...

  5. UML简单介绍—类图详解

    类图详解 阅读本文前请先阅读:UML简单介绍—类图这么看就懂了 1.泛化关系 一个动物类: /** * 动物类 */ public class Animal { public String name; ...

  6. 【UML 建模】类图介绍

    1.类图是面向对象系统建模中最常用和最重要的图,是定义其它图的基础.类图主要是用来显示系统中的类.接口以及它们之间的静态结构和关系的一种静态模型. 2.类的关系有泛化(Generalization). ...

  7. UML精粹3 - 类图,序列图,CRC

    类图Class diagram 类图描述系统中的对象类型,以及它们之间的各种静态关系.类图也展示类的性质和操作,以及应用于对象连接方式的约束.UML中的特性feature,涵盖了性质property和 ...

  8. UML静态视图——类图、对象图、包图

    绘画类的最重要的图是抽象类.让我们回顾一下类的基本内容. 一.分类 1.类的概念: 面向对象编程的类是一个基本概念.类是具有相同特性的.办法.集合语义和一组对象的关系. 2.类分类: 实体类:保存要放 ...

  9. 软件工程 #02# Entity Relationship Diagram VS. 用 UML 中的类图表示 E-R 图

    不同的老师叫我们画 E-R 图居然是不一样的,于是我仔细研究了一番.. 通常所说的 E-R 图(外文全称 Entity Relationship Diagram,简称 ERD)长这个样子: 而有时候它 ...

随机推荐

  1. android 怎样将主菜单图标改成按安装时间排序

    1. 在 LauncherModel.java 中增加例如以下代码, 假设是KK Launcher3 ApplicationInfo要替换为AppInfo public static final Co ...

  2. easyUI的tree

    前端使用easyUI,放了一个tree,搞死了. easyUI的tree,后端传过来的数据,是json格式:然后easyUI向后端提交.请求时,会自动将节点的id附在url后面. 主要有两个注意的地方 ...

  3. 请说出作用域public,private,protected,以及不写时的区别

    这四个作用域的可见范围如下表所示. 说明:如果在修饰的元素上面没有写任何访问修饰符,则表示friendly. 作用域    当前类 同一package 子孙类 其他package public    ...

  4. UESTC93 King's Sanctuary

    King's Sanctuary Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) ...

  5. POJ2289 Jamie's Contact Groups —— 二分图多重匹配/最大流 + 二分

    题目链接:https://vjudge.net/problem/POJ-2289 Jamie's Contact Groups Time Limit: 7000MS   Memory Limit: 6 ...

  6. YTU 2574: 空白格式化

    2574: 空白格式化 时间限制: 1 Sec  内存限制: 128 MB 提交: 233  解决: 118 题目描述 恭喜你进入了蓝桥杯总决赛,本次大赛采用了全自动机器测评系统. 如果你的答案与标准 ...

  7. linux系统无法上外网,路由器可以上网,可以ping通路由器,ping不通外网IP

    临时生效方法(添加路由网关),执行: #route add default gw 192.168.92.1   #根据实际网关IP填写 如果不行,使用下面方法: 一:使用 route 命令添加使用ro ...

  8. 创建oracle数据库job服务

    创建oracle数据库job服务:PlSqlDev操作job https://www.baidu.com/link?url=5vXhw0IqjvWEAgGSIYsSEVPvJb6njGkJ-_P_VF ...

  9. 【基于libRTMP的流媒体直播之 AAC、H264 解析】

    前文我们说到如何在基于 libRTMP 库的流媒体直播过程中推送 AAC .H264 音视频流.本文以上文为基础,阐释如何对 RTMP 包进行解析.重组得到原始的 AAC 音频帧以及 H264 码流. ...

  10. MySQL-Tool:Navicate 安装

    ylbtech-MySQL-Tool:Navicate 安装 1.返回顶部 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 2. 激活返回顶部 1. 2. 3. 4. 5. 6. 7. ...