第4章 面向对象系统分析与对象类建模 2_第1页
第4章 面向对象系统分析与对象类建模 2_第2页
第4章 面向对象系统分析与对象类建模 2_第3页
第4章 面向对象系统分析与对象类建模 2_第4页
第4章 面向对象系统分析与对象类建模 2_第5页
已阅读5页,还剩68页未读 继续免费阅读

下载本文档

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

文档简介

1、 掌握面向对象系统分析的过程 掌握系统用例模型的设计方法 了解类和对象的概念、类与对象的关系等 重点掌握系统用例模型的设计和对象与类图的设计4.1 面向对象系统分析l 面向对象分析,就是抽取和整理用户需求并建立问题域精确模型的过程。l 面向对象分析过程从分析陈述用户需求的文件开始l 可能由用户(包括出资开发该软件的业主代表及最终用户)单方面写出需求陈述,也可能由系统分析员配合用户,共同写出需求陈述l 当软件项目采用招标方式确定开发单位时,“标书”往往可以作为初步的需求陈述。面向对象分析的过程4.2 系统用例建模l4.2.1分析系统用例1.业务用例与系统用例l业务用例着重于业务操作。表示实现业务

2、目标的业务中的具体工作流。业务过程可能涉及手工和自动过程,并且在一段长期的时间内进行。l系统用例着重于要设计的软件系统。参与者如何与软件系统进行交互?在系统用例说明中书写的事件流应该足够详细,便于用作编写系统测试脚本的出发点。l系统用例的执行者为操作人员所代表的岗位角色,可以是实际与系统交互的操作人员、外部衔接系统、自动服务、定时器等。银行的业务建模银行的软件系统建模业务用例模型与系统用例区别 设计范围业务用例的设计范围是业务操作,组织外部的业务参与者实现与业务组织相关的业务目标。系统用例着重于要设计的软件系统,参与者如何与软件系统进行交互 系统测试业务用例常常是以白盒形式编写系统用例几乎总是

3、以黑盒形式编写 业务角色。业务参与者是业务之外的人在系统用例图中,参与者与用例进行交互2.系统用例的确定l 将每个业务用例都绘制出相应的活动图,再将其中的“活动”进行整合,就得出所有备选系统用例l 找出所有的备选系统用例后,要对它们进行合并和筛选。合并就是将相同的用例合并成一个,筛选就是将不符合系统用例条件的备选用例去掉。如在销售管理系统中,系统用例有采购、供应商管理、客户管理、进货查询、入库管理、出库管理、库存盘点、库存查询、销售、退货处理、价格管理、销售查询等。l 一个系统用例应该是实际使用系统的用户所进行的一个操作,例如,“查看新闻列表”就不能算一个系统用例,因为它只是某系统用例的一个序

4、列项。4.2.2构造系统用例模型l分析出参与者、用例和用例之间关系后,就可以绘制系统的用例模型4.3类与对象建模概述l 面向对象分析产生分析模型。l 分析时用例模型作为输入,对用例模型进行分析,把系统分解为相互协作的分析类,通过类图、对象图来描述对象、对象的属性和对象之间的关系。l 类图用于对系统的静态结构建模,l 在系统分析阶段,类图主要用于显示角色和提供系统行为的实体的职责;l 在系统设计阶段,类图主要用于捕捉组成系统体系结构的类结构;l 在系统编码阶段,根据类图中的类及它们之间的关系实现系统的功能。 类图与其他的关系4.3.1 类图及对象图的图符1.类的表示方法l类是任何面向对象系统中最

5、重要的构造块。类是对一组具有相同属性、操作、关系和语义对象的描述。一个类可以实现一个或多个接口。类可以是作为问题域一部分的抽象,也可以是构成实现的类。 类的定义 类的属性l 在UML中,属性的完整语法形式为:l 可见性 属性名称:类型多重性=默认值特性串(类别)性质-字符串l visibility name:type multiplicity = default property-stringl 类的内容表示可选项。l 下列的属性都是合法的:student 只有属性名+student 可见性和属性名origin : point属性名和类型name : string0.1属性名、类型和多重性or

6、igin : point=(0,0)属性名、类型而后初始值id:Integerreadonly 属性名、类型和特性可见性表示 类的操作类的操作,也称为类的方法,它描述了类的动态行为,用于修改、检索类的属性或执行某些动作。在大多数抽象层次上,对类的行为特征建模时,只需简单地写下每个操作的名称。在UML中,操作的完整语法形式为:可见性 操作名称(参数名称) :返回值类型特性串(类别)性质-字符串visibility name (parameter-list) :return-type property-string操作的可见性与属性相同,命名规则也与属性相同。参数名称中的参数是用跟属性类似的方式来

7、表示的。 类的操作其语法如下:方向名称:类型 = 默认值direction name:type = default value方向可以取下述值之一:in输入参数,不能对它进行修改。out输出参数,为了向调用者传送信息可以对它进行修改。inout输入参数,为了向调用者传送信息可以对它进行修改。下列操作是合法的ldisplay 操作名 l+display 可见性和操作名lset(n:Name,s:String) 操作名和参数lrestart()gaurded 操作名和特性lgetID():interger 操作名和返回类型l+balanceOn(date:Date):Money 类的范围l特征的范

8、围指的是类目的每一个实例都有自己独特的特征值,还是类目的所有实例都共同拥有单独一个特征值。l在UML中有两种范围:实例范围是指对于一个特征,类目的每个实例均有它自己的值。这是默认的,不需要附加符号。静态范围是指对于类目的所有特征,特征的值是唯一的,也把它称作类范围,通过对特性串加下划线来表示。静态范围的特征大多用于私有属性,它们必须为一个类的所有实例所共有。 类的分类l 类有具体类、抽象类和模板类。具体类可以定义其实例 接口lUML类图元素中接口是一系列操作的集合,它指定了一个类所提供的服务,如所示。接口既可用的那个图标来表示,也可由附加了的一个标准类来表示,它直接对应于Java中的一个接口类

9、型。通常,根据接口在类图上的样子,就能知道与其他类的关系。 类的版型lUML中有三种主要的类版型:边界类、控制类和实体类。l边界类位于系统与外界的交界处,包括:用户界面类,如窗口、对话框、报表类等。通讯协议类,如TCP/IP的类。直接与外部设备交互的类和直接与外部系统交互的类。实体类l实体类通过事件流和交互图发现,采用目标领域术语命名。通常实体类对应数据库中的表,其属性对应表的字段,但实体类与数据库中的表不一定是一一对应关系。控制类是负责管理或控制其他类工作的类。l每个用例通常有一个控制类,控制用例中的事件顺序,控制类也可以在多个用例间共用。控制较少接收消息,发出较多消息。 类图的抽象层次l按

10、照Steve Cook和John Dianiels的观点,类图分为概念层、说明层和实现层。2.对象的表示方法l 对象图是类图的实例,几乎使用与类图完全相同的标识。l 对象图的两个基本元素是对象和它们之间的关系。展示的是一个对象图中表示对象的图标。l 与类图相似,水平线将图标内的文字分成了两部分,上边代表对象的名称,下边代表对象的属性和值。对象的名称表示l objectName 只有对象名;l :ClassName 只有类名;l objectName:ClassName 对象名和类名。l 所有的对象名称都加了下划线,目的是区分对象名称和类名称。l 如果没有指定一个对象的类,既没有用上面的语法显示

11、地指定,也没有在对象的说明中隐式地指定,那么这个对象的类就被认为是匿名的。l 如果只指定了类名称,那么这个没有对象名的图标代表的就是一个明显的匿名对象。4.3.2 对象/类的关系1.关联关系关联(association)是一种结构关系,说明一个事物的对象与另一个事物的对象相联系。关联关系是对象之间一种引用关系,比如客户类与订单类之间的关系。这种关系通常使用类的属性表达。给定一个连接两类的关联,可以从一个类的对象导航到另一个类的对象。关联关系是实例之间的结构关系,关联又分为一般关联、聚合关联与组合关联。UML类关系中关联关系有6种对应的修饰,它们分别是:名称、角色、多重性、聚合、组合和导航性。

12、名称(name)l关联可以有一个名称,用来描述关联的性质,通常使用一个动词或动词短语来命名关联。l名称以前缀或后缀一个指引阅读的方向指示符以消除名称含义上可能存在的歧义,方向指示符用一个实心的三角形箭头表示。l虽然关联可以有名称,但在明确给出关联的端点名的情况下不需要给出名称。 角色(role)l当一个类参与了一个关联时,它就在这个关系中扮演了一个特定的角色。角色是关联关系中一个类对另一个类所表现出来的职责。l角色名称是名词或名词短语,以解释对象是如何参与关联的。l把关联端点扮演的角色称为端点名,在UML中称为角色名。 多重性(multiplicity)l 关联的多重性是指有多少对象可以参与该

13、关联,多重性可以用来表达一个取值范围、特定值、无限定的范围或一组离散值。l 将多重性写成一个表示取值范围的表达式,其最大值和最小值可以相同,用两个圆点把它们分开。l 多重性说明对于关联另一端的类的每个对象,本端的类可能有多少个对象出现,对象的数目必须是在给定的范围内。可以精确地表示多重性为:一个(1);多个(0.*);一个或多个(1.*);整数范围, l 聚合关系是关联的一种形式,是强的关联关系。代表两个类之间的整体/局部关系,如汽车类与引挚类、轮胎类之间的关系就是整体与个体的关系。l 聚合关系描述了“has a”的关系,即整体对象拥有部分对象,是一种不稳定的包含关系。l 较强于一般关联,有整

14、体与局部的关系,并且没有了整体,局部也可单独存在。l 在UML中使用空心的菱形表示,菱形从局部指向整体l组合关系是聚合关系中的一种特殊情况,是更强形式的聚合,又被称为强聚合。l组合表示contains-a的关系,是一种强烈的包含关系。l组合类负责被组合类的生命周期,是一种更强的聚合关系,部分不能脱离整体存在。 导航性(nevigation)l 关联可以有方向,即导航。l 一般不作说明的时候,导航是双向的,不需要在线上标出箭头。l 大部分情况下导航是单向的,可以加一个箭头表示。l 导航性描述的是一个对象通过链(关联的实例)进行导航访问另一个对象,即对一个关联端点设置导航属性意味着本端的对象可以被

15、另一端的对象访问。l 可以在关联关系上加箭头表示导航方向。l 只在一个方向上可以导航的关联称为单向关联,用一条带箭头的实线来表示。l 在两个方向上都可以导航的关联称为双向关联,用一条没有箭头的实线来表示。2.依赖关系l依赖(Dependency)关系是对象之间最弱的一种关联方式,是临时性的关联。代码中一般指由局部变量、函数参数、返回值建立的对于其他对象的调用关系。一个类调用被依赖类中的某些方法而得以完成这个类的一些职责。关联和依赖的区别:l 从类之间关系的强弱程度来分,关联表示类之间的很强的关系;l 依赖表示类之间的较弱的关系;l 从类之间关系的时间角度来分,关联表示类之间的“持久”关系,这种

16、关系一般表示一种重要的业务之间的关系,需要保存的,或者说需要“持久化”的,或者说需要保存到数据库中的。3.泛化关系l 泛化(Generalization)把一般类连接到较为特殊的类,表示is-a的关系,表示一个更泛化的元素和一个更具体的元素之间的关系,也称为继承关系。l 是对象之间耦合度最大的一种关系,子类继承父类的所有细节。l 直接使用语言中的继承表达。在类图中使用带三角箭头的实线表示,箭头从子类指向父类。l 泛化表示的是模型元素之间抽象和具体的关系,也就是模型元素之间的继承关系。l 继承者具有被继承者相同的特性,同时还能在被继承者的基础上进行扩展3.泛化关系4.实现关系l 实现(Reali

17、zation)关系在类图中就是接口和实现的关系。l UML模型图中类图实现关系表示一个模型元素实现了另一个模型元素定义的操作,一般是指一个类实现了一个接口定义的方法。l 实现关系通常在两种情况下被使用:在接口与实现该接口的类之间;在用例以及实现该用例的协作之间。l 在面向对象的概念中,接口就是只定义方法,并不实现这个方法。它用来给别的类继承它,并用类的操作实现它定义方法,通过这样的方法就能够将定义和抽象分开,利于代码的维护。4.实现关系4.4类与对象建模4.4.1类图的构建1)研究分析问题领域,确定系统的需求。2)确定类,明确类的含义和责任,确定属性和操作。3)确定类之间的关系。着重分析找出类

