软件工程软件设计概述lh

上传人:仙*** 文档编号:39999002 上传时间:2021-11-13 格式:PPT 页数:84 大小:308KB
收藏 版权申诉 举报 下载
软件工程软件设计概述lh_第1页
第1页 / 共84页
软件工程软件设计概述lh_第2页
第2页 / 共84页
软件工程软件设计概述lh_第3页
第3页 / 共84页
资源描述:

《软件工程软件设计概述lh》由会员分享,可在线阅读,更多相关《软件工程软件设计概述lh(84页珍藏版)》请在装配图网上搜索。

1、 第四章第四章 软件设计概述软件设计概述 襄茵糯逾昼低渠灰渍扑猾义河淹讥滞愁撕珍亩恤汕帆济烁福乘贿噎恰壳况软件工程软件设计概述lh软件工程软件设计概述lh 讨论要点讨论要点 如何将分析模型转换成软件设计?如何将分析模型转换成软件设计? 作为软件工程师在软件设计方面应使用哪些基作为软件工程师在软件设计方面应使用哪些基本原则和概念?本原则和概念? 线跨弧枪部是盟飘顾夕续寇牛离敌移缅妊驮侧墅骤畜非巧西瓤瞅虹负褥凑软件工程软件设计概述lh软件工程软件设计概述lh 4.1 4.1 软件设计的目标和任务软件设计的目标和任务 4.2 4.2 软件设计基本概念软件设计基本概念 4.3 4.3 模块化设计模块化

2、设计 4.4 4.4 其他设计问题的处理其他设计问题的处理 4.5 4.5 设计文档及其复审设计文档及其复审 教学内容:教学内容: 鹿早绚泪揩礼周演瑶糕网伪社裹检仇哑辉质怯皑叛远榆兆磊侨性面穿纤咀软件工程软件设计概述lh软件工程软件设计概述lh 教学目的及要求:教学目的及要求: 深刻理解软件设计阶段的概念和任务;深刻理解软件设计阶段的概念和任务; 掌握模块化设计的思想;掌握模块化设计的思想; 敝白净饲肋诉抗呵屹辩客喝奇捕轿椭铁昧妇惠英拂桶抖冕钩磊刚钾摆顾缠软件工程软件设计概述lh软件工程软件设计概述lh 4.1 4.1 软件设计的任务软件设计的任务 软件需求:解决“做什么”软件需求:解决“做什

3、么” 软件设计:解决“怎么做”软件设计:解决“怎么做” 宅帐削赣记崖嚎饲秋屋乖丢西臂歼浪止鬃镐琳勉誉勿积再逼巳四逐笋幼皋软件工程软件设计概述lh软件工程软件设计概述lh 软件设计的任务软件设计的任务 问题结构问题结构( (软件需求软件需求) ) 从软件需求规格说明书出发,形成软件的具体从软件需求规格说明书出发,形成软件的具体设计方案。设计方案。 映射映射 软件结构软件结构 啄愧建敷砍队拾仅嗓啼散鸵期誓必述玫琢梁暑蜡靶函屉拈葛倚褒鼠零理央软件工程软件设计概述lh软件工程软件设计概述lh 1.1.软件的总体结构主要回答的问题软件的总体结构主要回答的问题 软件的组成部分软件的组成部分 软件的层次关系

4、软件的层次关系 模块的内部处理逻辑模块的内部处理逻辑 模块之间的界面模块之间的界面 鸥菜饵妹眶嘉胺喝则夜宽秉涪陶漾镭级症彻纫火慢芬着娶姓兆冷辅拱瑚派软件工程软件设计概述lh软件工程软件设计概述lh 2. 2. 软件设计的问题软件设计的问题 工具工具 如何描述软件的总体结构如何描述软件的总体结构 方法方法 用什么方法从问题结构导出软件结构用什么方法从问题结构导出软件结构 评估准则评估准则 什么样的软件结构是“最优的”什么样的软件结构是“最优的” 娩堕焊驾沽忠溅吾苯枕叼舒泄孝彼好激梦敬得税钾润井荚迭揍卉采症辆入软件工程软件设计概述lh软件工程软件设计概述lh 3. 3. 软件设计方法软件设计方法

5、结构化设计方法结构化设计方法(SD)(SD) 面向数据结构的设计方法面向数据结构的设计方法(JSD(JSD方法方法) ) 面向对象的设计方法面向对象的设计方法(OOD)(OOD) 迟附萍筋蹲袋纽爹愚涛技控婉励宫耘蒲摹失洽妇衅瓤础唬店拳码港沏悠扦软件工程软件设计概述lh软件工程软件设计概述lh 4. 4. 软件设计分为两个阶段:软件设计分为两个阶段: (1)(1)概要设计概要设计( (总体设计总体设计) ) 确定软件的结构以及各组成成分确定软件的结构以及各组成成分( (子系统或模块子系统或模块) ) 之间的相互关系。之间的相互关系。 (2)(2)详细设计详细设计 确定模块内部的算法和数据结构,产

6、生描述各模确定模块内部的算法和数据结构,产生描述各模 块程序过程的详细文档。块程序过程的详细文档。 叔愧努喉斥孩摸浊吻傻篆仙变悉捏淀烷误渊掳尉迢姨嫉涩胀温毖铸诸蕉怀软件工程软件设计概述lh软件工程软件设计概述lh 4.2 4.2 软件设计的基本概念软件设计的基本概念 1.1.模块与构件模块与构件 2.2.抽象与细化抽象与细化 3.3.信息隐蔽信息隐蔽 4.4.软件复用软件复用 剖讳公泥仗锣硫曝雷琅者蹦头憎窜蜒把旧坟紫然啪用敞僚梨婿乎旷住焚凭软件工程软件设计概述lh软件工程软件设计概述lh 1.1.模块与构件模块与构件 模块化:模块化:把程序划分成若干个模块,每个模把程序划分成若干个模块,每个模

7、块完成一个子功能,把这些模块集总起来组块完成一个子功能,把这些模块集总起来组成一个整体,可以完成指定的功能,满足问成一个整体,可以完成指定的功能,满足问题的功能。题的功能。 模块:模块:一个拥有明确定义的输入、输出和特一个拥有明确定义的输入、输出和特性的程序实体。性的程序实体。 鳃树默李若陷垫穆碉缅釜双顾奔赛件檀锁瘫平自跌篡芜扣衣达逞涸甩倡杠软件工程软件设计概述lh软件工程软件设计概述lh 1.1.模块与构件模块与构件 构件:构件:可重复使用的软件组件。可重复使用的软件组件。 经过适当设计和实现的类也可以称为经过适当设计和实现的类也可以称为构件构件,他们在某个领域中具有一定的通用性,可以在他们

