模型检查面向对象代码_第1页
模型检查面向对象代码_第2页
模型检查面向对象代码_第3页
模型检查面向对象代码_第4页
模型检查面向对象代码_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1/1模型检查面向对象代码第一部分模型检查概述和面向对象特性挑战 2第二部分面向对象代码形式化建模方法 4第三部分基于状态机的面向对象模型检查 8第四部分基于逻辑的面向对象模型检查 12第五部分自动化面向对象模型检查工具 14第六部分面向对象模型检查的应用场景 17第七部分面向对象模型检查的技术局限和展望 19第八部分面向对象模型检查与其他验证方法对比 22

第一部分模型检查概述和面向对象特性挑战模型检查概述

模型检查是一种形式化验证技术,用于验证系统是否满足特定规范。它涉及创建系统的模型,然后使用自动工具检查该模型是否满足规范。

模型检查的优势:

*自动化:模型检查工具可自动执行验证过程,从而节省时间和精力。

*准确性:经过验证的模型保证满足规范,增强了对系统正确性的信心。

*早期检测:可以在开发早期发现错误,从而降低开发成本和上市时间。

面向对象特性挑战

在面向对象系统中,模型检查面临以下挑战:

#类层次结构和继承

*类层次结构和继承增加了状态空间的复杂性,使得穷举搜索变得困难。

*需要考虑对象之间的交互和继承关系,这可能会引入额外的路径和状态。

#状态空间爆炸

*面向对象系统通常具有非常大的状态空间,这使得穷举搜索变得不可行。

*对象之间的交互和状态转换可能导致状态空间呈指数级增长。

#并发性

*并发性引入非确定性,使得验证变得更加困难。

*模型检查工具必须能够处理并行执行的多个线程,这会增加验证的复杂性。

#封装和信息隐藏

*面向对象编程的封装和信息隐藏特性限制了模型检查器的可见性。

*模型检查器可能无法访问私有成员和方法,这使得验证更具挑战性。

#动态对象创建和销毁

*在面向对象系统中,对象可以在运行时动态创建和销毁。

*这会引入额外的复杂性,因为模型检查器必须动态更新其模型以反映对象的创建和销毁。

#规范语言的可扩展性

*验证面向对象系统需要一个可扩展的规范语言,能够表达复杂的属性。

*规范语言必须能够处理面向对象特性,例如继承、多态性和并发性。

解决挑战的方法

为了解决这些挑战,模型检查研究人员提出了各种技术和工具:

#规约性的归约和层次化

*通过将其分解为较小的、更易于管理的子模块,可以减小状态空间。

*层次化方法允许逐步验证系统,从抽象级别到具体级别。

#并发性处理技术

*使用符号执行、切片技术和并行模型检查等技术来处理并发性。

*这些技术可以减少需要探索的状态空间,提高验证效率。

#静态分析和抽象

*通过应用静态分析来确定不可访问的状态和路径,从而减少状态空间。

*抽象技术可以创建系统的近似模型,从而简化验证。

#专门的规范语言

*针对面向对象系统开发了专门的规范语言,例如Alloy、Spec#和JML。

*这些语言能够表达复杂的属性,并提供对面向对象特性的支持。

结论

模型检查是验证面向对象代码的有力工具。通过解决与面向对象特性相关的挑战,模型检查工具和技术可以帮助提高系统的可靠性和正确性。第二部分面向对象代码形式化建模方法关键词关键要点面向对象程序行为建模

1.采用对象状态-转换图(OSTD)表示类实例的行为。

2.状态表示对象变量取值的集合,转换表示状态之间的转移。

3.通过组合和扩展子类,可以模块化地建模类层次结构。

对象交互建模

1.使用消息序列图(MSC)表示对象之间的交互。

2.每个对象以一个垂直的生命周期轴表示,水平箭头表示消息传递。

3.可以通过组合和分解来建模复杂的交互方案。

并发代码建模

1.采用互斥限定符和同步信道表示线程之间的并发。

2.互斥限定符防止并发访问共享资源,同步信道用于线程之间的通信。

3.可以通过不同的抽象级别建模并发,以分析不同层面的行为。

数据抽象建模

1.使用代数规范表示数据结构和运算的语义。

