类图2优秀文档_第1页
类图2优秀文档_第2页
类图2优秀文档_第3页
类图2优秀文档_第4页
类图2优秀文档_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

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

文档简介

第三章类图目录3.2UML中的类3.3类图中的关系3.4阅读类图3.5如何建立对象模型3.1类图的概念3.1类图的概念类图(Classdiagram)是最常用的UML图,显示出类、接口以及它们之间的静态结构和关系;我们常用类图描述系统的静态结构。一个系统可以有多张类图,一个类也可以出现在几张类图中。类图是描述类、协作(类或对象间的协作)、接口及其关系的图。与所有UML的其它图一样,类图可以包括注释、约束、包。类图中的关系包括:依赖关系(Dependency)、泛化关系(Generalization)、关联关系(Association)、实现关系(Realization)。3.1类图的概念电子商务网站的对象模型3.1类图的概念2类图的划分A、概念层(需求分析阶段)概念层类图描述了问题领域的概念。类可以从问题域的概念中得出,一般这些概念和类有自然的联系,但两者并没有直接的映射关系。画概念层类图时很少考虑或不考虑实现问题。因此,概念层类图应独立于具体的程序设计语言。B、说明层(设计阶段)说明层类图描述软件的接口部分,而不是软件的实现部分。C、实现层(实现阶段)只有在实现层才真正考虑类的实现问题,提供类的实现细节。3.1类图的概念3类图的组成元素类图中的元素有类、接口、协作、关系、注释、约束、包。关系把类、协作、接口连接在一起构成一个图。注释的作用是对某些类和接口进行注释,约束的作用是对某些类和接口进行约束。泛化关系实现关系关联关系依赖关系注释内容实现接口3.1类图的概念类图常用来描述业务或软件系统的组成、结构和关系,用于对系统的静态结构进行建模。我们通常通过下面三种方式使用类图:(1)为系统词汇建模型在使用UML构件系统前需要构造系统的基本词汇,以描述系统的边界。模拟系统的词汇表,涉及到确定哪些抽象是系统的一部分,哪些抽象不在系统的边界内。可以用类图规定这些抽象和它们的责任。(2)为简单的协作建模协作是由一些共同工作的类、接口和其他模型元素所构成的一个整体,这个整体提供的一些合作行为强于所有这些元素的行为的和。系统分析者可以通过类图将这种简单的协作进行可视化和表述。模拟协作管理和协调发薪水的行为外部银行系统的接口,用来封装系统与外部银行系统的通信实现接口表明雇员应得的薪水支票封装了银行的信息3.1类图的概念(3)模型化一个逻辑数据库模式在设计数据库时,通常将数据库模式看作为数据库概念设计的蓝图,在很多领域,都需要在关系数据库或面向数据库中存储永久信息。系统分析者可以使用类图来对这些数据库进行模式建模。3.2UML中的类类由一个矩形表示,它包含3栏,在每栏中分别写入类的名称、类的属性和类的操作。Order类表示法1)名称每个类都必须有一个有别于其他类的名称,类名部分是不能省略的。类的名称通常来自于系统的问题域,并且尽可能地明确表达要表达的事物,不会造成类的语义冲突。名称(Name)是一个文本串,由字符、数字、下划线组成的惟一的字符串。在实际应用中,有一个普遍采用的命名原则:采用CamelCase格式,尽可能避免使用缩写。3.2UML中的类表示方法有两种:(1)简单名:如Order、Title、Shape等,就只是一个单独的名称。(2)全名(路径名):在类名前面加上包的名称,例如java::awt::Rectangel、businessRule::order等。2)属性属性描述了类的静态特征,在面向对象编程中,把属性表示为成员变量。属性是类的一个特性,它描述了类的对象(实例)所具有的一系列特征值。一个类可以具有零个到多个属性。通常属性名的第一个字母是小写的。属性定义:[visibility]attribute-name[:type][=initial-value][{property-string}]其中:可见性(visibility)表示该属性对类外的元素是否可访问。分为:public(+)公有的,即模型中的任何类都可以访问该属性。private(-)私有的,表示不能被别的类访问。protected(#)受保护的,表示该属性只能被该类及其子类访问。3.2UML中的类3)操作操作是类能够做的事情,或者是另一个类能对该类做的事情。在面向对象编程语言中,它通常表示为成员方法。操作通常应该声明为public,否则它难以向其他类提供服务。操作定义:[visibility]operating-name[(parameter-list)][:return-type][{property-string}]可见性操作名(参数表);返回类型{约束特性}其中:参数表:参数名:类型,…Parameter-name:type=default-value返回类型:操作返回的结果类型。3.2UML中的类4)职责职责描述了类做什么,即,类的属性和操作能完成什么任务。它指明类承担的责任和义务。在矩形框中最后一栏中写明类的职责。职责的表示3.2UML中的类5)约束约束指定了类所要满足的一个或多个规则。在UML中,用花括号括起来的自由文本表示约束。约束的表示3.2UML中的类

2类的种类1)抽象类在进行类设计时,如果一些具体类具有相同的方法或属性,我们可以把这些相同的方法或属性从这些具体类中抽取出来,把它们封装到一个抽象类中,然后,通过扩展抽象类,重新定义这些具体类。抽象类是一种不能直接实例化的类,也就是说不能用抽象类创建对象。在UML中,抽象类和抽象方法的表示是将其名字用斜体表示。但是由于斜体字在草图中不容易表现,因此推荐用《abstract》构造型来表示。抽象类的两种表示方法3.2UML中的类2)接口接口是一种类似于抽象类的机制,接口中的方法都是抽象方法。接口可以有名字,用以与其他的接口相区别,接口名通常是从问题域的词汇表中抽取出的短名词或名词词组。在UML中,接口两种表示方法。《Interface》图标表示法Interface构造符号表示法接口的两种表示法图标表示方法的优点是简单,它只适用于只有单个操作的接口和草图中。构造符号表示法是采用类(interface实际上是一种特殊的类)的方式表示,它的优点是可以添加多个抽象方法,具有更强的表示能力。3.2UML中的类3)关联类