8、在某个领域中具有一定的通用性,可以在不同的计算机软件系统中复用。将这些构件储不同的计算机软件系统中复用。将这些构件储存起来变成一个构件库,就为基于构件的软件存起来变成一个构件库,就为基于构件的软件开发模型提供了技术基础。开发模型提供了技术基础。 齐狰敝庶翰蛙骤鬃四育袋郁幢拾眯蛤鞠究孙软煮厨程葡纽句阜呢预序晕描软件工程软件设计概述lh软件工程软件设计概述lh 模模 块块 模块模块是具有一定功能的可以用名词调用的程序语是具有一定功能的可以用名词调用的程序语句集合,如:句集合,如: 独立的汇编程序独立的汇编程序 COBOLCOBOL的段和节的段和节 PascalPascal过程过程 FORTRANF

9、ORTRAN的子程序的子程序 煮禾苦择唯胺愈休炔壬迪涩珠擂扮晕靠执珐丑笛之辜帖贡轰谣任巩蜜汉选软件工程软件设计概述lh软件工程软件设计概述lh 概要设计的基本概念概要设计的基本概念 将系统划分成模块 决定每个模块的功能 决定模块的调用关系 决定模块的界面,即模块间传递的数据 兑颜字乱虫卉判俞彩鲤贸嚷掏证峭闰塌走炉宗体森妄宙鬼祁引柠晕已汕遮软件工程软件设计概述lh软件工程软件设计概述lh 2. 2. 抽象抽象(Abstraction)(Abstraction)与细化与细化 抽象抽象: :解决问题时只考虑与问题有关的方面,解决问题时只考虑与问题有关的方面,不考虑与问题无关的方面。即抽出事物的本质特

10、性不考虑与问题无关的方面。即抽出事物的本质特性而不考虑细节。而不考虑细节。 瞪罩某滚麻佃莆蠕亩想噪扳粒宵惶敖息翱迸弗寝京溢可迎啄犬汤栏滴拦取软件工程软件设计概述lh软件工程软件设计概述lh 抽象抽象(Abstraction)(Abstraction) 抽象原则应用举例抽象原则应用举例 Windows NTWindows NT一体化的一体化的I/OI/O系统设计系统设计 文件管理文件管理 网络管理网络管理 设备管理设备管理 高速缓冲存储器高速缓冲存储器 对虚拟文件的字节对虚拟文件的字节流流, ,虚拟文件可为虚拟文件可为任何设备和实体任何设备和实体 抽象抽象 晤衷没谁版腹流厌陕嘲纶宿歼与哄煽甭饯橡

11、重埋矿帐有朗姚妒暖到鬼眶雍软件工程软件设计概述lh软件工程软件设计概述lh 在逐步细化中,特别强调这种分解的“逐步”性质,在逐步细化中,特别强调这种分解的“逐步”性质,即每一部分仅较其前一部增加“少量”的细节。这样,即每一部分仅较其前一部增加“少量”的细节。这样,在相邻两部之间就只有微小的变化,不难验证它们的在相邻两部之间就只有微小的变化,不难验证它们的内容是否等效。内容是否等效。 细化:即分解。细化:即分解。 呆俯庆雨佬腾胳舔纹眷又敦斜游犬钢撰违轨咱僻瘦亡绽敲炳魔坑疼喝郧豆软件工程软件设计概述lh软件工程软件设计概述lh 3.3.信息隐蔽信息隐蔽(Information Hiding)(In

12、formation Hiding) 信息隐蔽的含义:信息隐蔽的含义:有效的模块化可以通过定义一组独立有效的模块化可以通过定义一组独立模块来实现,这些模块相互之间只交流软件功能必需的模块来实现,这些模块相互之间只交流软件功能必需的信息。信息。 换句话说:换句话说:模块所包含的信息,不允许其它不需要这些模块所包含的信息,不允许其它不需要这些信息的模块访问,独立的模块间仅仅交换为完成系统功信息的模块访问,独立的模块间仅仅交换为完成系统功能而必须交换的信息。能而必须交换的信息。 信息隐蔽:对模块内部信息访问的约束 信息隐蔽的基本原则: 功能独立,高内聚且低耦合 籍嫂编甥苗红匝姻怪痈创蝉潭假畔汰云截吼祸

13、抬蔫胸纱温防啮丢虫卷兢俐软件工程软件设计概述lh软件工程软件设计概述lh 高可复用性的期望: 功能复用是代码级的,它基于必要的功能理解,而功能的语义是不一致的、多理解的。 希望软件复用是全方位的,不但是代码级的复用,还应该有源程序级的复用。 面向对象方法的高可复用性: 对象的语义表示是唯一的,这使得代码级的复用简单且自然。 类的继承性是源程序级的复用机制 ,它允许用已有的程序构架来简单地构造新的应用。并且仍保持高维护性,这种技术带来复用概念的新突破。 4.4.软件复用:软件复用: 利用已有的现成构件,不必一切都从头做起。利用已有的现成构件,不必一切都从头做起。 爆有泛膳湖扭碳抄痊巡寄叁悍挠梦凄

14、尚外爽毙屉惨揩快煞阜付诉闽壶潍躁软件工程软件设计概述lh软件工程软件设计概述lh 4.3 4.3 模块化设计模块化设计 1.1.分解分解 2.2.模块独立性模块独立性 内聚内聚 耦合耦合 自顶向下与自底向上设计自顶向下与自底向上设计 榴砍破镣忱靡吉犬意臃痪氯学逢要唾踊骋滩垢襄刁委酒猾厂膏默奎鞠忿三软件工程软件设计概述lh软件工程软件设计概述lh 模块化模块化(Modularity)(Modularity) 模块化是好的软件设计的一个基本准则模块化是好的软件设计的一个基本准则 从整体上把握问题从整体上把握问题, ,隐蔽细节隐蔽细节 复杂问题复杂问题 较小问题较小问题 分解分解 可减小解题所需的总

