第3章概要设计(3.1-3.3)_第1页
第3章概要设计(3.1-3.3)_第2页
第3章概要设计(3.1-3.3)_第3页
第3章概要设计(3.1-3.3)_第4页
第3章概要设计(3.1-3.3)_第5页
已阅读5页,还剩249页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、武汉纺织大学武汉纺织大学 数学与计算机学院数学与计算机学院第3章 概要设计(第3.1-3.3节)武汉纺织大学武汉纺织大学 数学与计算机学院数学与计算机学院主要内容概要设计任务和过程概要设计任务和过程软件设计基本原则软件设计基本原则面向数据流图的设计方法面向数据流图的设计方法武汉纺织大学武汉纺织大学 数学与计算机学院数学与计算机学院3.1 概要设计的任务和过程 需求分析需求分析:软件系统必须软件系统必须“做什么做什么” ;软件设计软件设计:“如何如何做做”才可以满足需求规格说明中规定的各项需求。才可以满足需求规格说明中规定的各项需求。 从工程管理的角度来看,软件设计通常分为两步,即概要设从工程管

2、理的角度来看,软件设计通常分为两步,即概要设计和详细设计。计和详细设计。概要设计的基本目的是回答概要设计的基本目的是回答“概括地说,软件系统应如实现概括地说,软件系统应如实现”这一问题。因此,概要设计有时称为初步设计或总体设计。这一问题。因此,概要设计有时称为初步设计或总体设计。概要设计的关键是确定软件的总体结构,即确定软件系统的概要设计的关键是确定软件的总体结构,即确定软件系统的组成成份(子系统或模块)以及各组成成份之间的相互关系。组成成份(子系统或模块)以及各组成成份之间的相互关系。详细设计是对概要设计结果的进一步细化,其主要任务是确详细设计是对概要设计结果的进一步细化,其主要任务是确定软

3、件系统各组成成份内部的数据结构和算法过程。定软件系统各组成成份内部的数据结构和算法过程。方法:结构化方法、面向对象方法方法:结构化方法、面向对象方法 武汉纺织大学武汉纺织大学 数学与计算机学院数学与计算机学院结构化设计DFD数据流图ERD实体关系图STD状态转换图武汉纺织大学武汉纺织大学 数学与计算机学院数学与计算机学院面向对象设计功能模型数据流图对象模型类图行为模型状态转换图、时序图等武汉纺织大学武汉纺织大学 数学与计算机学院数学与计算机学院概要设计的内容1、数据设计(对象设计)、数据设计(对象设计)-数据结构数据结构2、软件结构设计(子系统设计)、软件结构设计(子系统设计) -结构元素关系

4、结构元素关系3、接口设计(消息设计)、接口设计(消息设计)-如何通信如何通信4、过程设计(方法设计)、过程设计(方法设计)-过程化描述过程化描述武汉纺织大学武汉纺织大学 数学与计算机学院数学与计算机学院把分析模型转变成软件设计把分析模型转变成软件设计数据设计数据设计侧重于数据结构的定义。侧重于数据结构的定义。系统结构设计系统结构设计定义软件系统各主要成份之间的关系。定义软件系统各主要成份之间的关系。接口设计接口设计用于描述软件内部、软件与协作系统之间以用于描述软件内部、软件与协作系统之间以及软件与使用者之间的通信方式。及软件与使用者之间的通信方式。过程设计过程设计则是把结构成份转换成软件的过程

5、性描述。则是把结构成份转换成软件的过程性描述。在编码步骤,根据这种过程性描述,生成源程序代码,在编码步骤,根据这种过程性描述,生成源程序代码,然后通过测试最终得到完整有效的软件。然后通过测试最终得到完整有效的软件。武汉纺织大学武汉纺织大学 数学与计算机学院数学与计算机学院概要设计阶段的文档概要设计阶段的文档概要设计阶段完成时应编写以下文档:概要设计阶段完成时应编写以下文档: 概要设计说明书概要设计说明书 数据库设计说明书数据库设计说明书 用户手册用户手册 制定初步的测试计划制定初步的测试计划武汉纺织大学武汉纺织大学 数学与计算机学院数学与计算机学院3.2 软件设计基本原则 模块化模块化逐步求精

6、逐步求精抽象抽象信息隐藏信息隐藏武汉纺织大学武汉纺织大学 数学与计算机学院数学与计算机学院3.2.1 抽象与求精抽象是一种常用的思考和解决问题的方式,即抽取事物的本质的共同特性而暂时避开不必要的低层细节。 方式:过程抽象、数据抽象和控制抽象。抽象过程是指具有特定功能的一个命名的指令序列。(如:二维图形创建 )抽象数据则是描述数据对象的一个命名的数据集合。(如:“图画”数据对象 ) 抽象控制包含了一种程序控制机制而无须刻画其内部细节。(如:操作系统中的“同步信号量”) 武汉纺织大学武汉纺织大学 数学与计算机学院数学与计算机学院求精求精是由N. Wirth最初提出的一种自顶向下设计策略,其主要思想

7、是:将某个宏观功能不断分解,逐步确定过程细节,直至用程序设计语言描述的算法实现为止。抽象使得设计人员能够避开过早地陷入细节之中刻画过程和数据。求精能够帮助设计人员随着设计过程的深入而不断呈现更低层次的信息。 武汉纺织大学武汉纺织大学 数学与计算机学院数学与计算机学院抽象抽象(Abstraction): 忽略细节,分层理解问题,自顶向下层层加细。忽略细节,分层理解问题,自顶向下层层加细。例:例:开发一个开发一个CAD软件,实现一个二维绘图系统的全软件,实现一个二维绘图系统的全部功能,供低级计算机辅助设计使用。部功能,供低级计算机辅助设计使用。 抽象层次抽象层次I I:用问题所处环境的术语来描述这

