第五章软件需求规格说明

上传人:cl****1 文档编号:568476763 上传时间:2024-07-24 格式:PPT 页数:30 大小:58.51KB
返回 下载 相关 举报
第五章软件需求规格说明_第1页
第1页 / 共30页
第五章软件需求规格说明_第2页
第2页 / 共30页
第五章软件需求规格说明_第3页
第3页 / 共30页
第五章软件需求规格说明_第4页
第4页 / 共30页
第五章软件需求规格说明_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《第五章软件需求规格说明》由会员分享,可在线阅读,更多相关《第五章软件需求规格说明(30页珍藏版)》请在金锄头文库上搜索。

1、第五章第五章 软件需求规格说明软件需求规格说明周立新周立新博士博士北京大学软件与微电子学院北京大学软件与微电子学院课程提纲课程提纲1.软件需求基本理论和概念2.软件需求工程过程3.软件需求获取4.软件需求分析5.软件需求规格说明6.软件需求验证7.软件需求管理8.软件需求实现9.软件需求工程新进展10.软件需求开发与需求管理工具内容提要需求规格说明技术、基本方法需求规格说明技术、基本方法需求规格说明模板需求规格说明模板数据字典数据字典示例分析示例分析 软件需求规格说明软件需求规格说明软件需求规格说明,也称为功能规格说明、需求软件需求规格说明,也称为功能规格说明、需求协议以及系统规格说明。协议以

2、及系统规格说明。它精确地阐述一个软件系统必须提供的功能和性它精确地阐述一个软件系统必须提供的功能和性能以及它所要考虑的限制条件。能以及它所要考虑的限制条件。软件需求规格说明不仅是系统测试和用户文档的软件需求规格说明不仅是系统测试和用户文档的基础,也是所有子系列项目规划、设计和编码的基础,也是所有子系列项目规划、设计和编码的基础。基础。它应该尽可能完整地描述系统预期的外部行为和它应该尽可能完整地描述系统预期的外部行为和用户可视化行为。用户可视化行为。除了设计和实现上的限制,软件需求规格说明不除了设计和实现上的限制,软件需求规格说明不应该包括设计、构造、测试或工程管理的细节。应该包括设计、构造、测

3、试或工程管理的细节。编写软件需求规格说明的方法编写软件需求规格说明的方法可以用三种方法编写软件需求规格说明:可以用三种方法编写软件需求规格说明:用好的结构化和自然语言编写文本型文档。用好的结构化和自然语言编写文本型文档。建立图形化模型,这些模型可以描绘转换建立图形化模型,这些模型可以描绘转换过程、系统状态和它们之间的变化、数据过程、系统状态和它们之间的变化、数据关系、逻辑流或对象类和它们的关系。关系、逻辑流或对象类和它们的关系。编写形式化规格说明,这可以通过使用数编写形式化规格说明,这可以通过使用数学上精确的形式化逻辑语言来定义需求。学上精确的形式化逻辑语言来定义需求。使用软件需求规格说明的目

4、的使用软件需求规格说明的目的客户和营销部门依赖它来了解他们所能提供的产客户和营销部门依赖它来了解他们所能提供的产品。品。项目经理根据包含在软件需求规格说明中描述的项目经理根据包含在软件需求规格说明中描述的产品来制定规划并预测进度安排、工作量和资源。产品来制定规划并预测进度安排、工作量和资源。软件开发小组依赖它来理解他们将要开发的产品。软件开发小组依赖它来理解他们将要开发的产品。测试小组使用软件需求规格说明中对产品行为的测试小组使用软件需求规格说明中对产品行为的描述制定测试计划、测试用例和测试过程。描述制定测试计划、测试用例和测试过程。软件维护和支持人员根据软件维护和支持人员根据SRS了解产品的

5、某部分了解产品的某部分是做什么的。是做什么的。使用软件需求规格说明的目的使用软件需求规格说明的目的产品发布组在产品发布组在SRS和用户界面设计的基础上编写和用户界面设计的基础上编写客户文档,如用户手册和帮助屏幕等。客户文档,如用户手册和帮助屏幕等。培训人员根据培训人员根据SRS和用户文档编写培训材料。和用户文档编写培训材料。如果任何所期望的功能或非功能需求未写入软件如果任何所期望的功能或非功能需求未写入软件需求规格说明,那么它将不能作为协议的一部分需求规格说明,那么它将不能作为协议的一部分并且不能在产品中出现。并且不能在产品中出现。所有的参与者必须根据已通过评审的需求来安排所有的参与者必须根据

