类图

UML各种图总结-精华

别来无恙 提交于 2020-01-28 13:43:20
UML各种图总结-精华 UML(Unified Modeling Language)是一种统一建模语言,为面向对象开发系统的产品进行说明、可视化、和编制文档的一种标准语言。下面将对UML的九种图+包图的基本概念进行介绍以及各个图的使用场景。 一、基本概念     如下图所示,UML图分为用例视图、设计视图、进程视图、实现视图和拓扑视图,又可以静动分为静态视图和动态视图。静态图分为:用例图,类图,对象图,包图,构件图,部署图。动态图分为:状态图,活动图,协作图,序列图。   1、用例图(UseCase Diagrams):   用例图主要回答了两个问题:1、是谁用软件。2、软件的功能。从用户的角度描述了系统的功能,并指出各个功能的执行者,强调用户的使用者,系统为执行者完成哪些功能。   2、类图(Class Diagrams):     用户根据用例图抽象成类,描述类的内部结构和类与类之间的关系,是一种静态结构图。 在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)。    各种关系的强弱顺序: 泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖   2.1.泛化     【泛化关系】

vs2013\\2015-UML

旧时模样 提交于 2020-01-28 01:18:41
1.UML简介 Unified Modeling Language (UML)又称统一建模语言或标准建模语言。 简单说就是以图形方式表现模型,根据不同模型进行分类,在UML 2.0中有13种图,以下是他们的主要用途简介: 1.用例图:对系统的使用方式分类. 2.类图:显示类和它们的相互关系。 3.对象图:只显示对象及它们的相互关系。 4.活动图:显示人或对象的活动,其方式类似于流程图。 5.状态机图:显示生命周期比较有趣或复杂的对象的各种状态。 6.通信图:显示在某种情形下对象之间发送的消息。 7.顺序图:显示与通信图类以的信息,但强调的是顺序,而不是连接。 8.包图:显示相关的类如何组合,对开发人员有用。 9.部署图:显示安装已完成系统的机器、过程和部署制品。 10.组件图:显示可重用的组件(对象或子系统)及期接口。 11.交互总图:使用顺序图喧赤活动的务个步骤。 12.时间图:显示消息和对象状态的准确时间限制。 13.复合结构图:显示对象在聚合或复合中的相互关系,显示接口和协作的对象 常用的 UML 图可分静(态)图、动(态)图两类,静态图主要描绘软件的静态结构,而动态图主要描绘软件的动态行为。 常用 UML 动态图(5 个):用例图,活动图,状态机图,序列图,通信图。 常用 UML 静态图(4 个):类图,包图,部署图,构件图。 2.UML类图 在所有UML图中

OO学习总结(二)

。_饼干妹妹 提交于 2020-01-24 19:54:39
第五次作业:多线程电梯 多线程的同步和控制 在本次作业里,请求发生器不断往请求队列里加入电梯请求,主调度器不停将电梯请求分发给从调度器,从调度器不断读取请求来操控电梯运行,因而这三者之间存在同步关系。 请求发生器和主调度器之间共享了主请求队列,因而需要对主请求队列的加入、删除和读取方法均作同步,对此我采取的方法是在调用者的调用代码里加入synchronized代码块。 主调度器和从调度器之间共享了电梯和从请求队列,在获取电梯的方法里我采用的对方法作synchronized同步,对请求队列的同步采用的与2相同的方法。 OO度量 类图 类图展示出了各个类之间的引用,共享关系。缺点是类图太过繁杂,引用关系较为混乱。 sequence diagram 设计角度 这次作业感觉严重违反了显示表达原则。 体现在各个常量都直接用的数字表示,没有用类的静态变量。 如果以后需求发生变化, 比如楼层高度更改, 电梯个数更改, 就需要修改所有的代码。 对Single Responsibility Principle运用得稍好一些, 主调度器就负责分派请求, 从调度器负责从自己的从队列里拿出请求操控电梯运行。 主调度器与请求发生器之间就是消费者与生产者的关系, 从调度器与主调度器又形成了消费者与生产者关系。 bug分析 公测有一个测试点挂了,互测有一个测试点挂了。都是同一个原因导致的:

Windows VS2017如何查看类图

穿精又带淫゛_ 提交于 2020-01-23 19:25:15
原由 在VS2017中发现没有新建项目创建类图 解决方法 右键Visual Studio,打开文件所在位置 返回到Microsoft Visual Studio目录,找到Installer文件夹 找到vs_installer.exe,打开 点击跳出界面的 修改 勾选***VS扩展开发***,并选中***类设计器***,点击下方修改即可。 然后打开VS,即可创建类图,或者查看 来源: CSDN 作者: 小听歌 链接: https://blog.csdn.net/qq_21407523/article/details/103984871

你为什么要看源码?如何看源码?