18、之间的一般和特殊关系,部分与整体关系,研究类的继承性和多态性,把类之间的静态联系用关联、泛化、聚合、组合、依赖等联系表达出来4)调整和细化类及类之间的关系。5)绘制类图并编制相应的说明。1确定系统类识别类的方法l 可以根据用例描述中的名词用例描述中的名词确定候选类;l 根据用例确定类用例确定类;l 使用CRC分析法分析法寻找类;根据边界类、控制类和实体类的划分来帮助发现类;l 参考设计模式来确定类;l 对领域进行分析或利用已有领域分析结构得到类;l 利用RUP在分析和设计中寻找类。l 常用的类识别方法有名词识别法名词识别法;系统实体识别法;从用例中识别类;用分解与抽象技术识别类和CRC卡分析方

19、法。名词识别法l名称识别法的关键是识别系统问题域的实体,l从系统描述中标识出名词及名词词组l其中单数名词可以标识为对象l复数名词可以标识为类l如在学校管理信息系统中有学生、教师、学校和课程部门等类。用例识别法通过分析用例图帮助建立类l 用例描述中出现了哪些实体(实体类),这里的实体不是Actor,而是Actor使用系统时所调用的实体,是处在系统边界之内的实体;l 用例完成需要哪些实体配合(协作类);l 用例执行过程中会产生并存储哪些信息;l 用例要求与之关联的每个角色输入什么;l 用例反馈与之关联的每个角色输出什么;l 用例需要操作哪些设备(通讯类)。如在教学管理系统中教学干事,是一个参与者C

20、RC分析法,l CRC(Class-Responsibility-Collaboration)建模提供了一种简单的标识和组织与系统或产品需求相关的类的手段。l CRC是目前比较流行的面向对象分析建模方法。l 要识别一个候选类是否是一个真正的类,应该先确定这个候选类是否担负着职责,同时是否有协作关系。l 在CRC建模中,用户、设计者、开发人员都要参与,完成对整个面向对象工程的设计。l CRC卡是一个标准索引卡集合,包括三个部分:类名、类的职责、类的协作关系,每一张卡片表示一个类。 销售类Class:销售类说明:完成一次销售职责:协作类:创建商品商品类计算总价商品列表类创建支付支付类计算找零无 C

21、RC卡片类名:类的类型:(如设备,角色,场所,)类的特征:(如确切的,原子的,并发的,)责任协作者CRC的建模步骤l(1) 标识潜在的对象类l(2) 筛选对象类,确定最终对象类l(3) 标识责任l(4) 标识协作者l(5) 复审CRC卡UML 支持的可见性类型的标志标志可见性类型+Public#Protected-PrivatePackage2组织类并确定其关系l关联关系表示不同类的对象之间的结构关系,它在一段时间内将多个类的实例连接在一起。l关联描述的是类的对象之间逻辑上的关系,这些对象可以是同类的,也可以不是,关联的两端称为角色,如客户和订单就存在一种关联。l在UML中关联主要有三种形式用

22、一条线段标识双向的关联,称为关联;用一个有箭头的线段标识单向的关联;用一个带菱形头的线段表示关联的两端的类是整体和部分的关系,这种关联也称为聚合或组合。小王是一个爱书之人,家里各类书籍已过千册,而平时小王是一个爱书之人,家里各类书籍已过千册,而平时又时常有朋友外借,因此需要一个个人图书管理系统。又时常有朋友外借,因此需要一个个人图书管理系统。该系统应该能够将书籍的基本信息按计算机类、非计算该系统应该能够将书籍的基本信息按计算机类、非计算机类分别建档,实现按书名、作者、类别、出版社等关机类分别建档,实现按书名、作者、类别、出版社等关键字的组合查询功能。在使用该系统录入新书籍时系统键字的组合查询功