6、已通过评审的需求来安排工作以避免不必要的返工和误解。工作以避免不必要的返工和误解。可读性的建议可读性的建议对节、小节和单个需求的号码编排必须一致。对节、小节和单个需求的号码编排必须一致。在右边部分留下文本注释区。在右边部分留下文本注释区。允许不加限制地使用空格。允许不加限制地使用空格。正确使用各种可视化强调标志(例如,黑体、下正确使用各种可视化强调标志(例如,黑体、下划线、斜体和其它不同字体)。划线、斜体和其它不同字体)。创建目录表和索引表有助于读者寻找所需的信息。创建目录表和索引表有助于读者寻找所需的信息。对所有图和表指定号码和标识号,并且可按号码对所有图和表指定号码和标识号,并且可按号码进

7、行查阅。进行查阅。使用字处理程序中交叉引用的功能来查阅文档中使用字处理程序中交叉引用的功能来查阅文档中其它项或位置,而不是通过页码或节号。其它项或位置,而不是通过页码或节号。标识需求标识需求为了满足软件需求规格说明的可跟踪性和可修改为了满足软件需求规格说明的可跟踪性和可修改性的质量标准,必须唯一确定每个软件需求。性的质量标准,必须唯一确定每个软件需求。这可以使你在变更请求、修改历史记录、交叉引这可以使你在变更请求、修改历史记录、交叉引用或需求的可跟踪矩阵中查阅特定的需求。用或需求的可跟踪矩阵中查阅特定的需求。由于要达到这一目的,用单一的项目列表是不够由于要达到这一目的,用单一的项目列表是不够的

8、,因此,我们将描述几个不同的需求标识方法,的,因此,我们将描述几个不同的需求标识方法,并阐明它们的优点与缺点。并阐明它们的优点与缺点。可以选择最适合你的方法。可以选择最适合你的方法。标识需求标识需求l)序列号)序列号2)层次化编码)层次化编码3)层次化文本标签)层次化文本标签处理不完整性处理不完整性有时,你觉得缺少特定需求的某些信息。在解决有时,你觉得缺少特定需求的某些信息。在解决这个不确定性之前,可能必须与客户商议。检查这个不确定性之前,可能必须与客户商议。检查与另一个系统的接口或者定义另一个需求。使用与另一个系统的接口或者定义另一个需求。使用“待确定待确定”(tobedetermined,

9、TBD)符号作)符号作为标准指示器来强调软件需求规格说明中这些需为标准指示器来强调软件需求规格说明中这些需求的缺陷求的缺陷(gap)。)。通过这种方法,你可以在软件需求规格说明中查通过这种方法,你可以在软件需求规格说明中查找所要澄清需求的部分。记录谁将解决哪个问题、找所要澄清需求的部分。记录谁将解决哪个问题、怎样解决及什么时候解决。怎样解决及什么时候解决。把每个把每个TBD编号并创建一个编号并创建一个TBD列表,这有助于列表,这有助于方便地跟踪每个项目。方便地跟踪每个项目。用户界面和软件需求规格说明用户界面和软件需求规格说明把用户界面的设计编入软件需求规格说明既有好把用户界面的设计编入软件需求

10、规格说明既有好处也有坏处。处也有坏处。消极方面,屏幕映像和用户界面机制是解决方案消极方面,屏幕映像和用户界面机制是解决方案(设计)的描述,而不是需求。如果你在完成了(设计)的描述,而不是需求。如果你在完成了用户界面的设计之后才能确定软件需求规格说明,用户界面的设计之后才能确定软件需求规格说明,那么需求开发的过程将会花费很长的时间。那么需求开发的过程将会花费很长的时间。积极方面,探索潜在的用户界面有助于你精化需积极方面,探索潜在的用户界面有助于你精化需求并使用户求并使用户-系统的交互对用户和开发人员更具有系统的交互对用户和开发人员更具有实在性。用户界面的演示也有助于项目计划的制实在性。用户界面的

11、演示也有助于项目计划的制定和预测。定和预测。软件需求规格说明模板软件需求规格说明模板a.引言引言a.1目的目的a.2文档约定文档约定a.3预期的读者和阅读建议预期的读者和阅读建议a.4产品的范围产品的范围a.5参考文献参考文献b.综合描述综合描述b.1产品的前景产品的前景b.2产品的功能产品的功能b.3用户类和特征用户类和特征b.4运行环境运行环境b.5设计和实现上的限制设计和实现上的限制b.6假设和依赖假设和依赖C.外部接口需求外部接口需求C.1用户界面用户界面C.2硬件接口硬件接口C.3软件接口软件接口C.4通信接口通信接口d.系统特性系统特性d.1说明和优先级说明和优先级d.2激励响应序

12、列激励响应序列d.3功能需求功能需求e.其它非功能需求其它非功能需求e.1性能需求性能需求e.2安全设施需求安全设施需求e.3安全性需求安全性需求e.4软件质量属性软件质量属性e.5业务规则业务规则e.6用户文档用户文档f.其它需求其它需求附录附录A:词汇表:词汇表附录附录B:分析模型:分析模型附录附录C:待确定问题的列表:待确定问题的列表需求规格说明模板需求规格说明模板-引言引言a.引言引言引言提出了对软件需求规格说明的纵览,这有助于读者引言提出了对软件需求规格说明的纵览,这有助于读者理解文档如何编写并且如何阅读和解释。理解文档如何编写并且如何阅读和解释。a.1目的目的对产品进行定义,在该文

13、档中详尽说明了这个产品的软对产品进行定义,在该文档中详尽说明了这个产品的软件需求,包括修正或发行版本号。如果这个软件需求规格件需求,包括修正或发行版本号。如果这个软件需求规格说明只与整个系统的一部分有关系,那么只定义文档中说说明只与整个系统的一部分有关系,那么只定义文档中说明的部分或子系统。明的部分或子系统。a.2文档约定文档约定描述编写文档时所采用的标准或排版约定,包括正文风描述编写文档时所采用的标准或排版约定,包括正文风格、提示区或重要符号。列如,说明了高层需求的优先级格、提示区或重要符号。列如,说明了高层需求的优先级是否可以被其所有细化的需求继承,或者每个需求陈述是是否可以被其所有细化的

14、需求继承,或者每个需求陈述是否都有其自身的优先级。否都有其自身的优先级。需求规格说明模板需求规格说明模板-引言引言a.3预期的读者和阅读建议预期的读者和阅读建议列举了软件需求规格说明所针对的不同读者,列如开发人员、项列举了软件需求规格说明所针对的不同读者,列如开发人员、项目经理、营销人员、用户、测试人员或文档的编写人员。描述了文档目经理、营销人员、用户、测试人员或文档的编写人员。描述了文档中剩余部分的内容及其组织结构。提出了最适合于每一类型读者阅读中剩余部分的内容及其组织结构。提出了最适合于每一类型读者阅读文档的建议。文档的建议。a.4产品的范围产品的范围提供了对指定的软件及其目的的简短描述,

15、包括利益和目标。把提供了对指定的软件及其目的的简短描述,包括利益和目标。把软件与企业目标或业务策略相联系。可以参考项目视图和范围文档而软件与企业目标或业务策略相联系。可以参考项目视图和范围文档而不是将其内容复制到这里。不是将其内容复制到这里。a.5参考文献参考文献列举了编写软件需求规格说明时所参考的资料或其它资源。这可列举了编写软件需求规格说明时所参考的资料或其它资源。这可能包括用户界面风格指导、合同、标准、系统需求规格说明、使用实能包括用户界面风格指导、合同、标准、系统需求规格说明、使用实例文档,或相关产品的软件需求规格说明。在这里应该给出详细的信例文档,或相关产品的软件需求规格说明。在这里

16、应该给出详细的信息,包括标题名称、作者、版本号、日期、出版单位或资料来源,以息,包括标题名称、作者、版本号、日期、出版单位或资料来源,以方便读者查阅这些文献。方便读者查阅这些文献。需求规格说明模板需求规格说明模板-综合描述综合描述这一部分概述了正在定义的产品以及它所运行的这一部分概述了正在定义的产品以及它所运行的环境、使用产品的用户和已知的限制、假设和依环境、使用产品的用户和已知的限制、假设和依赖。赖。b.1产品的前景产品的前景描述了软件需求规格说明中所定义的产品的描述了软件需求规格说明中所定义的产品的背景和起源。背景和起源。b.2产品的功能产品的功能概述了产品所具有的主要功能。其详细内容概述

