收藏 分享(赏)

项目二.ppt

上传人:Facebook 文档编号:3818131 上传时间:2018-11-19 格式:PPT 页数:55 大小:724.50KB
下载 相关 举报
项目二.ppt_第1页
第1页 / 共55页
项目二.ppt_第2页
第2页 / 共55页
项目二.ppt_第3页
第3页 / 共55页
项目二.ppt_第4页
第4页 / 共55页
项目二.ppt_第5页
第5页 / 共55页
点击查看更多>>
资源描述

1、项目2 UML和Rational Rose建模指南 (网络教学系统),本章介绍了ROSE这个面向对象的建模工具,利用ROSE这个CASE(计算机辅助软件工程)工具,可以建立用UML描述的软件系统的各种模型,而且可以自动生成和维护像C+、Java、VB和Oracle等语言和系统的代码框架。学会它,掌握它,并用它来解决面向对象的分析与设计及建模方面的实际问题。,软件建模包括三个模型:功能模型、业务模型、数据模型,其中功能模型和业务模型在需求分析时开始建模,数据模型在设计时建模。功能模型描述系统能做什么,即对系统的功能、性能、接口和界面进行定义;业务模型主要是从业务的角度而非技术角度对系统进行建模。

2、即描述系统在何时、何地、由何角色、按什么业务规则去做,以及操作的步骤和流程;数据模型描述系统工作前的数据来自何处,工作中的数据暂存何处,工作后的数据放到何处,以及这些数据之间的关联,即对系统的数据结构进行定义。这三个模型的建模思想与建模方法,也可以用建模工具Rational Rose来加以实现。 Rational Rose是面向对象分析与设计的最好建模工具,它的应用领域宽,应用时间长,也较为成熟,但是在国内普及面还不够广泛。Rational Rose的理论基础是统一建模语言UML,在学习Rational Rose之前,必须对UML有所了解。,掌握Rose安装方法。 熟悉Rose建模环境的使用方

3、法。 掌握用例图建模方法 掌握类图的基本概念及类图建模方法 了解对象图和包图建模方法 掌握时序图和协作图建模方法 掌握状态图和活动图建模方法 结合案例网络教学系统,用Rose能实现面向对象的建模,内容安排,2.1 UML和Rational Rose建模概述 2.2 用例图建模方法 2.3 类图和对象图建模方法 2.4 用Rose设计动态模型,2.1 UML和Rational Rose建模概述,UML的中文含意是统一建模语言(Unified Modeling Language),它是一种通用的可视化的建模语言,用于对软件系统进行描述、可视化处理及构造和建立软件系统的工作文档。UML包括语义概念、

4、表示法和指导规范,提供了静态、动态、系统环境及组织结构的模型。 Rose(Rational Object-oriented Software Engineering)是由美国Rational公司推出的面向对象分析与设计的最好建模工具,利用它可以建立用UML描述的软件系统的各种模型,而且可以自动生成和维护像C+、Java、VB和Oracle等语言和系统的代码, Rational Rose包括了统一建模语言(UML), 面向对象的软件工程(OOSE)及对象模型技术(OMT)。,模型是对现实的一种简化表示。它可以是一个对象的微缩表示、是一种用于产生某事物的模式,也可以是一种设计或一个类型,还可以是一

5、个待模仿或仿真的样例。模型不一定是可视化的,模型也可以用文字来描述,但是可视化模型可以更准确的展示模型所代表的含义。软件系统建模的主要目的是为了能够更好的理解我们正在开发的系统。 Rational Rose是一套可视化的建模工具,它可用于在C/S分布式企业环境下开发健壮的、有效的解决方案以满足真正的业务需求。本项目通过指导你一步步地进行一个复杂的业务问题网络教学系统的真正实现和解决,来教会你如何正确地使用Rose为一个实际的软件系统进行面向对象的分析和业务建模。,2.1.1 Rational Rose 2007的安装,1.安装前的准备 (1)安装Rational rose,需要支持包括Wind

6、ows 2000或Windows XP及其以上版本的全系列Windows操作系统。 (2)安装Rational rose,必须先得到rose的安装包。建议购买Rational公司的正版软件或从网址http:/ rose 2003或IBM Rational Rose 2007的试用版。,2. 安装步骤 首先打开Rose的压缩包,再双击启动IBM Rational Rose 2007的Setup.exe程序,安装过程开始, 然后依照安装程序向导的提示操作即可。,2.1.2 Rational Rose的使用,Rose是菜单驱动式的建模工具,可以通过Rose界面的工具栏使用其常用功能,Rose共支持8

