UML中数据流图介绍_第1页
UML中数据流图介绍_第2页
UML中数据流图介绍_第3页
UML中数据流图介绍_第4页
UML中数据流图介绍_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

1、单向关联在一个单向关联中,两个类是相关的,但是只有一个类知道这种联系的存在。一个单向的关联,表示为一条带有指向已知类的开放箭头(不关闭的箭头或三角形,用于标志继承)的实线。如同标准关联,单向关联包括一个角色名和一个多重值描述,但是与标准的双向关联不同的时,单向关联只包含已知类的角色名和多重值描述。简单的说就是OverdrawAccountReport中包含了BankAccount属性,而BankAccount中不需要包含OverdrawnAccountsReport对象6.聚合的表示示:聚合是一种特别别类型的关联联,用于描述述“总体到局局部”的关系系。在基本的的聚合关系中中, 部分类类 的生命

2、周周期独立于 整体类 的的生命周期。举例来说,我们们可以想象,车车 是一个整整体实体,而而 车轮 轮轮胎是整辆车车的一部分。轮轮胎可以在安安置到车时的的前几个星期期被制造,并并放置于仓库库中。在这个个实例中,WWheel类类实例清楚地地独立于Caar类实例而而存在。然而而,有些情况况下, 部分分 类的生命命周期并 不不 独立于 整体 类的的生命周期 - 这称称为合成聚合合。举例来说说,考虑公司司与部门的关关系。 公司司和部门 都都建模成类,在在公司存在之之前,部门不不能存在。这这里Depaartmennt类的实例例依赖于Coompanyy类的实例而而存在。让我们更进一步步探讨基本聚聚合和组合聚

3、聚合。注意:聚合与普普通的关联的的区别在于:普通的关联联可能只是一一个简单的“包包含、引用”关关系,关联和和被关联类之之间在逻辑概概念上不一定定有紧密的联联系,而聚合合则不同,它它表示的是一一种内在关系系紧密,相互互依存,相互互包含的概念念,其中的一一部分是构成成另外一部分分的不可或缺缺的成分。基本聚合有有聚合关系的的关联指出,某某个类是另外外某个类的一一部分。在一一个聚合关系系中,子类实实例可以比父父类存在更长长的时间。为为了表现一个个聚合关系,你你画一条从父父类到部分类类的实线,并并在父类的关关联末端画一一个未填充棱棱形。图中清清楚的表明了了类Car对对象包含了另另一类Wheeel的4个个

4、实例,这两两者在概念上上是密不可分分的,其中的的一个类是另另一个类的构构成成分。菱菱形表示“包包含”,箭头头表示被包含含的对象,数数字4表示包包含的数目。组合聚合 组合聚合关系是聚合关系的另一种形式,但是子类实例的生命周期依赖于父类实例的生命周期。注意:组合关系如聚合关系一样绘制,不过这次菱形是被填充的。7.反射关联的表示:类也可以使用反射关联与它本身相关联。起先,这可能没有意义,但是记住,类是抽象的。当一个类关联到它本身时,这并不意味着类的实例与它本身相关,而是类的一个实例与类的另一个实例相关。图描绘的关系说明一个Employee实例可能是另外一个Employee实例的经理。然而,因为“ma

5、nages”的关系角色有 0.*的多重性描述;一个雇员可能不受任何其他雇员管理。三、UML中的对象图:实例的记号和类一样,但是取代顶端区域中仅有的类名,它的名字是经过拼接的:Instancce Namme : CClass Name 如 Donnald : Persson因为显示实例的的目的是显示示值得注意的的或相关的信信息,没必要要在你的模型型中包含整个个实体属性及及操作。相反反地,仅仅显显示感兴趣的的属性及其值值是完全恰当当的。UML 2 也也允许在实体体层的关系/关联建模。绘绘制关联与一一般的类关系系的规则一样样,除了在建建模关联时有有一个附加的的要求。附加加的限制是,关关联关系必须须与