8、个软件。:用问题所处环境的术语来描述这个软件。该软件包括一个计算机绘图界面,向绘图该软件包括一个计算机绘图界面,向绘图员显示图形,以及一个数字化仪界面,用员显示图形,以及一个数字化仪界面,用以代替绘图板和丁字尺。所有直线、折线、以代替绘图板和丁字尺。所有直线、折线、矩形、圆及曲线的描画、所有的几何计算、矩形、圆及曲线的描画、所有的几何计算、所有的剖面图和辅助视图都可以用这个所有的剖面图和辅助视图都可以用这个CADCAD软件实现软件实现。武汉纺织大学武汉纺织大学 数学与计算机学院数学与计算机学院 抽象层次抽象层次IIII:任务需求的描述。列出:任务需求的描述。列出“What”而而不是不是“How

9、”。 CAD SOFTWARE TASKS: user interaction task; 2-D drawing creation task; graphics display task; drawing file management task; END武汉纺织大学武汉纺织大学 数学与计算机学院数学与计算机学院 抽象层次抽象层次IIIIII:程序过程表示。以:程序过程表示。以2-D2-D绘图生成任务绘图生成任务为例为例: PROCEDURE 2-D drawing creation REPEAT UNTILE (drawing creation task terminates) DO WH

10、ILE (digitizer interaction occurs) Digitizer interface task; CASE of Line: line drawing task; Rectangle: rectangle drawing task; Circle: circle drawing task; END case; DO WHILE (keyboard interaction occurs) keyboard interaction task; CASE of View: auxiliary view task; Section: cross sectioning task;

11、 END case; END REPETITION; END PROCEDURE. 武汉纺织大学武汉纺织大学 数学与计算机学院数学与计算机学院抽象与求精是一对互补的概念。抽象与求精是一对互补的概念。抽象使得设计者能够说明过程和数据,同时却忽抽象使得设计者能够说明过程和数据,同时却忽略低层细节。事实上,可以把抽象看作是一种通略低层细节。事实上,可以把抽象看作是一种通过忽略多余的细节同时强调有关的细节,而实现过忽略多余的细节同时强调有关的细节,而实现逐步求精的方法。逐步求精的方法。求精则帮助设计者在设计过程中揭示出低层细节。求精则帮助设计者在设计过程中揭示出低层细节。这两个概念都有助于设计者在这两

12、个概念都有助于设计者在设计演化过程中创设计演化过程中创造出完整的设计模型造出完整的设计模型。武汉纺织大学武汉纺织大学 数学与计算机学院数学与计算机学院3.2.2 模块化和信息隐藏模块模块是由边界元素限定的相邻的程序元素是由边界元素限定的相邻的程序元素( (例如,数据说明,例如,数据说明,可执行的语句可执行的语句) )的序列,而且有一个总体标识符来代表它。的序列,而且有一个总体标识符来代表它。像像PascalPascal或或AdaAda这样的块结构语言中的这样的块结构语言中的BeginBeginendend对,或者对,或者C C,C+C+和和JavaJava语言中的语言中的对,都是边界元素的例子

13、。因此,对,都是边界元素的例子。因此,过程、函数、子程序和宏等,都可作为模块。面向对象范过程、函数、子程序和宏等,都可作为模块。面向对象范型中的对象是模块,对象内的方法也是模块。模块是构成型中的对象是模块,对象内的方法也是模块。模块是构成程序的基本构件程序的基本构件。模块化模块化就是把程序划分成独立命名且可独立访问的模块,就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能。每个模块完成一个子功能。把这些把这些模块集成起来构成一个整体,可以完成指定的功能模块集成起来构成一个整体,可以完成指定的功能满足用户的需求满足用户的需求。武汉纺织大学武汉纺织大学 数学与计算机学院数学与计算机

14、学院3.2.2 模块化和信息隐藏经验断言:经验断言:C(P1+P2)C(P1)+E(P2)分而治之:把一个大问题分解成若干小问题来分而治之:把一个大问题分解成若干小问题来解决时将会更加容易。解决时将会更加容易。 (成本?)(成本?)最小代价区 M代价模块数目接口开发代软件开发总代价模块开发代价武汉纺织大学武汉纺织大学 数学与计算机学院数学与计算机学院模块化的好处模块化的好处采用模块化原理可以使软件结构清晰,不仅容易设计也容易采用模块化原理可以使软件结构清晰,不仅容易设计也容易阅读和理解。阅读和理解。因为程序错误通常局限在有关的模块及它们之间的接口中,因为程序错误通常局限在有关的模块及它们之间的

15、接口中,所以模块化使软件容易测试和调试,因而有助于提高软件的所以模块化使软件容易测试和调试,因而有助于提高软件的可靠性。可靠性。因为变动往往只涉及少数几个模块,所以模块化能够提高软因为变动往往只涉及少数几个模块,所以模块化能够提高软件的可修改性。件的可修改性。模块化也有助于软件开发工程的组织管理,一个复杂的大型模块化也有助于软件开发工程的组织管理,一个复杂的大型程序可以由许多程序员分工编写不同的模块,并且可以进一程序可以由许多程序员分工编写不同的模块,并且可以进一步分配技术熟练的程序员编写困难的模块。步分配技术熟练的程序员编写困难的模块。 武汉纺织大学武汉纺织大学 数学与计算机学院数学与计算机

16、学院信息隐藏如何确保模块数落在如何确保模块数落在“最小代价区最小代价区”?依据什么标?依据什么标准划分模块?准划分模块? 由由Parnas倡导的倡导的“信息隐藏信息隐藏”是指模块中所包含是指模块中所包含的信息(包括数据和过程)对不需要这些信息的其的信息(包括数据和过程)对不需要这些信息的其它模块是不可访问的。它模块是不可访问的。抽象有助于定义组成软件的过程(或信息)实体;抽象有助于定义组成软件的过程(或信息)实体;隐藏定义并加强了对模块内部访问的约束,有助于隐藏定义并加强了对模块内部访问的约束,有助于分离模块的实现者和使用者。分离模块的实现者和使用者。武汉纺织大学武汉纺织大学 数学与计算机学院