7、种不同类型的UML图: 用例图(Use Case Diagram)和类图(Class Diagram) 时序图(Sequence Diagram)和活动图(Activity Diagram) 协作图(Collaboration Diagram)和状态图(Statechart Diagram) 组件图(Component Diagram)和配置图(Deployment Diagram),1Rose主界面介绍,完成系统安装后,我们就可以用Rose建立软件模型了。启动Rational Rose的作法是:单击【开始】|【程序】,打开【程序】菜单,找到【IBM Rational】后,运行【IBM Rat

8、ional Rose Enterprise Edition】,出现IBM Rational Rose 2007的引导界面,然后,弹出的是如下图2-13所示的“新建模型”对话框。这个对话框用来设置本次启动的初始动作,分为New(新建模型)、Existing(打开现有模型)、Recent(最近打开模型)3个选项卡。,图2-13 “新建模型”选项卡,其中,第一个选项卡是New,用来选择新建模型时采用的模板。目前ROSE 2007所支持的模板有J2EE(Java 2 Enterprise Edition)、J2SE(Java 2 Standard Edition)的1.2、1.3和1.4版,JDK(J

9、ava Development Kit)的1.16版和1.2版,JFC(Java Fundamental Classes)的1.1版,Oracle8-datatypes(Oracle8的数据类型),RUP(Rational Unified Process),VB6 Standard(VB6标准程序),VC6 ATL(VC6 Active Templates Library, VC6活动模板库)3.0版,以及VC6 MFC(VC6 Microsoft Fundamental Classes)的3.0版。 由于是暂时不需要任何模板,只需要新建一个空白模板,所以直接单击【Cancel(取消)】按钮,

10、进入Rational Rose 2007的主界面, 如下图2-14所示。,图2-14 Rose主界面,Rose的主界面主要由六部分组成: 菜单栏包含了所有可以进行的操作,有File(文件),Edit(编辑),View(视图),Format(格式),Browse(浏览),Report(报告),Query(查询),Tools(工具),Add-Ins(插件),Window(窗口)和Help(帮助)。 工具栏包括了Rose最常用的一些操作,用户可以通过工具栏的按钮快速的进行Rose的操作。同时,用户也可以自行添加或删除工具栏上的按钮。 浏览器窗口作用是把当前模型项目的角色、用例、类、组件以树型视图的方

11、式显示给用户。并允许用户对这些对象进行管理和快速启动模型。 文档区窗口用户可以通过文档区查看或更新模型元素的文档。 主要编辑区窗口可以打开模型中的任何一张图,并利用左边的工具栏对图进行浏览和修改。,2 ROSE建模简介,使用Rose创建的模型文件后缀名为.mdl,模型的创建的一般步骤分为以下三个步骤: (1) 创建模型 单击菜单栏中【File】项,选择【New】选项,或者直接单击标准菜单栏中的实现“Create New Model or File”功能的【New】按钮。 (2) 保存模型 ROSE模型的保存类似其它应用程序,可以通过菜单或工具栏来实现。(3) 发布模型 使用ROSE可以将所建立

12、的模型直接发布到Web上,使更多的人能浏览模型。作法是:单击菜单栏中的【Tools】项,选择【Web Publisher.】选项。,3设置全局选项,字体和颜色等选项用于所有模型对象类、用例、接口、包等。我们可以通过设置全局选项来进行字体和颜色的设置。全局选项可以通过单击菜单中的【Tools】|【Options】进行设置,如图2-19所示的属性设置界面。,图2-19 属性设置界面,2.2 用例图建模方法,需求是系统必须符合的条件或具备的功能。需求问题是引起软件项目的高风险率的最主要原因,例如:缺乏对需求的分析;对需求的不正确理解;需求的不完整性及需求的变化等等。而引入用例图建模则是由软件需求分析

