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