6、类图的关关系相一致,而而且关联的角角色名字也必必须与类图相相一致。四、UUML中的角角色图:建模模类的实例有有时比期望的的更为详细。有有时,你可能能仅仅想要在在一个较多的的一般层次做做类关系的模模型。在这种种情况下,你你应该使用 角色 记号。角角色记号类似似于实例记号号。为了建立立类的角色模模型,你画一一个方格,并并在内部放置置类的角色名名及类名,作作为实体记号号,但是在这这情况你不能能加下划线。注意:角色图和对象图的一个明显区别就是:对象图每个对象名称下面都加了下划线,而角色图没有 以下是:序列图图序列图主要用于于按照交互发发生的一系列列顺序,显示示对象之间的的这些交互。很很象类图,开开发者

7、一般认认为序列图只只对他们有意意义。然而,一一个组织的业业务人员会发发现,序列图图显示不同的的业务对象如如何交互,对对于交流当前前业务如何进进行很有用。除除记录组织的的当前事件外外,一个业务务级的序列图图能被当作一一个需求文件件使用,为实实现一个未来来系统传递需需求。在项目目的需求阶段段,分析师能能通过提供一一个更加正式式层次的表达达,把用例带带入下一层次次。那种情况况下,用例常常常被细化为为一个或者更更多的序列图图。 组织的技术人员员能发现,序序列图在记录录一个未来系系统的行为应应该如何表现现中,非常有有用。在设计计阶段,架构构师和开发者者能使用图,挖挖掘出系统对对象间的交互互,这样充实实整

8、个系统设设计。序列图的主要要用途之一,是是把用例表达达的需求,转转化为进一步步、更加正式式层次的精细细表达。用例例常常被细化化为一个或者者更多的序列列图。序列图图除了在设计计新系统方面面的用途外,它它们还能用来来记录一个存存在系统(称称它为“遗产产”)的对象象现在如何交交互。当把这这个系统移交交给另一个人人或组织时,这这个文档很有有用。Java应用程程序由许多类类所构成,是是Java实实现面向对象象应用程序的的核心。类图图主要描述JJava应用用程序中各种种类之间的相相互静态关系系,如类的继继承、抽象、接接口以及各种种关联。要利利用UML设设计Javaa应用程序,仅仅仅使用类图图来描述这些些静

9、态关系,利利用可视化工工具,要实现现Java应应用程序的代代码自动生成成,是远远不不够的。我们们还必须描述述各种类相互互之间的协作作关系、动态态关系,如时时间序列上的的交互行为。其其中UML序序列图就是用用来描述类与与类之间的方方法调用过程程(或消息发发送)是如何何实现的。一、UML中的的新元素框框架:在 UUML 2中中,框架元件件用于作为许许多其他的图图元件的一个个基础,但是是大多数人第第一次接触框框架元件的情情况,是作为为图的图形化化边界。当为为图提供图形形化边界时,一一个框架元件件为图的标签签提供一致的的位置。在 UML 图图中框架元件件是可选择的的。除了提供供一个图形化化边框之外,用

10、用于图中的框框架元件也有有描述交互的的重要的功能能, 例如序序列图。在序序列图上一个个序列接收和和发送消息(又又称交互),能能通过连接消消息和框架元元件边界,建建立模型(如如图 2 所所见到)。对对于序列图,图图的标签由文文字“sd”开开始。当使用用一个框架元元件封闭一个个图时,图的的标签需要按按照以下的格格式:图类型型 图名称。UML 规范给给图类型提供供特定的文本本值。(举例例来说,sdd代表序列图图,actiivity代代表活动图,uuse caase代表用用例图)。二、UML中的的序列图:序序列图主要用用于按照交互互发生的一系系列顺序,显显示对象之间间的这些交互互。在项目的的需求阶段,

11、分分析师能通过过提供一个更更加正式层次次的表达,把把用例带入下下一层次。那那种情况下,用用例常常被细细化为一个或或者更多的序序列图。序列列图的主要用用途之一,是是把用例表达达的需求,转转化为进一步步、更加正式式层次的精细细表达。用例例常常被细化化为一个或者者更多的序列列图。序列图图除了在设计计新系统方面面的用途外,它它们还能用来来记录一个存存在系统(称称它为“遗产产”)的对象象现在如何交交互。序列图图的主要目的的是定义事件件序列,产生生一些希望的的输出。重点点不是消息本本身,而是消消息产生的顺顺序;不过,大大多数序列图图会表示一个个系统的对象象之间传递的的什么消息,以以及它们发生生的顺序。图图