23、能。在使用该系统录入新书籍时系统会自动按规则生成书号,可以修改信息,但一经创建就会自动按规则生成书号,可以修改信息,但一经创建就不允许删除。该系统还应该能够对书籍的外借情况进行不允许删除。该系统还应该能够对书籍的外借情况进行记录,可对外借情况列表打印。另外,还希望能够对书记录,可对外借情况列表打印。另外,还希望能够对书籍的购买金额、册数按特定时间周期进行统计籍的购买金额、册数按特定时间周期进行统计 小王小王是一个爱书之是一个爱书之人人,家里家里各类各类书籍书籍已过千册,而平时已过千册,而平时又时常有又时常有朋友朋友外借,因此需要一个外借,因此需要一个个人图书管理系统个人图书管理系统。该系统应该

24、能够将书籍的该系统应该能够将书籍的基本信息基本信息按按计算机类计算机类、非计算非计算机类机类分别建档,实现按分别建档,实现按书名书名、作者作者、类别类别、出版社出版社等等关关键字键字的组合查询的组合查询功能功能。在使用该系统录入。在使用该系统录入新书籍新书籍时时系统系统会自动按会自动按规则规则生成生成书号书号,可以修改,可以修改信息信息,但一经创建就,但一经创建就不允许删除。该系统还应该能够对书籍的外借情况进行不允许删除。该系统还应该能够对书籍的外借情况进行记录记录,可对,可对外借情况列表外借情况列表打印。另外,还希望能够对书打印。另外,还希望能够对书籍的籍的购买金额购买金额、册数册数按按特定

25、时间周期特定时间周期进行统计进行统计 “小王小王”、“人人”、“家里家里”很明显是系统外的概念,无须对其建很明显是系统外的概念,无须对其建模;模;而而“个人图书管理系统个人图书管理系统”、“系统系统”指的就是将要开发的系统,即指的就是将要开发的系统,即系统本身,也无须对其进行建模;系统本身,也无须对其进行建模;很明显很明显“书籍书籍”是一个很重要的类,而是一个很重要的类,而“书名书名”、“作者作者”、“类类别别”、“出版社出版社”、“书号书号”则都是用来描述书籍的基本信息的,则都是用来描述书籍的基本信息的,因此应该作为因此应该作为“书籍书籍”类的属性处理,而类的属性处理,而“规则规则”是指书号

26、的生成是指书号的生成规则,而书号则是书籍的一个属性,因此规则,而书号则是书籍的一个属性,因此“规则规则”可以作为编写可以作为编写“书籍书籍”类构造函数的指南。类构造函数的指南。“基本信息基本信息”则是书名、作者、类别等描述书籍的基本信息统称,则是书名、作者、类别等描述书籍的基本信息统称,“关键字关键字”则是代表其中之一,因此无需对其建模;则是代表其中之一,因此无需对其建模;“功能功能”、“新书籍新书籍”、“信息信息”、“记录记录”都是在描述需求时使都是在描述需求时使用到的一些相关词语,并不是问题域的本质,因此先可以将其淘汰用到的一些相关词语,并不是问题域的本质,因此先可以将其淘汰掉;掉;“计算

27、机类计算机类”、“非计算机类非计算机类”是该系统中图书的两大分类,因此是该系统中图书的两大分类,因此应该对其建模,并改名为应该对其建模,并改名为“计算机类书籍计算机类书籍”和和“非计算机类书籍非计算机类书籍”,以减少歧义;以减少歧义;“外借情况外借情况”则是用来表示一次借阅行为,应该成为一个候选类,则是用来表示一次借阅行为,应该成为一个候选类,多个外借情况将组成多个外借情况将组成“外借情况列表外借情况列表”,而外借情况中一个很重要,而外借情况中一个很重要的角色是的角色是“朋友朋友”借阅主体。虽然到本系统中并不需要建立借阅主体。虽然到本系统中并不需要建立“朋朋友友”的资料库,但考虑到可能会需要列

28、出某个朋友的借阅情况,因的资料库,但考虑到可能会需要列出某个朋友的借阅情况,因此还是将其列为候选类。为了能够更好地表述,将此还是将其列为候选类。为了能够更好地表述,将“外借情况外借情况”改改名为名为“借阅记录借阅记录”,而将,而将“外借情况列表外借情况列表”改名为改名为“借阅记录列借阅记录列表表”;“购买金额购买金额”、“册数册数”都是统计的结果,都是一个数字,因此不都是统计的结果,都是一个数字,因此不用将其建模,而用将其建模,而“特定时限特定时限”则是统计的范围,也无需将其建模;则是统计的范围,也无需将其建模;不过从这里的分析中,我们可以发现,在该需求描述中隐藏着一个不过从这里的分析中,我们

