Uml 建模 一(类图建模和startuml的使用)
本文将分三个部分介绍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的使用)的更多相关文章
- KsUML 免费的类图建模工具
最近基于SharpDevelop和NClass两个开源软件,开发了一个免费的类图建模工具,详情请访问 www.TimeGIS.com KsUML类图建模工具是一个用来给软件开发人员使用的一种UML类图 ...
- 3.UML中的类图及类图之间的关系
统一建模语言简介 统一建模语言(Unified Modeling Language,UML)是用来设计软件蓝图的可视化建模语言,1997 年被国际对象管理组织(OMG)采纳为面向对象的建模语言的国际标 ...
- GOF 的23种JAVA常用设计模式总结 02 UML中的类图与类图之间的关系
统一建模语言UML 统一建模语言(Unified Modeling Language,UML)是用来设计软件蓝图的可视化建模语言,1997 年被国际对象管理组织(OMG)采纳为面向对象的建模语言的国际 ...
- UML中的类图及类图之间的关系
统一建模语言简介 统一建模语言(Unified Modeling Language,UML)是用来设计软件蓝图的可视化建模语言,1997 年被国际对象管理组织(OMG)采纳为面向对象的建模语言的国际标 ...
- UML简单介绍—类图详解
类图详解 阅读本文前请先阅读:UML简单介绍—类图这么看就懂了 1.泛化关系 一个动物类: /** * 动物类 */ public class Animal { public String name; ...
- 【UML 建模】类图介绍
1.类图是面向对象系统建模中最常用和最重要的图,是定义其它图的基础.类图主要是用来显示系统中的类.接口以及它们之间的静态结构和关系的一种静态模型. 2.类的关系有泛化(Generalization). ...
- UML精粹3 - 类图,序列图,CRC
类图Class diagram 类图描述系统中的对象类型,以及它们之间的各种静态关系.类图也展示类的性质和操作,以及应用于对象连接方式的约束.UML中的特性feature,涵盖了性质property和 ...
- UML静态视图——类图、对象图、包图
绘画类的最重要的图是抽象类.让我们回顾一下类的基本内容. 一.分类 1.类的概念: 面向对象编程的类是一个基本概念.类是具有相同特性的.办法.集合语义和一组对象的关系. 2.类分类: 实体类:保存要放 ...
- 软件工程 #02# Entity Relationship Diagram VS. 用 UML 中的类图表示 E-R 图
不同的老师叫我们画 E-R 图居然是不一样的,于是我仔细研究了一番.. 通常所说的 E-R 图(外文全称 Entity Relationship Diagram,简称 ERD)长这个样子: 而有时候它 ...
随机推荐
- RSA私钥加密公钥解密、各种密钥格式转换
此随笔解决RSA加解密相关的3个问题,详情可以查看源码. 1.公钥加密.私钥解密2.各种格式RSA密钥之间的转换3.不限制加密原文的长度
- 【iOS系列】-iOS的多线程解析
[iOS系列]-iOS的多线程解析 iOS的多线程实现技术: 1:GCD -- Grand Central Dispatch 是基于C语言的底层API 用Block定义任务,使用起来非常灵活便捷 提供 ...
- C项目实践--学生成绩管理系统
1.功能需求分析 学生成绩管理系统是对学生基本信息及成绩的管理.本程序主要实现了对学生的学号.姓名等基本信息以及各项学科成绩进行增加.删除.修改.查询和保存到磁盘文件等操作.主要功能描述如下: (1) ...
- AndroidEventBus总结
什么是AndroidEventBus? android事件总线,是一个发布 / 订阅的事件总线 github地址:https://github.com/greenrobot/EventBus Andr ...
- SoapUI中读取Office365邮件
常见邮件服务一般使用IMAP邮件访问协议,如果你所在公司更换到Office 365则需要另一个组件. Office 365使用的是Exchange Server电子邮件服务组件,需要微软的Jar包来支 ...
- 线程之间的通信socketpair【学习笔记】【原创】
平台信息:内核:linux3.1.0系统:android5.0平台:tiny4412 作者:庄泽彬(欢迎转载,请注明作者) 说明: 韦老师的安卓视频学习笔记 一.在一个进程中多个线程如何进行通信,主要 ...
- Map dependencies with code maps
https://docs.microsoft.com/en-us/visualstudio/modeling/map-dependencies-across-your-solutions Instal ...
- js页面报错javax.servlet.jsp.PageContext cannot be resolved to a type解决
构建了一个maven项目但是项目创建好的jsp总会报错javax.servlet.jsp.PageContext cannot be resolved to a type,但是不影响项目运行.但总归难 ...
- AutoIT: 对文件系统的菜单进行操作,有专门的语句WinMenuSelectItem
对文件系统的菜单进行操作,有专门的语句WinMenuSelectItem: Run("notepad.exe") WinWaitActive("[CLASS:Notepa ...
- codeforces 447 A-E div2 补题
A DZY Loves Hash 水题 #include<iostream> #include<cstdio> #include<cstdlib> #include ...