12、按照水平和和垂直的维度度传递信息:垂直维度从从上而下表示示消息/调用用发生的时间间序列,而且且水平维度从从左到右表示示消息发送到到的对象实例例。1.生命命线:生命线线画作一个方方格,一条虚虚线从上而下下,通过底部部边界的中心心(图 3)。生生命线名字放放置在方格里里。UML 的生命线命命名标准按照照如下格式: 实体名:类名生命线线名称带下划划线。当使用用下划线时,意意味着序列图图中的生命线线代表一个类类的特定实体体,不是特定定种类的实体体(例如,角角色)。序列列图的实例名名称有下划线线,而角色名名称没有。一一个生命线能能用来表现一一个匿名的或或未命名的实实体。当在一一个序列图上上,为一个未未命

13、名的实例例建模时,生生命线的名字字采用和一个个命名实例相相同的模式;但是生命线线名字的位置置留下空白,而而不是提供一一个例图名字字。2.消息体:为为了显示一个个对象(例如如,生命线)传传递一个消息息给另外一个个对象,你画画一条线指向向接收对象,包包括一个实心心箭头(如果果是一个同步步调用操作)或或一个棍形箭箭头(如果是是一个异步讯讯号)。消息息/方法名字字放置在带箭箭头的线上面面。正在被传传递给接收对对象的消息,表表示接收对象象的类实现的的一个操作/方法。返回回消息是可选选择的;一个个返回消息画画作一个带开开放箭头的虚虚线,向后指指向来源的生生命线,在这这条虚线上面面,你放置操操作的返回值值。

14、为了要画画一个调用本本身的对象,如如你平时所作作的,画一条条消息,但是是不是连接它它到另外的一一个对象,而而是你把消息息连接回对象象本身。 三、UML中的的约束:约束束的符号很简简单;格式是是: 【Boooleann Testt】四、UMML中的新元元素组合碎碎片(变体方方案、选择项项、循环):一个组合碎碎片用来把一一套消息组合合在一起,在在一个序列图图中显示条件件分支。1.变体:变体用来指明在在两个或更多多的消息序列列之间的、互互斥的选择。一个变体的组合碎片元件使用框架来画。单词“alt”放置在框架的namebox里。然后较大的长方形分为 UML 2 所称的操作元。 HYPERLINK l

15、notes 操作元被虚线分开。每个操作元有一个约束进行测试,而这个约束被放置在生命线顶端的操作元的左上部。 HYPERLINK l notes 如果操作元的约束等于“true”,然后那个操作元是要执行的操作元。图 8作为一个个变体的组合合碎片如何阅阅读的例子,显显示序列从顶顶部开始,即即bank对对象获取支票票金额和帐户户结余。此时时,序列图中中的变体组合合碎片接管。因因为约束“balannce = amouunt”,如如果余额超过过或等于金额额,然后顺序序进行bannk对象传递递 addDDebitTTransaactionn 和 sttorePhhotoOffCheckk 消息给aacco

16、unnt对象。然然而,如果余余额不是超过过或等于金额额,然后顺序序的过程就是是bank传传递addIInsufffientFFundFeee 和 nnoteReeturneedChecck 消息给给accouunt对象,rreturnnCheckk 消息给它它自身。因为为“elsee”约束,当当余额不大于于或者等于金金额时,第二二个序列被调调用。在变体体的组合碎片片中,不需要要“elsee”约束;而而如果一个操操作元,在它它上面没有一一个明确的约约束,那么将将假定“ellse”约束束。2.选择项:一一个选择项用用来为简单的的“if tthen”表表达式建模。(例例如,如果架架上的圈饼少少于五个

17、,那那么另外做两两打圈饼)。选择项组合碎片符号与变体组合碎片类似,除了它只有一个操作元并且永不能有“else”约束以外(它就是如此,没有理由)。要画选择项组合,你画一个框架。文字“opt”是被放置在框架的 namebox 里的文本,在框架的内容区,选择项的约束被放置在生命线顶端上的左上角。 然后选择项的消息序列被放在框架的内容区的其余位置内。注意:变体用于为if then else建模,选择项用于为if then建模,因为只有一个分支,所以不能出现else以下是:用例图图:用例图主要用来来图示化系统统的主事件流流程,它主要要用来描述客客户的需求,即即用户希望系系统具备的完完成一定功能能的动作,