17、了产品所具有的主要功能。其详细内容将在将在d中描述,所以在此只需要概略地总结,例如中描述,所以在此只需要概略地总结,例如用列表的方法给出。用列表的方法给出。需求规格说明模板需求规格说明模板-综合描述综合描述b.3用户类和特征用户类和特征确定你觉得可能使用该产品的不同用户类并描述它们相关确定你觉得可能使用该产品的不同用户类并描述它们相关的特征。的特征。b.4运行环境运行环境描述了软件的运行环境,包括硬件平台、操作系统和版本,描述了软件的运行环境,包括硬件平台、操作系统和版本,还有其它的软件组件或与其共存的应用程序。还有其它的软件组件或与其共存的应用程序。b.5设计和实现上的限制设计和实现上的限制

18、确定影响开发人员自由选择的问题,并说明这些问题为什确定影响开发人员自由选择的问题,并说明这些问题为什么成为一种限制。么成为一种限制。b.6假设和依赖假设和依赖列举出在对软件需求规格说明中影响需求陈述的假设因素列举出在对软件需求规格说明中影响需求陈述的假设因素(与已知因素相对立)。(与已知因素相对立)。需求规格说明模板需求规格说明模板-外部接口需求外部接口需求需要把对接口数据和控制组件的详细描述写入数据字典中。需要把对接口数据和控制组件的详细描述写入数据字典中。如果产品的不同部分有不同的外部接口,那么应把这些外如果产品的不同部分有不同的外部接口,那么应把这些外部接口的详细需求并入到这一部分的实例

19、中。部接口的详细需求并入到这一部分的实例中。c.1用户界面用户界面陈述所需要的用户界面的软件组件。描述每个用户界面的陈述所需要的用户界面的软件组件。描述每个用户界面的逻辑特征。逻辑特征。c.2硬件接口硬件接口描述系统中软件和硬件每一接口的特征。描述系统中软件和硬件每一接口的特征。c.3软件接口软件接口描述该产品与其他外部组件(由名字和版本识别)的连接,描述该产品与其他外部组件(由名字和版本识别)的连接,包括数据库、操作系统、工具和集成的商业组件包括数据库、操作系统、工具和集成的商业组件等。等。c.4通信接口通信接口描述与产品所使用的通信功能相关的,包括电子邮件、描述与产品所使用的通信功能相关的

20、,包括电子邮件、Web浏览器、网络通信标准或协议及电子表格等等。浏览器、网络通信标准或协议及电子表格等等。需求规格说明模板需求规格说明模板-系统特性系统特性d.1说明和优先级说明和优先级提出了对该系统特性的简短说明并指出该特性的提出了对该系统特性的简短说明并指出该特性的优先级是高、中,还是低。或者你还可以包括对优先级是高、中,还是低。或者你还可以包括对特定优先级部分的评价,例如利益、损失、费用特定优先级部分的评价,例如利益、损失、费用和风险,其相对优先等级可以从和风险,其相对优先等级可以从1(低)到(低)到9(高)(高)。d.2激励激励/响应序列响应序列列出输入激励(用户动作、来自外部设备的信

21、号列出输入激励(用户动作、来自外部设备的信号或其它触发器)和定义这一特性行为的系统响应或其它触发器)和定义这一特性行为的系统响应序列。序列。d.3功能需求功能需求列出与该特性相关的详细功能。列出与该特性相关的详细功能。需求规格说明模板需求规格说明模板-其它非功能需其它非功能需求求这部分列举出了所有非功能需求,而不是外部接口需求和这部分列举出了所有非功能需求,而不是外部接口需求和限制。限制。e.1性能需求性能需求阐述了不同的应用领域对产品性能的需求,并解释它们的阐述了不同的应用领域对产品性能的需求,并解释它们的原理以帮助开发人员作出合理的设计选择。原理以帮助开发人员作出合理的设计选择。e.2安全

