UML-Class Diagram and Object Diagram

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chenhaiming123/article/details/81332312

一、视频内容导图
看完视频后,我觉得理清楚思路的好方法就是画画,画画思维导图的,使用各种可视化工具来让自己的想法表达出来。

类图
二、正文
(一)类图的概念
类图(Class Diagram)是描述类、接口、协作以及它们之间关系的图,用来显示系统中各个类的静态结构。
(二)类图的用途
它是所有面向对象建模方法的核心部分,描述了系统的静态结构。通常用下列 3 种方式中的一种来使用类图:

  1. 对系统的词汇建模;
  2. 对简单协作建模;
  3. 对逻辑数据库模式建模。
    (三)类的构成
    1.类的构成-- 类classes
    类是面向对象系统组织结构的核心,是对具有相同属性、操作、关系和语义的对象的描述。一个类可以实现一个或者多个接口,且所有的都可以实现接口中的操作。类定义了一组有着状态和行为的对象。其中,属性和关联用来描述状态。
    在 UML 中,类用划分为 3 个部分(名称部分、属性部分、操作部分)的矩形表示。其中,顶端的部分存放类的名称,中间的部分存放类的属性( Attribute)、属性的类型( AttributeType)及其初始值(InitialValue),底部的部分存放类的操作(Operation)、操作的参数表(arg:ArgumentType) 和返回类型(RetumType)。

2.类的构成 --接口interfaces
接口是在没有给出对象的实现和状态的情况下对对象行为的描述。
接口仅作为一些抽象操作来描述,也就是说,多个操作签名一起指定一个行为。同时,一个类通过实现接口可以支持该行为。在程序运行的时候,其他对象可以只依赖于此接口,而不需要知道该类的其他任何信息。
在 UML 中,接口是用一个带有名称的小圆圈表示的,并且通过一条实线(实际上多重性总是为一对一的关联)与它的模型元素相连接。
当一个接口是在某个特定类中实现时,使用该接口的类通过一个依赖关系(一条带箭头的虚线)与该接口相连接。这时,依赖类仅依赖于指定接口中的那些操作,而不依赖于接口实现类中的其他部分。如果是依赖于这个类,那么依赖关系的箭头应该指向表示该类的类符号上。依赖类可以调用接口中声明的操作。为了显示接口中的操作,接口被指定为一个使用普通类矩形符号的,带有构造型<>的类。

3.类的构成–常用4种关系
类之间的关系最常用的有 4 种,分别是表示类之间使用关系的依赖(Dependency)关系;表示类之间一般和特殊关系的泛化(Generalization)关系;表示对象之间结构关系的关联(Association)关系;表示类中规格说明和实现之间关系的实现(Realization)关系。除了关联的基本形式之外,还有 6 种应用于关联的修饰,分别是名称、角色、多重性、聚合、组合和导航性。
(四)绘制类图的步骤
动手开始画的时候,怎不知道从何开始。先定下个绘制类图的步骤吧,掌握全局很重要。
1.需求描述。
2.发现类。
3.筛选类,得到候选类。
4.关联分析,建模;多重分析,再建模。
5.限定与修改
(五)类图和对象图的认识
对象图表示在某一时刻一组对象以及他们之间关系的图。
如果说类图代表了一类事物,那么对象图就代表着某个具体的事物。
这里写图片描述
这里写图片描述
(六)收费系统画类图实例

【需求描述】
机房收费系统,我们用Visual Basic实现了第一遍了,对其整个系统也是了如指掌。下面就用文字来描述一遍:收费系统中,可供三类用户使用,分别为一般用户、操作员和管理员。其中,这三类用户最大的区别就在于权限。权限不同,各类用户所能执行的操作也就不同。
1.一般用户的各项工作,分别为:帮助学生查询余额、上机记录、充值记录、上机状态以及修改密码。在实现查询功能之时,很简单,都是将卡号输入,系统就会自动将结果按照不同方式显现。
2.操作员,其需要做的是:注册、充值、退卡,查询收取金额、返还金额数、学生上机统计信息、工作记录,以及学生基本信息维护。通过填写一系列信息,完成某个同学的卡号注册;通过卡号,可以充值或是退卡;通过卡号、日期、金额等一些选项,系统实现组合查询功能。另外,其也继承了一般用户所有的各项工作权限。
3.管理员,他要做的工作很简单,包括最初的基本数据设定、添加或删除用户、结账、查看日/周结账单以及查看正在值班老师。为了方便上机收费的查询情况,管理员可以通过结账单对收费进行打印报表。除此之外,也同时继承了一般用户与操作员的各项工作权限。
【筛选类】
“系统”是指要开发的系统本身,无须对其建模。
“用户”是指系统所要面向的人的统称,其中他们都具有用户名、用户ID等基本信息,所以可对其进行建模。
“一般用户”、“操作员”、“管理员”,很明显,都是此系统重要的用户类的实例化对象。
“学生”,同样也是不可缺少的一类,其包含姓名、性别、学号等各种基本属性。
“卡”,这也算是一大类吧,一张卡,包含的信息还是很多的,卡号、余额、各种记录等。
“各项金额数”、“各项工作记录”都是查询的结果,可能是一个数字,也可能是一些信息集合,都无须对其建模。
【候选类或对象】
综上分析,机房收费系统中所得出的类或实例化后的对象共包括六个,分别为:用户、一般用户、操作员、管理员、学生和卡。
【职责分析,详细类图】
1.管理员:此次系统权限最大的使用者,其主要的成员方法是:基本数据设定、编辑用户、结账、查看账单及正在值班人员。
2.操作员:主要是对卡进行各种操作的人员。其主要职责是注册、充值、办理退卡;其中也可执行各种查询功能,包含收取金额、金额返还、上机统计信息、学生基本信息的维护和操作员的工作记录。
3.一般用户:其主要是实现一些关于帮助学生查询或修改各项卡号信息,如查询余额、上机记录、充值记录、上机状态以及修改密码的操作。
4.卡类:一张基本的上机卡,包含的属性有办卡人用户名、用户号以及学生基本信息。
5.学生类:一个学生一张卡,包含各种基本的信息是:卡号、学号、学生姓名、性别、年级、专业、班级等。

【分析与建模】

这里写图片描述
在这里插入图片描述
这里写图片描述
(七)总结

  1. 我们 在设计阶段实现UML类图,这是我们当系统设计师就要熟悉类图绘制,其作用是描述系统的架构结构、指导程序员编码。它包括系统中所有有必要指明的实体类、控制类、界面类及与具体平台有关的所有技术性信息。
    2.假如我们使用的是.NET平台分层架构,并使用ASP.NETMVC,则设计师应该在实现UML类图中绘制出所有的实体类、数据访问类、业务逻辑类和界面类,界面类又分为视图类、控制器类等等,还要表示出IoC和Aop等信息,并明确指出各个类的属性、方法,不能有遗漏,因为最终程序员实现程序的依据就是实现UML类图。
    3.软件分析与设计是编码前的两个阶段,其中分析仅与业务有关,而与技术无关。设计以分析为基础,主要与具体技术有关。
    4.类图是所有面向对象建模方法的核心部分,掌握类图吧,更优秀的系统设计师非你莫属!

猜你喜欢

转载自blog.csdn.net/chenhaiming123/article/details/81332312