喜欢而已 提交于 2020-01-20 22:39:02
前言 本文主要内容摘自加多大神的《Java并发编程之美》的前言内容,讲了为什么要看源码和如何看源码,讲的很精炼。这部分是属于源码学习方面的方法论,所以单独摘录下来并且总结。 为什么要看源码? 我们在做项目的时候一般会遇到下面的问题: 不知道如何去设计。比如刚入职场时,来一个需求需做概要设计,不知如何下手,不得不去看当前系统类似需求是如何设计的,然后仿照去设计。 设计的时候,考虑问题不周全。相比职场新手,这类人对一个需求依靠自己的经验已经能够拿出一个概要设计,但是设计中经常会遗漏一些异常细节,比如使用多线程有界队列执行任务,遇到机器宕机了,如果队列里面的任务不存盘的话,那么机器下次启动的时候这些任务就丢失了。 对于这些问题,说到底主要还是因为 经验不够,而经验主要从项目实践中积累 ,所以招聘单位一般都会限定工作时间大于3年,因为这些人的项目经验相对较丰富,在项目中遇到的场景相对较多。工作经验的积累来自于年限与实践,然而 看源码可以扩展我们的思路,这是变相增加我们经验的不错方法。虽然不能在短时间内通过时间积累经验,但是可以通过学习开源框架、开源项目来获取经验 。 另外,进职场后一般都要先熟悉现有系统,如果有文档还好,没文档的话就得自己去翻代码研究。如果之前对阅读源码有经验,那么在研究新系统的代码逻辑时就不会那么费劲了。 还有一点就是, 当你使用框架或者工具做开发时

UML类图与类的关系详解

感情迁移 提交于 2020-01-17 08:03:03
虚线箭头指向依赖; 实线箭头指向关联; 虚线三角指向接口; 实线三角指向父类; 空心菱形能分离而独立存在,是聚合; 实心菱形精密关联不可分,是组合; 来源: CSDN 作者: shuzhou12 链接: https://blog.csdn.net/qq_34680763/article/details/103981316

类图中怎么画

旧城冷巷雨未停 提交于 2020-01-17 06:37:35
1.包含的成员变量和方法要标注 2.类与类之间的关系也要用箭头说明 虚线箭头:表示调用 实线箭头:表示代理,箭头指向的类是被代理的类 三角虚线箭头:表示实现接口,三角箭头指向接口 菱形尾-箭头:表示代理接口 来源: CSDN 作者: 一只放羊的 链接: https://blog.csdn.net/qq_31476455/article/details/103858442

【UML建模】UML类图几种关系的总结

Deadly 提交于 2020-01-16 16:39:26
转自: http://kb.cnblogs.com/page/129490/ 在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)    1. 泛化( Generalization )   【泛化关系】:是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的所有特征和行为。例如:老虎是动物的一种,即有老虎的特性也有动物的共性。   【箭头指向】:带三角箭头的实线,箭头指向父类   2. 实现( Realization )   【实现关系】:是一种类与接口的关系,表示类是接口所有特征和行为的实现.   【箭头指向】:带三角箭头的虚线,箭头指向接口   3. 关联( Association)   【关联关系】:是一种拥有的关系,它使一个类知道另一个类的属性和方法;如:老师与学生,丈夫与妻子关联可以是双向的,也可以是单向的。双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。   【代码体现】:成员变量   【箭头及指向】:带普通箭头的实心线,指向被拥有者   上图中,老师与学生是双向关联,老师有多名学生,学生也可能有多名老师。但学生与某课程间的关系为单向关联,一名学生可能要上多门课程

UML 类图笔记

倖福魔咒の 提交于 2020-01-16 16:38:47
在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency) 1. 泛化(Generalization) 【泛化关系】:是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的所有特征和行为。例如:老虎是动物的一种,即有老虎的特性也有动物的共性。 【箭头指向】:带三角箭头的实线,箭头指向父类 2. 实现(Realization) 【实现关系】:是一种类与接口的关系,表示类是接口所有特征和行为的实现. 【箭头指向】:带三角箭头的虚线,箭头指向接口 3. 关联(Association) 【关联关系】:是一种拥有的关系,它使一个类知道另一个类的属性和方法;如:老师与学生,丈夫与妻子关联可以是双向的,也可以是单向的。双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。 【代码体现】:成员变量 【箭头及指向】:带普通箭头的实心线,指向被拥有者 4. 聚合(Aggregation) 【聚合关系】:是整体与部分的关系,且部分可以离开整体而单独存在。如车和轮胎是整体和部分的关系,轮胎离开车仍然可以存在。 聚合关系是关联关系的一种,是强的关联关系;关联和聚合在语法上无法区分,必须考察具体的逻辑关系。 【代码体现

Markdown写出漂亮类图

落爺英雄遲暮 提交于 2020-01-16 07:26:19
我们经常使用到UML类图,常用工具软件不是那么的好用顺手。有没有想过Markdown简单标记语言也能写出漂亮类图?分享一个Jext开源插件扩展JIRA时画的类图。 @startuml Title "到期工作日天数" 内置DueWorkdaysField ..> DueWorkdays 预定义DueWorkdaysField ..> DueWorkdays DueWorkdays ..> WorkdayHelper DueWorkdays ..> HistoryHelper DueWorkdays ..> StatusHelper WorkdayHelper ..> DateUtil class DueWorkdays{ + public getDueWorkdays() } class WorkdayHelper{ + public countWorkdays() + public isHoliday() } class DateUtil{ + public isWeekend() } @enduml 显示效果: PlantUML在线工具: http://www.plantuml.com/plantuml/uml/ 来源: 51CTO 作者: wx5b3c0a4298f7b 链接: https://blog.51cto.com/13851865/2467112