UML视图(二)类图

来源:互联网 发布:大连淘宝网店装修 编辑:程序博客网 时间:2024/06/05 02:59

           想在软件工程中使用类图,只需要完成以下的四个方面的内容,即可轻松运用了。

(一)视图的作用

          在说类图之前,先明确一个问题。我们使用UML中的各种视图的目的为了形象、生动、清晰、明确地表述所需建设的系统(以下称“目标系统”)的业务,通过这些视图的展示,我们能从不同的侧面对目标系统进行认识和描述,使得在目标系统的建设过程中,各相关人员能更加准确地交流和取得共识,共同完成一个结构宽松、逻辑严谨、安全稳定的能很好应对变化的目标系统。

(二)类图的概念及分类

          类图:用于展示系统中的类及其相互之间的关系。

          用UML对系统进行建模的过程中,使用了重要的面向对象的思想。面向对象的最重要基本元素之一就是对象,而类则是对对象某一方面特征的归纳和抽象。这样,避免了系统中的相同对象的重复出现和表示所带来的纷繁复杂,简化了结构,使得业务需求变得更加简练、清晰。

          类图,是现实世界问题领域的抽象对象的结构化、概念化、逻辑化描述。由浅入深、逐步细化,在软件工程的不同阶段使用到的类图各有不同,分别为概念层类图、说明层类图、实现层类图。

          概念层类图:业务建模阶段,与现实世界的问题领域及其中的实物有着明显的对应关系,在建立模型时所画类图常常采用实体图来表示。这样保证在需求分析人员与企业相关负责人交流了时更加方便,避开了艰涩专业的语言。

          说明层类图:概念模型阶段,描述软件的接口。搭建现实世界与最终实现之间的一座桥梁。几乎采用现实世界的语言,以保证从现实世界到代码实现的过渡。 

          实现层类图:设计阶段,从实现的角度定义类及其实现,揭示了软件实现体的构成情况。

(三)类的获取

         巧妇难为无米之炊。想画类图,那么最先就是准备类图的构件——类,找到了类就好办了,只需要根据它们之间的关系连接起来就可以了。

         那么类怎么来呢?画图的时候直接写出类是件不容易的事,这样容易遗漏或者重复。遗漏好说,就是漏掉了本该有的类,一般很少发生;重复又是怎么回事呢?重复是因为类来自与对对象的抽象,如果对同类对象的抽象产生的名称不一样,就产生了两个不同的类,徒生赘余。

         如果我们在画类图前先将目标系统所涉及到的所有对象先进行列举、分类(对象列举时对照业务需求进行一般是不会遗漏的),再对各类进行分别抽象,那么就不会出现遗漏和重复的情况了。

(四)分清关系

        上面提到找到了类,根据它们之间的关系连接起来就可以了,说起来很轻松的事,做起来也不能,不信你试试。

类之间的关系分为关联、依赖、泛化和实现。

        关联又可以细分为普通关联、聚合和组合。

      (1)关联关系

        ①普通关联是用一条直线表示的,如A——B;描述在一段时间内A“知道”B的存在。如果带箭头,则表示这种普通关联是单向的。

        ②聚合关系是用一条带空心菱形箭头的直线表示的,如A——B(A聚合到B上,或者说BA组成)。

表示整体和部分的关系,为弱依赖,即使整体不存在了,部分依然可以存在。例部门撤销了,人员不会消失。

        ③组合关系是用一条带实心菱形箭头的直线表示的,如A——BA组合成为B,或者说BA构成)。

表示整体与部分的关系,为强依赖,如果整体不存在了,组成部分将不复存在。

        (2)依赖关系是用一条带箭头的虚线表示的,如AB(A依赖于B)。依赖是更进一步的关联关系,联系更加紧密,如果B的改变会导致A随之变化,那么就称AB

        (3)泛化关系是用一条带空心箭头的直接表示的,如A——B (A继承自B)。箭头指向的是父类,表示A对B的继承,A为子类,B为父类。

        (4)实现关系:是用一条带空心情业的血统在示的 如A------B(A实现B)。如果类A所表示的是更具体的类B,则说类A实现B即(A------B),例“人类”是一个类,“学生类”也是一个类,那么我们就可以说“学生类”实现“人类”,即(学生类------人类)。

              完成一个软件系统就像建造房子,有了建筑的设计图纸(业务需求)、有了砖瓦(类)、有了钢筋混凝土(关系),召集工人造房就可以开始了。

 

下面是机房收费系统的简单类图,由于业务简单,关系不能完全展示。

 

 

 

 

0 0
原创粉丝点击