和类一样,关联也可以有自己的属性和操作。此时,这个关联实际上是个关联类。关联类Role关联类既是关联又是类,它不仅象关联那样连接两个类,而且可以定义一组属于关联本身的特性。注意:只有关联每一端的对象是1:1对应时,才能创建关联类。3.2UML中的类4)模版类在c++这样的语言中,提供了一种叫做参数化类(parameterizedclass)的机制,或叫做模版(template)。例如,我们需要一些能够处理整型、浮点型、字符串的数组,普通的做法是为它们各创建一个类,这三个类除了数据类型不同之外,其他的都是相同,但是仍然要定义三次。模版就是用来解决这个问题,可以根据占位符或者参数来定义类,而不用说明属性、方法返回值和方法参数的实际类型。通过实际值代替占位符就可创建新类。3.2UML中的类模板类3.2UML中的类5)主动类从运行的角度来看,还有一种特殊的类——主动类,主动类的实例称为主动对象,一个主动对象拥有一个控制线程并且能够控制线程的活动,具有独立的控制权。例如,命令处理程序就是一个主动类的例子,它从外面接受命令对象,然后在自身的控制线程内执行命令。3.2UML中的类6)嵌套类在诸如Java的语言中,允许你将一个类的定义放在另一个类定义的内部,这就是嵌套类,在Java中也称为内层类。嵌套类是声明在它的外层类中的,因此只能够通过外层类或外层类的对象对它进行访问,在UML中,可以采用一个锚图标来表示这种关系。

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

相关类:相关类是指那些明显属于问题域的类,一般表示这些类的名字的名词经常出现在需求陈述中。模糊类:那些我们不能肯定地和无二义性地分类为相关类的类。我们需要对它们进一步进行分析后才能确定其是相关类还是属性或者无关类。无关类:无关类是那些问题域之外的类,我们无法陈述它们的目的。有经验的开发人员在他们候选类的初始表中就不包括无关类,这样识别和消除无关类的步骤就可以省略了。1.名词识别法

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

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