18、通通俗地理解用用例就是软件件的功能模块块,所以是设设计系统分析析阶段的起点点,设计人员员根据客户的的需求来创建建和解释用例例图,用来描描述软件应具具备哪些功能能模块以及这这些模块之间间的调用关系系,用例图包包含了用例和和参与者,用用例之间用关关联来连接以以求把系统的的整个结构和和功能反映给给非技术人员员(通常是软软件的用户),对对应的是软件件的结构和功功能分解。用用例是从系统统外部可见的的行为,是系系统为某一个个或几个参与与者(Acttor)提供供的一段完整整的服务。从从原则上来讲讲,用例之间间都是独立、并并列的,它们们之间并不存存在着包含从从属关系。但但是为了体现现一些用例之之间的业务关关系

19、,提高可可维护性和一一致性,用例例之间可以抽抽象出包含(incluude)、扩扩展(exttend)和和泛(genneraliizatioon)几种关关系。共性:都是从现有有的用例中抽抽取出公共的的那部分信息息,作为一个个单独的用例例,然后通后后过不同的方方法来重用这这个公共的用用例,以减少少模型维护的的工作量。1、包含(inncludee) 包含关关系:使用包包含(Incclusioon)用例来来封装一组跨跨越多个用例例的相似动作作(行为片断断),以便多多个基(Baase)用例例复用。基用用例控制与包包含用例的关关系,以及被被包含用例的的事件流是否否会插入到基基用例的事件件流中。基用用例可以

20、依赖赖包含用例执执行的结果,但但是双方都不不能访问对方方的属性。 包含含关系对典型型的应用就是是复用,也就就是定义中说说的情景。但但是有时当某某用例的事件件流过于复杂杂时,为了简简化用例的描描述,我们也也可以把某一一段事件流抽抽象成为一个个被包含的用用例;相反,用用例划分太细细时,也可以以抽象出一个个基用例,来来包含这些细细颗粒的用例例。这种情况况类似于在过过程设计语言言中,将程序序的某一段算算法封装成一一个子过程,然然后再从主程程序中调用这这一子过程。 例如:业业务中,总是是存在着维护护某某信息的的功能,如果果将它作为一一个用例,那那新建、编辑辑以及修改都都要在用例详详述中描述,过过于复杂;

21、如如果分成新建建用例、编辑辑用例和删除除用例,则划划分太细。这这时包含关系系可以用来理理清关系。2、扩展(exxtend)扩展关系:将基基用例中一段段相对独立并并且可选的动动作,用扩展展(Exteensionn)用例加以以封装,再让让它从基用例例中声明的扩扩展点(Exxtensiion Pooint)上上进行扩展,从从而使基用例例行为更简练练和目标更集集中。扩展用用例为基用例例添加新的行行为。扩展用用例可以访问问基用例的属属性,因此它它能根据基用用例中扩展点点的当前状态态来判断是否否执行自己。但是扩展用例对基用例不可见。对于一个扩展用用例,可以在在基用例上有有几个扩展点点。例例如,系统中中允许

22、用户对对查询的结果果进行导出、打打印。对于查查询而言,能能不能导出、打打印查询都是是一样的,导导出、打印是是不可见的。导导入、打印和和查询相对独独立,而且为为查询添加了了新行为。因因此可以采用用扩展关系来来描述:4、泛泛化(genneraliizatioon)泛化关系:子用用例和父用例例相似,但表表现出更特别别的行为;子子用例将继承承父用例的所所有结构、行行为和关系。子用例可以使用父用例的一段行为,也可以重载它。父用例通常是抽象的。在实际应用中很少使用泛化关系,子用例中的特殊行为都可以作为父用例中的备选流存在。例如,业务中可可能存在许多多需要部门领领导审批的事事情,但是领领导审批的流流程是很相

