1、计算科学导论计算科学导论思想与方法思想与方法计算机与信息学院计算机与信息学院蒋川群蒋川群 13002187038 13002187038 20102010年年1010月月8/13/20221第1页,共76页。第六章第六章 计算学科中的系统科学方法计算学科中的系统科学方法 6.1 6.1 系统科学与系统科学方法系统科学与系统科学方法 6.2 6.2 软件开发中使用系统科学方法的原因软件开发中使用系统科学方法的原因 6.3 6.3 结构化方法结构化方法 6.4 6.4 面向对象方法面向对象方法8/13/20222第2页,共76页。第六章第六章 计算学科中的系统科学方法计算学科中的系统科学方法 系统
2、科学方法是指利用系统的观点来认识和处理问题的系统科学方法是指利用系统的观点来认识和处理问题的各种方法的总称。各种方法的总称。模型方法是系统科学的基本方法,研究系统具体来说就模型方法是系统科学的基本方法,研究系统具体来说就是研究它的模型。模型是对系统原型的抽象,是科学认是研究它的模型。模型是对系统原型的抽象,是科学认识的基础和决定性环节。识的基础和决定性环节。模型与实现是认识与实践的一种具体体现,在计算学模型与实现是认识与实践的一种具体体现,在计算学科中,它反映了抽象、理论和设计科中,它反映了抽象、理论和设计3 3个过程的基本内个过程的基本内容。模型与实现包括建模、验证和实现容。模型与实现包括建
3、模、验证和实现3 3方面的内容。方面的内容。8/13/20223第3页,共76页。6.1 系统科学和系统科学方法系统科学和系统科学方法 系统科学起源于对传统数学、物理学和系统科学起源于对传统数学、物理学和天文学的研究,诞生于天文学的研究,诞生于2020世纪世纪4040年代年代 系统科学的崛起被认为是系统科学的崛起被认为是2020世纪现代科世纪现代科学的两个重大突破性成就之一学的两个重大突破性成就之一 建立在系统科学基础上的系统科学方法建立在系统科学基础上的系统科学方法开辟了探索科学技术的新思路,它是认开辟了探索科学技术的新思路,它是认识、调控、改造和创造复杂系统的有效识、调控、改造和创造复杂系
4、统的有效手段,它为系统形式化模型的构建提供手段,它为系统形式化模型的构建提供了有效的中间过渡模式了有效的中间过渡模式8/13/20224第4页,共76页。6.1 系统科学和系统科学方法系统科学和系统科学方法 现代计算机普遍采用的组织结构,即冯现代计算机普遍采用的组织结构,即冯.诺依曼计算机组织结构就是系统科学在诺依曼计算机组织结构就是系统科学在计算机领域所取得的应用成果之一计算机领域所取得的应用成果之一 随着计算技术的迅猛发展,计算机软硬随着计算技术的迅猛发展,计算机软硬件系统变得越来越复杂,因此,系统科件系统变得越来越复杂,因此,系统科学方法在计算学科中的作用也越来越大学方法在计算学科中的作
5、用也越来越大8/13/20225第5页,共76页。6.1 系统科学和系统科学方法系统科学和系统科学方法 系统科学的基本概念系统科学的基本概念 系统科学遵循的一般原则系统科学遵循的一般原则 常用的几种系统科学方法常用的几种系统科学方法 实例实例8/13/20226第6页,共76页。6.1 系统科学和系统科学方法系统科学和系统科学方法 系统科学的基本概念系统科学的基本概念 系统科学是探索系统的存在和运动变化系统科学是探索系统的存在和运动变化规律的学问,是对系统本质的理性认识,规律的学问,是对系统本质的理性认识,是人们认识客观世界的一个知识体系。是人们认识客观世界的一个知识体系。8/13/20227
6、第7页,共76页。6.1 系统科学和系统科学方法系统科学和系统科学方法 系统科学的基本概念系统科学的基本概念系统和子系统系统和子系统结构和结构分析结构和结构分析层次和层次分析层次和层次分析环境、行为和功能环境、行为和功能状态、演化和过程状态、演化和过程系统同构系统同构8/13/20228第8页,共76页。6.1 系统科学和系统科学方法系统科学和系统科学方法 系统科学的基本概念系统科学的基本概念 系统和子系统系统和子系统 系统是指由相互联系、相互作用的若干系统是指由相互联系、相互作用的若干元素构成的、具有特定功能的统一整体。元素构成的、具有特定功能的统一整体。S=S=A A表示系统表示系统S S
7、中所有元素的集合中所有元素的集合R R表示系统表示系统S S中所有元素之间关系的集合中所有元素之间关系的集合8/13/20229第9页,共76页。6.1 系统科学和系统科学方法系统科学和系统科学方法 系统科学的基本概念系统科学的基本概念 系统和子系统系统和子系统 一个大的系统往往是复杂的,通常可以一个大的系统往往是复杂的,通常可以划分为一系列较小的系统,这些系统称划分为一系列较小的系统,这些系统称为子系统。为子系统。Si=Si=SiSiS S,AiAiA,RiA,RiR R8/13/202210第10页,共76页。6.1 系统科学和系统科学方法系统科学和系统科学方法 系统科学的基本概念系统科学
8、的基本概念 结构和结构分析结构和结构分析 结构是指系统内各组成部分(元素和子结构是指系统内各组成部分(元素和子系统)之间相互联系、相互作用的框架系统)之间相互联系、相互作用的框架 结构分析的重要内容就是划分子系统,结构分析的重要内容就是划分子系统,并研究各子系统之间的相互关系并研究各子系统之间的相互关系8/13/202211第11页,共76页。6.1 系统科学和系统科学方法系统科学和系统科学方法 系统科学的基本概念系统科学的基本概念 层次和层次分析层次和层次分析层次是划分系统结构的一个重要工具,也是层次是划分系统结构的一个重要工具,也是结构分析的主要方式。结构分析的主要方式。系统的结构可以表示
9、为各级子系统和系统要系统的结构可以表示为各级子系统和系统要素的层次结构形式。素的层次结构形式。高层次包含和支配低层次,低层次隶属和支高层次包含和支配低层次,低层次隶属和支撑高层次撑高层次明确所研究的问题处在哪一个层次上,可以明确所研究的问题处在哪一个层次上,可以避免因混淆层次而造成的概念混乱避免因混淆层次而造成的概念混乱8/13/202212第12页,共76页。6.1 系统科学和系统科学方法系统科学和系统科学方法 系统科学的基本概念系统科学的基本概念 层次和层次分析层次和层次分析层次分析的主要内容有系统是否划分层次、层次分析的主要内容有系统是否划分层次、划分了哪些层次、各层次的内容、层次之间划
10、分了哪些层次、各层次的内容、层次之间的关系以及层次划分的原则等的关系以及层次划分的原则等8/13/202213第13页,共76页。6.1 系统科学和系统科学方法系统科学和系统科学方法 系统科学的基本概念系统科学的基本概念 环境、行为和功能环境、行为和功能 系统的环境是指一个系统之外的一切与系统的环境是指一个系统之外的一切与它有联系的事物组成的集合。系统要发它有联系的事物组成的集合。系统要发挥它应有的作用,达到应有的目标,系挥它应有的作用,达到应有的目标,系统自身一定要适应环境的要求统自身一定要适应环境的要求8/13/202214第14页,共76页。6.1 系统科学和系统科学方法系统科学和系统科
11、学方法 系统科学的基本概念系统科学的基本概念 环境、行为和功能环境、行为和功能系统的行为是指系统相对于它的环境所表现系统的行为是指系统相对于它的环境所表现出来的一切变化出来的一切变化行为属于系统自身的变化,同时又反映环境行为属于系统自身的变化,同时又反映环境对系统的影响和作用对系统的影响和作用系统的功能是指系统行为所引起的、有利于系统的功能是指系统行为所引起的、有利于环境中某些事物乃至整个环境存在与发展的环境中某些事物乃至整个环境存在与发展的作用作用8/13/202215第15页,共76页。6.1 系统科学和系统科学方法系统科学和系统科学方法 系统科学的基本概念系统科学的基本概念 状态、演化和
12、过程状态、演化和过程状态是指系统的那些可以观察和识别的形态状态是指系统的那些可以观察和识别的形态特征,状态可以用系统的定量特征(如温度特征,状态可以用系统的定量特征(如温度T T、体积、体积V V等)来表示等)来表示演化是指系统的结构、状态、特征、行为和演化是指系统的结构、状态、特征、行为和功能等随时间的推移而发生的变化功能等随时间的推移而发生的变化过程是指系统的演化所经过的发展阶段,它过程是指系统的演化所经过的发展阶段,它由若干子过程组成。过程的最基本元素是动由若干子过程组成。过程的最基本元素是动作,动作不能再分作,动作不能再分8/13/202216第16页,共76页。6.1 系统科学和系统
13、科学方法系统科学和系统科学方法 系统科学的基本概念系统科学的基本概念 系统同构系统同构系统同构是指不同系统数学模型之间存在的系统同构是指不同系统数学模型之间存在的数学同构,它是系统科学的理论依据数学同构,它是系统科学的理论依据在数学中,同构有以下二个重要特征:在数学中,同构有以下二个重要特征:两个不同的代数系统,它们的元素基数相两个不同的代数系统,它们的元素基数相同,并能建立一一对应的关系同,并能建立一一对应的关系8/13/202217第17页,共76页。6.1 系统科学和系统科学方法系统科学和系统科学方法 系统科学的基本概念系统科学的基本概念 系统同构系统同构两个代数系统运算的定义也对应相同
14、。两个代数系统运算的定义也对应相同。一个代数系统中的两个元素经过某种运算后一个代数系统中的两个元素经过某种运算后得到的结果与另一个代数系统对应的两个元得到的结果与另一个代数系统对应的两个元素经相应的运算后得到的结果元素互为对应素经相应的运算后得到的结果元素互为对应一个代数系统中的元素被其对应系统的元素一个代数系统中的元素被其对应系统的元素替换后,可得另一代数系统的运算表替换后,可得另一代数系统的运算表8/13/202218第18页,共76页。6.1 系统科学和系统科学方法系统科学和系统科学方法 系统科学的基本概念系统科学的基本概念 系统同构系统同构系统同构是数学同构概念的拓展系统同构是数学同构
15、概念的拓展根据系统同构的性质,就可以用一种性质和根据系统同构的性质,就可以用一种性质和结构相同的系统来研究另一种系统结构相同的系统来研究另一种系统根据同构的特征可知,布尔代数与数字逻辑根据同构的特征可知,布尔代数与数字逻辑电路同构;因此,可以用数字逻辑电路来表电路同构;因此,可以用数字逻辑电路来表示布尔代数,也可以用布尔代数来研究数字示布尔代数,也可以用布尔代数来研究数字逻辑电路逻辑电路8/13/202219第19页,共76页。6.1 系统科学和系统科学方法系统科学和系统科学方法 系统科学的基本概念系统科学的基本概念 系统同构系统同构提到同构,还会涉及同态的概念提到同构,还会涉及同态的概念不同
16、系统间的数学同态关系具有自反性和传不同系统间的数学同态关系具有自反性和传递性,但不具有对称性递性,但不具有对称性数学同态一般用于模型的简化,不能用来划数学同态一般用于模型的简化,不能用来划分等价类分等价类8/13/202220第20页,共76页。6.1 系统科学和系统科学方法系统科学和系统科学方法 系统科学遵循的一般原则系统科学遵循的一般原则整体性原则整体性原则动态原则动态原则最优化原则最优化原则模型化原则模型化原则8/13/202221第21页,共76页。6.1 系统科学和系统科学方法系统科学和系统科学方法 系统科学遵循的一般原则系统科学遵循的一般原则 整体性原则整体性原则整体性原则是基于系
17、统要素对系统的非还原整体性原则是基于系统要素对系统的非还原性或非加和性关系,是系统方法的根据和出性或非加和性关系,是系统方法的根据和出发点。发点。这一原则要求人们在研究系统时应从整体出这一原则要求人们在研究系统时应从整体出发,立足于整体来分析其部分以及部分之间发,立足于整体来分析其部分以及部分之间的关系,进而达到对系统整体更深刻的理解的关系,进而达到对系统整体更深刻的理解8/13/202222第22页,共76页。6.1 系统科学和系统科学方法系统科学和系统科学方法 系统科学遵循的一般原则系统科学遵循的一般原则 整体性原则整体性原则系统科学把整体具有而部分不具有的东西系统科学把整体具有而部分不具
18、有的东西(即新质的涌现)称为(即新质的涌现)称为“涌现性涌现性”。从层次结构的角度看,涌现性是指那些高层从层次结构的角度看,涌现性是指那些高层次具有而还原到低层次就不复存在的属性、次具有而还原到低层次就不复存在的属性、特征、行为和功能特征、行为和功能8/13/202223第23页,共76页。6.1 系统科学和系统科学方法系统科学和系统科学方法 系统科学遵循的一般原则系统科学遵循的一般原则 整体性原则整体性原则简单地借用亚里士多德的名言简单地借用亚里士多德的名言“整体大于部整体大于部分之和分之和”来表述整体涌现性是不够的来表述整体涌现性是不够的在某些特殊情况下,当部分构成整体时,出在某些特殊情况
19、下,当部分构成整体时,出现了部分所不具有的某些性质,同时又可能现了部分所不具有的某些性质,同时又可能丧失了组成部分单独存在时所具有的某些性丧失了组成部分单独存在时所具有的某些性质。这个规律叫做质。这个规律叫做“整体不等于部分之和整体不等于部分之和”原理,也称为原理,也称为“贝塔朗菲定律贝塔朗菲定律”8/13/202224第24页,共76页。6.1 系统科学和系统科学方法系统科学和系统科学方法 系统科学遵循的一般原则系统科学遵循的一般原则 整体性原则整体性原则系统的整体功能是否大于或小于部分功能之系统的整体功能是否大于或小于部分功能之和关键取决于系统内部诸要素相互联系、相和关键取决于系统内部诸要
20、素相互联系、相互综合的方式如何互综合的方式如何8/13/202225第25页,共76页。6.1 系统科学和系统科学方法系统科学和系统科学方法 系统科学遵循的一般原则系统科学遵循的一般原则 动态原则动态原则动态原则是指系统总是动态的,永远处于运动态原则是指系统总是动态的,永远处于运动变化之中。动变化之中。在科学研究中经常采用理想的在科学研究中经常采用理想的“孤立系统孤立系统”或或“闭合系统闭合系统”的抽象,但在实际中,系统的抽象,但在实际中,系统无论是在内部各要素之间,还是在内部环境无论是在内部各要素之间,还是在内部环境和外部环境之间,都存在着物质、能量及信和外部环境之间,都存在着物质、能量及信
21、息的交换和流通。息的交换和流通。8/13/202226第26页,共76页。6.1 系统科学和系统科学方法系统科学和系统科学方法 系统科学遵循的一般原则系统科学遵循的一般原则 动态原则动态原则实际系统都是活系统,而非静态的死系统、实际系统都是活系统,而非静态的死系统、死结构死结构在研究系统时,应从动态的角度去研究系统在研究系统时,应从动态的角度去研究系统发展的各个阶段,以准确把握其发展过程及发展的各个阶段,以准确把握其发展过程及未来趋势未来趋势8/13/202227第27页,共76页。6.1 系统科学和系统科学方法系统科学和系统科学方法 系统科学遵循的一般原则系统科学遵循的一般原则 最优化原则最
22、优化原则亦称整体优化原则,就是运用各种有效方法亦称整体优化原则,就是运用各种有效方法从系统多种目标或多种可能的途径中选择最从系统多种目标或多种可能的途径中选择最优系统、最优方案、最优功能、最优运动状优系统、最优方案、最优功能、最优运动状态,达到整体优化的目的。态,达到整体优化的目的。8/13/202228第28页,共76页。6.1 系统科学和系统科学方法系统科学和系统科学方法 系统科学遵循的一般原则系统科学遵循的一般原则 模型化原则模型化原则模型化原则就是根据系统模型说明的原因和模型化原则就是根据系统模型说明的原因和真实系统提供的依据,提出以模型代替真实真实系统提供的依据,提出以模型代替真实系
23、统进行模拟实验,达到认识真实系统特性系统进行模拟实验,达到认识真实系统特性和规律性的方法和规律性的方法模型化方法是系统科学的基本方法模型化方法是系统科学的基本方法8/13/202229第29页,共76页。6.1 系统科学和系统科学方法系统科学和系统科学方法 系统科学遵循的一般原则系统科学遵循的一般原则 模型化原则模型化原则系统科学研究主要采用的是符号模型而非实系统科学研究主要采用的是符号模型而非实物模型物模型符号模型包括概念模型、逻辑模型、数学模符号模型包括概念模型、逻辑模型、数学模型,其中最重要的是数学模型型,其中最重要的是数学模型数学模型是指描述元素之间、子系统之间、数学模型是指描述元素之
24、间、子系统之间、层次之间以及系统与环境之间相互作用的数层次之间以及系统与环境之间相互作用的数学表达式,如树结构、图、代数结构等学表达式,如树结构、图、代数结构等8/13/202230第30页,共76页。6.1 系统科学和系统科学方法系统科学和系统科学方法 系统科学遵循的一般原则系统科学遵循的一般原则 模型化原则模型化原则数学模型是系统定性和定量分析的工具数学模型是系统定性和定量分析的工具研究系统的模型化方法通常是指通过建立和研究系统的模型化方法通常是指通过建立和分析系统的数学模型来解决问题的方法和程分析系统的数学模型来解决问题的方法和程序序用计算机程序定义的模型称为基于计算机的用计算机程序定义
25、的模型称为基于计算机的模型模型8/13/202231第31页,共76页。6.1 系统科学和系统科学方法系统科学和系统科学方法 系统科学遵循的一般原则系统科学遵循的一般原则 模型化原则模型化原则所有数学模型均可转化为基于计算机的模型,所有数学模型均可转化为基于计算机的模型,并通过计算来研究系统并通过计算来研究系统计算实验对一些无法用真实实验来检验的系计算实验对一些无法用真实实验来检验的系统是唯一可行的检验手段统是唯一可行的检验手段8/13/202232第32页,共76页。6.1 系统科学和系统科学方法系统科学和系统科学方法 常用的几种系统科学方法常用的几种系统科学方法系统分析法系统分析法信息方法
26、信息方法功能模拟方法功能模拟方法黑箱方法黑箱方法整体优化方法整体优化方法8/13/202233第33页,共76页。6.1 系统科学和系统科学方法系统科学和系统科学方法 常用的几种系统科学方法常用的几种系统科学方法 系统分析法系统分析法系统分析法是以运筹学和计算机为主要工具,系统分析法是以运筹学和计算机为主要工具,通过对系统各种要素、过程和关系的考察,通过对系统各种要素、过程和关系的考察,确定系统的组成、结构、功能、效用的方法确定系统的组成、结构、功能、效用的方法广泛应用于计算机硬件的研制和软件的开发、广泛应用于计算机硬件的研制和软件的开发、技术产品的革新、环境科学和生态系统的研技术产品的革新、
27、环境科学和生态系统的研究以及城市管理规划等方面究以及城市管理规划等方面8/13/202234第34页,共76页。6.1 系统科学和系统科学方法系统科学和系统科学方法 常用的几种系统科学方法常用的几种系统科学方法 信息方法信息方法信息方法是以信息论为基础,通过获取、传信息方法是以信息论为基础,通过获取、传递、加工、处理、利用信息来认识和改造对递、加工、处理、利用信息来认识和改造对象的方法。象的方法。8/13/202235第35页,共76页。6.1 系统科学和系统科学方法系统科学和系统科学方法 常用的几种系统科学方法常用的几种系统科学方法 功能模拟方法功能模拟方法功能模拟方法是以控制论为基础,根据
28、两个功能模拟方法是以控制论为基础,根据两个系统功能的相同或相似性,应用模型来模拟系统功能的相同或相似性,应用模型来模拟原型功能的方法原型功能的方法8/13/202236第36页,共76页。6.1 系统科学和系统科学方法系统科学和系统科学方法 常用的几种系统科学方法常用的几种系统科学方法 黑箱方法黑箱方法黑箱是指内部要素和结构尚不清楚的系统黑箱是指内部要素和结构尚不清楚的系统黑箱方法就是通过研究黑箱的输入和输出的黑箱方法就是通过研究黑箱的输入和输出的动态系统,确定可供选择的黑箱模型进行检动态系统,确定可供选择的黑箱模型进行检验和筛选,最后推测出系统内部结构和运动验和筛选,最后推测出系统内部结构和
29、运动规律的方法规律的方法8/13/202237第37页,共76页。6.1 系统科学和系统科学方法系统科学和系统科学方法 常用的几种系统科学方法常用的几种系统科学方法 整体优化方法整体优化方法整体最优方法是指从系统的总体出发,运用整体最优方法是指从系统的总体出发,运用自然选择或人工技术等手段,从系统多种目自然选择或人工技术等手段,从系统多种目标或多种可能的途径中选择最优系统、最优标或多种可能的途径中选择最优系统、最优方案、最优功能、最优运动状态,使系统达方案、最优功能、最优运动状态,使系统达到最优化的方法到最优化的方法8/13/202238第38页,共76页。6.1 系统科学和系统科学方法系统科
30、学和系统科学方法 实例实例1 1科学的分类科学的分类钱学森:工程技术、技术科学、基础科学和钱学森:工程技术、技术科学、基础科学和哲学哲学4 4个科学层次是相互联系、相互作用的个科学层次是相互联系、相互作用的工程技术泛指一切应用和技术领域工程技术泛指一切应用和技术领域技术科学是为工程技术提供工程理论的科学技术科学是为工程技术提供工程理论的科学基础科学是揭示客观世界运动规则和本质关基础科学是揭示客观世界运动规则和本质关系的科学系的科学哲学是对科学知识总的概括,是最高一层的哲学是对科学知识总的概括,是最高一层的科学科学8/13/202239第39页,共76页。6.1 系统科学和系统科学方法系统科学和
31、系统科学方法 实例实例2 2生命系统生命系统美国心理学家米勒把生物圈看作是一个生命美国心理学家米勒把生物圈看作是一个生命系统,认为一切活着的具体系统都是系统,认为一切活着的具体系统都是“生命生命系统系统”,并将生命系统划分为,并将生命系统划分为7 7个层次,即个层次,即细胞、器官、生物体、群体、组织、社会和细胞、器官、生物体、群体、组织、社会和超国家系统,以及超国家系统,以及1919个关键的子系统个关键的子系统2020世纪世纪5050年代,米勒创立了一般生命系统理年代,米勒创立了一般生命系统理论,该理论对解决生命世界的统一性问题有论,该理论对解决生命世界的统一性问题有十分重要的意义十分重要的意
32、义8/13/202240第40页,共76页。6.1 系统科学和系统科学方法系统科学和系统科学方法 实例实例3 3化学元素周期表化学元素周期表俄国化学家门捷列夫首创化学元素周期表俄国化学家门捷列夫首创化学元素周期表元素属性和原子量的关系元素属性和原子量的关系揭示了化学元揭示了化学元素性质呈周期性变化的内在规律,并指明了素性质呈周期性变化的内在规律,并指明了发现新元素的方向发现新元素的方向化学元素周期表的建立使化学科学走上了系化学元素周期表的建立使化学科学走上了系统化的道路,成为化学发展的主要基石之一统化的道路,成为化学发展的主要基石之一8/13/202241第41页,共76页。6.1 系统科学和
33、系统科学方法系统科学和系统科学方法 实例实例4 4整数整数当把整数看作是一个系统时,根据等价关系,当把整数看作是一个系统时,根据等价关系,可以将整数划分为若干互不相交的子集可以将整数划分为若干互不相交的子集奇数和偶数奇数和偶数同余关系同余关系8/13/202242第42页,共76页。6.1 系统科学和系统科学方法系统科学和系统科学方法 实例实例4 4整数整数整数的划分体现出了集合论中等价关系(满整数的划分体现出了集合论中等价关系(满足自反性、对称性和传递性的关系)的一个足自反性、对称性和传递性的关系)的一个重要性质,即将重要性质,即将“整数整数”推广为更一般性的推广为更一般性的“元素元素”时,
34、只要元素之间的关系为等价关时,只要元素之间的关系为等价关系,则可将这些元素组成的集合划分为若干系,则可将这些元素组成的集合划分为若干互不相交的子集互不相交的子集等价关系的这种性质具有重要的理论和应用等价关系的这种性质具有重要的理论和应用价值价值8/13/202243第43页,共76页。6.1 系统科学和系统科学方法系统科学和系统科学方法 实例实例5 5计算机网络计算机网络计算机网络是计算机系统中一个有代表性的计算机网络是计算机系统中一个有代表性的复杂系统,需要高度协调的工作才能保证系复杂系统,需要高度协调的工作才能保证系统的正常运行;统的正常运行;为此,必须精确定义网络中数据交换的所有为此,必
35、须精确定义网络中数据交换的所有规则(网络协议),然而由这些规则组成的规则(网络协议),然而由这些规则组成的集合取相当庞大和复杂集合取相当庞大和复杂8/13/202244第44页,共76页。6.1 系统科学和系统科学方法系统科学和系统科学方法 实例实例5 5计算机网络计算机网络为了解决复杂网络协议的设计问题,国际标为了解决复杂网络协议的设计问题,国际标准化组织(准化组织(ISOISO)采用系统科学的思想,定)采用系统科学的思想,定义了现在被广泛使用的开放系统互连模型义了现在被广泛使用的开放系统互连模型(OSIOSI),该模型将整个网络协议划分为),该模型将整个网络协议划分为7 7个个层次,即物理
36、层、数据链路层、网络层、运层次,即物理层、数据链路层、网络层、运输层、会话层、表示层和应用层,从而有效输层、会话层、表示层和应用层,从而有效地降低了网络协议的复杂性,促进了网络技地降低了网络协议的复杂性,促进了网络技术的发展术的发展8/13/202245第45页,共76页。6.2 软件开发中使用系统科学方法的原因软件开发中使用系统科学方法的原因 系统科学方法针对的是复杂性问题,而系统科学方法针对的是复杂性问题,而复杂性又是相对于人的能力而言的复杂性又是相对于人的能力而言的人固有能力的局限性以及使用工具后产生的人固有能力的局限性以及使用工具后产生的力量力量复杂性复杂性软件系统的复杂性软件系统的复
37、杂性软件开发的系统化方法需要遵循的基本原则软件开发的系统化方法需要遵循的基本原则8/13/202246第46页,共76页。6.2 软件开发中使用系统科学方法的原因软件开发中使用系统科学方法的原因 人固有能力的局限性以及使用工具后产人固有能力的局限性以及使用工具后产生的力量生的力量劳动:体力劳动、脑力劳动劳动:体力劳动、脑力劳动能力:人体活动产生的力量,即体力;使用能力:人体活动产生的力量,即体力;使用大脑产生的记忆、理解、想象等的能力,即大脑产生的记忆、理解、想象等的能力,即脑力脑力最能代表人的体力极限的世界纪录(如跳高、最能代表人的体力极限的世界纪录(如跳高、举重等),可以做出判断,人的体力
38、相当有举重等),可以做出判断,人的体力相当有限限8/13/202247第47页,共76页。6.2 软件开发中使用系统科学方法的原因软件开发中使用系统科学方法的原因 人固有能力的局限性以及使用工具后产人固有能力的局限性以及使用工具后产生的力量生的力量人的脑力也相当有限,因涉及记忆、理解、人的脑力也相当有限,因涉及记忆、理解、想象甚至与智力有关的问题,人们很难接受想象甚至与智力有关的问题,人们很难接受这个事实;要说人的能力处于同一个数量级这个事实;要说人的能力处于同一个数量级更是让人难以接受更是让人难以接受8/13/202248第48页,共76页。6.2 软件开发中使用系统科学方法的原因软件开发中
39、使用系统科学方法的原因 人固有能力的局限性以及使用工具后产人固有能力的局限性以及使用工具后产生的力量生的力量既然人的体力和脑力极其有限,人固有的体既然人的体力和脑力极其有限,人固有的体力和脑力又处于同一个数量级上,那又如何力和脑力又处于同一个数量级上,那又如何解释人类在认知和改造客观世界中所产生的解释人类在认知和改造客观世界中所产生的巨大力量?巨大力量?答案在于,依靠工具,人既能够创造工具又答案在于,依靠工具,人既能够创造工具又能够使用工具能够使用工具8/13/202249第49页,共76页。6.2 软件开发中使用系统科学方法的原因软件开发中使用系统科学方法的原因 复杂性复杂性根据信息论的观点
40、,复杂度可以定义为系统根据信息论的观点,复杂度可以定义为系统表明自身方式数目的对数,或是系统可能状表明自身方式数目的对数,或是系统可能状态数目的对数:态数目的对数:K=logNK=logN,式中,式中K K是复杂度,是复杂度,N N是不同的可能状态数是不同的可能状态数一个系统越复杂,它所携带的信息越多一个系统越复杂,它所携带的信息越多两个系统各自有两个系统各自有M M个和个和N N个可能状态,那么,个可能状态,那么,组合系统的状态数目是二者之积组合系统的状态数目是二者之积M M*N N,其复,其复杂度为杂度为K=logMK=logM*N N8/13/202250第50页,共76页。6.2 软件
41、开发中使用系统科学方法的原因软件开发中使用系统科学方法的原因 复杂性复杂性从可操作性的角度来看,复杂性可以定义为:从可操作性的角度来看,复杂性可以定义为:寻找最小的程序或指令集来描述给定的寻找最小的程序或指令集来描述给定的“结结构构”,即一个数字序列,即一个数字序列若用比特计算的话,这个程序的大小相对于若用比特计算的话,这个程序的大小相对于数字序列的大小就是其复杂性的量度数字序列的大小就是其复杂性的量度8/13/202251第51页,共76页。6.2 软件开发中使用系统科学方法的原因软件开发中使用系统科学方法的原因 复杂性复杂性序列:序列:aaaaaaaaaaaaaaaaaaaaaaaa序列:
42、序列:aabaabaabaabaabaabaabaab序列:序列:aabaababbaabaababbaabaababbaabaababb序列:序列:aababbababbbabaaababbabaababbababbbabaaababbab这个例子无结构,若想编程,则必须将字符这个例子无结构,若想编程,则必须将字符串全部列出串全部列出8/13/202252第52页,共76页。6.2 软件开发中使用系统科学方法的原因软件开发中使用系统科学方法的原因 复杂性复杂性结论:一旦一个程序的大小与试图描述的系结论:一旦一个程序的大小与试图描述的系统相提并论时,则无法编程统相提并论时,则无法编程或者说,当
43、系统的结构不能被描述,或描述或者说,当系统的结构不能被描述,或描述它的最小算法与系统自身具有相同的信息比它的最小算法与系统自身具有相同的信息比特数时,则称该系统为根本复杂系统特数时,则称该系统为根本复杂系统在达到根本复杂之前,人们仍可以编出能够在达到根本复杂之前,人们仍可以编出能够执行的程序,否则,做不到执行的程序,否则,做不到8/13/202253第53页,共76页。6.2 软件开发中使用系统科学方法的原因软件开发中使用系统科学方法的原因 人固有能力的局限性以及使用工具后产人固有能力的局限性以及使用工具后产生的力量生的力量 复杂性复杂性 软件系统的复杂性软件系统的复杂性 软件开发的系统化方法
44、需要遵循的基本软件开发的系统化方法需要遵循的基本原则原则8/13/202254第54页,共76页。6.2 软件开发中使用系统科学方法的原因软件开发中使用系统科学方法的原因 软件系统的复杂性软件系统的复杂性 阿基米德杠杆原理:阿基米德杠杆原理:给我一个支点,我就能撬起地球给我一个支点,我就能撬起地球 牛顿是一个天才,但他的才能并不在于牛顿是一个天才,但他的才能并不在于他的大脑计算能力特别突出,而在于懂他的大脑计算能力特别突出,而在于懂得如何对问题做合理的简化和理想化,得如何对问题做合理的简化和理想化,从而把复杂的问题转化为普通人的大脑从而把复杂的问题转化为普通人的大脑可以处理的、相对简单的问题可
45、以处理的、相对简单的问题8/13/202255第55页,共76页。6.2 软件开发中使用系统科学方法的原因软件开发中使用系统科学方法的原因 软件系统的复杂性软件系统的复杂性 相对于物理学科,计算学科却没有那么相对于物理学科,计算学科却没有那么幸运,计算机的软、硬件系统存在大量幸运,计算机的软、硬件系统存在大量不能化简的状态,这就使得构思、描述不能化简的状态,这就使得构思、描述和测试计算机系统不能依靠像物理学那和测试计算机系统不能依靠像物理学那样简单的定律来完成,而必须另外寻找样简单的定律来完成,而必须另外寻找能够控制和降低复杂性的方法能够控制和降低复杂性的方法8/13/202256第56页,共
46、76页。6.2 软件开发中使用系统科学方法的原因软件开发中使用系统科学方法的原因 软件系统的复杂性软件系统的复杂性 软件系统的状态比硬件系统的状态往往软件系统的状态比硬件系统的状态往往要多若干数量级要多若干数量级 由于软件系统中的实体扩展不像硬件系由于软件系统中的实体扩展不像硬件系统那样,可以由相同元素重复添加,从统那样,可以由相同元素重复添加,从而使计算机中软件的复杂度呈非线性增而使计算机中软件的复杂度呈非线性增长长 找到控制和降低软件复杂性的方法也就找到控制和降低软件复杂性的方法也就是找到了控制和降低计算机系统复杂性是找到了控制和降低计算机系统复杂性最根本的方法最根本的方法8/13/202
47、257第57页,共76页。6.2 软件开发中使用系统科学方法的原因软件开发中使用系统科学方法的原因 软件系统的复杂性软件系统的复杂性复杂度复杂度 没有两个软件是相同的(至少在语句级别上),若没有两个软件是相同的(至少在语句级别上),若有相同的,会把它们合并成一个可供调用的子函数,有相同的,会把它们合并成一个可供调用的子函数,因此,认为复杂是软件的根本属性因此,认为复杂是软件的根本属性 构成软件复杂度的实体及其关系的描述不仅引发了大构成软件复杂度的实体及其关系的描述不仅引发了大量学习和理解上的负担,而且随着软件规模的增长,量学习和理解上的负担,而且随着软件规模的增长,使得团队成员之间的沟通以及管
48、理变得越来越困难,使得团队成员之间的沟通以及管理变得越来越困难,从而使软件开发逐渐地演变成一场灾难从而使软件开发逐渐地演变成一场灾难 软件危机软件危机8/13/202258第58页,共76页。6.2 软件开发中使用系统科学方法的原因软件开发中使用系统科学方法的原因 软件系统的复杂性软件系统的复杂性一致性一致性 大型软件开发中,为保持各子系统之间大型软件开发中,为保持各子系统之间的一致性,软件必须随接口的不同、时的一致性,软件必须随接口的不同、时间的推移而变化间的推移而变化 这些变化不能被抽象掉,因此,又增加这些变化不能被抽象掉,因此,又增加了软件的复杂性了软件的复杂性8/13/202259第5
49、9页,共76页。6.2 软件开发中使用系统科学方法的原因软件开发中使用系统科学方法的原因 软件系统的复杂性软件系统的复杂性可变性可变性 软件实体经常会面对持续的变更压力软件实体经常会面对持续的变更压力 因为它是一个纯粹思维活动的产物,可因为它是一个纯粹思维活动的产物,可以无限扩展以无限扩展8/13/202260第60页,共76页。6.2 软件开发中使用系统科学方法的原因软件开发中使用系统科学方法的原因 软件系统的复杂性软件系统的复杂性不可见性不可见性 软件是看不见的,当利用图示方法来描软件是看不见的,当利用图示方法来描述软件结构时,也无法充分表现其结构,述软件结构时,也无法充分表现其结构,从而
50、使软件的复杂度大大超过具有电路从而使软件的复杂度大大超过具有电路图表示的计算机硬件的复杂度,使得人图表示的计算机硬件的复杂度,使得人们之间的沟通面临极大的困难们之间的沟通面临极大的困难8/13/202261第61页,共76页。6.2 软件开发中使用系统科学方法的原因软件开发中使用系统科学方法的原因 软件系统开发的难点:概念结构的规格、软件系统开发的难点:概念结构的规格、设计和测试设计和测试 将重点尽可能放在开发的前端,而不是将重点尽可能放在开发的前端,而不是编码阶段编码阶段8/13/202262第62页,共76页。6.2 软件开发中使用系统科学方法的原因软件开发中使用系统科学方法的原因 在软件