17、数学与计算机学院3.2.3 模块独立性模块独立性是模块化、抽象和信息隐藏的直接模块独立性是模块化、抽象和信息隐藏的直接产物,其基本含义是每一个模块只完成功能需产物,其基本含义是每一个模块只完成功能需求中的一个特定的子功能,而且从程序结构的求中的一个特定的子功能,而且从程序结构的其它部分来看这一模块只具有一个简单的接口。其它部分来看这一模块只具有一个简单的接口。 模块的功能独立性可以使得模块既容易开发又模块的功能独立性可以使得模块既容易开发又容易维护。容易维护。 模块独立性有两个定性的度量标准:内聚度和模块独立性有两个定性的度量标准:内聚度和耦合度。耦合度。 武汉纺织大学武汉纺织大学 数学与计算

18、机学院数学与计算机学院内聚度内聚度(内聚度(Cohesion)是指模块内部各成分联系紧)是指模块内部各成分联系紧密的程度密的程度。通常,内聚度越高,模块的独立性就越强。通常,内聚度越高,模块的独立性就越强。 G. Myers定义了七种类型的内聚,大致按照内聚定义了七种类型的内聚,大致按照内聚程度从高到低的顺序是:程度从高到低的顺序是:功能内聚、信息内聚功能内聚、信息内聚、通通信内聚、过程内聚信内聚、过程内聚、时间内聚、逻辑内聚和偶然内时间内聚、逻辑内聚和偶然内聚聚。 设计模块时,应该尽可能避免使用偶然内聚等低级设计模块时,应该尽可能避免使用偶然内聚等低级内聚的模块,争取高级内聚的模块,以提高模

19、块的内聚的模块,争取高级内聚的模块,以提高模块的独立性。独立性。 武汉纺织大学武汉纺织大学 数学与计算机学院数学与计算机学院偶然内聚模块内部各成分在功能上不相关或关系松散模块内部各成分在功能上不相关或关系松散。例如:例如:程序员在写程序时,发现一组不同语程序员在写程序时,发现一组不同语句分别在多个子程序中出现,于是将这组语句分别在多个子程序中出现,于是将这组语句单独组成一个模块,这样的模块便是偶然句单独组成一个模块,这样的模块便是偶然内聚模块。内聚模块。 缺点:模块不易理解,不易维护,不易复用。缺点:模块不易理解,不易维护,不易复用。 武汉纺织大学武汉纺织大学 数学与计算机学院数学与计算机学院

20、 模块内各部分间无联系模块内各部分间无联系ABCMMOVE O TO RREAD FILE FMOVE S TO T模块模块M中的三个语句没有任何联系中的三个语句没有任何联系缺点:缺点:可理解性差可理解性差, 可修改性差可修改性差。例例: :武汉纺织大学武汉纺织大学 数学与计算机学院数学与计算机学院逻辑内聚模块完成多个逻辑上相近或相关的功能,并且模块完成多个逻辑上相近或相关的功能,并且每一次调用只选择该模块中的每一次调用只选择该模块中的一个功能一个功能执行。执行。 (多个逻辑功能交织多个逻辑功能交织)例如:模块完成所有类型的输入和输出,如磁例如:模块完成所有类型的输入和输出,如磁盘、磁带等。盘

21、、磁带等。与偶然内聚相比,它表明了模块各成分之间在与偶然内聚相比,它表明了模块各成分之间在功能上的关系。功能上的关系。 但为了执行不同的功能,需但为了执行不同的功能,需要传递控制信息(控制耦合)。要传递控制信息(控制耦合)。 武汉纺织大学武汉纺织大学 数学与计算机学院数学与计算机学院逻辑内聚模块逻辑内聚模块ABCEFGABCEFGA1B1C1EFGEFG模块内部逻辑模块内部逻辑E E、F F、G G逻辑逻辑功能相似,组功能相似,组成新模块成新模块EFGEFG公用代码段公用代码段公用代码段公用代码段缺点:增强了耦合程度(控制耦合)不易修改,效率低。缺点:增强了耦合程度(控制耦合)不易修改,效率低

22、。武汉纺织大学武汉纺织大学 数学与计算机学院数学与计算机学院时间内聚模块完成模块完成多个多个具有时间相关性的具有时间相关性的功能功能。例如:初始化模块。(时间相关)例如:初始化模块。(时间相关)时间内聚的模块其内部的多个功时间内聚的模块其内部的多个功能通常都是弱相关的,但是,这能通常都是弱相关的,但是,这些功能些功能通常与其它模块中的功能通常与其它模块中的功能强相关强相关。在一般情况下,时间内。在一般情况下,时间内聚模块的各部分可以以任意次序聚模块的各部分可以以任意次序执行,因而与逻辑内聚相比,其执行,因而与逻辑内聚相比,其内部逻辑要简单些。内部逻辑要简单些。 模块X(故障处理)1.保留现场2

23、.报警武汉纺织大学武汉纺织大学 数学与计算机学院数学与计算机学院过程内聚模块完成模块完成多个多个需要按一定的需要按一定的步骤依次完成的步骤依次完成的功能功能。(过。(过程相关程相关-控制耦合)控制耦合)例如:在用程序流程图设计例如:在用程序流程图设计模块时,若将程序流程图中模块时,若将程序流程图中的一部分划出各自组成模块,的一部分划出各自组成模块,便形成过程内聚。便形成过程内聚。 模块X(顺序读)1.读第一个数据块2.读第二个数据块3.读第三个数据块(循环)(判定)(计算)武汉纺织大学武汉纺织大学 数学与计算机学院数学与计算机学院过程内聚模块过程内聚模块读入读入成绩单成绩单读入并审查读入并审查