13、到最终实现的第一步。 用例图(Use Case Diagram)描述人们如何使用一个系统。用例模型也称需求模型,是软件需求分析结果的可视化表示,它是所有用例、参与者以及相关关系的集合,是关于系统功能和环境的模型。 2.2.1 用例图中的元素 用例图包含六个元素,分别是:参与者(Actor)、用例(Use Case)、关联关系(Association)、包含关系(Include)、扩展关系(Extend)以及泛化关系(Generalization)。 用例图模型如下图2-22所示,在UML中,参与者用名字写在下面的人形图标来标识,用例用椭圆来表示,连线表示它们之间的关系。,图2-22 用例模型元

14、素,1用例图(Use Case Diagram) 确定系统中所包含的参与者、用例及参与者与用例之间的关系,用例图是基于系统要实现的功能的一个可视化描述。(1) 参与者(Actor)(2) 用例(Use Case) 2. 角色,用例之间的关系 在用例模型中,其关系主要包括三种: 参与者与用例之间存在关联关系 参与者之间的关系 用例之间的关系,图2-23 参与者与用例之间的关联关系 图2-24 角色间的泛化关系1,图2-25 角色之间的泛化关系2 图2-26 用例之间的泛化关系,图2-27 用例间的包含关系 图2-28 用例间的扩展关系,2.2.2 用例图建模技术,在UML建模中,可以使用用例图对

15、系统的语境和需求进行建模。 1对语境建模对系统语境建模应当遵循以下的方法: (1)用以下几组事物来识别系统外部的参与者:需要从系统中得到帮助的组;执行系统功能时所必须的组;与外部硬件或其它软件系统进行交互的组;为了管理和维护而执行某些辅助功能的组。 (2)将类似的参与者组织成泛化或特殊化的结构层次。 (3)在需要加深理解的地方,为每个参与者提供一个构造型。 (4)将参与者放入到用例图中,并说明参与者与用例之间的通信路径。 例如:某大学的图书管理信息系统的语境图,见下面图2-29所示。,图2-29 对系统语境建模,2对需求建模 对系统需求建模可以参考以下的方法。 (1)识别系统外部的参与者来建立

16、系统的语境。 (2)考虑每一个参与者期望的行为或需要系统提供的行为。 (3)把公共的行为命名为用例 (4)确定供其他用例使用的用例和扩展其他用例的用例。 (5)在用例视图中对用例、参与者和它们之间的关系进行建模。 例如:软件工程课程项目教学的用例图,参考图2-30所示。,图2-30 项目教学用例图,任务1创建角色 任务2删除角色 任务3创建用例 任务4删除用例 任务5设置编辑区工具栏,2.2.3 “网络教学系统”中用例图分析,画好用例图(Use Case Diagrams)是软件需求到实现的第一步。用例图显示系统中的用例与角色及其相互关系。用例是系统提供的高级功能块,角色是与所建系统交互的对象

17、。 1. 确定系统的功能需求和角色 2.“网络教学系统”中用例建模分析 从分析可以看出,本系统的参与者主要有三个:学生、教师、系统管理员,根据每个角色参与的功能,我们可以针对每个功能模块建立用例图如下。 学生可以登录网站浏览信息、查找信息和下载文件。用例建模如下图2-34所示:,图2-34学生参与的用例图,教师可以登录网站输入课程简介、上传课件文件、发布消息、修改和更新消息。用例建模如图2-35所示: 系统管理员可以对页面维护以及批准用户的注册申请。用例建模如下图2-36所示: 对系统总体功能进行用例建模,如图2-37所示:,图2-35 教师参与的用例图,图2-36系统管理员参与的用例图,图2

18、-37 系统用户参与的总的用例图,3.建立用例规约(Use Case Specification) 当建立了系统总体用例模型之后,还需要对用例添加说明信息(即用例规约),定义其属性。下面以网络教学系统学生模块中的“学生注册确认”用例为例,创建它的用例规约。,提示:尤其注意用例图不是用例模型的全部, 用例模型是由用例图和每一个用例的详细描述构成的。,在用例“学生注册确认”上单击鼠标右键,选择菜单【Open Specification.】,从而打开相应的对话框(参考图2-38所示)。用户可以在用例属性设置标签中对一些属性进行设置: 如:Name(名称):设置用例的名称;Stereotype(类型)

