软件工程4PPT学习教案_第1页
软件工程4PPT学习教案_第2页
软件工程4PPT学习教案_第3页
软件工程4PPT学习教案_第4页
软件工程4PPT学习教案_第5页
已阅读5页,还剩169页未读 继续免费阅读

下载本文档

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

文档简介

1、会计学1 软件工程软件工程4 第1页/共174页 第2页/共174页 软件设计的重要性 第3页/共174页 第四章 软件设计 4.1 软件设计的目标和任务 软件需求:解决“做什么” 软件设计:解决“怎么做” 1 软件设计的任务 问题结构(软件需求) 软件结构 从软件需求规格说明书出发,形成软 件的具体设计方案。 映射 第4页/共174页 数 据 设 计 体系结构设 计 接口设计 过程设计 分析模型 设计模型 第5页/共174页 人之间如何通信。人之间如何通信。 n过程设计过程设计:将程序体系结构元素:将程序体系结构元素 变换为对软件构件的过程描述。变换为对软件构件的过程描述。 第6页/共174

2、页 3. 软件设计的问题 F工具 如何描述软件的总体结构 F方法 用什么方法由问题结构导出软件结构 F评估准则 什么样的软件结构是“最优的” 第7页/共174页 4. 软件设计方法 F结构化设计方法(SD) F面向数据结构的设计方法(JSD方法) F面向对象的设计方法(OOD) 第8页/共174页 第9页/共174页 4.2 软件设计基础 1. 软件结构 2. 软件过程 3. 模块化 4. 抽象 5. 信息隐蔽 6. 信息局部化 第10页/共174页 软件设计的基本概念 F模块(module)与构件(component) 模块:定义输入、输出和特性的程序实体 构件:可重复使用的软件组件 F抽象

3、(abstract)与细化(refinement) 抽象:分层次考虑和处理问题(数据和过程) 细化:从高到低的逐步分解过程 F信息隐藏 对其它模块隐藏模块内部的数据和过程 F软件复用 Design with reuse, design for reuse 第11页/共174页 第12页/共174页 深 度 宽度 扇出 扇入 (模块的 层数) (同一层最大模块数) (一个模块 直接调用 的模块数) (调用一个给定模 块的模块个数) 第13页/共174页 例子:扇出 计算 实发工资 取得 工资数据 编外人员 扣款 编外人员 工资 编外人员 税收 薪金制 工资额 计时制 工资额 常规 扣款 税收 扣

4、款 煎饼形结构 不可取! 第14页/共174页 例子:扇出 常规 扣款 编外人员 实发工资 计算 实发工资 取得 工资数据 计时工人 实发工资 计薪工人 实发工资 编外人员 扣款 编外人员 税收 编外人员 工资 税收 扣款 计时制 工资额 薪金制 工资额 塔型结构 第15页/共174页 第16页/共174页 第17页/共174页 分解 第18页/共174页 例:将问题(P1+P2)分解为P1,P2 设函数C(x)定义问题 x 的复杂程度 函数E(x)确定解决问题 x 需要的工作量 对问题P1和P2,如: C(P1) C(P2) 显然: E(P1) E(P2) 有规律:C(P1+P2) C(P1

5、)+C(P2) E(P1+P2) E(P1)+E(P2) 各个击破理论 第19页/共174页 第20页/共174页 文件管理 网络管理 设备管理 高速缓冲存储器 对虚拟文件 的字节流, 虚拟文件可 为任何设备 和实体 抽 象 第21页/共174页 第22页/共174页 第23页/共174页 第24页/共174页 第25页/共174页 第26页/共174页 第27页/共174页 无耦合没有依赖关系 松散耦合有 少量依赖关系 紧密耦合有 很多依赖关系 第28页/共174页 第29页/共174页 模 块 独 立 性 弱 (低耦合) 强 (中耦合) (较强耦合) (强耦合) 第30页/共174页 模块