24、成绩单成绩单审查审查成绩单成绩单统计统计成绩成绩打印打印成绩成绩统计并打印统计并打印成绩成绩武汉纺织大学武汉纺织大学 数学与计算机学院数学与计算机学院通信内聚模块完成模块完成多个多个需要按一定的步需要按一定的步骤依次完成的骤依次完成的功能功能,并且这些,并且这些功能的完成都依赖于相同的公功能的完成都依赖于相同的公用数据用数据。(数据相关。(数据相关数据或数据或标记耦合)标记耦合)例如:一个模块的各功能部分例如:一个模块的各功能部分都使用了相同的输入数据和都使用了相同的输入数据和(或)产生了相同的输出数据。(或)产生了相同的输出数据。在使用数据流图来划分模块时,在使用数据流图来划分模块时,通常会

25、得到通信内聚的模块。通常会得到通信内聚的模块。模块X从文件F读出数据1.由数据产生报表A2. 由数据产生报表B函数函数A函数函数B函数函数C数据集数据集武汉纺织大学武汉纺织大学 数学与计算机学院数学与计算机学院武汉纺织大学武汉纺织大学 数学与计算机学院数学与计算机学院信息内聚模块完成多个功能,而模块完成多个功能,而每一个功能都有各自的每一个功能都有各自的入口点和独立的代码,入口点和独立的代码,但功能都依赖于同样的但功能都依赖于同样的数据结构数据结构。(数据相关)。(数据相关)通常,信息内聚的模块,通常,信息内聚的模块,其前一成分的输出是后其前一成分的输出是后一成分的输入一成分的输入。武汉纺织大

26、学武汉纺织大学 数学与计算机学院数学与计算机学院功能内聚模块只完成一个单一的功能或者只实现一模块只完成一个单一的功能或者只实现一个单一的目标,则称为功能内聚。个单一的目标,则称为功能内聚。这样的模块很容易被复用,也很容易维护。这样的模块很容易被复用,也很容易维护。 1. 输入系数输入系数2. 求方程的根求方程的根3. 打印方程的根打印方程的根求一元二次方程求一元二次方程根的模块根的模块武汉纺织大学武汉纺织大学 数学与计算机学院数学与计算机学院模块的内聚性类型:模块的内聚性类型:低低 巧合内聚巧合内聚 内内 逻辑内聚逻辑内聚 聚聚 时间内聚时间内聚 性性 过程内聚过程内聚 通信内聚通信内聚 信息

27、内聚信息内聚 高高 功能内聚功能内聚模模块块独独立立性性弱弱( (功能分散功能分散) )强强( (功能单一功能单一) )武汉纺织大学武汉纺织大学 数学与计算机学院数学与计算机学院耦合度耦合(耦合(Coupling)是模块之间相互关联紧密)是模块之间相互关联紧密的程度。的程度。一般地,模块的耦合度越低,模块的独立性越一般地,模块的耦合度越低,模块的独立性越强。强。 Great deal of dependenceIndependent Highly coupledLoosely coupledUncoupled Goal: as loose as possible = as independen

28、t as possible武汉纺织大学武汉纺织大学 数学与计算机学院数学与计算机学院模块之间的耦合程度从低到高也可分为七种:非直模块之间的耦合程度从低到高也可分为七种:非直接耦合、数据耦合、标记耦合、控制耦合、外部耦接耦合、数据耦合、标记耦合、控制耦合、外部耦合、公共耦合、内容耦合。合、公共耦合、内容耦合。 在设计模块时,应该尽量使用数据耦合,必要时使在设计模块时,应该尽量使用数据耦合,必要时使用标记耦合,少用控制耦合,限制使用公共耦合,用标记耦合,少用控制耦合,限制使用公共耦合,最好不要使用内容耦合。最好不要使用内容耦合。 武汉纺织大学武汉纺织大学 数学与计算机学院数学与计算机学院内容耦合两

29、个模块中一个模块直接引用另一个模块的两个模块中一个模块直接引用另一个模块的内容(数据,语句,标号等)内容(数据,语句,标号等)。内容耦合一般出现在用低级语言(如汇编语内容耦合一般出现在用低级语言(如汇编语言)编写的程序中。言)编写的程序中。 对于内容耦合的两个模块,如果一个修改了,对于内容耦合的两个模块,如果一个修改了,另一个也必须修改。内容耦合的模块不易于另一个也必须修改。内容耦合的模块不易于复用。复用。 武汉纺织大学武汉纺织大学 数学与计算机学院数学与计算机学院例例1:A访问访问C的内部的内部数据或不通过正数据或不通过正常入口而转入常入口而转入C的内部。的内部。ABCDA:goto C1C

30、:C1: 武汉纺织大学武汉纺织大学 数学与计算机学院数学与计算机学院例例2:部分代码重叠:部分代码重叠(常出现在汇编程(常出现在汇编程序中)序中)B A例例3:一个模块有:一个模块有多个入口(功能)多个入口(功能)A:entry 1:entry 2:武汉纺织大学武汉纺织大学 数学与计算机学院数学与计算机学院公共耦合两个模块都能够存取同一公共数据环境两个模块都能够存取同一公共数据环境。公共数据环境可以是全局数据结构、共享的通信区、内存公共数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区、任何存储介质上的文件等。的公共覆盖区、任何存储介质上的文件等。 公共耦合有两种情况:若一个模块只向公

31、共数据环境传送公共耦合有两种情况:若一个模块只向公共数据环境传送数据,而另一个模块只从中取数据,则这种公共耦合叫松数据,而另一个模块只从中取数据,则这种公共耦合叫松散公共耦合;若两个模块对公共数据环境既取又送数据,散公共耦合;若两个模块对公共数据环境既取又送数据,则称这种耦合为紧密公共耦合。则称这种耦合为紧密公共耦合。 公共耦合有很多缺点,如难以理解,带来副作用,难以维公共耦合有很多缺点,如难以理解,带来副作用,难以维护,难以复用,因无法控制数据的存取而易于导致计算机护,难以复用,因无法控制数据的存取而易于导致计算机犯罪等。犯罪等。武汉纺织大学武汉纺织大学 数学与计算机学院数学与计算机学院Gl

