UML,类图

类图是所有面向对象建模方法的核心部分,描述了系统的静态结构。

一.类图概述

1.组成部分 : 类、类间关系

【类】 具有相同属性和相同方法的对象的集合。

【类间关系】 表示了两个类之间的关系。

2.图符

3.关系

类间的关系,在前面的博客中有详细的梳理,这里也就不再赘述了。请看《UML,理理关系》

二.如何绘制类图

理论知识都清楚了,可要动手开始画的时候,怎不知道从何开始。于是,还是先定下个绘制类图的步骤吧,掌握全局很重要。

1.需求描述。

2.发现类。

3.筛选类,得到候选类。

4.关联分析,建模;多重分析,再建模。

5.限定与修改

三.机房收费系统画类图前的分析

【需求描述】

机房收费系统,我们用VB实现了第一遍了,对其整个系统也是了如指掌。下面就用文字来描述一遍:

系统中,可供三类用户使用,分别为一般用户、操作员和管理员。其中,这三类用户最大的区别就在于权限。权限不同,各类用户所能执行的操作也就不同。

先了解权限最低一级的用户即一般用户的各项工作,分别为:帮助学生查询余额、上机记录、充值记录、上机状态以及修改密码。在实现查询功能之时,很简单,都是将卡号输入,系统就会自动将结果按照不同方式显现。可能是卡号不存在,也可能是显示正常的查询结果。

再者是操作员,其需要做的是:注册、充值、退卡,查询收取金额、返还金额数、学生上机统计信息、工作记录,以及学生基本信息维护。通过填写一系列信息,完成某个同学的卡号注册;通过卡号,可以充值或是退卡;通过卡号、日期、金额等一些选项,系统实现组合查询功能。另外,其也继承了一般用户所有的各项工作权限。

最后是管理员这一类,他要做的工作很简单,包括最初的基本数据设定、添加或删除用户、结账、查看日/周结账单以及查看正在值班老师。为了方便上机收费的查询情况,管理员可以通过结账单对收费进行打印报表。除此之外,也同时继承了一般用户与操作员的各项工作权限。

【筛选类】

“系统”是指要开发的系统本身,无须对其建模。

“用户”是指系统所要面向的人的统称,其中他们都具有用户名、用户ID等基本信息,所以可对其进行建模。

“一般用户”、“操作员”、“管理员”,很明显,都是此系统重要的用户类的实例化对象。

“学生”,同样也是不可缺少的一类,其包含姓名、性别、学号等各种基本属性。

“卡”,这也算是一大类吧,一张卡,包含的信息还是很多的,卡号、余额、各种记录等。

“各项金额数”、“各项工作记录”都是查询的结果,可能是一个数字,也可能是一些信息集合,都无须对其建模。

【候选类或对象】

综上分析,机房收费系统中所得出的类或实例化后的对象共包括六个,分别为:用户、一般用户、操作员、管理员、学生和卡。

【分析与建模】

【职责分析,详细类图】

用户类:为此次系统中面向的终端人员,是对此系统进行操作的人员的统称。其属性包含:用户名称和用户ID。

管理员:此次系统权限最大的使用者,其主要的成员方法是:基本数据设定、编辑用户、结账、查看账单及正在值班人员。

操作员:主要是对卡进行各种操作的人员。其主要职责是注册、充值、办理退卡;其中也可执行各种查询功能,包含收取金额、金额返还、上机统计信息、学生基本信息的维护和操作员的工作记录。

一般用户:其主要是实现一些关于帮助学生查询或修改各项卡号信息,如查询余额、上机记录、充值记录、上机状态以及修改密码的操作。

卡类:一张基本的上机卡,包含的属性有办卡人用户名、用户号以及学生基本信息。

学生类:一个学生一张卡,包含各种基本的信息是:卡号、学号、学生姓名、性别、年级、专业、班级等。

第一次分析机房收费系统的类图,一定还有很多地方分析有错误或没有周全考虑的地方。不过通过这一次的学习,自己还是又对类图有了进一步更深的了解。学习是需要反复的,以后一定还需要回到这里,重新画出一张更好的UML类图的。

时间: 2024-11-10 00:11:48

UML,类图的相关文章

PHP与UML类图: PHP and UML Class Diagrams

这篇短文写的不错,用PHP来解释UML(或者反过来说)可以说是一个创新了,通过这篇文章,我也发现了一个好站: www.phppatterns.com .各UML术语的翻译来源于我正在看的<UML用户指南(The Unified Modeling Language User Guide)>一书. UML(Unified Modeling Language, 统一建模语言)是一种通过图的方式表示软件的机制.本质上它允许我们通过画图来设计我们的程序,并且如果有相应的工具,我们甚至可以从图来直接产生代

使用UML类图设计Java应用程序(二)