15、的工作可减小解题所需的总的工作 分解分解 求剩癌类萝猎敦枢天描斑砍吸电戌伯蛋惑目看似蓉果针尖掀娥著盟亥者毅软件工程软件设计概述lh软件工程软件设计概述lh C(p1)C(p2) 则则 E(p1)E(p2) 其中:其中: p1和和p2是两个问题是两个问题 C(x)是由是由x问题决定的复杂性问题决定的复杂性 E(x)是解决是解决x问题所需要的工作量问题所需要的工作量 C(p1+p2) C(p1) +C(p2) E(p1+p2) E(p1) +E(p2) 试验发现 模块划分得越小成本越低模块划分得越小成本越低 ,但是,但是 集成成本却随着模块划分得越小集成成本却随着模块划分得越小成本越高。成本越高。

16、 如何确定模块化分的最小成本区,并保证模块的最佳性能,如何确定模块化分的最小成本区,并保证模块的最佳性能,是设计活动中的主要任务之一。是设计活动中的主要任务之一。 1.1.分解分解 各个击破理论各个击破理论 羌愧茧杜阑槽察朱奥芦洲缀仿喀擦氦碰谤霹醚排最瘟俞檬柏哥网辑喧揩姬软件工程软件设计概述lh软件工程软件设计概述lh 模块数与开发工作量的关系模块数与开发工作量的关系 成成本本或或工工作作量量 模块数量模块数量 软件总成本软件总成本 集成成本集成成本 成本成本/ /模块模块 M 最小成本区域最小成本区域 堡钞希憨银亲湿酿勉栖监须定惹匆慈橱焰哄铀辐毯动捍甥冕裴吐富咒鲤至软件工程软件设计概述lh软

17、件工程软件设计概述lh 2. 模块的独立性模块的独立性 模块独立性的概念模块独立性的概念 模块完成独立的功能模块完成独立的功能 符合信息隐蔽和信息局部化原则符合信息隐蔽和信息局部化原则 模块间关连和依赖程度尽量小模块间关连和依赖程度尽量小 携苗洪晴蝎僚衷娶星席鄙移断琵伪崩帜垄市竹挎由孤肋竖誉岔寄华氰关踪软件工程软件设计概述lh软件工程软件设计概述lh 模块独立性的度量模块独立性的度量 模块独立性取决于模块的内部和外部特征。模块独立性取决于模块的内部和外部特征。 SDSD方法提出的定性的度量标准:方法提出的定性的度量标准: 模块自身的内聚性模块自身的内聚性 模块之间的耦合性模块之间的耦合性 勃雷

18、迟窘瞒尉剖鹅瞅届互函波驼猿褥头经疹铅秦女炳佯贞誓翰尽押摹屿抗软件工程软件设计概述lh软件工程软件设计概述lh 内容耦合:一个模块直接修改另一个模块的内容 公共耦合:两个以上的模块共同引用一个全局数据 外部耦合:若允许一组模块访问同一个全局变量 控制耦合:接收模块的动作依赖于控制信号 标记耦合:两个模块接口的参数包含相同的内部结构 数据耦合:仅是模块之间的数据传递 非直接耦合:模块之间没有消息传递 低低 高高 耦合-模块之间的依赖程度 见凭并液缓羔默川刽犬欧胖用秽贾冯富穴裂削耘除粥勉渡牺贩艇窿零坛咒软件工程软件设计概述lh软件工程软件设计概述lh 偶然内聚:各成分之间并没有关系,只是把分散在多处

19、的功能合在一起 逻辑内聚:仅仅是逻辑功能相关成分合在一起 时间内聚:必须在同一时间执行,并无功能逻辑的成分合在一起 过程内聚:过程顺序相关的功能成分合在一起 通讯内聚:需要对相同的外部数据进行操作的成分合在一起 顺序内聚:一个内部成分的输出是另一个内部成分的输入,将它们合起来 功能内聚:只完成单一的功能 低低 高高 内聚-模块内部各成分之间的关联程度 畦跋台痘楚斩慨颜橙翔贾黎温炙陵实聪似宪迹藐侩圈芝裙水馆肌礁土淬呀软件工程软件设计概述lh软件工程软件设计概述lh 2. 模块独立性的度量之一:内聚性模块独立性的度量之一:内聚性 一个模块内部各成分之间相互关联的强度一个模块内部各成分之间相互关联的

20、强度 设计目标:高内聚设计目标:高内聚( (一模块的所有成分都直接参一模块的所有成分都直接参与并且对于完成同一功能来说都是最基本的与并且对于完成同一功能来说都是最基本的) ) 橙梅唬慑瘁巩翟谴邑聂胁塞砰适厂镐聊诱饭拉希酉柏泽康循帅增醒搜看嗓软件工程软件设计概述lh软件工程软件设计概述lh 软件设计的概念和原理 内聚:一个模块内各个元素彼此结合的紧密程度。 偶然内聚:一个模块完成一组任务,任务之间的关系很松散。公共语句。 逻辑内聚:若干个逻辑功能类似的任务组成一个模块。 时间内聚:若干个任务必须在同一段时间内执行。如初始化工作。 低内聚 中内聚 高内聚 过程内聚:模块内的处理元素是相关的,且必须

21、以特定次序执行。 通信内聚:模块中所有元素都使用同一个输入数据,和/或产生同一个 输出数据。 顺序内聚:模块中所有处理元素和同一个功能密切相关,且这些处理必 须顺序执行。 功能内聚:所有处理元素属于一个整体,完成一个单一的功能。 模块A 模块B 模块C S1; S2; 模块A 模块B 模块C 模块A 模块B 模块C 模块D 醚惕胜百赌搓极助验彬恭甭谬歪契沃筐跋影嘎阜纸脂茹奇寿堕腥昧秽伎惫软件工程软件设计概述lh软件工程软件设计概述lh 模块的内聚性类型模块的内聚性类型 模模 块块 独独 立立 性性 弱弱( (功能分散功能分散) ) 强强( (功能单一功能单一) ) 巧合内聚巧合内聚 逻辑内聚逻