19、:用例的类型;Rank(级别):对用例进行层次划分;Documentation(文档):用例规约描述。,图2-38用例属性设置窗口,1操作要求 (1)分析学生管理信息系统的需求,确定系统中的参与者和主要用例,画出用例视图,并试着对不同角色所实现的功能进行描述(参照书中的提示)。 (2)自己选定一个面向对象系统绘制其角色用例图,并试着对不同角色所实现的功能进行描述(参照书中的提示)。 2操作提示 (1)学生管理信息系统可以从网上搜集或从其他参考书上查找。 (2)也可以选择自己熟悉或感兴趣的面向对象系统分角色完成上面操作要求。,2.3 类图和对象图建模方法,类图(Class diagram) 、对

20、象图(Object Diagram)和包图显示了系统模型的静态结构,特别是模型中存在的类、类的内部结构以及它们与其他类的关系等。类图由许多静态说明性的模型元素(例如一组类及其它们之间的关系)组成。类图可以组织在包中,并属于包,仅显示特定包中的相关内容。本节我们将介绍如何在Rational Rose的逻辑视图中,创建类图、对象图以及如何将类组织成包。,2.3.1 类图建模方法 类(class)是对一组具有相同属性、操作、关系和语义的对象的描述。类是对事物的抽象。类主要是由名称、属性和操作组成。类的表示,如图2-39所示:,图2-39 类的表示,类和类之间的关系常用的有6种:依赖关系(Depend

21、ency),泛化关系(Generalization),关联关系(Association),聚合关系(Aggregation),组成关系(Composition),实现(Realization)。如上图2-40所示:,图2-40 类之间的关系符号图,任务1:创建类图 任务2:添加和删除类 任务3:类属性的设置 任务4:类图建模方法 1为系统词汇建模(图2-42 ) 2为简单的协作建模 3为一个逻辑数据库模式建模,图2-42 为系统词汇建模,2.3.2 对象图建模方法,对象是现实世界中可以区别的存在。类是现实世界中一个或多个对象的行为和属性的抽象,对象是类的实例。 对象图(object diagr

22、am)则显示了一组对象和他们之间的关系。使用对象图来说明数据结构,类图中的类或组件等实例的静态快照。 对象图的表示方法:对于对象图来说无需提供单独的形式。类图中就包含了对象,所以只有对象而无类的类图就是一个“对象图”。对象图也是一种结构图,如图2-43所示,用来呈现系统在特定时刻的对象(object),以及对象与对象之间的链接(link)。,图2-43 链接,对象和类共用矩形图示,不过对象名称下方有底线,类名称下方没有底线,如上图2-44所示。对象名称经常被省略,所以常见带有冒号的类名称,这其实是个缺省类名的对象。,图2-44 类与对象,任务1:对象图建模方法 (1)确定参与交互的各个对象的类

23、,可以参照相应的类图或交互图。 (2)确定类之间的关系(依赖、关联、泛化和实现等)。 (3)针对交互在某特定时刻各个对象的状态,建立相应的对象模型。 (4)绘制对象的关键状态及关键对象之间的连接关系,并精化对象模型图。 例如,参考图2-42的建模方法,分析图2-45银行网络系统中对象,建立对象模型。,图2-45 银行网络管理系统,图2-46 银行网络系统对象图,2.3.3 包图概念及建模,当为较复杂的系统建模时,使用包是最为有效的建模方法。包在很多方面与类相似,但在对大系统建模时,特别要注意区别包与类。类是对问题领域或解决方案的事物的抽象,包是把这些事物组织成模型的一种机制。 任务1:包图的添