22、设施需求安全设施需求详尽陈述与产品使用过程中可能发生的损失、破坏或危害详尽陈述与产品使用过程中可能发生的损失、破坏或危害相关的需求。相关的需求。e.3安全性需求安全性需求详尽陈述与系统安全性、完整性或与私人问题相关的需求,详尽陈述与系统安全性、完整性或与私人问题相关的需求,这些问题将会影响到产品的使用和产品所创建或使用的数这些问题将会影响到产品的使用和产品所创建或使用的数据的保护。据的保护。需求规格说明模板需求规格说明模板-其它非功能需其它非功能需求求e.4软件质量标准属性软件质量标准属性详尽陈述与客户或开发人员至关重要的其产品质详尽陈述与客户或开发人员至关重要的其产品质量特性。量特性。e.5

23、业务规则业务规则列举出有关产品的所有操作规则,例如什么人在列举出有关产品的所有操作规则,例如什么人在特定环境下可以进行何种操作。特定环境下可以进行何种操作。e.6用户文档用户文档列举出将与软件一同发行的用户文档部分,例如,列举出将与软件一同发行的用户文档部分,例如,用户手册、在线帮助和教程。明确所有已知的用用户手册、在线帮助和教程。明确所有已知的用户文档的交付格式和标准。户文档的交付格式和标准。需求规格说明模板需求规格说明模板-其它需求其它需求定义在软件需求规格说明的其它部分未出定义在软件需求规格说明的其它部分未出现的需求,例如国际化需求或法律上的需现的需求,例如国际化需求或法律上的需求。你还

24、可以增加有关操作、管理和维护求。你还可以增加有关操作、管理和维护部分来完善产品安装、配置、启动和关闭、部分来完善产品安装、配置、启动和关闭、修复和容错,以及登录和监控操作等方面修复和容错,以及登录和监控操作等方面的需求。在模板中加入与你的项目相关的的需求。在模板中加入与你的项目相关的新部分。如果你不需要增加其它需求,就新部分。如果你不需要增加其它需求,就省略这一部分。省略这一部分。需求规格说明模板需求规格说明模板-附录附录附录附录A:词汇表词汇表定义所有必要的术语,以便读者可以正确地解释软件需求定义所有必要的术语,以便读者可以正确地解释软件需求说明,包括词头和缩写。你可能希望为整个公司创建一张

25、说明,包括词头和缩写。你可能希望为整个公司创建一张跨越多项项目的词汇表,并且只包括特定于单一项目的软跨越多项项目的词汇表,并且只包括特定于单一项目的软件需求规格说明中的术语。件需求规格说明中的术语。附录附录B:分析模型:分析模型这个可选部分包括或涉及到相关的分析模型的位置,例如这个可选部分包括或涉及到相关的分析模型的位置,例如数据流程图、类图、状态转换图或实体数据流程图、类图、状态转换图或实体-关系图。关系图。附录附录C:待确定问题的列表待确定问题的列表编辑一张在软件需求规格说明中待确定问题的列表,其中编辑一张在软件需求规格说明中待确定问题的列表,其中每一表项都是编上号的,以便于跟踪调查。每一

26、表项都是编上号的,以便于跟踪调查。数据字典(数据字典(1/3)数据字典是为了描述在结构化分析过程中定义的数据字典是为了描述在结构化分析过程中定义的对象的内容,而使用的一种半形式化的工具。下对象的内容,而使用的一种半形式化的工具。下面是对这个重要的建模工具的定义:面是对这个重要的建模工具的定义:数据字典是所有与系统相关的数据元素的有组织的列表,并且包含了对这些数据元素的精确、严格的定义,从而使得用户和系统分析员双方对输入、输出、存储的成分甚至中间计算结果有共同的理解。简而言之,数据字典是描述数据的信息的集合,简而言之,数据字典是描述数据的信息的集合,是对系统中使用的所有数据元素的定义的集合。是对

27、系统中使用的所有数据元素的定义的集合。 数据字典(数据字典(2/3)目前,数据字典几乎总是作为目前,数据字典几乎总是作为“结构化分析与设计工具结构化分析与设计工具”(CASE工具)的一部分实现的。尽管不同工具中数据工具)的一部分实现的。尽管不同工具中数据字典的形式不同,但是绝大多数数据字典都包含下列信息:字典的形式不同,但是绝大多数数据字典都包含下列信息:名字名字数据、控制项、数据存储或外部实体的主要数据、控制项、数据存储或外部实体的主要 名称。名称。别名别名第一项中对象的其他名字。第一项中对象的其他名字。使用地点与方式使用地点与方式使用数据或控制项的处理的列表,使用数据或控制项的处理的列表,

28、以及使用这些对象的方式以及使用这些对象的方式( (例如作为处理的输入,从处例如作为处理的输入,从处理输出,作为数据存储,作为外部实体理输出,作为数据存储,作为外部实体) ) 。内容描述内容描述描述数据或控制项内容的符号。描述数据或控制项内容的符号。补充信息补充信息关于数据类型、预置值、限制等的其他关于数据类型、预置值、限制等的其他信息。信息。数据字典(数据字典(3/3)由数据元素组成数据的方式只有下述三种由数据元素组成数据的方式只有下述三种基本类型:基本类型:顺序顺序 即以确定次序连接两个或多个分量。即以确定次序连接两个或多个分量。选择选择 即从两个或多个可能的元素中选取一即从两个或多个可能的

29、元素中选取一个。个。重复重复 即把指定的分量重复零次或多次。即把指定的分量重复零次或多次。因此,可以使用上述三种关系算符定义数因此,可以使用上述三种关系算符定义数据字典中的任何条目。据字典中的任何条目。需求示例的改进前后需求示例的改进前后“产品必须在固定的时间间隔内提供状态消息,产品必须在固定的时间间隔内提供状态消息,并且每次时间间隔不得小于并且每次时间间隔不得小于60秒秒”a.在后台任务进程启动之后,消息必须每隔在后台任务进程启动之后,消息必须每隔60(10)秒更新一次,并且保持连续的可见性。秒更新一次,并且保持连续的可见性。b.如果正在正常处理后台任务进程,那么后台任务管如果正在正常处理后

30、台任务进程,那么后台任务管理器(理器(BTM)必须显示后台任务进程已完成的百分比。)必须显示后台任务进程已完成的百分比。c.当完成后台任务时,后台任务管理器(当完成后台任务时,后台任务管理器(BTM)必须)必须显示一个显示一个“已完成已完成”的消息。的消息。d.如果后台任务中止执行,那么后台任务管理器如果后台任务中止执行,那么后台任务管理器(BTM)必须显示一个出错消息。)必须显示一个出错消息。需求示例的改进前后需求示例的改进前后“产品必须在显示和隐藏非打印字符之间进行瞬间产品必须在显示和隐藏非打印字符之间进行瞬间切换切换”“用户在编辑文档时,通过激活特定的触发机制,用户在编辑文档时,通过激活

31、特定的触发机制,可以在显示和隐藏所有可以在显示和隐藏所有HTMLHTML标记之间进行切换标记之间进行切换”“如果可能的话,应当根据主货物编号列表在线确如果可能的话,应当根据主货物编号列表在线确认所输入的货物编号。认所输入的货物编号。”“系统必须根据在线的主货物编号列表确认所输系统必须根据在线的主货物编号列表确认所输入的货物编号。如果在主列表中查不到该货物的入的货物编号。如果在主列表中查不到该货物的编号,系统必须显示一个出错消息并已拒绝订货。编号,系统必须显示一个出错消息并已拒绝订货。”需求示例的改进前后需求示例的改进前后“分析程序应该能生成分析程序应该能生成HTML标记出错的报标记出错的报告,

32、这样就可以使告,这样就可以使HTML的初学者使用它来的初学者使用它来迅速排错。迅速排错。”a.在在HTMLHTML分析程序完全分析完一个文件后,该分析程序完全分析完一个文件后,该分析程序必须生成一个出错报告,这个报告中分析程序必须生成一个出错报告,这个报告中包含了在分析文件过程中所发现错误的包含了在分析文件过程中所发现错误的HTMLHTML所所在的行号以及文本内容,还包含了对每个错误在的行号以及文本内容,还包含了对每个错误的描述。的描述。b. . 如果在分析过程中未发现任何错误,就不必如果在分析过程中未发现任何错误,就不必生成出错报告。生成出错报告。实例分析实例分析网上书店需求规格说明书.doc

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 幼儿/小学教育 > 幼儿教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号