第7节 系统设计.docx
- 文档编号:10448495
- 上传时间:2023-02-11
- 格式:DOCX
- 页数:29
- 大小:248.44KB
第7节 系统设计.docx
《第7节 系统设计.docx》由会员分享,可在线阅读,更多相关《第7节 系统设计.docx(29页珍藏版)》请在冰豆网上搜索。
第7节系统设计
第七章系统设计
通过本章学习,应当掌握以下内容
1、系统设计的任务、目标和内容
2、结构化设计的基本思想
3、如何从数据流程图导出结构图
4、一体化设计方法的基本原理与方法
5、代码设计的原则与方法
6、输出设计的内容
7、输入设计的原则和内容
8、输入数据的校验方法
9、人机对话设计的原则
识记:
一、系统设计的任务、目标和内容
二、评价信息系统的标准
三、结构化设计的基本理论
四、模块、结构图的概念与使用
五、模块的联系与耦合
六、变换分析和事务分析方法的原理与运用
七、代码的作用、类型、设计的原则及代码检验
八、输出设计的内容
九、输入设计的原则和内容
十、输入数据的校验方法
十一、人机对话设计的原则
领会:
一、系统分析阶段要回答的中心问题是什么?
二、为什么说从系统研制的角度讲,系统的可变更性是最重要的标准?
三、结构图与数据流程图有什么区别与联系
四、模块划分的原则是什么?
五、怎样度量耦合的高与低
六、什么是模块的控制范围?
什么是判断的作用范围?
七、如何编写系统设计说明书
应用:
根据给定的数据流程图,能够画出信息系统结构图
计划课时:
8课时
第一节系统设计的任务要求
系统分析阶段要回答的中心问题是系统"做什么",即明确系统功能,这个阶段的成果是系统的逻辑模型。
系统设计要回答的中心问题是系统"怎么做",即如何实现系统说明书规定的系统功能。
在这一阶段,要根据实际的技术条件、经济条件和社会条件,确定系统的实施方案,即系统的物理模型。
一、评价信息系统的标准
根据一个逻辑模型,可以提出多个物理模型。
我们怎样评价、选择物理模型呢?
为此,我们有必要先简要讨论评价信息系统的标准。
面向管理的信息系统,其优劣程度取决于它为管理工作提供信息服务的质量。
我们可以从六个方面来衡量。
1、信息系统的功能
2、系统的效率
3、系统的可靠性
4、系统的工作质量
5、系统的可变更性
6、系统的经济性
二、系统设计的目标
系统设计必须从保证系统的变更性人手,设计出一个易于理解、容易维护的系统。
为了使系统容易修改,首先要使其容易被理解,需要注意以下几个问题:
(1)把系统划分为一些部分,其中每一部分的功能简单明确,内容简明易懂,易于修改。
我们把这样的部分称为模块。
(2)系统分成模块的工作按层次进行。
首先,把整个系统看成一个模块,按功能分解成若干个第一层模块,这些模块互相配合,共同完成整个系统的功能。
然后按功能再分解第一层的各个模块。
依次下去,直到每个模块都十分简单。
(3)每一个模块应尽可能独立,即尽可能减少模块间的调用关系和数据交换关系。
当然,系统中的模块不可能与其他模块没有联系,只是要求这种联系尽可能少。
(4)模块间的关系要阐明。
这样,在修改时可以追踪和控制。
总之,一个易于修改的系统应该由一些相对独立、功能单一的模块按照层次结构组成。
这些模块之间不必要的联系都已去掉,而且它们的功能及相互关系都已阐明。
这就是结构化设计的基本思想。
三、系统设计的内容
系统设计阶段的任务是提出实施方案。
该方案是这个阶段工作成果的体现,这个方案以书面的正式文件--系统设计说明书提出,批准后将成为系统实施阶段的工作依据。
系统设计的基本任务大体上可以分为两个方面:
1.把总任务分解成许多基本的、具体的任务
(1)将系统划分成模块;
(2)决定每个模块的功能;
(3)决定模块的调用关系;
(4)决定模块的界面,即模块间信息的传递。
2.为各个具体任务选择适当的技术手段和处理方法
这便是详细设计,包括代码设计、数据库设计、输入设计、输出设计、人机对话设计、处理过程设计。
第二节结构化设计的基本概念
一、模块
模块(Module)一词使用很广泛。
通常是指用一个名字就可以调用的一段程序语句。
可以将它理解为类似"子程序"的概念,例如PASCAL程序设计中的函数、过程,FORTRAN程序设计中的函数和子程序。
模块具有输人和输出、逻辑功能、运行程序、内部数据四种属性。
模块的输入、输出是模块与外部的信息交换。
一个模块从它的调用者那里获得输入,把产生的结果再传递给调用者。
模块的逻辑功能是指它能做什么事,它是如何把输入转换成输出的。
输入、逻辑功能、输出构成一个模块的外部特性。
内部数据和程序代码则是模块的内部特性,是看不见的。
模块用程序代码完成它的逻辑功能。
内部数据是仅供该模块本身引用的数据。
在总体设计阶段,主要关心模块的外部特性,模块的内部属性是以后要解决的问题。
模块用长方形表示。
模块的名字写在长方形内。
模块的名字由一个动词和一个作为宾语的名词表示。
模块的名字应恰如其分地表达这一个模块的功能。
二、结构图
结构化设计采用结构图(StructuredChart)描述系统的模块结构及模块间的联系。
结构图中的主要成分有:
(1)模块用长方形表示。
(2)调用从一个模块指向另一模块的箭头表示前一个模块调用后一个模块。
箭尾的菱形表示有条件地调用,弧形箭头表示循环调用。
(3)数据用带圆圈的小箭头表示从一个模块传递给另一模块的数据。
(4)控制信息带涂黑圆圈的小箭头表示一个模块传送给另一模块的控制信息。
结构图的层数称为深度。
一个层次上的模块总数称为宽度。
深度和宽度反映了系统的大小和复杂程度。
模块结构图可以由数据流程图转换而来。
但是二者有本质的区别:
模块+数据流+控制流+模块之间的调用关系=系统结构图;
各组成成分+数据流=数据流图。
三、模块间的联系
在一个大的程序中,模块间的联系是千丝万缕的。
因此把一个系统分解成许多模块时,分法不同,模块间的联系程度就不同。
我们希望模块内联系越紧越好,模块间联系越少越好。
耦合、内聚两个概念从不同的角度反映这种联系。
四、模块间的耦合
耦合是影响系统复杂程度的二个重要因素。
若为了理解模块A,需要对模块B有所了解,则A,B之间有联系。
如果需要对B的理解越多,则A,B的联系就越紧密,我们就说它们耦合越紧。
若程序员要修改紧耦合中的一个模块,很可能不得不修改另一个模块。
因此,模块间的耦合程度对系统的可维护性、可靠性有强烈的影响。
影响模块间耦合程度有三方面的因素:
联系方式--模块间通过什么方式联系;来往信息的作用--模块间来往信息作什么用;数量--模块间来往信息的多少。
这三个因素可用三维坐标表示,如图7.3所示,离坐标原点越远,耦合程度越高。
下面分别讨论。
1.联系方式
联系方式有两种,即"直接引用"和"用过程语句调用"。
2.来往信息的作用
若两个模块间传递的信息只作数据用,即一个模块提供的输出数据作为另一个模块
的输人数据,则这种耦合称为数据耦合。
这种耦合当然是需要的。
如果两个模块间传递的信息作控制用,这种耦合称为控制耦合。
其实,在系统设计中这种耦合是可以避免的。
在这个例子中,只要改为图7.4(b)所示的形式就行了。
模块A根据需要调用模块1或B2。
3.模块间来往信息的数量
很明显,模块间传递的信息量越大,它们之间的耦合程度越高。
为减小耦合程度应该:
(1)用过程语句调用其他模块;
(2)模块间的参数作数据用;
(3)模块间的参数尽可能少。
注:
在用高级语言编程序时,只要注意消除开关量,减少共用变量,就可以大大降低模块间的耦合程度。
五、模块的内聚
模块的内聚反映模块内部联系的紧密程度。
如果一个模块内部相关性很高,而且都是为了同一个功能,我们就说它的内聚程度高。
模块的内聚可以分以下七类:
1、偶然内聚
2.逻辑内聚
3.时间内聚
这是指与时间有关的联系,即把需要有限时间间隔内处理的成分放在同一模块内,例如一些初始化模块。
这种模块的内聚程度比前两种稍高一些,但仍是一种低的内聚。
4.步骤内聚
模块内的元素属于同一个公共步骤单元,则称为步骤内聚。
步骤内聚模块的内聚程度比时间内聚模块高。
5.通信内聚
通信内聚是指模块内的成分引用共同的数据。
根据数据流程图容易判断一个模块是不是通信内聚。
通信内聚的聚合程度较高,找不到更高的内聚结构时,这种结构是完全可以接受的。
6.顺序内聚
顺序内聚是指模块中某个成分的输出是另一模块的输入。
与通信内聚相比,顺序内聚的内聚程度更高。
因为不论从数据的角度还是从执行的顺序来看,模块内各成分的关系都更紧密。
但是与功能内聚相比,其内聚程度要低。
7.功能内聚
若一个模块包括并且仅包括为完成一个具体任务所需要的所有成分,则这个模块是功能内聚的。
这种模块的聚合程度是最高的。
结构化设计的目标就是获得这种模块。
判断一个模块是否功能内聚,简单有效的办法是:
从调用者的角度看,能用一个短语简单明确地描述这个模块做什么(不是怎么做!
),分析这个短语就可以发现这个模块是完成一个具体任务,还是多个任务,或者做一些彼此无关的杂事?
?
“解方程”、“求平方根”、“计算利息”都是具体任务。
功能内聚模块的好处是界面清晰,所以容易理解。
由于一个模块一个功能,因而复用性好。
后面三种是可以接受的,前面四种则要尽可能避免。
六、作用范围与控制范围
一个判断的作用范围是所有这样的模块的集合,这些模块内含有依赖于这个判断结果的处理。
一个模块的控制范围是指它本身及其所有下属模块的集合。
这里下属模块包括直接下属模块及下属模块的下属模块。
图7.7中,模块A的控制范围是模块A,B,C,D构成的集合。
结构化设计要求:
对于任何一个判断,其作用范围应该是这个判断所在模块的控制范围的一个子集。
换言之,所有受判断影响的模块应该从属于做出判断的那个模块。
七、模块的扇入与扇出
模块的扇出是指模块的直属下层模块的个数。
一般认为,设计得好的系统平均扇出是3或4;上限不超过7(解决的办法是适当增加中间层次)。
模块的扇入是指有多少个上级模块调用它。
扇人越大,表示该模块被更多的上级模块共享。
这当然是我们所希望的。
但是不能为了获得高扇人而不惜代价,例如把彼此无关的功能凑在一起构成一个模块,虽然扇人数高了,但这样的模块内聚程度必然低。
这是我们应避免的。
设计得好的系统,上层模块有较高的扇出,下层模块有较高的扇人。
其结构图像清真寺的塔,上面尖,中间宽,下面小。
第三节从数据流程图导出结构图
数据流程图有两种典型的结构:
变换型结构和事务型结构。
对这两种结构,可以分别通过变换分析和事务分析方法导出标准形式的结构图。
采用这些方法时,都是先设计结构图的顶端主模块,然后自顶向下逐步细化,最后得到满足数据流程图要求的系统结构。
一、变换分析
变换结构是一种线性结构。
它可以明显地分成逻辑输入、主加工和逻辑输出。
变换分析过程可以分为三步:
找出逻辑输入、主加工和逻辑输出,设计顶层模块和第一层模块,设计中、下层模块。
二、事务分析
事务分析也是按"自顶向下,逐步细化"的原则进行。
先设计主模块,其功能就是整个系统的功能。
下面有一个"分析模块"和"调度模块"。
前面我们分别讨论了变换分析、事务分析。
但实际应用中数据流程图并非这么典型,这两种分析往往交替使用,数据流程图的某一个局部可能是变换型,另一个局部可能是事务型,如此等等。
这时,一般以变换分析为主,辅之以事务分析
三、数据流程图层次的转换
数据流程图是分层次的,当我们对某一层数据流程图进行变换分析或事务分析得出相应的模块结构图之后,还必须转换它下一层的数据流程图。
四、转换策略
(1)以变换为中心的设计
(2)以事务分析为中心的设计
五、优化设计
将初始结构图根据模块独立性原则进行精化,对模块进行合并、分解修改、调整,得到高内聚、低耦合模块,得到易于实现、易于测试和易于维护的软件结构,产生设计文档的系统最终结构图。
优化设计基本原则:
合理控制系统的深度与宽度
合理控制模块的扇出数(扇出数5—7)
模块的大小要适当(一张A4纸)
消除重复的功能
作用范围和控制范围
第四节代码设计
代码是指代表事物名称、属性、状态等的符号,它以简短的符号形式代替具体的文字说明。
代码设计的任务:
设计出一套供管理信息系统开发和运行所需的代码系统。
一、代码的作用
1.便于录入
2.节省存储空间,提高处理速度
3.便于计算机识别和处理
4.提高数据标准化程度
5.提高处理精度
二、代码设计应遵循下面六条基本原则:
1.惟一性
2.通用性(标准化)
3.可扩充性
4.简洁性
5.系统性
6.易修改性
三、代码的种类
1.顺序码:
连续的数字或字母代表编码对象
如:
张平的职工号为0001;李立为0002等;
优点:
简单,位数少,易追加,易管理;
缺点:
可识别性差,无逻辑性。
2.层次码:
按区间划分代码,每个区间有一定的含义
如某大学的学生代码******
优点:
分类明确,有严格的隶属关系,容量大;
缺点:
位数多。
3.特征组合码:
按分类对象的属性或特征分“面”,“面”内的类目按其规律编码
如:
螺钉可选用材料、直径、螺钉头形状等三个“面”
第一面:
1-不锈钢2-黄铜3-钢
第二面:
1-Ø0.52-Ø13-Ø1.5
第三面:
1-圆头2-平头3-六角形头4-方形头
代码234表示“黄铜Ø1.5方形头螺钉”
优点:
具有一定的柔性,适合计算机处理;
缺点:
利用率较低,易出现大量空码。
4.十进制码:
图书馆常用的图书编码方法,与层次码的编码原理相同,所不同点是在十进制码结构中采用了小数点符号.
5.助记码:
用具有特定意义的字母代表某一类项目
如:
“TV-C-34”表示34英寸彩色电视机;
优点:
可用汉字拼音或英语联想帮助记忆;
缺点:
位数多,处理不便,易产生重复。
四、代码校验方法
代码是数据的重要组成部分,它的正确性将直接影响系统的质量。
代码输入时常见的错误
抄写错误:
例如,1写为7;3写为8
易位错误:
例如,1234写为1324
双位错误:
例如,36912写为21963
随机错误:
包括以上两种或三种综合性错误或其它错误
校验码是根据事先规定好的数学方法及代码本体计算出来的。
当自检码输入计算机后,计算机按照同样的数学方法,根据代码本体进行计算,将结果与校验位比较,检验输入的代码是否正确。
校验码的生成过程如下:
(1)对代码本体的每一位加权求和
设代码本体为
,权因子为
,加权求和:
其中权因子可取自然数
几何级数
质数
等等。
(2)以模除和得余数
其中:
R表示余数;M表示模数,可取M=10、11,等等。
(3)模减去余数得校验位
例如,代码本体为123456,权因子为1,7,3,1,7,3,模为10,则
校验位为:
所以自检码为1234569,其中9为校验位。
当自检码
(其中
为校验位)输入计算机后,对
分别乘以原来的权因子,
乘以1,所得的和被模除,若余数为零,则该代码一般说来是正确的,否则输入有错。
下表列出一些权和模的检错率:
模
权
抄写错检错率
易位错检错率
隔位易位错检错率
随机错检错率
10
1,2,1,2,1,2
100%
98%
0%
10
1,3,1,3,1,3
100%
89%
90%
10
7,6,5,4,3,2
87%
100%
11
9,8,7,4,3,2
95%
100%
89%
11
1,3,7,1,3,7
100%
89%
11
7,6,5,4,3,2
100%
100%
100%
五、代码设计的步骤
代码设计可按下列步骤进行:
(1)确定代码对象。
(2)考查是否已有标准代码。
如果国家标准局、某个部门对某些事物已规定了标准代码,那么应遵循这些标准代码。
如果没有标准代码,那么在代码设计时要参考国际标准化组织、其他国家、其他部门、其他单位的编码标准,设计出便于今后标准化的代码。
(3)根据代码的使用范围、使用时间,根据实际情况选择代码的种类与类型。
(4)考虑检错功能。
(5)编写代码表。
代码编好后,要编制代码表,作详细说明,通知有关部门,组织学习,以便正确使用。
第六节输出设计
输出设计包括以下几方面的内容:
1、确定输出内容
用户是输出信息的主要使用者。
因此,进行输出内容的设计,首先要确定用户在使用信息方面的要求,包括使用目的、输出速度、频率、数量、安全性要求等等。
根据用户要求,设计输出信息的内容,包括信息形式(表格、图形、文字),输出项目及数据结构、数据类型、位数及取值范围,数据的生成途径,完整性及一致性的考虑,等等。
2、选择输出设备与介质
常用的输出设备有显示终端、打印机、磁带机、磁盘机、绘图仪、缩微胶卷输出器、多媒体设备。
输出介质有纸张、磁带、磁盘、缩微胶卷、光盘、多媒体介质等等。
这些设备和介质各有特点,应根据用户对输出信息的要求,结合现有设备和资金条件选择。
3、确定输出格式
提供给人的信息都要进行格式设计。
输出格式要满足使用者的要求和习惯,达到格式清晰、美观、易于阅读和理解的要求。
报表的输出,根据需要可采用不同的形式。
对于单个用户一次性使用的表格,因为没有保留价值,可以在显示终端上输出。
对于多个用户需要多次使用的表格,可打印输出。
打印输出的报表,要考虑时间划分、装订等问题。
需要长期保留的输出报表,可采用磁盘文件形式输出,以便存储。
报表的格式要与系统流行的表格尽量一致,尤其是各级统计部门统一制定的报表不得更改。
如果要更改现行表格,必须由系统设计员、分析员共同讨论,拿出更改的充分理由,与管理人员协商,得到有关部门的批准。
第七节输入设计
一、输入设计的原则
“输入的是垃圾,输出的必然是垃圾”。
输入设计的目标是保证向系统输入正确的数据。
在此前提下,应做到输入方法简单、迅速、经济、方便。
为此,输入设计应遵循以下原则:
1、最小量原则
这就是在保证满足处理要求的前提下使输人量最小。
输入量越小,出错机会越少,花费时间越少,数据一致性越好。
2、简单性原则
输入的准备、输入过程应尽量容易,以减少错误的发生。
3、早检验原则:
对输人数据的检验尽量接近原数据发生点,使错误能及时得到改正。
4、少转换原则
输入数据尽量用其处理所需形式记录,以免数据转换介质时发生错误。
二、输入设计的内容
输人设计的内容包括:
1、确定输入数据内容
输人数据的内容设计,包括确定输入数据项名称、数据内容、精度、数值范围。
2、确定数据的输入方式,
数据的输入方式与数据发生地点、发生时间、处理的紧急程度有关。
如果发生地点远离计算机房,发生时间是随机的,又要求立即处理,则采用联机终端输入。
对于数据发生后可以不立即处理的,可以采用脱机输入。
3、确定输入数据的记录格式
这是输入设计的主要内容之一。
记录格式是人机之间的衔接形式,因而十分重要,设计得好,容易控制工作流程,减少数据冗余,增加输入的准确性,并且容易进行数据校验。
4、输人数据的正确性校验
这也是输入设计的一项重要内容。
我们已经强调,输入设计最重要问题是保证输入数据的正确性。
对数据进行必要的校验,是保证输入正确的重要环节。
5、确定输入设备
常用的输入设备有键盘、鼠标、读卡机、磁性墨水字符识别机、光电阅读器、条形码识别机、声音识别仪、图像扫描仪等等。
'随着信息技术的发展,输入方式和设备也在不断更新。
设备的选用应考虑以下一些因素:
(1)输入的数据量与频度;
(2)数据的来源、形式、收集环境;
(3)输人类型、格式的灵活程度;
(4)输人速度和准确性要求;
(5)输人数据的校验方法、纠正错误的难易程度;
(6)可用的设备与费用。
三、数据记录格式设计
输人数据的记录格式既要便于操作人员录入,又要便于填表人员、现场工作人员填写。
这种记录格式本质上分为两部分:
预先印刷部分和插入数据的空格。
让人填的表格,不仅要注明文字,而且在表格下方也要注明代码说明。
一些比较简单的代码,也可在表中列出,这样既方便了填表人和读表人,使他们不用死记编码或反复翻阅代码表,又可提高填写的准确性,从而能够保证输人数据的准确性。
下表是一个示例。
申
请
项
目
名称
类别
A重大B重点C专项合同D地区
所用实验室
A国家重点B部门开放
申请金额
万元
申
请
者
姓名
性别
1男2女
技术职称代码
学位
A博土B硕土C学土
所在
单位
名称
代码
通信地址
省市区
邮政编码
性质
A高等学校B科研单位C其他
隶属关系
名称
代码
对一些不太复杂的代码;如申请项目类别、学位等,列出了代码及含义,填写很方便。
而另外一些(如所在单位、技术职称)项目的代码则附在表后,供填表者查阅。
表中"申请金额"一项不仅说明了单位,还确定了小数点位置及数字填写的方格,填表者必须规范填写。
为了保证输入的准确性,设计记录格式时还可以采用如下一些基本技术:
(1)块风格把一部分框起来,引人注目,每个空格填人的数据仅为其所要求的数据。
(2)阴影不用编码员完成的那部分格式使用阴影,并注上说明。
(3)选择框填表者只要打勾,如下页调查表。
表格的设计者已按调查要求,将调查内容详细分类列出,填表人只需在相应方格内打勾即可。
仅当所列项目未包括填表者的选择内容时才写字。
填写非常简便,很多情况下可以不写一个汉字(被调查人的情况可用名片代替)。
向社会发放的调查表,这点尤其重要。
填写麻烦,回收率必然低。
(4)颜色不同部分用不同的颜色。
(5)设立数字域数字栏应能容纳可能最大的数,标出小数点位置,见表7,3。
(6)划分注明装订线。
(7)说明关键部分加以说明。
四、输入数据的校验方法
主文件是系统的基础数据,使用频繁。
各种金额、数量要求特别准确,一旦出错将引起业务工作的混乱。
因此对这些数据要当重点进行校验。
数据出错有三种情况:
(1)数据内容错这是由于原始单据有错或录人时发生错误。
(2)数据多余或不足这是收集中的错误,如原始单据丢失或重复。
(3)数据的延误由于输入数据迟缓导致处理推迟,不仅影响业务工作,还可能使输出结果变得无价值。
数据的校验有种种方法,可根据需要和条件选用。
下面介绍12种方法。
(1)重复校验
这是将相同的内容重复执行多次,比较其结果。
例如,由两个或更多操作员录入相同的数据文件,比较后找出不同之处予以纠正。
(2)视觉校验
一般在原始数据转换到介质以后执行。
例如,从终端上键人数据,在屏幕上校验之后再送到计算机处理。
视觉校验一般查错率可达到75%-85%。
(3)分批汇总校验
对重要数据,如传票上的金额,其数量可以进行分批汇总校验。
将原始传票按类别、日期等分成若干批,先手工计算每批总值,输入计算机后,计算机再计算总值,二者对照进行校验。
(4)控制总数校验
分批汇总校验是对部分重要数据进行的,控制总数校验则是对所有数据项的值求和进行校验,其出错位置的确定比分批汇总校验精确。
(5)数据类型校验
这是指校验数据是数字型还是字符型,还可组合运用界限检查、逻辑检查等方法进行合理性校验。
(6)格式校验
格式校验也称错位校验。
这是校验各数据项位数和位置是否合乎事先的定义。
例如,若规定姓名最大位数是30位,那末第31位应为空格,否则认为数据错位。
(7)逻辑校验
逻辑校验检查数据项的值是否合乎逻辑。
例如月份应是1-12,日期应是1-31。
逻辑校验
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第7节 系统设计 系统 设计