24、加 任务2:包图的删除 任务3:包图建模方法 (1)进行系统分析,把概念上和语义上相近的模型元素融入一个包中。 (2)对于每一个包,标出其模型元素的可见性(和类一样主要包括:Public、Private和Protected三种访问方式,它们分别用“+”、“-”和“#”来表示)。 (3)确定包与包之间的依赖和泛化关系等。 (4)绘制并精化包图。,例如:图书管理系统的包图如图2-49所示:,图2-49 图书管理系统的包图,提示:标识和建立包间的相关联系规则是使得包间不存在双方相关性, 即避免包紧密耦合在一起,独立性要强。,2.3.4 “网络教学系统”中的静态视图分析,1. 类图的生成 类图是系统设

25、计的核心部分,明确系统中基本的类以及相互的关系有助于用户分析系统下一步的工作即创建系统中的包图,而且建立好类图是进入系统编码阶段的重要基础。 (1)参与者相关的类:如图2-50所示。,图2-50 参与者相关的类图,(2)一些其他的类及各个类之间的关系: 一些其他的类:如图2-51所示。,图2-51 其它类图,各个类之间的关系: 如图2-52所示。,图2-52各实体类之间的关系,(3)数据库实体类:,图2-53数据库实体类图,(4)网络教学系统类图和包图案例分析,图2-54 网络教学系统包图,2.类与代码的对应关系,在Rational Rose中,根据实体类可以使用正向工程生成与之对应的代码。正

26、向工程是指从Rose模型中的一个或多个类图生成Java源代码的过程。逆向工程(Reverse Engineer)是分析现有系统的代码(如Java代码等),然后将其转换成Rose模型的类和组件的过程。,1操作要求 (1)寻找并抽象出学生管理信息系统的参与者相关的类图和实体类关系图,并试着对不同角色所实现的类功能进行描述(参照书中的提示)。 (2)寻找并抽象出学生管理信息系统的数据库实体类图,然后绘制出系统包图。 (3)通过分析学生管理信息系统的用例图,试着寻找该系统的边界类和控制类。 2操作提示 (1)以小组为单位进行讨论,分析系统的实体类、边界类和控制类。 (2)也可以选择自己熟悉或感兴趣的面

27、向对象系统分角色类和其他实体类完成上面操作要求。,2.4 用Rose设计动态模型,在UML的表现上,动态模型主要是建立系统的交互图(Interaction Diagram)和行为图。交互图包括时序图和协作图;行为图包括状态图和活动图。交互图描述了一个交互,它由一组对象和它们之间的关系组成,并且还包括在对象之间传递的消息。 2.4.1 时序图建模及案例分析 时序图(Sequence Diagram),也被称为顺序图,是显示(强调)对象之间消息按时间顺序排列的交互作用的图。 任务1:一个简单实例: 任务2:时序图建模技术要点 (1) 设置交互的语境,这些语境可以是系统、子系统、操作、类、用例和协作

28、的一个脚本。 (2) 通过识别对象在交互中扮演的角色,根据对象的重要性,将其从左向右的方向放在时序图中。 (3) 设置每个对象的生命线。一般情况下,对象存在于交互的整个过程,但它也可以在交互过程中创建和撤销。,(4) 从引发某个交互的消息开始,在生命线之间按自上而下的顺序画出随后的消息。 (5) 设置对象的激活期,这可以可视化实际计算发生时的时间点、可视化消息的嵌套。 (6) 如果需要设置时间或者空间的约束,可以为每个消息附上合适的时间和空间的约束。 (7) 给某控制流的每个消息附上前置条件或者后置条件,这可以更详细地说明这个控制流。 任务3:网络教学系统的时序图建模: (1)系统管理人员管理

29、网站的时序图, 如图2-58所示:,图2-58 系统管理人员管理网站的时序图,(2)用户登录系统的时序图,如上图2-59所示: (3)学生下载文件的时序图, 如下图2-60所示:,图2-59 用户登录系统的时序图,图2-60 学生下载文件的时序图,2.4.2 协作图建模及案例分析 协作图(Collaboration Diagram)是描述对象交互作用相关的信息的图。协作图的一个用途是表示类操作的实现。 任务1:时序图与协作图的比较: 任务2:时序图与协作图的互换:任务3:协作图建模要点: (1) 设置交互的语境,语境可以是系统、子系统、操作、类、用例或用例的脚本。 (2) 通过识别对象在交互中

30、所扮演的角色,开始绘制协作图,把这些对象作为图的顶点放在协作图中。 (3) 在识别了协作图对象之后,为每个对象设置初始值,如果某对象的属性值、标记值、状态或角色在交互期发生变化,则在图中链的末路上附上一个路径构造型,以便了说明一个对象如何与另一个对象连接,例如构造型,表示指定对象对发送方而言是局部的。(4) 根据对象间的关系开始确定对象间的链接。一般先确定关联的链接,因为这是最主要的,它代表了对象之间结构的链接。,(5)从引起交互的消息开始,适当地设置其顺序号,然后将随后的每个消息附到适当的链上。 ,这描述了对象之间消息传递,可以用带小数点的编号来表达嵌套。 (6) 如果需要说明时间或空间的约

31、束,可以用适当的时间或空间约束来修饰每个消息。 (7) 在建模中,如果想更详细地描述这个控制流,可以为交互过程的每个消息附上前置条件和后置条件。 任务4:网络教学系统的协作图建模: (1)系统管理人员管理网站的协作图, 如图2-62所示:,图2-62 系统管理人员管理网站的协作图,(2)系统管理人员管理网站的协作图, 如上图2-63所示: (3)学生下载文件的协作图, 如图2-64所示:,图2-63 用户登录系统的协作图,图2-64 学生下载文件的协作图,1操作要求 (1)绘制学生管理信息系统的学生登录系统的时序图和协作图,并对不同对象(类)的时序及协作情况进行描述(参照书中的提示)。 (2)

32、绘制自选面向对象系统的时序图和协作图,并对不同对象(类)的时序及协作情况进行描述(参照书中的提示)。,2.4.3 状态图建模及案例分析 状态图(Statechart Diagram),也称为状态机,描述了特定类或组件在其整个生命周期中不断变化时的行为。状态机是展示状态与状态转换的图。 任务1:一个简单实例: 任务2:状态图建模要点: (1) 识别一个要对其生命周期进行描述的参与行为的类; (2) 对状态建模,即确定对象可能存在的状态; (3) 对事件建模,即确定对象可能存在的事件; (4) 对动作建模,即确定当转变被激活时,相应被执行的动作; (5) 对建模结果进行精化和细化。 任务3:网络教

33、学系统的状态图建模:网络教学系统的系统状态图,如图2-69所示,图2-69 网络教学系统的系统状态图,2.4.4 活动图建模及案例分析 活动图(Activity Diagram) 用来显示活动动作及其结果,主要描述操作(方法)实现中所完成的工作及用例实例或对象中的活动。活动是某件事情正在进行的状态。它在状态机中表现为一个由一系列动作组成的非原子的执行过程。 任务1:一个简单实例:用Rational Rose建立羽毛球馆打羽毛球的活动图,如上面图2-71所示。 任务2:活动图建模要点: 在建模的过程中,我们通常通过以下步骤实现: 识别要对其工作流描述的类或对象。 确定工作流的初始状态和终止状态,

34、明确工作流的边界。 对动作状态或活动状态建模。 对动作流建模。 对对象流建模。 对建立的模型进行精化和细化。,任务3:网络教学系统的活动图建模: (1)用户登录系统的活动图,如图2-72所示: (2)教师上传课件的活动图,如上图2-73所示: (3)系统管理员进行网站维护的活动图,如图2-74所示:,图2-72 用户登录系统的活动图 图2-73 教师上传课件的活动图,图2-74 系统管理员进行网站维护的活动图,1操作要求 (1)阅读如图2-69所示的网络教学系统的系统状态图,试着对不同状态间的转换及状态进行描述(参照书中的提示)。 (2)阅读如图2-72所示的网络教学系统的用户登录系统的活动图

35、,试着对不同活动间的转换及活动进行描述(参照书中的提示)。 (3)绘制学生管理信息系统的用户登录的状态图和活动图,并对不同状态间的转换及活动进行描述(参照书中的提示)。,本章小结,本章注重学习的渐进性和实践性,对UML每一种图的讲解均主要围绕“网络教学系统”案例,采用“图的用途图的概念图的组成图的创建技术图的建模实例及分析”的方式进行,从而完整地把握每一种UML图,并通过建模的具体案例,帮助读者达到学以致用的目的。此外,每节附有“课堂实践”操作习题,着重培养读者的动手能力,使读者在练习过程中能快速提高实际应用水平。,习 题,UML中包含哪些图?各种图的作用是什么? 简述UML中用例图的一般步骤。 简述UML中类图、对象图和包图建模的一般步骤。 简述UML动态建模的一般步骤。,IBM Rational Rose 2007软件的试用版及钥匙文件见本书配套光盘上。 什么是双向工程?它是如何实现的? 尝试对所见到的任何一个面向对象系统进行面向对象的系统分析、设计、实现,并完成建模任务。,谢谢使用本课件!,

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

当前位置:首页 > 中等教育 > 小学课件

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


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

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

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