32、obal : V1 V2A:A1=V1+V2B:V1=B1Global : V1 V2A:V1+B:V2=B1+V1问题:问题: 公共部分的改动将影响所有调用它的模块;公共部分的改动将影响所有调用它的模块; 公共部分的数据存取无法控制;公共部分的数据存取无法控制; 复杂程度随耦合模块的个数增加而增加。复杂程度随耦合模块的个数增加而增加。武汉纺织大学武汉纺织大学 数学与计算机学院数学与计算机学院外部耦合一组模块访问同一单一类型全局变量或全局一组模块访问同一单一类型全局变量或全局数组数组。例如,例如,C语言程序中各模块访问声明为语言程序中各模块访问声明为extern类型的外部变量。类型的外部变量。

33、 外部耦合类似于公共耦合,但外部耦合中不外部耦合类似于公共耦合,但外部耦合中不存在依赖于数据结构内部各项的物理安排。存在依赖于数据结构内部各项的物理安排。 武汉纺织大学武汉纺织大学 数学与计算机学院数学与计算机学院控制耦合一个模块传递控制信息给另外一个模块,显式地控一个模块传递控制信息给另外一个模块,显式地控制另外一个模块的逻辑。制另外一个模块的逻辑。例如,当传递功能代码到一个具有逻辑内聚的模块例如,当传递功能代码到一个具有逻辑内聚的模块中时,便是在传递控制信息。又如,当一个控制开中时,便是在传递控制信息。又如,当一个控制开关作为参数传递时,也将是控制耦合。关作为参数传递时,也将是控制耦合。

34、控制耦合的一个缺点是,两个模块之间不是独立的,控制耦合的一个缺点是,两个模块之间不是独立的,被调用模块必须知道调用模块的内部结构和逻辑,被调用模块必须知道调用模块的内部结构和逻辑,结果是模块的可复用性降低了。另外,控制耦合通结果是模块的可复用性降低了。另外,控制耦合通常与逻辑内聚有关,因此,它也具有逻辑内聚的缺常与逻辑内聚有关,因此,它也具有逻辑内聚的缺点。点。 武汉纺织大学武汉纺织大学 数学与计算机学院数学与计算机学院ABFlagF2F1FnFlag接口单一,接口单一,但仍然影响但仍然影响被控模块的被控模块的内部逻辑。内部逻辑。武汉纺织大学武汉纺织大学 数学与计算机学院数学与计算机学院控制耦

35、合举例控制耦合举例 读入分数读入分数 输出结果输出结果计算平均分计算平均分 计算最高分计算最高分平均平均/ /最高最高? ?调用逻辑性模块调用逻辑性模块 B B时,须先传递时,须先传递控制信号控制信号( (平均分平均分 / /最高分最高分) ),以选,以选择所需的操作。择所需的操作。控制模块必须知控制模块必须知道被控模块的内道被控模块的内部逻辑,增强了部逻辑,增强了相互依赖相互依赖。B B武汉纺织大学武汉纺织大学 数学与计算机学院数学与计算机学院标记耦合在函数或过程调用时传递的参数是结构变量在函数或过程调用时传递的参数是结构变量(如记录名、数组名、文件名等),但是被(如记录名、数组名、文件名等

36、),但是被调用模块只操纵参数中的一部分数据调用模块只操纵参数中的一部分数据。这种耦合的缺点是,由于无法控制对数据的这种耦合的缺点是,由于无法控制对数据的存取,易如导致对数据的非法存取等。存取,易如导致对数据的非法存取等。 武汉纺织大学武汉纺织大学 数学与计算机学院数学与计算机学院标记耦合举例标记耦合举例计算水电费计算水电费计算水费计算水费计算电费计算电费住户情况住户情况水费水费电费电费住户情况住户情况“住户情况住户情况”是一个数据结构,图中模块都与此数据结是一个数据结构,图中模块都与此数据结构有关。构有关。“计算水费计算水费”和和“计算电费计算电费”本无关,由于引用了此数本无关,由于引用了此数

37、据结构产生依赖关系,它们之间也是标记偶合。据结构产生依赖关系,它们之间也是标记偶合。武汉纺织大学武汉纺织大学 数学与计算机学院数学与计算机学院数据耦合所有的参数都是简单变量,或者虽然有结构所有的参数都是简单变量,或者虽然有结构变量,但是,被调用模块需要该结构中的所变量,但是,被调用模块需要该结构中的所有数据有数据。如果一个系统中只有数据耦合,那么其它耦如果一个系统中只有数据耦合,那么其它耦合存在的所有问题都不会存在,维护就会很合存在的所有问题都不会存在,维护就会很容易。容易。 武汉纺织大学武汉纺织大学 数学与计算机学院数学与计算机学院数据耦合举例数据耦合举例计算水电费计算水电费计算水费计算水费

38、计算电费计算电费用水量用水量用电量用电量水费水费电费电费武汉纺织大学武汉纺织大学 数学与计算机学院数学与计算机学院非直接耦合两个模块都不需要另一模块的存在而能两个模块都不需要另一模块的存在而能独立工作独立工作。非直接耦合虽然耦合度低,但在一个软非直接耦合虽然耦合度低,但在一个软件系统中不可能所有模块间都没有任何件系统中不可能所有模块间都没有任何联系。联系。 武汉纺织大学武汉纺织大学 数学与计算机学院数学与计算机学院 两个模块没有直接关系两个模块没有直接关系( (模快模快1 1和模快和模快2)2),模块独立性,模块独立性最强。最强。模块模块1 1模块模块2 2模块模块3 3模块模块4 4武汉纺织