6、1模块2 模块3模块4 第31页/共174页 第32页/共174页 开发票 计算水费 单价 数量 金额 第33页/共174页 计算水电费 计算水费计算电费 用水量 用电量 水费 电费 第34页/共174页 第35页/共174页 计算水电费 计算水费计算电费 住户情况 水费 电费 住户情况 “住户情况”是一个数据结构,图中模块都 与此数据结构有关. “计算水费”和“计算电费”本无关,由于 引用了此数据结构产生依赖关系,它们之间 也是标记偶合. 第36页/共174页 计算水电费 计算水费计算电费 本月 用水量 本月 用电量 水费 电费 第37页/共174页 第38页/共174页 A 计算平均分 或

7、最高分 B 求平均/最高 (控制信息) 成绩 第39页/共174页 读入分数 返回结果 计算平均分 计算最高分 平均/最高? 调用逻辑性模块 B时,须先传递 控制信号(平均分 /最高分),以选 择所需的操作。 控制模块必须知 道被控模块的内 部逻辑,增强了 相互依赖. B 第40页/共174页 第41页/共174页 A 计算平均分 B1 平均成绩最高成绩 计算最高分 B2 第42页/共174页 A 发奖牌 名次 (开关量) 奖牌 控制耦合 被调用模块内 处理逻辑模式 功能A功能B 判别 第43页/共174页 A 发金牌发银牌发铜牌 第44页/共174页 第45页/共174页 第46页/共174

8、页 公共耦合 第47页/共174页 common 公共数据区 松散的公共耦合 common 公共数据区 紧密的公共耦合 第48页/共174页 公共数据区 CB 模块A、B、C间存在错综复杂的联系 第49页/共174页 所有的公共 耦合关系 A E B C D 6个模块共享一 个公共数据区 F 第50页/共174页 第51页/共174页 第52页/共174页 第53页/共174页 第54页/共174页 第55页/共174页 弱耦合 数据耦合 非直接 耦合 模块2模块1 模块4模块3 特征耦合(参数表 传递数据结构) 第56页/共174页 接 口 复 杂 性 接口方式 接口数据 的复杂性 无接口关

9、系 直接引用 过程调用语句 数据项作参数 数据结构,变 量名作参数 内容耦合 基本耦合 开关量,起 控制变量作用 全程变量公用数据区 I/O设备 数据耦合 标记耦合 控制耦合 外部耦合 公共耦合 非直接耦合 第57页/共174页 模块的耦合 第58页/共174页 第59页/共174页 模 块 独 立 性 弱(功能分散) 强(功能单一) 第60页/共174页 ABC M MOVE O TO R READ FILE F MOVE S TO T 模块M中的三个语句没有任何联系 缺点:可理解性差, 可修改性差 例: 第61页/共174页 第62页/共174页 ABC EFG ABC EFG e f g

10、 EFG模块内部逻辑 E、F、G逻辑 功能相似,组 成新模块EFG 缺点:增强了耦合程度(控制耦合) 不易修改,效率低 公用代码段 公用代码段 第63页/共174页 (4) 过程内聚 模块内各处理成分相关,且必须以特定次序执行 第64页/共174页 建立方程组系数矩阵 全部任务纳入一个 模块,得到一过程 性模块 高斯消去法 回 代 高斯消去法解题流程 高斯消去 法过程 第65页/共174页 读入 成绩单 审查 成绩单 统计 成绩 打印 成绩 读入并审查 成绩单 统计并打印 成绩单 第66页/共174页 第67页/共174页 产生工 资报表 计算平 均工资 职工工 资记录 职工工 资报表 平均

11、工资 产生职工工资报表并计算平均工资模块 相同输入 第68页/共174页 开领 书单 登记 售书 发票 领书单 售 书 登记表 文件 删除 修改 相同输入 处理相同 输出对象 第69页/共174页 第70页/共174页 符 号 表 查找 登录 删除修改 第71页/共174页 第72页/共174页 块内聚合形式的判定 这个 模块 执行 一个 功能 吗? Yes No 模块 内各 组成 部分 关系 如何? 控制流 数据流 其它逻辑相 似吗? 次序重 要吗? 次序重 要吗? Yes No Yes No Yes No 功能性内聚 顺序性内聚 通信性内聚 过程性内聚 时间性内聚 逻辑性内聚 偶然性内聚

