Java基础__慕课网学习(25):Java第二季4.7 UML与PowerDesigner在Java设计中的应用,找了一篇比较好的博客,转载在这里

面向对象模型

面向对象模型是利用UML(统一建模语言)的图形来描述系统结构的模型,它从不同角度实现系统的工作状态。这些图形有助于用户,管理人员,系统分析人员,开发人员,测试人员和其他人员之间进行信息交流。这里主要介绍用例图,序列图和类图。

  1.面向对象模型OOM

面向对象模型是利用UML的图形描述系统结构的模型,可以利用PowerDesigner的面向对象模型进行创建。PowerDesigner支持UML的下列图形。

  • 用例图(User Case Diagram):通常用来定义系统的高层次草图,它从用户角度描述了应用的系统功能,指出了各个功能的外部操作者。
  • 序列图(Sequence Diagram):描述系统如何实际完成在User Case图中定义的功能。可以画出对象(类的实例)之间交互时产生的时序关系。
  • 类图(Class Diagram):描述类与类之间的静态关系。其中包括一系列的包,类,接口和它们之间的关系。类图是定义其他图的基础。

  2.创建面向对象模型

(1)选择File-New Model命令或者单击工具栏中的New Model图标,弹出New Model窗口。

(2)在左侧是Model type栏中选择Object-Oriented Model(面向对象模型)选项,在右侧输入模型名称,语言,如图所示。

(3)单击“确定”按钮,进入OOM设计工作区。在该工作区中可以定义OOM的属性和操作,也可以设计各种UML的图形。

(4)选择Model-Model Properties命令,显示如图8-2所示OOM的Model Properties窗口。

(5)定义完毕后单击“确定”按钮。然后选择File-Save As命令,以PubInfoSys.OOM这个名称将所定义的模型存盘。

(6)设置模型的选择。选择Tools-Model Options命令,打开Model Options(模型选项)窗口。如图所示。

(7)单击Set As Default按钮,设置为默认选项,然后单击OK按钮。

 3.设计用例图

3.1 用例图用于系统需求分析阶段,进行系统需求和功能设计,它包含执行者和用例两个要素。执行者指用户在系统中的角色,用例是用户与计算机的一次交互。用例图主要用来描述每个用例将有哪些执行者进行参与。

  • 定义用例:用例是外部可见的一个系统功能单元,这些功能由系统单元提供,通过一系列单元与一个或多个参与者之间交换的消息表达。
  • 定义角色:角色描述了与系统相互作用的一组用户,最明显的角色是系统中的人,但也可能是系统本身。
  • 定义关联:用例除了与其参与者发生关联外,还可以参与系统中的多个关系,允许定义的关联有关联,扩展,用例泛化,包括。

3.2定义用例图

定义用例图如下:

(1)单击“用例”图标定义4个用例,如图8-4所示。

图8-4

(2)选中第一个用例双击,打开Use Case Properties(用例属性)窗口,将Name属性修改为“查找”,将Code属性修改为Search,如图8-5所示。

图8-5

(3)利用同样的方法,修改其他3个用例属性如图8-6所示。

图8-6

(4)单击“执行者”图标定义3个执行者,如图8-7所示。

图8-7

(5)选中第一个执行者并双击,打开Actor Properties窗口,将Name属性修改为“顾客”,将Code属性修改为Buyer,如图8-8所示。

图8-8

(6)利用同样的方法,修改其他两个执行者的属性。

(7)定义执行者和用例之间的关系。单击“关系”图标,再单击执行者“顾客”并拖动鼠标至用例“查找”,释放鼠标,这时在执行者和用例之间建立了关系。双击该关系,打开Association Properties窗口,将Name属性修改为“查询商品”,将Code属性修改为SearchProduct。

(8)按照步骤(7)的方法,在其他执行者和用例之间建立关系。

(9)定义完成后的用例图如图8-9所示。

图8-9

 4设计序列图

4.1序列图(Sequence Diagram)是用来描述系统如何实现完成在Use Case图中定义的功能。可以画出对象之间的交互时产生的时序关系。它一方面描述了一次交互,交互中涉及类图中的类,另一方面细化了用例的描述。

序列图有角色(Actor),对象(Object),消息(Message)和激活期(Activation)几个要素如果8-10所示。

图8-10

消息类型有:

  • Message:消息
  • Slef Message 递归消息
  • Call Message带有激活期的消息
  • Self Call Message带有激活期的递归消息
  • Return Message返回消息
  • Self Return Message递归返回消息

4.2创建序列图