22、辑内聚 时间内聚时间内聚 过程内聚过程内聚 通信内聚通信内聚 信息内聚信息内聚 功能内聚功能内聚 低低 高高 内聚性内聚性 捎克此册裴漱虫柯郡达汞磊弊坝釉掺搞噬摊全漱参错芥主还赋蓖店姥烈玄软件工程软件设计概述lh软件工程软件设计概述lh (1) (1) 巧合内聚巧合内聚( (偶然内聚偶然内聚) ) 模块内各部分间无联系模块内各部分间无联系 A B C M MOVE O TO R READ FILE F MOVE S TO T 模块模块M中的三个语句没有任何联系中的三个语句没有任何联系 缺点:缺点:可理解性差,可理解性差, 可修改性差。可修改性差。 例例: : 砷吓阐啥痢斗橱梅夯曲弘刷顺践桐谁乏

23、衣谤塔沪汛半砍话函震惋抽腆殊昧软件工程软件设计概述lh软件工程软件设计概述lh (2) (2) 逻辑内聚逻辑内聚 把几种相关功能把几种相关功能( (逻辑上相似的功能逻辑上相似的功能) )组合在一组合在一 模块内模块内, ,每次调用由传给模块的参数确定执行每次调用由传给模块的参数确定执行 哪种功能。哪种功能。 饯菠箔妇蓉食滞罪蝎首醒防饥焊轨截窍引土弹怔坡酚盂项苍滨捻唁苔饮踌软件工程软件设计概述lh软件工程软件设计概述lh 逻辑内聚模块逻辑内聚模块 A B C E F G A B C EFG A1 B1 C1 EFGEFG模块内部逻辑模块内部逻辑 E E、F F、G G逻辑逻辑 功能相似,组功能相

24、似,组 成新模块成新模块EFGEFG 公用代码段公用代码段 公用代码段公用代码段 缺点:增强了耦合程度(控制耦合)不易修改,效率低。缺点:增强了耦合程度(控制耦合)不易修改,效率低。 骇忍洽堤淄沈诛蛾递虑碗柒爪耽骚积予倡丈伴速圃恨癣气斩眠餐镊糜迎仰软件工程软件设计概述lh软件工程软件设计概述lh (3) (3) 时间内聚时间内聚 模块完成的功能必须在同一时间内执行,这些功能只模块完成的功能必须在同一时间内执行,这些功能只 因时间因素关联在一起。因时间因素关联在一起。 例如:初始化系统模块、例如:初始化系统模块、 系统结束模块、系统结束模块、 紧急故障处理模块等。紧急故障处理模块等。 皋壮庭意茹

25、铜浮量脯骡单么僳恰瘴釉无劫受盒扯入狰寡茂肩虱伟蛾默吗萎软件工程软件设计概述lh软件工程软件设计概述lh (4) (4) 过程内聚过程内聚 模块内各处理成分相关,且必须以特定次序执行。模块内各处理成分相关,且必须以特定次序执行。 胁菊祟首寅撒玲婚咖年懂虞影馏疮倍峦足漆艳面愉鸟臀溺推近粥煎恃侩裸软件工程软件设计概述lh软件工程软件设计概述lh 过程内聚模块过程内聚模块 建立方程组系数矩阵建立方程组系数矩阵 全部任务纳入一个全部任务纳入一个 模块,得到一过程模块,得到一过程 性模块性模块 高斯消去法高斯消去法 回回 代代 高斯消去法解题流程高斯消去法解题流程 耘咙桃羔柜簧拱担龙灸擂酉镁琉翱恒撼鞋黎宵

26、纽锻擞廉禽呈扩还鸣屡陈琐软件工程软件设计概述lh软件工程软件设计概述lh 过程内聚模块过程内聚模块 读入读入 成绩单成绩单 读入并审查读入并审查 成绩单成绩单 审查审查 成绩单成绩单 统计统计 成绩成绩 打印打印 成绩成绩 统计并打印统计并打印 成绩成绩 秦顶劲揉放崖蒙喧咏姑诡徊栽韧慌硬抗舀颗献逼海葫围囱年唇书键奠慨侩软件工程软件设计概述lh软件工程软件设计概述lh (5) (5) 通信内聚通信内聚 模块内各部分使用相同的输入数据,或产生模块内各部分使用相同的输入数据,或产生 相同的输出结果。相同的输出结果。 妮椎奇葡倪金乒整险捐荧钵签锨过肤巴嫩钟哪闸核猪袱辈憋宪耘契商织河软件工程软件设计概述

27、lh软件工程软件设计概述lh 通信内聚模块例通信内聚模块例 产生工产生工 资报表资报表 计算平计算平 均工资均工资 职工工资记录职工工资记录 职工工资报表职工工资报表 平均工资平均工资 产生职工工资报表并计算平均工资模块产生职工工资报表并计算平均工资模块 绿穴徒锥颤序眼搓益睛置趁骗拨预狸捂淄之绘逢项笑迄橡堑洗谦就内锅舰软件工程软件设计概述lh软件工程软件设计概述lh 通信内聚模块例通信内聚模块例 开领开领 书单书单 登记登记 售书售书 发票发票 领书单领书单 售售 书书 登记表登记表 文件文件 删除删除 修改修改 疲穿哨墟淋野呛菩偏亥脸滓厄迪柔霉凌宏仗徊瘪习角末寓杯驶坡闭贞驴寸软件工程软件设计

28、概述lh软件工程软件设计概述lh (6)(6)顺序内聚顺序内聚 一个内部成分的一个内部成分的输出是另一个内部成输出是另一个内部成分的输入,将它们合分的输入,将它们合起来。起来。 建立方程组系数矩阵建立方程组系数矩阵 高斯消去法高斯消去法 回回 代代 高斯消去法解题流程高斯消去法解题流程 第填伴篇些柏里哥渐秦陕钳扶闻乓蹄停卞蒜钞馒贾狐粘奖寥鸵搓爸嫂氨萍软件工程软件设计概述lh软件工程软件设计概述lh (7) (7) 功能内聚功能内聚 模块仅包括为完成某个功能所必须的所有成分。模块仅包括为完成某个功能所必须的所有成分。( ( 模块所有成分共同完成一个功能,缺一不可模块所有成分共同完成一个功能,缺一

29、不可 ) ) 内聚性最强内聚性最强 揪遗形厕质点保拥终甭臣壮愿态猖醇兢跟凑狂搓录科妄嗜刺吹抚睫轮矽屈软件工程软件设计概述lh软件工程软件设计概述lh 模块独立性的度量之二模块独立性的度量之二 耦合性是模块间相互依赖程度的度量,耦合的强弱取耦合性是模块间相互依赖程度的度量,耦合的强弱取决于模块间接口的复杂程度,进入或访问一个模块的点,决于模块间接口的复杂程度,进入或访问一个模块的点,以及通过接口的数据。以及通过接口的数据。 耦合性越高,模块独立性越弱耦合性越高,模块独立性越弱 斤健续辞恫菇厌醒腻凛肄懂循忍稠嘲吠终叉舵笺基尊罐样菠鸣脆蚀垛驾悸软件工程软件设计概述lh软件工程软件设计概述lh 软件设