2.代数规范定义操作的预后条件和后置条件,以捕获数据不变式。

3.可以通过定理证明来验证代码符合规范。

类继承建模

1.采用面向对象扩展的代数规范表示类继承。

2.子类继承父类的操作规范,并可以添加新的操作和扩展现有的操作。

3.可以通过类型检查来确保子类在语义上是一致的。

面向对象代码形式化模型的工具支持

1.提供自动化建模工具,从代码中提取模型。

2.开发模型验证工具,对模型进行形式化验证。

3.提供图形化表示和交互式分析功能,以提高模型的理解和可访问性。面向对象代码形式化建模方法

引言

本文介绍了面向对象代码的形式化建模方法,这是一种用于评估面向对象代码的可靠性和健壮性的技术。

概述

面向对象代码形式化建模涉及将代码转化为一个形式模型,该模型可以用数学或逻辑表示。这使得可以对代码进行严格的分析,以识别潜在的错误或缺陷。

建模方法

有几种面向对象代码形式化建模方法,包括:

*抽象状态机(ASM):将代码建模为一组状态和转换,捕捉代码的动态行为。

*操作语义:将代码建模为操作集,这些操作捕获代码执行时发生的状态变化。

*霍尔语义:将代码建模为一组逻辑公式,这些公式描述代码的可能行为。

*Z:使用基于集合论的形式规范来建模代码,重点关注对象之间的关系。

建模过程

形式化建模过程通常包括以下步骤:

1.代码抽象:将代码简化为一个较小、更易于分析的模型。

2.模型构建:使用选定的建模方法创建代码的正式模型。

3.模型验证:使用形式验证技术(如定理证明或模型检查)检查模型是否满足预期的属性。

4.缺陷识别:分析验证结果以识别潜在的缺陷或错误。

验证技术

模型一旦建立,可以使用以下验证技术来评估其属性:

*定理证明:使用手动或自动推理技术来证明模型的行为满足预期的规范。

*模型检查:使用工具自动化探索模型的状态空间,以验证是否满足特定的属性。

应用

面向对象代码形式化建模在以下应用中非常有用:

*安全关键系统:验证代码在所有可能的输入和执行路径下都满足安全要求。

*并发系统:分析并发代码以检测死锁和竞态条件。

*软件设计:在开发阶段早期识别设计缺陷。

*代码验证:通过提供代码正确性的正式证明来建立更高的置信度。

优势

*严谨性:形式模型提供了一种数学上严谨的方式来描述代码的行为。

*自动化:验证技术可以自动检查模型,减少手动分析的需要。

*可复用性:形式模型可以跨不同的代码库和项目进行复用。

*缺陷检测:形式化建模可以识别传统测试技术可能遗漏的潜在缺陷。

劣势

*复杂性:形式化建模是一个复杂的过程,需要专门的专业知识。

*可扩展性:对于大型或复杂的代码库,形式化建模可能变得难以管理。

*时间和资源:形式化建模是一个耗时的过程,可能需要大量的计算资源。

*抽象:形式模型本质上是抽象的,因此可能无法捕获代码的所有细节。

结论

面向对象代码的形式化建模是一种强大的技术,用于评估代码的可靠性和健壮性。通过使用数学或逻辑表示代码,它提供了对代码行为的严谨分析,可以识别潜在的缺陷和错误。然而,形式化建模是一个复杂且耗时的过程,需要专门的专业知识和大量的计算资源。第三部分基于状态机的面向对象模型检查关键词关键要点基于状态机的面向对象模型检查

1.将面向对象代码转换为状态机表示,利用状态图表来捕获对象行为的各个方面。

2.使用有限状态机模型检查技术,验证状态机的性质,例如死锁、饥饿和资源泄漏。

3.扩展状态机模型来包括对象实例之间的交互,以及对象之间共享资源的情况。

状态空间爆炸

1.随着程序规模的增加,状态空间的尺寸呈指数级增长,导致模型检查变得不可行。

2.采用局部模型检查、对称性减少和抽象等技术来减小状态空间。

3.探索基于人工智能的技术,如启发式搜索和符号执行,以进一步提高模型检查的可扩展性。

并发性和非确定性

1.处理并发性,即多个对象同时执行,并考虑对象之间的交互和同步。

