第3章 统一建模语言-2-类图_第1页
第3章 统一建模语言-2-类图_第2页
第3章 统一建模语言-2-类图_第3页
第3章 统一建模语言-2-类图_第4页
第3章 统一建模语言-2-类图_第5页
已阅读5页,还剩66页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、LOGO类图类图2 统一建模语言概述统一建模语言概述 用例图用例图 类图和对象图类图和对象图 交互图交互图 状态图状态图 活动图活动图 构件图构件图 部署图部署图目录目录3.3.2 UML中的类中的类3.3.3 类图中的关系类图中的关系3.3.4 阅读类图阅读类图3.3.5 类图建模技术类图建模技术3.3.1 类图的概念类图的概念3.3.1 类图的概念类图的概念 类图(Class diagram)是最常用的UML图,显示出类、接口以及它们之间的静态结构和关系;我们常用类图描述系统的静态结构。一个系统可以有多张类图,一个类也可以出现在几张类图中。1.类图的定义 类图描述系统模型中存在的类、类的内

2、部结构以及它们与其他类的关系等。类图不显示暂时性信息。 与所有UML的其它图一样,类图可以包括注释、约束、包。 类图中的关系包括:依赖关系(Dependency)、泛化关系(Generalization)、关联关系(Association)、实现关系(Realization) 。3.3.1 类图的概念类图的概念电子商务网站的对象模型3.3.1 类图的概念类图的概念2 类图的划分A、概念层(需求分析阶段) 概念层类图描述了问题领域的概念。类可以从问题域的概念中得出,一般这些概念和类有自然的联系,但两者并没有直接的映射关系。画概念层类图时很少考虑或不考虑实现问题。因此,概念层类图应独立于具体的程序

3、设计语言。B、说明层(设计阶段) 说明层类图描述软件的接口部分,而不是软件的实现部分。C、实现层(实现阶段) 只有在实现层才真正考虑类的实现问题,提供类的实现细节。Student3.3.1 类图的概念类图的概念3 类图的组成元素 类图中的元素有类、接口、协作、关系、注释、约束、包。关系把类、协作、接口连接在一起构成一个图。注释的作用是对某些类和接口进行注释,约束的作用是对某些类和接口进行约束。NewClassNewInterfaceNewClass4NewClass5NewClass6NewPackageNewClass2NewClass3泛化关系实现关系关联关系依赖关系注释内容实现接口3.3

4、.1 类图的概念类图的概念4.类图的作用类图的作用 类图常用来描述业务或软件系统的组成、结构和关系,用于对系统的静态结构进行建模。我们通常通过下面三种方式使用类图:(1)为系统词汇建模型为系统词汇建模型在使用UML构件系统前需要构造系统的基本词汇,以描述系统的边界。模拟系统的词汇表,涉及到确定哪些抽象是系统的一部分,哪些抽象不在系统的边界内。可以用类图规定这些抽象和它们的责任。(2)为简单的协作建模为简单的协作建模协作是由一些共同工作的类、接口和其他模型元素所构成的一个整体,这个整体提供的一些合作行为强于所有这些元素的行为的和。系统分析者可以通过类图将这种简单的协作进行可视化和表述。模拟协作管

5、理和协调发薪水的行为外部银行系统的接口,用来封装系统与外部银行系统的通信实现接口表明雇员应得的薪水支票封装了银行的信息3.3.1 类图的概念类图的概念(3)模型化一个逻辑数据库模式 在设计数据库时,通常将数据库模式看作为数据库概念设计的蓝图,在很多领域,都需要在关系数据库或面向数据库中存储永久信息。系统分析者可以使用类图来对这些数据库进行模式建模。3.3.2 UML中的类中的类1.类的表示 类由一个矩形表示,它包含3栏,在每栏中分别写入类的名称、类的属性和类的操作。Order类表示法1)名称 每个类都必须有一个有别于其他类的名称, 类名部分是不能省略的。类的名称通常来自于系统的问题域,并且尽可