39、大学武汉纺织大学 数学与计算机学院数学与计算机学院模块间耦合的类型:模块间耦合的类型: 低低 非直接耦合非直接耦合耦耦 数据耦合数据耦合合合 标志耦合标志耦合性性 控制耦合控制耦合 外部耦合外部耦合 公共耦合公共耦合 高高 内容耦合内容耦合模模块块独独立立性性弱弱( (低耦合低耦合) )强强( (中耦合中耦合) )( (较强耦合较强耦合) )( (强耦合强耦合) )武汉纺织大学武汉纺织大学 数学与计算机学院数学与计算机学院3.3面向数据流图的设计方法 面向数据流图的设计方法是一种结构化设计方法。面向数据流图的设计方法是一种结构化设计方法。首先,研究、分析和审查数据流图,确保数据流首先,研究、分

40、析和审查数据流图,确保数据流图符合实际,必要时还要进一步精化数据流图。图符合实际,必要时还要进一步精化数据流图。然后,确定数据流图的类型,即然后,确定数据流图的类型,即变换型变换型数据流或数据流或事务型事务型数据流。数据流。再依据数据流图的类型采用数据流分析法或事务再依据数据流图的类型采用数据流分析法或事务分析法导出系统初始的软件结构。分析法导出系统初始的软件结构。最后,依据软件设计原理和一些优化策略改进系最后,依据软件设计原理和一些优化策略改进系统初始的软件结构,形成最终的软件结构。统初始的软件结构,形成最终的软件结构。 武汉纺织大学武汉纺织大学 数学与计算机学院数学与计算机学院目标系统的目

41、标系统的DFDSC 图图 - Structured Chart 该图常用来表示系统的该图常用来表示系统的软件结构软件结构。利。利用它可以清楚地表达软件结构中用它可以清楚地表达软件结构中模块间的模块间的层次调用关系和模块之间的联系层次调用关系和模块之间的联系。 SD目标系统的目标系统的SC武汉纺织大学武汉纺织大学 数学与计算机学院数学与计算机学院变换型数据流变换型数据流特征:数据流图可明显地分成输入、变换、特征:数据流图可明显地分成输入、变换、输出三部分输出三部分信息沿着输入路径进入系统,并将输入信息的外部形式经过编辑、格信息沿着输入路径进入系统,并将输入信息的外部形式经过编辑、格式转换、合法性

42、检查、预处理等辅助性加工后变成内部形式式转换、合法性检查、预处理等辅助性加工后变成内部形式内部形式的信息由变换中心进行处理内部形式的信息由变换中心进行处理然后沿着输出路径经过格式转换、组成物理块、缓冲处理等辅助性加然后沿着输出路径经过格式转换、组成物理块、缓冲处理等辅助性加工后变成输出信息送到系统外工后变成输出信息送到系统外外外部部表表示示内内部部表表示示信息信息时间时间变换流变换流输入流输入流输出流输出流武汉纺织大学武汉纺织大学 数学与计算机学院数学与计算机学院事务型数据流事务型数据流特征:数据流沿着输入路径到达一个事务中心,事特征:数据流沿着输入路径到达一个事务中心,事务中心根据输入数据的

43、类型在若干条动作路径中选务中心根据输入数据的类型在若干条动作路径中选择一条来执行择一条来执行事务中心的任务是:接收输入数据事务中心的任务是:接收输入数据(即事务即事务);分析;分析每个事务的类型;根据事务类型选择执行一条动作每个事务的类型;根据事务类型选择执行一条动作路径路径动作路径动作路径事务中心事务中心输入路径输入路径T武汉纺织大学武汉纺织大学 数学与计算机学院数学与计算机学院3.3.1 软件结构的图形表示 层次(层次(Hierarchy)图主要用来描绘软件的层)图主要用来描绘软件的层次结构,用矩形框代表一个模块,用矩形框间次结构,用矩形框代表一个模块,用矩形框间的连线表示模块间的调用关系

44、。的连线表示模块间的调用关系。 仓库管理系统进仓处理1出仓处理2数据处理3查询3.1统计3.2报表打印3.3层次图常与IPO图一起使用,形成HIPO图,层次图中的每个方框对应一个IPO图。武汉纺织大学武汉纺织大学 数学与计算机学院数学与计算机学院改进的IPO图武汉纺织大学武汉纺织大学 数学与计算机学院数学与计算机学院软件结构图软件结构图的主要内容有:模块、模块软件结构图的主要内容有:模块、模块间的调用关系和模块之间传递的信息。间的调用关系和模块之间传递的信息。在结构化设计方法中,软件结构是软件在结构化设计方法中,软件结构是软件系统模块层次结构,反映了整个系统功系统模块层次结构,反映了整个系统功

45、能及其之间的关系。能及其之间的关系。武汉纺织大学武汉纺织大学 数学与计算机学院数学与计算机学院模块 在软件系统的软件结构图中,模块类型:在软件系统的软件结构图中,模块类型:传入模块、传出模块、变换模块、协调传入模块、传出模块、变换模块、协调模块、源模块等。模块、源模块等。 在软件结构图中,模块用方框来表示,在软件结构图中,模块用方框来表示,并用名字标识该方框。并用名字标识该方框。 武汉纺织大学武汉纺织大学 数学与计算机学院数学与计算机学院ASC 图中的主要内容图中的主要内容1 1、模块、模块-在在SC图中用图中用矩形框矩形框表示,并用名字来标记它表示,并用名字来标记它- - 模块调用关系模块调