2.应对非确定性,例如外部事件或随机输入,这些因素会影响代码执行路径。

3.开发技术来分析并发和非确定性程序,例如模型检查器、定理证明器和模拟器。

规格语言

1.使用规格语言来形式化期望的对象行为,并指定要验证的性质。

2.探索使用自然语言处理和机器学习技术来增强规格语言的可读性和可维护性。

3.调查基于语义学的规格语言,以便支持推理和形式化验证。

工具支持

1.开发集成模型检查器、规格语言和调试工具的工具链。

2.提供图形用户界面和可视化技术,以简化模型构建和分析过程。

3.探索基于云的模型检查服务,以提高可访问性和可扩展性。

趋势和前沿

1.利用可生成模型技术来减轻复杂代码的手动建模负担。

2.探索形式验证和基于机器学习技术的结合,以增强模型检查的准确性和效率。

3.调查安全关键系统中面向对象代码模型检查的应用,如医疗保健、航空航天和金融。基于状态机的面向对象模型检查

面向对象模型检查基于有限状态机对面向对象代码进行验证。它将对象视为能够处于不同状态的实体,并对这些状态之间的转换进行建模。

建模面向对象系统

*对象状态:对象的属性值和内部状态的组合。

*状态转换:触发对象从一种状态转换到另一种状态的事件或方法调用。

*状态图:一个有向图,其中节点表示状态,边表示转换。

模型检查过程

*模型建立:将面向对象代码转换为状态机模型。

*性质规范:使用形式化语言(例如线性时序逻辑)指定要检查的性质。

*模型检查:使用模型检查工具,例如SPIN或BLAST,检查模型是否满足性质。

*结果分析:确定模型是否满足性质,并根据需要产生诊断信息。

用于模型检查的性质

*安全性:系统不会进入不安全状态。

*活性:系统最终会进入所需状态。

*反应性:系统对输入事件做出预期响应。

*公平性:所有系统组件都有机会执行。

*实时性:系统在特定时间范围内满足性质。

优点

*自动且全面:模型检查自动化验证过程,并能够系统地检查大量代码。

*可理解:状态机模型直观且易于理解,有助于调试和缺陷定位。

*可扩展:模型检查工具可以扩展以处理大型和复杂的系统。

局限性

*状态空间爆炸:对于具有大量状态和转换的系统,模型检查可能不可行。

*代码覆盖:模型检查通常仅验证有限的代码路径,因此可能遗漏某些缺陷。

*环境建模:模型检查依赖于准确建模环境与系统的交互。

应用领域

*并发和分布式系统

*实时和嵌入式系统

*通信协议

*硬件设计

*软件工程

例子

状态图:

```

对象:电梯

状态:

-静止

-上行

-下行

-停止

转换:

-静止->上行(按钮按下)

-上行->静止(到达目标楼层)

-上行->停止(故障)

-...

```

性质规范:

电梯永远不会在非静止状态时停止。

模型检查:

使用模型检查工具验证系统是否满足性质。如果发现违反性质,工具将提供反例轨迹以帮助调试。第四部分基于逻辑的面向对象模型检查关键词关键要点主题名称:面向对象逻辑

1.定义对象行为和交互的基础逻辑框架,包括对象、类、继承和多态性。

2.提供抽象建模机制,便于描述面向对象系统的复杂行为和关系。

3.支持推理和验证面向对象代码的逻辑性质,确保代码的正确性和一致性。

主题名称:模型检查的形式化方法

基于逻辑的面向对象模型检查

面向对象代码的模型检查是验证面向对象软件系统的行为和属性的技术。与传统模型检查方法不同,它专注于面向对象编程范例的特殊挑战,例如对象状态、继承和多态性。

基于逻辑的面向对象模型检查是一种使用逻辑公式来表示和验证系统行为的方法。这些公式可以捕捉对象状态、对象交互和系统属性。常见的逻辑形式包括:

*一阶谓词逻辑(FOL):允许量词化变量、谓词和函数。

*时态逻辑:扩展FOL,包含时态算子(例如,未来、现在和过去)。

*动态逻辑:进一步扩展时态逻辑,允许程序操作(例如,赋值和条件分支)。

主要方法

