《第6章信息系统的总体设计课件》由会员分享,可在线阅读,更多相关《第6章信息系统的总体设计课件(65页珍藏版)》请在金锄头文库上搜索。
1、信息系统分析与设计教学内容教学内容 系统设计的基本原理包括模块化设计原理、抽象系统设计的基本原理包括模块化设计原理、抽象原理、信息隐蔽和局部化原理、逐步求精原理、模块原理、信息隐蔽和局部化原理、逐步求精原理、模块独立性原理;系统设计的优化规则;总体设计的目的、独立性原理;系统设计的优化规则;总体设计的目的、任务、文档、评审以及图形工具;面向数据流的总体任务、文档、评审以及图形工具;面向数据流的总体设计方法设计方法结构化设计方法的过程。结构化设计方法的过程。教学要求教学要求 1 1熟练掌握:模块独立性原理的衡量标准:内聚熟练掌握:模块独立性原理的衡量标准:内聚和耦合;系统设计的优化规则;结构化设
2、计方法中的和耦合;系统设计的优化规则;结构化设计方法中的变换分析过程。变换分析过程。 2 2一般掌握:模块化设计原理、逐步求精原理;一般掌握:模块化设计原理、逐步求精原理;总体设计的目的、任务以及图形工具;结构化设计方总体设计的目的、任务以及图形工具;结构化设计方法中的事务分析及混合结构分析过程。法中的事务分析及混合结构分析过程。 3 3了解:抽象原理、信息隐蔽和局部化原理;总了解:抽象原理、信息隐蔽和局部化原理;总体设计的文档和评审。体设计的文档和评审。1信息系统分析与设计 6.1 系统设计的基本原理和优化规则系统设计的基本原理和优化规则 6.1.1 系统设计的基本原理系统设计的基本原理 在
3、系统设计过程中应该遵循一些基本原理,包括:在系统设计过程中应该遵循一些基本原理,包括:模块化设计原理、抽象原理、模块化设计原理、抽象原理、信息隐蔽和局部化原理信息隐蔽和局部化原理、逐步求精原理、模块独立性原理等。逐步求精原理、模块独立性原理等。 1模块化设计原理模块化设计原理 所所谓谓模模块块是是指指具具有有相相对对独独立立性性的的,由由数数据据说说明明、执执行行语语句句等等程程序序对对象象构构成成的的集集合合。程程序序中中的的每每个个模模块块都需要单独命名,通过名字可实现对指定模块的访问。都需要单独命名,通过名字可实现对指定模块的访问。模块化是指将整个程序划分为若干个模块,每个模块化是指将整
4、个程序划分为若干个模块,每个模块用于实现一个特定的功能。划分模块对于解决大模块用于实现一个特定的功能。划分模块对于解决大型复杂的问题是非常必要的,可以大大降低解决问题型复杂的问题是非常必要的,可以大大降低解决问题的难度。的难度。 2信息系统分析与设计 为为了了说说明明这这一一点点,可可对对问问题题复复杂杂性性、开开发发工工作作量量和和模模块块数数之之间间的的关关系系进进行行以以下下推推理理。首首先先,设设C(x)为为问问题题x所所对对应应的的复复杂杂度度函函数数,E(x)为为解解决决问问题题x所需要的工作量函数。对于两个问题所需要的工作量函数。对于两个问题P1和和P2,如果:如果: C(P1)
5、 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) 即即将将复复杂杂问问题题分分解解成成若若干干个个小小问问题题,各各个个击破,所需要的工作量小于直接解决复杂问题所需的工作量。击破,所需要的工作量小于直接解决复杂问题所需的工作量。根据上面的推理,可以得到这样一个结论:模块化可以降低解决问题根据上面的推理,可以得到这样一个结论:模块化可以降低解决问题的复杂度,从而降低系统开发的工作量。的复杂度,从而降低系统开发的工作量。 3信息系统分析与设计但但是是不不是是模模块块划划分分得得越越多多越越好好呢呢?虽虽然然增增加加程程序序中中的的模模块块数数可可以以降降低低开开发发每每个个模
7、模块块的的工工作作量量,但但同同时时却却增增加加了了设设计计模模块块接接口口的的工工作作量量。如如图图6-1所所示示表表达达了了模模块块数数与与系系统统开开发发成成本本之之间间的的关关系系,可可以以看看出出当当划划分分的的模模块块数数处处于于最最小小成成本本区区时时,开开发发系系统统的的总总成成本本最最低低。虽虽然然目目前前还还不不能能精精确确地地算算出出M M的的数数值值,但但是是在在考考虑虑程程序序模模块块化化的的时时候候,总总成成本本曲曲线线确确实实是是有有用用的的指指南南。下下面面即即将将介介绍绍的的模模块块独独立立性性原原理理和和启启发发规规则则,可可以在一定程度上帮助决定合适的模块
8、数目。以在一定程度上帮助决定合适的模块数目。图图6-1模块数与系统开发成本模块数与系统开发成本 4信息系统分析与设计 采用模块化设计原理可以带来以下好处。采用模块化设计原理可以带来以下好处。 (1)模模块块化化使使系系统统结结构构清清晰晰,容容易易设设计计也也容容易易阅阅读读和理解。和理解。 (2)程程序序错错误误通通常常局局限限在在有有关关的的模模块块及及它它们们之之间间的的接接口口中中,所所以以模模块块化化能能使使系系统统容容易易测测试试和和调调试试,从从而而有助于提高系统的可靠性。有助于提高系统的可靠性。 (3)系系统统的的变变动动往往往往只只涉涉及及少少数数几几个个模模块块,所所以以模
9、模块化还能够提高系统的可修改性。块化还能够提高系统的可修改性。 (4)模模块块化化使使得得一一个个复复杂杂的的大大型型程程序序可可以以由由许许多多程程序序员员分分工工编编写写,并并且且可可以以进进一一步步分分配配技技术术熟熟练练的的程程序序员编写困难的模块,有助于系统开发工程的组织管理。员编写困难的模块,有助于系统开发工程的组织管理。(5)模块化还有利于提高程序代码的可重用性。)模块化还有利于提高程序代码的可重用性。 5信息系统分析与设计 2抽象原理抽象原理抽象是人类在解决复杂问题时经常采用的一种思维抽象是人类在解决复杂问题时经常采用的一种思维方式,它是指将现实世界中具有共性的一类事物的相似方
10、式,它是指将现实世界中具有共性的一类事物的相似的、本质的方面集中概括起来,而暂时忽略它们之间的的、本质的方面集中概括起来,而暂时忽略它们之间的细节差异。在系统开发中运用抽象的概念,可以将复杂细节差异。在系统开发中运用抽象的概念,可以将复杂问题的求解过程分层,在不同的抽象层上实现难度的分问题的求解过程分层,在不同的抽象层上实现难度的分解。在抽象级别较高的层次上,可以将琐碎的细节信息解。在抽象级别较高的层次上,可以将琐碎的细节信息暂时隐藏起来,以利于解决系统中的全局性的问题。暂时隐藏起来,以利于解决系统中的全局性的问题。 结构化程序设计中自顶向下、逐步求精的模块划分结构化程序设计中自顶向下、逐步求
11、精的模块划分思想正是人类思维中运用抽象方法解决复杂问题的体现。思想正是人类思维中运用抽象方法解决复杂问题的体现。系统结构中顶层的模块抽象级别最高,控制并协调系统系统结构中顶层的模块抽象级别最高,控制并协调系统的主要功能且影响全局;系统结构中位于底层的模块抽的主要功能且影响全局;系统结构中位于底层的模块抽象级别最低,具体实现数据的处理过程。采用自顶向下、象级别最低,具体实现数据的处理过程。采用自顶向下、由抽象到具体的思维方式,不但降低了系统开发中每个由抽象到具体的思维方式,不但降低了系统开发中每个阶段的工作难度,简化了系统的设计和实现过程,还有阶段的工作难度,简化了系统的设计和实现过程,还有助于
12、提高系统的可读性、可测试性和可维护性。此外,助于提高系统的可读性、可测试性和可维护性。此外,在程序设计中运用抽象的方法还能够提高代码的可重用在程序设计中运用抽象的方法还能够提高代码的可重用性。性。 6信息系统分析与设计 3信息隐蔽和局部化原理信息隐蔽和局部化原理应应用用模模块块化化设设计计原原理理时时,自自然然会会产产生生的的一一个个问问题题是是:“为为了了得得到到最最好好的的一一组组模模块块,应应该该怎怎样样分分解解系系统统呢呢?”信信息息隐隐蔽蔽原原理理指指出出:应应该该这这样样设设计计和和确确定定模模块块,使使得得一一个个模模块块内内包包含含的的信信息息(过过程程和和数数据据)对对于于不
13、不需需要要这这些些信信息息的的模模块块来来说说,是是不不能能访访问问的的。这这一一原原理理是是由由D.L.Parnas在在1972年年提提出出的的,也也就就是是说说有有效效的的模模块块化化可可以以通通过过一一组组独独立立的的模模块块来来实实现现,这这些些独独立立的的模模块块彼彼此此间间仅仅仅仅交交换换那那些些为为了了完完成成系系统统功功能能而而必必须须交交换换的的信信息息。这这一一指指导导思思想想的的目目的的是是为为了了提提高高模模块块的的独独立立性性,即即当当修修改改或或维维护护模模块块时时减减少少把把一一个个模模块块的的错错误误扩扩散散到到其其他他模模块块中中去去的的机机会会。因因此此,信
14、信息息隐隐蔽蔽简简化化了了系系统统结结构构的的复复杂杂度度,提提供供了了程程序序模块设计标准化的可能性。模块设计标准化的可能性。局部化的概念和信息隐蔽概念密切相关。局部化是局部化的概念和信息隐蔽概念密切相关。局部化是指把一些关系密切的系统元素物理地放的比较近,严格指把一些关系密切的系统元素物理地放的比较近,严格控制数据对象可以访问的范围。在模块中使用局部数据控制数据对象可以访问的范围。在模块中使用局部数据元素就是局部化的一个例子。显然,局部化有助于实现元素就是局部化的一个例子。显然,局部化有助于实现信息隐蔽。信息隐蔽。 7信息系统分析与设计 4逐步求精原理逐步求精原理 逐逐步步求求精精是是人人
15、类类解解决决复复杂杂问问题题时时采采用用的的基基本本方方法法,也也是是许许多多软软件件工工程程技技术术(例例如如,规规格格说说明明技技术术,设设计计和和实实现现技技术术)的的基基础础。可可以以把把逐逐步步求求精精定定义义为为:“为为了了能能集集中中精精力力解解决决主主要要问问题题而而尽尽量量推推迟迟对对问问题题细细节节的的考考虑虑。”逐步求精之所以如此重要,是因为人类的认知过程逐步求精之所以如此重要,是因为人类的认知过程遵守遵守Miller法则:一个人在任何时候都只能把注意力集中法则:一个人在任何时候都只能把注意力集中在(在(72)个知识块上。但是,在开发系统的过程中,软)个知识块上。但是,在
16、开发系统的过程中,软件工程师在一段时间内需要考虑的知识块数远远多于件工程师在一段时间内需要考虑的知识块数远远多于7。例如,一个程序通常不止使用例如,一个程序通常不止使用7个数据,一个用户也往往个数据,一个用户也往往有不止有不止7个方面的需求。逐步求精方法的强大作用就在于,个方面的需求。逐步求精方法的强大作用就在于,它能帮助软件工程师把精力集中在与当前开发阶段最相它能帮助软件工程师把精力集中在与当前开发阶段最相关的那些方面上,而忽略那些对整体解决方案来说虽然关的那些方面上,而忽略那些对整体解决方案来说虽然是必要的,然而目前还不需要考虑的细节,这些细节将是必要的,然而目前还不需要考虑的细节,这些细
17、节将留到以后再考虑。留到以后再考虑。Miller法则是人类智力的基本局限,我法则是人类智力的基本局限,我们不可能战胜自己的自然本性,只能接受这个事实,承们不可能战胜自己的自然本性,只能接受这个事实,承认自身的局限性,并在这个前提下尽我们的最大努力工认自身的局限性,并在这个前提下尽我们的最大努力工作。作。 8信息系统分析与设计5模块独立性原理模块独立性原理模模块块独独立立性性概概括括了了把把系系统统划划分分为为模模块块时时要要遵遵守守的的准准则则,也也是是判判断断模模块块构构造造是是不不是是合合理理的的标标准准。模模块块独独立立性性是是指指每每个个模模块块只只完完成成系系统统要要求求的的独独立立
18、的的子子功功能能,并且与其他模块的联系最少且接口简单。并且与其他模块的联系最少且接口简单。模模块块独独立立性性可可以以从从两两个个方方面面来来衡衡量量:模模块块本本身身的的内内聚聚和和模模块块之之间间的的耦耦合合。前前者者反反映映的的是是模模块块内内部部各各个个成成分分之之间间的的联联系系,所所以以也也称称块块内内联联系系;后后者者反反映映的的是是一一个个模模块块与与其其他他模模块块之之间间的的联联系系,所所以以又又称称块块间间联联系系。模模块块的的独独立立性性越越高高,则则块块内内联联系系越越强强,块块间间联联系系越越弱弱,因此必须尽可能得设计出高内聚低耦合的模块。因此必须尽可能得设计出高内
19、聚低耦合的模块。9信息系统分析与设计1)内聚)内聚模模块块的的内内聚聚是是指指模模块块内内部部各各成成分分间间联联系系的的紧紧密密程程度度。一一个个模模块块内内部部各各成成分分之之间间的的联联系系越越紧紧密密,该该模模块块独独立立性性越越高高。按按照照由由弱弱到到强强的的顺顺序序,把把模模块块的的内内聚聚分分为为7种类型,如图种类型,如图6-2所示。所示。图图6-2内聚强度的划分内聚强度的划分10信息系统分析与设计 (1 1)偶然性偶然性内聚内聚 当当几几个个模模块块内内正正好好有有一一段段代代码码是是相相同同的的,将将它它们们抽抽取取出出来来形形成成单单独独的的模模块块,即即偶偶然然性性内内
20、聚聚模模块块。例例如如几几个个模模块块都都要要执执行行“读读A”A”的的操操作作,为为避避免免重重复复书书写写而而将将这这些些操操作作汇汇成成一一个个模模块块。偶偶然然性性内内聚聚是是内内聚聚程程度度最最低低的的一一种种,具具有有偶偶然然性性内内聚聚的的模模块块独独立立性性差差,不不容容易易理理解解和和修修改改,会会给给系系统统开开发发带带来来很很大大的的困困扰扰,出出错错的的机机率率要要比比其其他他类类型型的的模模块块大大得得多多,因因此此在在系系统统设设计计时时应尽量避免。应尽量避免。 11信息系统分析与设计(2)逻辑性内聚)逻辑性内聚逻逻辑辑性性内内聚聚指指模模块块内内执执行行几几个个逻
21、逻辑辑上上相相似似的的功功能能,通通过过参参数数确确定定该该模模块块完完成成哪哪一一个个功功能能。如如将将产产生生各各种种类类型型错错误误的的信信息息输输出出放放在在一一个个模模块块,或或将将从从不不同同设设备备上上的的输输入入放放在在一一个个模模块块,形形成成一一种种单单入入口口多多功功能能模模块块。这这种种模模块块内内聚聚程程度度有有所所提提高高,各各部部分分之之间间在在功功能能上上有有相相互互关关系系,但但不不易易修修改改,因因为为当当某某个个调调用用模模块块要要求求修修改改此此模模块块公公用用代代码码时时,而而另另一一些些调调用用模模块块又又不不要要求求修修改改。另另外外,调调用用时时
22、需需要要进进行行控控制制参参数数的的传传递递,造造成成模模块块间间的的控控制制耦耦合合,而而且且在在调调用用此此模块时,不用的部分也占据了主存,从而降低了系统效率。模块时,不用的部分也占据了主存,从而降低了系统效率。12信息系统分析与设计(3)时间性内聚)时间性内聚若若一一个个模模块块包包含含了了需需要要在在同同一一时时间间段段中中执执行行的的多多个个任任务务,则则称称该该模模块块的的内内聚聚为为时时间间性性内内聚聚。例例如如,将将多多个个变变量量的的初初始始化化放放在在同同一一个个模模块块中中实实现现,或或将将需需要要同同时时使使用用的的多多个个库库文文件件的的打打开开操操作作放放在在同同一
23、一个个模模块块中中,都都会会产产生生时时间间性性内内聚聚的的模模块块。由由于于时时间间性性内内聚聚模模块块中中的的各各个个部部分分在在时时间间上上的的联联系系,其其内内聚聚程程度度比比逻逻辑辑性性内内聚聚高高一一些些。但但这这样样的的模模块块往往往往会会和和其其他他相相关关模块有着紧密的联系,因而会造成耦合性的增加。模块有着紧密的联系,因而会造成耦合性的增加。(4)过程性内聚)过程性内聚当当一一个个模模块块中中包包含含的的一一组组任任务务必必须须按按照照某某一一特特定定的的次次序序执执行行时时,就就称称为为过过程程性性内内聚聚模模块块。如如用用高高斯斯消消去去法法解解线线形形方方程程组组的的流
24、流程程为为:建建立立方方程程组组系系数数矩矩阵阵高高斯斯消消去去回回代代,将将其纳入一个模块中就形成了一个过程性内聚模块。其纳入一个模块中就形成了一个过程性内聚模块。13信息系统分析与设计(5)通信性内聚)通信性内聚如果一个模块内各功能部分都使用了相同的输入数据,如果一个模块内各功能部分都使用了相同的输入数据,或产生了相同的输出数据,则称之为通信性内聚模块。如或产生了相同的输出数据,则称之为通信性内聚模块。如一个模块完成一个模块完成“建表建表”、“查表查表”两部分功能,都使用同两部分功能,都使用同一数据结构一数据结构名字表;又如一个模块完成生产日报表、名字表;又如一个模块完成生产日报表、周报表
25、和月报表,都使用同一数据周报表和月报表,都使用同一数据日产量。通信性内日产量。通信性内聚的模块各部分都紧密相关于同一数据聚的模块各部分都紧密相关于同一数据(或者数据结构或者数据结构),所以内聚性要高于前几种类型。同时,如果把某一数据结所以内聚性要高于前几种类型。同时,如果把某一数据结构、文件及设备等操作都放在一个模块内,可达到信息隐构、文件及设备等操作都放在一个模块内,可达到信息隐藏的作用。藏的作用。14信息系统分析与设计 (6 6)顺序性内聚顺序性内聚若一个模块中的各个部分都与同一个功能密切相若一个模块中的各个部分都与同一个功能密切相关,并且必须按照先后顺序执行关,并且必须按照先后顺序执行(
26、 (通常前一个部分的输通常前一个部分的输出数据就是后一个部分的输入数据出数据就是后一个部分的输入数据) ),则称该模块的内,则称该模块的内聚为顺序性内聚。例如,在一个处理学生成绩的模块聚为顺序性内聚。例如,在一个处理学生成绩的模块中,前一个部分根据成绩统计出及格的学生人数,后中,前一个部分根据成绩统计出及格的学生人数,后一个部分根据及格人数计算出学生的及格率。由于顺一个部分根据及格人数计算出学生的及格率。由于顺序性内聚模块中的各个部分在功能和执行顺序上都密序性内聚模块中的各个部分在功能和执行顺序上都密切相关,因此内聚程度很高且易于理解。切相关,因此内聚程度很高且易于理解。 15信息系统分析与设
27、计 (7 7)功能)功能性性内聚内聚 一个模块中各个部分都是为了完成某一具体功能一个模块中各个部分都是为了完成某一具体功能必不可少的组成部分,或者说该模块中所有部分都是必不可少的组成部分,或者说该模块中所有部分都是为了完成一项具体功能而协同工作,紧密联系,不可为了完成一项具体功能而协同工作,紧密联系,不可分割的,则称该模块为功能性内聚模块。如分割的,则称该模块为功能性内聚模块。如“求一组求一组数的最大值数的最大值”这样一个单一功能的模块。功能性内聚这样一个单一功能的模块。功能性内聚是所有内聚中内聚程度最高的一种,功能性内聚的模是所有内聚中内聚程度最高的一种,功能性内聚的模块易理解、易修改,有利
28、于实现模块的重用,从而提块易理解、易修改,有利于实现模块的重用,从而提高了系统开发的效率。高了系统开发的效率。 16信息系统分析与设计综上所述,综上所述,对于内聚应该采取这样的对于内聚应该采取这样的设计原则:设计原则:禁用偶然性禁用偶然性内聚和逻辑内聚和逻辑性性内聚,内聚,限制使用时间限制使用时间性性内聚,少用过程内聚,少用过程性性内聚和内聚和通信性内聚,提倡使用顺序性内聚和通信性内聚,提倡使用顺序性内聚和功能功能性性内聚。内聚。 17信息系统分析与设计 2 2)耦合)耦合模模块块的的耦耦合合是是指指模模块块之之间间相相互互联联系系的的程程度度。相相互互联联系系复复杂杂的的模模块块耦耦合合度度
29、强强,模模块块独独立立性性低低;相相互互联联系系简简单单的的模模块块耦耦合合度度弱弱,模模块块独独立立性性高高。按按照照由由弱弱到到强强的顺序,把的顺序,把模块的模块的耦合也耦合也分为分为7 7种类型,如图种类型,如图6-36-3所示。所示。图图6-3耦合强度的划分耦合强度的划分18信息系统分析与设计 (1 1)非直接耦合)非直接耦合 非非直直接接耦耦合合是是指指两两个个模模块块之之间间没没有有直直接接关关系系,相相互互之之间间没没有有信信息息传传递递,它它们们之之间间的的联联系系完完全全是是通通过过主主模模块块的的控控制制和和调调用用来来实实现现的的。因因此此,模模块块间间的的这这种种耦耦合
30、性最弱,但模块独立性最高。合性最弱,但模块独立性最高。 (2 2)数据耦合)数据耦合 数数据据耦耦合合是是指指若若两两个个模模块块之之间间仅仅通通过过模模块块参参数数交交换换信信息息,且且交交换换的的信信息息全全部部为为简简单单数数据据信信息息,相相当当于于高高级级语语言言中中的的值值传传递递,则则称称这这种种耦耦合合为为数数据据耦耦合合。数数据据耦耦合合的的耦耦合合程程度度较较低低,模模块块的的独独立立性性较较高高。通通常常软软件系统中都包含有数据耦合。件系统中都包含有数据耦合。19信息系统分析与设计(3)特征耦合)特征耦合特特征征耦耦合合是是指指两两个个模模块块之之间间传传递递的的是是数数
31、据据结结构构。其其实实模模块块间间传传递递的的是是这这个个数数据据结结构构的的地地址址,两两个个模模块块必必须须清清楚楚这这些些数数据据结结构构,并并按按要要求求对对其其进进行行操操作作,这这样样就就降降低低了了可可理理解解性性。可可采采用用“信信息息隐隐蔽蔽”的的方方法法,把把该该数数据据结结构构以以及及在在其其上上的的操操作作全全部部集集中中在在一一个个模模块块,就就可可消消除除这这种种耦耦合合,但但有有时时因因为为还还有有其其他他功功能能的的缘缘故故,特征耦合往往是不可避免的。特征耦合往往是不可避免的。(4)控制耦合)控制耦合控控制制耦耦合合是是指指一一个个模模块块调调用用另另一一个个模
32、模块块时时,传传递递的的是是控控制制变变量量(如如开开关关、标标志志等等),被被调调模模块块通通过过该该控控制制变变量量的的值值有有选选择择地地执执行行块块内内某某一一功功能能。因因此此被被调调模模块块内内应应具具有有多多个个功功能能,哪哪个个功功能能起起作作用用受受其其调调用用模模块块的的控控制制。控控制制耦耦合合增增加加了了理理解解、编编程程及及修修改改的的复复杂杂性性,调调用用模模块块必必须须知知道道被被调调模模块块内内部部的的逻逻辑辑关关系系,即即被被调调模模块块处处理理细细节节不不能能“信信息息隐隐藏藏”,从从而而降降低低了了模模块块的的独立性。独立性。20信息系统分析与设计 (5
33、5)外部耦合)外部耦合 外部耦合外部耦合是指是指一组模块访问同一个全局变量。一组模块访问同一个全局变量。 (6 6)公共耦合)公共耦合 公公共共耦耦合合是是指指一一组组模模块块访访问问同同一一个个全全局局性性数数据据结结构构。如如果果在在模模块块之之间间共共享享的的数数据据很很多多,且且通通过过参参数数的的传传递递很很不不方方便便时时,才才使使用用公公共共耦耦合合,因因为为公公共共耦耦合合会会引起以下问题:引起以下问题: 耦耦合合的的复复杂杂程程度度随随模模块块的的个个数数增增加加而而增增加加,无无法法控控制制各各个个模模块块对对公公共共数数据据的的存存取取,若若某某个个模模块块有有错错,可可
34、通通过过公公共共区区将将错错误误延延伸伸到到其其他他模模块块, 则则会会影影响响到到系系统的可靠性。统的可靠性。 使使系系统统的的可可维维护护性性变变差差。若若某某一一模模块块修修改改了了公公共区的数据,则会影响到与此有关的所有模块。共区的数据,则会影响到与此有关的所有模块。 降低了系统的可理解性。因为各个模块使用公降低了系统的可理解性。因为各个模块使用公共区的数据,使用方式往往是隐含的,某些数据被哪共区的数据,使用方式往往是隐含的,某些数据被哪些模块共享,不易很快搞清。些模块共享,不易很快搞清。 21信息系统分析与设计 (7 7)内容耦合)内容耦合 如如果果发发生生下下列列情情形形,两两个个
35、模模块块之之间间就就发发生生了了内内容容耦合。耦合。 l l一个模块可以直接访问另一个模块的内部数据;一个模块可以直接访问另一个模块的内部数据; l l一个模块不通过正常入口转到另一模块内部;一个模块不通过正常入口转到另一模块内部; l l两两个个模模块块有有一一部部分分程程序序代代码码重重叠叠( (只只可可能能出出现现在汇编语言中在汇编语言中) ); l l一个模块有多个入口。一个模块有多个入口。内容耦合是最高程度的耦合,也是最差的耦合。内容耦合是最高程度的耦合,也是最差的耦合。它会使因模块间的联系过于紧密而对后期的开发和维它会使因模块间的联系过于紧密而对后期的开发和维护工作带来很大的麻烦。
36、护工作带来很大的麻烦。 22信息系统分析与设计综上所述,综上所述,对于耦合应该采取这样对于耦合应该采取这样的设计原则:尽量使用非直接耦合、数的设计原则:尽量使用非直接耦合、数据耦合和特征耦合,少用控制耦合和外据耦合和特征耦合,少用控制耦合和外部耦合,限制公共耦合,完全不用内容部耦合,限制公共耦合,完全不用内容耦合。耦合。 23信息系统分析与设计 2. 模块的作用域应处于其控制域范围之内模块的作用域应处于其控制域范围之内 模模块块的的作作用用域域是是指指受受该该模模块块内内一一个个判判定定条条件件影影响响的的所所有有模模块块范范围围;模模块块的的控控制制域域是是指指该该模模块块本本身身以以及及所
37、所有有该该模模块块的的下下属属模模块块(包包括括该该模模块块可可以以直直接接调调用用的的下下级级模模块块和和可可以以间间接接调调用用的的更更下下层层的的模模块块)。例例如如,如如图图6-4所所示示,模模块块C的的控控制制域域为为模模块块C、E和和F;若若在在模模块块C中中存存在在一一个个对对模模块块D、E和和F均均有有影影响响的的判判定定条条件件,即即模模块块C的的作作用用域域为为模模块块C、D、E和和F(图图中中带带阴阴影影的的模模块块),则则显显然然模模块块C的的作作用用域域超超出出了了其其控控制制域域。由由于于模模块块D在在模模块块C的的作作用用域域中中,因因此此模模块块C对对模模块块D
38、的的控控制制信信息息必必然然要要通通过过上上级级模模块块B进进行行传传递递,这这样样不不但但会会增增加加模模块块间间的的耦耦合合性性,而而且且会会给给模模块块的的维维护护和和修修改改带带来来麻麻烦烦(若若要要修修改改模模块块C,可可能能会会对对不不在在它它控控制制域域中中的的模模块块D造造成成影影响响)。因因此此,系系统统设设计计时时应应使使各各个个模模块块的的作作用用域域处于其控制域范围之内。处于其控制域范围之内。 24信息系统分析与设计 若若发发现现不不符符合合此此设设计计原原则则的的模模块块,可可通通过过下下面面的的方方法法进进行行改改进:进: 将将判判定定位位置置上上移移。如如将将图图
39、6-46-4中中的的模模块块C C中中的的判判定定条条件件上上移到上级模块移到上级模块B B中或将模块中或将模块C C整个合并到模块整个合并到模块B B中。中。 将将超超出出作作用用域域的的模模块块下下移移。如如将将图图6-46-4中中的的模模块块D D移移至至模模块块C C的下一层上,使模块的下一层上,使模块D D处于模块处于模块C C的控制域中的控制域中 。图图6-4 6-4 模块的作用域和控制域模块的作用域和控制域 25信息系统分析与设计 3.3. 系统结构中的深度和宽度不宜过大系统结构中的深度和宽度不宜过大 所所谓谓深深度度是是指指系系统统体体系系结结构构中中控控制制的的层层数数,它它
40、能能够够粗粗略略地地反反映映出出软软件件系系统统的的规规模模和和复复杂杂程程度度;所所谓谓宽宽度度是是指指系系统统体体系系结结构构内内同同一一层层次次上上模模块块个个数数的的最最大大值值,通通常常宽宽度度越越大大的的系系统统越越复复杂杂。例例如如,在在如如图图6-56-5所所示示的的系统结构图中,深度为系统结构图中,深度为5 5,宽度为,宽度为8 8。 图图6-5 6-5 系统结构图示例系统结构图示例26信息系统分析与设计 4模块应具有高扇入和适当的扇出模块应具有高扇入和适当的扇出 对一模块来说,扇入是指有多少上级模块直接调用它,如图对一模块来说,扇入是指有多少上级模块直接调用它,如图6-6(
41、a)所示,模块所示,模块M的扇入数为的扇入数为n;扇出是指一个模块可以直接调扇出是指一个模块可以直接调用的下级模块数,如图用的下级模块数,如图6-6(b)所示,模块所示,模块M的扇出数为的扇出数为k。模块的模块的扇入越大,则说明共享该模块的上级模块数越多,或者说该模块扇入越大,则说明共享该模块的上级模块数越多,或者说该模块在程序中的重用性越高;而对于扇出,根据实践经验,在设计良在程序中的重用性越高;而对于扇出,根据实践经验,在设计良好的典型系统中,模块的平均扇出通常为好的典型系统中,模块的平均扇出通常为34。 (a) 扇入扇入 (b) 扇出扇出图图6-6 模块的扇入和扇出模块的扇入和扇出 27
42、信息系统分析与设计 5. 保持适中的模块规模和复杂度保持适中的模块规模和复杂度 程程序序中中模模块块的的规规模模过过大大,会会降降低低程程序序的的可可读读性性;而而模模块块规规模模过过小小,势势必必会会导导致致程程序序中中的的模模块块数数目目过过多多,增增加加接接口口的的复复杂杂性性。对对于于模模块块的的适适当当规规模模并并没没有有严严格格的的规规定定,但但普普遍遍的的观观点点是是模模块块中中的的语语句句数数最最好好保保持持在在50150条条语语句句左左右右,可可以以用用12页页打打印印纸纸打打印印,便便于于人人们们阅阅读读与与研研究究。为为了了使使模模块块的的规规模模适适中中,在在保保证证模
43、模块块独独立立性性的的前前提提下下,可可对对程程序序中中规规模模过过小小的的模模块块进进行合并或对规模过大的模块进行分解。行合并或对规模过大的模块进行分解。 模块的复杂度的限制是基于模块的复杂度的限制是基于McCade复杂度度量方复杂度度量方法提出的,该方法是计算由程序流程图得到的程序图法提出的,该方法是计算由程序流程图得到的程序图中的环的个数中的环的个数V(G),),实践表明实践表明V(G)10是模块是模块规模和复杂度的合理上限,关于模块的复杂度将会在规模和复杂度的合理上限,关于模块的复杂度将会在第七章介绍。第七章介绍。 28信息系统分析与设计 6. 降低模块接口的复杂度降低模块接口的复杂度
44、 复杂的模块接口是导致系统出现错误的主要原因复杂的模块接口是导致系统出现错误的主要原因之一,因此在系统设计中应尽量使模块接口简单清晰。之一,因此在系统设计中应尽量使模块接口简单清晰。降低模块的接口复杂度,可以提高系统的可读性,减降低模块的接口复杂度,可以提高系统的可读性,减少出现错误的可能性,并有利于系统的测试和维护。少出现错误的可能性,并有利于系统的测试和维护。例如,求一元二次方程的根模块例如,求一元二次方程的根模块QUAD_ROOT(TBL,X),其中其中TBL和和X分别是系数组参分别是系数组参数和根数组参数,就不如将接口的参数简单化,模块数和根数组参数,就不如将接口的参数简单化,模块变为
45、变为QUAD_ROOT(A,B,C,X1,X2),这样容易理这样容易理解还不容易发生传递错误。解还不容易发生传递错误。 29信息系统分析与设计 7设计单入口单出口的模块设计单入口单出口的模块 这这条条规规则则告告诫诫软软件件工工程程师师不不要要使使模模块块间间出出现现内内容容耦耦合合,设设计计出出的的每每一一个个模模块块都都应应该该只只有有一一个个入入口口一一个个出出口口,不不要要随随便便使使用用GOTO语语句句。当当控控制制流流从从顶顶部部进进入入模模块块并并且且从从底底部部退退出出来来时时,系系统统是是比比较较容容易易理理解解的的,因此也是比较容易维护的。因此也是比较容易维护的。 8模块功
46、能应该可以预测模块功能应该可以预测 要求设计出来的模块的功能应该能够预测,但也要求设计出来的模块的功能应该能够预测,但也要防止模块功能过分局限。要防止模块功能过分局限。 30信息系统分析与设计 6.2 总体设计概述总体设计概述 6.2.1 总体设计的目的和任务总体设计的目的和任务 总总体体设设计计的的基基本本目目的的就就是是回回答答“概概括括地地说说,系系统统应应该该如如何何实实现现?”这这个个问问题题,因因此此,总总体体设设计计又又称称为为概概要设计或初步设计。要设计或初步设计。 总体设计的基本任务包括:总体设计的基本任务包括: 1. 设计软件系统结构设计软件系统结构(简称软件结构简称软件结
47、构) 2. 数据结构及数据库设计数据结构及数据库设计 3. 编写总体设计文档编写总体设计文档 4. 评审评审31信息系统分析与设计 6.2.2 总体设计说明书总体设计说明书 总总体体设设计计说说明明书书是是总总体体设设计计阶阶段段结结束束时时提提交交的的技技术文档,它的主要内容如下:术文档,它的主要内容如下: (1) 引引言言:编编写写目目的的、背背景景、定定义义和和参参考考资资料料。 (2) 总总体体设设计计:需需求求规规定定、运运行行环环境境、基基本本设设计计概概念、处理流程和结构。念、处理流程和结构。 (3) 接接口口设设计计:用用户户接接口口、外外部部接接口口和和内内部部接接口口。 (
48、4) 运运行行设设计计:运运行行模模块块的的组组合合、运运行行控控制制和和运运行行时间。时间。 (5) 系统数据结构设计:逻辑结构设计、物理结构系统数据结构设计:逻辑结构设计、物理结构设计、数据结构与程序的关系。设计、数据结构与程序的关系。 (6) 系统出错处理设计:出错信息、补救措施和系系统出错处理设计:出错信息、补救措施和系统恢复设计。统恢复设计。 32信息系统分析与设计 6.2.3 总体设计的评审总体设计的评审 总总体体设设计计完完成成之之后后必必须须提提交交评评审审,总总体体设设计计评评审审包包括括的的内内容容有:有:(1)可可追追溯溯性性:确确认认该该设设计计是是否否覆覆盖盖了了所所
49、有有已已确确定定的的系系统统需需求,系统每一成份是否可追溯到某一项需求;求,系统每一成份是否可追溯到某一项需求;(2)接接口口:确确认认该该系系统统的的内内部部接接口口与与外外部部接接口口是是否否已已经经明明确确定定义义。模模块块是是否否满满足足高高内内聚聚和和低低耦耦合合的的要要求求,模模块块作作用用范范围围是是否否在其控制范围之内;在其控制范围之内;(3)风风险险:确确认认该该设设计计在在现现有有技技术术条条件件下下和和预预算算范范围围内内是是否否能按时实现;能按时实现;(4)实用性:确认该设计对于需求的解决方案是否实用;)实用性:确认该设计对于需求的解决方案是否实用;(5)技技术术清清晰
50、晰度度:确确认认该该设设计计是是否否以以一一种种易易于于翻翻译译成成代代码码的的形式表达;形式表达;(6)可维护性:确认该设计是否考虑了方便未来的维护;)可维护性:确认该设计是否考虑了方便未来的维护;(7)质量:确认该设计是否表现出良好的质量特征;)质量:确认该设计是否表现出良好的质量特征;(8)各各种种选选择择方方案案:看看是是否否考考虑虑过过其其它它方方案案,比比较较各各种种选选择择方案的标准是什么;方案的标准是什么;(9)限制:评估对该系统的限制是否现实,是否与需求一致;)限制:评估对该系统的限制是否现实,是否与需求一致;(10)其其他他具具体体问问题题:对对于于文文档档、可可测测试试性
51、性、设设计计过过程程等等方方面面进行评估。进行评估。33信息系统分析与设计 6.2.4 总体设计的图形工具总体设计的图形工具 用用于于总总体体设设计计的的图图形形工工具具有有HIPO图图和和结结构构图图,它它们主要用来描述系统模块的层次结构。们主要用来描述系统模块的层次结构。 1. HIPO图图 HIPO(Hierarchy Plus Input/Processing/Output)图是图是IBM公司在公司在20世纪世纪70年代发展起来的用于描述系统结构的图形工具。它实年代发展起来的用于描述系统结构的图形工具。它实质上是在描述系统总体模块结构的层次图质上是在描述系统总体模块结构的层次图(H图图
52、)的基础的基础上,加入了用于描述每个模块输入上,加入了用于描述每个模块输入/输出数据和处理功输出数据和处理功能的能的IPO图,因此它的中文全名为层次图加输入图,因此它的中文全名为层次图加输入/处理处理/输出图。输出图。 34信息系统分析与设计 1) HIPO图中的图中的H图图 H图在第五章介绍过了,但在图在第五章介绍过了,但在HIPO图中为了使图中为了使H图更具有可追踪图更具有可追踪性,可以为除顶层矩形框以外的其他矩形框加上能反映层次关系的编性,可以为除顶层矩形框以外的其他矩形框加上能反映层次关系的编号。例如,工资计算系统的号。例如,工资计算系统的H图如图图如图6-7所示。所示。 35信息系统
53、分析与设计 2) HIPO图中的图中的IPO图图 IPO图在第五章也介绍过,下面举个例子,例如,图在第五章也介绍过,下面举个例子,例如,工资计算系统中的计算工资模块的工资计算系统中的计算工资模块的IPO图如图图如图6-8所示。所示。 36信息系统分析与设计 2结构图结构图 Yourdon提提出出的的结结构构图图(SC,Structure Chart)是是进进行行系系统统结结构构设设计计的的另另一一个个有有力力工工具具。结结构构图图能能够够描描述述出出软软件件系系统统的的模模块块层层次次结结构构,清清楚楚地地反反映映出出程程序序中中各各模模块块之之间间的的调调用用关关系系和和联联系系。结结构图中
54、的基本符号及其含义如表构图中的基本符号及其含义如表6-1所示。所示。 表表6-1 结构图中的基本符号结构图中的基本符号 37信息系统分析与设计 在在系系统统结结构构图图中中,模模块块有有以以下下几几种种类类型型:传传入入模模块、传出模块、变换模块和协调模块,如图块、传出模块、变换模块和协调模块,如图6-9所示。所示。38信息系统分析与设计 如图如图6-10所示就是一个描绘了产生最佳解的结构所示就是一个描绘了产生最佳解的结构图的例子。图的例子。 39信息系统分析与设计 6.3 面向数据流的总体设计方法面向数据流的总体设计方法在在总总体体设设计计中中,主主要要采采用用面面向向数数据据流流的的设设计
55、计方方法法,结结构构化化设设计计方方法法是是一一种种典典型型的的面面向向数数据据流流的的总总体体设设计计方方法法。面面向向数数据据流流的的体体系系结结构设计的过程如图构设计的过程如图6-11所示。所示。40信息系统分析与设计 6.3.1 数据流图的类型数据流图的类型 根根据据数数据据流流图图的的结结构构特特点点通通常常可可将将数数据据流流图图划划分分为为变换型数据流图和事务型数据流图两个基本类型。变换型数据流图和事务型数据流图两个基本类型。 1. 变换型数据流图变换型数据流图变变换换型型数数据据流流图图呈呈现现出出的的结结构构特特点点为为:由由(逻逻辑辑)输输入入、变变换换中中心心和和(逻逻辑
56、辑)输输出出三三部部分分组组成成,如如图图6-12所示。所示。 41信息系统分析与设计 变换型数据处理问题的工作过程大致分为三步,即变换型数据处理问题的工作过程大致分为三步,即取得数据、变换数据和给出数据,如取得数据、变换数据和给出数据,如图图6-13所示。由所示。由变变换换型数据流图映射出的型数据流图映射出的变换型变换型系统结构图,如图系统结构图,如图6-14所所示。示。 42信息系统分析与设计 2. 事务型数据流图事务型数据流图事务型数据流图呈现出的结构特点为:输入流在事务型数据流图呈现出的结构特点为:输入流在经过某个被称为经过某个被称为“事务中心事务中心”的加工时被分离为多个的加工时被分
57、离为多个发散的输出流,形成多个平行的加工处理路径,如图发散的输出流,形成多个平行的加工处理路径,如图6-15所示。所示。43信息系统分析与设计该类型数据流图所描述的加工过程为:外部数据沿输入通路该类型数据流图所描述的加工过程为:外部数据沿输入通路进入系统后,被送往事务中心;事务中心接收输入数据并分析确进入系统后,被送往事务中心;事务中心接收输入数据并分析确定其类型;最后根据所确定的类型为数据选择其中的一条加工路定其类型;最后根据所确定的类型为数据选择其中的一条加工路径。由事务型数据流图映射出的事务型系统结构图,如图径。由事务型数据流图映射出的事务型系统结构图,如图6-16所所示。示。44信息系
58、统分析与设计 6.3.2 变换分析变换分析 变变换换分分析析是是一一系系列列设设计计步步骤骤的的总总称称,经经过过这这些些步步骤骤把把具具有有变变换换流流特特点点的的数数据据流流图图按按预预先先确确定定的的模模式式映映射成系统结构。变换分析的设计步骤如下:射成系统结构。变换分析的设计步骤如下: (1) 复查基本系统模型。复查基本系统模型。 (2) 复查并精化数据流图。复查并精化数据流图。 (3) 确定数据流图具有变换特性。确定数据流图具有变换特性。 (4) 确确定定输输入入流流和和输输出出流流的的边边界界,从从而而孤孤立立出出变变换换中心。中心。 (5) 完成完成“第一级分解第一级分解”。 (
59、6) 完成完成“第二级分解第二级分解”。 (7) 使使用用设设计计度度量量和和启启发发规规则则对对第第一一次次分分割割得得到到的的系统结构进一步精化。系统结构进一步精化。45信息系统分析与设计 下面通过一个例子说明变换分析的方法。下面通过一个例子说明变换分析的方法。 1假设汽车的仪表板将完成下述功能:假设汽车的仪表板将完成下述功能: 通过模通过模-数转换实现传感器和微处理机接口;数转换实现传感器和微处理机接口; 在发光二极管面板上显示数据;在发光二极管面板上显示数据; 指指示示每每小小时时英英里里数数(mileh),行行驶驶的的里里程程,每加仑油行驶的英里数(每加仑油行驶的英里数(milega
60、l)等;等; 指示加速或减速;指示加速或减速; 超超速速警警告告:如如果果车车速速超超过过55mileh,则则发发出出超超速警告铃声。速警告铃声。 在在系系统统需需求求分分析析阶阶段段应应该该对对上上述述每每条条要要求求以以及及系系统统的的其其他他特特点点进进行行全全面面的的分分析析评评价价,建建立立起起必必要要的的文文档资料,特别是数据流图。档资料,特别是数据流图。46信息系统分析与设计 2. 设计步骤设计步骤 第第1步步 复查基本复查基本系统模型。系统模型。 复查的目的是确复查的目的是确保系统的输入数据和保系统的输入数据和输出数据符合实际。输出数据符合实际。 第第2步步 复复查查并并精精化
61、化数数据流图。据流图。 假设在需求分析假设在需求分析阶段产生的数字仪表阶段产生的数字仪表板系统的数据流图如板系统的数据流图如图图6-17所示。所示。 47信息系统分析与设计 第第3步步 分分析析确确定定数数据据流流的的类型。类型。 从从图图6-17可可以以看看出出,数数据据沿沿着着两两条条输输入入通通路路进进入入系系统统,然然后后沿沿着着五五条条通通路路离离开开,没没有有明明显显的的事事务务中中心心。因因此此可可以以认认为为这这个个信信息息流流具具有变换流的总特征。有变换流的总特征。 第第4步步 确确定定输输入入流流和和输输出出流流的的边边界界,从从而而孤孤立立出出变变换换中心。中心。 对于汽
62、车数字仪表板的对于汽车数字仪表板的例子,设计人员确定好了流例子,设计人员确定好了流的边界如图的边界如图6-18所示。所示。 48信息系统分析与设计 第第5步步 完成完成“第一级分解第一级分解”。 如如图图6-19所所示示说说明明了了第第一一级级分分解解的的方方法法。位位于于系系统统结结构构最最顶顶层的控制模块层的控制模块Cm协调下述从属的控制功能:协调下述从属的控制功能: 输入信息处理控制模块输入信息处理控制模块Ca,协调对所有输入数据的接收;协调对所有输入数据的接收; 变换中心控制模块变换中心控制模块Ct,管理对内部形式的数据的所有操作;管理对内部形式的数据的所有操作; 输出信息处理控制模块
63、输出信息处理控制模块Ce,协调输出信息的产生过程。协调输出信息的产生过程。 49信息系统分析与设计 对于数字仪表板的例子,第一级分解得出的结构对于数字仪表板的例子,第一级分解得出的结构如图如图6-20所示。每个控制模块的名字表明了为它所控所示。每个控制模块的名字表明了为它所控制的那些模块的功能。制的那些模块的功能。图图6-20 数字仪表板系统的第一级分解数字仪表板系统的第一级分解 50信息系统分析与设计第第6步步完成完成“第二级分解第二级分解”。所谓第二级分解就是把数据流图中的每个处理映射成系统结构所谓第二级分解就是把数据流图中的每个处理映射成系统结构中一个适当的模块。完成第二级分解的方法是,
64、从变换中心的边界开中一个适当的模块。完成第二级分解的方法是,从变换中心的边界开始沿着输入通路向外移动,把输入通路中每个处理映射成系统结构中始沿着输入通路向外移动,把输入通路中每个处理映射成系统结构中Ca控制下的一个低层模块;然后沿输出通路向外移动,把输出通路控制下的一个低层模块;然后沿输出通路向外移动,把输出通路中每个处理映射成直接或间接受模块中每个处理映射成直接或间接受模块Ce控制的一个低层模块;最后把控制的一个低层模块;最后把变换中心内的每个处理映射成受变换中心内的每个处理映射成受Ct控制的一个模块。控制的一个模块。图图6-21第二级分解的方法第二级分解的方法 51信息系统分析与设计 对于
65、数字仪表板系统的例子,第二级分解的结果对于数字仪表板系统的例子,第二级分解的结果分别用图分别用图6-22,6-23和和6-24描绘。描绘。 52信息系统分析与设计 对于数字仪表板系统的例子,第二级分解的结果对于数字仪表板系统的例子,第二级分解的结果分别用图分别用图6-22,6-23和和6-24描绘。描绘。 53信息系统分析与设计 对于数字仪表板系统的例子,第二级分解的结果对于数字仪表板系统的例子,第二级分解的结果分别用图分别用图6-22,6-23和和6-24描绘。描绘。 54信息系统分析与设计 第第7步步 使用设计度量和启发式规则对第一次分割得使用设计度量和启发式规则对第一次分割得到的系统结构
66、进一步精化。到的系统结构进一步精化。 55信息系统分析与设计 6.3.3 事务分析事务分析事事务务分分析析的的设设计计步步骤骤和和变变换换分分析析的的设设计计步步骤骤大大部部分分相相同同或或类类似似,主主要要差差别别仅仅在在于于由由数数据据流流图图到到系系统统结结构构的的映映射射方方法法不同。不同。事务分析的过程如下:事务分析的过程如下:(1)复审基本系统模型;)复审基本系统模型;(2)复审和细化系统的数据流图;)复审和细化系统的数据流图;(3)确确定定数数据据流流图图中中含含有有变变换换流流特特征征还还是是含含有有事事务务流流特特征;征;以上三步与变换映射中的相应工作相同。以上三步与变换映射
67、中的相应工作相同。(4)识识别别事事务务中中心心和和每每一一条条操操作作路路径径上上的的流流特特征征。事事务务中心通常位于几条操作路径的起始点上;中心通常位于几条操作路径的起始点上;(5)将将数数据据流流图图映映射射到到事事务务型型系系统统结结构构图图,包包括括:输输入入分支、分类事务处理分支(调度)和输出分支;分支、分类事务处理分支(调度)和输出分支;(6)分解和细化该事务结构和每一条操作路径的结构;)分解和细化该事务结构和每一条操作路径的结构;(7)利用一些启发式原则来改进系统的初始结构图。)利用一些启发式原则来改进系统的初始结构图。56信息系统分析与设计 由事务流映射成的系统结构包括一个
68、接收分支和一个发送分支。映由事务流映射成的系统结构包括一个接收分支和一个发送分支。映射出接收分支结构的方法和变换分析映射出输入结构的方法很相像,即射出接收分支结构的方法和变换分析映射出输入结构的方法很相像,即从事务中心的边界开始,把沿着接收流通路的处理映射成模块。发送分从事务中心的边界开始,把沿着接收流通路的处理映射成模块。发送分支的结构包含一个调度模块,它控制下层的所有活动模块;然后把数据支的结构包含一个调度模块,它控制下层的所有活动模块;然后把数据流图中的每个活动流通路映射成与它的流特征相对应的结构。如图流图中的每个活动流通路映射成与它的流特征相对应的结构。如图6-26所示说明了上述映射过
69、程。所示说明了上述映射过程。 图图6-26 事务分析的映射方法事务分析的映射方法57信息系统分析与设计 6.3.4 混合结构分析混合结构分析一一个个大大型型系系统统中中常常常常是是变变换换型型和和事事务务型型的的混混合合结结构构。为为了了导导出出它它们们的的初初始始结结构构图图,也也必必须须同同时时采采用用变变换换分分析析和和事事务务分分析析两两种种方方法法。对对于于一一般般情情况况,结结构构化化设设计计的的基基本本思思路路是是,以以变变换换分分析析为为主主,事事务务型型为为辅辅,导导出出初初始始设设计计。如如图图6-27所所示示,即即系系统统的的总总体体框框架架是是变变换换型型,其其变变换换
70、中中心心的的下下层层分分解解则则基基于于事事务务分分析析。对对于于复复杂杂系系统统可可能能有有若若干干变变换换中中心心,把把变变换换分分析析和和事事务务分分析析应应用用到到同同一一个个数数据据流流图图的的不不同同部部分分,由由此得到的子结构形成此得到的子结构形成“构件构件”,可以利用它们构造完整的系统结构。,可以利用它们构造完整的系统结构。图图6-27混合结构的一例混合结构的一例58信息系统分析与设计如如图图6-28所所示示的的初初始始结结构构图图是是由由图图6-27中中的的例例子子导导出出的。的。图图6-28导出的初始模块结构导出的初始模块结构 59信息系统分析与设计 6.3.5 总体设计的
71、实例总体设计的实例 下下面面以以第第5章章讨讨论论过过的的工工资资计计算算系系统统数数据据流流图图为为例例来介绍变换分析建立软件结构的主要步骤。来介绍变换分析建立软件结构的主要步骤。(1)划划分分边边界界,区区分分系系统统的的输输入入、变变换换中中心心和和输输出出部分。部分。工资计算系统的数据流图的划分如图工资计算系统的数据流图的划分如图6-29所示,所示,用虚线将输入、变换中心和输出部分分开。用虚线将输入、变换中心和输出部分分开。 60信息系统分析与设计 61信息系统分析与设计 (2)完成第一级分解,设计系统的上层模块。完成第一级分解,设计系统的上层模块。工资计算系统的一级分解结果如图工资计算系统的一级分解结果如图6-30所示。所示。 62信息系统分析与设计精品课件精品课件!信息系统分析与设计精品课件精品课件!信息系统分析与设计 (3) 完成第二级分解,设计输入、变换中心和输出完成第二级分解,设计输入、变换中心和输出部分的中、下层模块。部分的中、下层模块。完完成成二二级级分分解解后后,工工资资计计算算系系统统的的软软件件结结构构如如图图6-31所示所示(图中省略了模块调用传递的信息图中省略了模块调用传递的信息)。65