23、似似的,这时可可以做成泛化化关系表示: 上面是我参参考的一篇文文章,觉得将将三种关系的的区别讲得很很清晰,在此此基础上结合合自己的系统统,对项目(在线购物系系统)的用例例做了整体的的描绘。 * (1)系系统整体用例例图 (商品用用例图) (购购买信息用例例) (用户资料用用例)按照先整体体用例,后子子系统用例来来进行描绘的的,欢迎大家家提出好的建建议!转:UML中扩扩展和泛化的的区别 泛泛化表示类似似于OO术语语“继承”或或“多态”。UUML中的UUse Caase泛化过过程是将不同同Use CCase之间间的可合并部部分抽象成独独立的父Usse Casse,并将不不可合并部分分单独成各自自的

24、子Usee Casee;包含以及及扩展过程与与泛化过程类类似,但三者者对用例关系系的优化侧重重点是不同的的。如下: 泛化侧重表表示子用例间间的互斥性; 包含侧重重表示被包含含用例对Acctor提供供服务的间接接性; 扩展展侧重表示扩扩展用例的触触发不定性;详述如下: 既然用例例是系统提供供服务的UMML表述,那那么服务这个个过程在所有有用例场景中中是必然发生生的,但发生生按照发生条条件可分为如如下两种情况况: 无条件发发生:肯定发发生的; 有条条件发生:未未必发生,发发生与否取决决于系统状态态; 因此,针针对用例的三三种关系结合合系统状态考考虑,泛化与与包含用例属属于无条件发发生的用例,而而扩

25、展属于有有条件发生的的用例。进一一步,用例的的存在是为AActor提提供服务,但但用例提供服服务的方式可可分为间接和和直接两种,依依据于此,泛泛化中的子用用例提供的是是直接服务,而而包含中的被被包含用例提提供的是间接接服务。同样样,扩展用例例提供的也是是直接服务,但但扩展用例的的发生是有条条件的。 另外一一点需要提及及的是:泛化化中的子用例例和扩展中的的扩展用例均均可以作为基基本用例事件件的备选择流流而存在。以下是:活动图图UML 活动图图记录了单个个操作或方法法的逻辑,单单个用户案例例,或者单个个业务流程的的逻辑。在很很多方面,活活动图是结构构化开发中流流程图和数据据流程图 (DFD) 的面

26、向对象象等同体,要要创建一个 UML 活活动图,您需需要反复执行行下列步骤。第一步,定义活动图的范围首先应该定义您要对什么建模。单个用户案例力?一个用户案例的一部分?一个包含多个用户案例的商务流程?一个类的单个方法?一旦您定义了您所作图的范围,您应该在其顶部,用一个标注添加标签,指明该图的标题和唯一的标示符。您有可能也想要包括该图的时间甚至作者名。 第二二步,添加起起始和结束点点每个活动图图有一个起始始点和结束点点,因此您也也要马上添加加它们。在 UML 精粹(UUML Diistillled) (参见参考资资料),Foowler 和 Scoott 认为为结束点是可可选的。有时时候一个活动动只

27、是一个简简单的结束,如如果是这种情情况,指明其其唯一的转变变是到一个结结束点也是无无害的。这样样,当其他人人阅读您的图图时,他或她她知道您已经经考虑了如何何退出这些活活动。第第三步,添加加活动如果您您正对一个用用户案例建模模,对每个角角色(acttor)所发发出的主要步步骤引入一个个活动(该活活动可能包括括起始步骤,加加上对起始步步骤系统响应应的任何步骤骤)。如果您您正对一个高高层的商务流流程建模,对对每个主要流流程引入一个个活动,通常常为一个用户户案例或用户户案例包。最最后,如果您您正对一个方方法建模,那那么对此引入入一个活动是是很常见的。 第四步步,添加活动动间的转变我我的风格总是是应该退

28、出一一个活动,即即使它是转变变到一个结束束点。一旦一一个活动有多多个转变时,您您必需对每个个转变加以相相应标示。第五步,添添加决策点有有时候,您所所建模的逻辑辑需要做出一一个决策。有有可能是需要要检查某些事事务或比较某某些事务。要要注意的是,使使用决策点是是可选的。第六步,找找出可并行活活动之处当两两个活动间没没有直接的联联系,而且它它们都必需在在第三个活动动开始前结束束,那它们是是可以并行运运行的。下面的的活动图描述了了大学新生第第一次将如何何办理入学的的商业逻辑。 实心圆表示活动动图的起点,实实际上是一个个占位符,带带边框的实心心圆表示终点点。 圆角矩形表示执执行的过程或或活动。在该该图中