基于逻辑的面向对象模型检查主要有两种方法:

*基于模型的方法:首先构建系统的模型,然后使用逻辑公式对模型进行验证。这种方法对于验证复杂系统很有用,因为它允许对系统行为进行详细建模和分析。

*基于符号执行的方法:直接执行程序代码,同时使用逻辑公式跟踪和验证程序的状态。这种方法通常比基于模型的方法更有效率,但只能处理有限状态系统。

技术挑战

基于逻辑的面向对象模型检查面临着以下技术挑战:

*状态空间爆炸:面向对象程序通常具有巨大的状态空间,这可能会导致模型检查器耗尽内存。

*继承和多态性:继承和多态性使验证变得复杂,因为它们引入对象类型和行为的可变性。

*并发:并发性可能会导致交互复杂,从而难以捕获和验证。

工具和技术

有多种工具和技术可用于执行基于逻辑的面向对象模型检查,包括:

*SPIN:SPIN工具使用Promela语言,它是一种用于验证并发系统的时态逻辑语言。

*AlloyAnalyzer:AlloyAnalyzer工具使用Alloy语言,它是一种用于建模和分析面向对象系统的一阶谓词逻辑。

*JavaPathFinder(JPF):JPF工具使用JavaMonaco语言,它是一种用于执行Java代码并验证其属性的动态逻辑。

应用

基于逻辑的面向对象模型检查已成功应用于广泛的领域,包括:

*软件验证:验证软件系统的正确性和健壮性。

*硬件验证:验证硬件设计的行为和性能。

*安全协议验证:验证通信协议的安全性。

*医疗保健:验证医疗设备和系统的行为。

*金融:验证金融系统的准确性和可靠性。

结论

基于逻辑的面向对象模型检查是验证面向对象软件系统行为和属性的重要技术。它提供了一种使用逻辑公式精确捕捉和验证系统属性的方法。尽管面临技术挑战,但它已成功应用于广泛的领域,并已成为软件和系统开发中宝贵的工具。第五部分自动化面向对象模型检查工具关键词关键要点【面向对象模型检查自动化工具概述】

1.这些工具利用模型检查技术,自动验证面向对象代码的属性,提高代码质量。

2.自动化流程减少了手动验证的繁琐性和错误风险,提高了效率和可靠性。

3.工具支持各种编程语言和框架,例如Java、C++、Python等。

【特定面向对象建模技术】

自动化面向对象模型检查工具

概述

面向对象模型检查(MO-MC)工具利用形式化方法自动验证面向对象代码的正确性。这些工具通过遍历系统状态空间并检查其是否满足指定的形式化属性来工作。

工具分类

基于方法论:

*符号模型检查器:使用符号表示的状态空间,允许对无限状态系统进行精确检查。代表工具:SPIN、NuSMV

*BDD模型检查器:使用二进制决策图(BDD)表示状态空间,适用于有限状态系统。代表工具:CBMC、SMV

基于语言:

*Java模型检查器:专门针对Java代码进行检查。代表工具:JavaPathFinder、JMLC

*C/C++模型检查器:针对C/C++代码进行检查。代表工具:CBMC、Frama-C

*多语言模型检查器:支持多种编程语言。代表工具:UPPAAL、NuSMV

工作流程

自动化MO-MC工具通常遵循以下工作流程:

*建模:将系统行为抽象为形式化的模型,例如状态机或时序逻辑。

*属性指定:指定要验证的正式属性,例如安全性和故障容错性。

*模型检查:使用模型检查算法遍历模型的状态空间并检查其是否满足属性。

*结果报告:报告检查结果,指出系统是否满足属性,或突出显示违例情况。

优势

*自动化验证:自动执行繁琐的验证过程,减少人为错误。

*早期缺陷检测:在开发早期阶段发现缺陷,从而降低开发成本。

*提高代码可靠性:通过验证代码的正确性来增强对代码的信心。

*提高开发效率:通过减少测试和调试时间来提高开发效率。

局限性

*状态爆炸:复杂系统的状态空间可能非常大,导致状态爆炸问题。

*可扩展性:随着系统规模的扩大,模型检查可能会变得不可行。

*抽象精度:抽象过程可能会引入错误,影响检查结果的准确性。