46、用关系2 2、模块、模块的调用关系和接口的调用关系和接口B被调用模块被调用模块调用模块调用模块A(查询学生查询学生)B(查找学生记录查找学生记录)数据信号数据信号控制信号控制信号学学号号查找查找成功成功信号信号- - 模块间接口的表示模块间接口的表示武汉纺织大学武汉纺织大学 数学与计算机学院数学与计算机学院武汉纺织大学武汉纺织大学 数学与计算机学院数学与计算机学院传出模块 从上级模块获得数据,进行某些处理,再将其结果 传给下属模块。在此,将它传送的数据流称为逻辑输出 数据流。 传出模块DD逻辑输出数据流成绩输出成绩输出 武汉纺织大学武汉纺织大学 数学与计算机学院数学与计算机学院2022-4-9

47、变换模块 也叫加工模块。它是从上级模块获得数据,进行 特定的处理,将其转换为其他形式,再传回上级模块 它所加工的数据流叫做变换数据流。 变换模块CB变换数据流武汉纺织大学武汉纺织大学 数学与计算机学院数学与计算机学院协调模块 对所有下属模块进行协调和管理的模块。在一个 好的系统结构图中,协调模块应在较高层出现。协调模块YXYX武汉纺织大学武汉纺织大学 数学与计算机学院数学与计算机学院主模块C变换成D取得C给出D取得BB变换成CD变换成E给出E取得AA变换成BAABBBCCDCDED取得数据CD变换数据给出数据协调模块变换模块传出模块- 具有变换型系统结构图DFD-SC武汉纺织大学武汉纺织大学

48、数学与计算机学院数学与计算机学院调用关系 在软件结构图中,模块间的调用关系主要有三种:在软件结构图中,模块间的调用关系主要有三种:顺序调用、选择调用和循环调用顺序调用、选择调用和循环调用。方框之间的箭头表示模块之间的调用与被调用关系。方框之间的箭头表示模块之间的调用与被调用关系。 模块间调用的次序,习惯上是从左至右。模块间调用的次序,习惯上是从左至右。ABCD(a)顺序调用A顺序调用B、C和DABCD(b)选择调用A调用B或C和DABCD(c)循环调用A循环调用B、C和D武汉纺织大学武汉纺织大学 数学与计算机学院数学与计算机学院数据或控制信息 在软件结构中,模块传递的信息用带名称的短线箭在软件

49、结构中,模块传递的信息用带名称的短线箭头来表示。箭头方向代表信息传递的方向。头来表示。箭头方向代表信息传递的方向。 若箭头线尾是带空心圆圈,则表示该箭头线代表的若箭头线尾是带空心圆圈,则表示该箭头线代表的是是数据数据;若箭头线尾是带实心圆圈,则表示该箭头;若箭头线尾是带实心圆圈,则表示该箭头线代表的是线代表的是控制控制。 查询成绩学号查询标识记录地址读学生记录武汉纺织大学武汉纺织大学 数学与计算机学院数学与计算机学院3.3.2 数据流分析 数据流分析,又称变换分析数据流分析,又称变换分析,是一种将变换型数据流图映射是一种将变换型数据流图映射为变换型软件结构图的软件系为变换型软件结构图的软件系统

50、设计方法。统设计方法。 变换型数据流图一般呈线性形变换型数据流图一般呈线性形状,大致由三部分组成:传入状,大致由三部分组成:传入路径、变换中心和传出路径。路径、变换中心和传出路径。 变换型软件结构图则大致由四变换型软件结构图则大致由四部分模块组成:输入模块、中部分模块组成:输入模块、中心加工模块,输出模块和主控心加工模块,输出模块和主控模块。模块。 变换中心传入路径传出路径主控模块输入模块中心加工模块输出模块武汉纺织大学武汉纺织大学 数学与计算机学院数学与计算机学院武汉纺织大学武汉纺织大学 数学与计算机学院数学与计算机学院传入/传出路径和变换中心的标识 一般,可以采用一般,可以采用试探的办法试

51、探的办法来确定系统的变换中心和传入来确定系统的变换中心和传入/传出传出路径。路径。 从数据流图的物理输入始端出发,沿数据流一步步往数据流图从数据流图的物理输入始端出发,沿数据流一步步往数据流图的输出未端移动,直到遇到的数据流不能再被看作是系统的输的输出未端移动,直到遇到的数据流不能再被看作是系统的输入数据为止,则其前一个数据流便是入数据为止,则其前一个数据流便是系统的逻辑输入系统的逻辑输入。 从数据流图的物理输出未端一步步往数据流图的输入始端移动,从数据流图的物理输出未端一步步往数据流图的输入始端移动,直到遇到的数据流不能再被看作是系统的输入数据为止,则其直到遇到的数据流不能再被看作是系统的输

52、入数据为止,则其后一个数据流便是后一个数据流便是系统的逻辑输出系统的逻辑输出。 从物理输入始端至系统的逻辑输入构成系统的从物理输入始端至系统的逻辑输入构成系统的传入路径部分传入路径部分。从物理输出未端至系统的逻辑输出构成系统的从物理输出未端至系统的逻辑输出构成系统的传出路径部分传出路径部分。逻辑输入和逻辑输出之间的部分构成逻辑输入和逻辑输出之间的部分构成变换中心部分。变换中心部分。武汉纺织大学武汉纺织大学 数学与计算机学院数学与计算机学院一个例子 在找出系统的传入在找出系统的传入/传出路径和变换中心后,传出路径和变换中心后,在数据流图中用分界线来标识它们,在数据流图中用分界线来标识它们, 1编

53、辑2校验3计算4显示格式化6存储格式化5显示7存储初始数据编辑数据有效数据计算结果计算结果显示数据存储数据显示信息D1 数据记录表变换中心变换中心武汉纺织大学武汉纺织大学 数学与计算机学院数学与计算机学院第一级分解 将数据流图映射为一个能为信息的输入、将数据流图映射为一个能为信息的输入、变换和输出提供控制的特定结构变换和输出提供控制的特定结构。数据处理控制数据输入控制数据计算控制数据输出控制有效数据计算结果有效数据计算结果武汉纺织大学武汉纺织大学 数学与计算机学院数学与计算机学院第二级分解 将数据流图中的每一个加工处理映射为软件结构图中一个模块。将数据流图中的每一个加工处理映射为软件结构图中一