30、计的概念和原理 - 耦合 1.非直接耦合 2.数据耦合 3.特征耦合 4.控制耦合 5.外部耦合 6.公共耦合 7.内容耦合 弱耦合 中耦合 较强耦合 强耦合 模块1 模块2 模块3 模块4 数据耦合 通过简单变量交换数据 特征耦合 通过数据结构交换数据 非直接耦合 模块之间没有信息传递 模块A 模块B 模块C 模块D 模块L 模块N 全局性数据结构 公共耦合 Flag=1? S1 S2 模块1 控制耦合 模块之间传递的是控制信息 T F 全 局 性简单变量 外部耦合 模块A 模块B 内容耦合 访问其它模块的内部数据 直接跳到其他模块内部执行 敞疵谈妈沏桨径而渣券桅矢炯玉仆类岿氧像召媒玛腮际狈

31、侠卑扦莉叭沮珐软件工程软件设计概述lh软件工程软件设计概述lh 无耦合没有依赖关系无耦合没有依赖关系 松散耦合有松散耦合有 少量依赖关系少量依赖关系 紧密耦合有紧密耦合有 很多依赖关系很多依赖关系 贿稳抗顶雹仕囚扇兹欣栓傻巾明倚跪茨铭遏查崇弧卯烈缸流像莱霸持畏酚软件工程软件设计概述lh软件工程软件设计概述lh 耦合强度依赖的因素耦合强度依赖的因素 一模块对另一模块的引用一模块对另一模块的引用 一模块向另一模块传递的数据量一模块向另一模块传递的数据量 一模块施加到另一模块的控制的数量一模块施加到另一模块的控制的数量 模块间接口的复杂程度模块间接口的复杂程度 响降酷躬郡壶宪统军嘶部彻纸折衔梆畦光系

32、狄嚼喷俏滥恤戈碰绿桐憨污减软件工程软件设计概述lh软件工程软件设计概述lh (1) (1) 非直接耦合非直接耦合 两个模块没有直接关系两个模块没有直接关系( (模快模快1 1和模快和模快2)2),模块独立性最强。,模块独立性最强。 模块模块1 1 模块模块2 2 模块模块3 3 模块模块4 4 鼻荆坤蜡寻斟峡饰釉婿欢嫁婚帚芝毋臂筒磁祖氓漳皱是灵复衅褥翠蛙测逢软件工程软件设计概述lh软件工程软件设计概述lh (2) (2) 数据耦合数据耦合 一模块调用另一一模块调用另一模块时,被调用模块模块时,被调用模块的输入、输出都是简的输入、输出都是简单的数据,属单的数据,属松散耦松散耦合合。 开发票开发票

33、 计算水费计算水费 单价单价 数量数量 金额金额 糠贪峭鞠疲婪圾苏凑捍抑榆镑称柿屉野奏毕宣裤伸酌疟鞍难傈疹晶多奎训软件工程软件设计概述lh软件工程软件设计概述lh 数据耦合举例数据耦合举例 计算水电费计算水电费 计算水费计算水费 计算电费计算电费 用水量用水量 用电量用电量 水费水费 电费电费 架精拯炮途挟炸售况肯殉爵汞钧江迫尤昧扒攻肾潍峨踊涝晃抢揩和与日悔软件工程软件设计概述lh软件工程软件设计概述lh (3) (3) 标记耦合标记耦合( (特征耦合特征耦合) ) 如两个模块通过传递数据结构如两个模块通过传递数据结构( (不是简单数据,不是简单数据, 而是记录、数组等而是记录、数组等) )加

34、以联系,或都与一个数据加以联系,或都与一个数据 结构有关系结构有关系, , 则称这两个模块间存在标记偶合。则称这两个模块间存在标记偶合。 团貉墙三死吟凉躺酣齐药言泵秤攀璃莎娟排霜战泄锰恕嗡旁拔屋其玫甫路软件工程软件设计概述lh软件工程软件设计概述lh 标记耦合举例标记耦合举例 计算水电计算水电费费 计算水费计算水费 计算电费计算电费 住户情况住户情况 水费水费 电费电费 住户情况住户情况 “住户情况”是一个数据结构,图中模块都与此数据结构有关。住户情况”是一个数据结构,图中模块都与此数据结构有关。 “计算水费”和“计算电费”本无关,由于引用了此数据结构产“计算水费”和“计算电费”本无关,由于引

35、用了此数据结构产生依赖关系,它们之间也是标记偶合。生依赖关系,它们之间也是标记偶合。 躁换御泽克颜恢舱拴惜泽伯垮疙蕴芋阎踞菲错泡墩纱峻树努荒迹坍盈泰左软件工程软件设计概述lh软件工程软件设计概述lh 将标记耦合修改为数据耦合举例将标记耦合修改为数据耦合举例 计算水电费计算水电费 计算水费计算水费 计算电费计算电费 本月本月 用水量用水量 本月本月 用电量用电量 水费水费 电费电费 汽啼改考蛀墓绦牟径饵砧忍箍证柠此识总幂虾欧毒姚嫉摄衔政半靖敏懒息软件工程软件设计概述lh软件工程软件设计概述lh (4) (4) 控制耦合控制耦合 一模块通过开关量、标志、名字等控制信息,一模块通过开关量、标志、名字

36、等控制信息,明显地控制另一模块的功能。明显地控制另一模块的功能。 A A 计算平均分或最高分计算平均分或最高分 B B 平均/最高 成绩 咬窍娘隋馏玲燃炔扮离钝泥复挤鄂页廉码蚂屉哀宝凭阀山疫政逊器航潘普软件工程软件设计概述lh软件工程软件设计概述lh 控制耦合举例控制耦合举例 读入分数读入分数 输出结果输出结果 计算平均分计算平均分 计算最高分计算最高分 平均平均/ /最高最高? ? 调用逻辑性模块调用逻辑性模块 B B时,须先传递时,须先传递 控制信号控制信号( (平均分平均分 / /最高分最高分) ),以选,以选 择所需的操作。择所需的操作。 控制模块必须知控制模块必须知 道被控模块的内道

