快好知 kuaihz订阅观点

 

产品经理必学UML:类图

本篇文章主要介绍了UML静态视图中的类图,包括类图的概念、用途及相关元素,供大家一起参考和学习。

UML(Unified Modeling Language)又称统一建模语言或标准建模语言,可以看做用于系统设计阶段给开发做参考的一种方式,其中很多图需要用到面向对象程序的思维。

上图为产品经理经常用到的UML图,包括静态视图(类图)和动态视图(用例图、状态图、顺序图、活动图),其中静态视图主要用来分析业务概念,描述静态场景;动态视图描述业务行为,分析动态场景。

本文主要介绍类图。

一、概念

类图(Class Diagrame)是描述类、接口、协作以及它们之间关系的图,用来显示系统中各个类的静态结构。

类图包含7个元素:类、接口、协作、依赖关系、泛化关系、实现关系以及关联关系

二、用途

对系统的词汇建模(建立抽象系统词汇,如班级、学生);

对简单协作建模(将系统词汇中是事物协同工作的方式可视化和详述,如班级和学生的关系表示);

对逻辑数据库模式建模。

三、类图元素

在类图中,类用矩形来表示,分为3个部分:名称部分(Name)、属性部分(Attribute)和操作部分(Operation,也可称作方法)。

1. 类名称(ClassName)

类的名称是一个文本串,分为简单名称和路径名称。简单名(single name)即单独的名称不含冒号;路径名(path name)即用类所在的包的名称作为前缀。

简单名、路径名

2. 属性(Attribute)

描述类在软件系统中代表的事物所具备的特性。UML中类属性的语法: [可见性] 属性名 [:类型] [=初始值] [{属性字符串}],

如【-姓名: string】,其中[]中的部分是可选的。

(1) 可见性

包括共有(Public)、私有(Private)和受保护(Protected)3种。

共有类型可以被外部查看和使用,用“+”表示;私有类型即不可以从其他类中访问该属性,用“-”表示;

受保护类型常与泛化和特化一起使用,用“#”表示。如果没有符号,表示没有定义该属性的可见性

(2) 属性

由描述所属类的特性的名词或名词短语组成。按约定,单字属性名小写,多个单词的话需要合并,且除第一个单词之外的其余单词首字母大写,比如className。当然,若为中文就不必如此。

(3) 类型

典型的属性类型有:整数(int)、布尔型、实型和枚举类型。当一个类的属性被完整定义后,任何一个对象的状态都由这些属性的特定值所决定。

(4) 初始值

保证系统的完整性;为用户提供易用性。

(5) 属性字符串

关于属性的其他信息。

3. 操作(Operation)

类的操作是对类的对象所能做的事务的抽象,相当于服务的实现。UML中类操作的语法:[可见性] 操作名 [ (参数表)] [: 返回类型] [{属性字符串}],如【+查询( ): 歌曲】,其中[]中的部分是可选的。

(1) 可见性

包括共有(Public)、私有(Private)、受保护(Proteted)和包内公有(Package)4种。

其中公有类型即只要调用对象能访问操作所在的包,就可调用该操作,用“+”表示;私有类型即只有属于同一个类的对象才可以调用,用“-”表示;

受保护类型即只有子类的对象才可以调动父类,用“#”表示;

包内公有类型即只有在同一个包里的对象才可以调用,用“~”表示。

(2) 操作名

描述所属类的行为的动词或动词短语。约定同属性名。

(3) 参数表

指一些按顺序排列的属性定义了操作的输入。定义方式采取“名称:类型”,多个参数用逗号隔开。

(4) 返回类型

绝大部分编程语言只支持一个返回值,即返回类型至多一个。

4. 接口(Interface)

接口是指类或组件所提供的、可以完成特定功能的一组操作的集合。接口描述了类或组件的对外的、可见的动作,通常一个类实现一个或多个接口。

定义看起来比较枯燥,通俗点说接口就像螺丝和螺帽的关系,是为类制定了一种规范,是类与类之间的一种约束和协定。

对于一些小程序,一般不需要接口,因为功能的改动对整体的影响不大;但对于大的程序,一旦用户需求对功能进行变动,而功能之间的耦合度高的话就会对整个程序造成影响,而如果使用接口的话,就能在使用之前就想好它要实现的全部功能,即功能的封装。之后需求变化只需要重新写实现类,同样其他人只需要调用接口,不需要知道类的消息。

5. 关系(Ralationship)

(1) 依赖(Dependency)关系

表示某一类元以某种形式依赖于其他类元,它表现了这样一种场景,如下图,对于一个元素(提供者)的某些更改会影响或提供消息给其他元素(客户),即客户以某种形式依赖于提供者。

(2) 泛化(Generalization)关系

表示一种存在于一般元素和特殊元素之间的分级关系,描述了“is a kind of”(是……的一种)的关系,如汽车是交通工具的一种。在类中一般元素称为超类或父类,特殊元素称为子类。

(3) 关联(Association)关系

表示一组具有共同结构特征、行为特征、关系和语义的链接,是一种结构关系,指明一个事物的对象与另一个事物的对象间的关系。如学生和大学的关系,学生在大学里学习,大学又包括了很多学生,所以可以在学生和大学之间建立关联关系

(4) 聚合(Aggregation)关系

是一种特殊形式的关联关系。表示整体与部分关系的关联,简单来说,就是关联关系中的一组元素组成了一个更大、更复杂的单元。描述了“has  a”的关系。如大学和学院,大学是由很多个学院组成的,因此两者之间是聚合关系

(5) 实现(Realization)关系

表示规格说明和其实现之间的关系,将一种模型元素和另一种模型元素连接起来,比如类和接口。 如打字员和键盘,键盘保证自己的部分行为可以实现打字员的行为。

四、连接关系图形小结

由于连接关系之间使用的图形较为相似,基本由箭头和直线组成,容易混淆,在此进行总结,以便查看。

五、小练习——简易听歌系统类图

用户与歌手:关联关系,1个用户可能关注0到n个歌手;

用户与歌曲:关联关系,1个用户可能播放或者收藏0到n首歌曲;

歌曲与歌手:关联关系,1首歌曲对应至少1位歌手;

歌曲与歌曲列表:聚合关系,1到n首歌组成了1个歌曲列表;

用户实现接口注册和登录。

第一次写,若有错误的地方,欢迎批评指正。后续会更新用例图、活动图等,可关注等待哦。

本站资源来自互联网,仅供学习,如有侵权,请通知删除,敬请谅解!
搜索建议:产品经理必学UML:类图  经理  经理词条  产品  产品词条  UML  UML词条  
设计

 如何通过优化App store应...

App Store 中的应用截图,起到了很好的推广宣传作用,那怎样的截图才能最大化提高下载率,是本篇文章所研究的问题。干货很多,值得一读。一款产品的创始人,需要...(展开)

设计

 委托投资的产品设计(上)

之前发过一篇文章《游离于P2P监管边缘的产品模式:委托投资》,大概讲了一下这种产品模式的发展历程,本篇文章主要分享下P2P平台接了银行存管之后,委托投资产品的设...(展开)

设计

 去当爹,去做产品经理

看了白鸦一系列关于产品经理的,深有感触。抄下来存档。1、产品、市场、运营、业务、技术,是分不开的。但我们需要更多的产品式运营而不是营销式运营,那些什么地方流量高...(展开)