收藏 分享(赏)

管理信息系统面向对象分析与设计.ppt

上传人:gsy285395 文档编号:5946180 上传时间:2019-03-21 格式:PPT 页数:151 大小:2.24MB
下载 相关 举报
管理信息系统面向对象分析与设计.ppt_第1页
第1页 / 共151页
管理信息系统面向对象分析与设计.ppt_第2页
第2页 / 共151页
管理信息系统面向对象分析与设计.ppt_第3页
第3页 / 共151页
管理信息系统面向对象分析与设计.ppt_第4页
第4页 / 共151页
管理信息系统面向对象分析与设计.ppt_第5页
第5页 / 共151页
点击查看更多>>
资源描述

1、面向对象的基本概念,面向对象技术的基本观点: 客观世界由对象组成,任何客观实体都是对象,复杂对象可以由简单对象组成。 类是对象的抽象。具有相同数据和操作的对象可归纳成类,对象是类的一个实例。 类可以派生出子类,子类除了继承父类的全部特性外还可以有自己的特性。 对象之间的联系通过消息传递来维系。 客观世界实际存在的都是对象,而不是类。,对象表示现实世界中某个具体的事物。 抽象是从特定的实例中抽取共同的性质以形成一般化概念的过程。 对象具有两方面的含义:在现实世界中: 是客观世界中的一个实体在计算机世界中: 是一个可标识的存储区域加操作 对象作为一个可以显现给周围世界的一个实体,是构成物理世界的个

2、体元素。,一个对象的实例图解,对象和类既有区别又有联系,类是创建实例对象的代码模板,而对象则是按照类创建出来的一个个实例,有点像汽车的设计图纸和汽车的关系。 采用面向对象程序设计技术的原因主要有两个: 其一是我们认识世界研究乃至于改造世界都是以“对象”为基本单位而进行的,我们将这一人类活动衍生到计算机编程中来顺理成章; 其二是为了提高程序设计的效率,尤其是在越来越复杂问题环境中,解决模块的颗粒度问题,既内聚性和耦合性的分界线问题。,类是具有共同属性和行为的对象的抽象。 类可以定义为数据和方法的集合。 类也称为模板,因为它们提供了对象的基本框架。,类,对象,抽象,实例化,属性或状态,操作或行为,

3、数据或变量,方法,封装的实体=数据+方法,抽象就是从大量的普遍的个体中抽象出共有的属性和行为,从而形成一般化概念的过程。在现实世界中,人们正是通过抽象来理解复杂的事物。例如,人们并没有把汽车当作成百上千的零件组成来认识,而是把它当作具有自己特定行为的对象。我们可以忽略发动机、液压传输、刹车系统等如何工作的细节,而习惯于把汽车当作一个整体来认识。,如果从一个抽象模型中剔除足够多的细节,则它将变得足够通用,足以适应于多种情况或场合,这样的抽象常常在程序设计中非常有用。经过对大量事物的抽象和归类,可以形成相应的类属层次,如下图就是一个自然界各事物的一个分类抽象:,抽象原则,8,封装原则,封装原则是一

4、个普适原则,正如我们看到的、我们学习到的、以及我们周围的一切实体,包括动物、植物、各种人造物品都是封装的,一般情况下,我们只能看到这些物体的“外壳”,看不到其内部结构。 这种将内部结构和功能对外隐藏,只留下必需的接口和外界进行能量或信息交流就是封装,比如说我们人类,我们的内脏、血管、神经都被封装在我们皮肤里面,对外表现出来的仅仅是皮肤和五官接口,也就是说我们都是内聚性很强的对象个体,但我们又留有眼耳鼻口等接口,我们通过这些接口在这个世间生存和忙碌。,在面向对象程序设计中,我们应该遵循同样的原则,将对象的内部结构对外作信息隐藏,让外部不可访问,但提供一系列的共有接口,用来进行信息和能量交换。在面

5、向对象程序设计语言中,实现封装的关键字是private, 提供接口的关键字是public。,9,继承原则,继承原则也是一个普适原则,如果没有继承,我们的生物世界就会永远在生物链的底端徘徊,就不会出现如此丰富的生态世界。继承是发展的一部分,只有不断地继承旧的、成熟的东西,才能发展出更新的、更先进的东西,否则,我们就会在原地踏步,永远重复。 在面向对象程序设计中,我们从已经存在的类产生新类的机制,我们也称之为继承,原来存在的类叫父类(或叫基类),新类叫子类(或叫派生类)。子类中会自动拥有父类中的设计代码,继承带来的好处是:一方面可减少程序设计的错误,另一方面,做到了代码复用,可简化和加快程序设计,

6、提高了工作效率。,继承不仅仅是简单的拥有父类的设计代码,继承机制本身就具有进化的能力,跟生物世界一样,子代总是比父代更能适应环境。我们通过对父类的设计作一些局部的修改,使得子类对象具有更好的适应能力和强大的生存能力。,10,多态原则,多态性原则是生物多样性在面向对象程序设计中的应用,面对同样的刺激、消息等,不同的动物的反应是不一样的。在面向对象程序设计中,如果我们有许多不同的对象,每个对象都具有相应的行为模式(即执行代码),通过对每个对象发送同样的消息,但每个对象的执行的代码是不一样的,这就是面向对象程序设计中的多态。 多态性(polymorphism)是面向对象编程的基础属性,它允许多个方法

7、使用同一个接口,从而导致在不同的上下文中,对象的执行代码可以不一样。面向对象程序设计从多个方面支持多态性,其中两个方面最为突出。第一个是每个方法都可以被子类重写;第二个是设立interface关键字。,基于UML的面向对象分析设计过程,识别系统的用例和角色 进行系统分析,并抽象出类 设计系统和系统中的类及其行为,1. 面向对象的建模语言 2. 面向对象的程序设计语言,视图,系统通常是从多个不同的方面来描述的: 系统的使用实例 系统的逻辑结构 系统的构成 系统的并发特性 系统的配置,视图,视图的分类: 用例视图 逻辑视图 组件视图 并发视图 配置视图,构成系统模型的几种视图,用例视图,用途:描述

8、系统应该具备的功能,即被称为参与者的外部用户所能观察到的功能。 用例视图是几个视图的核心,它的内容直接驱动其他视图的开发。,逻辑视图,用途:描述用例视图中提出的系统功能的实现。 逻辑视图既描述系统的静态结构,也描述系统内部的动态协作关系。 使用者:主要是设计人员和开发人员。 组成:静态结构在类图和对象图中进行描述;动态模型在状态图、时序图、协作图以及活动图中进行描述。,并发视图,用途:考虑资源的有效利用、代码的并行执行以及系统环境中异步事件的处理。 使用者:主要是开发人员和系统集成人员。 组成:状态图、协作图和活动图。,组件视图,用途:描述系统的实现模块以及它们之间的依赖关系。 组成:组件图。

9、 使用者:主要是开发人员。,配置视图,用途:显示系统的物理部署,并描述位于节点实例上的运行组件实例的部署情况。 组成:配置图。 使用者:开发人员、系统集成人员和测试人员。,图,1 用例图 2 类图 3 对象图 4 状态图 5 时序图 6 协作图 7 活动图 8 组件图 9 配置图,用例图,用例图的概念 用例图建模技术 实例图书馆管理系统中的用例图,用例图显示谁将是相关的用户、用户希望系统提供什么服务以及用户需要为系统提供的服务。 用例图最常用来描述系统以及子系统。,用例图包含6个元素: 参与者(Actor) 用例(Use Case) 关联关系(Association) 包含关系(Include

10、) 扩展关系(Extend) 泛化关系(Generalization),参与者,由参与用例时所担当的角色来表示。 每个参与者可以参与一个或多个用例。,参与者间的关系,在用例图中,使用泛化关系来描述多个参与者之间的公共行为。,参与者间的泛化关系示例:,用例,外部可见的系统功能单元。 识别用例最好的方法就是从分析系统的参与者开始,考虑每个参与者是如何使用系统的。,5.1.4 用例间的关系,1 关联关系 2 包含关系 3 扩展关系 4 泛化关系,关联关系,表示参与者用例之间进行通信。 不同的参与者可以访问相同的用例。,包含关系,客户用例可以简单地包含提供者用例具有的行为,并把它所包含的用例行为作为自

11、身行为的一部分。,扩展关系,扩展用例被定义为基础用例的增量扩展。 基础用例提供扩展点以添加新的行为。 扩展用例提供插入片段以插入到基础用例的扩展点上。,泛化关系,父用例也可以被特别列举为一个或多个子用例。 子用例表示父用例的特殊形式。 子用例从父用例处继承行为和属性,还可以添加行为或覆盖、改变继承的行为。,实例图书馆管理系统的用例图,读者: 借书 还书 书籍预定 图书馆管理员: 书籍借出处理 书籍归还处理 预定信息处理,系统管理员: 增加书目 删除或更新书目 增加书籍 减少书籍 增加读者帐户信息 删除或更新读者帐户信息 书籍信息查询 读者信息查询,1. 借阅者请求服务的用例,登录系统 查询自己

12、的借阅信息 查询书籍信息 预定书籍 借阅书籍 归还书籍,2. 图书馆管理员处理借书、还书的用例,处理书籍借阅 处理书籍归还 删除预定信息,3. 系统管理员进行系统维护的用例,查询借阅者信息 查询书籍信息 增加书目 删除或更新书目 增加书籍 删除书籍 添加借阅者帐户 删除或更新借阅者帐户,图书馆管理系统的用例图,1. 借阅者请求服务的用例图 2. 图书馆管理员处理借书、还书的用例图 3. 系统管理员进行系统维护的用例图,1. 借阅者请求服务的用例图,2. 图书馆管理员处理借书、还书的用例图,3. 系统管理员进行系统维护的用例图,类图,描述类、接口及它们之间关系的图。 显示系统中各个类的静态结构。

13、,类,面向对象系统组织结构的核心。 对一组具有相同属性、操作、关系和语义的对象的抽象。 包括名称部分(Name)、属性部分(Attribute)和操作部分(Operation)。,名称,分为简单名称和路径名称。,属性,描述了类在软件系统中代表的事物(即对象)所具备的特性。 类可以有任意数目的属性,也可以没有属性。 在UML中,类属性的语法为:,属性,1. 可见性 2. 属性名 3. 类型 4. 初始值 5. 属性字符串,(1) 可见性,类型: 公有(Public) “” 私有(Private)“” 受保护(Protected)“” 缺省的成员,(2) 属性名,每个属性都必须有一个名字以区别于类

14、中的其他属性。 属性名由描述所属类的特性的名词或名词短语组成。 单字属性名小写,如果属性名包含了多个单词,这些单词要合并,且除了第一个单词外其余单词的首字母要大写。,(3) 类型,简单类型: 整型 布尔型 实型 枚举类型 系统中的其他类,(4) 初始值,目的: 保护系统的完整性,防止漏掉取值或被非法的值破坏系统的完整性。 为用户提供易用性。,(5) 属性字符串,指定关于属性的其他信息。 任何希望添加在属性定义字符串值但又没有合适地方可以加入的规则,都可以放在属性字符串里。,操作,对类的对象所能做的事务的抽象。 一个类可以有任意数量的操作或者根本没有操作。 返回类型、名称和参数一起被称为操作签名

15、。 在UML中,类操作的语法为:,操作,1. 可见性 2. 操作名 3. 参数表 4. 返回类型 5. 属性字符串,(1) 可见性,类型: 公有(Public) “” 私有(Private) “” 受保护(Protected) “”,(2) 操作名,用来描述所属类的行为的动词或动词短语。 单字操作名小写,如果操作名包含了多个单词,这些单词要合并,并且除了第一个单词外其余单词的首字母要大写。,(3) 参数表,一些按顺序排列的属性定义了操作的输入。 是可选的,即操作不一定必须有参数才行。 定义方式:“名称:类型”。 若存在多个参数,将各个参数用逗号隔开。 参数可以具有默认值。,(4) 返回类型,是

16、可选的,即操作不一定必须有返回类型。 绝大部分编程语言只支持一个返回值。 具体的编程语言一般要加一个关键字void来表示无返回值。,(5) 属性字符串,在操作的定义中加入一些除了预定义元素之外的信息。,注释,注释可以包含图形也可以包含文本。,很多人用$来表示一个查找对象的函数; 标识符由字母、数字、下划线_、$组成; 必须以字母字符、下划线、$符号开始,并且首字母不能是数字。,接口,在没有给出对象的实现和状态的情况下对对象行为的描述。接口是一套规范和标准,没有具体的实现细节,只有常量和公有抽象方法。 包含操作但不包含属性。 没有对外界可见的关联。 一个类可以实现一个或多个接口。一个接口可以从几

17、个接口继承,类之间的关系,1 依赖关系 2 泛化关系 3 关联关系 4 实现关系,依赖关系,表示两个或多个模型元素之间语义上的关系。 客户以某种形式依赖于提供者。 关联、实现和泛化都是依赖关系。,泛化关系,存在于一般元素和特殊元素间的分类关系。 可以用于类、用例以及其他模型元素。 描述了一种“is a kind of” 的关系。,泛化关系,泛化主要用途: 多态 继承 单继承 多重继承,关联关系,一种结构关系。 指明事物的对象之间的联系。,关联关系,1. 名称(Name) 2. 角色(Role) 3. 多重性(Multiplicity) 4. 聚合关系(Aggregation) 5. 组合关系(

18、Composition) 6. 导航性(Navigation),(1) 名称,使用一个动词或动词短语来命名关联。 清晰而简洁地说明对象间关系。 关联的名称并不是必需的。 可以前缀或后缀一个指引阅读方向的方向指示符,以消除歧义。,(2) 角色,关联关系中一个类对另一个类所表现出来的职责。 角色的名称应该是名词或名词短语,以解释对象是如何参与关系的。,(3) 多重性,指有多少对象可以参与该关联。 可以表达一个取值范围、特定值、无限定的范围或一组离散值。 格式:“minimummaximum” (均为Int型)。 赋给一个端点的多重性表示该端点可以有多少个对象与另一个端点的一个对象关联。,(4)聚合

19、关系,一种特殊类型的关联。 表示整体与部分关系的关联。 描述了“has a”的关系。,(5) 组合关系,聚合关系中的一种特殊情况,是更强形式的聚合,又称强聚合。 成员对象的生命周期取决于聚合的生命周期。 聚合不仅控制着成员对象的行为,而且控制着成员对象的创建和解构。,(6) 导航性,包括:单向关联和双向关联。,实现关系,泛化和实现都可以将一般描述与具体描述联系起来: 泛化将同一语义层上的元素连接起来,并且通常在同一模型内。 实现将不同语义层内的元素连接起来,并且通常建立在不同的模型内。,图书馆管理系统的类图,包,维护和控制系统总体结构的重要建模工具。 方便理解和处理整个模型,包,将多个元素组织

20、为语义相关组的通用机制。 包的内容:拥有或引用的模型元素。 包的实例没有任何语义。 仅在建模时有意义,而不必转换到可执行的系统中。,名称,每个包必须有一个与其他包相区别的名称。 两种形式:简单名和路径名。,拥有的元素,拥有是一种组成关系。 包拥有的元素:类、接口、组件、节点、协作、用例以及其他包。 一个模型元素不能被一个以上的包所拥有。 如果包被撤销,其中的元素也要被撤销。 一个包形成了一个命名空间。,可见性,可见性的类型: 公有的(public) “” 受保护的(protected) “” 私有的(private)“”,图书馆管理系统的包图,状态图,一个状态图表示一个状态机。 状态机是展示状

21、态与状态转换的图。 状态机包含了一个类的对象在其生命期间所有状态的序列以及对象对接受到的事件所产生的反应。 利用状态机可以精确地描述对象的行为。,状态图,组成: 状态(State) 转换(Transition) 初始状态(Start State) 终结状态(End State) 判定(Decision),状态图,示意图:,状态,状态由一个带圆角的矩形表示。 状态图标可以分为三部分: 名称 内部转换 嵌套状态,转换,转换用带箭头的直线表示,一端连接源状态即转出的状态,箭头一端连接目标状态即转入的状态。 转换可以标注与此转换相关的选项如事件、动作和监护条件。,初始状态,初始状态代表状态图的起始位置

22、,只能作为转换的源,而不能作为转换的目标。 初始状态在一个状态图中只允许有一个,它用一个实心的圆表示。,终止状态,终止状态是模型元素的最后状态,是一个状态图的终止点。 终止状态只能作为转换的目标,而不能作为转换的源。 终止状态在一个状态图中可以有多个,它用一个套有一个实心圆的空心圆表示。,判定,判定在状态图中的位置:工作流在此处按监护条件的取值而发生分支。 判定用空心小菱形表示。,判定,因为监护条件为布尔表达式,所以通常条件下的判定只有一个入转换和两个出转换。 根据监护条件的真假可以触发不同的分支转换。,入口动作与出口动作,入口动作和出口动作表示进入或退出这个状态所要执行的动作。 入口动作用“

23、entry/要执行的动作”表达,而出口动作用“exit/要执行的动作”表达。,事件,事件表示在某一特定的时间或空间出现的能够引发状态改变的一种运动变化。 事件是一个激励的出现,它定义一个触发以触发对象改变其状态,任何影响对象的事物都可以是事件。,转换,转换表示当一个特定事件发生或者某些条件得到满足时,一个源状态下的对象在完成一定的动作后将发生状态转变,转向另一个称之为目标状态的状态。,外部转换,外部转换是一种改变对象状态的转换,是最常见的一种转换。 外部转换用从源状态到目标状态的箭头表示。,内部转换,内部转换有一个源状态但是没有目标状态,它转换后的状态仍旧是它本身。,图书馆管理系统的状态图,1

24、. 书的状态图 2. 借阅凭证的状态图,1. 书的状态图,2. 借阅凭证的状态图,活动图,活动图是一种描述系统行为的图,它用于展现参与行为的类所进行的各种活动的顺序关系。 活动图与状态图都是状态机的表现形式。 活动图与状态图的区别: 活动图着重表现从一个活动到另一个活动的控制流,是内部处理驱动的流程。 状态图着重描述从一个状态到另一个状态的流程,主要有外部事件的参与。,活动图的图形表示,活动图与流程图的区别,活动图能够表示并发活动的情形,而流程图做不到。 活动图是面向对象的,而流程图是面向过程的。,分支与合并,分叉与汇合,分叉可以用来描述并发线程,每个分叉可以有一个输入转换和两个或多个输出转换

25、,每个转换都可以是独立的控制流。 汇合代表两个或多个并发控制流同步发生,当所有的控制流都达到汇合点后,控制才能继续往下进行。每个汇合可以有两个或多个输入转换和一个输出转换。 分叉和汇合都使用加粗的水平线段表示。,分叉与汇合,泳道,泳道将活动图中的活动化分为若干组,并把每一组指定给负责这组活动的业务组织即对象。 泳道区分了负责活动的对象,明确地表示了哪些活动是由哪些对象进行的。 每个活动只能明确地属于一个泳道。 泳道用垂直实线绘出,垂直线分隔的区域就是泳道。在泳道上方可以给出泳道的名字或对象(对象类)的名字,该对象(对象类)负责泳道内的全部活动。 泳道没有顺序,不同泳道中的活动既可以顺序进行也可

26、以并发进行,动作流和对象流允许穿越分隔线。,泳道,活动的分解,一个活动可以分为若干个动作或子活动,这些动作和子活动本身可以组成一个活动图。 一个包含子活动的活动和嵌套了子状态的组合状态类似,概念上也相对统一。 一个不含内嵌活动或动作的活动称之为简单活动;一个嵌套了若干活动或动作的活动称之为组合活动,组合活动有自己的名字和相应的子活动图。,活动的分解,图书馆管理系统的活动图,1. 借阅者的活动图 2. 图书管理员的活动图 3. 系统管理员的活动图,1. 借阅者的活动图,2. 图书管理员的活动图,3. 系统管理员的活动图,系统管理员维护借阅者帐户的活动图 系统管理员进行书目信息维护的活动图 系统管

27、理员维护书籍信息的活动图,(1)系统管理员维护借阅者帐户的活动图,(2)系统管理员进行书目信息维护的活动图,(3)系统管理员维护书籍信息的活动图,时序图,时序图是强调消息时间顺序的交互图。 时序图描述了对象之间传送消息的时间顺序,用来表示用例中的行为顺序。 时序图将交互关系表示为一个二维图。其中,纵轴是时间轴,时间沿竖线向下延伸。横轴代表了在协作中各独立的对象。,时序图示例:,时序图的组成,时序图包含了4个元素: 对象(Object) 生命线(Lifeline) 消息(Message) 激活(Activation),对象,时序图中对象的符号和对象图中对象所用的符号一样。 将对象置于时序图的顶部

28、意味着在交互开始的时候对象就已经存在了,如果对象的位置不在顶部,那么表示对象是在交互的过程中被创建的。,生命线,生命线是一条垂直的虚线,表示时序图中的对象在一段时间内的存在。每个对象的底部中心的位置都带有生命线。 生命线是一个时间线,从时序图的顶部一直延伸到底部,所用的时间取决于交互持续的时间。 对象与生命线结合在一起称为对象的生命线,对象的生命线包含矩形的对象图标以及图标下面的生命线。,生命线,对象的生命线:,消息,消息定义的是对象之间某种形式的通信,它可以激发某个操作、唤起信号或导致目标对象的创建或撤销。 消息是两个对象之间的单路通信,从发送方到接收方的控制信息流。 消息可以用于在对象间传

29、递参数。 消息可以是信号,也可以是调用。 在UML中,消息使用箭头来表示,箭头的类型表示了消息的类型。,消息,激活,激活表示该对象被占用以完成某个任务,去激活指的则是对象处于空闲状态、在等待消息。 在UML中,为了表示对象是激活的,可以将该对象的生命线拓宽成为矩形。其中的矩形称为激活条或控制期,对象就是在激活条的顶部被激活的,对象在完成自己的工作后被去激活。,激活条,对象的创建和撤销,如果对象位于时序图的顶部,说明在交互开始之前该对象已经存在了。如果对象是在交互的过程中创建的,那么它应当位于图的中间部分。 对象在创建消息发生之后才能存在,对象的生命线也是在创建消息之后才存在的。,对象的创建和撤

30、销,创建对象的两种表示方法:,对象的创建和撤销,如果要撤销一个对象,只要在其生命线终止点放置一个“X”符号即可,该点通常是对删除或取消消息的回应。,1. 系统管理员添加书籍的时序图,图书管理员处理借书的时序图 (不包括预留书籍的情况),3. 系统管理员删除书目的时序图,4. 借阅者预留书籍的时序图,组件图,组件图描述了软件的各种组件和它们之间的依赖关系。 组件图中通常包含3个元素: 组件(Component) 接口(Interface) 依赖关系(Dependency),组件图示例:,组件,组件是定义了良好接口的物理实现单元,是系统中可替换的物理部件。 组件可以是源代码组件、二进制组件或一个可

31、执行的组件。 在UML中,组件用一个左侧带有突出两个小矩形的矩形来表示。,组件,组件与类的比较:,接口,接口和组件之间的关系分为两种: 实现关系(Realization) 依赖关系(Dependency) 在图中,接口和组件之间用实线连接表示实现关系;而接口和组件之间用虚线箭头连接则表示依赖关系。,依赖关系,组件图用依赖关系表示各组件之间存在的关系类型。 在UML中,组件图中依赖关系的表示方法与类图中依赖关系相同,都是一个由客户指向提供者的虚线箭头。,图书馆管理系统的组件图,1. 业务对象组件图 2. 用户界面组件图,1. 业务对象组件图,2. 用户界面组件图,配置图,配置图描述了运行软件的系

32、统中硬件和软件的物理结构。 配置图中通常包含2个元素: 节点(Node) 关联关系(Association),概述,配置图示例:,节点,节点是在运行时代表计算资源的的物理元素。 节点通常拥有一些内存,并具有处理能力。 节点通过查看对实现系统有用的硬件资源来确定,这需要从能力和物理位置两方面来考虑。 在UML中,节点用一个立方体来表示。,节点的种类,在实际的建模过程中,可以把节点分为两种类型: 处理器(Processor) 设备(Device),1. 处理器,处理器是能够执行软件、具有计算能力的节点。,2. 设备,设备是没有计算能力的节点,通常情况下都是通过其接口为外部提供某种服务。,节点中的配置,配置图可以将节点和组件结合起来,以建模处理资源和软件实现之间的关系。 当组件驻留在某个节点时,可以将它建模在图上该节点的内部。 为显示组件之间的逻辑通信,需要添加一条表示依赖关系的虚线箭头。,节点中的配置,驻留在节点上的组件,节点中的配置,可以在节点和组件之间添加一条表示依赖关系的虚线箭头,并使用构造型来表示节点对组件的包容。,关联关系,配置图用关联关系表示各节点之间通信路径,表示为一条实线。 在连接硬件时通常关心节点之间是如何连接的,因此关联关系一般不使用名称,而是使用构造型。,关联关系,关联关系示例:,图书馆管理系统的配置图,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 教育学

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报