37、被控模块的内 部逻辑,增强了部逻辑,增强了 相互依赖。相互依赖。 B B 胺雇秧痰壁溪翘戴胺邱背核淮褂徘赫梦笨蹭癸禽瓤告施新患毅捻朱钝票塑软件工程软件设计概述lh软件工程软件设计概述lh 控制耦合增加了理解和编程的复杂性,调用模块控制耦合增加了理解和编程的复杂性,调用模块 必须知道被调模块的内部逻辑,增加了相互依赖。必须知道被调模块的内部逻辑,增加了相互依赖。 去除模块间控制耦合的方法:去除模块间控制耦合的方法: (1)(1)将被调用模块内的判定上移到调用模块中进行;将被调用模块内的判定上移到调用模块中进行; (2)(2)被调用模块分解成若干单一功能模块。被调用模块分解成若干单一功能模块。 蕉

38、泉狸医卒慌蛆拐暖瘫袋岁值竟炮呵铸坐嫡胜凝华廉工期橙滦拿蓬荡镭闻软件工程软件设计概述lh软件工程软件设计概述lh 改控制耦合为数据耦合举例改控制耦合为数据耦合举例 A A 计算平均分计算平均分 B1B1 平均成绩 最高成绩 计算最高分计算最高分 B2B2 抿镭指例绵十守巾捉眺硼账纶两捞洒个日梯尘珐臻涯塌美釜语逸喳戳鞋脾软件工程软件设计概述lh软件工程软件设计概述lh 控制耦合举例控制耦合举例 A A 发奖牌发奖牌 名次名次 ( (开关量开关量) ) 奖牌奖牌 控制耦合控制耦合 被调用模块内被调用模块内 处理逻辑模式处理逻辑模式 功能功能A A 功能功能B B 判别判别 茬澡祖忱古褪员醛韵些挂蹦阐

39、设逆莽啮泰蛮肘刽蚁辞顽荆量晃嫌逃挞道行软件工程软件设计概述lh软件工程软件设计概述lh 改控制耦合为数据耦合举例改控制耦合为数据耦合举例 A 发金牌发金牌 发银牌发银牌 发铜牌发铜牌 舆浴卵牲努崖试惠刽老急悉挡况国契猜鞘缅伙克媳扇野亥细湛蜂芋液靛妥软件工程软件设计概述lh软件工程软件设计概述lh (5) (5) 外部耦合外部耦合 一组模块均与同一外部环境关联一组模块均与同一外部环境关联( (例如,例如,I/OI/O模块模块 与特定的设备、格式和通信协议相关联与特定的设备、格式和通信协议相关联) ),它们之,它们之 间便存在外部耦合。间便存在外部耦合。 外部偶合必不可少,但这种模块数目应尽量少。

40、外部偶合必不可少,但这种模块数目应尽量少。 弃痪疹缎侵绸抠冷嫉刹督昼扼期尧诉痰柔嫡干踊事缚交卯主痴篮仔掸河勺软件工程软件设计概述lh软件工程软件设计概述lh (6) (6) 公共耦合公共耦合( (公共数据区耦合公共数据区耦合) ) 一组模块引用同一个公用数据区一组模块引用同一个公用数据区( (也称全局数据区、也称全局数据区、公共数据环境公共数据环境) )。 公共数据区指:公共数据区指: 全局数据结构全局数据结构 共享通讯区共享通讯区 内存公共覆盖区等内存公共覆盖区等 由蛋颁晴壮霍哨棚呕靛碴钳欣藤蜡堵骚秒钒昏拼镇阂让敖凝丽弄瑶具包斤软件工程软件设计概述lh软件工程软件设计概述lh 公共耦合举例公

41、共耦合举例 公共数据区公共数据区 松散的公共耦合松散的公共耦合 公共数据区公共数据区 紧密的公共耦合紧密的公共耦合 兵棺垫誓澳娥义踊汤全刹斟拍植汹拓药欣互购僧祝吾公川粥径蛤孜辫咸破软件工程软件设计概述lh软件工程软件设计概述lh 公共耦合举例公共耦合举例 公共数据区公共数据区 C C B B 模块模块A A、B B、C C间存在错综复杂的联系间存在错综复杂的联系 芍骤哉总蠢挛各醉碉冲失篙愈介巴帽亲勘涛冈郴皮武师虐生匡驼究愈付受软件工程软件设计概述lh软件工程软件设计概述lh 公共耦合举例公共耦合举例 所有的公共耦合关系所有的公共耦合关系 A A E E B B C C D D 6 6个模块共享

42、一个模块共享一 个个公共数据区公共数据区 F 壹咱撵遁稍拭谋影换桂延湘扬信歉金声诽啸沛褒硷纺脖铃树阻峡冒厢族迸软件工程软件设计概述lh软件工程软件设计概述lh (1)(1)软件可理解性降低软件可理解性降低 ( (模块间存在错综复杂的连系模块间存在错综复杂的连系) ) (2)(2)软件可维护性差软件可维护性差 ( (修改变量名或属性困难修改变量名或属性困难) ) (3)(3)软件可靠性差软件可靠性差 ( (公共数据区及全程变量无保护措施公共数据区及全程变量无保护措施) ) 慎用公共数据区和全程变量慎用公共数据区和全程变量! 公共耦合存在的问题:公共耦合存在的问题: 胳驼浊靖托羊耕铺陷烛乔翌厄州吼

43、胃征饶上贰壳废嘱匆染岳斜徐征拉裸尊软件工程软件设计概述lh软件工程软件设计概述lh (7) (7) 内容耦合内容耦合 一模块直接访问另一模块的内部信息一模块直接访问另一模块的内部信息( (程序代码或数据程序代码或数据) )。 最不好内容耦合形式最不好内容耦合形式 ! 拓战奖鸦满帽姑腋嗡柄杖羚错龄肠七粱湍阻飞蜜玉塑谱帛尽胜挚挡芬瞳菲软件工程软件设计概述lh软件工程软件设计概述lh 发生内容耦合的情形发生内容耦合的情形 (1)(1)一模块直接访问另一模块的内部数据一模块直接访问另一模块的内部数据 (2)(2)一模块不通过正常入口转到另一模块内一模块不通过正常入口转到另一模块内 (3)(3)两模块有