识别问题域中的实体,实体的描述通常用名词、名词短语、名词性代词的形式出现。用指定语言对系统进行描述;从系统描述中标识名词、名词短语、名词性代词;识别确定(取、舍)类。1.名词识别法根据下述原则进一步确定类:①去掉冗余类:如两个类表述同一信息,应保留最具有描述能力的类。②去掉不相干的类:删除与问题无关或关系不大的类。③删除模糊的类或性质独立性不强的类:有些初始类边界定义不确切,或范围太广,应该删除。⑤所描述的操作不适宜作为对象类,所描述的只是实现过程中的暂时的对象,应删去。案例—银行网络系统

一、问题的陈述

银行网络系统包括人工出纳和分行共享的自动出纳机;各分理处用自己的计算机处理业务(保存帐户、处理事务等);各分理处与出纳站通过网络通信;出纳站录入帐户和事务数据。自动出纳机与分行计算机通信;自动出纳机与用户接口,接受现金卡;发放现金;打印收据;分行计算机与拨款分理处结帐。要求系统正确处理同一帐户的并发访问;网络费用平均摊派给各分理处。ATM(AutoTradeMachine)银行网络系统包括人工出纳和分行与分理处共享的自动出纳机。银行网络ATM系统自动出纳机自动出纳机自动出纳机出纳站分理处计算机分理处计算机出纳站帐户帐户用户分行计算机自动出纳机…确定类采用名词识别法:检查问题陈述中的所有名词,得到初始类:软件银行网络出纳员分行系统自动出纳机帐户帐户数据出纳站分理处访问分理处计算机

事务事务数据现金卡用户顾客分行计算机现金收据费用安全措施记录保管根据下述原则进一步确定类:①去掉冗余类:如两个类表述同一信息,应保留最具有描述能力的类,如“用户”与“顾客”是重复的描述,由于“顾客”更具有描述性,故保留它,删除“用户”。②去掉不相干的类:删除与问题无关或关系不大的类,如“费用”。确定类采用名词识别法:检查问题陈述中的所有名词,得到初始类:软件银行网络出纳员分行系统自动出纳机帐户帐户数据出纳站分理处访问分理处计算机

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

事务事务数据现金卡用户顾客分行计算机现金收据费用安全措施记录保管⑤所描述的操作不适宜作为对象类,并被其自身所操纵,所描述的只是实现过程中的暂时的对象,应删去。如“软件”,“访问”。确定类最终确定的11个类为:

分行计算机分行出纳站出纳员分理处计算机自动出纳机帐户现金卡事务顾客采用名词识别法:检查问题陈述中的所有名词,得到初始类:软件银行网络出纳员分行系统自动出纳机帐户帐户数据出纳站分理处访问分理处计算机

事务事务数据现金卡用户顾客分行计算机现金收据费用安全措施记录保管确定类

不关心系统的运作流程及实体之间的通信状态,而只考虑系统中的人员、组织、地点、表格、报告等实体,经过分析将他们识别为类(或对象)。被标识的实体有:系统需要存储、分析、处理的信息实体;系统内部需要处理的设备;与系统交互的外部系统;系统相关人员;系统的组织实体。2.系统实体识别法例:有一个购物超市,顾客可在货架上自由挑选商品,由收款机收款,收款机读取商品上的条型码标签,并计算商品价格。收款机应保留所有交易的记录,以备帐务复查及汇总使用。通过分析问题的陈述,确定以下几类实体:⑴信息实体:交易记录、商品、税务信息、销售记录、货存记录。⑵设备:收款机、条型码扫描器。⑶交互系统:信用卡付款系统。⑷人员职责:收款员、顾客、会计、经理。⑸系统的组织实体:本例不考虑。以上列出的实体,都可以直接识别为类。2.系统实体识别法根据用例的描述来识别类;如用例的描述中出现哪些实体?用例执行过程中产生并存储哪些信息?与用例关联的角色向用例输入什么信息?用例又向该角色输出哪些信息?3.从用例中识别类在确定类时,常使用两类技术:

⑴分解技术将整体类和组合类分解。可控制单个类的规模。

⑵抽象技术根据一些类的相似性建立抽象类,并建立抽象类与这些类之间的继承关系。抽象类实现了系统内部的重用,很好地控制了复杂性,并为所有子类定义了一个公共的界面,使设计局部化,提高系统的可修改性和可维护性。4.利用分解与抽象技术识别属性属性能使人们对类有更深入、更具体的认识,它可以确定并区分类的状态。一个属性一般都描述类的某个特征。1.分析2.识别属性属性的确定与问题域有关,也和系统的责任有关。应该仅考虑与具体应用直接相关的属性,不要考虑那些超出所要解决的问题范围的属性。按一般常识来看这个类应该有哪些属性?在当前问题域中,这个类应具有哪些属性?根据系统的责任的要求,这个类应具有哪些属性?建立的这个类是为了保存和管理哪些信息?为了在类的操作中实现特定的功能,需要增设哪些属性?类和对象有哪些需要区别的状态?是否增加一个属性来区别这些状态?定义操作类操作的识别可以依据需求陈述、用例描述和系统的上下文环境来进行。

有哪些类会与该类交互(包括该类本身)?

所有与该类具有交互行为的对象会发送哪些消息给该类?该类又会发送哪些消息给这些类?

该类如何响应别的类发送来的消息?在发送消息出去之前,该类需要作何处理?

从该类本身来说,它应该有哪些操作来维持其信息的更新、一致性和完整性?

系统是否需要该类具有另外的一些职责?⑤所描述的操作不适宜作为对象类,并被其自身所操纵,所描述的只是实现过程中的暂时的对象,应删去。职责描述了类做什么,即,类的属性和操作能完成什么任务。如果一组元素通过关联组成一个更大、更复杂的单元,这种关联关系就是聚合。书籍计算机类书籍非计算机类书籍是从特殊元素到一般元素的分类关系称为泛化关系。参数(《parameter》):一个操作和它的参数之间的关系。⑵抽象技术根据一些类的相似性建立抽象类,并建立抽象类与这些类之间的继承关系。在设计数据库时,通常将数据库模式看作为数据库概念设计的蓝图,在很多领域,都需要在关系数据库或面向数据库中存储永久信息。privateStringnumber;现金收据费用安全措施记录保管借阅记录借阅记录列表书籍列表出纳站录入帐户和事务数据。事务事务数据现金卡用户顾客分行计算机3.3类图中的关系1关系分类依赖关系按照关系的性质,把关系分为4种,它们是依赖关系、泛化关系、关联关系、实现关系。1)依赖关系表示两个或多个模型元素之间语义上的连接关系,客户元素以某种形式依赖于提供者元素。实际上,关联、实现和泛化都是依赖关系。3.3类图中的关系