54、个模块。 对于对于传入路径中的加工处理传入路径中的加工处理,从变换中心的边界开始,沿着传,从变换中心的边界开始,沿着传入路径向外移动,把传入路径中遇到的每个加工处理映射成软入路径向外移动,把传入路径中遇到的每个加工处理映射成软件结构图中输入信息处理控制模块直接或间接调用的模块。件结构图中输入信息处理控制模块直接或间接调用的模块。对于对于传出路径中的加工处理传出路径中的加工处理,从变换中心的边界开始,沿着传,从变换中心的边界开始,沿着传出路径向外移动,把传出路径中遇到的每个加工处理映射成软出路径向外移动,把传出路径中遇到的每个加工处理映射成软件结构图中输出信息处理控制模块直接或间接调用的模块。件

55、结构图中输出信息处理控制模块直接或间接调用的模块。对于对于变换中心的加工处理变换中心的加工处理,则直接映射为变换流控制模块直接,则直接映射为变换流控制模块直接调用的模块。调用的模块。 武汉纺织大学武汉纺织大学 数学与计算机学院数学与计算机学院例子数据处理控制数据输入控制数据计算控制数据输出控制有效数据计算结果有效数据计算结果校验编辑计算显示格式化存储格式化有效数据编辑数据计算结果有效数据显示存储计算结果计算结果显示数据存储数据武汉纺织大学武汉纺织大学 数学与计算机学院数学与计算机学院例:统计成绩的输入、输出流边界例:统计成绩的输入、输出流边界2.7打印难度分析表2.5分析试题难度难度分析结果难

56、度分析表2.6打印分类统计表2.4分类统计成绩分类统计结果分类统计表考生名册2.2审定合格者2.8打印考生通知单2.3产生考生通知信息考生通知信息考生通知单正式成绩清单合格标准2.1检查成绩清单成绩清单正确成绩清单试题得分清单错误成绩清单武汉纺织大学武汉纺织大学 数学与计算机学院数学与计算机学院“统计成绩统计成绩”第一级分解的结构图第一级分解的结构图统计成绩统计成绩输入控制输入控制统计成绩统计成绩统计成绩统计成绩输出控制输出控制统计成绩统计成绩处理模块处理模块“统计成绩统计成绩”第一级分解的结构第一级分解的结构图图武汉纺织大学武汉纺织大学 数学与计算机学院数学与计算机学院“统计成绩统计成绩”第

57、二级分解的结构第二级分解的结构图图武汉纺织大学武汉纺织大学 数学与计算机学院数学与计算机学院例:汽车数字仪表板的设计例:汽车数字仪表板的设计功能:功能: 通过模通过模 - 数转换实现传感器和微处理机接口;数转换实现传感器和微处理机接口; 在发光二极管面板上显示数据;在发光二极管面板上显示数据; 指示每小时英里数指示每小时英里数(mph),行驶的里程,每加仑油行驶的里程,每加仑油行驶的英里数行驶的英里数(mpg)等等;等等; 指示加速或减速;指示加速或减速; 如果车速超过如果车速超过55mph ,则发出警告铃声。则发出警告铃声。武汉纺织大学武汉纺织大学 数学与计算机学院数学与计算机学院第一步:第

58、一步:DFD的分界,先分出的分界,先分出I、P、O三块三块燃料流燃料流 传感器信号传感器信号SPS旋转信号旋转信号读读旋转旋转信号信号收集收集和求和求平均平均确定确定加加/ /减减速速转换转换成成转转/ /分分计算计算里程里程计算计算mph,超超速值速值产生产生加加/ /减减速显示速显示计算计算燃料燃料消耗消耗计算计算gph读和读和校核校核产生产生mpg显示显示产生产生mph显示显示发出发出铃声铃声产生产生里程里程显示显示SPS SPS箭头指示箭头指示燃烧流燃烧流上箭头上箭头水平线水平线下箭头下箭头rpmrpmgphmphmpgmph超速值超速值英里英里显示显示铃声铃声mph显示显示mpg显示

59、显示武汉纺织大学武汉纺织大学 数学与计算机学院数学与计算机学院一般问题的一般问题的一级分解方一级分解方法:法:数字仪表板数字仪表板控制控制数据转换数据转换控制控制驱动仪表板驱动仪表板接收传感器接收传感器信号信号MPIO武汉纺织大学武汉纺织大学 数学与计算机学院数学与计算机学院第二步:映射第二步:映射ADCBMICBDA:每个处理直接对应:每个处理直接对应一个下层模块。一个下层模块。P:由边界向回溯,将:由边界向回溯,将每个遇到的处理器映每个遇到的处理器映成相应的层模块。成相应的层模块。I:由边界向外推,方:由边界向外推,方法与法与 类似类似OI武汉纺织大学武汉纺织大学 数学与计算机学院数学与计

60、算机学院例:例: 数字仪表板数字仪表板控制控制数据转换数据转换控制控制驱动仪表板驱动仪表板接收传感器接收传感器信号信号计算计算gph读燃料流读燃料流转换成转换成rpm收集收集sps读旋转信号读旋转信号确定确定加加/ /减速减速计算计算mph计算计算mpg计算计算里程里程加加/ /减速减速显示显示显示显示mpg显示显示mph显示显示里程里程发出发出铃声铃声发光二极管显示发光二极管显示武汉纺织大学武汉纺织大学 数学与计算机学院数学与计算机学院第三步:修改第三步:修改 本着高内聚、低耦合的原则。本着高内聚、低耦合的原则。注:每个模块应附一简要说明描述注:每个模块应附一简要说明描述 进出该模块的信息(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论