(1)选择File-New Model命令,打开New Model窗口。在窗口左侧的Mode type栏选择Object-Oriented Model选项,在右侧的First diagram下拉列表框中选择Sequence Diagram选项,在Object language下拉框中选择Java选项,如图8-11所示。

图8-11

(2)选择完毕后单击“确定”按钮,进入PowerDesigner设计工作区。

(3)单击Palette工具栏的Object图标,在右边空白工作区单击鼠标,出现对象符号如图8-12所示。

图8-12

(4)在设计区空白区域右击,鼠标指针变为箭头形状,双击对象符号,弹出Actor Properties窗口,在Name文本框中输入"呼叫方",在Code文本框中输入“Caller”,然后单击“确定”按钮。

(5)重复步骤(3)(4),添加其他两个对象,Name分别为“交换机”和“被叫方”,Code分别为Exchange和Receiver。

(6)单击Palette工具栏中的Message图标,在“呼叫方”对象下方的虚线处单击,拖动鼠标至“交换机”对象下方的虚线释放鼠标,即可增加一个消息。

(7)在设计区空白区域右击,鼠标指针变成箭头形状,双击对象符号,弹出“消息属性”窗口,在Name文本框中输入“拿起话筒”,在Code文本框中输入“Lift Reciever”,然后单击“确定”按钮。

(8)重复(6)(7),添加其他消息。

(9)最终的序列图如图8-13所示。

图8-13

(10)选择File-Save命令,保存新建的面向对象模型

 5设计类图

类图是用一种抽象的方法来描述对象及对象之间的关系,并不能描述对象的所有细节。

5.1创建Class(类)

(1)选择File-New Model命令,打开New Model窗口。在窗口左侧的Mode type栏选择Object-Oriented Model选项,在右侧的First diagram下拉列表框中选择Class Diagram选项,在Object language下拉框中选择Java选项,如图8-14所示。

图8-14

(2)在类图工作区中单击Palette工具栏中的Class图标,创建一个类,双击类图的图形符号,打开Class Properties窗口。

(3)选择Detail选项卡,可以定义类的更多属性。

(4)选择Attributes选项卡,可以为类增加属性。单击Add a Row图标,增加属性,也可以单击Add Attributes图标打开Selection窗口列表模型中其他类的属性,选择需要的属性,然后单击“OK”按钮即可。

(5)选择Operations选项卡,单击Add Operation图标,打开Selection窗口,从中可以选择该模型中其他类包含的操作。选择完毕后,单击OK按钮,所选的操作即可增加到当前类上。

(6)选择Inner Classifies选项卡,可以为该类定义内部类。内部类是PowerDesigner的一个分类器,在UML中分类器是一个包含有属性和操作等的模型元素。定义完毕后可以通过Preview选项卡观察当前类或接口所包含的内部类代码,如图8-15所示。

图8-15

(7)除了以上属性外,还可以定义Associations,Identifies等属性。属性定义完毕后创建的内容如图8-16所示。

图8-16

5.2创建联系

在类图中,联系有关联,依赖,泛化和实现联系。

  6.生成Java的源代码

如图8-17所示类图,生成Java源代码。

图8-17

(1)在类图中选择Language-Generate Java Code命令,打开Generation窗口,显示模型中包含的类。

(2)在Selection选项卡的Classes选项卡中选择类,在Directory栏中输入Java源代码的目标路径。

(3)在Options选项卡中定义Java生成选项。

(4)在Tasks选项卡中定义Java生成任务选项,如图8-18所示。

图8-18

(5)单击“确定”按钮,开始生成Java源文件,生成完成显示Generated Files窗口。

(6)选择一个源文件,单击Edit按钮,将在文本编辑器中显示该文件的内容。如图8-19所示。

图8-19

  7.根据Java代码生成类图

(1)选择File-Reverse Engineer-Object Language弹出如图8-20所示。

图8-20

(2)在Object language栏选择Java,单击确定进入如下界面,如图8-21所示。

图8-21

(3)点击Add,添加Java文件,再单击确定即可生成相应的Java类图(在Reverse engineer栏中还可以选择Java字节码文件或文件目录),如图8-23所示。

图8-23

时间: 2024-10-10 20:29:45

Java基础__慕课网学习(25):Java第二季4.7 UML与PowerDesigner在Java设计中的应用,找了一篇比较好的博客,转载在这里的相关文章

Java基础__慕课网学习(24):深入理解抽象类与接口(转)

