




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、4 总体设计总体设计4.1 设计过程设计过程4.2 设计原理设计原理4.3 描绘软件结构的图形工具描绘软件结构的图形工具4.4 面向数据流的设计方法面向数据流的设计方法1结构化设计和结构化分析的关系:结构化设计和结构化分析的关系:4.1 设计过程设计过程由两个主要阶段组成:由两个主要阶段组成:系统设计阶段,确定系统的具体实现方案系统设计阶段,确定系统的具体实现方案设想供选择的方案设想供选择的方案选取合理的方案选取合理的方案推荐最佳方案推荐最佳方案结构设计阶段,确定软件结构结构设计阶段,确定软件结构功能分解功能分解设计软件结构设计软件结构设计数据库设计数据库q制定测试计划制定测试计划q书写文档书
2、写文档q审查和复审审查和复审4.2 设计原则设计原则4.2.1 模块化模块化4.2.2 抽象化抽象化4.2.3 逐步求精逐步求精4.2.4 信息隐蔽和局部化信息隐蔽和局部化4.2.5 模块独立(耦合和内聚)模块独立(耦合和内聚)4.2.6 启发规则启发规则4.2.7 其他原则其他原则54.2 设计原理设计原理4.2.1 模块化模块化模块:模块:是由边界元素限定的相邻程序元素是由边界元素限定的相邻程序元素的序列,而且有一个总体标识符代表它。的序列,而且有一个总体标识符代表它。模块化:模块化:就是把程序划分成独立命名且可就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功独立访问的模块
3、,每个模块完成一个子功能,把这些模块集成起来构成一个整体,能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。可以完成指定的功能满足用户的需求。 模块化的根据:模块化的根据: 如果如果C(P1)C(P2),显然,显然E(P1)E(P2) 根据人类解决一般问题的经验,根据人类解决一般问题的经验,C(P1+P2)C(P1)+C(P2) 综上所述,得到下面的不等式综上所述,得到下面的不等式E(P1+P2)E(P1)+E(P2)每个程序都相每个程序都相应地有一个最应地有一个最适当的模块数适当的模块数目目M,使得系,使得系统的开发成本统的开发成本最小。最小。 模块化和软件成本评价一种设
4、计方法定义模块能力的评价一种设计方法定义模块能力的5条标条标准准 模块可分解性模块可分解性 模块可组装性模块可组装性 模块可理解性模块可理解性 模块连续性模块连续性 模块保护性模块保护性4.2.2 抽象抽象一般抽象过程:一般抽象过程: 处理复杂系统的惟一有效的方法是用层次的方处理复杂系统的惟一有效的方法是用层次的方式构造和分析它。式构造和分析它。 一个复杂的动态系统首先可以用一些高级的抽一个复杂的动态系统首先可以用一些高级的抽象概念构造和理解,这些高级概念又可以用一象概念构造和理解,这些高级概念又可以用一些较低级的概念构造和理解,如此进行下去,些较低级的概念构造和理解,如此进行下去,直至最低层
5、次的具体元素。直至最低层次的具体元素。 例:过程抽象、数据抽象例:过程抽象、数据抽象例:例:用筛选法求用筛选法求100以内的素数。所谓的筛选法,就是以内的素数。所谓的筛选法,就是从从2到到100中去掉中去掉2,3,5,7的倍数,剩下的就是的倍数,剩下的就是100以内的素数。以内的素数。 首先按程序功能写出一个框架首先按程序功能写出一个框架main() 建立建立2到到100的数组的数组A ,其中,其中Aii;.1 建立建立2到到10的素数表的素数表B ,存放,存放2到到10以内的素数;以内的素数;.2 若若Aii是是B 中任一数的倍数,则剔除中任一数的倍数,则剔除Ai;.3 输出输出A 中所有没
6、有被剔除的数;中所有没有被剔除的数;.4 4.2.3 逐步求精逐步求精上述框架中每一个加工语句都可进一步细化上述框架中每一个加工语句都可进一步细化main() /*建立建立2到到100的数组的数组A ,其中,其中Aii*/ .1 for (i = 2;i = 100;i+)Ai = i; /* 建立建立2到到10的素数表的素数表B ,存放,存放2到到10以内的素数以内的素数*/ .2 B1 =2; B2 = 3; B3 = 5; B4 = 7; /*若若Aii是是B 中任一数的倍数,则剔除中任一数的倍数,则剔除Ai*/ .3 for (j = 1; j = 4; j+) 检查检查A所有数能否被
7、所有数能否被Bj整除并将其从整除并将其从A剔除;剔除;.3.1 /*输出输出A 中所有没有被剔除的数中所有没有被剔除的数*/ .4 for (i = 2; i = 100; i+) 若若Ai没有被剔除,则输出之没有被剔除,则输出之.4.1 继续对继续对3.1和和4.1细化,直到每个语句都能用程序设计语细化,直到每个语句都能用程序设计语言来表示言来表示 4.2.5 模块独立模块独立模块独立:模块独立: 模块独立的概念是模块化、抽象、信息模块独立的概念是模块化、抽象、信息隐藏和局部化概念的直接结果。隐藏和局部化概念的直接结果。4.2.4 信息隐藏和局部化信息隐藏和局部化模块独立程度的两个定性标准度
8、量:模块独立程度的两个定性标准度量: 耦合耦合衡量不同模块彼此间互相依赖衡量不同模块彼此间互相依赖(连接连接)的紧密程度。耦合要低,即每个模块和其的紧密程度。耦合要低,即每个模块和其他模块之间的关系要简单;他模块之间的关系要简单; 内聚内聚衡量一个模块内部各个元素彼此结合衡量一个模块内部各个元素彼此结合的紧密程度。内聚要高,每个模块完成一的紧密程度。内聚要高,每个模块完成一个相对独立的特定子功能。个相对独立的特定子功能。 1. 耦合耦合 耦合:耦合:是对一个软件结构内不同模块之间是对一个软件结构内不同模块之间互连程度的度量。互连程度的度量。 要求:要求:在软件设计中应该追求尽可能松散在软件设计
9、中应该追求尽可能松散耦合的系统。耦合的系统。耦合程度的度量:耦合程度的度量:(1) 非直接耦合非直接耦合/完全独立完全独立(no direct coupling) 如果两个模块中的每一个都能独立地工作如果两个模块中的每一个都能独立地工作而不需要另一个模块的存在,那么它们完而不需要另一个模块的存在,那么它们完全独立全独立。 在一个软件系统中不可能所有模块之间都在一个软件系统中不可能所有模块之间都没有任何连接。没有任何连接。(2) 数据耦合数据耦合(data coupling)如果两个模块彼此间通过参数交换信息,如果两个模块彼此间通过参数交换信息,而且交换的信息仅仅是数据,那么这种耦而且交换的信息
10、仅仅是数据,那么这种耦合称为数据耦合。合称为数据耦合。评价:评价: 系统中至少必须存在这种耦合。一般说来系统中至少必须存在这种耦合。一般说来,一个系统内可以只包含数据耦合。,一个系统内可以只包含数据耦合。 数据耦合是理想的目标。数据耦合是理想的目标。 维护更容易,对一个模块的修改不会是另维护更容易,对一个模块的修改不会是另一个模块产生退化错误。一个模块产生退化错误。 (3) 控制耦合控制耦合(control coupling)如果两个模块彼此间传递的信息中有控制如果两个模块彼此间传递的信息中有控制信息,这种耦合称为控制耦合。信息,这种耦合称为控制耦合。 (4) 特征耦合特征耦合(stamp c
11、oupling)当把整个数据结构作为参数传递而被调用当把整个数据结构作为参数传递而被调用的模块只需要使用其中一部分数据元素时,的模块只需要使用其中一部分数据元素时,就出现了特征耦合。就出现了特征耦合。评价:评价:被调用的模块可使用的数据多于它确实需被调用的模块可使用的数据多于它确实需要的数据,这将导致对数据的访问失去控要的数据,这将导致对数据的访问失去控制,从而给计算机犯罪提供了机会。制,从而给计算机犯罪提供了机会。无论何时把指针作为参数进行传递,都应无论何时把指针作为参数进行传递,都应该仔细检查该耦合。该仔细检查该耦合。(5) 公共环境耦合公共环境耦合(common coupling)当两个
12、或多个模块通过一个公共数据环境当两个或多个模块通过一个公共数据环境相互作用时,它们之间的耦合称为公共环相互作用时,它们之间的耦合称为公共环境耦合。公共环境可以是全程变量、共享境耦合。公共环境可以是全程变量、共享的通信区、内存的公共覆盖区、任何存储的通信区、内存的公共覆盖区、任何存储介质上的文件、物理设备等等。介质上的文件、物理设备等等。公共环境耦合的类型:公共环境耦合的类型: 一个模块往公共环境送数据,另一个模块从公共环境一个模块往公共环境送数据,另一个模块从公共环境取数据。数据耦合的一种形式,是比较松散的耦合。取数据。数据耦合的一种形式,是比较松散的耦合。 两个模块都既往公共环境送数据又从里
13、面取数据,这两个模块都既往公共环境送数据又从里面取数据,这种耦合比较紧密,介于数据耦合和控制耦合之间。种耦合比较紧密,介于数据耦合和控制耦合之间。(6) 内容耦合内容耦合(content coupling)最高程度的耦合是内容耦合。如果出现下最高程度的耦合是内容耦合。如果出现下列情况之一,两个模块间就发生了内容耦列情况之一,两个模块间就发生了内容耦合:合:一个模块访问另一个模块的内部数据;一个模块访问另一个模块的内部数据;一个模块不通过正常入口转到另一个模块的内一个模块不通过正常入口转到另一个模块的内部;部;两个模块有一部分程序代码重叠;两个模块有一部分程序代码重叠;一个模块有多个入口。一个模
14、块有多个入口。 24耦合是影响软件复杂程度的一个重要因素。耦合是影响软件复杂程度的一个重要因素。应该采取下述设计原则:应该采取下述设计原则: 尽量使用数据耦合,尽量使用数据耦合, 少用控制耦合和特征耦合,少用控制耦合和特征耦合, 限制公共环境耦合的范围,限制公共环境耦合的范围, 完全不用内容耦合。完全不用内容耦合。 2. 内聚内聚 内聚:内聚:标志一个模块内各个元素彼此结合标志一个模块内各个元素彼此结合的紧密程度,它是信息隐藏和局部化概念的紧密程度,它是信息隐藏和局部化概念的自然扩展。简单地说,理想内聚的模块的自然扩展。简单地说,理想内聚的模块只做一件事情。只做一件事情。 要求:要求:设计时应
15、该力求做到高内聚,通常设计时应该力求做到高内聚,通常中等程度的内聚也是可以采用的,而且效中等程度的内聚也是可以采用的,而且效果和高内聚相差不多;但是,低内聚不要果和高内聚相差不多;但是,低内聚不要使用。使用。 内聚和耦合是密切相关的,模块内的高内内聚和耦合是密切相关的,模块内的高内聚往往意味着模块间的松耦合。实践表明聚往往意味着模块间的松耦合。实践表明内聚更重要,应该把更多注意力集中到提内聚更重要,应该把更多注意力集中到提高模块的内聚程度上。高模块的内聚程度上。 内聚类内聚类型型功能功能内聚性增加内聚性增加 功能内功能内聚聚模块内的操作是完成某一功能必不可少的部分信息内信息内聚聚模块多种功能在
16、同一个数据结构上操作,各功能有唯一入口点通信内通信内聚聚模块内的操作有相同的输入或输出数据过程内过程内聚聚模块内的操作必须按照特定顺序执行时间内时间内聚聚模块内的操作基本无关联,仅因为执行时间相同而组合在一起逻辑内逻辑内聚聚模块内各个操作功能类似,通过判断参数决定某功能的执行,又称控制内聚偶然内偶然内聚聚模块内各个操作之间基本无联系或只有很松散的联系27内聚程度的度量:内聚程度的度量:(1) 偶然内聚偶然内聚(coincidental cohesion) 如果一个模块完成一组任务,这些任务彼如果一个模块完成一组任务,这些任务彼此间即使有关系,关系也是很松散的,就此间即使有关系,关系也是很松散的
17、,就叫做偶然内聚。叫做偶然内聚。MA=B+CGET CHERIF R=5 THEN S=1评价:评价: 模块内各元素之间没有实质性联系,很可模块内各元素之间没有实质性联系,很可能在一种应用场合需要修改这个模块,在能在一种应用场合需要修改这个模块,在另一种应用场合又不允许这种修改,从而另一种应用场合又不允许这种修改,从而陷入困境;陷入困境; 可理解性差,可维护性产生退化;可理解性差,可维护性产生退化; 模块是不可重用的。模块是不可重用的。解决方案:解决方案: 将模块分成更小的模块,每个小模块执行将模块分成更小的模块,每个小模块执行一个操作。一个操作。(2) 逻辑内聚逻辑内聚(logical co
18、hesion)如果一个模块完成的任务在逻辑上属于相如果一个模块完成的任务在逻辑上属于相同或相似的一类,则称为逻辑内聚。同或相似的一类,则称为逻辑内聚。new_operationfunction_code=7;new_operation(function_code,dummy1,dummy2,dummy3);/dummy1、dummy2和和dummy3是伪变量,是伪变量,/如果如果function_code=7则不使用它们则不使用它们评价:评价: 接口难以理解,造成整体上不易理解;接口难以理解,造成整体上不易理解; 完成多个操作的代码互相纠缠在一起,即完成多个操作的代码互相纠缠在一起,即使局部功
19、能的修改有时也会影响全局,导使局部功能的修改有时也会影响全局,导致严重的维护问题;致严重的维护问题; 难以重用。难以重用。解决方案:解决方案: 模块分解。模块分解。 (3) 时间内聚时间内聚(temporal cohesion)如果一个模块包含的任务必须在同一段时如果一个模块包含的任务必须在同一段时间内执行,就叫时间内聚。间内执行,就叫时间内聚。执行初始化执行初始化打开旧主文件、新主文件、事务文件和打印文件;打开旧主文件、新主文件、事务文件和打印文件;初始化销售地区表;初始化销售地区表;读第一条事务记录和第一条旧主文件记录;读第一条事务记录和第一条旧主文件记录;评价:评价: 时间关系在一定程度
20、上反映了程序某些实时间关系在一定程度上反映了程序某些实质,所以时间内聚比逻辑内聚好一些。质,所以时间内聚比逻辑内聚好一些。 模块内操作之间的关系很弱,与其他模块模块内操作之间的关系很弱,与其他模块的操作却有很强的关联。的操作却有很强的关联。 时间内聚的模块不太可能重用。时间内聚的模块不太可能重用。 (4) 过程内聚过程内聚(procedural cohesion) 如果一个模块内的处理元素是相关的,而如果一个模块内的处理元素是相关的,而且必须以特定次序执行,则称为过程内聚。且必须以特定次序执行,则称为过程内聚。 使用程序流程图作为工具设计软件时,常使用程序流程图作为工具设计软件时,常常通过研究
21、流程图确定模块的划分,这样常通过研究流程图确定模块的划分,这样得到的往往是过程内聚的模块。得到的往往是过程内聚的模块。 评价:评价: 比时间内聚好,至少操作之间是过程关比时间内聚好,至少操作之间是过程关联的。联的。 仍是弱连接,不太可能重用模块。仍是弱连接,不太可能重用模块。解决方案:解决方案: 分割为单独的模块,每个模块执行一个分割为单独的模块,每个模块执行一个操作。操作。(5) 通信内聚通信内聚(communicational cohesion)如果模块中所有元素都使用同一个输入数如果模块中所有元素都使用同一个输入数据和据和(或或)产生同一个输出数据,则称为通产生同一个输出数据,则称为通信
22、内聚。即在同一个数据结构上操作。信内聚。即在同一个数据结构上操作。评价:评价:模块中各操作紧密相连,比过程内聚更好模块中各操作紧密相连,比过程内聚更好。不能重用。不能重用。解决方案:解决方案:分成多个模块,每个模块执行一个操作。分成多个模块,每个模块执行一个操作。(6) 顺序内聚顺序内聚(sequential cohesion)如果一个模块内的处理元素和同一个功能如果一个模块内的处理元素和同一个功能密切相关,而且这些处理必须顺序执行,密切相关,而且这些处理必须顺序执行,则称为顺序内聚。则称为顺序内聚。评价:评价:根据数据流图划分模块时,通常得到顺序根据数据流图划分模块时,通常得到顺序内聚的模块
23、,这种模块彼此间的连接往往内聚的模块,这种模块彼此间的连接往往比较简单。比较简单。 (7) 功能内聚功能内聚(functional cohesion)如果模块内所有处理元素属于一个整体,如果模块内所有处理元素属于一个整体,完成一个单一的功能,则称为功能内聚。完成一个单一的功能,则称为功能内聚。功能内聚是最高程度的内聚。功能内聚是最高程度的内聚。评价:评价:模块可重用,应尽可能重用;模块可重用,应尽可能重用;可隔离错误,维护更容易;可隔离错误,维护更容易;扩充产品功能时更容易。扩充产品功能时更容易。七种内聚的优劣评分结果:七种内聚的优劣评分结果: 高内聚:功能内聚高内聚:功能内聚 10分分 顺序
24、内聚顺序内聚 9分分 中内聚:通信内聚中内聚:通信内聚 7分分 过程内聚过程内聚 5分分 低内聚:时间内聚低内聚:时间内聚 3分分 逻辑内聚逻辑内聚 1分分 偶然内聚偶然内聚 0分分 设计时力争做到高内聚,并且能够辨认出设计时力争做到高内聚,并且能够辨认出低内聚的模块。低内聚的模块。 4.2.6 启发规则启发规则1. 改进软件结构提高模块独立性改进软件结构提高模块独立性通过模块分解或合并,降低耦合提高内通过模块分解或合并,降低耦合提高内聚。聚。两个方面:两个方面: 模块功能完善化。一个完整的模块包含:模块功能完善化。一个完整的模块包含: 执行规定的功能的部分执行规定的功能的部分 出错处理的部分
25、出错处理的部分 返回一个返回一个“结束标志结束标志”消除重复功能,改善软件结构。消除重复功能,改善软件结构。 完全相似完全相似 局部相似局部相似2. 模块规模应该适中模块规模应该适中3. 深度、宽度、扇出和扇入都应适当深度、宽度、扇出和扇入都应适当 深度:深度:软件结构中控制的层数,它往往能软件结构中控制的层数,它往往能粗略地标志一个系统的大小和复杂程度。粗略地标志一个系统的大小和复杂程度。 宽度:宽度:软件结构内同一个层次上的模块总软件结构内同一个层次上的模块总数的最大值。数的最大值。 扇出:扇出:一个模块直接控制一个模块直接控制(调用调用)的模块数目。的模块数目。 扇入:扇入:有多少个上级
26、模块直接调用它。有多少个上级模块直接调用它。4. 模块的作用域应该在控制域之内模块的作用域应该在控制域之内 模块的作用域:模块的作用域:定义为受该模块内一个判定义为受该模块内一个判定影响的所有模块的集合。定影响的所有模块的集合。 模块的控制域:模块的控制域:是这个模块本身以及所有是这个模块本身以及所有直接或间接从属于它的模块的集合。直接或间接从属于它的模块的集合。 在一个设计得很好的系统中,所有受判定在一个设计得很好的系统中,所有受判定影响的模块应该都从属于做出判定的那个影响的模块应该都从属于做出判定的那个模块,最好局限于做出判定的那个模块本模块,最好局限于做出判定的那个模块本身及它的直属下级
27、模块。身及它的直属下级模块。解决方案:解决方案: 把模块把模块A中的判定移到模块中的判定移到模块M中;中; 把模块把模块G移到模块移到模块A下面,作为他的下级模下面,作为他的下级模块。块。 4. 力争降低模块接口的复杂程度力争降低模块接口的复杂程度 模块接口复杂是软件发生错误的一个主要模块接口复杂是软件发生错误的一个主要原因。应该仔细设计模块接口,使得信息原因。应该仔细设计模块接口,使得信息传递简单并且和模块的功能一致。传递简单并且和模块的功能一致。例:解一元二次方程的函数例:解一元二次方程的函数QUAD_ROOT(TBL,X)其中数组其中数组TBL传送方程的系数传送方程的系数数组数组X送回求
28、得的根送回求得的根QUAD_ROOT(A,B,C,ROOT1,ROOT2)6. 设计单入口单出口的模块设计单入口单出口的模块 警告软件工程师不要使模块间出现内容耦警告软件工程师不要使模块间出现内容耦合。当从顶部进入模块并且从底部退出来合。当从顶部进入模块并且从底部退出来时,软件是比较容易理解的,因此也是比时,软件是比较容易理解的,因此也是比较容易维护的。较容易维护的。7. 模块功能应该可以预测模块功能应该可以预测 模块的功能应该能够预测,但也要防止模模块的功能应该能够预测,但也要防止模块功能过分局限。块功能过分局限。 功能可预测:功能可预测:如果一个模块可以当做一个如果一个模块可以当做一个黑盒
29、子,只要输入的数据相同就产生同样黑盒子,只要输入的数据相同就产生同样的输出,这个模块的功能就是可以预测的。的输出,这个模块的功能就是可以预测的。4.3 描绘软件结构的图形工具描绘软件结构的图形工具4.3.1 层次图和层次图和HIPO图图1. 层次图层次图(H图图) 层次图用来描绘软件的层次结构。很适于在自顶向层次图用来描绘软件的层次结构。很适于在自顶向下设计软件的过程中使用。下设计软件的过程中使用。层次图和层次方框图的区别:层次图和层次方框图的区别:层次图层次图层次方框图层次方框图作用作用描绘软件结构描绘软件结构描绘数据结构描绘数据结构矩形框矩形框模块模块数据元素数据元素连线连线调用关系调用关
30、系组成关系组成关系正文加工系统的层次图 2. HIPO图图 HIPO图是美国图是美国IBM公司发明的公司发明的“层次图层次图+输入输入/处理处理/输出图输出图”的英文缩写。的英文缩写。 为了能使为了能使HIPO图具有可追踪性,在图具有可追踪性,在H图图(层层次图次图)里除了最顶层的方框之外,每个方框里除了最顶层的方框之外,每个方框都加了编号。都加了编号。和和H图中每个方框相对应,应该有一张图中每个方框相对应,应该有一张IPO图描绘这个方框代表的模块的处理过程。图描绘这个方框代表的模块的处理过程。模块在模块在H图中的编号便于追踪了解这个模块图中的编号便于追踪了解这个模块在软件结构中的位置。在软件
31、结构中的位置。4.3.2 结构图结构图Yourdon提出的结构图是进行软件结构设计提出的结构图是进行软件结构设计的另一个有力工具。结构图和层次图类似,的另一个有力工具。结构图和层次图类似,也是描绘软件结构的图形工具。也是描绘软件结构的图形工具。基本符号:基本符号:方框代表一个模块;方框代表一个模块;方框之间的直线表示模块的调用关系;方框之间的直线表示模块的调用关系;尾部是空心圆箭头表示传递的是数据;尾部是空心圆箭头表示传递的是数据;尾部实心圆箭头表示传递的是控制信息。尾部实心圆箭头表示传递的是控制信息。 附加符号:附加符号: 选择调用:判定为选择调用:判定为真时调用真时调用A,为假,为假时调用
32、时调用B。 循环调用:模块循环调用:模块M循环调用模块循环调用模块A、B、C。注意:注意: 层次图和结构图并不严格表示模块的调用层次图和结构图并不严格表示模块的调用次序,多数人习惯按调用次序从左到右画次序,多数人习惯按调用次序从左到右画模块;模块; 层次图和结构图并不指明何时调用下层模层次图和结构图并不指明何时调用下层模块;块; 层次图和结构图只表明一个模块调用那些层次图和结构图只表明一个模块调用那些模块,没有表示模块内还有没有其他成分;模块,没有表示模块内还有没有其他成分; 通常用层次图作为描绘软件结构的文档;通常用层次图作为描绘软件结构的文档; 由层次图导出结构图的过程,可以作为检由层次图
33、导出结构图的过程,可以作为检查设计正确性和评价模块独立性的好方法。查设计正确性和评价模块独立性的好方法。4.4 面向数据流的设计方法面向数据流的设计方法面向数据流的设计方法定义了一些不同面向数据流的设计方法定义了一些不同的的“映射映射”,利用这些映射可以把数据,利用这些映射可以把数据流图变换成软件结构。流图变换成软件结构。4.4.1 概念概念面向数据流的设计方法把信息流映射成面向数据流的设计方法把信息流映射成软件结构,信息流的类型决定了映射的软件结构,信息流的类型决定了映射的方法。方法。信息流有两种类型:信息流有两种类型:变换流变换流事务流事务流1. 变换流变换流 信息沿输入通路进入系统,同时
34、由外部形信息沿输入通路进入系统,同时由外部形式变换成内部形式,进入系统的信息通过式变换成内部形式,进入系统的信息通过变换中心,经加工处理以后再沿输出通路变换中心,经加工处理以后再沿输出通路变换成外部形式离开软件系统。变换成外部形式离开软件系统。2. 事务流事务流数据沿输入通路到达一个处理数据沿输入通路到达一个处理T,T根据输根据输入数据的类型在若干个动作序列中选出一入数据的类型在若干个动作序列中选出一个来执行。处理个来执行。处理T称为事务中心,它完成下称为事务中心,它完成下述任务:述任务:接收输入数据;接收输入数据;分析每个事务以分析每个事务以 确定它的类型;确定它的类型;根据事务类型根据事务
35、类型 选取一条活动通路。选取一条活动通路。 3. 设计过程设计过程 4.4.2 变换分析变换分析变换分析是一系列设计步骤的总称,经过变换分析是一系列设计步骤的总称,经过这些步骤把具有变换流特点的数据流图按这些步骤把具有变换流特点的数据流图按预先确定的模式映射成软件结构。预先确定的模式映射成软件结构。设计步骤:设计步骤:(1) 复查基本系统模型复查基本系统模型 确保系统的输入数据和输出数据符合实际。确保系统的输入数据和输出数据符合实际。(2) 复查并精化数据流图复查并精化数据流图 对需求分析阶段得出的数据流图认真复查,对需求分析阶段得出的数据流图认真复查,并且在必要时进行精化。并且在必要时进行精
36、化。 不仅要确保数据流图给出了目标系统的正不仅要确保数据流图给出了目标系统的正确的逻辑模型,而且应该使数据流图中每确的逻辑模型,而且应该使数据流图中每个处理都代表一个规模适中相对独立的子个处理都代表一个规模适中相对独立的子功能。功能。 (3) 确定数据流图具有变换特性还是事务特性确定数据流图具有变换特性还是事务特性一个系统中的所有信息流都可以认为是变一个系统中的所有信息流都可以认为是变换流,但是,当遇到有明显事务特性的信换流,但是,当遇到有明显事务特性的信息流时,建议采用事务分析方法进行设计。息流时,建议采用事务分析方法进行设计。确定数据流的全局特性和局部特性。确定数据流的全局特性和局部特性。
37、(4) 确定输入流和输出流的边界,从而孤立出确定输入流和输出流的边界,从而孤立出变换中心变换中心输入流和输出流的边界和对它们的解释有输入流和输出流的边界和对它们的解释有关,不同设计人员可能会在流内选取稍微关,不同设计人员可能会在流内选取稍微不同的点作为边界的位置。不同的点作为边界的位置。(5) 完成完成“第一级分解第一级分解”。位于软件结构最顶层的控制模块位于软件结构最顶层的控制模块Cm协调协调下述从属的控制功能:下述从属的控制功能:输入信息处理控制模块输入信息处理控制模块Ca,协调对所有输入数协调对所有输入数据的接收;据的接收;变换中心控制模块变换中心控制模块Ct,管理对内部形式的数据的管理对内部形式的数据的所有操作;所有操作;输出信息处理控制模块输出信息
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 简装修商品房出售合同(4篇)
- 《拼音配图闪卡》课件
- 文员辞职申请书(34篇)
- 参考活动2 校园新部门 教学设计 -2024-2025学年初中综合实践活动苏少版八年级上册
- 全国青岛版信息技术八年级下册第2单元第3课《谜语大擂台(一)》教学设计
- 《财务分析报告的编制》课件
- 幼儿园教师教育实习总结范文(4篇)
- 标准个人服务合同书(4篇)
- 《提升亲子沟通技巧》课件
- 2025口腔诊所年度工作总结范文(17篇)
- GB/T 38615-2020超声波物位计通用技术条件
- 商业银行经营管理学商业银行资产负债管理课件
- 智慧环卫大数据信息化云平台建设和运营综合解决方案
- 2022Z世代洞察报告QuestMobile
- 中国制造业数字化转型研究报告
- 申请法院调查取证申请书(调取银行资金流水)
- 办公室事故防范(典型案例分析)
- 三治融合课件讲解
- 第二部分-CPO-10中央机房优化控制系统
- 设计概论重点知识
- 留仙洞总部基地城市设计
评论
0/150
提交评论