6、能地明确表达要表达的事物,不会造成类的语义冲突。名称(Name)是一个文本串,由字符、数字、下划线组成的惟一的字符串。在实际应用中,有一个普遍采用的命名原则:采用CamelCase格式,尽可能避免使用缩写。3.3.2 UML中的类中的类表示方法有两种:(1)简单名:如Order、Title、Shape等,就只是一个单独的名称。(2)全名(路径名):在类名前面加上包的名称,例如java:awt:Rectangel、businessRule:order等。2)属性 属性描述了类的静态特征,在面向对象编程中,把属性表示为成员变量。属性是类的一个特性,它描述了类的对象(实例)所具有的一系列特征值。一个

7、类可以具有零个到多个属性。 通常属性名的第一个字母是小写的。属性定义: visibility attribute-name : type = initial-value property-string 其中:可见性(visibility)表示该属性对类外的元素是否可访问。 分为: public(+) 公有的,即模型中的任何类都可以访问该属性。 private(-) 私有的,表示不能被别的类访问。 protected(#) 受保护的,表示该属性只能被该类及其子类访问。3.3.2 UML中的类中的类property-string: 约束特性3.3.2 UML中的类中的类3)操作 操作是类能够做的事

8、情,或者是另一个类能对该类做的事情。在面向对象编程语言中,它通常表示为成员方法。操作通常应该声明为public,否则它难以向其他类提供服务。操作定义:visibility operating-name (parameter-list):return-type property- string 可见性 操作名(参数表);返回类型约束特性 其中: 参数表:参数名:类型, Parameter-name :type =default-value 返回类型:操作返回的结果类型。3.3.2 UML中的类中的类4)职责 职责描述了类做什么,即,类的属性和操作能完成什么任务。它指明类承担的责任和义务。在矩形框

9、中最后一栏中写明类的职责。职责的表示3.3.2 UML中的类中的类5)约束 约束指定了类所要满足的一个或多个规则。在UML中,用花括号括起来的自由文本表示约束。约束的表示3.3.2 UML中的类中的类 2 类的种类1)抽象类 在进行类设计时,如果一些具体类具有相同的方法或属性,我们可以把这些相同的方法或属性从这些具体类中抽取出来,把它们封装到一个抽象类中,然后,通过扩展抽象类,重新定义这些具体类。 抽象类是一种不能直接实例化的类,也就是说不能用抽象类创建对象。 在UML中,抽象类和抽象方法的表示是将其名字用斜体表示。但是由于斜体字在草图中不容易表现,因此推荐用abstract构造型来表示。抽象

10、类的两种表示方法3.3.2 UML中的类中的类2)接口 接口是一种类似于抽象类的机制,接口中的方法都是抽象方法。 接口可以有名字,用以与其他的接口相区别,接口名通常是从问题域的词汇表中抽取出的短名词或名词词组。在UML中,接口两种表示方法。Interface图标表示法Interface构造符号表示法接口的两种表示法 图标表示方法的优点是简单,它只适用于只有单个操作的接口和草图中。 构造符号表示法是采用类(interface实际上是一种特殊的类)的方式表示,它的优点是可以添加多个抽象方法,具有更强的表示能力。3.3.2 UML中的类中的类 3)关联类 和类一样,关联也可以有自己的属性和操作。此时

11、,这个关联实际上是个关联类。关联类Role 关联类既是关联又是类,它不仅象关联那样连接两个类,而且可以定义一组属于关联本身的特性。 3.3.2 UML中的类中的类4)模版类 在c+这样的语言中,提供了一种叫做参数化类(parameterized class)的机制,或叫做模版(template)。例如,我们需要一些能够处理整型、浮点型、字符串的数组,普通的做法是为它们各创建一个类,这三个类除了数据类型不同之外,其他的都是相同,但是仍然要定义三次。 模版就是用来解决这个问题,可以根据占位符或者参数来定义类,而不用说明属性、方法返回值和方法参数的实际类型。通过实际值代替占位符就可创建新类。3.3.

12、2 UML中的类中的类模板类3.3.2 UML中的类中的类5)主动类 从运行的角度来看,还有一种特殊的类主动类,主动类的实例称为主动对象,一个主动对象拥有一个控制线程并且能够控制线程的活动,具有独立的控制权。 例如,命令处理程序就是一个主动类的例子,它从外面接受命令对象,然后在自身的控制线程内执行命令。3.3.2 UML中的类中的类6)嵌套类 在诸如Java的语言中,允许你将一个类的定义放在另一个类定义的内部,这就是嵌套类,在Java中也称为内层类。嵌套类是声明在它的外层类中的,因此只能够通过外层类或外层类的对象对它进行访问 ,在UML中,可以采用一个锚图标来表示这种关系。 嵌套类表示法3.3