依赖关系可以细分为4大类:使用依赖、抽象依赖、授权依赖、绑定依赖。使用(《use》):声明使用一个模型元素需要用到已存在的另一个模型元素,这样才能争取实现使用者的功能。调用(《call》):声明已经给类调用其他类的操作方法。参数(《parameter》):一个操作和它的参数之间的关系。发送(《send》):信号发送者和信号接受者之间的关系。实例化(《instantiate》):一个类的方法创建了另一个类的实例的声明。(1)使用依赖表示客户使用提供者提供的服务,以实现它的行为。下面都属于使用依赖的具体形式:3.3类图中的关系(2)抽象依赖表示客户与提供者之间的关系,客户与提供者属于不同的抽象事物,具体依赖形式有:跟踪(《trace》):声明不同模型中的元素之间存在一些连接,但不如映射精确。精化(《refine》):声明具有两个不同语义层次上的元素之间的映射。派生(《derive》):声明一个实例可以从另一个实例派生。(3)授权依赖表达一个事物访问另一个事物的能力,具体依赖形式有:访问(《access》):允许一个包访问另一个包的内容。导入(《import》):允许一个包访问另一个包的内容并未被访问包的组成部分增加别名。友元(《friend》):允许一个元素访问另一个元素,不管被访问的元素是否具有可见性。(4)绑定依赖绑定依赖属于较高级的依赖类型,用绑定模板以创建新的模型元素,具体依赖形式:绑定(《bind》):为模板参数指定值,以生成一个新的模型元素。3.3类图中的关系2)泛化关系是从特殊元素到一般元素的分类关系称为泛化关系。模型元素可以是类、用例以及其他。泛化关系publicclassEmployee{privateStringnumber;privateStringname;publicvoidsetName(StringnameIn){name=nameIn;}publicStringgetNumber(){returnnumber;}publicStringgetName(){returnname;}}3.3类图中的关系publicclassPartTimeEmployeeextendsEmployee{privatedoublehourlyPay;publicdoublegetHourlyPay(){returnhourlyPay;}publicvoidsetHourlyPay(doublehourlyPayIn){hourlyPay=hourlyPayIn;}publicdoublecalculateWeeklyPay(intnoOFHoursIn){returnnoOFHoursIn*hourlyPay;}}3.3类图中的关系3)关联关系关联关系一般使用连接两个类的关联线表示。普通关联是最常见的一种关联,只要类与类之间存在连接关系就可以用普通关联表示。关联关系中包括聚合关系和组合关系。(1)聚合关系聚合关系描述的是部分与整体关系的关联。如果一组元素通过关联组成一个更大、更复杂的单元,这种关联关系就是聚合。聚合关系3.3类图中的关系(2)组合关系组合关系是一种更强形式的关联。组合关系UML标准表示Rose表示表示组合的符号窗口工具框显示区标题注意:在Rose中表示组合的符号与在UML标准中表示组合的符号有区别。3.3类图中的关系4)实现关系类与被类实现的接口、协作与被协作实现的用例都是实现关系。实现关系3.3类图中的关系关联的属性

在类图中,依赖关系、泛化关系、实现关系已经是很具体的关系,而关联关系是比较抽象的高层次关系,为了对关联进一步具体化,我们需要了解关联的属性。关联的属性包括名称、角色、多重性、限定符和导航。关联名称1)名称可以用一个动词或动词短语给关联取名,用来描述关联的性质。在描述关联时,关联的名称并不是必需的,在关联名和角色中选一即可。可以在关联上标识阅读方向的方向指示符,以消除阅读的歧义。3.3类图中的关系2)角色在关联关系中,角色表明了关联的每一端在关联中承担的职责,即关联发生时,关联的每一端在关联中扮演的角色。角色的名称应该是名词或名词短语,以解释对象是如何参与关联的。关联的角色属性描述了类的静态特征,在面向对象编程中,把属性表示为成员变量。在描述关联时,关联的名称并不是必需的,在关联名和角色中选一即可。名词动词法的主要规则是从名词与名词短语中提取对象与属性;箭头表明了导航的方向性,只有源对象才能访问目标对象,反之,目标对象不能访问源对象。参数(《parameter》):一个操作和它的参数之间的关系。系统分析者可以通过类图将这种简单的协作进行可视化和表述。⑤所描述的操作不适宜作为对象类,并被其自身所操纵,所描述的只是实现过程中的暂时的对象,应删去。发送(《send》):信号发送者和信号接受者之间的关系。出纳站录入帐户和事务数据。采用名词识别法:检查问题陈述中的所有名词,得到初始类:构造符号表示法是采用类(interface实际上是一种特殊的类)的方式表示,它的优点是可以添加多个抽象方法,具有更强的表示能力。⑵设备:收款机、条型码扫描器。关联的属性包括名称、角色、多重性、限定符和导航。在矩形框中最后一栏中写明类的职责。在与客户的交谈中,要注意客户用来描述业务实体的名词术语。③删除模糊的类或性质独立性不强的类:有些初始类边界定义不确切,或范围太广,应该删除。关联类既是关联又是类,它不仅象关联那样连接两个类,而且可以定义一组属于关联本身的特性。3.3类图中的关系3)多重性多重性就是某个类有多少个对象可以和另一个类的单个对象关联。关联的多重性根据下述原则进一步确定类:可以逐字逐句地阅读上面那段需求描述,并将其中所有的名词及名词短语列出来,可以得到备选类列表。PublicclassA{类和对象有哪些需要区别的状态?是否增加一个属性来区别这些状态?不关心系统的运作流程及实体之间的通信状态,而只考虑系统中的人员、组织、地点、表格、报告等实体,经过分析将他们识别为类(或对象)。关联的属性包括名称、角色、多重性、限定符和导航。ATM(AutoTradeMachine)银行网络系统包括人工出纳和分行与分理处共享的自动出纳机。publicBtheB;构造符号表示法是采用类(interface实际上是一种特殊的类)的方式表示,它的优点是可以添加多个抽象方法,具有更强的表示能力。⑴分解技术将整体类和组合类分解。自动出纳机与分行计算机通信;一个俱乐部(Club)可以有多个成员(Member),为了在成员集合(目标对象)上找到需要的对象,我们选择memberId作为查找关键字(限定符)。⑤所描述的操作不适宜作为对象类,并被其自身所操纵,所描述的只是实现过程中的暂时的对象,应删去。5如何建立对象模型在当前问题域中,这个类应具有哪些属性?当找到了反应问题域本质的主要类,并清理他们之间的关系之后,就可以为这些类添加相应的职责。3.3类图中的关系类A的代码:PublicclassA{publicBtheB;publicA(){}}类B的代码:PublicclassB{publicB(){}}4)导航性如果关联是单向的,则称为导航关联。导航性描述了源对象通过链接访问目标对象。箭头表明了导航的方向性,只有源对象才能访问目标对象,反之,目标对象不能访问源对象。导航性3.3类图中的关系5)限定符当一个类的对象以关联关系的角色的形式出现在另一个类里时,此角色可以在此类中出现一次,也可以出现多次。角色的多重性指的是由类产生的对象之间存在的数量关系。一个俱乐部(Club)可以有多个成员(Member),为了在成员集合(目标对象)上找到需要的对象,我们选择memberId作为查找关键字(限定符)。限定符ClubmemberIdMembermemberId:String10..1受限多重性源对象目标对象限定符3.4阅读类图1电子商务网站业务1)电子商务网站

