1、6-1n教学内容和要求:教学内容和要求:详细了解结构化系统开发方法的系统设计阶段的工作内容,包括代码设计与代码的校验、 信息系统流程图设计、系统物理配置方案设计、输出设计、输入设计、数据存储设计、处理流程图设计等,并了解程序说明书和系统设计报告的编写。n教学重点和难点:教学重点和难点:要求学生了解系统设计的主要任务,能够在新系统的逻辑方案的指导下进行系统的设计工作,内容包括代码设计、功能结构图设计、信息系统流程图设计、系统物理配置方案设计、输出设计、输入设计、数据存储设计、处理流程图设计等,并能制订设计规范、编写程序说明书和系统设计报告。6-2第一节第一节 系统设计概述系统设计概述第二节系统概
2、要设计第二节系统概要设计第三节系统详细设计第三节系统详细设计6-3 系统设计是管理信息系统开发的第三个阶段,系统设系统设计是管理信息系统开发的第三个阶段,系统设计的任务主要是解决计的任务主要是解决“怎么做怎么做”的问题。其目标是进一步的问题。其目标是进一步实现系统分析阶段推出的系统模型,详细地确定新系统的实现系统分析阶段推出的系统模型,详细地确定新系统的结构、应用软件的研制方法和内容。结构、应用软件的研制方法和内容。映射6-4数数 据据 设设 计计模块结构设计模块结构设计接口设计接口设计过程设计过程设计平平 台台 设设 计计6-5P系统系统设计设计主要内容主要内容; 系统概要设计系统概要设计
3、功能模块设计功能模块设计* * 系统平台设计系统平台设计; 系统详细设计系统详细设计 代码设计代码设计 输入输出设计输入输出设计 数据库或数据文件设计数据库或数据文件设计 处理过程设计处理过程设计* *; 写出系统设计报告写出系统设计报告 6-6P系统设计的目标系统设计的目标q 系统的工作质量系统的工作质量准确及时性准确及时性用户友好性用户友好性q 系统的可变性系统的可变性可修改性可修改性易维护性易维护性q 系统的经济性系统的经济性直接、间接经济效益直接、间接经济效益社会效益社会效益q 系统工作效率系统工作效率处理能力处理能力处理速度处理速度响应时间响应时间q 系统的可靠性系统的可靠性可抗性可
4、抗性平均无故障时间平均无故障时间平均修复时间平均修复时间6-7q系统性系统性代码统一,设计规范标准,数据一次输入多次利用。代码统一,设计规范标准,数据一次输入多次利用。q灵活性灵活性开放性和结构可变性,尽量采用模块化结构,提高模开放性和结构可变性,尽量采用模块化结构,提高模块的独立性。块的独立性。 q可靠性可靠性安全保密性、检错及纠错能力等。安全保密性、检错及纠错能力等。 q经济性经济性硬件投资应以满足需要为前提,系统设计应尽量避免硬件投资应以满足需要为前提,系统设计应尽量避免不必要的复杂化,各模块应尽量简洁。不必要的复杂化,各模块应尽量简洁。P系统设计的原则系统设计的原则6-8 功能模块设计
5、是根据系统分析所得到的系统逻辑模型(数据流功能模块设计是根据系统分析所得到的系统逻辑模型(数据流图和数据字典),借助一套标准化的图、表工具,导出系统的功能图和数据字典),借助一套标准化的图、表工具,导出系统的功能模块结构图。模块结构图。P功能模块设计功能模块设计6-9SD方法是以数据流图为基础的,采用模块化、自顶向下逐步方法是以数据流图为基础的,采用模块化、自顶向下逐步求精的基本思想,以数据流图为基础构造出模块结构图。求精的基本思想,以数据流图为基础构造出模块结构图。 在从数据流图导出初始模块结构图时采用一组基本的设计策在从数据流图导出初始模块结构图时采用一组基本的设计策略略变换分析与事务分析
6、。变换分析与事务分析。 在对初始模块结构图改进和优化方面有一组基本的设计原则在对初始模块结构图改进和优化方面有一组基本的设计原则耦合小、内聚大,和一组质量优化技术。耦合小、内聚大,和一组质量优化技术。 6-10 模块结构图是描述系统结模块结构图是描述系统结构的图形工具。构的图形工具。计算工资计算工资计算工资总额计算工资总额计算实发工资计算实发工资打印工资单打印工资单奖金奖金基本工资基本工资扣款数扣款数总额总额总额总额实发工资实发工资实发数实发数职工姓名职工姓名模块模块调用调用数据数据控制信息控制信息基本符号基本符号6-11 通常指用一个名字就可以调用的一段程序语句。模块是可以通常指用一个名字就
7、可以调用的一段程序语句。模块是可以组成、分解、更换的单元,是组成系统、易于处理的基本单位。组成、分解、更换的单元,是组成系统、易于处理的基本单位。一个模块应具备以下四要素:一个模块应具备以下四要素:模块的例子模块的例子: int max( int x, int y) int z; z=xy? x: y; return(z); 模块名模块名内部内部数据数据程序程序代码代码输入输入输出输出6-12 a.a.调用调用 b.b.判断调用判断调用ABCBABCDA c. c. 循环调用循环调用6-13模块调用的例子模块调用的例子: int max( int x, int y) int z; z=xy?
8、x: y; return(z); void main( ) : c=max( 3, 4); : mainmaxZxy选择调用的例子选择调用的例子: A( ) : if (条件条件.) B( ); else C( ); : ABC循环调用的例子循环调用的例子: A( ) : while (条件条件.) B( ); : : AB6-14BAX,YZ简历数据简历数据读人事文件读人事文件查职工简历查职工简历职工号职工号无此职工无此职工6-15传入模块传入模块(a)(b)AA传出模块传出模块BB变换模块变换模块(c)CD协调模块协调模块E(d)EFF6-16 从数据流程图导出系统的初始结构图,首先要区分
9、数据流程图的结从数据流程图导出系统的初始结构图,首先要区分数据流程图的结构类型,然后根据不同的类型采用不同的方法把数据流图映象成相应构类型,然后根据不同的类型采用不同的方法把数据流图映象成相应的模块结构。的模块结构。变换型变换型DFDDFD事务型事务型DFDDFD系统结构图系统结构图变换分析变换分析事务分析事务分析系统结构图系统结构图6-17; 变换分析设计方法变换分析设计方法取得数据CD变换数据给出数据1、区分输入、主加工、输出部分,在、区分输入、主加工、输出部分,在DFD上标明分界线上标明分界线p 确定逻辑输入确定逻辑输入离物理输入端最远的,但仍可被看作系统输入的那离物理输入端最远的,但仍
10、可被看作系统输入的那个数据流。个数据流。 方法方法:从物理输入端开始,一步步向系统的中间移动,直至达到这从物理输入端开始,一步步向系统的中间移动,直至达到这样一个数据流:它已不能再被看作为系统的输入,则其前一个数据流样一个数据流:它已不能再被看作为系统的输入,则其前一个数据流就是系统的逻辑输入。就是系统的逻辑输入。p 确定逻辑输出确定逻辑输出离物理输出端最远的,但仍可被看作系统输出的离物理输出端最远的,但仍可被看作系统输出的那个数据流。那个数据流。 方法方法:从物理输出端开始,一步步向系统的中间反方向移动,直至从物理输出端开始,一步步向系统的中间反方向移动,直至达到这样一个数据流:它已不能再被
11、看作为系统的输出,则其后一达到这样一个数据流:它已不能再被看作为系统的输出,则其后一个数据流就是系统的逻辑输出。个数据流就是系统的逻辑输出。p 确定主加工确定主加工位于逻辑输入和逻辑输出之间的加工,就是系统的主位于逻辑输入和逻辑输出之间的加工,就是系统的主加工。加工。6-182、设计、设计SC的顶层和第一层模块:的顶层和第一层模块:p设计一个顶层模块设计一个顶层模块(主模块主模块),它的功能是完成整个程序要做的工作。,它的功能是完成整个程序要做的工作。p设计结构的第一层:设计结构的第一层: 为逻辑输入设计一个输入模块,它的功能是向主模块提供数据为逻辑输入设计一个输入模块,它的功能是向主模块提供
12、数据 为逻辑输出设计一个输出模块,它的功能是输出主模块提供的数据为逻辑输出设计一个输出模块,它的功能是输出主模块提供的数据 为主加工设计一个变换模块,它的功能是将逻辑输入变换成逻辑输出为主加工设计一个变换模块,它的功能是将逻辑输入变换成逻辑输出 第一层模块同顶层主模块之间传送的数据应与数据流图相对应。这第一层模块同顶层主模块之间传送的数据应与数据流图相对应。这里主模块控制并协调一层的输入、变换、输出模块的工作,注意识别里主模块控制并协调一层的输入、变换、输出模块的工作,注意识别出选择或循环调用以及调用条件。出选择或循环调用以及调用条件。6-193 第二级分解第二级分解(分解分解SC各分支各分支
13、),自顶向下分解、设计出每个分支,自顶向下分解、设计出每个分支(输输入、加工、输出入、加工、输出)的中、下层模块:的中、下层模块:p 为每一个输入模块设计两个下层模块,一个是输入模块,接受数据为每一个输入模块设计两个下层模块,一个是输入模块,接受数据来源;另一个是变换模块,模块调用时传送的参数应同数据流图相对来源;另一个是变换模块,模块调用时传送的参数应同数据流图相对应。应。p 输出模块也有两部分组成,一部分是变换模块,将数据变换成输出输出模块也有两部分组成,一部分是变换模块,将数据变换成输出的形式;另一部分是输出模块。的形式;另一部分是输出模块。 上述设计过程由顶向下递归进行,直至达到系统的
14、输入端或输出端上述设计过程由顶向下递归进行,直至达到系统的输入端或输出端p 变换模块的下层模块,根据数据流图中相应加工的组成情况而定。变换模块的下层模块,根据数据流图中相应加工的组成情况而定。6-201格式格式检查检查3产生产生收据收据2计算计算汇费汇费4记账记账汇款单汇款单合格的合格的汇款单汇款单处理后的处理后的汇款单汇款单收据收据明细账明细账中心变换中心变换输出输出输入输入业务业务数据数据6-21汇款处理系统汇款处理系统取得合格取得合格汇款单汇款单计算汇费计算汇费记账记账输出处理后输出处理后的汇款单的汇款单 输入输入汇款单汇款单格式检查格式检查产生收据产生收据打印收据打印收据合格的合格的汇
15、款单汇款单处理后的处理后的汇款单汇款单合格的合格的汇款单汇款单业务数据业务数据处理后的处理后的汇款单汇款单汇款单汇款单合格的合格的汇款单汇款单汇款单汇款单处理后的处理后的汇款单汇款单收据收据收据收据业务数据业务数据6-22; 事务分析设计方法事务分析设计方法事务中心事务中心事务源事务源p 在在DFDDFD上确定事务中心。上确定事务中心。p 为为DFDDFD上的事务中心设计主模块,再为每一种类型的事务处理设计一上的事务中心设计主模块,再为每一种类型的事务处理设计一个事务处理模块。个事务处理模块。p 为每个事务处理模块设计下面的操作模块,再为操作模块设计细节为每个事务处理模块设计下面的操作模块,再
16、为操作模块设计细节模块。某些操作模块和细节模块可以被几个上一层模块共用。模块。某些操作模块和细节模块可以被几个上一层模块共用。主模块给出H取得ALMNA GHBECF D6-23要求类要求类型处型处理理图书管理图书管理要求要求无效输入无效输入1.11.1新书入库新书入库1.21.2还还入库单入库单罚款单罚款单1.51.5注销图书注销图书1.31.3还书还书1.41.4目录文件目录文件借书单借书单书书单单注销单注销单借书借书借书文件借书文件罚款单罚款单事务事务中心中心6-24图书处理系统图书处理系统取得图书取得图书处理要求处理要求修改目修改目录文件录文件操作层操作层细节层细节层新书入库新书入库注
17、销图书注销图书借书借书还书还书 打印打印罚款单罚款单修改借修改借书文件书文件图书管图书管理要求理要求入库单入库单借书单借书单 还书单还书单注销单注销单6-251、低耦合、高内聚、低耦合、高内聚提高模块独立性提高模块独立性p 耦合指的是两个模块之间的相互依赖关系,又称块间联系。耦合指的是两个模块之间的相互依赖关系,又称块间联系。p 模块之间的联系越多或越复杂,它们之间的依赖程度就越高,模块之间的联系越多或越复杂,它们之间的依赖程度就越高,每一个模块的独立性就越低。每一个模块的独立性就越低。p 要求尽可能地减弱系统中模块之间的耦合程度,提高每一个要求尽可能地减弱系统中模块之间的耦合程度,提高每一个
18、模块的独立性,这是因为:模块的独立性,这是因为: 模块之间的耦合程度越弱,相互影响就越小,产生连锁反模块之间的耦合程度越弱,相互影响就越小,产生连锁反应的概率就越低;应的概率就越低; 在修改一个模块时,要能使修改范围控制在最小限度以内;在修改一个模块时,要能使修改范围控制在最小限度以内; 在对一个模块进行维护的时候,不必担心任何其它模块的在对一个模块进行维护的时候,不必担心任何其它模块的内部运行程序是否会受到影响。内部运行程序是否会受到影响。6-26低低内容内容耦合耦合公共公共耦合耦合控制控制耦合耦合特征特征耦合耦合外部外部耦合耦合数据数据耦合耦合非直接非直接耦合耦合 高高弱弱 强强耦合性耦合
19、性模块独立性模块独立性非直接耦合:非直接耦合:调用和被调用模块之间不存在直接的数据联系。调用和被调用模块之间不存在直接的数据联系。模块模块1 1模块模块2 2模块模块3 3模块模块4 4数据耦合:数据耦合:调用和被调用模块之间存在简单变量这样的数据传递。调用和被调用模块之间存在简单变量这样的数据传递。开发票开发票计算水费计算水费单价单价数量数量金额金额6-27特征耦合:特征耦合:如两个模块通过传递数据结构如两个模块通过传递数据结构(不是简单数据,而是不是简单数据,而是记录、数组等记录、数组等)加以联系,或都与一个数据结构有关系加以联系,或都与一个数据结构有关系, 则称这两则称这两个模块间存在特
20、征偶合。个模块间存在特征偶合。“住户情况住户情况”是一个是一个数据结构数据结构, ,图中模块都与此数据结构有关。图中模块都与此数据结构有关。“计算水费计算水费”和和“计算电费计算电费”本无关本无关, ,由于引用了此数据结构产生依由于引用了此数据结构产生依赖关系赖关系, ,它们之间也是它们之间也是特征特征偶合偶合计算水电费计算水电费计算水费计算水费计算电费计算电费住户情况住户情况水费水费电费电费住户情况住户情况计算水电费计算水电费计算水费计算水费计算电费计算电费本月本月用水用水量量本月本月用电量用电量水水费费电电费费6-28功能功能A A功能功能B B判别判别A A发奖牌发奖牌 名次名次( (开
21、关量开关量) )奖牌奖牌A发金牌发金牌发银牌发银牌发铜牌发铜牌金牌金牌银牌银牌铜牌铜牌6-29外部耦合:外部耦合:允许多个模块访问同一个全局变量或与同一外部设备允许多个模块访问同一个全局变量或与同一外部设备关联。关联。公共耦合:公共耦合:允许一组模块引用同一个公用数据区允许一组模块引用同一个公用数据区 公共数据区公共数据区指:指:全局数据结构全局数据结构共享通讯区共享通讯区内存公共覆盖区等内存公共覆盖区等松散的公共耦合松散的公共耦合公共数据区公共数据区 紧密的公共耦合紧密的公共耦合公共数据区公共数据区6-30内容耦合:内容耦合:允许一个模块直接调用另一个模块中的数据和代码。允许一个模块直接调用
22、另一个模块中的数据和代码。ABABEntry1 Entry1 模块代码重叠模块代码重叠一模块直接访问另一模块直接访问另一模块的内部信息一模块的内部信息 ( (程序代码或数据程序代码或数据)多入口模块多入口模块注意注意n控制耦合是一种中等程度的耦合。应尽可能少用。控制耦合是一种中等程度的耦合。应尽可能少用。n外部耦合和公共耦合是较强程度的耦合。尽管有时无法外部耦合和公共耦合是较强程度的耦合。尽管有时无法避免,但要特别注意、严加控制。避免,但要特别注意、严加控制。n内容耦合是耦合程度最强的耦合,极大增强了软件的复内容耦合是耦合程度最强的耦合,极大增强了软件的复杂性,给维护带来严重困难,是杂性,给维
23、护带来严重困难,是“病态联系病态联系”,应禁止使,应禁止使用。实际完全可以避免。用。实际完全可以避免。6-31p 内聚指的是一个模块内部各组成部分的处理动作的组合强度,又内聚指的是一个模块内部各组成部分的处理动作的组合强度,又称块内联系。称块内联系。p 软件结构设计的设计原则是,要求每一个模块的内部都具有很强软件结构设计的设计原则是,要求每一个模块的内部都具有很强的内聚性,它的各个组成部分彼此都密切相关,是为了完成一个的内聚性,它的各个组成部分彼此都密切相关,是为了完成一个共同的功能而组合在一起的。减弱模块之间的耦合和提高模块内共同的功能而组合在一起的。减弱模块之间的耦合和提高模块内的内聚性,
24、是两个相辅相成的设计原则。的内聚性,是两个相辅相成的设计原则。低低巧合性巧合性内聚内聚逻辑逻辑内聚内聚过程过程内聚内聚通信通信内聚内聚时间时间内聚内聚信息信息内聚内聚功能功能内聚内聚 高高强强弱弱 内聚性内聚性模块独立性模块独立性6-32偶然内聚:偶然内聚:模块内各成分无实质性的联系,只是偶然地被凑到模块内各成分无实质性的联系,只是偶然地被凑到一起。一起。ABCMMOVE O TO RREAD FILE FMOVE S TO T模块模块M中的三个语句没有任何联系中的三个语句没有任何联系缺点:缺点:可理解性差可理解性差, 可修改性差可修改性差6-33逻辑内聚:逻辑内聚:把几种相关功能把几种相关功
25、能( (逻辑上相似逻辑上相似的功能的功能) )组合在一模块内组合在一模块内, ,每次调用由传给模块的参数确定执行哪种功能。每次调用由传给模块的参数确定执行哪种功能。ABCEFGABCEFGA1B1C1EFGEFG模块内部逻辑模块内部逻辑E E、F F、G G逻辑逻辑功能相似,组功能相似,组成新模块成新模块EFGEFG缺点缺点:增强了耦合程度增强了耦合程度( (控制耦合控制耦合) ) 不易修改,效率低不易修改,效率低公用代码段公用代码段公用代码段公用代码段6-34时间内聚:时间内聚:模块完成的几项功能必须在同一时间内执行,这模块完成的几项功能必须在同一时间内执行,这些功能只因时间因素关联在一起。
26、些功能只因时间因素关联在一起。例如例如:初始化系统模块初始化系统模块系统结束模块系统结束模块紧急故障处理模块紧急故障处理模块过程内聚:过程内聚:模块内部包含的处理是相关的,且必须按照某种确模块内部包含的处理是相关的,且必须按照某种确定的顺序进行。定的顺序进行。过程聚合模块过程聚合模块建立方程组系数矩阵建立方程组系数矩阵全部任务纳入一个全部任务纳入一个模块,得到一过程模块,得到一过程性模块性模块高斯消去法高斯消去法回回 代代高斯消去法解题流程高斯消去法解题流程6-35通讯内聚:通讯内聚:模块内的各个组成部分都使用相同的输入数据或模块内的各个组成部分都使用相同的输入数据或产生相同的输出数据。产生相
27、同的输出数据。产生工产生工资报表资报表计算平计算平均工资均工资职工工职工工资记录资记录职工工职工工资报表资报表平均平均工资工资产生职工工资报表并计算平均工资模块产生职工工资报表并计算平均工资模块6-36信息内聚:信息内聚:模块完成多个功能,各功能都在同一数据结构上操作,模块完成多个功能,各功能都在同一数据结构上操作,每一功能有唯一入口。每一功能有唯一入口。符符 号号 表表查找查找登录登录删除删除修改修改几个加工同时引用一个共同的数据几个加工同时引用一个共同的数据功能内聚:功能内聚:模块内的各个组成部分全都为完成同一个功能而存在,模块内的各个组成部分全都为完成同一个功能而存在,共同完成一个单一的
28、功能,并且只完成一个功能。共同完成一个单一的功能,并且只完成一个功能。注意:注意:n避免使用低内聚的模块,多用中高内聚、特别是功能内聚的模避免使用低内聚的模块,多用中高内聚、特别是功能内聚的模块。块。n遵守遵守“一个模块,一个功能一个模块,一个功能”原则,它是衡量模块独立性的最原则,它是衡量模块独立性的最高标准。高标准。6-372 2、消除重复的功能消除重复的功能 几个模块中含有重复的部分,应设法消去。因为同一功能重复几个模块中含有重复的部分,应设法消去。因为同一功能重复多处,不仅浪费编程、测试时间,还会给修改带来麻烦。多处,不仅浪费编程、测试时间,还会给修改带来麻烦。 但消除重复功能并不是简
29、单的合并。但消除重复功能并不是简单的合并。正确的方法是正确的方法是:先分析几:先分析几个模块中相同功能的部分;然后把这个功能分离出来,构成它们的个模块中相同功能的部分;然后把这个功能分离出来,构成它们的一个公共的下层模块。一个公共的下层模块。YXQQQ1 Q2YXQQ Q1 Q2YXQ*YXQQ1* Q2*正确的正确的合合 并并错误的错误的合合 并并逻辑内聚逻辑内聚6-38说明说明:如果如果Q1、Q2抽去公共部分抽去公共部分Q之后余下的模块之后余下的模块Q1*、 Q2*比较比较简单,则可以同它们的调用模块简单,则可以同它们的调用模块X、Y合并,所以改进后图合并,所以改进后图2、图、图3都都有可
30、能。有可能。YXQQQ1 Q2YXQQ1* Q2*QX*Y*XQY*Q1*6-393、尽可能减少高扇出结构,随着深度增大扇入、尽可能减少高扇出结构,随着深度增大扇入扇出:扇出:模块调用的直接下层模块的个数模块调用的直接下层模块的个数扇入:扇入:指模块的上级模块数指模块的上级模块数( (即共有多少个模块需要调用这个模块即共有多少个模块需要调用这个模块) )原则:原则:扇出不宜过大,扇出不宜过大,=7=7;扇入尽可能大些。;扇入尽可能大些。(4,0)(3,1)(5,1)(0,2)符号符号: (: (扇出扇出, ,扇入扇入) )6-40v 如果一个模块的扇出数过大,就意味着该模块过分复杂,需要协如果
31、一个模块的扇出数过大,就意味着该模块过分复杂,需要协调和控制过多的下属模块。应当适当增加中间层次的控制模块调和控制过多的下属模块。应当适当增加中间层次的控制模块v 如果一个模块扇入太大,而它又不是公共模块,则说明这个模块如果一个模块扇入太大,而它又不是公共模块,则说明这个模块具有多个功能,在这种情况下应对具进行功能分解。具有多个功能,在这种情况下应对具进行功能分解。PP1P2Q1Q2Q3Q6-41v 相关技巧:相关技巧: 良好的结构图往往呈良好的结构图往往呈“清真状清真状”,即,即“顶为尖顶为尖下下层逐渐加宽层逐渐加宽底底层收窄层收窄” 结构图的形态应该均衡,即从顶到底层的路径长短不该过于悬殊
32、结构图的形态应该均衡,即从顶到底层的路径长短不该过于悬殊 清真寺型清真寺型不够好不够好,底层模块复用度低底层模块复用度低金字塔型金字塔型6-424 4、模块的作用范围应在控制范围内、模块的作用范围应在控制范围内模块的控制范围模块的控制范围(控制域控制域) :包括模块本身和其下属模块的集合。包括模块本身和其下属模块的集合。模块的作用范围模块的作用范围(作用域作用域):指受该模块内一个条件判定影响的所有指受该模块内一个条件判定影响的所有模块的集合。模块的集合。控制域是从结构方面考虑的;作用域是从功能方面考虑的。控制域是从结构方面考虑的;作用域是从功能方面考虑的。AFBCEMDG6-43v原则:原则
33、:应使模块的作用范围尽量在在控制范围之内,应使模块的作用范围尽量在在控制范围之内,所有受到一个所有受到一个判定影响的模块应该都从属该判定所在的模块,最好位于作出判定的判定影响的模块应该都从属该判定所在的模块,最好位于作出判定的那个模块本身及它的直接下属模块。那个模块本身及它的直接下属模块。图例: 判定 判定的作用范围 判定的作用范围不在控制范围内顶XYABB1B2顶XYABB1B2顶XYABB1B2顶XYABB1B2判定太高,需多次传递基本合适 耦合最小将包含条件判定的模块合并到它的调用模块中;将包含条件判定的模块合并到它的调用模块中;或把判定上移到足够的位置,使判定处于较高位置或把判定上移到
34、足够的位置,使判定处于较高位置将接受判定影响的模块下移到控制范围内将接受判定影响的模块下移到控制范围内可以归结为:可以归结为: 使判定同受其影响的操作尽可能靠近。使判定同受其影响的操作尽可能靠近。6-445 5、模块规模适中:、模块规模适中:过大不易理解,应考虑分解过大不易理解,应考虑分解太小则接口开销过大,应考虑合并太小则接口开销过大,应考虑合并注意分解、合并后不应降低模块的独立性注意分解、合并后不应降低模块的独立性6 6、适当控制深度与宽度:、适当控制深度与宽度:深度深度 = = 分层的层数。过大表示分工过细分层的层数。过大表示分工过细宽度宽度 = = 同一层上模块数的最大值,过大表示系统
35、复杂度大同一层上模块数的最大值,过大表示系统复杂度大7 7、减少块间传递参数的个数,降低接口的复杂程度、减少块间传递参数的个数,降低接口的复杂程度8 8、消除管道性的模块:、消除管道性的模块:9 9、设计功能可预测的模块、设计功能可预测的模块相同输入必产生相同输出。相同输入必产生相同输出。6-45P系统平台设计系统平台设计 管理信息系统的平台设计包括计算机处理方式、网络系统的设管理信息系统的平台设计包括计算机处理方式、网络系统的设计、数据库管理系统的选择和软硬件选择计、数据库管理系统的选择和软硬件选择等。等。;计算机处理方式:计算机处理方式:根据系统功能、业务处理的特点、性能根据系统功能、业务
36、处理的特点、性能/价格价格比等因素,选择批处理、联机实时处理、联机成批处理、分布式比等因素,选择批处理、联机实时处理、联机成批处理、分布式处理等方式,也可以混合使用各种方式。处理等方式,也可以混合使用各种方式。;网络系统的设计:网络系统的设计:计算机网络系统的设计主要包括中小型主机计算机网络系统的设计主要包括中小型主机方案与微机网络方案的选取、局域网拓扑结构、网络互连结构及方案与微机网络方案的选取、局域网拓扑结构、网络互连结构及通信介质的选型、网络计算模式、网络操作系统及网络协议等的通信介质的选型、网络计算模式、网络操作系统及网络协议等的选择。选择。;数据库管理系统的选择:数据库管理系统的选择
37、:管理信息系统都是以数据库系统为基管理信息系统都是以数据库系统为基础,一个好的数据库管理系统对管理信息系统的应用有着举足轻础,一个好的数据库管理系统对管理信息系统的应用有着举足轻重的重要影响。目前,市场上数据库管理系统较多,流行的有重的重要影响。目前,市场上数据库管理系统较多,流行的有Orac1e、Sybase、SQLServer、Informix、Visual FoxPro 等,等,6-46;计算机硬件的选择:计算机硬件的选择:主要取决于数据处理方式、运行的软件系统主要取决于数据处理方式、运行的软件系统和用户的承受能力。原则上选择技术上成熟可靠的系列机型;处理和用户的承受能力。原则上选择技术
38、上成熟可靠的系列机型;处理速度快;数据存储容量大;具有良好的兼容性与可扩充性、可维护速度快;数据存储容量大;具有良好的兼容性与可扩充性、可维护性;有良好的性能性;有良好的性能/价格比;售后服务与技术服务好;操作方便;在价格比;售后服务与技术服务好;操作方便;在一定时间内保持一定先进性的硬件。一定时间内保持一定先进性的硬件。;计算机软件的选择:计算机软件的选择:包括操作系统、开发语言、开发工具、应用包括操作系统、开发语言、开发工具、应用软件包等软件的选择。软件包等软件的选择。;最后提交:最后提交: 硬件网络结构图硬件网络结构图 服务器:硬件、软件选型服务器:硬件、软件选型 工作站:硬件、软件选型
39、工作站:硬件、软件选型 硬件配置清单等表格硬件配置清单等表格6-47q 代码的概念代码的概念 是用来代表事物名称、属性、状态等的符号和记号。以简短的符是用来代表事物名称、属性、状态等的符号和记号。以简短的符号形式代替了具体的文字说明。号形式代替了具体的文字说明。q 代码设计的目的代码设计的目的 采用代码,可以使数据表达标准化,简化程序设计,加快输入,采用代码,可以使数据表达标准化,简化程序设计,加快输入,减少出错,便于计算机处理(记录、检索、排序等),节省存储空减少出错,便于计算机处理(记录、检索、排序等),节省存储空间,提高处理速度。间,提高处理速度。q 代码设计的意义代码设计的意义 代码设
40、计是一项重要的基础工作,设计质量的好坏,不仅关系到代码设计是一项重要的基础工作,设计质量的好坏,不仅关系到计算机的处理效率,而且直接影响计算机的处理效率,而且直接影响MISMIS的推广与使用。的推广与使用。第三节第三节 系统详细设计系统详细设计P 代码设计代码设计 6-48q 代码设计的原则代码设计的原则 唯一确定性唯一确定性 每一代码仅代表唯一的实体或属性。每一代码仅代表唯一的实体或属性。 标准化与通用性标准化与通用性 尽可能利用国际、国内、部门的标准代码。尽可能利用国际、国内、部门的标准代码。 可扩充性可扩充性 考虑系统的发展与变化,当增加新的实体(或属性)考虑系统的发展与变化,当增加新的
41、实体(或属性)时,不需要变动原代码体系。时,不需要变动原代码体系。 简明性简明性 尽可能简短、统一。尽可能简短、统一。 系统性系统性 代码要有规律,逻辑性强。这样既便于计算机处理,也代码要有规律,逻辑性强。这样既便于计算机处理,也便于识别和记忆及人工处理使用。便于识别和记忆及人工处理使用。 易修改性易修改性 这是代码具有标准化又具有灵活性的一面,当系统条这是代码具有标准化又具有灵活性的一面,当系统条件发生某些变化时,代码应容易进行修改。件发生某些变化时,代码应容易进行修改。6-49 明确代码目的;明确代码目的; 确定代码对象;确定代码对象; 确定代码的使用范围和期限;确定代码的使用范围和期限;
42、 分析代码对象特征。包括代码使用频分析代码对象特征。包括代码使用频率、变更周期、追加及删除情况等;率、变更周期、追加及删除情况等; 决定采用何种代码,确定代码结构及决定采用何种代码,确定代码结构及内容;内容; 编制代码表;编制代码表; 编制相应的代码使用管理维护制度,编制相应的代码使用管理维护制度,保证代码使用。保证代码使用。q 代码设计步骤代码设计步骤 按文字种类分:按文字种类分: 数字代码数字代码 字母代码字母代码 数字字母混合码数字字母混合码 按功能划分:按功能划分: 顺序码顺序码 层次码层次码 十进制码十进制码 助记码助记码q 代码代码6-50用连续数字表示编码对象。用连续数字表示编码
43、对象。v 顺序码顺序码 作为顺序码的一个特例是分区顺序码,它将顺序码分为若干个作为顺序码的一个特例是分区顺序码,它将顺序码分为若干个区,给每个区以特定的意义,并可在每个区预留些空码,为以后区,给每个区以特定的意义,并可在每个区预留些空码,为以后插入之用。插入之用。 例如企业职工代码可以编为例如企业职工代码可以编为“0001“0001,00020002,00030003等。顺序码简等。顺序码简单明了,易追加,但不便于分类汇总,删除数据易造成空码。单明了,易追加,但不便于分类汇总,删除数据易造成空码。例如课程分区顺序码:例如课程分区顺序码: 0109 公共课(如公共课只有公共课(如公共课只有6门,
44、从门,从0106,预留,预留3个位置)个位置) 1029 基础课基础课 3039 专业基础课专业基础课 4060 专业课专业课缺点:使用中预留多少备用码不好估计。缺点:使用中预留多少备用码不好估计。 6-51 层次码也称区间码。这种代码按位被分成若干个区间,每个区间层次码也称区间码。这种代码按位被分成若干个区间,每个区间有不同的意义,这样每位码本身和其所在的位置都代表一定的意义。有不同的意义,这样每位码本身和其所在的位置都代表一定的意义。如:某住宅小区工程项目采用两位区间码代表分项分部。如:某住宅小区工程项目采用两位区间码代表分项分部。 第一位为分部工程代码第一位为分部工程代码 1小区小区1号
45、楼号楼 2小区小区2号楼号楼第二位分项工程代码第二位分项工程代码 1土方工程土方工程 2砌筑工程砌筑工程 则:代码则:代码1212表示小区表示小区1 1号楼砌筑工程号楼砌筑工程 代码代码2121表示小区表示小区2 2号楼土方工程号楼土方工程v 层次码层次码6-52例:我国公民身份证代码的含义例:我国公民身份证代码的含义12345678910 11 12 13 14 15 16 17 18所所在在省省市市所所在在地地区区所所在在县县区区年年月月日日出生日期出生日期户口所归属户口所归属的派出所的派出所性别:男为奇数性别:男为奇数 女为偶数女为偶数校验码校验码优点:是分类基准明确,码中的数字优点:是
46、分类基准明确,码中的数字( (或字母或字母) )与位置都代表一定与位置都代表一定 的意义,因而检索、分类或排序都很方便。的意义,因而检索、分类或排序都很方便。缺点:有时会造成代码过长。缺点:有时会造成代码过长。6-53先把整体分成十份,进而把每一份再分成十份,这样继续不断。先把整体分成十份,进而把每一份再分成十份,这样继续不断。 v 十进制码十进制码 这种编码方法对于那些事先不清楚会产生什么结果的情况十分这种编码方法对于那些事先不清楚会产生什么结果的情况十分有效的。有效的。例:例:520 计算机科学技术计算机科学技术520.10 计算机科学技术基础学科计算机科学技术基础学科520.20 人工智
47、能人工智能520.30 计算机系统结构计算机系统结构520.3010 计算机系统设计计算机系统设计520.3020 并行处理并行处理520.3030 分布式处理系统分布式处理系统520.3040 计算机网络计算机网络520.3050 计算机运行测试与性能评价计算机运行测试与性能评价520.3099 计算机系统结构其他学科计算机系统结构其他学科6-54v 助记码助记码例如:例如:“SX-2”表示表示2厘米直径的石硝建材;厘米直径的石硝建材; “YSZE”表示预算总额;表示预算总额; “PMIS”表示项目管理信息系统。表示项目管理信息系统。6-55q 代码校验代码校验 为了保证关键代码输入的准确性
48、、减少输入错误,有意识地在编码为了保证关键代码输入的准确性、减少输入错误,有意识地在编码设计的基础上,通过事先规定的某种数学方法,计算出校验码,附加设计的基础上,通过事先规定的某种数学方法,计算出校验码,附加在编码之后,作为编码的一部分。在编码之后,作为编码的一部分。 输入时与代码一起输入,此时计算机会用同种数学方法,对输入输入时与代码一起输入,此时计算机会用同种数学方法,对输入代码进行数学计算,以校验是否正确,并发现错误。代码进行数学计算,以校验是否正确,并发现错误。 6-56v校验码的生成过程校验码的生成过程1将代码各位将代码各位(Ci)乘以权因子乘以权因子(Pi),求出加权和,求出加权和
49、: n位代码:位代码: c1c2cn 权因子为:权因子为:p1p2pn 加权和:加权和:c1p1+c2p2 + cnpn = S2以称为模的常数以称为模的常数 M 除和,求出余数除和,求出余数R即即 R=S mod M3把模把模 M 减去余数减去余数 R 作为校验位作为校验位, J=M-R,当,当J为为10、11、12时,时,其校验位码为其校验位码为A、B、C。6-57v校验码示例校验码示例原编码:原编码:1 2 3 8 权因子:权因子:11 7 5 3 11 14 15 24=641.2. R= S MOD M =64 MOD 10 =43. J = M R=10-4=6原代码加校验码:原代
50、码加校验码:1 2 3 8 6v校验码的检查过程校验码的检查过程设输入的代码(含检验码)为设输入的代码(含检验码)为K1,K2,K3,Kn,C n+1,其中其中C n+1为校验位为校验位对每一位乘以它的原来的权,校验位乘的权为对每一位乘以它的原来的权,校验位乘的权为1。用所得的和被模除,若余数为用所得的和被模除,若余数为0,则该代码一般来说是正确的,否,则该代码一般来说是正确的,否则就是输入错误则就是输入错误。6-58输入代码:输入代码:1 2 3 8 6 权因子:权因子: 11 7 5 3 1 11 14 15 24 6=701.2. R= S MOD M =70 MOD 10 =0输入代码