13、.2 UML中的类中的类 类代表领域知识中的词汇和术语。同客户交谈,分析他们的领域知识,设计用来解决领域中的问题的计算机系统,同时也就是在学习这些领域词汇,并用UML中的类建立这些领域词汇的类模型。: 在与客户的交谈中,要注意客户用来描述业务实体的名词术语。这些名词可作为领域模型中的类。还要注意你听到的动词,因为这些动词可能会构成这些类中的操作属性,得到一组类的核心列表后,应当向客户询问在业务过程中每个类的作用,这些将是类的职责。识别类识别类 类的识别是面向对象方法的一个难点,但又是建类的识别是面向对象方法的一个难点,但又是建模的关键。常用的方法有:模的关键。常用的方法有: 1. 名词识别法名

14、词识别法 2. 系统实体识别法系统实体识别法 3. 从用例中识别类从用例中识别类 4. 利用分解与抽象技术利用分解与抽象技术关键是要定义类的关键是要定义类的“属性属性”及及“操作操作”。 相关类:相关类是指那些明显属于问题域的类,一般表示这些类的名字的名词经常出现在需求陈述中。模糊类:那些我们不能肯定地和无二义性地分类为相关类的类。我们需要对它们进一步进行分析后才能确定其是相关类还是属性或者无关类。无关类:无关类是那些问题域之外的类,我们无法陈述它们的目的。有经验的开发人员在他们候选类的初始表中就不包括无关类,这样识别和消除无关类的步骤就可以省略了。识别问题域中的实体,实体的描述通常用名词、识

15、别问题域中的实体,实体的描述通常用名词、名词短语、名词性代词的形式出现。名词短语、名词性代词的形式出现。 用指定语言对系统进行描述;用指定语言对系统进行描述; 从系统描述中标识名词、名词短语、名词性代词;从系统描述中标识名词、名词短语、名词性代词;识别确定(取、舍)类。识别确定(取、舍)类。描述过程应与领域专描述过程应与领域专家共同合作完成,并家共同合作完成,并遵循问题域中的概念遵循问题域中的概念和命名。和命名。识别问题域中的实体,实体的描述通常用名词、识别问题域中的实体,实体的描述通常用名词、名词短语、名词性代词的形式出现。名词短语、名词性代词的形式出现。 用指定语言对系统进行描述;用指定语

16、言对系统进行描述; 从系统描述中标识名词、名词短语、名词性代词;从系统描述中标识名词、名词短语、名词性代词;识别确定(取、舍)类。识别确定(取、舍)类。为了发现对象和类,开发人员要在系统需求和系统分为了发现对象和类,开发人员要在系统需求和系统分析的文档中查找名词和名词短语,包括:可感知的事析的文档中查找名词和名词短语,包括:可感知的事物物、角色角色、事件、互相作用、人员、场所、组织、设事件、互相作用、人员、场所、组织、设备和地点等。备和地点等。识别问题域中的实体,实体的描述通常用名词、识别问题域中的实体,实体的描述通常用名词、名词短语、名词性代词的形式出现。名词短语、名词性代词的形式出现。 用

17、指定语言对系统进行描述;用指定语言对系统进行描述; 从系统描述中标识名词、名词短语、名词性代词;从系统描述中标识名词、名词短语、名词性代词;识别确定(取、舍)类。识别确定(取、舍)类。根据下述原则进一步确定类:根据下述原则进一步确定类:去掉冗余类:如两个类表述去掉冗余类:如两个类表述同一信息,应保留最具有描述同一信息,应保留最具有描述能力的类。能力的类。去掉不相干的类:删除与问去掉不相干的类:删除与问题无关或关系不大的类。题无关或关系不大的类。删除模糊的类或性质独立性删除模糊的类或性质独立性不强的类:有些初始类边界定不强的类:有些初始类边界定义不确切,或范围太广,应该义不确切,或范围太广,应该