在第一部分中,我们实现了5个类.在本部分中,我们接着说明如何利用UML类图来设计余下的各个类.为减少篇幅,本部分着重讲解UML类图及应用,对Java实现代码不再详细描述. 六.CGPoint类 CGPoint类说明了如何利用非抽象类扩展抽象类.CGPoint类是CGObject的子类,CGPoint类扩展了 CGObject类,CGPoint类没有再它所继承的变量中增加变量,它所声明的方法只有构造函数和要求它实现的抽象方法.其类图如下: Java实现代码为: 七.CGBox类 CGBox类也扩展

使用UML类图设计Java应用程序(一)

UML已成为面向对象设计的标准图形化工具,在UML定义的各种图中,本文只涉及类图.Java应用程序由许多类所构成,类图的设计与实现,是Java实现面向对象应用程序的核心.本文通过一个具体的应用程序的设计与实现过程,详细说明了利用UML类图设计Java应用程序,使得开发过程标准化.可视化,代码编程简单化. 在类图中,类被描述为带有三层的盒子. 顶层为类名,一般用加粗字体表示.如果类是抽象的,其名称用斜体表示:如果类是接口,则在类名上方标注<<interface>>. 中间层包含类的属

UML类图几种关系的总结

在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency) 泛化(Generalization) [泛化关系]:是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的所有特征和行为.例如:老虎是动物的一种,即有老虎的特性也有动物的共性. [箭头指向]:带三角箭头的实线,箭头指向父类 实现(Realization

[好文要转要收藏] UML类图几种关系的总结

在UML类图中,常见的有以下几种关系:泛化(Generalization),  实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency) 1.泛化(Generalization) [泛化关系]:是一种继承关系,它指定了子类如何特化父类的所有特征和行为例如:老虎是动物的一种. [箭头指向]:带三角箭头的实线,箭头指向父类 2.实现(Realization) [实现关系]:是一种类与接口的关系,表示类

UML类图简介

概述 设计模式中常常使用UML来表示类与类,类与接口之间的关系,UML类图是设计模式入门必备的技能,感觉各种关系比较多,这里做一下总结. 类与接口的表示 类与接口通常是一个矩形框表示,一般分为3层,第一层显示类的名称,如果是抽象类则类名用斜体表示.第二层代表类的特性,通常是字段和属性,第三层是类的操作,通常表现为方法或者行为,其中+表示public,-表示private,#表示protect  常用关系 继承  继承关系用空心三角形+实线来表示,在Java中体现为extends关键字  实现接口

UML类图各符号含义

UML类图各符号含义   类图基本符号可拆分为虚线,箭头,实线,空心右三角,实心右三角,空心菱形和实心菱形.由这些基本的图形进行组合构成了类图的基本符号.这里要注意这几个符号的顺序,代表了类与类之间关系的耦合程度.越向右耦合度越高. 其中虚线+箭头是表示即依赖的关系,实线+箭头表示关联的关系,虚线+空心右三角表示implements,实线+空心右三角表示的是泛化,即类的继承关系.实线+空心菱形表示的是聚合的关系,实线+实心菱形则表示组合的关系. 另外一点是在看类图的时候要注意.类图的思想其实也还

intellij idea 高级用法之:集成JIRA、UML类图插件、集成SSH、集成FTP、Database管理(转)

  UML:  Ctrl + Alt + Shift + U 之前写过一篇IntelliJ IDEA 13试用手记 ,idea还有很多高大上的功能,易用性几乎能与vs.net媲美,反正我自从改用idea后,再也没开过eclipse,今天来看几个高级功能: 一.与JIRA集成 jira是一个广泛使用的项目与事务跟踪工具,被广泛应用于缺陷跟踪.客户服务.需求收集.流程审批.任务跟踪.项目跟踪和敏捷管理等工作领域.idea可以很好的跟它集成,参考下图: File -> Settings ->Task

UML类图

什么是UML?UML是一种用于创建程序模型的可视化语言.UML有多重功能不同的图.通过使用UML,可以让复杂的系统变的简单且容易理解.因为系统常常都是让人难人理解,并且系统之内的信息处理也是相当复杂,而UML提供了不同的图来表示不同类型的信息. 什么是类图 UML图中最最基本的是类图.它对类做描述,并表示类之间的关系. 类之间的关系包括: 类A 是    类B :is-a的关系 类A 包含 类B : has-a的关系 类A 使用 类B : has-a的关系 那么,对于一个类来说,主要表现三方面的

java-myEclipse生成uml类图失败,报Unhandled event loop exception

问题描述 myEclipse生成uml类图失败,报Unhandled event loop exception 在用单个包或类可以正常生成uml类图,在用测试的小工程也可行,但是用在公司的工程上就失败了,不知道是不是工程太大,下面是log里的记录: !ENTRY org.eclipse.ui 4 0 2015-05-07 16:17:57.118 !MESSAGE Unhandled event loop exception !STACK 0 org.eclipse.swt.SWTError: