ImageVerifierCode 换一换
格式:DOCX , 页数:26 ,大小:598.98KB ,
资源ID:11552466      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11552466.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(软件工程复习1.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

软件工程复习1.docx

1、软件工程复习1软件工程复习简答:1. 验证需求的方法:一致性,现实性,完整性,有效性。(重要)一致性:所有需求必须是一致的,任何一条需求不能和其他需求相互矛盾。完整性:需求必须是完整的,规格说明书应该包括用户需要的每一个功能或性能。现实性:指定的需求应该是用现有的硬件技术和软件技术基本上可以实现的,对硬件技术的进步可以做些预测,对软件技术的进步则很难做出预测,只能从现有技术水平出发判断需求的现实性。有效性:必须证明需求是正确有效的,确实能解决用户面对的问题 2.瀑布模型的缺点,优点即缺点,文件驱动瀑布模型:需求分析验证-规格说明验证-设计验证-编码测试-综合测试-维护瀑布模型有许多优点,可强迫

2、开发人员采用规范的方法,严格的规定了每个阶段必须提交的文档,要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。各阶段产生的文档是维护软件产品时必不可少的,遵循瀑布模型的文档约束,将使软件维护变得容易。瀑布模型的成功很大程度上是由于它基本上是一种文档驱动的模型。但是这也是它的一个主要缺点,在可运行的产品交付给用户运行之前,用户只能通过文档来了解产品是什么样的。总之瀑布模型几乎完全依赖于书面的规格说明,很可能导致最终开发出软件产品不能真正满足用户的需要。3.耦合度耦合度(衡量不同模块彼此间相互依赖的紧密程度)内聚性也称块内联系,即一个模块内部各个元素彼此结合的紧密程度的度量。数据耦合低

3、控制耦合中 公共环境耦合中 内容耦合高4.软件开发生命周期软件生命周期:软件定义,软件开发和软件维护三个时期组成定义期:问题定义-可行性研究-需求分析软件开发期:系统设计 包括总体设计和详细设计 系统实现 包括编码和测试软件维护期:每一次维护本质上是一次压缩和简化了的定义和开发过程5.三个模型对比(之间的关系)数据流图在面向对象中用的较少(功能模型)功能模型做什么,动态模型规定什么时候,对象模型定义了做事情的实体(1) 针对每个类建立的动态模型,描述了类实例的生命周期或运行周期(2) 状态转换驱使行为发生,这些行为在数据流图中被映射成处理,在用例图中被映射成用例,他们同时与类图中的服务相对应。

4、(3) 功能模型中的处理(或用例,下同)对应于对象模型中的类所提供的服务。通常复杂的处理对应于复杂对象提供的服务,简单的处理对应于更基本的对象提供的服务。有时一个处理对应多个服务,也有一个服务对应多个处理。(4) 数据流图中的数据存储,以及数据的源点/终点,通常是对象模型中的对象。(5) 数据流图中的数据流,往往是对象模型中对象的属性值,也可能是整个对象。(6) 用例图中的行为者,可能是对象模型中的对象。(7) 功能模型中的处理(或用例)可能产生动态模型中的事件。(8) 对象模型描述了数据流图中的数据流、数据存储以及数据源点/终点的结构。大题1. 数据流图2. 对象模型,功能模型,动态模型(对

5、象图不考,考类图)类图:3. 黑盒 等价类 边界划分第二章习题2.32.为方便储户,某银行拟开发计算机储蓄系统,储户填写的存款单或取款单由业务员输入系统,如果是存款,系统记录存款人姓名、住址、存款类型、存款日期、利率等信息,并印出存款单给储户;如果是取款,系统计算利息并印出利息清单给储户。写出问题定义并分析此系统的可行性。3.为方便旅客,某航空公司拟开发一个机票预订系统。旅行社把预订机票的旅客信息(姓名,性别,工作单位,身份证号码,旅行时间,旅行目的地等)输入进该系统,系统为旅客安排航班,印出取票通知和账单,旅客在飞机起飞的前一天凭取票通知和账单交款取票,系统校对无误即印出机票给旅客。写出问题

6、定义并分析此系统的可行性。第一章软件工程:是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来的学科。计算机软件=程序+数据+文档资料软件分类:系统软件和应用软件 软件特点:和硬件相比,软件是逻辑产品,不是有型的物质;软件产品的生产主要是研制;软件不会磨损;软件大多数需要定制。软件工程的产生背景:软件危机。软件危机(定义:严重问题)(危机表现:开发成本和进度估计不准,用户对已经完成的系统不满意,产品质量靠不住,不可维护,没有适当的文档,成本上升,生产率提高的速度太慢)软件危机产生原因 :不断变

7、化的用户需求的代价软件工程典型定义:软件工程是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术和方法来开发软件,把经过时间考验证明是正确的管理技术和当前能够得到的最好技术方法结合起来,这就是软件工程。方法学:软件生命周期全过程中使用的一整套技术方法的集合。三要素:软件开发方法,软件工具,软件过程。常见开发方法:1、 结构化开发方法,是一种面向数据流的开发方法。指导思想是自顶向下,逐步求精。基本原则是功能的分解与抽象。(包括结构化分析(完成需求分析),结构化设计(实现系统的概要设计),结构化实现(详细设计)2、 面向对象开发方法,以对象作为基本的元素,统一建模语言UML,为面向对象

8、的标准建模语言。(包括面向对象设计,面向对象分析,面向对象实现)软件工具:一般是指为了支持软件人员开发和维护活动而使用的软件。包括项目估算工具,需求分析工具,设计工具,编码工具,测试工具和维护工具等。软件生命周期:软件定义,软件开发和软件维护三个时期组成。定义期:问题定义-可行性研究-需求分析软件开发期:系统设计 包括总体设计和详细设计 系统实现 包括编码和测试软件维护期:每一次维护本质上是一次压缩和简化了的定义和开发过程生命周期(软件过程)模型:(有瀑布模型,增量模型,螺旋模型,喷泉模型,变换模型和基于知识的模型等)瀑布模型:开发设计-需求分析-概要设计-详细设计-编码-测试-维护。瀑布模型

9、是一种整体开发模型,特点:阶段间有顺序性和依赖性,推迟实现,质量保证的观点。缺点正式它的优点。而增量模型是非整体开发模型。模型具有较大的灵活性,适合于软件需求不明确,设计方案有一定风险的软件项目。部分功能,可交付的,在可交付的基础上不断的丰富功能。原型模型:部分功能,部分特征实现。遵循瀑布模型。螺旋模型将瀑布模型与增量模型结合起来,增加了风险分析(开发过程分为几个螺旋周期)风险驱动。喷泉模型:适合OO开发。特点:自迭代,相邻的阶段是重叠。统一过程:RUP 第二章 可行性研究从以下三个方面分析研究每种解决方法的可行性:技术可行性(开发的风险,资源的有效性,技术),经济可行性(成本-效益分析,长期

10、公司经营策略,开发所需的成本和资源等),操作可行性(系统的操作方式在目标组织内是否行得通),(社会可行性(关注以上三个方面)主要产出:愿景文档主要工具:系统流程图、数据流图系统流程图:(可用于可行性研究和需求分析)含义:概括的形式-描述高层逻辑模型,通过概要的设计-变成所建议系统的物理模型。从黑盒的角度看待系统以及系统的边界。针对已有的系统,现有的系统。系统流程图用图形符号表示系统中的各元素(如人工处理、数据处理、数据库、文件等),是描述物理系统的工具,表达了系统各元素的信息流动情况。表示法(基本符号):实例:数据流图:重点数据流从输入到输出的变换过程。主要符号:输入输出、加工、数据存储(通过

11、数据字典描述)、数据流DFD符号:例子:数据字典:(分析阶段的工具)内容:数据流,数据存储,数据的起点和终点,数据处理定义数据的方法:顺序、选择、循环、可选经济效益分析:一种说法:系统的经济效益等于因使用新的系统而增加的收入加上使用新的系统可以节省的运行费用。另一种说法:较少运行的费用和增加的收入。可行性研究文档:引言所建议系统的操作可行性分析,社会因素可行性分析等。若值得开发,下一步制定项目开发计划(费用,时间,进度,人员组织硬件设备的配置等进行说明和规划)。第三章 结构化需求分析需求分析(任务是准确定义新系统目标,指出“系统做什么”)是指开发人员要准确理解用户的要求,进行细致的调查分析,将

12、用户非形式的需求陈述化为完整的需求定义, 再由需求定义转换到相应的需求规格说明的过程。 任务:问题识别:双方确定问题的综合需求:功能需求,性能需求,环境需求,用户界面需求,将来可能提出的要求。分析综合,导出软件的逻辑模型。描述逻辑模型: 数据流图 (DFD)(建立功能模型) 数据字典 (DD) 实体联系图 (E-R图)(建立数据模型) IPO图 (Input-Process-Output)输入,处理,输出一个例子:状态图:建立行为模型 一个例子:层次方框图Warnier图Pad图 (也可用于此)结构化需求分析方法(面向数据流自顶向下逐步求精进行需求分析)中的模型 理解描述问题信息域的数据模型(

13、E-R模型) 定义软件满足需求的功能模型(数据流图) 描述软件动态特征的行为模型(状态图) 能够支持3种模型细化的层次表达方式 过程:获取需求,验证需求,形成文档。产出:需求规格说明书(SRS)验证需求的方法:一致性,现实性,完整性,有效性。(重要)一致性:所有需求必须是一致的,任何一条需求不能和其他需求相互矛盾。完整性:需求必须是完整的,规格说明书应该包括用户需要的每一个功能或性能。现实性:指定的需求应该是用现有的硬件技术和软件技术基本上可以实现的,对硬件技术的进步可以做些预测,对软件技术的进步则很难做出预测,只能从现有技术水平出发判断需求的现实性。有效性:必须证明需求是正确有效的,确实能解

14、决用户面对的问题第四章 总体设计基本目的:“概括的说,系统应该如何实现”基本任务:设计软件系统结构(以模块为基础),数据结构的设计(逐步细化),数据库的设计(包括概念设计,逻辑设计,物理设计)功能分解的原则:模块化原则主要流程:功能分解,设计软件结构,设计数据库,测试计划(之后书写文档,审查和复审)软件设计的概念和原理:模块化,抽象,信息隐蔽及局部化,模块独立(每个模块只完成独立的子功能,与其他模块的联系最少且接口简单)。如何衡量软件的独立性(衡量模块的好的程度的两个标准):耦合度(衡量不同模块彼此间相互依赖的紧密程度)和内聚度(衡量一个模块内部各个元素彼此结合的紧密程度)。高内聚,低耦合-模

15、块好 若冲突,首先考虑耦合。耦合度 内聚性也称块内联系,即一个模块内部各个元素彼此结合的紧密程度的度量。内聚类型:偶然,逻辑,时间,通信,顺序,功能。 软件结构图:主要内容为模块,模块的控制关系,模块间的信息传递。软件系统的模块层次结构。反应整个系统的功能实现。即将来程序的控制层次体系。(sc)结构图的形态特征:深度,宽度,扇出。描绘软件结构的图形工具:层次图,HIPO图,结构图HIPO图:结构图:第五章 详细设计指出“具体地说,程序是如何实现的”任务:设计出程序的“蓝图”结构化程序设计技术是实现目标的关键技术,也是详细设计的逻辑基础。结构程序设计:自顶向下逐步求精的设计方法,设计单入口单出口

16、的程序模块,只使用三种基本的程序结构即顺序,选择,循环。(另外两种控制结构为直到型结构和多分支结构)详细设计的过程:人机交互的设计,软件结构的深度设计。人机界面设计:设计问题,设计过程,人机界面设计指南(一般交互指南,信息显示指南,数据输入指南)过程设计的工具: 4.1 程序流程图(PFD)即程序框图,广泛用于描述过程设计 4.2 盒图(N-S图)不违背结构化程序设计精神,没有箭头,不允许随意转移控制 4.3 判定表 4.4 判定树 4.5 问题分析图(PAD图)是一种算法描述工具,由左往右展开的二维树形结构,控制流程为自上而下从左到右的执行。 4.6 过程设计语言(PDL)在伪码基础上扩充模

17、块的定义与调用、数据定义和输入输出。控制结构与伪码相同,是一种描述模块算法设计和处理细节的语言。Jackson程序设计方法:面向数据结构 面向数据结构的设计方法,用数据结构作为程序设计的基础。 这种方法的最终目标是得出对程序处理过程的描述,最适合于在详细设计阶段使用,也就是说,在完成了软件结构设计之后,可以使用面向数据结构的方法来设计每个模块的处理过程。 使用面向数据结构的设计方法,首先需要分析确定数据结构,并且用适当的工具清晰地描述数据结构。Jackson图:顺序结构,选择结构,重复结构Jackson程序设计方法的步骤: (1) 分析并确定输入数据结构和输出数据结构的逻辑结构,并用Jacks

18、on图描述这些数据结构。 (2) 找出输入和输出数据结构有对应关系的数据单元。 (3) 使用下面三条规则从描述数据结构的Jackson图导出描述程序结构Jackson图。 为有对应关系的数据单元在程序结构的相应层次画一个处理框。 对输入数据结构中剩余的数据单元按它们所在的层次在程序结构中画出相应的处理框。 对输出数据结构中剩余的数据单元按它们所在的层次在程序结构中画出相应的处理框。 (4)列出所有的操作和条件并把它们分配到程序结构的适当位置。 (5) 用伪码表示程序。程序复杂程度定量度量方法:McCabe方法,Halstead方法第六章 实现-编码过程:编码+测试程序设计语言的分类:机器语言;

19、汇编语言;高级语言;第四代语言代码编写原则:重复利用已有资源,采用良好控制结构,精心设计数据结构,选择合适的算法,编程风格编程过程:结对编程,极限编程。软件配置管理(SCM):对软件系统中的多重版本实施系统管理,全面记载系统开发的历史过程。利用SCM进行开发的基本流程如下:从仓库中检出代码到工作目录;对工作目录中的代码进行修改;将修改的内容提交到仓库。第七章 实现-测试软件测试的定义:定义1:测试是为了发现程序中的错误而执行程序的过程定义2:测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计的一批测试用例,并利用这些测试用例运行程序以发现错误的过程。测试方法:白盒测试;黑盒测试测试步

20、骤:单元测试-集成测试-确认测试-系统测试单元测试的考虑:模块接口,局部数据结构,重要的执行通路,出错处理通路,以上各个方面的边界条件。过程:代码审查,测试软件集成测试:渐增式集成,非渐增式集成,自顶向下的结合,自底向上的结合,各种优先集成方法和混合法。验收测试:范围,可能结果,软件配置复查。设计测试方案:具体测试目的,测试数据,预期结果。白盒技术:逻辑 控制结构结构测试,被测对象基本上是源程序,以程序的内部逻辑结构为基础设计测试用例。方法:逻辑覆盖(语句覆盖,判定覆盖,条件覆盖,判定/条件覆盖,条件组合覆盖,路径覆盖)、循环覆盖、基本路径测试逻辑覆盖:循环覆盖:单循环,嵌套循环基本路径测试:

21、独立路径黑盒技术:重要 给定的输入,获取到目标输出功能测试,设计测试用例时,需研究需求说明和概要设计说明中有关程序功能或输入、输出之间的关系等信息,与测试后的结果进行分析比较。方法:等价类划分、边界值法、错误推测(凭直觉推测)、因果图法(考虑多个输入数据组合引起的错误)、判定表、判定树等价类划分-确定测试用例边界值分析:1、如果输入条件规定了值的范围,可以选择正好等于边界值的数据作为合理的测试用例,同时还要选择刚好越过边界值的数据作为不合理的测试用例。2、如果输入条件指出了输入数据的个数, 则按最大个数、 最小个数、比最小个数少 1 及比最大个数多1等情况分别设计测试用例。3、对每个输出条件按

22、以上原则确定输出值边界4、如果程序的输入或输出域是个有序集合,选择第一个和最后一个元素作为测试用例。因果图: 决策表:条件桩,条件项,动作桩,动作项。规则调试:调试技术有输出存储器的内容,打印语句,自动工具。调试策略有试探法,回溯法,对分查找法,归纳法,演绎法。自动测试工具:测试数据生成程序,动态分析程序,静态分析程序,文件比较程序。第八章 维护软件维护的定义:在软件交付使用后,为了改正错误和满足新的需求而修改软件的过程。种类:改正性维护,适应性维护,完善性维护,预防性维护。维护特点:非结构化维护和结构化维护差别巨大;维护的代价高昂;维护的问题很多维护过程:建立维护组织-确定报告和评价过程-规

23、定标准化的事件序列-建立适用于维护活动的记录保管过程-评价维护活动软件的可维护性:软件被理解、改正、适应及增强功能的容易程度。(决定因素有可理解性,可测试性,可修改性,可移植性,可重用性)软件再工程过程第九章 面向对象方法学引论传统方法学具有很多缺陷,如生产率的提高远不能满足要求,软件重用程度很低等。(出现问题的原因有僵化的瀑布模型,结构化技术本身的缺点:基础是功能分解,而用户需求的变化体现在对软件功能需求的改变)为了克服传统方法学的缺点,面向对象的方法学受到重视。面向对象的方法学:按照人类认识世界的方法分析和解决问题,将感兴趣或要研究的事物和概念都称为对象,以对象作为最基本的元素和分析解决问

24、题的核心。面向对象的开发方法:面向对象分析OOA 面向对象设计OOD 面向对象实现 OOP 统一建模语言UML unified modeling language面向对象方法学的概括可以用下列方程表示:OO=对象+类+继承+消息通信面向对象的优点:与人类习惯的思维方法一致;稳定性好;可重用性好;可维护性好;适合开发大型软件系统喷泉模型规定四个开发阶段:分析需求,系统设计,软件设计和实现。(各阶段相互重叠反映软件过程并行性,以分析为基础分析阶段消耗资源最多,反映迭代特性,强调增量开发,对象驱动)喷泉模型图解:面向对象的基本概念:对象 是对问题域中某个实体的抽象,特点有以数据为中心,主动,实现数据

25、封装,本质上有并行性,独立性好 类与实例 具有相同或相似性质对象的抽象就是类 即类的实例是对象消息和方法 对象之间进行通信的一种构造叫消息 实现类中操作的过程叫方法(方法名,参数和方法体)属性 是类中所定义的数据 类有属性,对象有属性值封装 具有一个清晰的边界,有确定的接口,受保护的内部实现继承 就是子类自动共享基类中定义的数据和方法的机制多态 指子类对象可以像父类对象一样使用。同样的消息既可以发送给父类对象也可以发送给子类对象。即在类等级的不同层次中共享同一行为,不同层次中的类按照各自的需要实现这个行为。重载 函数重载,运算符重载,静态联编/动态联编面向对象建模:研究问题域-撰写规格说明-建

26、立对象模型-建立动态模型-建立功能模型重要:对象模型使用类图和对象图类图:表示类、对象的符号对象模型中类与类之间的关系:关联关系;普通关联和限定关联(通常在一对多或者多对多的关联关系中,可把模型中的重数从一对多简化成一对一,或者从多对多简化成多对一)聚集(聚合)关系;是关联的特例,表示类与类之间的关系是整体与部分的关系,描述的字句有包含,组成,分为部分等。两种特殊的聚集关系:共享聚集,组合聚集(简称组成)。泛化关系;UML中的泛化就是通常所说的继承关系,是通用元素和具体元素间的一种分类关系泛化针对类型(类),不针对实例(对象).分为普通泛化和受限泛化(给泛化关系附加约束条件)依赖和细化关系。依

27、赖关系中其中一个模型元素是独立的,另一个模型元素不是独立的,它依赖于独立的模型元素。表示方式:带箭头的虚线,箭头指向独立的类。细化关系:对同一事务中不同层次上描述时,这些描述间具有细化关系。(B在A的基础上更详细描述,称B细化了A或A细化成了B)动态模型(使用序列图和状态图)动态模型表示瞬时的、行为化的系统的“控制”性质,规定了对象模型中的对象的合法变化序列。表达手段:状态图 电话系统的状态图:功能模型:使用用例图用例图(系统,用例,行为者,用例间的关系)用例建模:寻找行为者 寻找用例三种模型之间的关系:动态模型:什么时候做;对象模型:做事情的实体,最基本最重要;功能模型:做什么 3种模型相互

28、补充,相互配合。第十章 面向对象分析面向对象分析定义:抽取整理用户需求,建立问题域精确模型的过程。关键是识别出问题域内的类与对象,并分析他们相互间的关系最终建立起问题域的简洁、精确、可理解的正确模型。面向对象分析基本过程:三个子模型(功能模型-做什么,对象模型-由谁做,动态模型-何时做)和五个层次:主题层,类与对象层,结构层,属性层,服务层。建立功能模型:确定角色与用例;绘制用例图;描述角色与用例建立对象模型:确定类与对象;确定关联;划分主题;确定属性;识别继承关系;反复修改建立动态模型:编写脚本,提取出事件,用状态图描绘,比较并检查一致性。事件跟踪图:建立功能模型:表明了系统中数据之间的依赖

29、关系,以及有关的数据处理功能。由一组数据流图组成,其处理功能可用IPO图、伪码等多种方式进一步描述。定义服务:建立完整的对象模型;服务的定义第十一章 面向对象设计OOD即把分析阶段得到的需求转变成复合成本和质量要求的、抽象的系统实现方案的过程。OOD的任务是按照设计原则,对模型进行细化,朝着系统实现的方向进行多次迭代。设计准则:模块化,抽象,信息隐蔽,弱耦合,强内聚,可重用。启发规则:设计结果应该清晰易懂,一般-特殊结构的深度应该适中,设计简单的类,使用简单的协议,使用简单的服务,把设计变动减少到最小软件重用:类型(知识,方法和标准,软件成分)级别(代码,设计结果,分析结果)系统分解:系统中主

30、要的组成部分称为子系统 面向对象模型一般由以下四个部分组成:问题域子系统,人机交互子系统(设计关键原型技术),任务管理子系统(分析并发性主要依据是系统动态模型-设计),数据管理子系统(选择数据存储管理模式-设计)设计类中的服务(设计实现服务的算法-选择数据结构-定义内部类和内部操作)设计关联:关联是对象模型中联结不同对象的纽带,它指定了对象相互间的访问路径。在面向对象的设计中必须确定关联的具体策略。根据关联的阶数不同,实现的方法也不同。设计优化:确定优先级,提高效率的技术,调整继承关系。第十二章 面向对象的实现定义:把面向对象设计结果翻译成用某种程序语言书写的面向对象程序。测试并调试面向对象的程序。面向对象语言的优点:一致的表示方法,可重用性,可维护性。(允许用户动态创建对象)第十三章 软件项目管理内容:估算软件规模,工作量估算,进度计划,人员组织,质量保证,软件配置管理,能力成熟度模型。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1