项目网站的建设有两种模式,网站自适应宽度,wordpress加水印插件,苏州网站建设n苏州网站建设公司文章目录 简介和安装创建包创建类视图时序图 简介和安装
最近在学习一个项目的时候用到了StartUML来构造项目的类图和时序图
虽然vs2019有类视图#xff0c;但是也不是很清晰#xff0c;并没有生成uml图#xff0c;但是宇宙最智能的IDE IDEA有生成uml图的功能 下面就简单介… 文章目录 简介和安装创建包创建类视图时序图 简介和安装
最近在学习一个项目的时候用到了StartUML来构造项目的类图和时序图
虽然vs2019有类视图但是也不是很清晰并没有生成uml图但是宇宙最智能的IDE IDEA有生成uml图的功能 下面就简单介绍一下这个uml工具的简单使用 首先这个软件是要收费的发现国外这个收费软件还挺多的国内基本都是会员制度这个还是有区别的但是如果你手头不宽裕的话您可以搜破解教程但是宽裕的话还是支持一下正版毕竟这个软件真的很强大。
安装好了之后打开就会显示下图界面我的是6.0版本 这里为什么把它叫做uml工程能因为它和项目工程一样可以分包一个类就对应这里的一个类图
例如我这里一个c项目对应的uml工程
创建包
一般工程都会分包那么我们uml工程对应也要分包所以一般都是先添加包(package) 鼠标右键点击工程–Add-Package 添加之后会默认生成一个包名: 鼠标点击包然后在右下角可以修改包属性:
创建类视图
在上面创建包的基础上右键点击包–Add–Class 这里也会生成默认类名同上点击类在右下角可以修改类属性 这里说明一下上面几个属性: isAbstarct是否为抽象类 这个在java中是这么叫但是c中一般叫虚基类isFinalSpeciialization:是否可被继承, java中final修饰的类就是不可再被继承c11中同样有这个属性也是final修饰的类不可被继承,这样的类叫终态类isLeaf:是否为叶子类什么是叶子类我们知道在树这种数据结构种有一种节点叫叶子节点即没有任何子节点的节点那么同理叶子类就是没有任何子类的类isActive:这个我还没用过gpt的解释如下:pp表示还是有点抽象 isActive表示是否为活动类。在 UML 中活动类通常用来表示具有状态和行为的类也可以表示在系统中具有一定主动行为的类。将一个类标记为活动类意味着该类具有一定的主动性质。isActive 属性用于指示一个类是否被设计为活动类。 然后就是添加类属性和方法(函数)这里可以直接添加也可以通过类图的方式添加: 直接添加就是通过右键点击类名–add:
通过类图的方式添加首先鼠标选中类然后拖动到网格区域中 然后右键点击类图同样会出现上面直接右键点击类名的选项 点击operation是添加方法函数点击attribute是添加属性 对于方法(函数)的表示:方法名(参数名1:类型,参数名2:类型,…):返回值类型 对于属性:属性名:属性类型 当然也可以选中之后在右下加修改添加 这里其实有一些bug就是你再类图上修改属性或者方法名的时候可能报错因为可能某些字符和它的脚本解释器指定的关键字冲突了比如c的析构函数的~其实之哟啊在右下角的属性页修改名称就不会报错了
创建类图之间的关系 uml类图之间有六种关系: 关联直接用一条实线连接两个类并在连线上标注角色名称和多重性。例如学生与课程之间的关联关系可以用实线连接表示学生和课程之间存在双向关系。 依赖用带箭头的虚线表示箭头从使用类指向被依赖的类。表示一个类在某个方法中使用了另一个类的对象。例如如果一个类的方法中有另一个类作为参数那么它们之间就存在依赖关系。 泛化用带空心三角形的实线表示从子类指向父类。表示一种继承关系子类继承了父类的特征和行为。 实现用带空心三角形的虚线表示从实现类指向接口。表示一个类实现了接口定义的所有方法。例如一个类实现了一个接口中定义的所有方法就可以用实现关系表示出来。 聚合用带空心菱形的实线表示连接整体与部分整体与部分之间是一种拥有关系但部分可以存在独立于整体之外。例如电脑与键盘、鼠标之间的关系可以用聚合关系表示。 组合关系用带实心菱形的实线表示连接整体与部分整体与部分之间是一种包含与被包含的关系部分不能独立存在于整体之外。例如车与引擎之间的关系可以用组合关系表示。 时序图
时序图可以理解成程序执行流程图
例如我现在有一个程序:
class A{
public:
int Afunc1(){}
bool Afunc2(){}
bool Afunc3(){}
}int main()
{
Afnuc1();
Afunc2();
if(Afun2())
{
while(Afunc3())
{
Afunc1();
}
}
return 0;
}右键点击工程–Add Diagram–Sequence Diagram 然后把要用到的类拖上去