18、删除。删除。所描述的操作不适宜作为对所描述的操作不适宜作为对象类,所描述的只是实现过程象类,所描述的只是实现过程中的暂时的对象,应删去。中的暂时的对象,应删去。银行网络系统银行网络系统 银行网络系统包括人工出纳和分行共享的自动银行网络系统包括人工出纳和分行共享的自动出纳机;各分理处用自己的计算机处理业务(保存出纳机;各分理处用自己的计算机处理业务(保存帐户、处理事务等);各分理处与出纳站通过网络帐户、处理事务等);各分理处与出纳站通过网络通信;出纳站录入帐户和事务数据。自动出纳机与通信;出纳站录入帐户和事务数据。自动出纳机与分行计算机通信;自动出纳机与用户接口,接受现分行计算机通信;自动出纳机

19、与用户接口,接受现金卡;发放现金;打印收据;分行计算机与拨款分金卡;发放现金;打印收据;分行计算机与拨款分理处结帐。理处结帐。要求系统正确处理同一帐户的并发访问;网络要求系统正确处理同一帐户的并发访问;网络费用平均摊派给各分理处。费用平均摊派给各分理处。ATM(Auto Trade Machine)银行网络系统包括人工出纳和分行银行网络系统包括人工出纳和分行与分理处共享的自动出纳机。与分理处共享的自动出纳机。自动出纳机自动出纳机自动出纳机自动出纳机自动出纳机自动出纳机出纳站出纳站分理处分理处计算机计算机分理处分理处计算机计算机出纳站出纳站帐户帐户帐户帐户用户用户分行计算机分行计算机自动出纳机自

20、动出纳机确定类确定类采用名词识别法:检查问题陈述中的所有名词,得到初始类:采用名词识别法:检查问题陈述中的所有名词,得到初始类:软件银行网络出纳员分行系统自动出纳机软件银行网络出纳员分行系统自动出纳机帐户帐户数据出纳站分理处访问分理处计算机帐户帐户数据出纳站分理处访问分理处计算机事务事务数据现金卡用户顾客分行计算机事务事务数据现金卡用户顾客分行计算机 现金现金 收据收据 费用安全措施记录保管费用安全措施记录保管根据下述原则进一步确定类:根据下述原则进一步确定类:去掉冗余类:如两个类表述同一信息,应保留最具有去掉冗余类:如两个类表述同一信息,应保留最具有描述能力的类,如描述能力的类,如“用户用户

21、”与与“顾客顾客”是重复的描述,是重复的描述,由于由于“顾客顾客”更具有描述性,故保留它,删除更具有描述性,故保留它,删除“用户用户”。去掉不相干的类:删除与问题无关或关系不大的类,如去掉不相干的类:删除与问题无关或关系不大的类,如“费用费用”。确定类确定类采用名词识别法:检查问题陈述中的所有名词,得到初始类:采用名词识别法:检查问题陈述中的所有名词,得到初始类:软件银行网络出纳员分行系统自动出纳机软件银行网络出纳员分行系统自动出纳机帐户帐户数据出纳站分理处访问分理处计算机帐户帐户数据出纳站分理处访问分理处计算机事务事务数据现金卡用户顾客分行计算机事务事务数据现金卡用户顾客分行计算机现金现金

22、收据费用安全措施记录保管收据费用安全措施记录保管删除模糊的类:有些初始类边界定义不确切,或范删除模糊的类:有些初始类边界定义不确切,或范围太广,应该删除。如围太广,应该删除。如“系统系统”、“安全措施安全措施”、“记录保管记录保管”、“银行网络银行网络”。删除那些性质独立性不强的,而应该是类删除那些性质独立性不强的,而应该是类“属性属性”的候选类:如的候选类:如“帐户数据帐户数据”、“收据收据”、“现金现金”、“事务数据事务数据”。采用名词识别法:检查问题陈述中的所有名词,得到初始类:采用名词识别法:检查问题陈述中的所有名词,得到初始类:软件银行网络出纳员分行系统自动出纳机软件银行网络出纳员分

23、行系统自动出纳机帐户帐户数据出纳站分理处访问分理处计算机帐户帐户数据出纳站分理处访问分理处计算机事务事务数据现金卡用户顾客分行计算机事务事务数据现金卡用户顾客分行计算机现金现金 收据费用安全措施记录保管收据费用安全措施记录保管所描述的操作不适宜作为对象类,并被其自身所所描述的操作不适宜作为对象类,并被其自身所操纵,所描述的只是实现过程中的暂时的对象,应操纵,所描述的只是实现过程中的暂时的对象,应删去。如删去。如“软件软件”,“访问访问”。确定类确定类 分行计算机分行出纳站出纳员分理处 计算机自动出纳机帐户现金卡事务顾客采用名词识别法:检查问题陈述中的所有名词,得到初始类:采用名词识别法:检查问