深入理解Java的接口和抽象类 对于面向对象编程来说,抽象是它的一大特征之一.在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类.这两者有太多相似的地方,又有太多不同的地方.很多人在初学的时候会以为它们可以随意互换使用,但是实际则不然.今天我们就一起来学习一下Java中的接口和抽象类.下面是本文的目录大纲: 一.抽象类 二.接口 三.抽象类和接口的区别 一.抽象类 在了解抽象类之前,先来了解一下抽象方法.抽象方法是一种特殊的方法:它只有声明,而没有具体的实现.抽象方法的声明格式为:

Java基础__慕课网学习(22):Java中的instanceof关键字

instanceof是Java的一个二元操作符,和==,>,<是同一类东东.由于它是由字母组成的,所以也是Java的保留关键字.它的作用是测试它左边的对象是否是它右边的类的实例,返回boolean类型的数据.举个例子: String s = "I AM an Object!"; boolean isObject = s instanceof Object; 我们声明了一个String对象引用,指向一个String对象,然后用instancof来测试它所指向的对象是否是Obj

Java基础__慕课网学习(26):程序中判断某段程序执行时间的方法

精确度为毫秒ms:    1 //伪代码 2 3 long startTime=System.currentTimeMillis(); //获取开始时间 4 5 doSomeThing(); //测试的代码段 6 7 long endTime=System.currentTimeMillis(); //获取结束时间 8 9 System.out.println("程序运行时间: "+(end-start)+"ms"); 10 11 //伪代码 12 13 long

Android开发之JAVA基础__开发环境搭建

一.开发环境搭建 由于ANDROID的应用程序是使用JAVA语言编写的,所以,开发ANDROID的应用程序时,需要计算机具备开发.运行JAVA应用程序的条件.JAVA语言开发的应用程序需要:JDK(Java Development Kit),通常,JDK包含JRE(Java Runtime Envrioment).JDK是JAVA开发工具包,如果需要开发JAVA语言的程序,则计算机上必须安装和配置JDK.JRE就JAVA运行时系统,它是运行JAVA语言开发的程序的支撑.JDK是免费软件,可以直接

黑马程序员——JAVA基础-I/O流学习笔记(一)

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 第一次写博文,内心无比激动,成长在此开始! 最近一直在自学java基础,看到I/O流这章了,先写下对I/O流的了解吧! 一.I/O流简介 I/O是实现java编程输入和输出的基础,可以方便的将数据进行输入/输出操作.java把不同的输入/输出源(硬盘.文件.网络连接等)抽象的描述成“流”,由于流的存在,实现了不同输入/输出源之间的交换数据. java中关于流的操作的类都在java.io包中.

Java基础知识二次学习--第四章 异常

第四章 异常处理 时间:2017年4月26日11:16:39~2017年4月26日11:28:58 章节:04章_01节 04章_02节 视频长度:20:46+01:16 内容:异常的概念 心得: Java异常是JAVA提供的用于处理程序中错误的一种机制 实在运行的过程中发生的一些异常事件(比如除0溢出,数组越界,要读取的文件不存在) 设计良好的程序应该在异常发生时提供处理这些错误的方法,使得程序不会因为异常的发生而阻断或产生不可预见的结果 JAVA程序的执行过程中 如果出现异常事件,可以生成异

JavaScript进阶--慕课网学习笔记

                     JAVASCRIPT-进阶篇 给变量取个名字(变量命名) 变量名字可以任意取,只不过取名字要遵循一些规则: 1.必须以字母.下划线或美元符号开头,后面可以跟字母.下划线.美元符号和数字.如下: 正确: mysum _mychar $numa1 错误: 6num  //开头不能用数字 %sum //开头不能用除(_ $)外特殊符号,如(%  + /等) sum+num //开头中间不能使用除(_ $)外特殊符号,如(%  + /等) 2.变量名区分大小写,

JavaScript入门--慕课网学习笔记

 JAVASCRIPT-(慕课网)入门篇 我们来看看如何写入JS代码?你只需一步操作,使用<script>标签在HTML网页中插入JavaScript代码.注意, <script>标签要成对出现,并把JavaScript代码写在<script></script>之间. <script type="text/javascript">表示在<script></script>之间的是文本类型(text),ja

慕课网学习笔记02

如何利用CSS进行网页布局 内容来自慕课网 浮动(float)和 绝对定位(position:absolute)可以让元素脱离文档流. 清除浮动可以理解为打破横向排列. 清除浮动的关键字是clear,官方定义如下: 语法: clear : none | left | right | both 取值: none : 默认值.允许两边都可以有浮动对象 left : 不允许左边有浮动对象 right : 不允许右边有浮动对象 both : 不允许有浮动对象 CSS浮动及清除浮动通俗讲解 网页布局基础