29、可以发现,在该需求描述中隐藏着一个关键类关键类书籍列表,也就是执行统计的主体。书籍列表,也就是执行统计的主体。在使用在使用“名词动词法名词动词法”寻找类的时候,很多团队会在此耗费大量的时间,寻找类的时候,很多团队会在此耗费大量的时间,特别是对于中大型项目,这样很容易迷失方向。其实在此主要的目的是对特别是对于中大型项目,这样很容易迷失方向。其实在此主要的目的是对问题领域建立概要的了解,无需太过咬文嚼字问题领域建立概要的了解,无需太过咬文嚼字 书籍 计算机类书籍 非计算机类书籍借阅记录 借阅记录列表 书籍列表导航性分析:导航性分析:Book与与BookList之间、之间、BorrowRecord和

30、和BorrowList之间是组合关系均无需添加方向描述,而之间是组合关系均无需添加方向描述,而Book与与BorrowRecord之间则是双方关联,也无需添加之间则是双方关联,也无需添加约束:约束:Book对象创建后就不能够对象创建后就不能够被删除只能被修改,因此在被删除只能被修改,因此在Book类边上加上用自由文本写的约束类边上加上用自由文本写的约束 ;一本书要么属于计算机类,要么一本书要么属于计算机类,要么属于非计算机类,因此在属于非计算机类,因此在ItBook和和OtherBook间加了间加了 “Xor”约束约束限定符:一本书只有一册,因此只限定符:一本书只有一册,因此只能够被借一次,因

31、此对于一本能够被借一次,因此对于一本Book而言只能有一个而言只能有一个RecordId与其对应与其对应 l 例1:确定银行网络系统ATM(Auto Trade Machine)的类,l 系统简要描述l 银行网络系统包括人工出纳和分行共享的自动出纳机;各分理处用自己的计算机处理l 业务(保存帐户、处理事务等);各分理处与出纳站通过网络通信;出纳站录入帐户和事l 务数据;自动出纳机与分行计算机通信;自动出纳机与用户接口,接受现金卡;发放现金;l 打印收据;分行计算机与拨款分理处结帐。l 要求系统正确处理同一帐户的并发访问;网络费用平均摊派给各分理处。l 类的识别l 采用名词识别法:检查问题陈述中

32、的所有名词,得到初始类:l 软件 银行网络 分行计算机 系统 分行 出纳站l 出纳员 分理处 分理处计算机 自动出纳机 帐户 帐户数据 现金卡 事务 事务数据 用户 顾客 现金l 收据 访问 费用 安全措施 记录保管根据下述原则进一步确定类: 去掉冗余类:如两个类表述同一信息,应保留最具有描述能力的类,如“用户”与“顾客”是重复的描述,由于“顾客”更具有描述性,故保留它,删除“用户”。去掉不相干的类:删除与问题无关或关系不大的类,如“费用”。 删除模糊的类:有些初始类边界定义不确切,或范围太广,应该删除。如“系统”、“安全措施”、“记录保管”、“银行网络”。 删除那些性质独立性不强的,而应该是

33、类“属性”的候选类:如“帐户数据”、“收据”、“现金”、“事务数据”。 所描述的操作不适宜作为对象类,并被其自身所操纵,所描述的只是实现过程中的暂时的对象,应删去。如“软件”,“访问”。4.4.2对象图的构建l 对象图(Object Diagram)是表示在某一时刻一组对象以及它们之间的关系的图,对象图由节点以及连接这些节点之间的连线组成。l 如果把类图实例化后就得到对象图,所以说对象图是对包含在类图中的事物的实例建模,是类图的一个特例,其表示方法也类似于类图。l 它们的不同点在于对象图显示类的多个对象实例,而不是实际的类。l 一个对象图是类图的一个实例。l 由于对象存在生命周期,因此对象图只能在系统某一时间段

温馨提示

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

评论

0/150

提交评论