24、题陈述中的所有名词,得到初始类:软件银行网络出纳员分行系统自动出纳机软件银行网络出纳员分行系统自动出纳机帐户帐户数据出纳站分理处访问分理处计算机帐户帐户数据出纳站分理处访问分理处计算机事务事务数据现金卡用户顾客分行计算机事务事务数据现金卡用户顾客分行计算机现金现金 收据费用安全措施记录保管收据费用安全措施记录保管确定类确定类不关心系统的运作流程及实体之间的通信状态,不关心系统的运作流程及实体之间的通信状态,而只考虑系统中的人员、组织、地点、表格、报告等而只考虑系统中的人员、组织、地点、表格、报告等实体,经过分析将他们识别为类(或对象)。实体,经过分析将他们识别为类(或对象)。 系统需要存储、分

25、析、处理的信息实体;系统需要存储、分析、处理的信息实体; 系统内部需要处理的设备;系统内部需要处理的设备; 与系统交互的外部系统;与系统交互的外部系统; 系统相关人员;系统相关人员; 系统的组织实体。系统的组织实体。例:例: 有一个购物超市,顾客可在货架上自由挑选商品,由收有一个购物超市,顾客可在货架上自由挑选商品,由收款机收款,收款机读取商品上的条型码标签,并计算商品价格。款机收款,收款机读取商品上的条型码标签,并计算商品价格。收款机应保留所有交易的记录,以备帐务复查及汇总使用。收款机应保留所有交易的记录,以备帐务复查及汇总使用。通过分析问题的陈述,确定以下几类实体:通过分析问题的陈述,确定

26、以下几类实体: 信息实体:交易记录、商品、税务信息、销售记录、货存信息实体:交易记录、商品、税务信息、销售记录、货存记录。记录。 设备:收款机、条型码扫描器。设备:收款机、条型码扫描器。 交互系统:信用卡付款系统。交互系统:信用卡付款系统。 人员职责:收款员、顾客、会计、经理。人员职责:收款员、顾客、会计、经理。 系统的组织实体:本例不考虑。系统的组织实体:本例不考虑。以上列出的实体,都可以直接识别为类。以上列出的实体,都可以直接识别为类。将整体类和组合类分解。可控制将整体类和组合类分解。可控制单个类的规模。单个类的规模。根据一些类的相似性建立抽象类,根据一些类的相似性建立抽象类,并建立抽象类

27、与这些类之间的继承关系。并建立抽象类与这些类之间的继承关系。抽象类实现了系统内部的重用,很好地控制了抽象类实现了系统内部的重用,很好地控制了复杂性,并为所有子类定义了一个公共的界面,使复杂性,并为所有子类定义了一个公共的界面,使设计局部化,提高系统的可修改性和可维护性。设计局部化,提高系统的可修改性和可维护性。4. 4. 利用分解与抽象技术利用分解与抽象技术 属性能使人们对类有更深入、更具体的认识,它可以确定并区分类的状态。一个属性一般都描述类的某个特征。1. 分析2. 识别属性识别属性 属性的确定与问题域有关,也和系统的责任有关。应该仅考虑与具体应用直接相关的属性,不要考虑那些超出所要解决的

28、问题范围的属性。按一般常识来看这个类应该有哪些属性?在当前问题域中,这个类应具有哪些属性?根据系统的责任的要求,这个类应具有哪些属性?建立的这个类是为了保存和管理哪些信息?为了在类的操作中实现特定的功能,需要增设哪些属性?类和对象有哪些需要区别的状态?是否增加一个属性来区别这些状态?定义操作定义操作 类操作的识别可以依据需求陈述、用例描述和系统的上下文环境来进行。 有哪些类会与该类交互(包括该类本身)? 所有与该类具有交互行为的对象会发送哪些消息给该类?该类又会发送哪些消息给这些类? 该类如何响应别的类发送来的消息?在发送消息出去之前,该类需要作何处理? 从该类本身来说,它应该有哪些操作来维持