12、第73页/共174页 模块内七种聚合形式的比较 第74页/共174页 模块的内聚 第75页/共174页 第76页/共174页 4.4 结构设计中的图形工具 层次图、HIPO图、结构图 第77页/共174页 正文加工系统 输入输出编辑加标题存储检索 编目录 添加删除插入修改合并列表 第78页/共174页 正文加工系统 输入 1.0 输出 2.0 编辑 3.0 加标题 4.0 存储 5.0 检索 6.0 编目录 7.0 添加 3.1 删除 3.2 插入 3.3 修改 3.4 合并 3.5 列表 3.6 第79页/共174页 输入处理 输出 读口令请求 口令文件 1取得输入 2口令确认 3请求确认

13、请求记录 权限文件 4更新处理 权限记录 状态报告 响应 命令监控器(1.0)的IPO图 2.HIPO图 第80页/共174页 IPO图 系统: 模块: 编号: 作者: 日期: 被调用:调用: 输出: 输入: 处理: 局部数据元素: 注释: 命令监控器 输入 1.0 方华 1999-3-2 命令监控器主控菜单 模块 命令监控器主控模块 取得输入、口令确认、请求确认、口令更新处理。输出正确性判断标志。 接收键盘口令 口令正确性判断标志 口令 、标 志 第81页/共174页 HIPO图 系统: 模块: 编号: 作者: 日期: 被调用:调用: 输出: 输入: 处理: 局部数据元素: 注释: 人事档案

14、管理系统 打印 2.1 方华 1999-3-2 人事档案管理模块 “打印全体人员”模块 “打印部分人员”模块 “打印个人:模块 将全体、按部门、个人的档案数据加工成要求的表格形式,进行输出、现示 人事档案数据和打 印选择 打印全体人员、部分人 员、个人的档案 第82页/共174页 人事管理系统 2.1 打印 2.1.1 “打印部 分人员” 2.1.1.2 “打印全体人员” 2.1.1.1“打印个人模块” 2.1.1.3 第83页/共174页 编辑学生记录 读学生记录 学生数据 无此学生 学号 不加区分的数据 数据信息 控制信息 第84页/共174页 传入模块 (a)(b) A A 传出模块 B

15、 B 变换模块 (c) C D 协调模块 E (d) E F F 第85页/共174页 B A C x,y z (a) (b) z B A C 12 入出 1 2 x,y z z 第86页/共174页 A CBD A根据内 部判断决 定是否调 用B A按另一判 定结果选择 调用C或D 第87页/共174页 A BC A根据内在的循环重 复调用B、C等模块 第88页/共174页 医院管理系统 门诊 管理 药房 管理 药库 管理 病房 管理 财务 管理 处方 挂号 处理 挂 号费 总 计 挂 号 单 挂 号 费 总 计 出库 处理 进药 管理 病历 管理 处方 管理 常规 处理 第89页/共174

16、页 第90页/共174页 系统结构特征可归纳为两种典型形式 F变换型结构 F事物型结构 第91页/共174页 变换 中心 输入 路径 输出 路径 第92页/共174页 时间 信息 信息流 输入流输出流 交换流 外部 表示 内部 表示 数据流图可分为两种类型: 第93页/共174页 输入 信息 物理 输入 格式 检查 处理显示 正确 信息 结果 物理 输出 数据 变换中心 输出 逻辑 输入 逻辑 输出 输入 第94页/共174页 事务 中心 接受路径 动作 路径 第95页/共174页 T 事务中心 传入 变换 传出 第96页/共174页 第97页/共174页 变换型DFD 事务型DFD 初始SC

17、 初始SC 变换分析 事务分析 第98页/共174页 第99页/共174页 BC A DE Q P R W UV ab c ed r p u w v 变换中心 输入 部分 输出 部分 第100页/共174页 MC MTMAME第一层 顶层 c,e c,eu,w u,w 传送信息 变换分析设计方法步骤: 第101页/共174页 MC MA1 c e u,w c,p MA2QPRME1ME2 e p r r w,u w 第102页/共174页 A MA C B b a c E D d e c,e 变换分析设计方法步骤 第103页/共174页 MA Get C b a c Read D d e c,