各实体间的关联关系抽取业务模型3.4阅读类图2)建立对象模型3.4阅读类图2阅读类图在阅读这些简单的类图时,重点在于把握三项内容:类、关系、多重性。其阅读的顺序应该遵循以下原则:首先搞清楚每个类的语义,其次理解类间关系,然后,结合多重性来理解类图的结构特点以及各个属性和方法的含义。1)理解类的语义该图包含7个类:order(订单),orderitlm(订单项),customer(顾客),consignee(收货人).delierorder(送货单),peddlery(商户),product(产品),并且每个类都定义了若干属性和方法。2)分析类关系3)分析关联的多重性源类目标类关联分析Customer(1)Order(0…n)订单是属于某个客户的,网站的客户可以有0个或多个订单Order(1)Consignee(1)每个订单只能够有一个收货人Order(1)OrderItem(1…n)订单是由订单项组成的,至少要有一个订单项,最多可以有n个Order(1)DeliverOrder(1…n)一个订单有一个或多个送货单说明:系统根据订单项的产品所属的商户,将其分发给商户,拆成了多个送货单!DeliverOrder(1)OrderItem(1…n)一张送货单对应订单中的一到多个订单项DeliverOrder(1)Consignee(1)每张送货单都对应着一个收货人Peddlery(1)DeliverOrder(0…n)每个商户可以有相关的0个或多个送货单OrderItem(1)Product(1)每个订单项中都包含着唯一的一个产品Peddlery(1)Prodcut(0…n)产品是属于某个商户的,可以注册0到多个产品

关联的两个类之间的数量和语义关系3.4阅读类图3.4阅读类图3.4阅读类图加入了辅助元素的类图4)关联的导航性9)导出属性8)职责7)约束6)关联的限定符5)关联的角色名称3.5

温馨提示

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

评论

0/150

提交评论