*性能开销:模型检查可能会引入性能开销,影响实际系统的性能。

应用

MO-MC工具广泛应用于各种领域,包括:

*安全协议

*软件可靠性

*嵌入式系统

*并发系统

*医疗设备

当前进展

MO-MC工具领域的当前进展包括:

*分布式模型检查:用于验证分布式系统的正确性。

*概率模型检查:用于验证具有概率行为的系统的正确性。

*混合状态模型检查:用于验证具有连续和离散状态的系统的正确性。

*机器学习辅助模型检查:利用机器学习技术提高模型检查效率和精度。第六部分面向对象模型检查的应用场景关键词关键要点面向对象模型检查的应用场景

安全协议验证

1.模型检查可验证安全协议的安全性,如身份验证和机密性。

2.自动化技术可发现协议中的缺陷,如攻击者重放消息或窃取敏感数据。

操作系统内核验证

面向对象模型检查的应用场景

软件系统验证

*验证面向对象软件系统中的关键属性,如安全性、并发性和鲁棒性。

*例如,在银行系统中,使用模型检查来验证是否保证了客户数据的机密性。

协议和通信

*分析通信协议的正确性和健壮性。

*确保协议符合规范,避免错误和安全漏洞。

*例如,检查网络协议的正确性,以确保数据传输的可靠性。

嵌入式系统

*验证具有并发和实时约束的嵌入式系统的行为。

*确保系统在所有可能的情况下都能安全可靠地运行。

*例如,检查医疗设备软件的安全性,以防止有害故障。

安全系统

*分析安全系统的行为,以识别和解决安全漏洞。

*确保系统免受攻击,保护敏感数据和关键资产。

*例如,检查网络防火墙的配置,以防止未经授权的访问。

人工智能(AI)算法

*验证AI算法的正确性和可解释性。

*确保算法做出准确和公正的预测,并符合道德准则。

*例如,检查自动驾驶算法的安全性,以避免事故。

并行和分布式系统

*分析并验证具有并发和分布式特性的系统中的复杂交互。

*确保系统在所有可能的执行路径下都能正确运行。

*例如,检查微服务架构中的通信和同步问题。

具体应用领域:

金融服务:

*验证在线银行交易的安全性。

*检查贷款申请处理流程的准确性。

医疗保健:

*分析医疗设备软件的可靠性和安全性。

*验证电子病历系统的机密性和完整性。

电信:

*检查网络协议的正确性和鲁棒性。

*验证移动通信系统的并发和实时行为。

汽车:

*验证自动驾驶算法的安全性。

*检查汽车电子系统的可靠性。

航空航天:

*分析飞机控制系统的正确性和健壮性。

*验证卫星通信协议的可靠性。

其他行业:

*验证电子商务网站的可靠性和安全性。

*检查制造系统中的复杂自动化流程。

*分析物流和供应链网络中的优化和协调问题。第七部分面向对象模型检查的技术局限和展望关键词关键要点主题名称:状态爆炸问题

1.在面向对象代码中,对象的数量和状态可能呈指数增长,导致状态空间过大,难以穷举和检查。

2.针对此问题,需要采用诸如抽象化、对称性检测、启发式搜索等技术,以减少状态空间的规模。

主题名称:并发性和同步问题

面向对象模型检查的技术局限和展望

技术局限

状态空间爆炸问题:

面向对象代码通常会导致巨大的状态空间,这是由于对象之间复杂的交互和多态性。

可观测性问题:

面向对象系统具有较差的可观测性,这意味着很难确定系统的内部状态和行为。

并发性和异步性:

并发性和异步性是面向对象系统中常见的特性,它们给模型检查带来了挑战。

继承和多态性:

面向对象模型检查需要处理继承和多态性,这会增加复杂性和开销。

动态对象创建和销毁:

面向对象代码中的动态对象创建和销毁会导致状态空间的动态变化,从而给模型检查带来困难。

展望

抽象化技巧:

使用抽象化技术,例如符号执行和抽象解释,可以减少状态空间的大小。

数据结构和算法的优化:

开发更有效的算法和数据结构来处理面向对象代码中的复杂交互。

组合技术:

结合多种模型检查技术,例如状态空间探索、符号执行和定理证明,可以提高效率和可扩展性。

