精华内容
下载资源
问答
  • 学习好类图的绘制,是一位合格的软件工程师应有的技能。1.类的UML图示在UML中,类使用包含类名,属性和方法且带有分隔线的长方形来表示例如定义一个Person类,包含属性name,age,拥有eating方法,则UML类图如下图示:...

    类图 是用于描述系统中所包含的类以及它们之间的相互关系,帮助人们简化对系统的理解,它是系统分析和设计阶段的重要产物,也是系统编码和测试的重要模型依据。学习好类图的绘制,是一位合格的软件工程师应有的技能。

    1.类的UML图示

    在UML中,类使用包含类名,属性和方法且带有分隔线的长方形来表示

    例如定义一个Person类,包含属性name,age,拥有eating方法,则UML类图如下图示:

    884fa91ba7f0

    Person类

    对应的java代码为:

    public class Person {

    private String name;

    private int age;

    public void eating() {

    ......

    }

    }

    在UML类图中,类一般由三部分组成:

    (1) 第一部分是类名:每个类都必须有一个名字,类名是一个字符串。

    (2) 第二部分是类的属性(Attributes):属性是指类的性质,即类的成员变量。一个类可以有任意多个属性,也可以没有属性。

    UML规定属性的表示方式为:

    可见性 名称:类型 [=缺省值]

    其中:

    �“可见性”表示该属性对于类外的元素而言是否可见,包括公有(public)、私有(private),友好的(friendly,代表package)和受保护(protected)三种,在类图中分别用符号+、-,~和#表示。

    � “名称”表示属性名,用一个字符串表示。

    � “类型”表示属性的数据类型,可以是基本数据类型,也可以是用户自定义类型。

    � “缺省值”是一个可选项,即属性的初始值。

    (3) 第三部分是类的操作(Operations):操作是类的任意一个实例对象都可以使用的行为,是类的成员方法。

    UML规定操作的表示方式为:

    可见性 名称(参数列表) [ : 返回类型]

    其中:

    � “可见性”的定义与属性的可见性定义相同。

    �“名称”即方法名,用一个字符串表示。

    �“参数列表”表示方法的参数,其语法与属性的定义相似,参数个数是任意的,多个参数之间用逗号“,”隔开。

    � “返回类型”是一个可选项,表示方法的返回值类型,依赖于具体的编程语言,可以是基本数据类型,也可以是用户自定义类型,还可以是空类型(void),如果是构造方法,则无返回类型。

    2.类之间的关系

    类不是孤立存在的,类与类之间存在各种关系包括:关联关系,聚合关系,组合关系,依赖关系,泛化关系。每种关系对应i不同的图示

    (1)依赖关系

    依赖关系是类与类之间最弱的关系,是指一个类(依赖类)使用或知道另外一个类(目标类)。它是一个典型的瞬时关系,依赖类和目标类进行简单的交互,但是依赖类并不维护目标类的对象,仅仅是零时使用而已。例如对于窗体类window,当它关闭时会发送一个类windowclosingevent对象,这里也就可以说窗体类window使用了类windowclosingevent,他们之间的依赖关系如下图示:

    884fa91ba7f0

    依赖关系.PNG

    依赖关系用虚线箭头表示

    (2)关联关系

    关联关系是一种比依赖关系更强的关系,是指一个类“拥有”另一个类,表示类之间的一种持续一段时间的合作关系,包括有单向关联和双向关联关系。

    单向关联:类A与类B是单向关联关系,是指类A包含类B对象的引用,但是类B并不包含类A对象的引用,例如银行用户类(client)包含账户类(Bankacount)的引用,但是反过来却不是。在类图中,通过从类A画一条带箭头的单向实线到类B来表示他们之间的单项关联关系,箭头方向指向B。如下图:

    884fa91ba7f0

    单向关联.PNG

    在上图中,连接两个类的箭头线两头的数字即代表它们之间的数量关系,例如上图,代表一个client类包含了0到多个BankAcount类的引用,并且BankAcount类在client中的引用是私有变量:accounts.

    表达数量的形式有:

    表达方式

    数量说明

    1..1

    表示另一个类的一个对象只与该类的一个对象有关系

    0..*

    表示另一个类的一个对象与该类的零个或多个对象有关系

    1..*

    表示另一个类的一个对象与该类的一个或多个对象有关系

    0..1

    表示另一个类的一个对象没有或只与该类的一个对象有关系

    m..n

    表示另一个类的一个对象与该类最少m,最多n个对象有关系 (m≤n

    双向关联:类A与类B如果包含对方的引用,则称类A与类B是双向关联的关系。例如,在一个需求描述中,一个学生(student)可以拥有其选秀的六门课程的信息,一门课程(course)可以包含选修该门课程的任意多个学生的信息。如下图:

    884fa91ba7f0

    双向关联

    双向关联用双向箭头连接两个类

    (3)聚合关系

    聚合(Aggregation)关系表示整体与部分的关系。在聚合关系中,成员对象是整体对象的一部分,但是成员对象可以脱离整体对象独立存在。在UML中,聚合关系用带空心菱形的直线表示。例如:汽车发动机(Engine)是汽车(Car)的组成部分,但是汽车发动机可以独立存在,因此,汽车和发动机是聚合关系,如下图所示:

    884fa91ba7f0

    聚合关系

    在代码实现聚合关系时,成员对象通常作为构造方法、Setter方法或业务方法的参数注入到整体对象中:

    public class Car {

    private Engine engine;

    //构造注入

    public Car(Engine engine) {

    this.engine = engine;

    }

    //设值注入

    public void setEngine(Engine engine) {

    this.engine = engine;

    }

    ……

    }

    public class Engine {

    ……

    }

    (4)组合关系

    组合(Composition)关系也表示类之间整体和部分的关系,但是在组合关系中整体对象可以控制成员对象的生命周期,一旦整体对象不存在,成员对象也将不存在,成员对象与整体对象之间具有同生共死的关系。在UML中,组合关系用带实心菱形的直线表示。例如:人的头(Head)与嘴巴(Mouth),嘴巴是头的组成部分之一,而且如果头没了,嘴巴也就没了,因此头和嘴巴是组合关系,如下图所示:

    884fa91ba7f0

    组合关系

    在代码实现组合关系时,通常在整体类的构造方法中直接实例化成员类

    public class Head {

    private Mouth mouth;

    public Head() {

    mouth = new Mouth(); //实例化成员类

    }

    ……

    }

    public class Mouth {

    ……

    }

    (5)泛化关系

    泛化(Generalization)关系也就是继承关系,用于描述父类与子类之间的关系,父类又称作基类或超类,子类又称作派生类。在UML中,泛化关系用带空心三角形的直线来表示,如下图:

    884fa91ba7f0

    泛化关系

    ***在UML中,类与接口之间的实现关系用带空心三角形的虚线来表示

    884fa91ba7f0

    接口实现关系

    以上便是UML类图的一些简单实用了,希望对你有帮助,另外,此文章参考了csdn版主刘伟老师的博客

    展开全文
  • StarUML是一款Mac平台上的UML建模工具,该软件主要用于各种图纸的绘制操作,并且可以将制作好的图纸文件导出为JPG、JPEG、BMP、EMF等图片格式,同时还拥有读取c++、c#代码生成类图的功能。Macv.comStarUML mac版安装...

    StarUML是一款Mac平台上的UML建模工具,该软件主要用于各种图纸的绘制操作,并且可以将制作好的图纸文件导出为JPG、JPEG、BMP、EMF等图片格式,同时还拥有读取c++、c#代码生成类图的功能。

    fa375aa5ea001e034f90cb574e7864d0.png

    Macv.com

    StarUML mac版安装教程

    镜像包下载完成后打开,双击

    .pkg按照安装引导器进行安装即可!

    9dc707455145f113da2acfab9255aba5.gif

    Macv.com

    StarUML mac版功能介绍

    带UML 2

    兼容UML 2.x标准元模型和图表:类,对象,用例,组件,部署,复合结构,序列,通信,状态图,活动和配置文件图。

    附加图表

    支持创建实体 - 关系图(ERD),数据流图(DFD)和流程图。

    跨平台支持

    在多个平台上使用相同的UX,包括macOS,Windows和Linux。

    视网膜显示支持

    支持Retina(高DPI)显示。所有图表,文本和图标都非常清晰,可以导出为高DPI图像(PNG和JPEG)。

    07f4e1dc23855bbf1dadb36fcd9129f6.png

    Macv.com

    扩展经理

    轻松发现并安装第三方扩展。许多扩展都是开源的,并在Github上托管。叉一个,自己做。

    模型驱动的开发

    建模数据以非常简单的JSON格式存储,因此可以通过用户定义的模板(mdgen)轻松地生成自定义代码

    快速建模

    支持快速编辑中的许多缩写,一次创建元素和关系,如子类,支持接口等。

    黑暗与光明的主题

    支持明暗主题,让您可以选择更舒适的主题。

    自动更新

    StarUML会自动检查最新更新。不再需要手动下载和安装。

    代码工程

    支持主要编程语言的代码生成和逆向工程,包括Java,C#和C ++,通过开源扩展。

    开放API

    允许使用HTML5,CSS3,JavaScript,Node.js模块和API编写自己的扩展,用于菜单,键盘映射,对话框,UI,元数据,首选项等。

    异步模型验证

    每当您保存或打开模型文件时,都会异步定义和检查许多模型验证规则。

    发布HTML文档

    通过发布HTML文档,轻松与其他分析师,支持者和开发人员共享

    PDF出口清洁印刷

    图表可以导出为PDF,以便使用页面布局和尺寸等打印选项进行清洁打印。

    高亮支持

    使用markdown语法编辑元素的文档,支持语法高亮和预览。

    87a7f4f0889d8bbb3f5a1e505d88ed27.png

    Macv.com

    更新日志

    适用于macOS的公证应用(Catalina)

    展开全文
  • sublime画类图

    2017-12-25 11:08:51
    Sublime + PlantUML 的插件画类图靠的是指令,可以方便快捷的画出流程图,状态图,时序图等,无需自己动手摆放位置、连线。这里主要讲下画类图。  1.软件安装就不详细写步骤了,要...画类图的教程网上非常少,只下

    Sublime + PlantUML 的插件画类图靠的是指令,可以方便快捷的画出流程图,状态图,时序图等,无需自己动手摆放位置、连线。这里主要讲下画类图。

         1.软件安装就不详细写步骤了,要用到的软件: java安装及环境变量配置, Python ,Sublime,graphviz,PlantUML for Sublime 插件。

         2.画类图的教程网上非常少,只下载到个英文的说明文档。基本要用到的几个指令列详细列出如下:

         范例
         1.区分大小写不支持注释
         2.继承:
         实线 父类<|--子类、父类^--子类 
         虚线:父类<|..子类、 父类^..子类 
         Class01  <|-- class02    
         Class03  <|.. class04    
         Class05  ^.. class06

         3.在关系符号两边加入文本标注,也可以加入额外的箭头 <或 >(注意空格的添加)
         Class05  "Base" ^.. "Derived"  class06 
         Class07  ^--  class08 : extension >
         Class010  ^--  class9 : < extension

         4.添加方法
         4.1 类名:返回类型 方法()

         Object <|-- ArrayList

         Object:equals()
         ArrayList:Object[] elementData
         ArrayList:size()

         4.2 也可以用{}将方法和字段高灵活性的组合起来,注意{}的位置格式

         @startuml 
         class Dummy {
         String data 
         void methods()
         }

         class Flight { 
         flightNumber : Integer
         departureTime : Date
          }
         @enduml
         选中要生成图的部分,按Alt+M,然后就会生成对应的图,如下图:

    展开全文
  • 统一建模语言(UML) | 类图什么是UML?...UML的优点:使复杂的软件设计更为简单,也能够实现像OOP(面向对象编程)这一类被广泛应用的概念。用理解起来可能更容易的图来描述,避免了大量的文字。是表达和交流概念或系统...

    统一建模语言(UML) |  类图

    什么是UML?

    UML是一种用于可视化描述系统,具有广泛用途的建模语言。作为一种标准化的图形语言,在软件工业中被用于软件系统部件的具体化,可视化,结构化描述以及撰写文档,同样在商业模型中也得到应用。

    UML的优点:

    使复杂的软件设计更为简单,也能够实现像OOP(面向对象编程)这一类被广泛应用的概念。

    用理解起来可能更容易的图来描述,避免了大量的文字。

    是表达和交流概念或系统结构变得更容易。

    在一张图中就能够描绘出整个系统。

    程序员实用类图来描述实际需求时,可让问题更加清晰明了,实现起来更容易。

    UML的分类

    UML通常分为两类:描述结构的UML图(Structural UML diagrams)和描述行为的UML图(Behavioral UML diagrams),具体见下表:

    描述结构的UML图

    描述行为的UML图

    类图(Class diagram)

    包图(Package diagram)

    对象图(Object diagram)

    组件图(Component daigram)

    组合结构图(Composite structure diagram)

    部署图(Deployment diagram)

    活动图(Activity diagram)

    时序图(Sequence diagram)

    用例图(Use case diagram)

    状态图(State diagram)

    协作图(Communication diagram)

    交互关系概览图(Interaction overview diagram)

    时间线图(Timing diagram)

    UML | 类图

    类图展示出OOP中的类,接口,及其中存在的关系,关联与协作。UML在类图中是标准化的。类是OOP的主要构件模块,而类图用恰当的结构展示OOP中遇到的一切,包括类,继承关系,类关系。它能够描述各种对象和它们之间的静态关系。使用类图的主要目的:

    类图是唯一能够恰当的展示出OOP中各种不同概念的UML。

    利用类图来对应用程序做出优化的设计与分析高效而快速。

    类图是部署图和组件图的基础。

    类图一般的规则如下:

    每个类用一个矩形框表示,框内由类名,属性,及定义的操作三个子部件构成。

    三种表示可见性的修饰符:

    + 表示public

    # 表示protected

    -表示private

    ~  表示default(无修饰符)

    一些常用的构成模型的组件:

    类(Class){名(name),属性(attribute),方法(method)

    对象(Object)

    接口(Interface)

    关系(Relationships) { 继承(inheritance),关联(association),泛化(generalization)}

    关联(association){双向,单向(unidirectional,aggregation)}

    常用表示关系的组件:

    20190413004631051362.png

    关于绘制类图:

    一些在线或离线的软件都能够完成类图的制作,比如Edraw max, lucid chart等。如果能在相关网站软件找到模板,制作类图更为方便。

    推荐网站https://www.draw.io/,可制作各种各样的diagram,使用很快捷,可保存文件到本地,免费无需登录。之前也经常用来画流程图。

    例子:

    下图为实现interface和aggregation的类图描述。MovablePoint, MovableCircle实现Movable。MovablePoint成为MovableCircle一部分。

    20190413004631213478.png

    如下是一张类图,父类Animal有两个子类dog,cat。d1为子类dog的对象。

    20190413004631423447.png

    以下为对应代码:

    import java.io.*;classGFG {public static voidmain(String[] args)

    {

    dog d1= newdog();

    d1.bark();

    d1.run();

    cat c1= newcat();

    c1.meww();

    }

    }classAnimal {public voidrun()

    {

    String name;

    String colour;

    System.out.println("animal is running");

    }

    }class dog extendsAnimal {public voidbark()

    {

    System.out.println("wooh!wooh! dog is barking");

    }public voidrun()

    {

    System.out.println("dog is running");

    }

    }class cat extendsAnimal {public voidmeww()

    {

    System.out.println("meww! meww!");

    }

    }

    参考资料:

    展开全文
  • java设计模式类图大全

    2016-09-08 15:31:00
    近来在看书实现GoF23个设计模式,自己一点点地用建模工具按照自己理解类图(是比较符合我个人思考理解,个人觉得比通用类图更详细些),碰巧找到了一个挺好用UML建模工具StarUML,也刚好从该软件中发现...
  • Java利器之UML类图详解

    2017-03-01 11:59:15
    最近看一些开源项目的时候,总是看到UML中的类图,一开始自己的做法就是跳过去类图的部分,不过后来又遇到了几次,就决定学习下,不能再选择逃避了,这也是一个即将优秀的程序探索者应该必备的素质。今天把自己学习...
  • 说起绘制UML图的软件,我们常用...ProcessOn网页版的在绘制UML图的时候界面很漂亮,简单明了,但无法将所类图进行正向工程。在尝试了多个软件之后终于发现了一款特别棒的绘制UML图的软件,免费开源软件,并且可...
  • 本文面向于那些软件架构师,设计师和开发人员,他们想使用 IBM® Rational® Software Architect 从 Java™ 源代码来逆向工程生成 UML 类和序列图。 逆向工程经常被用来从已有源代码中以一种抽象模型 UML 格式来...
  • Java设计模式——尚硅谷java设计模式课程学习 上一篇:设计模式七大原则 2、UML类图 UML基本介绍 1)UML–Unified modeling language UML (统一建模语言),是一种软件系统分析和设计语言工具,它用于帮助软件...
  • powerDesigner类图生成JAVA代码

    千次阅读 2015-07-19 09:51:33
    打开powerDesigner 软件,出自己的类图,在各类或接口中添加属性和方法,如果有继承关系存在,子类不会自动生成父类方法,要自己添加.如下图; 2):双击类,在弹出属性面板中进行导出相关设置;  选中”...
  • 通常都会一些类图、时序图、流程图等等UML设计,然后通过uml类图生成代码,这个属于正向工程生成代码,然而在实际开发中,很可能是先完成了代码开发,再来补充一大堆文档,这是就需要通过代码来生成类图,这个就属于...
  • 本次使用的软件是starUML,用它来根据Java代码快速生成类图。 跟着图来就行,注意starUML只支持jdk1.3,对于高版本jdk的新特性可能会出问题,但是生成类图是够了。 点击close 去找到自己对应数据库的...
  • umLet类图工具

    2015-05-05 22:50:55
    简单方便的画类图的小工具 软件需要java解释器以运行.运行时要打开.jar而不是.exe
  • 打开powerDesigner 软件,出自己的类图,在各类或接口中添加属性和方法,如果有继承关系存在,子类不会自动生成父类方法,要自己添加.如下图;2):双击类,在弹出属性面板中进行导出相关设置;选中”生成代码(Generate ...
  • 打开powerDesigner 软件,出自己的类图,在各类或接口中添加属性和方法,如果有继承关系存在,子类不会自动生成父类方法,要自己添加.如下图;2):双击类,在弹出属性面板中进行导出相关设置;选中”生成代码(Generate ...
  • Markdown写出漂亮类图

    万次阅读 2020-01-16 13:25:39
    我们经常使用到UML类图,常用工具软件不是那么好用顺手。有没有想过Markdown简单标记语言也能写出漂亮类图?分享一个Jext开源插件扩展JIRA时画的类图。 ```java @startuml Title "到期工作日天数" 内置...
  • 【简答题】编写一个函数,判断一个整型数是否为素数,若是素数,函数返回 1 ,否则返回 0 。【简答题】民宿 怎样做好个性化服务? (10.0分)【判断题】当项目满足...( )【简答题】简述软件外包基本步骤【简答题】场景假...
  • 学习如何在Rational Rose上制作UML图 熟悉java 开发环境及编程 二实验环境及软件 Java 开发环境下astah软件的使用 三实验内容及原理 1利用软件绘制类图针对类图之间四种关系结合它们各自代码表现分别出泛化...
  • 支持uml要求图也比较全, 下面都可以时序图用例图类图活动图组件图状态图对象图部署图定时图都能,但是画图不是拖拖线就行,画图全靠撸代码, 你要学点他语法才行下面直接撸例子,如下面代...
  • 实验二 绘制UML 图以及java 编程 一实验目的 1学习如何在Rational Rose 上制作UML 图 2熟悉java 开发环境...3针对类图之间四种关系结合它们各自代码表现分别出泛化关 联依赖和聚合UML 图 类图之间关系 a.泛化
  • 实验目的 1学习如何在astah-community上制作UML图 2熟悉Java开发环境及编程 实验环境及软件 在win7环境下的Java和astah-community的安装 实验内容及原理 针对类图的四种关系以及各自的代码出泛化关联依赖和聚合的...
  • 实验目的 1学习如何在astah-community上制作UML图 2熟悉Java开发环境及编程 实验环境及软件 在win7环境下的Java和astah-community的安装 实验内容及原理 针对类图的四种关系以及各自的代码出泛华关联依赖和聚合的...
  • 实验目的 1学习如何在astah-community上制作UML图 2熟悉Java开发环境及编程 实验环境及软件 在win7环境下的Java和astah-community的安装 实验内容及原理 针对类图的四种关系以及各自的代码出泛化关联依赖和聚合的...
  • 实验二 绘制UML 图以及java 编程 实验目的 学习如何在...针对类图之间四种关系结合它们各自代码表现分别出泛化关 联依赖和聚合UML 图 2.补充完成简单工厂实例代码编译并运行 3.作出简单工厂实例UM
  • 一实验目的 学习如何在Rational Rose上制作UML图 熟悉Java开发环境及编程 实验环境及软件 JDK Rational Rose绘制UML图注意JDK系统变量配置 实验内容及原理 针对类图之间四种关系结合它们各自代码表现分别出...
  • 实验二 绘制UML图及java编程 一.实验目的 学习如何在Rational Rose上制作UML图熟悉...针对类图之间四种关系,结合它们各自代码表现,分别出泛化关联依赖和聚合UML图; (2.补充完成简单工厂实例代码,编译并运

空空如也

空空如也

1 2 3 4
收藏数 62
精华内容 24
关键字:

java画类图的软件

java 订阅