第3章-软件设计基础-课件

上传人:沈*** 文档编号:241612411 上传时间:2024-07-09 格式:PPT 页数:98 大小:5.45MB
返回 下载 相关 举报
第3章-软件设计基础-课件_第1页
第1页 / 共98页
第3章-软件设计基础-课件_第2页
第2页 / 共98页
第3章-软件设计基础-课件_第3页
第3页 / 共98页
点击查看更多>>
资源描述
软件设计基础软件设计基础内容内容3.13.1软件设计的基本概念软件设计的基本概念软件设计的基本概念软件设计的基本概念3.23.2软件设计过程软件设计过程软件设计过程软件设计过程3.33.3软件设计的质量软件设计的质量软件设计的质量软件设计的质量3.43.4软件体系结构设计软件体系结构设计软件体系结构设计软件体系结构设计3.53.5高可信软件设计高可信软件设计高可信软件设计高可信软件设计3.63.6软件设计规格说明软件设计规格说明软件设计规格说明软件设计规格说明3.73.7软件设计评审软件设计评审软件设计评审软件设计评审3.1 3.1 软件设计的基本概念软件设计的基本概念n软件设计主要针对软件设计主要针对需求分析需求分析过程得到的软件需求过程得到的软件需求规格说明,综合考虑各种制约因素,探求切实可规格说明,综合考虑各种制约因素,探求切实可行的软件解决方案并最终给出方案的逻辑表示,行的软件解决方案并最终给出方案的逻辑表示,包括文档、模型等。包括文档、模型等。n软件设计受到资源和技术两方面的制约。软件设计受到资源和技术两方面的制约。n软件设计基本概念是过去数十年里陆续提出的,软件设计基本概念是过去数十年里陆续提出的,软件设计者根据这组概念进行设计决策。软件设计者根据这组概念进行设计决策。n软件设计的最终目标是获得满足软件需求的、明软件设计的最终目标是获得满足软件需求的、明确的、可行的、高质量的软件解决方案。确的、可行的、高质量的软件解决方案。3.1 3.1 软件设计的基本概念软件设计的基本概念 抽象与逐步求精抽象与逐步求精模块数量与成本模块数量与成本内聚与耦合及量化指标内聚与耦合及量化指标模块化与信息隐藏模块化与信息隐藏(1 1)抽象与逐步求精)抽象与逐步求精n“抽象抽象”是一个心理学概念,它要求人们将注意是一个心理学概念,它要求人们将注意力集中在某一层次上考虑问题,而忽略那些低层力集中在某一层次上考虑问题,而忽略那些低层次的细节。是管理、控制复杂性的基本策略。次的细节。是管理、控制复杂性的基本策略。n软件设计过程是在不同抽象级别考虑、处理问题软件设计过程是在不同抽象级别考虑、处理问题的过程。最初应该在最高抽象级别上,用面向问的过程。最初应该在最高抽象级别上,用面向问题域的语言概述问题,包括问题解的形式,然后题域的语言概述问题,包括问题解的形式,然后不断具体化,不断用接近计算机域的语言描述问不断具体化,不断用接近计算机域的语言描述问题,最后,在最低的抽象级别上给出可直接实现题,最后,在最低的抽象级别上给出可直接实现的问题解,即程序。的问题解,即程序。把原本未知解的问题描述成如何解的过程,最终得到解。把原本未知解的问题描述成如何解的过程,最终得到解。(1 1)抽象与逐步求精)抽象与逐步求精n软件设计过程的每一步都是对较高的、抽象的软件设计过程的每一步都是对较高的、抽象的解作一次更具体化的描述。解作一次更具体化的描述。过程抽象过程抽象:把完成特定功能的动作序列抽象:把完成特定功能的动作序列抽象为一个过程名和参数表,以后通过指定过程为一个过程名和参数表,以后通过指定过程名和实际参数调用此过程。名和实际参数调用此过程。(方法、函数)(方法、函数)数据抽象:数据抽象:把一个数据对象的定义(或描述)把一个数据对象的定义(或描述)抽象为一个数据类型名,用此类型名可定义抽象为一个数据类型名,用此类型名可定义多个具有相同性质的数据对象。多个具有相同性质的数据对象。(系统以及(系统以及自定义的数据类型、数据结构、类)自定义的数据类型、数据结构、类)(1 1)抽象与逐步求精)抽象与逐步求精n“逐逐步步求求精精”可可视视为为一一种种早早期期的的自自顶顶向向下下设设计计策策略略,其其主主要要思思想想是是,针针对对某某个个功功能能的的宏宏观观描描述述用用逐逐步步求求精精的的方方法法不不断断地地分分解解,逐逐步步确确立立过过程程细细节节,直至该功能用程序语言描述的算法实现为止。直至该功能用程序语言描述的算法实现为止。n在在软软件件设设计计过过程程中中,抽抽象象与与逐逐步步求求精精是是一一般般都都是是结合起来进行应用。结合起来进行应用。n系系统统的的层层次次结结构构的的上上一一层层是是下下一一层层的的抽抽象象,下下一一层是上一层的求精。层是上一层的求精。抽象与逐步求精抽象与逐步求精(2 2)模块化与信息隐藏)模块化与信息隐藏n软软件件体体系系结结构构体体现现了了模模块块化化思思想想,即即把把软软件件划划分分为为可可独独立立命命名名和和访访问问的的部部件件,每每个个部部件件称称为为一一个个模模块块,当当把所有模块组装到一起时则获得满足问题需要的解。把所有模块组装到一起时则获得满足问题需要的解。n模模块块化化使使得得开开发发活活动动更更加加简简单单的的一一个个重重要要因因素素是是模模块块的的信信息息隐隐藏藏,即即一一个个模模块块的的开开发发者者不不必必看看到到其其它它模模块块的的内内部部,只只需需知知道道其其接接口口即即可可,这这使使得得每每个个模模块块的的开开发人员所要处理的复杂性显著降低。发人员所要处理的复杂性显著降低。n信信息息隐隐藏藏指指导导的的模模块块化化设设计计不不仅仅支支持持模模块块的的并并行行开开发发,而且还可以减少测试和维护的工作量。而且还可以减少测试和维护的工作量。(2 2)模块化与信息隐藏)模块化与信息隐藏n问题求解的研究表明,把两个问题组合起来进行问题求解的研究表明,把两个问题组合起来进行求解的复杂性,一般要比分别对两个问题进行求求解的复杂性,一般要比分别对两个问题进行求解的复杂度之和更大,这个结论导致解的复杂度之和更大,这个结论导致“分治法分治法”的出现,即把一个复杂问题分割成若干个可管理的出现,即把一个复杂问题分割成若干个可管理的、更易于求解的小问题。的、更易于求解的小问题。n但这种分割并不意味着但这种分割并不意味着“无限无限”分割,当模块数分割,当模块数量增加时,模块接口所需要的代价也随之增加。量增加时,模块接口所需要的代价也随之增加。模块数量与成本模块数量与成本(2 2)模块化与信息隐藏)模块化与信息隐藏n恰当的定义模块范围和大小非常重要,这与采恰当的定义模块范围和大小非常重要,这与采用的设计方法密切相关,评价所采用设计方法用的设计方法密切相关,评价所采用设计方法的标准:的标准:模块可分解性模块可分解性模块的组装性模块的组装性模块的可理解性模块的可理解性模块连续性模块连续性模块保护模块保护内聚与耦合内聚与耦合n每个模块应相对独立,其功能相对单一,而模每个模块应相对独立,其功能相对单一,而模块之间的接口应尽可能简单。块之间的接口应尽可能简单。内聚内聚是前述信息隐藏和局部化概念的自然扩是前述信息隐藏和局部化概念的自然扩展,它标志一个模块展,它标志一个模块内部内部各成分彼此结合的各成分彼此结合的紧密程度紧密程度。耦合耦合是对软件结构中模块间关联程度的一种是对软件结构中模块间关联程度的一种度量。耦合的强弱取决于度量。耦合的强弱取决于模块间模块间接口的复杂接口的复杂性、进入或调用模块的位置以及通过接口传性、进入或调用模块的位置以及通过接口传送数据的多少等。送数据的多少等。追求追求高内聚、低耦合高内聚、低耦合。(1)抽象与逐步求精)抽象与逐步求精内聚内聚n内聚按其高低程度可划分为不同等级,内聚度内聚按其高低程度可划分为不同等级,内聚度越高越好,从而获得较高的模块独立性。越高越好,从而获得较高的模块独立性。低等级内聚:低等级内聚:偶然性内聚偶然性内聚 逻辑性内聚逻辑性内聚 时序内聚时序内聚中等级内聚:中等级内聚:过程性内聚过程性内聚 通信性内聚通信性内聚高级内聚:高级内聚:顺序性内聚顺序性内聚 功能性内聚:最高程度的内聚功能性内聚:最高程度的内聚耦合耦合n耦合的强弱取决于模块间接口的复杂性、进入耦合的强弱取决于模块间接口的复杂性、进入或调用模块的位置、通过接口传输数据量等。或调用模块的位置、通过接口传输数据量等。n模块间的耦合程度直接影响着系统的可理解性、模块间的耦合程度直接影响着系统的可理解性、可测试性、可靠性和可维护性,软件设计应追可测试性、可靠性和可维护性,软件设计应追求尽可能松散的耦合,模块间的联系越少,错求尽可能松散的耦合,模块间的联系越少,错误在模块间传递的可能性就越小。误在模块间传递的可能性就越小。耦合耦合n耦合等级的划分耦合等级的划分低等级耦合:低等级耦合:非直接耦合非直接耦合中等级耦合中等级耦合 数据耦合数据耦合 特征耦合特征耦合 控制耦合控制耦合 外部耦合外部耦合 公共耦合公共耦合高等级耦合:高等级耦合:内容耦合内容耦合n尽量使用数据耦合,减少控制耦合,限制外部尽量使用数据耦合,减少控制耦合,限制外部耦合和公共耦合,杜绝内容耦合。耦合和公共耦合,杜绝内容耦合。传递的信息含有控制信息内聚和耦合的量化指标内聚和耦合的量化指标n类耦合度类耦合度类类的的耦耦合合度度为为与与它它耦耦合合的的其其它它类类的的数数目目,包包括括调调用用其其他他类类的的方方法法、使使用用其其它它类类的的实实例例变变量量。一一个个类类越越独独立立,它它在在应应用用中中就就越越容容易易被被重重用用,类类之之间间的耦合度应尽可能的小。的耦合度应尽可能的小。n方法内聚缺乏程度方法内聚缺乏程度“不不访访问问相相同同成成员员变变量量的的方方法法对对数数目目”减减去去“访访问相同成员变量的方法对数目问相同成员变量的方法对数目”如如果果一一个个类类中中没没有有任任何何两两个个方方法法对对同同一一变变量量进进行行访访问问,则则它它们们没没有有相相似似性性,该该类类的的内内聚聚程程度度将将会会很很低低,缺缺乏乏内内聚聚度度意意味味着着该该类类可可以以分分为为两两个个或或更更多的类。多的类。内容内容3.13.1软件设计的基本概念软件设计的基本概念软件设计的基本概念软件设计的基本概念3.23.2软件设计过程软件设计过程软件设计过程软件设计过程3.33.3软件设计的质量软件设计的质量软件设计的质量软件设计的质量3.43.4软件体系结构设计软件体系结构设计软件体系结构设计软件体系结构设计3.53.5高可信软件设计高可信软件设计高可信软件设计高可信软件设计3.63.6软件设计规格说明软件设计规格说明软件设计规格说明软件设计规格说明3.73.7软件设计评审软件设计评审软件设计评审软件设计评审(1 1)软件设计的一般过程)软件设计的一般过程n软件设计可能是一个多次反复的过程,所以,软软件设计可能是一个多次反复的过程,所以,软件设计一般都可以被看作是迭代的过程。件设计一般都可以被看作是迭代的过程。n迭代有两层含义(如下页图)迭代有两层含义(如下页图)软件设计的迭代软件设计的迭代迭代的两层含义:迭代的两层含义:第一层含义是,针对给定的需求模型,通过多次第一层含义是,针对给定的需求模型,通过多次从抽象到具体的设计过程,得出足够精细的设计模从抽象到具体的设计过程,得出足够精细的设计模型以供软件实现之用。型以供软件实现之用。第二层含义是,在需求模型发生变化并更新完成第二层含义是,在需求模型发生变化并更新完成后,第一层含义的设计过程再随之展开,直至获得后,第一层含义的设计过程再随之展开,直至获得最终的目标软件产品最终的目标软件产品。软件设计的一般过程软件设计的一般过程n软软件件设设计计过过程程包包括括在在不不同同抽抽象象层层次次上上开开发发系系统统的的多多个模型。个模型。n软软件件设设计计可可以以看看作作是是将将需需求求规规格格说说明明转转换换为为可可直直接接提供软件代码实现使用的提供软件代码实现使用的设计规格说明。设计规格说明。n工程管理的角度:工程管理的角度:概要设计:根据需求确定软件和数据总体框架。概要设计:根据需求确定软件和数据总体框架。详详细细设设计计:进进一一步步精精化化成成软软件件的的算算法法表表示示和和数数据据结构。结构。技技术术上上,概概要要设设计计和和详详细细设设计计由由若若干干活活动动组组成成,包包括括软软件件体体系系结结构构设设计计、界界面面设设计计、模模块块/子子系系统统设计、数据模型设计、过程设计、数据模型设计、过程/算法设计。算法设计。软件设计的一般过程软件设计的一般过程1 1)软件设计计划)软件设计计划n在设计过程中,对设计活动进行计划应该最早进行,在设计过程中,对设计活动进行计划应该最早进行,然后按照计划实施体系结构设计、界面设计、模块然后按照计划实施体系结构设计、界面设计、模块/子系统设计、数据模型设计、过程子系统设计、数据模型设计、过程/算法设计等活动。算法设计等活动。n软件设计计划的任务是:明确设计过程的输入制品软件设计计划的任务是:明确设计过程的输入制品并使其处于就绪状态,定义设计过程的目标、输出并使其处于就绪状态,定义设计过程的目标、输出制品及其验收准则,确定覆盖设计过程中各个阶段制品及其验收准则,确定覆盖设计过程中各个阶段的全局性设计策略,分配设计过程相关人员的职责,的全局性设计策略,分配设计过程相关人员的职责,针对设计过程中的活动制订工作计划。针对设计过程中的活动制订工作计划。1 1)软件设计计划)软件设计计划n软件设计计划的步骤:软件设计计划的步骤:确定设计的目标和验收标准确定设计的目标和验收标准明确目标软件系统应遵循的技术标准或规范明确目标软件系统应遵循的技术标准或规范重新审视项目风险管理计划重新审视项目风险管理计划制定本次设计过程的工作计划制定本次设计过程的工作计划对设计过程的工作计划进行评审对设计过程的工作计划进行评审2 2)体系结构设计)体系结构设计n软件体系结构设计的目标是建立软件系统的体系软件体系结构设计的目标是建立软件系统的体系结构,有时也称结构,有时也称“顶层架构顶层架构”。n这种架构既要明确定义软件各子系统、关键构件、这种架构既要明确定义软件各子系统、关键构件、关键类的职责划分及协作关系,同时也要描绘它关键类的职责划分及协作关系,同时也要描绘它们在物理运行环境下的部署模型。们在物理运行环境下的部署模型。n顶层架构还必须针对软件系统全局性、基础性的顶层架构还必须针对软件系统全局性、基础性的技术问题给出技术解决方案,这种方案往往构成技术问题给出技术解决方案,这种方案往往构成目标软件系统的体系结构的技术基础设施。目标软件系统的体系结构的技术基础设施。2 2)体系结构设计)体系结构设计n评价软件体系结构评价软件体系结构宽度和深度:软件控制的层数和跨度宽度和深度:软件控制的层数和跨度扇出率和扇入率:扇出率和扇入率:扇出率:一个模块的扇出率指该模块直接扇出率:一个模块的扇出率指该模块直接控制控制的的 其他其他模块数。模块数。扇入率:一个模块的扇入率指直接扇入率:一个模块的扇入率指直接控制该模块控制该模块的的 模块数模块数。可见性和联通性可见性和联通性 模块的可见性:该模块可直接或间接引用的一组模块。模块的可见性:该模块可直接或间接引用的一组模块。模块的联通性:模块可直接引用的一组模块。模块的联通性:模块可直接引用的一组模块。软件体系结构设计有关概念软件体系结构设计有关概念3 3)界面设计)界面设计n用户界面设计的目标是,为用户使用目标软件系统以用户界面设计的目标是,为用户使用目标软件系统以实现其所有业务需求而提供友好的人机交互界面。实现其所有业务需求而提供友好的人机交互界面。n软件界面设计需要考虑以下因素软件界面设计需要考虑以下因素 :l适用于软件功能适用于软件功能 l易理解性易理解性 l一致性一致性 l灵敏性灵敏性 l容错性容错性 l人性化人性化 l国际化国际化 l个性化个性化 l合理的布局合理的布局 l和谐的色彩和谐的色彩 界面的易用性界面的美观性4 4)模块)模块/子系统设计子系统设计n子系统和模块的区别:子系统和模块的区别:一个子系统独立构成系统,不依赖其它子系统提一个子系统独立构成系统,不依赖其它子系统提供的服务。供的服务。一个模块通常是一个能提供一个或多个服务的系一个模块通常是一个能提供一个或多个服务的系统部件。它能利用其它模块提供的服务,一般不统部件。它能利用其它模块提供的服务,一般不被看成一个独立的系统。被看成一个独立的系统。n由于模块和子系统都是软件组成部分,它们一般都由于模块和子系统都是软件组成部分,它们一般都有层次结构,相互之间存在接口,其设计方法有很有层次结构,相互之间存在接口,其设计方法有很多类似的方面,因此我们统一称为模块设计。多类似的方面,因此我们统一称为模块设计。模块设计的目标模块设计的目标n模块设计的目标是,确定模块设计的目标是,确定模块的具体接口定义模块的具体接口定义,并设计模块的内部结构,即,设置包含于其中的并设计模块的内部结构,即,设置包含于其中的(更小粒度的)模块、构件和设计类,(更小粒度的)模块、构件和设计类,n明确它们之间的明确它们之间的协作关系协作关系,确保它们能够协同实,确保它们能够协同实现高层模块接口规定的所有功能和行为。现高层模块接口规定的所有功能和行为。n在进行模块设计时,要尽量保持模块的功能独立在进行模块设计时,要尽量保持模块的功能独立性,遵循性,遵循“高内聚、低耦合高内聚、低耦合”的设计思想。的设计思想。n此外,还要力求将模块的影响限制在模块的控制此外,还要力求将模块的影响限制在模块的控制范围内,使得以后软件的修改和维护工作更加简范围内,使得以后软件的修改和维护工作更加简单。单。5 5)过程)过程/算法设计算法设计n过程过程/算法设计的任务就是对模块内部的工作和执算法设计的任务就是对模块内部的工作和执行过程进行描述,给出有关处理的精确说明,例行过程进行描述,给出有关处理的精确说明,例如事件的顺序、确切的决策位置、循环操作以及如事件的顺序、确切的决策位置、循环操作以及数据的组成等。数据的组成等。n软件结构与软件过程相互关联,软件结构中任何软件结构与软件过程相互关联,软件结构中任何模块的所有从属模块必将被引用出现在该模块的模块的所有从属模块必将被引用出现在该模块的过程说明中。因此,软件过程对应的结构设计亦过程说明中。因此,软件过程对应的结构设计亦构成一个层次结构。构成一个层次结构。n可以使用可以使用UMLUML对模块进行设计对模块进行设计使用使用UMLUML的模块过程设计的模块过程设计6 6)数据模型设计)数据模型设计n我们把数据结构设计、数据库设计、甚至数据文我们把数据结构设计、数据库设计、甚至数据文件设计等统一称为数据模型设计。件设计等统一称为数据模型设计。n在数据模型设计中有一个重要概念:持久数据操在数据模型设计中有一个重要概念:持久数据操作,它包括写入、查询、更新和删除四类基本操作,它包括写入、查询、更新和删除四类基本操作以及由它们复合而成的业务数据操作。作以及由它们复合而成的业务数据操作。n在很多软件系统中,数据是其核心,因此,对数在很多软件系统中,数据是其核心,因此,对数据元素的格式、结构、访存、表示等机制进行良据元素的格式、结构、访存、表示等机制进行良好建模和优化,是提高软件设计质量和系统性能好建模和优化,是提高软件设计质量和系统性能的基础,对软件系统的应用具有重要意义。的基础,对软件系统的应用具有重要意义。软件设计的一般过程软件设计的一般过程内容内容3.13.1软件设计的基本概念软件设计的基本概念软件设计的基本概念软件设计的基本概念3.23.2软件设计过程软件设计过程软件设计过程软件设计过程3.33.3软件设计的质量软件设计的质量软件设计的质量软件设计的质量3.43.4软件体系结构设计软件体系结构设计软件体系结构设计软件体系结构设计3.53.5高可信软件设计高可信软件设计高可信软件设计高可信软件设计3.63.6软件设计规格说明软件设计规格说明软件设计规格说明软件设计规格说明3.73.7软件设计评审软件设计评审软件设计评审软件设计评审软件设计质量的重要性软件设计质量的重要性n软件设计是软件开发过程中的核心活动,软件设计软件设计是软件开发过程中的核心活动,软件设计的质量不但对最终软件产品的质量起着决定性作用,的质量不但对最终软件产品的质量起着决定性作用,还对软件开发过程以及软件以后在使用过程中维护还对软件开发过程以及软件以后在使用过程中维护的难易程度有着重要的影响。的难易程度有着重要的影响。n高质量的软件设计,能够有效缩短软件开发时间,高质量的软件设计,能够有效缩短软件开发时间,减少开发成本,提高最终软件产品质量。减少开发成本,提高最终软件产品质量。软件设计的质量要素软件设计的质量要素n评价软件设计的质量评价软件设计的质量结构良好结构良好充分性充分性可行性可行性简单性简单性实用性实用性灵活性灵活性健壮性健壮性可移植性可移植性可复用性可复用性标准化标准化软件设计的质量软件设计的质量n软件设计对最终软件产品质量产生的影响包括:软件设计对最终软件产品质量产生的影响包括:正确性正确性可靠性可靠性运行效率运行效率可移植性可移植性可维护性可维护性可复用性可复用性软件设计的质量软件设计的质量n软件设计对软件开发过程可能产生的影响包括:软件设计对软件开发过程可能产生的影响包括:开发效率开发效率交付时间交付时间风险管理风险管理资源使用资源使用成本成本人员培训人员培训合法性合法性内容内容3.13.1软件设计的基本概念软件设计的基本概念软件设计的基本概念软件设计的基本概念3.23.2软件设计过程软件设计过程软件设计过程软件设计过程3.33.3软件设计的质量软件设计的质量软件设计的质量软件设计的质量3.43.4软件体系结构设计软件体系结构设计软件体系结构设计软件体系结构设计3.53.5高可信软件设计高可信软件设计高可信软件设计高可信软件设计3.63.6软件设计规格说明软件设计规格说明软件设计规格说明软件设计规格说明3.73.7软件设计评审软件设计评审软件设计评审软件设计评审(1 1)软件体系结构设计方法概述)软件体系结构设计方法概述n软件体系结构的设计方法是指通过一系列的设计软件体系结构的设计方法是指通过一系列的设计活动,获得满足系统功能性需求、并且符合一定活动,获得满足系统功能性需求、并且符合一定非功能性需求约束的软件体系结构模型。非功能性需求约束的软件体系结构模型。n目前存在多种体系结构设计方法,它们的侧重点目前存在多种体系结构设计方法,它们的侧重点有所不同有所不同(功能、非功能、复用功能、非功能、复用)。n在实际应用过程中,这些体系结构设计方法并不在实际应用过程中,这些体系结构设计方法并不是绝对互斥的,根据需要,有可能综合运用不同是绝对互斥的,根据需要,有可能综合运用不同体系结构设计方法的思想,得到最终所需的设计体系结构设计方法的思想,得到最终所需的设计结果。结果。软件体系结构设计方法软件体系结构设计方法n4+14+1多视图建模多视图建模n基于评估与转换的设计方法基于评估与转换的设计方法n模式驱动的设计方法模式驱动的设计方法n领域特定的软件体系结构设计领域特定的软件体系结构设计 复用复用n软件产品线方法软件产品线方法n其它软件体系结构设计方法其它软件体系结构设计方法1 1)多视图建模多视图建模1 1)多视图建模多视图建模n逻辑视图:功能需求、与应用领域密切相关、领域术语、逻辑视图:功能需求、与应用领域密切相关、领域术语、系统功能映射到概念构件和连接件、与硬件和软件细节无系统功能映射到概念构件和连接件、与硬件和软件细节无关。关。n进程视图:非功能需求、设计中关于并发和同步的内容。进程视图:非功能需求、设计中关于并发和同步的内容。n开发视图:软件在开发环境中的静态结构、构件和连接子开发视图:软件在开发环境中的静态结构、构件和连接子映射到子系统或模块、关注软件模块的组织。映射到子系统或模块、关注软件模块的组织。n物理视图:描述软件到硬件的映射关系、关注物理环境的物理视图:描述软件到硬件的映射关系、关注物理环境的拓扑结构以及节点间的通信。拓扑结构以及节点间的通信。n场景:把上述四种视图联系起来,场景(用例的实例)通场景:把上述四种视图联系起来,场景(用例的实例)通常是最重要的需求。常是最重要的需求。以上视图均可用以上视图均可用UMLUML进行建模。进行建模。2 2)基于评估与转换的设计方法)基于评估与转换的设计方法n针对功能特性设计体系结构,对设计结果进行评针对功能特性设计体系结构,对设计结果进行评审,如果不满足要求则进行改进,一直迭代到满审,如果不满足要求则进行改进,一直迭代到满足要求为止。足要求为止。n对设计出的体系结构的质量进行评估、不满足要对设计出的体系结构的质量进行评估、不满足要求时的体现结构转换特别重要。求时的体现结构转换特别重要。2 2)基于评估与转换的设计方法)基于评估与转换的设计方法体系结构的评估体系结构的评估n基于场景的评估基于场景的评估n仿真仿真n数学建模数学建模n基于经验的推理基于经验的推理体系结构设计转换方式体系结构设计转换方式n质量评价结果不满足需求规格说明,需要改变评质量评价结果不满足需求规格说明,需要改变评估环境(修改评估)或修改体系结构设计,有以估环境(修改评估)或修改体系结构设计,有以下三种体系结构转化方式:下三种体系结构转化方式:使用合适的体系结构风格和模式,或者设计模使用合适的体系结构风格和模式,或者设计模式来改进体系结构设计。式来改进体系结构设计。把非功能需求转化为功能性解决方案,该功能把非功能需求转化为功能性解决方案,该功能性方案可以与问题域无关,但可以满足质量属性方案可以与问题域无关,但可以满足质量属性的要求。性的要求。采用采用“分而治之分而治之”的方式,可以把系统级的质的方式,可以把系统级的质量需求分配到子系统或模块中,或者把质量需量需求分配到子系统或模块中,或者把质量需求分解为多个与功能相关的质量需求,分解后求分解为多个与功能相关的质量需求,分解后的质量需求能够比较容易得到满足。的质量需求能够比较容易得到满足。软件设计经验的总结和复用软件设计经验的总结和复用n模式驱动的设计方法模式驱动的设计方法n领域特定的软件体系结构设计领域特定的软件体系结构设计n软件产品线方法软件产品线方法体系结构风格体系结构风格/模式模式n体系结构风格是描述某一特定应用方式中系统组体系结构风格是描述某一特定应用方式中系统组织方式的惯用模式,为设计人员提供公共的模型、织方式的惯用模式,为设计人员提供公共的模型、符号和术语表示,促进设计复用甚至代码复用符号和术语表示,促进设计复用甚至代码复用n体系结构模式是对设计模式的扩展,描述了软件体系结构模式是对设计模式的扩展,描述了软件系统基本的结构化组织方案,是具体体系结构的系统基本的结构化组织方案,是具体体系结构的模板。模板。n体系结构风格描述了软件总体框架的结构,综合体系结构风格描述了软件总体框架的结构,综合考虑整个系统各方面的需求。考虑整个系统各方面的需求。n设计模式是针对单一的问题提供解决方案,层次设计模式是针对单一的问题提供解决方案,层次比软件体系结构风格低。比软件体系结构风格低。3 3)模式驱动的设计方法)模式驱动的设计方法体系结构风格的分类体系结构风格的分类体系结构风格分类体系结构风格分类独立构件体系结构独立构件体系结构数据流体系结构数据流体系结构数据为中心的体系结构数据为中心的体系结构虚拟机体系结构虚拟机体系结构调用与返回体系结构调用与返回体系结构4 4)领域特定的软件体系结构设计)领域特定的软件体系结构设计n领域特定的软件体系结构(领域特定的软件体系结构(Domain Specific Domain Specific Software ArchitectureSoftware Architecture,DSSADSSA)是领域工程的核)是领域工程的核心部分,领域工程分析应用领域的共同特征和可心部分,领域工程分析应用领域的共同特征和可变特征,对刻画这些特征的对象和操作进行选择变特征,对刻画这些特征的对象和操作进行选择和抽象,形成领域模型,并进一步生成和抽象,形成领域模型,并进一步生成DSSADSSA。n领域特定的软件体系结构借鉴领域中已经成熟的领域特定的软件体系结构借鉴领域中已经成熟的软件体系结构,实现解决方案在某个领域内的复软件体系结构,实现解决方案在某个领域内的复用。虽然这些系统实例的细节会有不同,但共同用。虽然这些系统实例的细节会有不同,但共同的体系结构在开发新系统时是能够复用的。的体系结构在开发新系统时是能够复用的。DSSADSSA与体系结构风格的区别与体系结构风格的区别nDSSADSSA与软件体系结构风格是从不同角度出发研究问与软件体系结构风格是从不同角度出发研究问题的两种结果,前者从问题域出发,而后者从解决题的两种结果,前者从问题域出发,而后者从解决域出发。域出发。nDSSADSSA只在某个特定领域中进行经验知识的提取、总只在某个特定领域中进行经验知识的提取、总结与组织,但可以同时使用多种软件体系结构风格;结与组织,但可以同时使用多种软件体系结构风格;而一种软件体系结构风格所呈现的公共结构和设计而一种软件体系结构风格所呈现的公共结构和设计方法可以扩展到多个应用领域。方法可以扩展到多个应用领域。nDSSADSSA的体系结构表示和工具一般只适用于一个较小的体系结构表示和工具一般只适用于一个较小的范围,在其它领域中是不适用并难以复用的。的范围,在其它领域中是不适用并难以复用的。领域特定的软件体系结构类型领域特定的软件体系结构类型n类模型:类模型是从许多实际系统中抽象出来的类模型:类模型是从许多实际系统中抽象出来的一般模型,它们封装这些系统的主要特征。如:一般模型,它们封装这些系统的主要特征。如:编译器模型,大量的编译器几乎都基于同一种体编译器模型,大量的编译器几乎都基于同一种体系结构。系结构。n参考模型:参考模型是更抽象且是描述一大类系参考模型:参考模型是更抽象且是描述一大类系统的模型,它对设计者是有关某类系统的一般结统的模型,它对设计者是有关某类系统的一般结构的指导,通常源自于对某应用领域的研究。它构的指导,通常源自于对某应用领域的研究。它代表了一个理想化的体系结构,包含了系统所有代表了一个理想化的体系结构,包含了系统所有应该具有的特征。如:应该具有的特征。如:OSIOSI七层参考模型。七层参考模型。5 5)软件产品线方法)软件产品线方法n软件复用的更高阶段,已经超出软件体系结构设计方法软件复用的更高阶段,已经超出软件体系结构设计方法的范畴。的范畴。n软件产品线指一组具有公共的、可管理特征(系统需求)软件产品线指一组具有公共的、可管理特征(系统需求)的软件系统,这些系统满足特定的市场需求或者任务领的软件系统,这些系统满足特定的市场需求或者任务领域需求,并且按照预定义的方式基于公共的核心资产域需求,并且按照预定义的方式基于公共的核心资产(Core AssetsCore Assets)集合开发得到。)集合开发得到。n软件产品线主要由两部分组成:软件产品线主要由两部分组成:核心资产库:产品线的基础,是领域工程所有成果的核心资产库:产品线的基础,是领域工程所有成果的集合,管理支持产品开发的可复用资源。产品线体系集合,管理支持产品开发的可复用资源。产品线体系结构和构件是核心资产库中用于产品构建的最重要部结构和构件是核心资产库中用于产品构建的最重要部分。分。产品集合产品集合软件产品线过程模型软件产品线过程模型三三个个基基本本活活动动产品线方法的基本活动产品线方法的基本活动n核心资产开发:如何获得核心资产,可以自己构核心资产开发:如何获得核心资产,可以自己构建、直接购买、委托加工等方式。建、直接购买、委托加工等方式。n产品开发:是产品线的目标,核心资产开发只是产品开发:是产品线的目标,核心资产开发只是达到该目标的一种手段。达到该目标的一种手段。n管理:为各个活动合理分配资源、协调监督、设管理:为各个活动合理分配资源、协调监督、设置恰当的组织机构等。置恰当的组织机构等。循环重复是产品线开发过程、核心资产开发、产品循环重复是产品线开发过程、核心资产开发、产品开发以及对其进行管理的特征。核心资产开发和产开发以及对其进行管理的特征。核心资产开发和产品开发没有先后顺序,管理活动协调整个产品线开品开发没有先后顺序,管理活动协调整个产品线开发过程的各个活动。发过程的各个活动。产品线方法产品线方法_新产品形成步骤新产品形成步骤n从公共资产库中选取合适的构件;从公共资产库中选取合适的构件;n使用预定义的变化机制进行裁剪,如参数化、使用预定义的变化机制进行裁剪,如参数化、继承等;继承等;n必要时增加新的构件;必要时增加新的构件;n在整个产品线范围内共同的体系结构指导下,在整个产品线范围内共同的体系结构指导下,进行构件组装,形成系统。进行构件组装,形成系统。新产品的开发从新产品的开发从“创造创造”变成变成“组装组装”,占支配地,占支配地位的活动是位的活动是“集成集成”而非而非“编程编程”。软件产品线是。软件产品线是对特定领域的软件开发更加全面的复用,包括领域对特定领域的软件开发更加全面的复用,包括领域特定的软件体系结构设计方法。(到商店里买,去特定的软件体系结构设计方法。(到商店里买,去仓库里拿,而不是自己慢慢烹饪)仓库里拿,而不是自己慢慢烹饪)6 6)其它软件体系结构设计方法)其它软件体系结构设计方法n基于目标图推理的体系结构设计方法基于目标图推理的体系结构设计方法 n基于属性的体系结构设计方法基于属性的体系结构设计方法 n一些常用的软件开发方法学中也包含了软件体系一些常用的软件开发方法学中也包含了软件体系结构的设计,例如:结构的设计,例如:l面向数据流的软件开发方法面向数据流的软件开发方法l面向对象的软件开发方法面向对象的软件开发方法l面向方面的软件开发方法面向方面的软件开发方法 软件体系结构设计步骤软件体系结构设计步骤n始于体系结构设计,自顶向下、逐步精化。始于体系结构设计,自顶向下、逐步精化。n体系结构设计是在需求规格说明、软件设计计划体系结构设计是在需求规格说明、软件设计计划已经完成后开始的。已经完成后开始的。n软件体系机构设计步骤图软件体系机构设计步骤图(2 2)软件体系结构设计步骤)软件体系结构设计步骤1.1.开发软件顶层架构开发软件顶层架构 2.2.搜索并选取可用设计资产搜索并选取可用设计资产 3.3.设计技术支撑方案设计技术支撑方案 4.4.确定设计元素确定设计元素 5.5.开发软件部署模型开发软件部署模型 6.6.设计并发机制设计并发机制 7.7.构建软件体系结构模型构建软件体系结构模型 8.8.评审软件体系结构模型评审软件体系结构模型 内容内容3.13.1软件设计的基本概念软件设计的基本概念软件设计的基本概念软件设计的基本概念3.23.2软件设计过程软件设计过程软件设计过程软件设计过程3.33.3软件设计的质量软件设计的质量软件设计的质量软件设计的质量3.43.4软件体系结构设计软件体系结构设计软件体系结构设计软件体系结构设计3.53.5高可信软件设计高可信软件设计高可信软件设计高可信软件设计3.63.6软件设计规格说明软件设计规格说明软件设计规格说明软件设计规格说明3.73.7软件设计评审软件设计评审软件设计评审软件设计评审(1 1)可信软件的特点)可信软件的特点n计算机系统的缺陷很大一部分是由于软件的问题计算机系统的缺陷很大一部分是由于软件的问题引发的。纵观软件应用的发展历史,国际上由于引发的。纵观软件应用的发展历史,国际上由于软件可信性问题所导致的重大灾难、事故和严重软件可信性问题所导致的重大灾难、事故和严重损失屡见不鲜,软件的可信性问题已经成为一个损失屡见不鲜,软件的可信性问题已经成为一个相当普遍的问题。相当普遍的问题。n所谓所谓“可信软件可信软件”,是指软件系统的运行行为及,是指软件系统的运行行为及其结果总是符合人们的预期,且在受到干扰(包其结果总是符合人们的预期,且在受到干扰(包括操作错误、环境影响、外部攻击等)时仍能提括操作错误、环境影响、外部攻击等)时仍能提供连续的服务。供连续的服务。可信属性可信属性n可靠性(可靠性(ReliabilityReliability):在规定的环境下和规定的时间):在规定的环境下和规定的时间内,软件无失效运行的概率;内,软件无失效运行的概率;n可靠安全性(可靠安全性(SafetySafety):软件运行不引起危险、灾难的能):软件运行不引起危险、灾难的能力;力;n保密安全性(保密安全性(SecuritySecurity):软件系统对数据和信息提供保):软件系统对数据和信息提供保密性、完整性、可用性、真实性保障的能力;密性、完整性、可用性、真实性保障的能力;n可生存性(可生存性(SurvivabilitySurvivability):软件在受到攻击或失效出):软件在受到攻击或失效出现时连续提供服务并在规定时间内恢复所有服务的能力;现时连续提供服务并在规定时间内恢复所有服务的能力;n实时性(实时性(Real TimeReal Time):软件在指定的时间内完成反应或):软件在指定的时间内完成反应或提交输出的能力。提交输出的能力。成本可信曲线成本可信曲线由于需要附加的设计、实现和验证开销,提高可信行性将极大的增加开发成本指数曲线指数曲线(2 2)容错设计)容错设计n为了保证高可信系统即使在极端条件下也能按其为了保证高可信系统即使在极端条件下也能按其规格说明执行,对硬件和软件同时采用容错计算规格说明执行,对硬件和软件同时采用容错计算非常重要。非常重要。n硬件容错对所有关键硬件部件进行备份。硬件容错对所有关键硬件部件进行备份。n为了保护软件免受软件故障的影响,软件逻辑和为了保护软件免受软件故障的影响,软件逻辑和数据也必须被备份。数据也必须被备份。n软件容错设计是使得软件能发现失效危险并从临软件容错设计是使得软件能发现失效危险并从临失效状态恢复的软件设计技术,有两种主要的软失效状态恢复的软件设计技术,有两种主要的软件容错设计方法:件容错设计方法:l恢复块(恢复块(Recovery BlocksRecovery Blocks)lN-N-版本(版本(N-versionN-version)编程)编程 1 1)恢复块技术)恢复块技术检测到错误后将执行软件模块的另一个不同版本。在执行模块的一个版本前,首先要创建检查点,这有助于在该版本执行失败后恢复状态,并为检测到错误后执行下一个版本提供有效的起始点。2 2)N-N-版本编程版本编程N版本编程是一种多版本技术,关键模块的不同版本被设计成满足同样的基本需求,每个版本完成同样的任务,但却使用不同的方式。这些版本同时执行,它们的输出结果提交给一个表决系统以决定正确的结果,对输出正确性的判断基于对所有输出的比较,出现不一致的情况时利用多数表决决定最优先的结果。设计多样性设计多样性n恢复块技术和恢复块技术和N-N-版本编程都是基于设计多样性版本编程都是基于设计多样性n当不同的开发者采用不同方法实现相同的需求时,当不同的开发者采用不同方法实现相同的需求时,一个合理的假设是不同版本的软件不大可能包含相一个合理的假设是不同版本的软件不大可能包含相同的缺陷,因此,也就不会产生相同的失效。同的缺陷,因此,也就不会产生相同的失效。n设计多样性可以通过以下多种方式达到:设计多样性可以通过以下多种方式达到:l使用不同的设计方法来实现需求。使用不同的设计方法来实现需求。l使用不同的程序设计语言来完成实现。使用不同的程序设计语言来完成实现。l使用不同的开发工具,且在不同的开发环境中使用不同的开发工具,且在不同的开发环境中完成。完成。l明确要求在实现某些关键过程时使用不同的算明确要求在实现某些关键过程时使用不同的算法。法。(3 3)软件失效模式和影响分析)软件失效模式和影响分析n软件失效模式和影响分析(软件失效模式和影响分析(Failure Model and Failure Model and Effects AnalysisEffects Analysis,FMEAFMEA)主要是在软件开发阶)主要是在软件开发阶段的早期(需求阶段和设计阶段),通过识别软段的早期(需求阶段和设计阶段),通过识别软件失效模式,研究分析各种失效模式产生的原因件失效模式,研究分析各种失效模式产生的原因及其造成的后果,寻找消除和减少其有害后果的及其造成的后果,寻找消除和减少其有害后果的方法,以尽早发现潜在的问题,并采取相应的措方法,以尽早发现潜在的问题,并采取相应的措施,从而提高软件的可靠性和安全性。施,从而提高软件的可靠性和安全性。nFMEAFMEA目的在于分析各种失效模式对系统的影响,目的在于分析各种失效模式对系统的影响,从而在软件实现之前为改进设计质量提供依据。从而在软件实现之前为改进设计质量提供依据。相关概念相关概念n软件失效(软件失效(software failuresoftware failure)。软件失效就是)。软件失效就是泛指程序在运行中丧失了全部或部分功能、出现泛指程序在运行中丧失了全部或部分功能、出现偏离预期的正常状态的事件。偏离预期的正常状态的事件。n软件失效模式(软件失效模式(software failure modesoftware failure mode)。软件)。软件失效模式是指软件失效的不同类型,通常用于描失效模式是指软件失效的不同类型,通常用于描述软件失效发生的方式以及对设备运行可能产生述软件失效发生的方式以及对设备运行可能产生的影响。的影响。n软件失效的影响(软件失效的影响(software failure effectsoftware failure effect)。)。软件失效的影响是指软件失效模式对软件系统的软件失效的影响是指软件失效模式对软件系统的运行、功能或状态等造成的后果。运行、功能或状态等造成的后果。FMEAFMEA分析方法分析方法n软件系统级软件系统级FMEAFMEA:在软件设计阶段的早期,对软:在软件设计阶段的早期,对软件体系结构进行安全性评估,在此阶段进行体系件体系结构进行安全性评估,在此阶段进行体系结构的修改代价较低,分析对象是设计阶段早期结构的修改代价较低,分析对象是设计阶段早期的高层次子系统、部件、模块以及它们之间的关的高层次子系统、部件、模块以及它们之间的关系。系。n软件详细级软件详细级FMEAFMEA:在详细设计完成后进行,验证:在详细设计完成后进行,验证详细设计是否满足安全性设计要求,分析对象是详细设计是否满足安全性设计要求,分析对象是至少已完成过程设计、由伪代码或其他方式描述至少已完成过程设计、由伪代码或其他方式描述的模块。的模块。软件失效模式和影响分析软件失效模式和影响分析 FMEA(Failure Model and Effects Analysis)软件系统级软件系统级FMEAFMEA过程过程如何描述和刻画系统级FMEA的分析对象,即如何描述目标软件系统的层次结构以及层次结构中各个模块之间的依赖关系是系统级FMEA分析需要关注和解决的关键问题。只有正确、充分地描述了目标软件系统的逻辑单元、层次结构和各个模块之间的依赖关系,才可能找出每个单元可能存在的、危害整个系统安全运行的失效模式,并根据模块间的依赖关系高效的分析失效的原因、影响和后果,然后在设计时有针对性的采取相应的改进措施,以保证最终系统安全的运行。(4 4)软件故障树分析)软件故障树分析n软件故障树分析(软件故障树分析(Fault Tree AnalysisFault Tree Analysis,FTAFTA)就是在软件系统设计过程中,通过对可能造成系就是在软件系统设计过程中,通过对可能造成系统故障的各种因素(包括硬件、软件、环境、人统故障的各种因素(包括硬件、软件、环境、人为因素等)进行分析,画出逻辑框图(即故障树)为因素等)进行分析,画出逻辑框图(即故障树),从而确定系统故障原因的各种可能组合,采取,从而确定系统故障原因的各种可能组合,采取相应的纠正措施,是提高系统可靠性的一种设计相应的纠正措施,是提高系统可靠性的一种设计分析方法。分析方法。n将不希望发生的事件(故障)作为顶级事件,然将不希望发生的事件(故障)作为顶级事件,然后从该事件向下分解。最主要的用途是把顶级关后从该事件向下分解。最主要的用途是把顶级关键事件转换为在子系统或模块级别必须防止的事键事件转换为在子系统或模块级别必须防止的事件,然后利用经验确定有害事件的潜在原因。件,然后利用经验确定有害事件的潜在原因。故障树的构造过程故障树的构造过程n故障分析是构造故障树最关键的一步。由设计人故障分析是构造故障树最关键的一步。由设计人员、质量保证人员共同合作。员、质量保证人员共同合作。n以顶端事件为以顶端事件为“根根”向下倒长的故障树构造步骤:向下倒长的故障树构造步骤:广泛收集并分析有关技术资料广泛收集并分析有关技术资料 选择顶事件选择顶事件 生成故障树生成故障树 简化故障树简化故障树故障树图形符号故障树图形符号n事件符号与逻辑符号:事件符号与逻辑符号:使用逻辑使用逻辑符号对事符号对事件逐步向件逐步向下分解,下分解,将顶级事将顶级事件细化到件细化到最基本的最基本的潜在事件潜在事件高可信软件的设计方法高可信软件的设计方法黑盒行为黑盒行为状态盒行为状态盒行为明盒行为明盒行为形式化方法形式化方法净室方法净室方法(5 5)形式化方法)形式化方法n形式化方法是关于在计算系统的开发中进行严格推理的理形式化方法是关于在计算系统的开发中进行严格推理的理论、技术和工具,它主要包括论、技术和工具,它主要包括形式规约技术形式规约技术(Formal Formal SpecificationSpecification)和)和形式验证技术形式验证技术(Formal Formal VerificationVerification)。是提高软件质量的重要途径。)。是提高软件质量的重要途径。n形式规约技术形式规约技术使用具有严格数学定义语法和语义的语言刻使用具有严格数学定义语法和语义的语言刻画软件系统及其性质,可以尽早发现需求和设计中的错误、画软件系统及其性质,可以尽早发现需求和设计中的错误、歧义、不一致和不完全。歧义、不一致和不完全。数学上的抽象和组合概念是形数学上的抽象和组合概念是形式化规约技术的重要基础。式化规约技术的重要基础。n形式化验证形式化验证是在形式化规约的基础上建立软件系统及其性是在形式化规约的基础上建立软件系统及其性质的关系,即分析系统是否具有所期望性质的过程,主要质的关系,即分析系统是否具有所期望性质的过程,主要分为两类:模型检验(分为两类:模型检验(Model CheckingModel Checking)和定理证明)和定理证明(Theorem ProvingTheorem Proving)。)。形式化方法形式化方法n模型检验技术是通过搜索待验证软件系统模型的有模型检验技术是通过搜索待验证软件系统模型的有穷状态空间来检验系统的行为是否具备预期性质的穷状态空间来检验系统的行为是否具备预期性质的一种有穷状态系统自动验证技术。一种有穷状态系统自动验证技术。n定理证明技术是将软件系统和性质都用逻辑方法来定理证明技术是将软件系统和性质都用逻辑方法来规约,基于公理和推理规则组成的形式系统,以如规约,基于公理和推理规则组成的形式系统,以如同数学中定理证明的方法来证明软件系统是否具备同数学中定理证明的方法来证明软件系统是否具备所期望的关键性质。所期望的关键性质。n模型检验技术和定理证明技术优势互补。各有优点模型检验技术和定理证明技术优势互补。各有优点和缺点。和缺点。n形式化方法能以严格的方式保证软件可信性,但理形式化方法能以严格的方式保证软件可信性,但理论基础复杂,对技术人员的理论素养和要求很高。论基础复杂,对技术人员的理论素养和要求很高。(6 6)净室方法)净室方法n净室软件工程(净室软件工程(Clean-room Software Clean-room Software EngineeringEngineering)将形式化方法的规范、设计和验证)将形式化方法的规范、设计和验证与可靠性认证的统计测试有效地结合起来。与可靠性认证的统计测试有效地结合起来。n它将软件开发视作严格的工程化开发,软件的正它将软件开发视作严格的工程化开发,软件的正确性是通过数学上可靠的设计方法来保障。确性是通过数学上可靠的设计方法来保障。n净室软件工程的要点净室软件工程的要点在
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


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

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


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