并发和分布式模型检查:

开发专门针对并发和分布式面向对象系统的模型检查技术。

可观测性改进:

探索新的方法来提高面向对象系统的可观测性,例如使用反射和动态分析。

工具支持:

开发先进的工具,提供面向对象模型检查的强大支持,例如可视化、错误报告和自动修复。

形式化规范:

制定用于面向对象代码的形式化规范语言,以促进模型检查和验证。

可扩展性和可重用性:

开发可扩展和可重用的面向对象模型检查框架,以支持大型和复杂的系统。

应用领域:

安全关键系统:

在安全关键系统中,面向对象模型检查可用于验证软件的可靠性和安全性。

软件工程:

面向对象模型检查可用于改进软件设计、测试和维护。

人工智能:

面向对象模型检查可用于验证人工智能系统的行为和可靠性。

结论

面向对象模型检查面临着技术局限,但正在积极发展和创新,以克服这些挑战。通过采用抽象化技巧、优化算法和数据结构,以及开发新的技术和工具,面向对象模型检查有望在验证复杂软件系统方面发挥关键作用。第八部分面向对象模型检查与其他验证方法对比关键词关键要点面向对象模型检查与手工验证对比

1.自动化和系统性:模型检查是一种自动化过程,可以系统地探索代码的所有可能路径,查找缺陷。手工验证依赖于人类检查员的判断,这很容易出错且耗时。

2.涵盖范围:模型检查可以检查代码的广泛范围,包括并发性、循环和异常处理。手工验证往往只关注特定场景,可能无法全面涵盖代码的行为。

3.可重复性和可靠性:模型检查过程是可重复的,并且可以使用相同的模型和属性来多次验证代码。手工验证的结果可能因检查员的不同而异,缺乏一致性。

面向对象模型检查与静态分析对比

1.动态性:模型检查模拟代码的执行,允许在运行时检查代码的行为。静态分析只分析代码结构和数据流,无法揭示动态交互中的缺陷。

2.并发性处理:模型检查可以处理并发的代码,分析不同线程之间的交互。静态分析缺乏处理并发性的能力,可能错过由此产生的缺陷。

3.代码覆盖率:模型检查通过探索所有可能的状态转换来提供深入的代码覆盖率。静态分析只能确定代码中的哪些部分已被执行,而无法检测所有可能的场景。

面向对象模型检查与单元测试对比

1.抽象级别:模型检查在较高的抽象级别上操作,使用模型来表示代码的行为。单元测试在较低的级别上进行,需要编写测试用例来手动验证单个代码块。

2.全路径探索:模型检查可以探索代码的所有可能路径,而单元测试通常只涵盖有限的路径。这使得模型检查能够发现隐藏的缺陷,而单元测试可能无法找到。

3.并发性支持:模型检查可以处理并发代码,而单元测试通常只针对单个线程。这使得模型检查能够揭示单元测试可能错过的并发性问题。

面向对象模型检查与代码审查对比

1.自动检测:模型检查自动检测缺陷,无需人工代码审查。代码审查依赖于人类审查员,他们可能错过缺陷或引入主观偏差。

2.客观性和独立性:模型检查基于形式化的模型和属性,提供了客观和独立的缺陷检测。代码审查可能会受到审查员的经验和偏见的影响。

3.可扩展性和可扩展性:模型检查工具可以很容易地扩展到处理大型和复杂的代码库。代码审查过程可能难以扩展,并且随着代码库的增长而变得昂贵。

面向对象模型检查与形式化验证对比

1.可访问性和易用性:模型检查工具更易于使用和访问,使开发人员和测试人员能够轻松应用模型检查技术。形式化验证需要专门的知识和工具,这可能会限制其采用。

2.自动化和可重复性:模型检查自动化了验证过程,使缺陷检测更有效率和可重复。形式化验证通常需要手动工作,这可能会引入错误和不一致性。

3.覆盖范围和可扩展性:模型检查可以处理广泛的代码结构和行为,使其适合于各种应用程序。形式化验证可能只适用于某些类型的代码或要求进行专门的建模和证明,这会影响其覆盖范围和可扩展性。面向对象模型检查与其他验证方法对比

面向对象模型检查(OOMC)是一种在软件开发过

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论