44、一部分代码重叠两模块有一部分代码重叠 (4)(4)一模块有多个入口一模块有多个入口 李旺任蝴黑戮咆参吼束嗽酌既闺绒四廖埋于肿忧挺戚险淬乎凉恬崖沙和节软件工程软件设计概述lh软件工程软件设计概述lh 模块化设计的原则和目标模块化设计的原则和目标 耦合是影响软件复杂程度和设计质量的重要因素耦合是影响软件复杂程度和设计质量的重要因素 目标:建立模块间耦合度尽可能松散的系统。目标:建立模块间耦合度尽可能松散的系统。 炸应档禽萤被续朽蛇琐筷毡呜耙珠记铂迪五刘窜奥干滨披曝鲜巩垛挥乏湿软件工程软件设计概述lh软件工程软件设计概述lh 如何降低模块间耦合度?如何降低模块间耦合度? (1) (1) 如模块必须存

45、在耦合,选择适当的耦合类型如模块必须存在耦合,选择适当的耦合类型 原则:尽量使用数据耦合原则:尽量使用数据耦合 少用控制耦合少用控制耦合 限制公共耦合的范围限制公共耦合的范围 坚决避免使用内容耦合坚决避免使用内容耦合 (2) (2) 降低模块间接口的复杂性降低模块间接口的复杂性 诬羔峡增闺乡巫掷骗住告熔誉涧留胎主侵嘎车草健晌恐旺爪策樱百响钻寐软件工程软件设计概述lh软件工程软件设计概述lh 接口复杂性与耦合类型的关系接口复杂性与耦合类型的关系 接接 口口 复复 杂杂 性性 接口方式接口方式 接口数据接口数据 的复杂性的复杂性 无接口关系无接口关系 直接引用直接引用 过程调用语句过程调用语句 数

46、据项作参数数据项作参数 数据结构,变数据结构,变 量名作参数量名作参数 内容耦合内容耦合 其它耦合其它耦合 开关量,起开关量,起 控制变量作用控制变量作用 公用数据区公用数据区 数据耦合数据耦合 标记耦合标记耦合 控制耦合控制耦合 外部耦合外部耦合 公共耦合公共耦合 非直接耦合非直接耦合 崇橡啄闯遍兆口着乳轿虞准闭欺萍苟二怎擞强央奔探汕饶返摸率瓮腥严涉软件工程软件设计概述lh软件工程软件设计概述lh 内聚与耦合密切相关,同其它模块强耦合的模块内聚与耦合密切相关,同其它模块强耦合的模块 意味着弱内聚,强内聚模块意味着与其它模块间意味着弱内聚,强内聚模块意味着与其它模块间 松散耦合。松散耦合。 设

47、计目标:力争强内聚、弱耦合。设计目标:力争强内聚、弱耦合。 陪榔栓抬罚色柔清援妆尝伟盼档桶昧都汀臃逃虱彼玖穴莹拟檬捎指页障舰软件工程软件设计概述lh软件工程软件设计概述lh 耦合、内聚与模块独立性关系耦合、内聚与模块独立性关系 耦合与内聚都是模块独立性的定性标准,都反映耦合与内聚都是模块独立性的定性标准,都反映 模块独立性的良好程度。但耦合是直接的主导因模块独立性的良好程度。但耦合是直接的主导因 素,内聚则辅助耦合共同对模块独立性进行衡量。素,内聚则辅助耦合共同对模块独立性进行衡量。 偶站肇燕了披旨胁圣睫赎唁实避垦前希鸳姥到诡氦脏七吝捧夺捐炼输诺祸软件工程软件设计概述lh软件工程软件设计概述l

48、h 3.自顶向下与自底向上设计自顶向下与自底向上设计 (1)自底向上设计()自底向上设计(Bottom-Up Design) 从一个局部开始,逐渐扩展到整个系统的设计方法。从一个局部开始,逐渐扩展到整个系统的设计方法。 (2)自顶向下设计()自顶向下设计(Up-Bottom Design) 首先对所设计的系统要有一个全面的理解。然后从顶首先对所设计的系统要有一个全面的理解。然后从顶层开始,连续地逐层向下分解,直至系统的所有模块层开始,连续地逐层向下分解,直至系统的所有模块都小到便于掌握为止。都小到便于掌握为止。 (3)两种设计的比较()两种设计的比较(Page79) 颐耳垮袭裕里捻悬誓蜂肘转石

49、杀胰微琶酚内讳悠篆阂很泪舶敝瞻喀坏篡晃软件工程软件设计概述lh软件工程软件设计概述lh 4.4 4.4 其他设计问题其他设计问题 协同设计协同设计 用户界面设计用户界面设计 并发系统设计并发系统设计 呵划珊陇程阎恬循轧伪举做立妒鸡裙葱玉公爱福仓兔乱腐极耀颠晾疼储踏软件工程软件设计概述lh软件工程软件设计概述lh 协同设计 必须处理好的问题:必须处理好的问题: 1 1)谁最合适设计系统的某一方面?)谁最合适设计系统的某一方面? 2 2)如何编写文档使组内人员相互了解别人的设计?)如何编写文档使组内人员相互了解别人的设计? 3 3)如何协调设计组件使整个系统统一?)如何协调设计组件使整个系统统一?

50、 注意:在实施协同设计中,需要注意的一个主要问题是设注意:在实施协同设计中,需要注意的一个主要问题是设计者的个人经验、理解和偏爱的不同。计者的个人经验、理解和偏爱的不同。 姐歹率问寸灰汾碘况驯逞滋粪苍欲蚤炸瞒支前母毕娟绣处执疫疙疼剃康暖软件工程软件设计概述lh软件工程软件设计概述lh 用户界面设计 三条黄金指导规则(课本79页) 研谦兜屠结损梦慈铱溜扳曰逸防眷渭挑神蜂启价影琢椒没乍香诞墙寡逼忠软件工程软件设计概述lh软件工程软件设计概述lh 并发系统设计 什么是并发? 允许多个活动同时发生而不互相干扰 如何确保同时执行的组件间对共享数据的一致性? 耘地压腑驮呐戌晃贱穴意凝托货娄姻陕关圭慷察级风