29、其信息的更新、一致性和完整性? 系统是否需要该类具有另外的一些职责?3.3.3 类图中的关系类图中的关系1 关系分类依赖关系 按照关系的性质,把关系分为4种,它们是依赖关系、泛化关系、 关联关系、实现关系。1)依赖关系 表示两个或多个模型元素之间语义上的连接关系,依赖依赖是指是指一个类中一个类中的元素使用了另一个类的元素使用了另一个类。依赖关系描述类之间的。依赖关系描述类之间的使用关系使用关系3.3.3 类图中的关系类图中的关系2)泛化关系 是从特殊元素到一般元素的分类关系称为泛化关系。模型元素可以是类、用例以及其他。泛化关系public class Employee private Stri

30、ng number; private String name; public void setName(String nameIn) name=nameIn; public String getNumber() return number; public String getName() return name; 3.3.3 类图中的关系类图中的关系public class PartTimeEmployee extends Employee private double hourlyPay; public double getHourlyPay() return hourlyPay; publ

31、ic void setHourlyPay(double hourlyPayIn) hourlyPay=hourlyPayIn; public double calculateWeeklyPay(int noOFHoursIn) return noOFHoursIn * hourlyPay; 3.3.3 类图中的关系类图中的关系3)关联关系 关联关系一般使用连接两个类的关联线表示。表示类之间具有的语义联系。其基本表示如下。3.3.3 类图中的关系类图中的关系关联关系中包括聚合关系和复合关系(组合关系)。(1)聚合关系聚合关系描述的是部分与整体关系的关联。如果一组元素通过关联组成一个更大、更复杂的

32、单元,这种关联关系就是聚合。聚合关系3.3.3 类图中的关系类图中的关系(2)复合关系 组合关系是一种更强形式的聚合。组合关系UML标准表示Rose表示表示组合的符号窗口窗口工具框工具框显示区显示区标题标题注意:在Rose中表示组合的符号与在UML标准中表示组合的符号有区别。3.3.3 类图中的关系类图中的关系4)实现关系 类与被类实现的接口、协作与被协作实现的用例都是实现关系。实现关系3.3.3 类图中的关系类图中的关系关联的属性 在类图中,依赖关系、泛化关系、实现关系已经是很具体的关系,而关联关系是比较抽象的高层次关系,为了对关联进一步具体化,我们需要了解关联的属性。关联的属性包括名称、角

33、色、多重性、限定符和导航。关联名称1)名称 可以用一个动词或动词短语给关联取名,用来描述关联的性质。在描述关联时,关联的名称并不是必需的,在关联名和角色中选一即可。可以在关联上标识阅读方向的方向指示符,以消除阅读的歧义。3.3.3 类图中的关系类图中的关系2)角色 在关联关系中,角色表明了关联的每一端在关联中承担的职责,即关联发生时,关联的每一端在关联中扮演的角色。角色的名称应该是名词或名词短语,以解释对象是如何参与关联的。关联的角色3.3.3 类图中的关系类图中的关系3)多重性 多重性就是某个类有多少个对象可以和另一个类的单个对象关联。关联的多重性3.3.3 类图中的关系类图中的关系AB类A

34、的代码:Public class A public B theB; public A() 类B的代码:Public class B public B() 4)导航性 如果关联是单向的,则称为导航关联。导航性描述了源对象通过链接访问目标对象。箭头表明了导航的方向性,只有源对象才能访问目标对象,反之,目标对象不能访问源对象。导航性3.3.3 类图中的关系类图中的关系5)限定符 当一个类的对象以关联关系的角色的形式出现在另一个类里时,此角色可以在此类中出现一次,也可以出现多次。角色的多重性指的是由类产生的对象之间存在的数量关系。 一个俱乐部(Club)可以有多个成员(Member),为了在成员集合(

35、目标对象)上找到需要的对象,我们选择memberId作为查找关键字(限定符)。限定符ClubmemberIdMembermemberId:String10.1受限多重性源对象目标对象限定符3.3.4 阅读类图阅读类图1 电子商务网站业务1)电子商务网站 各实体间的关联关系抽取业务模型3.3.4 阅读类图阅读类图2)建立对象模型3.3.4 阅读类图阅读类图2 阅读类图 在阅读这些简单的类图时,重点在于把握三项内容:类、关系、多重性。其阅读的顺序应该遵循以下原则: 首先搞清楚每个类的语义,其次理解类间关系,然后,结合多重性来理解类图的结构特点以及各个属性和方法的含义。1)理解类的语义 该图包含7个

