第6章信息系统的总体设计精选文档.ppt
《第6章信息系统的总体设计精选文档.ppt》由会员分享,可在线阅读,更多相关《第6章信息系统的总体设计精选文档.ppt(64页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第6章信息系统的总章信息系统的总体设计体设计本讲稿第一页,共六十四页教学内容教学内容 系统设计的基本原理包括模块化设计原理、抽象系统设计的基本原理包括模块化设计原理、抽象原理、信息隐蔽和局部化原理、逐步求精原理、模块原理、信息隐蔽和局部化原理、逐步求精原理、模块独立性原理;系统设计的优化规则;总体设计的目的、独立性原理;系统设计的优化规则;总体设计的目的、任务、文档、评审以及图形工具;面向数据流的总体任务、文档、评审以及图形工具;面向数据流的总体设计方法设计方法结构化设计方法的过程。结构化设计方法的过程。教学要求教学要求 1 1熟练掌握:模块独立性原理的衡量标准:内聚熟练掌握:模块独立性原理
2、的衡量标准:内聚和耦合;系统设计的优化规则;结构化设计方法中的和耦合;系统设计的优化规则;结构化设计方法中的变换分析过程。变换分析过程。2 2一般掌握:模块化设计原理、逐步求精原理;一般掌握:模块化设计原理、逐步求精原理;总体设计的目的、任务以及图形工具;结构化设计方总体设计的目的、任务以及图形工具;结构化设计方法中的事务分析及混合结构分析过程。法中的事务分析及混合结构分析过程。3 3了解:抽象原理、信息隐蔽和局部化原理;总了解:抽象原理、信息隐蔽和局部化原理;总体设计的文档和评审。体设计的文档和评审。2本讲稿第二页,共六十四页 6.1 系统设计的基本原理和优化规则系统设计的基本原理和优化规则
3、 6.1.1 系统设计的基本原理系统设计的基本原理 在系统设计过程中应该遵循一些基本原理,包括:在系统设计过程中应该遵循一些基本原理,包括:模块化设计原理、抽象原理、模块化设计原理、抽象原理、信息隐蔽和局部化原理信息隐蔽和局部化原理、逐步求精原理、模块独立性原理等。逐步求精原理、模块独立性原理等。1模块化设计原理模块化设计原理 所所谓谓模模块块是是指指具具有有相相对对独独立立性性的的,由由数数据据说说明明、执执行行语语句句等等程程序序对对象象构构成成的的集集合合。程程序序中中的的每每个个模模块块都需要单独命名,通过名字可实现对指定模块的访问。都需要单独命名,通过名字可实现对指定模块的访问。模块
4、化是指将整个程序划分为若干个模块,每个模块化是指将整个程序划分为若干个模块,每个模块用于实现一个特定的功能。划分模块对于解决大模块用于实现一个特定的功能。划分模块对于解决大型复杂的问题是非常必要的,可以大大降低解决问题型复杂的问题是非常必要的,可以大大降低解决问题的难度。的难度。3本讲稿第三页,共六十四页 为为了了说说明明这这一一点点,可可对对问问题题复复杂杂性性、开开发发工工作作量量和和模模块块数数之之间间的的关关系系进进行行以以下下推推理理。首首先先,设设C(x)为为问问题题x所所对对应应的的复复杂杂度度函函数数,E(x)为为解解决决问问题题x所所需需要要的的工工作作量量函函数数。对对于两
5、个问题于两个问题P1和和P2,如果:,如果:C(P1)C(P2)即问题即问题P1的复杂度比的复杂度比P2高,则显然有:高,则显然有:E(P1)E(P2)即解决问题即解决问题P1比比P2所需的工作量大。所需的工作量大。在人们解决问题的过程中,发现存在有另一个有趣的规律:在人们解决问题的过程中,发现存在有另一个有趣的规律:C(P1+P2)C(P1)+C(P2)即即解解决决由由多多个个问问题题复复合合而而成成的的大大问问题题的的复复杂杂度度大大于于单单独独解解决决各各个个问问题题的的复复杂杂度度之之和和。也也就就是是说说,对对于于一一个个复复杂杂问问题题,将将其其分分解解成成多多个小问题来分别解决比
6、较容易。由此可以推出:个小问题来分别解决比较容易。由此可以推出:E(P1+P2)E(P1)+E(P2)即即将将复复杂杂问问题题分分解解成成若若干干个个小小问问题题,各各个个击击破破,所需要的工作量小于直接解决复杂问题所需的工作量。所需要的工作量小于直接解决复杂问题所需的工作量。根据上面的推理,可以得到这样一个结论:模块化可以降低解决问题的复杂度,根据上面的推理,可以得到这样一个结论:模块化可以降低解决问题的复杂度,从而降低系统开发的工作量。从而降低系统开发的工作量。4本讲稿第四页,共六十四页但但是是不不是是模模块块划划分分得得越越多多越越好好呢呢?虽虽然然增增加加程程序序中中的的模模块块数数可
7、可以以降降低低开开发发每每个个模模块块的的工工作作量量,但但同同时时却却增增加加了了设设计计模模块块接接口口的的工工作作量量。如如图图6-1所所示示表表达达了了模模块块数数与与系系统统开开发发成成本本之之间间的的关关系系,可可以以看看出出当当划划分分的的模模块块数数处处于于最最小小成成本本区区时时,开开发发系系统统的的总总成成本本最最低低。虽虽然然目目前前还还不不能能精精确确地地算算出出M M的的数数值值,但但是是在在考考虑虑程程序序模模块块化化的的时时候候,总总成成本本曲曲线线确确实实是是有有用用的的指指南南。下下面面即即将将介介绍绍的的模模块独立性原理和启发规则,可以在一定程度上帮助决定合
8、适的模块数目。块独立性原理和启发规则,可以在一定程度上帮助决定合适的模块数目。图图6-1模块数与系统开发成本模块数与系统开发成本 5本讲稿第五页,共六十四页 采用模块化设计原理可以带来以下好处。采用模块化设计原理可以带来以下好处。(1)模模块块化化使使系系统统结结构构清清晰晰,容容易易设设计计也也容容易易阅阅读读和理解。和理解。(2)程程序序错错误误通通常常局局限限在在有有关关的的模模块块及及它它们们之之间间的的接接口口中中,所所以以模模块块化化能能使使系系统统容容易易测测试试和和调调试试,从从而而有助于提高系统的可靠性。有助于提高系统的可靠性。(3)系系统统的的变变动动往往往往只只涉涉及及少
9、少数数几几个个模模块块,所所以以模模块化还能够提高系统的可修改性。块化还能够提高系统的可修改性。(4)模模块块化化使使得得一一个个复复杂杂的的大大型型程程序序可可以以由由许许多多程程序序员员分分工工编编写写,并并且且可可以以进进一一步步分分配配技技术术熟熟练练的的程程序序员编写困难的模块,有助于系统开发工程的组织管理。员编写困难的模块,有助于系统开发工程的组织管理。(5)模块化还有利于提高程序代码的可重用性。)模块化还有利于提高程序代码的可重用性。6本讲稿第六页,共六十四页 2抽象原理抽象原理抽象是人类在解决复杂问题时经常采用的一种思维抽象是人类在解决复杂问题时经常采用的一种思维方式,它是指将
10、现实世界中具有共性的一类事物的相似方式,它是指将现实世界中具有共性的一类事物的相似的、本质的方面集中概括起来,而暂时忽略它们之间的的、本质的方面集中概括起来,而暂时忽略它们之间的细节差异。在系统开发中运用抽象的概念,可以将复杂细节差异。在系统开发中运用抽象的概念,可以将复杂问题的求解过程分层,在不同的抽象层上实现难度的分问题的求解过程分层,在不同的抽象层上实现难度的分解。在抽象级别较高的层次上,可以将琐碎的细节信息解。在抽象级别较高的层次上,可以将琐碎的细节信息暂时隐藏起来,以利于解决系统中的全局性的问题。暂时隐藏起来,以利于解决系统中的全局性的问题。结构化程序设计中自顶向下、逐步求精的模块划
11、分结构化程序设计中自顶向下、逐步求精的模块划分思想正是人类思维中运用抽象方法解决复杂问题的体现。思想正是人类思维中运用抽象方法解决复杂问题的体现。系统结构中顶层的模块抽象级别最高,控制并协调系统系统结构中顶层的模块抽象级别最高,控制并协调系统的主要功能且影响全局;系统结构中位于底层的模块抽的主要功能且影响全局;系统结构中位于底层的模块抽象级别最低,具体实现数据的处理过程。采用自顶向下、象级别最低,具体实现数据的处理过程。采用自顶向下、由抽象到具体的思维方式,不但降低了系统开发中每个由抽象到具体的思维方式,不但降低了系统开发中每个阶段的工作难度,简化了系统的设计和实现过程,还有阶段的工作难度,简
12、化了系统的设计和实现过程,还有助于提高系统的可读性、可测试性和可维护性。此外,助于提高系统的可读性、可测试性和可维护性。此外,在程序设计中运用抽象的方法还能够提高代码的可重用在程序设计中运用抽象的方法还能够提高代码的可重用性。性。7本讲稿第七页,共六十四页 3信息隐蔽和局部化原理信息隐蔽和局部化原理应应用用模模块块化化设设计计原原理理时时,自自然然会会产产生生的的一一个个问问题题是是:“为为了了得得到到最最好好的的一一组组模模块块,应应该该怎怎样样分分解解系系统统呢呢?”信信息息隐隐蔽蔽原原理理指指出出:应应该该这这样样设设计计和和确确定定模模块块,使使得得一一个个模模块块内内包包含含的的信信
13、息息(过过程程和和数数据据)对对于于不不需需要要这这些些信信息息的的模模块块来来说说,是是不不能能访访问问的的。这这一一原原理理是是由由D.L.Parnas在在1972年年提提出出的的,也也就就是是说说有有效效的的模模块块化化可可以以通通过过一一组组独独立立的的模模块块来来实实现现,这这些些独独立立的的模模块块彼彼此此间间仅仅仅仅交交换换那那些些为为了了完完成成系系统统功功能能而而必必须须交交换换的的信信息息。这这一一指指导导思思想想的的目目的的是是为为了了提提高高模模块块的的独独立立性性,即即当当修修改改或或维维护护模模块块时时减减少少把把一一个个模模块块的的错错误误扩扩散散到到其其他他模模
14、块块中中去去的的机机会会。因因此此,信信息息隐隐蔽蔽简简化化了了系系统统结结构构的的复复杂杂度度,提提供供了了程程序序模块设计标准化的可能性。模块设计标准化的可能性。局部化的概念和信息隐蔽概念密切相关。局部化是局部化的概念和信息隐蔽概念密切相关。局部化是指把一些关系密切的系统元素物理地放的比较近,严格指把一些关系密切的系统元素物理地放的比较近,严格控制数据对象可以访问的范围。在模块中使用局部数据控制数据对象可以访问的范围。在模块中使用局部数据元素就是局部化的一个例子。显然,局部化有助于实现元素就是局部化的一个例子。显然,局部化有助于实现信息隐蔽。信息隐蔽。8本讲稿第八页,共六十四页 4逐步求精
15、原理逐步求精原理 逐逐步步求求精精是是人人类类解解决决复复杂杂问问题题时时采采用用的的基基本本方方法法,也也是是许许多多软软件件工工程程技技术术(例例如如,规规格格说说明明技技术术,设设计计和和实实现现技技术术)的的基基础础。可可以以把把逐逐步步求求精精定定义义为为:“为为了了能能集集中中精精力力解解决决主主要要问问题题而而尽尽量量推推迟迟对对问问题题细细节节的的考考虑虑。”逐步求精之所以如此重要,是因为人类的认知过程逐步求精之所以如此重要,是因为人类的认知过程遵守遵守Miller法则:一个人在任何时候都只能把注意力集中法则:一个人在任何时候都只能把注意力集中在(在(72)个知识块上。但是,在
16、开发系统的过程中,软)个知识块上。但是,在开发系统的过程中,软件工程师在一段时间内需要考虑的知识块数远远多于件工程师在一段时间内需要考虑的知识块数远远多于7。例如,一个程序通常不止使用例如,一个程序通常不止使用7个数据,一个用户也往往个数据,一个用户也往往有不止有不止7个方面的需求。逐步求精方法的强大作用就在于,个方面的需求。逐步求精方法的强大作用就在于,它能帮助软件工程师把精力集中在与当前开发阶段最相它能帮助软件工程师把精力集中在与当前开发阶段最相关的那些方面上,而忽略那些对整体解决方案来说虽然关的那些方面上,而忽略那些对整体解决方案来说虽然是必要的,然而目前还不需要考虑的细节,这些细节将是
17、必要的,然而目前还不需要考虑的细节,这些细节将留到以后再考虑。留到以后再考虑。Miller法则是人类智力的基本局限,我法则是人类智力的基本局限,我们不可能战胜自己的自然本性,只能接受这个事实,承们不可能战胜自己的自然本性,只能接受这个事实,承认自身的局限性,并在这个前提下尽我们的最大努力工认自身的局限性,并在这个前提下尽我们的最大努力工作。作。9本讲稿第九页,共六十四页5模块独立性原理模块独立性原理模模块块独独立立性性概概括括了了把把系系统统划划分分为为模模块块时时要要遵遵守守的的准准则则,也也是是判判断断模模块块构构造造是是不不是是合合理理的的标标准准。模模块块独独立立性性是是指指每每个个模
18、模块块只只完完成成系系统统要要求求的的独独立立的的子子功功能能,并且与其他模块的联系最少且接口简单。并且与其他模块的联系最少且接口简单。模模块块独独立立性性可可以以从从两两个个方方面面来来衡衡量量:模模块块本本身身的的内内聚聚和和模模块块之之间间的的耦耦合合。前前者者反反映映的的是是模模块块内内部部各各个个成成分分之之间间的的联联系系,所所以以也也称称块块内内联联系系;后后者者反反映映的的是是一一个个模模块块与与其其他他模模块块之之间间的的联联系系,所所以以又又称称块块间间联联系系。模模块块的的独独立立性性越越高高,则则块块内内联联系系越越强强,块块间间联联系系越越弱弱,因此必须尽可能得设计出
19、高内聚低耦合的模块。因此必须尽可能得设计出高内聚低耦合的模块。10本讲稿第十页,共六十四页1)内聚)内聚模模块块的的内内聚聚是是指指模模块块内内部部各各成成分分间间联联系系的的紧紧密密程程度度。一一个个模模块块内内部部各各成成分分之之间间的的联联系系越越紧紧密密,该该模模块块独独立立性性越越高高。按按照由弱到强的顺序,把模块的内聚分为照由弱到强的顺序,把模块的内聚分为7种类型,如图种类型,如图6-2所示。所示。图图6-2内聚强度的划分内聚强度的划分11本讲稿第十一页,共六十四页 (1 1)偶然性偶然性内聚内聚 当当几几个个模模块块内内正正好好有有一一段段代代码码是是相相同同的的,将将它它们们抽
20、抽取取出出来来形形成成单单独独的的模模块块,即即偶偶然然性性内内聚聚模模块块。例例如如几几个个模模块块都都要要执执行行“读读A A”的的操操作作,为为避避免免重重复复书书写写而而将将这这些些操操作作汇汇成成一一个个模模块块。偶偶然然性性内内聚聚是是内内聚聚程程度度最最低低的的一一种种,具具有有偶偶然然性性内内聚聚的的模模块块独独立立性性差差,不不容容易易理理解解和和修修改改,会会给给系系统统开开发发带带来来很很大大的的困困扰扰,出出错错的的机机率率要要比比其其他他类类型型的的模模块块大大得得多多,因因此此在系统设计时应尽量避免。在系统设计时应尽量避免。12本讲稿第十二页,共六十四页(2)逻辑性
21、内聚)逻辑性内聚逻逻辑辑性性内内聚聚指指模模块块内内执执行行几几个个逻逻辑辑上上相相似似的的功功能能,通通过过参参数数确确定定该该模模块块完完成成哪哪一一个个功功能能。如如将将产产生生各各种种类类型型错错误误的的信信息息输输出出放放在在一一个个模模块块,或或将将从从不不同同设设备备上上的的输输入入放放在在一一个个模模块块,形形成成一一种种单单入入口口多多功功能能模模块块。这这种种模模块块内内聚聚程程度度有有所所提提高高,各各部部分分之之间间在在功功能能上上有有相相互互关关系系,但但不不易易修修改改,因因为为当当某某个个调调用用模模块块要要求求修修改改此此模模块块公公用用代代码码时时,而而另另一
22、一些些调调用用模模块块又又不不要要求求修修改改。另另外外,调调用用时时需需要要进进行行控控制制参参数数的的传传递递,造造成成模模块块间间的的控控制制耦耦合合,而而且且在在调调用用此此模块时,不用的部分也占据了主存,从而降低了系统效率。模块时,不用的部分也占据了主存,从而降低了系统效率。13本讲稿第十三页,共六十四页(3)时间性内聚)时间性内聚若若一一个个模模块块包包含含了了需需要要在在同同一一时时间间段段中中执执行行的的多多个个任任务务,则则称称该该模模块块的的内内聚聚为为时时间间性性内内聚聚。例例如如,将将多多个个变变量量的的初初始始化化放放在在同同一一个个模模块块中中实实现现,或或将将需需
23、要要同同时时使使用用的的多多个个库库文文件件的的打打开开操操作作放放在在同同一一个个模模块块中中,都都会会产产生生时时间间性性内内聚聚的的模模块块。由由于于时时间间性性内内聚聚模模块块中中的的各各个个部部分分在在时时间间上上的的联联系系,其其内内聚聚程程度度比比逻逻辑辑性性内内聚聚高高一一些些。但但这这样样的的模模块块往往往往会会和和其其他他相相关关模块有着紧密的联系,因而会造成耦合性的增加。模块有着紧密的联系,因而会造成耦合性的增加。(4)过程性内聚)过程性内聚当当一一个个模模块块中中包包含含的的一一组组任任务务必必须须按按照照某某一一特特定定的的次次序序执执行行时时,就就称称为为过过程程性
24、性内内聚聚模模块块。如如用用高高斯斯消消去去法法解解线线形形方方程程组组的的流流程程为为:建建立立方方程程组组系系数数矩矩阵阵高高斯斯消消去去回回代代,将将其纳入一个模块中就形成了一个过程性内聚模块。其纳入一个模块中就形成了一个过程性内聚模块。14本讲稿第十四页,共六十四页(5)通信性内聚)通信性内聚如果一个模块内各功能部分都使用了相同的输入数据,如果一个模块内各功能部分都使用了相同的输入数据,或产生了相同的输出数据,则称之为通信性内聚模块。如或产生了相同的输出数据,则称之为通信性内聚模块。如一个模块完成一个模块完成“建表建表”、“查表查表”两部分功能,都使用同两部分功能,都使用同一数据结构一
25、数据结构名字表;又如一个模块完成生产日报表、名字表;又如一个模块完成生产日报表、周报表和月报表,都使用同一数据周报表和月报表,都使用同一数据日产量。通信性内日产量。通信性内聚的模块各部分都紧密相关于同一数据聚的模块各部分都紧密相关于同一数据(或者数据结构或者数据结构),所以内聚性要高于前几种类型。同时,如果把某一数据结所以内聚性要高于前几种类型。同时,如果把某一数据结构、文件及设备等操作都放在一个模块内,可达到信息隐构、文件及设备等操作都放在一个模块内,可达到信息隐藏的作用。藏的作用。15本讲稿第十五页,共六十四页 (6 6)顺序性内聚顺序性内聚若一个模块中的各个部分都与同一个功能密切相若一个
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 信息系统 总体 设计 精选 文档
限制150内