18、e B to C b c d e a b Get E Get BD to E A to BRead A 第104页/共174页 ME W Write V u u w,u v v v Put U U to V ME U Write W w wu w,u V (1)(2) 第105页/共174页 MT PQR e c,p r u,w p r 第106页/共174页 事务分析设计方法步骤: (1)在DFD上确定事务中心、接收部分和发送部分 (2)画出SC框架,把DFD上的三部分分别映射为事 务控制模块、接收模块和动作发送模块。 (3)分解细化接收分支和发送分支,完成初始SC。 第107页/共174页

19、 T 事务 中心传入 变换 传出 接收 部分 发 送 部 分 第108页/共174页 事务控制 接收 顶层 发送 第一层 第109页/共174页 事务控制 事务 分析 发送 N-S图 第110页/共174页 P T 2T 1T i A 2 D 2 A 1 D 1 A 3A j D k 事务层 操作层 细节层 处理层 第111页/共174页 第112页/共174页 第113页/共174页 第114页/共174页 第115页/共174页 A C B C AB C 改进前改进后 第116页/共174页 第117页/共174页 A F BC E M D G 第118页/共174页 第119页/共174

20、页 判定位置违反了作用范围/控制范围原则 TOP AB CD GE 条件 判定 G D B C 第120页/共174页 TOP AB CD GE 条件 判定 TOP B D G TOP B C 第121页/共174页 TOP A G CD B E 条件 判定 B D G B C 第122页/共174页 TOP A GE B D C 条件 判定 D G D E 第123页/共174页 (3) 增加模块的重用性 (4) 减少高扇出,争取高扇入 第124页/共174页 (6)降低模块接口的复杂性 接口传递信息应简单且和模块 功能一致。 第125页/共174页 例:求一元二次方程的根 设求根模块调用形

21、式为: (1) QUADROOT(TBL,X) 传递系数的数组 存放根的数组 (2) QUADROOT(A,B,C,ROOT1, ROOT2) A,B,C为方程系数 ROOT1,ROOT2是两个根 第126页/共174页 防止模块功能过分局限 n功能单一的模块具有高内聚。 n但如任意限制局部数据结构的大小,过分限 制控制流中可做的选择或外部接口的模式 ,模块功能就过分局限,使用范围过分狭 窄,缺乏灵活性和可扩充性。 第127页/共174页 数据设计 F好的数据设计将改善程序结构和模块 划分,降低过程复杂性。 接口设计 F接口设计主要包括三个方面: 设计软件模块间的接口(内部接口); 设计模块和

22、其他非人的信息生产者和消费 者的接口(外部接口); 设计人和计算机间的接口(人机界面)。 第128页/共174页 体系结构设计优化的指导规则 F设计阶段早期应该对程序结构多做精化和评估 ,以达到最好。 F便于优化是开发软件体系结构表示的一个重要 因素。 F结构上的简单往往反映出程序的优雅和高效。 F设计优化应在满足模块化要求的前提下适当减 少模块数量。 F在满足信息需求的前提下尽量减少复杂的数据 结构。 第129页/共174页 体系结构设计优化的指导规则 F对模块分割、合并和变动调用关系的指 导规则 提高内聚,降低耦合后 简化模块接口 少用全局性数据和控制型信息 F保持高扇入/低扇出的原则 F

23、作用域/控制域规则 作用域不要超出控制域的范围 位置离受它控制的模块越近越好 第130页/共174页 体系结构设计优化的指导规则 F对于性能要求高的应用,有时需要进行如下的工 作: 开发和精化程序结构,且不考虑关键性能而进行的 优化。 使用可以提高运行性能的CASE工具来孤立低效的部 分。 在后期设计中,对有可能最消耗时间的模块的算法 进行时间优化。 用适当的程序设计语言编码。 孤立出那些大量占用处理器时间的模块。 如果需要,用依赖机器的语言重新设计和编码,以 提高效率。 F先使其工作起来,再设法使其更好地工作。 第131页/共174页 4.6详细设计(过程设计) F目的 确定模块采用的算法和

