下载

1下载券

加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 面向对象分析与设计(3)-用例建模

面向对象分析与设计(3)-用例建模.pdf

面向对象分析与设计(3)-用例建模

beiwei24
2012-02-11 0人阅读 举报 0 0 暂无简介

简介:本文档为《面向对象分析与设计(3)-用例建模pdf》,可适用于IT/计算机领域

面向对象分析与设计面向对象分析与设计系统开发的起点:用例建模系统开发的起点:用例建模PDF文件使用"pdfFactoryPro"试用版本创建ÿwwwfineprintcomcn何时完成需求的获取何时完成需求的获取v如果用户不能想出更多的用例v如果用户提出新的用例,但分析员可以从其他用例的相关功能需求中获得这些新用例v如果用户开始重复原先讨论过的问题v如果所提出的新需求比分析员已确定的需求的优先级都低v如果用户提出对将来产品的要求PDF文件使用"pdfFactoryPro"试用版本创建ÿwwwfineprintcomcn需求调研后的系统功能特性需求调研后的系统功能特性v系统应该提供搜索功能v系统必须具备分类浏览的功能v系统必须具有按折扣计算最终价格的能力等。系统到底能帮我做什么怎么帮我做的?PDF文件使用"pdfFactoryPro"试用版本创建ÿwwwfineprintcomcn回顾回顾::使用功能说明来表达需求的不足使用功能说明来表达需求的不足v功能规格说明通常忽略其关联的用户及其为用户提供的利益v功能规格说明不够精确,难以区分在不同场景下系统所表现出的行为差异v功能规格说明不容易表达系统与其上下文之间的关系v非功能性需求与功能需求说明被人为割裂,难以清晰地表达两者间的联系,使整个需求全景支离破碎v功能规格说明与测试用例间存在明显的鸿沟,不能直接转化PDF文件使用"pdfFactoryPro"试用版本创建ÿwwwfineprintcomcn采用用例描述采用用例描述用户准备在网上书店购书用例开始。用户浏览图书分类查找图书。系统显示分类、子分类以及子分类下的图书。用户选择准备购买的图书并加入购物车。系统记录已加入购物车的图书并计算价格。用户准备结账系统提示确认购物清单并提示输入银行账号、送货地址等关键信息。用户输入以上信息并确认。系统完成交易并显示交易信息。用例结束。以用例的方式定义需求处处关心用户到底想用系统做什么如何做PDF文件使用"pdfFactoryPro"试用版本创建ÿwwwfineprintcomcn用例模型用例模型v为什么要创建用例模型§用例模型允许顾客和系统开发者之间用一种用户可以理解的语言交流系统要做什么§可以认为用例模型是顾客和开发者之间的可视化契约v什么是用例模型§用例模型代表了从最终用户角度看的系统的功能和环境§是顾客和开发者之间的契约§对于分析、设计和测试活动都是至关重要的§包括用例图、用例事件流和补充规约也可以包括活动图PDF文件使用"pdfFactoryPro"试用版本创建ÿwwwfineprintcomcn用例建模的作用和意义用例建模的作用和意义v用例分析和用例建模是了解用户行为细化软件需求的关键工作阶段v用例模型是从外部用户和外围系统的角度分析和考察待开发系统的行为并通过参与者与系统之间的交互关系描述了系统对外提供的功能特性v这种参与者与系统功能特性间的交互关系就是我们所说的“用例”PDF文件使用"pdfFactoryPro"试用版本创建ÿwwwfineprintcomcn用例建模的特点用例建模的特点v显式地表达用户的任务目标层次突出系统行为与用户利益间的关系v通过描述执行实例情节(交互行为序列、正常非正常事件流)能够完整地反映软件系统用以支持特定功能的行为v以契约(前后置条件等)的形式突出了用户和系统之间常常被忽略的背后的关系v部署约束等非功能需求与系统行为直接绑定能够更准确地表达此类需求。PDF文件使用"pdfFactoryPro"试用版本创建ÿwwwfineprintcomcn用例是什么用例是什么v用例实例是在系统中执行的一系列动作这些动作将生成特定参与者可见的价值结果v特点§用例实例也就是“使用场景”(场景是用例的一个执行实例是用例执行过程中的一条实际路径)§用例应该给参与者带来可见的价值§用例是在系统中PDF文件使用"pdfFactoryPro"试用版本创建ÿwwwfineprintcomcn如何有效地支持开发过程如何有效地支持开发过程v用例建模技术更加形式化地表达需求它能最大限度地消除需求中的不明确、不一致和不完整因此可以用于驱动整个开发过程。PDF文件使用"pdfFactoryPro"试用版本创建ÿwwwfineprintcomcn用例建模流程用例建模流程v确定系统范围、定义目标系统v识别参与者及其目标v捕获概要层用例绘制初始的用例图确定大致的用例关系v着重对系统的用户目标层用例进行细化v为每个用例:§识别涉众的利益确定前置后置条件§编写首要成功情节§列出所有扩展条件编写扩展处理步骤§使用活动图或序列图描述重点或复杂的用例§另外根据项目需要可针对用例情节编写测试用例v分解、合并用例精化用例模型结构PDF文件使用"pdfFactoryPro"试用版本创建ÿwwwfineprintcomcn流程一:确定系统范围流程一:确定系统范围v通过需求获取方法与技术确定系统的功能特性PDF文件使用"pdfFactoryPro"试用版本创建ÿwwwfineprintcomcn找出系统边界找出系统边界v系统的边界就是将系统的功能特性与系统的外部环境分离开来的逻辑分界线v系统边界是定义由谁或什么(即参与者)使用系统系统能够为哪些参与者提供什么特定的利益(即用例)v系统环境建模(业务用例)PDF文件使用"pdfFactoryPro"试用版本创建ÿwwwfineprintcomcn流程二:识别参与者流程二:识别参与者v参与者是直接与系统交互的事物所扮演的角色。v参与者角色§人§其它系统§硬件系统§时钟PDF文件使用"pdfFactoryPro"试用版本创建ÿwwwfineprintcomcn如何识别参与者如何识别参与者v谁或什么使用该系统?v交互中它们扮演什么角色?v谁安装系统?v谁启动和关闭系统?v谁维护系统?v与该系统交互的是其它什么系统?v谁从该系统获取信息谁提供信息给系统?v有什么事情发生在固定时间?PDF文件使用"pdfFactoryPro"试用版本创建ÿwwwfineprintcomcn在识别参与者需要注意的!在识别参与者需要注意的!v参与者对于系统而言总是外部的v参与者直接同系统交互v参与者表示人和事物同系统发生交互时所扮演的角色而不是特定的人和特定的事物v一个人或事物在与系统发生交互时同时或不同时扮演多种角色v每个参与者需要一个具有业务意义的简短名称v每个参与者必须有简短描述它从业务角度描述参与者是什么。v像类一样参与者可以具有分栏表示参与者属性和它可能接收的事件PDF文件使用"pdfFactoryPro"试用版本创建ÿwwwfineprintcomcn流程三:识别用例流程三:识别用例v用例定义为“系统、子系统或类能够与外部参与者交互所执行的动作序列包括各种序列以及出错序列的规格说明。v用例是参与者想要系统做的事情。v是参与者与系统的一系列交互PDF文件使用"pdfFactoryPro"试用版本创建ÿwwwfineprintcomcn确定用例的级别确定用例的级别v用例级别指的是对用例模型的抽象或细化程度v在用例建模过程中常用的用例级别包括高层用例、用户目标级用例和子功能用例等§通过高层用例了解系统需要为用户提供几大类功能§用户目标级用例作用是从用户的观点来观察软件系统了解用户究竟需要哪些功能特性这个级别屏蔽了很多低级别的信息§被高层用例和用户目标级用例屏蔽的低级别信息则反映在子功能用例中PDF文件使用"pdfFactoryPro"试用版本创建ÿwwwfineprintcomcn用例级别举例用例级别举例PDF文件使用"pdfFactoryPro"试用版本创建ÿwwwfineprintcomcn用例级别用例级别v描述高层用例的目的是为了和用户交流让用户对软件功能有一个概要性的认识.(潜在的作用:为底层的用例分类)v对于用户而言执行用户目标级用例的目的是为了实现某个特定的目标是项目组和用户之间的契约v子功能级用例作用§进一步细化用户目标级用例§进一步细化用户目标级用例中的每一个执行步骤PDF文件使用"pdfFactoryPro"试用版本创建ÿwwwfineprintcomcn用例特点用例特点v特点:§完成参与者的某个目的(不是功能)一般会给参与者一个有价值的结果§起始于参与者的输入.其中系统是一个黑盒§用于描述系统行为但不描述如何实现v识别用例时需要注意§用例的粒度不要太大也不要太小§用例描述的是系统做什么初始识别用例的时候不要过多考虑系统的实现即把系统作为黑盒§外部系统或设备的行为不是要开发的系统行为不要识别出来用例PDF文件使用"pdfFactoryPro"试用版本创建ÿwwwfineprintcomcn识别用例的方法识别用例的方法v特定参与者希望系统提供什么功能?v系统存储和检索信息吗?如果有哪个参与者触发这个行为?v当系统改变状态时通知参与者吗?v存在影响系统的外部时间吗?是谁通知系统这些事件的?PDF文件使用"pdfFactoryPro"试用版本创建ÿwwwfineprintcomcn识别用例注意识别用例注意v有些用例不代表系统的主要功能因而通常会被大家忽视这些用例可能属于以下类型:§系统启动和停止§系统的维护。例如添加新用户和建立用户简档§维护在系统中存储的数据。例如所构建的系统和遗留系统平行工作所以数据需要在两个系统之间达到同步§修改系统行为所需的功能。例如创建新报告的功能它不仅可以创建硬代码还可以对系统中存储的数据创建一组特定报告PDF文件使用"pdfFactoryPro"试用版本创建ÿwwwfineprintcomcn用例图用例图v表示§usecase与actor之间的关系§Actor之间的关系§usecase之间的关系vActor与usecase之间的关系是association关系含义是“触发”千万不要理解成数据流SystemStartup(fromSystem)Driver(fromActors)PDF文件使用"pdfFactoryPro"试用版本创建Ìwwwfineprintcomcn流程四:用例规约详述流程四:用例规约详述v用例名字(Name)v简要说明(Briefdescription)v事件流(FlowsofEvents)v特殊需求(Specialrequirements)v前置条件(Preconditions)§开始用例前所必需的系统及其环境的状态v后置条件(Postconditions)§用例结束后系统可能具备的状态v扩展点(Extensionpoints)PDF文件使用"pdfFactoryPro"试用版本创建ÿwwwfineprintcomcn事件流事件流v事件流用文本形式描述了用户和系统之间如何进行交互v用例的执行有很多种情况每一种情况就是一个场景(scenario)用例的事件流应该描述出所有的场景v事件流分成基本流(basicflow)和备选流(AlternativeFlow)两种§基本事件流应包括在执行用例时“通常”会发生的事件也叫happyflow§备选事件流包括与正常行为相关的可选或异常特征的行为同时也包括正常行为的各种变形§可以将备选事件流看作是基本事件流的“绕行道”有些备选事件流将返回到基本事件流而有些将结束此用例的执行PDF文件使用"pdfFactoryPro"试用版本创建ÿwwwfineprintcomcn如何说明事件流如何说明事件流v说明用例如何开始和结束v说明在主角和用例之间交换的是什么数据v不要详细描述用户界面除非要理解系统行为就必须详细了解用户界面v只说明属于该用例的事件而不是发生在其他用例中或系统外部的事件v避免不明确的术语如“例如”、“等等”和“信息”v尽量不要在基本流中写备选流的内容v对于备选事件流要说明以下内容§基本事件流中可以插入备选行为的位置§为使备选行为开始而需要满足的条件§基本事件流重新开始的方式和位置或者用例结束的方式。v如果事件流很复杂可以用活动图来描述PDF文件使用"pdfFactoryPro"试用版本创建ÿwwwfineprintcomcn用例中的动作类型用例中的动作类型v执行者的动作内容§选择(界面、功能、内容等)§输入(文本数据、诸如checklist选项数据)§复杂的交互v目标系统的动作内容§验证(选择的正确合理、输入数据的格式和内容等)§执行处理或服务(将改变系统的状态)§输出(界面、显示内容等)PDF文件使用"pdfFactoryPro"试用版本创建ÿwwwfineprintcomcn前置条件和后置条件前置条件和后置条件v前置条件或后置条件所说明的状态应该是用户可以观察到的状态v前置条件是对用例何时开始的约束它并不是使用例开始的事件v虽然可以在分支流级别定义前置条件和后置条件但是一个用例的前置条件并不只是一个分支流的前置条件v无论执行了哪些备选流用例的后置条件都应为“真”它不能只对主事件流为“真”。如果可能出现故障则应在后置条件内包括“该动作已经完成或者如果可能出现故障则不执行该动作”而不只是“该动作已经完成”v当同时使用后置条件和扩展关系时应确保扩展用例不引入违反基本用例后置条件的分支流PDF文件使用"pdfFactoryPro"试用版本创建ÿwwwfineprintcomcn示例:示例:ATMATM机取款基本事件流描述机取款基本事件流描述发起取款:顾客将银行卡插入读卡器验证银行卡:ATM读取卡上的银行标识和帐号数据验证卡的有效性输入密码:在ATM提示下顾客输入密码验证帐号和密码:ATM验证帐号有效并且密码正确选择服务(取款):在ATM提示的可选服务中顾客选择取款输入取款额:在ATM提示下顾客输入元倍数的金额服务授权:ATM向银行主机提供卡号密码帐号取款额发起取款事务银行主机返回取款授权并更新余额派发现金:ATM清点并吐出现金返还银行卡:ATM吐出银行卡提供凭证:ATM打印并吐出凭条并更新内部日志(记录取款成功信息)。PDF文件使用"pdfFactoryPro"试用版本创建ÿwwwfineprintcomcn示例:示例:ATMATM机取款备选事件流描述机取款备选事件流描述a卡被验证为无效:ATM吐出银行卡并给出提示信息(用例失败)a输入密码错误:ATM给出提示如没超过次重试机会则回到步骤否则ATM吞卡(用例失败)b帐号不存在:ATM给出提示并回到步骤aATM中现金空缺:ATM的服务选项中没有取款AATM中现金少于取款额:ATM给出提示并回到步骤a顾客余额少于取款额:ATM给出提示并回到步骤b取款额超过小时限额:ATM给出提示并回到步骤aATM日志无法更新:ATM进入安全模式,所有功能被挂起,并向银行主机告警(用例失败)*a顾客可以在任何时候决定退出:ATM停止事务,吐出银行卡,并做记录(用例失败)*b传感器在监测到反常情况时报警:ATM被挂起PDF文件使用"pdfFactoryPro"试用版本创建ÿwwwfineprintcomcn活动图活动图ATMATM取款取款PDF文件使用"pdfFactoryPro"试用版本创建ÿwwwfineprintcomcn流程五:细化用例模型结构流程五:细化用例模型结构vActor之间的关系泛化(generalization)vUseCase之间的关系§泛化(generalization):不常用§扩展(extend)§包含(include)superactorsubactorPDF文件使用"pdfFactoryPro"试用版本创建ÿwwwfineprintcomcn用例之间的扩展关系用例之间的扩展关系v扩展关系的双方分别叫做基本用例(Baseusecase)和扩展用例(extensionusecase)v扩展用例用来模型化基本用例中§有条件的部分只在某些环境下执行§复杂的或可选的路径。v扩展关系用“extend”的association关系来表示ExtensiveBasic<<extend>>PDF文件使用"pdfFactoryPro"试用版本创建Ìwwwfineprintcomcn用例之间的扩展关系用例之间的扩展关系v扩展用例和基本用例的关系§基本用例自身应是完整的即基本用例在不必引用任何扩展用例的情况下应该是可理解且有意义的§基本用例可以不依赖于扩展用例而单独的运行§扩展用例只有在基本用例中的某种条件满足时才能执行如果没有基本用例扩展用例不能运行§扩展用例可以扩展多个基本用例v扩展点§定义在基本用例的哪些位置插入扩展用例§包括一个名称和对用例事件流中一个或多个位置的引用§一个扩展点可以引用基本用例内的两个行为步骤之间的单个位置也可以引用一组不连续的位置PDF文件使用"pdfFactoryPro"试用版本创建ÿwwwfineprintcomcn扩展关系的实例扩展关系的实例v在电话系统中为用户提供的主要服务通过用例“打电话”来表示。可选服务的示例包括§能让第三方加入通话(召开电话会议)§允许接收方看到呼叫方的身份(显示呼叫方身份)v我们可以将这些可选服务所需的行为表示为基本用例“打电话”的扩展用例由于“打电话”本身就具有意义您无需阅读扩展用例的说明就可理解基本用例的主要目的CallerCalleePlaeConferenceCallShowCallerIdentifyPlaceCall<<extend>><<extend>>PDF文件使用"pdfFactoryPro"试用版本创建Ìwwwfineprintcomcn用例之间的包含关系用例之间的包含关系v包含关系的双方分别叫做基本用例(Basicusecase)(或具体用例,concreteusecase)和包含用例(includedusecase)(或抽象用例,abstractusecase)v包含用例用来模型化基本用例中§多个用例都包含的路径§复杂的路径§包含用例要能生成一个有意义的结果v扩展关系用“include”的association关系来表示basicusecaseincludedusecase<<include>>PDF文件使用"pdfFactoryPro"试用版本创建Ìwwwfineprintcomcn用例之间的包含关系用例之间的包含关系v抽象用例和具体用例§抽象用例不能单独执行必须与包括(也就是执行)它的具体用例一起执行§抽象用例没有特定的actor它的actor实际上包括它的具体用例的actor§抽象用例可以被几个其他的用例复用§具体用例的基本流执行时抽象用例一定执行PDF文件使用"pdfFactoryPro"试用版本创建ÿwwwfineprintcomcn包含关系的实例包含关系的实例v在ATM系统中用例WithdrawCash、DepositCash和TransferFunds都需要包含系统识别客户的过程。可以将此行为抽取到一个名为IdentifyCustomer的新包含用例中v从基本用例的角度来看识别客户方法是读取银行磁卡还是执行视网膜扫描并不重要。它们仅依赖于IdentifyCustomer的结果即客户的身份。v从IdentifyCustomer用例的角度来看基本用例如何使用客户身份或者在执行包含用例之前基本用例中发生了什么并不重要:识别方法都会完全相同WithdrawCashTransferFundsDopositCashIdentifyCustomer<<include>><<include>><<include>>PDF文件使用"pdfFactoryPro"试用版本创建Ìwwwfineprintcomcn扩展关系和包含关系扩展关系和包含关系v共同点§扩展用例和包含用例都是基本用例的一部分§基本用例不执行扩展用例和包含用例都不会执行§扩展用例可以扩展多个基本用例包含用例可以被多个基本用例包含v区别§扩展关系中基本用例的基本流执行时扩展用例不一定执行即扩展用例只有在基本用例满足某种条件的时候才会执行§包含关系中基本用例的基本流执行时包含用例一定会执行PDF文件使用"pdfFactoryPro"试用版本创建ÿwwwfineprintcomcn实际指南实际指南v可以把需求分成两部分§用户需求§软件需求v如果开发者对系统不熟悉那么就分两步做§先识别用例这时关注的是用户需求即与用户交流需求这时识别出来的都是基本的用例。§在基本用例达到稳定或者在要做用例分析之前要识别出来软件需求即开始考虑actor之间和usecase之间的关系这时会识别出更多的用例v如果开发者对系统很熟悉那么就可以在识别基本用例的同时就开始找其他的用例(泛化、扩展和包含用例)PDF文件使用"pdfFactoryPro"试用版本创建ÿwwwfineprintcomcn检查点检查点v用例模型§用例模型可以理解吗?§通过研究用例模型能形成对系统功能和它们之间的联系的清晰理解吗?§满足了所有的功能需求吗?§用例模型中有多余的行为吗?§模型到包的分解合适吗?v参与者§识别了所有的参与者吗?§每个参与者至少参与了一个用例吗?§每个参与者确实是一个角色吗?是否应该合并或分解?§是否有两个参与者在一个用例中扮演相同的角色?§参与者是否有直观的、描述性的名字?用户和客户是否能理解这些名字?PDF文件使用"pdfFactoryPro"试用版本创建ÿwwwfineprintcomcn检查点检查点v用例§每个用例中至少有一个参与者吗?§每个用例都独立于其他用例吗?§如果两个用例总是以同样的顺序执行也许应该合并成一个§有具有非常类似的行为或事件流程的用例吗?§为了以后不会混淆用例具有唯一的、直观的、说明性的名字吗?§客户和用户能理解用例的名字和描述吗?PDF文件使用"pdfFactoryPro"试用版本创建ÿwwwfineprintcomcn用例建模实战用例建模实战调研后的功能特性调研后的功能特性vFEAT新增学生信息vFEAT修改已有的学生信息vFEAT学生信息按统招生、工程硕士、学位进修分别建档vFEAT录入新生信息时能够自动按规则生成学生号号vFEAT统招生、工程硕士与学位进修生采用不同的书号规则vFEAT录入新生信息时如果重名将自动提示vFEAT按入学时间、所在学院、学生类别等关键字组合查询学生信息vFEAT列出所有学生信息vFEAT记录学生休学、退学、转学和留级情况vFEAT学生状态能够自动反应在学生信息中vFEAT按姓名、学号查询学生成绩情况、交费情况、奖惩情况vFEAT列出所有的获得奖惩情况学生名单及所在学院vFEAT按特定时间段统计学生学习成绩和学分vFEAT所有查询、列表、统计功能应可以单独对统招生、工程硕士、学位进修类别进行也可以按照学院进行PDF文件使用"pdfFactoryPro"试用版本创建ÿwwwfineprintcomcnv学生v老师用例建模实战用例建模实战识别参与者识别参与者PDF文件使用"pdfFactoryPro"试用版本创建ÿwwwfineprintcomcnFEAT所有查询、列表、统计功能应可以单独对统招生、工程硕士、学位进修类别进行也可以按照学院进行UC统计学生成绩FEAT按特定时间段统计学生学习成绩和学分FEAT所有查询、列表、统计功能应可以单独对统招生、工程硕士、学位进修类别进行也可以按照学院进行FEAT列出所有的获得奖惩情况学生名单及所在学院UC查询学生状态信息FEAT按姓名、学号查询学生成绩情况、交费情况、奖惩情况FEAT学生状态能够自动反应在学生信息中UC改变学生状态FEAT记录学生休学、退学、转学和留级情况FEAT所有查询、列表、统计功能应可以单独对统招生、工程硕士、学位进修类别进行也可以按照学院进行FEAT列出所有学生信息UC查询学生信息FEAT按入学时间、所在学院、学生类别等关键字组合查询学生信息UC修改学生信息FEAT修改已有的学生信息FEAT录入新生信息时如果重名将自动提示FEAT统招生、工程硕士与学位进修生采用不同的书号规则FEAT录入新生信息时能够自动按规则生成学生号号FEAT学生信息按统招生、工程硕士、学位进修分别建档UC新增学生信息FEAT新增学生信息用例特征用例用例建模实战用例建模实战合并需求获得用例合并需求获得用例PDF文件使用"pdfFactoryPro"试用版本创建ÿwwwfineprintcomcn用例建模实战用例建模实战绘制用例图绘制用例图学生信息管理系统新增学生信息修改学生信息查询学生信息改变学生状态查询学生状态teacherstudent统计学生成绩PDF文件使用"pdfFactoryPro"试用版本创建ÿwwwfineprintcomcn用例技术的优点用例技术的优点v用例相对容易写v用例是用用户的语言写的v用例为行为或场景提供相关线索用户和开发人员都能够理解v用例的图形表示提高对复杂软件系统的可理解性v用例描述的场景在确认阶段几乎可以直接用作测试脚本PDF文件使用"pdfFactoryPro"试用版本创建ÿwwwfineprintcomcn用例方法的适用场合用例方法的适用场合v适用场合§系统是面向功能的具有多种类型的用户和功能行为§团队采用UML和面向对象(OO)方法实现系统v不太适用场合§系统用户很少或没有并且接口也很少§系统中非功能性需求和设计约束占主导地位PDF文件使用"pdfFactoryPro"试用版本创建ÿwwwfineprintcomcn

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/49

面向对象分析与设计(3)-用例建模

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利