结构化软件设计课件.ppt





《结构化软件设计课件.ppt》由会员分享,可在线阅读,更多相关《结构化软件设计课件.ppt(114页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第四章第四章 结构化软件设计结构化软件设计软件设计的概念软件设计的概念结构化设计方法结构化设计方法过程设计过程设计JacksonJackson方法方法4.1 4.1 软件设计的概念软件设计的概念模块和模块化模块和模块化 工程上,许多大的系统都是由一些较小的单元组成。例如,建筑工程中的砖瓦和构件,机械工程中工程上,许多大的系统都是由一些较小的单元组成。例如,建筑工程中的砖瓦和构件,机械工程中的各种零部件等。这样做的优点是便于加工制造,便于维修,而且有些零部件可以标准化,为多个系的各种零部件等。这样做的优点是便于加工制造,便于维修,而且有些零部件可以标准化,为多个系统所用。同样,软件系统也可以根据
2、其功能分解成许多较小的程序单元,它们就是模块。统所用。同样,软件系统也可以根据其功能分解成许多较小的程序单元,它们就是模块。一般把用一个名字就可调用的一段程序称为一般把用一个名字就可调用的一段程序称为“模块模块”模块具有如下模块具有如下3 3个基本属性。个基本属性。功能:指该模块要完成的任务。功能:指该模块要完成的任务。逻辑:描述模块为了完成任务,模块内部怎么做。逻辑:描述模块为了完成任务,模块内部怎么做。状态:使用该模块时的环境和条件。状态:使用该模块时的环境和条件。对于一个模块,还应该按模块的外部特性与内部特性分别进行描述。模块的外部特性是指模块的模对于一个模块,还应该按模块的外部特性与内
3、部特性分别进行描述。模块的外部特性是指模块的模块名、模块的输入输出参数,以及它给程序乃至整个系统造成的影响。而模块的内部特性则是指完块名、模块的输入输出参数,以及它给程序乃至整个系统造成的影响。而模块的内部特性则是指完成其功能的程序代码和仅供该模块内部使用的数据。对于其他模块来说,只需了解被调用模块的外部成其功能的程序代码和仅供该模块内部使用的数据。对于其他模块来说,只需了解被调用模块的外部特性就足够了,不必了解它的内部特性。在软件设计时,通常是先确定模块的外部特性,然后再确定特性就足够了,不必了解它的内部特性。在软件设计时,通常是先确定模块的外部特性,然后再确定它的内部特性。前者是软件总体设
4、计的任务,后者是详细设计的任务。它的内部特性。前者是软件总体设计的任务,后者是详细设计的任务。模块化是把整个系统划分成若干个模块,每个模块完成一个子功能,将多个模块组织起来实现整个模块化是把整个系统划分成若干个模块,每个模块完成一个子功能,将多个模块组织起来实现整个系统的功能。模块化设计方法强调清楚地定义每个模块的功能和它的输入输出参数,而模块的实现系统的功能。模块化设计方法强调清楚地定义每个模块的功能和它的输入输出参数,而模块的实现细节隐藏在各自的模块之中,与其他模块之间的关系可以是调用关系,因此模块化程序易于调试和修细节隐藏在各自的模块之中,与其他模块之间的关系可以是调用关系,因此模块化程
5、序易于调试和修改。随着模块规模的减小,模块的开发成本减少,但是模块之间的接口变得复杂起来,使得模块的集改。随着模块规模的减小,模块的开发成本减少,但是模块之间的接口变得复杂起来,使得模块的集成成本增加。成成本增加。那么模块的规模多大才合适呢?模块之间的关系可能密切到什么程度呢?软件工程用模块独立性来那么模块的规模多大才合适呢?模块之间的关系可能密切到什么程度呢?软件工程用模块独立性来衡量。衡量。耦合的概念耦合的概念主程序主程序子程序子程序1子程序子程序2模块之间无连接,则无耦合模块之间无连接,则无耦合主程序主程序子程序子程序1子程序子程序2模块之间存在连接,则存在耦合模块之间存在连接,则存在耦
6、合耦合是模块之间的互连程度度量耦合是模块之间的互连程度度量模块之间的连接有:调用,返回,进入,跳出模块之间的连接有:调用,返回,进入,跳出数据耦合数据耦合AB调用,返回,参数传递调用,返回,参数传递数据耦合数据耦合开发货单开发货单计算金额计算金额单价单价数量数量金额金额控制耦合控制耦合PROC A().B(x,y,1)/调用调用B,使用其功能,使用其功能1.B(x,y,2)/调用调用B,使用其功能,使用其功能2PROC B(a,b,flag)do casecase flag=1功能功能1case flag=2功能功能2.endcase控制耦合控制耦合公共环境耦合公共环境耦合图3.3公共环境耦合
7、例图公共环境耦合公共环境耦合内容耦合内容耦合内容耦合内容耦合一个模块直接访问另一个模块的内部数据;一个模块直接访问另一个模块的内部数据;一个模块直接访问另一个模块的内部数据;一个模块直接访问另一个模块的内部数据;一个模块不通过正常入口转到另一个模块内部;一个模块不通过正常入口转到另一个模块内部;一个模块不通过正常入口转到另一个模块内部;一个模块不通过正常入口转到另一个模块内部;两个模块有一部分程序代码重叠;两个模块有一部分程序代码重叠;两个模块有一部分程序代码重叠;两个模块有一部分程序代码重叠;一个模块有多个入口;一个模块有多个入口;一个模块有多个入口;一个模块有多个入口;内聚的概念内聚的概念
8、内聚标志一个模块内部各元素彼此结合的内聚标志一个模块内部各元素彼此结合的紧密程度。紧密程度。理想内聚的模块只做一件事。理想内聚的模块只做一件事。在进程概要设计时,要尽量采取高内聚,在进程概要设计时,要尽量采取高内聚,避免使用低内聚。避免使用低内聚。内聚与耦合呈反比关系,模块内的内聚度内聚与耦合呈反比关系,模块内的内聚度越高,模块间的耦合度越低。越高,模块间的耦合度越低。内聚与模块独立性的关系内聚与模块独立性的关系图3.5内聚性逻辑内聚逻辑内聚如果一个模块内部的各组成部分的处理动如果一个模块内部的各组成部分的处理动作在逻辑上相似,但功能都彼此不同或无作在逻辑上相似,但功能都彼此不同或无关,则称为
9、逻辑聚合。关,则称为逻辑聚合。一个逻辑聚合模块往往包括若干个逻辑相一个逻辑聚合模块往往包括若干个逻辑相似的动作,使用时可以选用一个或几个功似的动作,使用时可以选用一个或几个功能。能。例如:把编辑各种输入数据的功能放在一例如:把编辑各种输入数据的功能放在一个模块中。个模块中。时间内聚时间内聚如果将需要同时执行的部分放在同一模块如果将需要同时执行的部分放在同一模块中,如初始化或结束模块等,则称为时间中,如初始化或结束模块等,则称为时间内聚。内聚。例如:程序设计中的初始化模块。例如:程序设计中的初始化模块。顺序内聚顺序内聚如果模块内的处理是相关的,必须以如果模块内的处理是相关的,必须以特定顺序执行,
10、前一个处理动作所产特定顺序执行,前一个处理动作所产生的输出数据是后一个处理动作的输生的输出数据是后一个处理动作的输入数据,则称为过程内聚。入数据,则称为过程内聚。过程聚合维护起来不如功能聚合方便,过程聚合维护起来不如功能聚合方便,要修改模块中的一个功能,会影响到要修改模块中的一个功能,会影响到同一个模块中的其他功能。同一个模块中的其他功能。过程内聚过程内聚如果一个模块内部的各个组成部分的处理动作各如果一个模块内部的各个组成部分的处理动作各如果一个模块内部的各个组成部分的处理动作各如果一个模块内部的各个组成部分的处理动作各不相同,彼此也没有联系,但他们都受同一个控不相同,彼此也没有联系,但他们都
11、受同一个控不相同,彼此也没有联系,但他们都受同一个控不相同,彼此也没有联系,但他们都受同一个控制流支配,决定他们的执行次序,称为过程聚合。制流支配,决定他们的执行次序,称为过程聚合。制流支配,决定他们的执行次序,称为过程聚合。制流支配,决定他们的执行次序,称为过程聚合。在使用流程图进程程序设计,并通过对流程图的在使用流程图进程程序设计,并通过对流程图的在使用流程图进程程序设计,并通过对流程图的在使用流程图进程程序设计,并通过对流程图的划分组成模块时,就会得到过程内聚模块。划分组成模块时,就会得到过程内聚模块。划分组成模块时,就会得到过程内聚模块。划分组成模块时,就会得到过程内聚模块。循环体循环
12、体计算累积计算累积事务记录事务记录累积销售额累积销售额累积订货量累积订货量通过循环体,计算通过循环体,计算两种累积数。两种累积数。通信内聚通信内聚如果一个模块内各组成部分的处理动作都使用相如果一个模块内各组成部分的处理动作都使用相如果一个模块内各组成部分的处理动作都使用相如果一个模块内各组成部分的处理动作都使用相同的输入数据或相同的输出数据,称为通讯聚合。同的输入数据或相同的输出数据,称为通讯聚合。同的输入数据或相同的输出数据,称为通讯聚合。同的输入数据或相同的输出数据,称为通讯聚合。案例:通信内聚案例:通信内聚获得配件单获得配件单价和库存量价和库存量配件编号配件编号库存量库存量单价单价两个工
13、作:两个工作:1.按配件编号查询按配件编号查询“数数据存储据存储”,获得单价。,获得单价。2.按配件编号查询按配件编号查询“数数据存储据存储”,获得库存量。,获得库存量。这两个处理动作都使用相同的输入数据,称为通讯聚合。这两个处理动作都使用相同的输入数据,称为通讯聚合。功能内聚功能内聚功能内聚功能内聚如果一个模块的各个成分都是完成某个具体任如果一个模块的各个成分都是完成某个具体任如果一个模块的各个成分都是完成某个具体任如果一个模块的各个成分都是完成某个具体任务必不可少的成分,这些成分协同工作,紧密务必不可少的成分,这些成分协同工作,紧密务必不可少的成分,这些成分协同工作,紧密务必不可少的成分,
14、这些成分协同工作,紧密联系,不可分割,则称为功能内聚。联系,不可分割,则称为功能内聚。联系,不可分割,则称为功能内聚。联系,不可分割,则称为功能内聚。功能内聚的内聚度最高,概要设计中要追求的功能内聚的内聚度最高,概要设计中要追求的功能内聚的内聚度最高,概要设计中要追求的功能内聚的内聚度最高,概要设计中要追求的目标。目标。目标。目标。满足功能内聚的模块只执行一个功能,这是一满足功能内聚的模块只执行一个功能,这是一满足功能内聚的模块只执行一个功能,这是一满足功能内聚的模块只执行一个功能,这是一个判断模块是否是功能内聚的方法。个判断模块是否是功能内聚的方法。个判断模块是否是功能内聚的方法。个判断模块
15、是否是功能内聚的方法。将分析模型转换为软件设计将分析模型转换为软件设计将分析模型转换为软件设计将分析模型转换为软件设计数据数据字典字典数据数据流图流图E-RE-R图图状态变迁图状态变迁图加加加加工工工工规规规规约约约约控制规约控制规约控制规约控制规约数数据据对对描描 述述象象数数 据据 设设 计计体系结构设计体系结构设计接口设计接口设计过程设计过程设计分析模型分析模型设计模型设计模型概要设计的任务概要设计的任务 把系统的功能需求分配给软件结构,形成软件的模块结构图。简要的讲,就是把流程图中的加工(处理)转化成模块,形成模块结构图。软件的模块结构图软件的模块结构图概要设计的表示形式概要设计的表示
16、形式层次(层次(hierarchy)图图HIPOHIPO图图SCSC图图带编号的层次图(带编号的层次图(HIPO HIPO)与层次图(与层次图(与层次图(与层次图(H H)中每个方框相对应(按编号),都有一)中每个方框相对应(按编号),都有一)中每个方框相对应(按编号),都有一)中每个方框相对应(按编号),都有一张张张张IPOIPO图描述该框代表的模块的处理过程,称为图描述该框代表的模块的处理过程,称为图描述该框代表的模块的处理过程,称为图描述该框代表的模块的处理过程,称为HIPOHIPO图。图。图。图。IPO图的一个例子图的一个例子SC图允许使用的六种模块图允许使用的六种模块一般地,在系统结
17、构图中有一般地,在系统结构图中有一般地,在系统结构图中有一般地,在系统结构图中有6 6种类型的模块;种类型的模块;种类型的模块;种类型的模块;(1 1)传入模块)传入模块)传入模块)传入模块从下属模块取得数据,经过某些从下属模块取得数据,经过某些从下属模块取得数据,经过某些从下属模块取得数据,经过某些处理,再将其结果传送给上级模块。它传送的数据流叫处理,再将其结果传送给上级模块。它传送的数据流叫处理,再将其结果传送给上级模块。它传送的数据流叫处理,再将其结果传送给上级模块。它传送的数据流叫逻辑输入数据流。逻辑输入数据流。逻辑输入数据流。逻辑输入数据流。(2 2)传出模块)传出模块)传出模块)传
18、出模块从上级模块获得数据,进行某些从上级模块获得数据,进行某些从上级模块获得数据,进行某些从上级模块获得数据,进行某些处理,再将其结果传送给下属模块。它传送的数据流叫处理,再将其结果传送给下属模块。它传送的数据流叫处理,再将其结果传送给下属模块。它传送的数据流叫处理,再将其结果传送给下属模块。它传送的数据流叫作逻辑输出数据流。作逻辑输出数据流。作逻辑输出数据流。作逻辑输出数据流。(3 3)变换模块)变换模块)变换模块)变换模块也叫加工模块。它从上级模块取也叫加工模块。它从上级模块取也叫加工模块。它从上级模块取也叫加工模块。它从上级模块取得数据,进行特定的处理,转换成其它形式,再传送回得数据,进
19、行特定的处理,转换成其它形式,再传送回得数据,进行特定的处理,转换成其它形式,再传送回得数据,进行特定的处理,转换成其它形式,再传送回上级模块。它加工的数据流叫作变换数据流。大多数计上级模块。它加工的数据流叫作变换数据流。大多数计上级模块。它加工的数据流叫作变换数据流。大多数计上级模块。它加工的数据流叫作变换数据流。大多数计算模块算模块算模块算模块(原子模块原子模块原子模块原子模块)属于这属于这属于这属于这类。类。类。类。(4 4)源模块)源模块)源模块)源模块 (5 5)漏模块)漏模块)漏模块)漏模块 (6 6)控制模块)控制模块)控制模块)控制模块 在实际系统中有些模块属于上述某在实际系统
20、中有些模块属于上述某在实际系统中有些模块属于上述某在实际系统中有些模块属于上述某类型,有些模块类型,有些模块类型,有些模块类型,有些模块是上述各种类型的组合。是上述各种类型的组合。是上述各种类型的组合。是上述各种类型的组合。SC图的组成符号图的组成符号(a)传入)传入(b)传出)传出(c)变换)变换(d)源)源(f)控制)控制XYYXXY图图图图5.2 SC5.2 SC5.2 SC5.2 SC图使用的模块符号图使用的模块符号图使用的模块符号图使用的模块符号X(e)漏)漏XXYSC图的模块调用简单调用简单调用图5.3 简单调用的两种表示法B(a)X,YZACZB(b)1AC2入入出出X X,Y
21、YZ ZZ Z选择调用选择调用ABCDv注意:图中必须画出红线的数据流循环调用循环调用ABCv注意:图中必须画出红线的数据流产生最佳解的一般结构图产生最佳解的一般结构图产生最隹解得到最好输入计算最隹解输出结果读输入编辑输入结果格式化显示结果好输入原始输入编辑结果格式化解格式化解解好输入解原始输入解解格式化解格式化解数据数据数据流图的类型数据流图的类型v在软件设计之前首先要分清数据流图的特征,才能更加有利于设计。v在系统分析模型中的数据流图,均可纳入两种典型的形式,即变换型结构处理系统和事务型结构处理系统。变换型结构的变换型结构的DFD变换变换中心中心传入传入传出传出信信息息传入流传入流 传出流
22、传出流 变换流变换流时间变换型结构也叫变换流变换型结构也叫变换流 信息通常信息通常以以“外部世外部世界界”的形式的形式进入软件系进入软件系统,经过处统,经过处理后再以理后再以“外部世界外部世界”的形式离开的形式离开系统,所以系统,所以变换性结构变换性结构也可以用右也可以用右图表达:图表达:事务型结构(事务流)事务型结构(事务流)DFD同时存在两类结构同时存在两类结构传入传入变换变换传出传出事务中心事务中心接收接收部分部分发送发送部分部分结构化设计方法的设计结构化设计方法的设计由数据流模型导出系统(由数据流模型导出系统(模块模块)结构图)结构图1 1、变换分析与变换设计、变换分析与变换设计计算最
23、佳解计算最佳解获得好的输入获得好的输入输出结果输出结果输入流输入流变换中心变换中心输出流输出流变换型数据流变换型数据流由由变变换换型型数数据据流流映映射射得得到到的的程程序序结结构构问题求解问题求解计算最佳解计算最佳解输出结果输出结果显示结果显示结果格式化结果格式化结果获得好的输入获得好的输入读数据读数据 编辑数据编辑数据数据输入数据输入数据输出数据输出数据变换数据变换变换型的程序结构变换型的程序结构结构化设计方法的设计结构化设计方法的设计2、事务分析与事务设计、事务分析与事务设计T数数据据输输入入流流事务中心事务中心一组处理一组处理事务型数据流事务型数据流事务型程序结构事务型程序结构事务处理
24、事务处理事务事务1事务事务2事务事务4操作操作1操作操作2操作操作3操作操作4细节细节1细节细节2细节细节3细节细节4事务事务3事务层事务层操作层操作层细节层细节层由由事事务务型型数数据据流流映映射射得得到到的的程程序序结结构构结结构构化化设设计计方方法法的的设设计计步步骤骤精化数据流精化数据流流类型流类型区分事务中心和数据接受选路区分事务中心和数据接受选路区分输入和输出分支区分输入和输出分支映射成事务结构映射成事务结构映射成变换结构映射成变换结构用启发式设计规则精化软件用启发式设计规则精化软件导出接口描述和全局数据结导出接口描述和全局数据结复查复查详细设计详细设计事务分析事务分析变换分析变换
25、分析事事务务型型变变换换型型变换分析变换分析第一步:第一步:划分划分DFD图的边界图的边界 第二步:第二步:建立初始建立初始SC图的框架图的框架顶层都只含一个用于控制的主模块顶层都只含一个用于控制的主模块 第一层包括传入、传出和中心变换第一层包括传入、传出和中心变换三个模块三个模块 第三步:第三步:分解分解SC图的各个分支图的各个分支 分解实质上是分解实质上是“映射映射”最后可组成初始最后可组成初始SC图图在形成的在形成的SCSC图下应有模块的简要说明图下应有模块的简要说明每个模块的简要说明应有:进出该模块的信息(接口描述);模块内部的信息(功能、数据);过程陈述,包括主要判定点及任务等;对约
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 结构 软件设计 课件

限制150内