24、块内数据结构 F任务:编写软件的“过程设计说明书” 为每个模块确定采用的算法 确定每一模块使用的数据结构 确定模块接口的细节 F原则 清晰第一的设计风格 结构化的控制结构 逐步细化的实现方法 第132页/共174页 程序设计工具 1. 程序流程图 2. 盒图(N-S图) 3. 问题分析图(PAD) 4. 过程设计语言(PDL)(伪代码) 5. 判定表 6. Jackson System Development(JSD) 第133页/共174页 1、程序流程图(Program Flow Chart) 5(或3)种基本控制结构为: 第134页/共174页 (1) 顺序结构(sequential s

25、tructure) (2) 选择结构(selective structure) A B P BA FT (3) 先判定型循环结构 (while-loop structure) (4) 后判定型循环结构 (until-loop structure) T P S F F S T P (5) 多情况选择(case structure) T A1 F P=1 T A2 F P=2 T An F P=n 第135页/共174页 任何复杂的程序流程图都应由以上五种基本 结构组合而成。 缺点:本质上不具备逐步求精的特点,对于提高 大型系统的可理解性作用甚微; 不易表示数据结构; 转移控制太方便。 趋势:减少

26、使用 优点:容易掌握,且历史“悠久”,使用广泛。 第136页/共174页 系统流程图图例 早于DFD的一种建模工具。 以图形方式说明系统中的控制流和数据 处理 框 选择 框 循环框(较新版 ) 文件 I/O框 i=0 循环 体 i10 流程起点或终点 第137页/共174页 A B C 第138页/共174页 AB F 条件 T A F T 条件 then 部分then 部分 else部分 第139页/共174页 A1 值1 A2An . . 条件 值2值n 第140页/共174页 S (循环体) DO-WHILE P S (循环体) REPEAT UNTIL P (先测试循环) (后测试循环

27、) 循环条件 第141页/共174页 A1A2An . 第142页/共174页 A C B F X6 T A: D (调用结构) 第143页/共174页 x4 TF Do-Until x5 ig h f k x1 TF b Do-Until x6 a j x2 1 c Do-While x3 23 de k : 例: 第144页/共174页 特点: 控制不能随意转移:没有箭头,不允许随意转移 控制; 结构化功能域清晰:每个矩形框(Case中条件取值 例外)都是一个功能域(即一个特定结构的作用域), 结构表示明确; 数据的作用域清晰:局部及全程数据的作用域易 见; 易表现嵌套关系(embedde

28、d structure)以及模块的层次 结构。 第145页/共174页 A B C A B T F 条 件 第146页/共174页 WHILE C S UNTIL C S (先测试循环) (后测试循环) 等价的PASCAL语言: REPEAT S UNTIL C 等价的PASCAL语言: WHILE C DO S 第147页/共174页 A1 值1 值2 值n A2 An . . . . . . 条件 第148页/共174页 特点: 没有箭头,不允许随意转移控制; 每个矩形框(Case中条件取值例外)都是一个 功能域(即一个特定结构的作用域),结构表 示明确; 局部及全程数据的作用域易见; 易

29、表现嵌套关系(embedded structure)以及模 块的层次结构。 第149页/共174页 4.结构化语言 F结构化语言/伪代码/过程设计语言PDL F结构化语言介于自然语言与计算机语言 之间。 F语句类型:顺序语句、条件语句、循环 语句。 第150页/共174页 结构化语言举例商店业务处理系 统中检查发货单的例子 F IF 发货单金额超过$500 THEN IF 欠款超过60天 THEN 在偿还欠款前不予批准 ELSE (欠款未超期) 发批准书及发货单 ENDIF ELSE (发货单金额未超过$500) IF 欠款超过60天 THEN 发批准书,发货单及催款通知 ELSE (欠款未超

30、期) 发批准书及发货单 ENDIF ENDIF 第151页/共174页 PROCEDURE spell_check IS BEGIN Split document into single words Look up words in dictionary Display words which are not in dictionary Create a new dictionary END spell_check External statements Internal statements 优点:易于实现由PDL到源代码的自动转换。 第152页/共174页 PDL应具备以下特点: 有固定的