36、类:order(订单), orderitlm(订单项),customer(顾客),consignee(收货人).delierorder(送货单),peddlery(商户),product(产品),并且每个类都定义了若干属性和方法。2)分析类关系3)分析关联的多重性源类目标类关联分析Customer(1)Order(0n)订单是属于某个客户的,网站的客户可以有0个或多个订单Order(1)Consignee(1)每个订单只能够有一个收货人Order(1)OrderItem(1n)订单是由订单项组成的,至少要有一个订单项,最多可以有n个Order(1)DeliverOrder(1n)一个订单有一个

37、或多个送货单说明:系统根据订单项的产品所属的商户,将其分发给商户,拆成了多个送货单!DeliverOrder(1)OrderItem(1n)一张送货单对应订单中的一到多个订单项DeliverOrder(1)Consignee(1)每张送货单都对应着一个收货人Peddlery(1)DeliverOrder(0n)每个商户可以有相关的0个或多个送货单OrderItem(1)Product(1)每个订单项中都包含着唯一的一个产品Peddlery(1)Prodcut(0n)产品是属于某个商户的,可以注册0到多个产品 关联的两个类之间的数量和语义关系3.3.4 阅读类图阅读类图3.3.4 阅读类图阅读类

38、图加入了辅助元素的类图4)关联的导航性7)约束6)关联的限定符5)关联的角色名称3.3.5 类图建模技术类图建模技术 通过一个简单的例子来说明建立对象模型的过程。1 问题陈述 李小平是一个爱书之人,家里各类书籍已过千册,而平时又时常有朋友外借,因此需要一个个人图书管理系统。该系统应该能够将书籍的基本信息按计算机类、非计算机类分别建档,实现按书名、作者、类别、出版社等关键字的组合查询功能。在使用该系统录入新书籍时系统会自动按规则生成书号,可以修改信息,但一经创建就不允许删除。该系统还应该能够对书籍的外借情况进行记录,可对外借情况列表打印。另外,还希望能够对书籍的购买金额、册数按特定时限、周期进行

39、统计。 3.3.5 类图建模技术类图建模技术 2 寻找分析类 以问题陈述为输入信息,采用“名词动词法”寻找分析类。名词动词法的主要规则是从名词与名词短语中提取对象与属性;从动词与动词短语中提取操作和关联。1)找备选类 可以逐字逐句地阅读上面那段需求描述,并将其中所有的名词及名词短语列出来,可以得到备选类列表。 李小平是一个爱书之人,家里各类书籍已过千册,而平时又时常有朋友外借,因此需要一个个人图书管理系统。该系统应该能够将书籍的基本信息按计算机类、非计算机类分别建档,实现按书名、作者、类别、出版社等关键字的组合查询功能。在使用该系统录入新书籍时系统会自动按规则生成书号,可以修改信息,但一经创建

40、就不允许删除。该系统还应该能够对书籍的外借情况进行记录,可对外借情况列表打印。另外,还希望能够对书籍的购买金额、册数按特定时限、周期进行统计。 3.3.5 类图建模技术类图建模技术2)从备选类中筛选出候选类 并不是所有的备选类都适合做候选类,有些名词对于要开发的系统是无关紧要,甚至不属于系统;而有些名词表述的概念则相对较小,适合某个候选类的属性。需要对备选类进行一番筛选,将这些不适合的排除掉。 得到一个候选列表:书籍 计算机类书籍 非计算机类书籍借阅记录 借阅记录列表 书籍列表3.3.5 类图建模技术类图建模技术 3 确定类关系1)确定类关系 “计算机书籍”、“非计算机书籍”与“书籍”之间是继承“书籍列表”与“书籍”;“借阅记录列表”与“借阅记录”是聚合关系; “借阅记录“和”“书籍”是关联关系。 最初的分析类模型3.3.5 类图建模技术类图建模技术2)给关联添加属性(1)确定关联的多重性 加

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论