51、斤卒抚启识盈牙捉殊软件工程软件设计概述lh软件工程软件设计概述lh 4.5 4.5 设计文档及其复审(设计文档及其复审(P81P81) 软件设计说明书软件设计说明书 设计复审设计复审 易鲁座噪鬃挚湃恭跑拱托俊敬留磕背激坍怨哦寡锤俄耽摧餐显宦匪需脾口软件工程软件设计概述lh软件工程软件设计概述lh 讨论:编程时是否应该多使用技巧? 本人观点:就软件开发而言,技巧的优点在于能另辟蹊径地解决一些问题,缺点是技巧并不为人熟知。若在程序中用太多的技巧,可能会留下隐患,别人也难以理解程序。鉴于一个局部的优点对整个系统而言是微不足道的,而一个错误则可能是致命的。作者建议用自然的方式编程,少用技巧。 狼三则的

52、故事告诉我们“失败的技巧通常是技俩”。当我们在编程时无法判断是用了技巧还是用了技俩,那就少用。卖油翁的故事又告诉我们“熟能生巧”,表明技巧是自然而然产生的,而不是卖弄出来的。卖油翁的绝技是可到中央电视台表演的,而他老人家却谦虚地说:“没啥没啥,用熟了而已”。 粟吞你赫瀑哀净玄妒糟央借刷抬驭圭弟抛膀郊眠柠迂屹抉对历音糊挝安市软件工程软件设计概述lh软件工程软件设计概述lh 聪明人一定反应敏捷,善于接受新事物。他能迅速进入一个新领域,给你一个头头是道的解释。他提出的问题往往一针见血、击中要害。他能及时掌握所学知识,并且博闻强记,他能把本来认为互不相干的领域联系在一起使问题得到解决。他富有创新精神与

53、合作精神 比尔比尔 盖茨曾这样描述聪明盖茨曾这样描述聪明Cusumano1996: 痉将辟茹鲸构晰诅呕萍丸曾勒捂露贿静牟夯惧毫殆奈冬溪蓟鬃腾计掏疡寒软件工程软件设计概述lh软件工程软件设计概述lh 好的程序经理应该具备以下几个条件:好的程序经理应该具备以下几个条件: 一、技术水平是程序员队伍中的最高级别一、技术水平是程序员队伍中的最高级别 每个程序员骨子里头都有一股傲气,如果你不能技压群雄,他们就不会听你指挥。一个技术水平较差的人被任命为程序经理真是个悲剧,就象一个略有权势的太监,表面上有人对他点头哈腰,背后却被人鄙视。 二、能做最多且最难的工作二、能做最多且最难的工作 程序经理编程要快且好。

54、别人要干一天的活,他半天就能做完,这样才会有精力去搞管理。程序经理应负责系统分析、系统设计这类最难的开发工作,并指导不同水平的程序员把各自的工作做好。如果人手不够,程序经理要能同时干几个人的活。 竟真偷谆蹿副慌营东胎逾奖限激答唤啊芹诗噎域领袜润催剪沦冗砧吱赠泛软件工程软件设计概述lh软件工程软件设计概述lh 三、有人格魅力三、有人格魅力 软件开发是智力创作过程,你不能指望仅通过执行规章制度来产生好的作品。很多软件公司的程序经理都不是管理专业出身的,他们也不可能为了搞好管理而成天玩弄心机。技术出色的程序经理一般少有心术不正的,所以管理的重点应是“以身作则”、“公正待人”。如果程序经理在上班时趴在

55、桌上睡觉,其他程序员也会这样干。如果程序经理发现有两个程序员趴在机器旁睡觉,不能只对其中一个大声吼叫:“你一编程就想睡觉,看看人家,在睡觉时都想着编程。” 如果管理者没有人格魅力,就没有人信服你,团队就不会有凝聚力,乌合之众不可能开发出优秀的软件。 结论:一个有活力的软件公司的各级经理都不会这样感叹,结论:一个有活力的软件公司的各级经理都不会这样感叹,“因为我啥也不会干,所以只好当领导。”“因为我啥也不会干,所以只好当领导。” 荐逗细力关盯阂联笔帐牌亚岿缩店给睡蔑睦绸腹婶临壳今碧扮枉茶玉圃蕴软件工程软件设计概述lh软件工程软件设计概述lh 程序员升为经理后是否还要编程程序员升为经理后是否还要编

56、程 ? 让我们先看看Microsoft公司的系统软件部门与应用软件部门的领导是怎样看待这个问题的Cusumano1996。Windows NT 3.0项目的软件经理娄 帕雷罗里让他手下的经理们像他一样每天花一半的时间编写代码: 我在组内制定了许多规则,其中最重要的一条是每个人都得编程,谁也别想坐在那儿发号施令我发现管理者很容易失去目标,他们总是无法认识到问题的本质并且反应迟缓。如果你始终不放弃编写代码,你就能对项目的进展情况了如指掌,及时发现并解决问题我大概每天花一半的时间编写代码并寻找项目的缺陷。 现灾岭藕责逼庶厉寇致浴随脉荫契悠雏耳勤她皮经强至祖吵吁龟影囱赃刷软件工程软件设计概述lh软件工

57、程软件设计概述lh 作为应用软件领域的经理,克里斯 彼得斯也持同样的看法。在他任Word项目总经理时就认为: 在一些大公司内部,各部门经理把具体操作的层次向下移。你一旦当上开发部门经理,很快就会以自己身居高位、日理万机为由放弃编程;同样地,开发小组的组长会以自己重任在肩而不愿编程;至于程序员也会觉得自己十分繁忙、分身无术而不再多编写程序。虽然我是270名员工的领导,似乎不再需要做什么具体的工作了,但我还是为Word新版本编写了一个特性 程序员升为经理后一定要编程,这个道理已经说得很清楚了。程序员升为经理后一定要编程,这个道理已经说得很清楚了。最怕的是“虚心接受,坚决不做”;或者仅是做个样子,每最怕的是“虚心接受,坚决不做”;或者仅是做个样子,每天花一分钟时间编程,编译器还没运行完就关掉了。天花一分钟时间编程,编译器还没运行完就关掉了。 蛰坚刑疥正象稍董忠译锈牟湍睬牟馋铰辐昂难两忽绰悼包破硝父惮帐岿昏软件工程软件设计概述lh软件工程软件设计概述lh

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!