31、外语法(keyword); 有数据说明,例如: TYPE number IS STRING LENGTH (12) TYPE table IS INSTANCE OF symbol_table 有子程序定义与调用机制,例如: PROCEDURE INTERFACE pseudocode lines END 调用时可用:PERFORM USING 内语法用自然语言描述; 抽象类型 第153页/共174页 第154页/共174页 选择结构 A select cond1 B A or cond2 C A or cond3 D A end 第155页/共174页 5.判定(决策)表 & 判定(决策)树

32、 (Decision Table & Tree) 表示复杂的条件(input)组合与应做动作(output)之 间的对应关系。如果判断的条件较多,各条件 又相互组合,则使用决策表比较好。 例:P.86 航空行李托运费的算法 按规定:重量不超过30公斤的行李可免费托运。重 量超过30公斤时,对超运部分,头等舱 国内乘客收4元/公斤;其它舱位国内乘 客收6元/公斤;外国乘客收费为国内乘 客的2倍;残疾乘客的收费为正常乘客 的1/2。 第156页/共174页 123456789 国内乘客国内乘客T T T T FFFF 头等舱头等舱T F T F T F T F 残疾乘客残疾乘客FF T T FF

33、T T 行李重量行李重量 W 30T FFFFFFFF 免费免费 (W-30) 2 (W-30) 3 (W-30) 4 (W-30) 6 (W-30) 8 (W-30) 12 用判定表表示计算行李费的算法用判定表表示计算行李费的算法 Rules Rule numbers Condition rows Action rows 第157页/共174页 决策表举例2:超产奖决策表 123 超产量 (条件) 1n=50YNN 状态 50n100 NNY 奖金方案 (决策方 案) 1.0*nX 决策规则 50+1.25*(n-50) X 112.5+1.5*(n-100) X 在对加工的描述中,如果条件

34、比较多,而且又互相组合, 则比较适合使用决策表。 决策表的田字型结构:条件、状态、决策方案、决策规 则。 决策表的读表方法:顺时针方向。 第158页/共174页 决策表的绘制步骤 F分析决策问题涉及几个条件。 F分析每个条件有几个取值区间。 F画出条件取值分析表,分析条件的各种可能 组合。 F分析决策问题涉及几个决策方案。 F画出有条件组合的决策表。 F决定各种条件组合的决策方案,即填写决策 规则。 F合并化简决策表,即相同决策方案所对应的 各个条件组合是否存在无需判断的条件。 第159页/共174页 F决策树是一种图形工具,适合于描述加 工中具有多个策略,而且每个策略和若 干条件有关的逻辑功

35、能。 决策树 第160页/共174页 行李费 算法 行李重量 W 30 行李重量 W 30 免费 国内乘客 外国乘客 头等舱 其他舱 残疾乘客 正常乘客 (W-30) 2 (W-30) 4 残疾乘客 正常乘客 (W-30) 3 (W-30) 6 头等舱 其他舱 残疾乘客 正常乘客 (W-30) 4 (W-30) 8 残疾乘客 正常乘客 (W-30) 6 (W-30) 12 用判定树表示计算行李费的算法 注:判定表与判定树并 不适用于作为一种通用 的设计工具,通常将之 用于辅助测试 第161页/共174页 决策树举例2:超产奖决策树 奖 金 政 策 产品A 产品B 1N=50 50N10 0 1

36、N=25 25N50 1.0*N 50+1.25*(N-50) 112.5+1.5*(N-100) 2.0*N 50+2.5*(N-25) 112.5+3*(N-50) 第162页/共174页 A BC B C A = A BoCo S A = S CB A = B A B * I 6. Jackson System Development(JSD) 与SD的由DFD导出结构设计不同,JSD是以 数据结构(data structure)为基础设计每个模块的处 理过程。 1、Jackson Diagram: 注意: JD中的方框 代表几个语 句构成的简 单操作;表 现组成关系。 第163页/共174页 第1步:用Jackson图描述 IO 的数据结构 正文文件 I 字符串* 字符* 空格O非空格O I S 输入 输

温馨提示

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

评论

0/150

提交评论