29、,虽然然您会注意到到“登记研习习班”用例将将多次调用“登登记研习班”活活动,但这些些活动却相当当紧密地映射射到用例。活活动可以细致致得多,特别别在选择记录录方法逻辑,而而不是高级商商业过程时。 菱形表示判定点点,虽然在此此示例中判定定点只有两种种可能结果;但即使有更更多可能结果果,它也同样样容易。 箭头表示活动之之间的转换,各各种活动之间间的流动次序序。 箭头上的文字表表示继续转换换所必须满足足的条件,总总是使用格式式“条件”来描述。我我猜想,在 UML 的将将来版本中,我我们将会看到到使用 UMML 约束表表示法(如“condiition”)记录的的条件。 粗线条表示可能能会并行进行行的过程

30、的开开始和结束;在大学里成成功入学后,必必须参加指定定的概况介绍绍,还要至少少登记一个研研习班并交付付一部分的学学费。 退出活动可能有有几种方法,如如您看到的“填填写入学表”活活动的那样。如如果正确填写写了表格,那那么可以继续续进行大学的的入学手续。但但是,如果表表格不正确,那那么必须获得得帮助(可能能从注册员获获得帮助)以以正确填写它它们。图 1. 第一一次入学的 UML 活动图这个活动图非常常有趣,因为为它省掉了中标识的几个用用例的逻辑。用用例模型没有有很好地表达达处理的顺序序是件好事。例例如,虽然 中显示的用用例图为您清清楚地描述了了该系统所执执行的功能类类型,但是它它没有明确地地表达这

31、些用用例可能发生生的顺序。但但是, 的活活动图做到了了这一点。总总之,不同模模型的优缺点点各有不同。 HYPERLINK l Figure1 图 2 中标识识的几个用例例的逻辑。用用例模型没有有很好地表达达处理的顺序序是件好事。例例如,虽然 HYPERLINK l Figure2 图图 2 中显显示的用例图图为您清楚地地描述了该系系统所执行的的功能类型,但但是它没有明明确地表达这这些用例可能能发生的顺序序。但是, HYPERLINK l Figure1 图图 1 的活动图做到了了这一点。总总之,不同模模型的优缺点点各有不同。 图 2. 大学学的用例图泳道 将模型型中的活动按按照职责组织织起来通

32、常很很有用。例如如,可以将一一个商业组织织处理的所有有活动组织起起来。这种分分配可以通过过将活动组织织成用线分开开的不同区域域来表示。由由于它们的外外观的缘故,这这些区域被称称作泳道。 图 722 表示了泳泳道。 图 72 泳泳道和对象流流 2. 对象象流活动图能表示对对象的值流和和控制流。对对象流状态表表示活动中输输入或输出的的对象。对输输出值而言,虚虚线箭头从活活动指向对象象流状态。对对输入值而言言,虚线箭头头从对象流状状态指向活动动。如果活动动有多个输出出值或后继控控制流,那么么箭头背向分分叉符号。同同样,多输入入箭头指向结结合符号。 图 72 表表示一个活动动和对象流状状态都被分配配到泳道中的的活动图。 活动和其他他图活动图没有表表示出计算处处理过程中的的全部细节内内容。它们表表示了活动进进行的流程但但没表示出执执行活动的对对象。活动图图是设计工作作的起点。为为了完成设计计,每个活动动必须扩展细细分成一个或或多个操作,每每个操作被指指定到具体类类。这种分配配的结果引出出了用于实现现活动图的对合合协的设计工工作。以下是数据流图图DFD:研究了一下DFFD: 结构化化分析是面向向数据流开展展需求分析工工作的一种有有效方法。一一般采用自顶顶向下,逐层层分解的演义义分析法来定定义系统的需需求,即先把把分析对象抽抽象成一个系系统

温馨提示

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

评论

0/150

提交评论