系统设计
1、系统设计的任务与原则
1.1、系统设计的任务
-
系统设计的主要任务就是以系统分析中所提出的逻辑方案为基础,根据系统实现的内、外环境和主、客观条件,从技术的角度考虑系统的划分、功能结构等问题,从提高系统的运行水平、工作效率和质量方面,完成系统物理方案的设计,使企业能从信息系统的应用中获得最大的综合经济效益。
-
系统设计的任务包括:
任务 内容 功能结构设计 将整个系统划分为具有独立性的模块,以便于系统实施阶段的程序设计 代码设计 制定人和机器的共同语言,使系统通过代码完成鉴别、分类和排序等功能 数据库设计 将现实问题转化为计算机世界的问题,为系统实施提供具体依据 物理配置方案设计 构建一个信息系统实现的物理平台
1.2、系统设计的原则
-
系统性原则
系统是作为一个整体而存在。
-
灵活性及可维护性原则
灵活性指系统对外界环境变化的适应能力。可维护性是指允许系统被修改和维护的难易程序。
-
可靠性原则
指系统抵御外界干扰的能力及受外界干扰后的恢复能力。
-
经济性原则
指在满足系统要求的前提下,不仅追求给用户带来一定的效益,还应尽可能减少系统不必要的开销。
2、系统功能结构设计
系统功能结构设计是系统设计首先要考虑的问题。从设计任务的角度,它属于系统的总体结构设计。从开发的角度,它属于逻辑设计的范畴。它的主要任务是根据系统的总体目标和功能,将整个系统划分为具有独立性的子系统和模块。正确处理模块之间的调用关系,合理安排模块内功能结构设计的问题,是模块结构设计的关键。
2.1、模块和模块化设计
-
模块是指独立命名并且拥有明确定义的实体。系统中的任何一个处理功能都可以看成是一个模块。
一个模块应具备4个要素:
要素 说明 输入和输出 模块的输入来源和输出去向都是同一个调用者,即一个模块从调用者处取得输入,进行加工后再把输出返回调用者 处理功能 指模块把输入转换成输出所做的工作 内部数据 指仅供该模块本身引用的数据 程序代码 指用来实现模块功能的程序 注: 前两个要素是模块的外部特性,后两个要素是模块的内部特性。
结构化方法的基本思想就是模块化,即把系统功能自顶向下地、由抽象到具体地划分为多层次的独立功能模块,每个模块完成一个特定的功能,一直分解到简单地用程序实现为止。
-
模块结构图又称控制结构图、系统结构图,它用一组特殊的图形符号按照一定的规则描述系统的整体结构。
模块结构图是结构化系统设计的一个主要工具,它可以描述的问题包括:模块化分解后的系统结构层次、
模块间组成层次的调用关系、模块间传递的数据信息及控制信息等。
模块结构图的基本符号:
-
模块
用矩形框表示一个模块,在矩形框中间标上模块的名称。这个名称应能反映模块的处理功能。
-
调用
用连接两个模块的箭头表示调用。调用关系只能是上层模块调用下层模块,不允许下层模块调用上层模块。
通常也不允许同层模块之间的调用。
判断调用(菱形符号表示):一个模块是否调用一个下层模块取决于调用模块内部的判断条件。
循环调用(弧形箭头表示):一个模块通过其内部的循环功能来循环调用一个或多个下层模块。
-
数据信息
用带空心圆的小箭头表示数据信息,并在旁边标上数据信息名。数据可以从一个模块传递到另一个模块,再将处理的结果数据送回原模块。
-
控制信息
用带实心圆的小箭头表示控制信息,并在旁边标上控制信息名。控制信息是为了指导程序下一步执行必须传输的某些信息。
-
转接符号
当模块结构图在一张图上画不下,需要转接到另外一张图上,或为了避免图上线条交叉时,都可使用转接符号。
2.2、模块结构图和功能结构设计
-
数据流程图导出初始模块结构图
通过系统分析中的数据流程图导出模块结构图的导出方法是:首先区分数据流程图中每一部分的结构类型是变换型还是事务型,然后根据不同的类型相应地采用变换分析法或事务分析法把数据流程图映象成相应的模块结构。整个导出过程分成四个部分:确定图中有几种导出类型;按事务型导出分析;按变换型导出分析;最后完成合并,给出完整的模块结构图。
-
确定数据流程图中有几种导出类型
- 变换型:如果数据流程图是可以明显地分成输入、处理和输出3部分的线型结构,则它是”变换型“的数据流程图。
- 事务型:如果数据流程图大致呈束状结构,即某个处理将它的输入分离成一束平行数据流,根据对外部信息的处理从多条数据流中选择其中某一条数据流,则它是”事务型“的数据流程图。
-
按变换型导出分析
变换分析法可以分成3步:
- 找出系统的逻辑输入、逻辑输出和主处理
- 设计模块的顶层和第一层
- 设计中、下层
-
按事务型导出分析
事务分析法先设计主模块,即代表整个系统功能的顶层模块。
-
完成合并,给出模块的结构图
- 将2、3两种方法导出的模块结构图合并。
-
-
功能结构设计
从数据流程图中导出模块结构图的方法非常麻烦。现在考虑换一种方式产生模块结构图。主要的思路就是以功能直接划分,简单明了。首先,以系统数据流程图中的“数据处理(功能)”为依据。从系统的上层开始,将大功能分解为若干小功能,层层分解,直到将一个复杂的问题简单化,一个抽象的功能具体化为止。产生一个按功能从属关系划分的所谓的“功能结构图”。图中的每一个框均称为功能模块。
2.3、模块设计优化的原则
-
模块的独立性
模块的独立性大致包括耦合性和内聚性两个指标。
耦合性(Coupling)是指多个模块间相互联系、相互依赖的程度,主要是从模块外部考察模块的独立性。耦合性越低,相互影响越小,系统独立性越强,故应尽量降低模块间的耦合度。
内聚性是指一个功能模块内部各处理之间相互联系的密切程度,主要是从模块内部来考察模块的独立性。内聚性越高,系统独立性越强。
-
模块的大小
模块的大小是指实现模块所需编写程序的行数。模块的设计既不能过大也不能过小。模块的大小设计应尽量降低设计复杂性,提高程序可读性和可维护性。
-
扇入与扇出
所谓扇出系数,就是一个模块直接调用其他模块的个数。
所谓扇入系数,就是直接调用该模块的模块个数。
经验表明,一个设计好的系统应有较高的扇出系数和较低的扇入系数,平均扇入、扇出系数通常是3或4,一般不应该超过7,否则会引起出错概率的增加。
-
作用范围与控制范围
判断的作用范围是指所有受这个影响的模块,即操作执行依赖于此判定的模块。
模块的控制范围是指模块本身及其所有的下属模块。
好的模块结构设计应满足判定的作用范围在模块的控制范围以内,判定所在的模块在模块层次结构中的位置不能太高。
3、代码设计
代码是用数或字符代表事物名称、属性或状态等的符号。它以简短的符号形式代替具体的文字说明,唯一地址标识系统中的某一事物。在信息系统中,代码是人和机器的共同语言,是系统进行信息鉴别、分类、检索和排序等处理的依据。代码设计是实现信息管理的一个前提条件。
3.1、代码的主要功能
-
帮助对数据进行鉴别和使用
-
便于数据管理,提高效率
-
提高数据的全局一致性
3.2、代码的种类
根据代码符号的表示形式可以分成数字码、字符码和混合码;根据代码的结构规则可以分成以下:
-
顺序码
顺序码又称系列码,它是用连续的数字代表编码对象,如流水号等。
-
区间码
区间码把数据项分成若干组,每个组分配一个代码的区间段,该区间中的数字值和位置都代表一 定的特殊意义。区间码主要分为:
-
层次码
按照 编码对象类别的不同从属层次,将代码的各数字位分成若干个区间,每一区间都规定不同的含义。
-
十进制码
十进制码是由层次码发展而来的。它先把整体分成若干层,每划分一层用一个小数点隔开,然后把每一层再分成若干层,这样继续不断地划分。
-
特征码(多面码)
按照编码对象的不同层次将代码的各位数字分为若干区间,每个区间规定不同的含义。特征码的各类别层次间没有从属关系,而是代表了编码对象的不同特征方面。
-
-
助记码
助词码是为了帮助记忆,用数字和符号将编码对象的名称、规格等描述出来并作为代码的一部分的代码类型。例如,用TV-A-46可以表示46英寸A等彩色电视机。
3.3、代码的校验
3.4、代码设计的原则
-
唯一性
-
标准化。 在一个代码体系中,代码结构、类型及编写格式要统一
-
合理性。代码结构合理反映编码对象的特征,与事物分类体系相适应。尽量采用不易出错的代码结构。
-
可扩充性。代码系统要考虑系统的发展变化,留有充分余地以备将来不断扩充的需要。
-
适用性。代码尽可能反映对象的特点及规律,以助记忆,便于填写。
-
简洁性。代码的长度应以短小为好。
-
系统性。有一定的分组规则,从而在整个系统中具有通用性。
3.5、举例(代码设计可参考以下步骤)
-
确定代码对象
-
考察是否已有标准代码
-
根据代码的使用范围和使用时间,根据实际情况选择代码种类
-
考虑检错功能
-
编写代码表
4、数据库设计
数据库设计的全过程包括用户需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施、运行与维护5个阶段。
4.1、用户需求分析
用户需求分析是数据库设计的起点。需求分析实际上已经在系统分析和设计中完成了,数据库设计阶段只需要进一步确认以下需求即可:
-
数据要求
包括对数据内容、来源去向、性质、取值范围和数据存储等的要求。
-
处理要求
满足用户信息需求要做的处理功能、处理方式和响应时间等。
-
安全性与完整性要求
4.2、概念结构设计
概念结构设计是整个数据库设计的关键。形成一个独立于具体数据库管理系统的概念模型。
概念设计的主要步骤如下:
- 先根据系统分析的结果设计各个局部E-R图
- 再将局部E-R图集成为总体E-R图
4.3、逻辑结构设计
逻辑结构设计是在概念结构设计的基础上完成的,其主要任务是将概念结构E-R图转换为某个数据库管理系统所支持的数据模型,并对其进行优化。
概念结构设计已经将现实世界中的信息描述为信息世界的信息,逻辑结构设计则要进一步将其转换到数据世界的信息。
逻辑结构设计的步骤:
-
E-R图转换为关系数据模型
将实体和实体间的联系转化为关系模式,并确定关系模式的属性和主码的问题。
-
数据模型的规范化
数据库关系模式确定后可借助规范化理论进行规范化,以消除数据表冗余、更新异常等不合理现象,提高数据的可修改性、一致性和完整性。具体的规范化水平由弱到强依次如下:
- 数据表中的每一个属性都应是不可分割的数据项(数据元素),在同一表中,不能出现重复的数据项
- 每个非主码属性都由主码唯一决定
- 每个非主码属性都不依赖于其他的非主码属性
-
设计数据视图
用户视图是面向用户所呈现出的一种虚表。在数据库中并没有视图的数据存储,视图是由数据库语言中的查询、连接等操作从一个表或多个表导出的表。
数据视图将数据的表现形式与数据存储之间有效地隔离开来,还能起到提高数据库安全性等作用。
4.4、物理结构设计
逻辑结构设计是面向用户的,而物理结构设计是面向计算机的。数据库在物理设备上的存储结构和存取方法等就称为数据库的物理结构。其主要任务就是给逻辑数据模型选择一种最适合应用要求的物理结构。
主要内容有数据库存储结构设计、存取路径选择和数据索引的建立等。
设计数据库存储结构时需要综合考虑数据存取时间、存储空间利用率及数据库维护代价等方面的因素。
数据库设计还涉及数据的安全性和完整性保护的问题。安全性保护是防止机密数据被泄露,防止无权限者使用、改变或有意破坏他们无权限使用的数据。
完整性保护是保护数据结构不受损害,保证数据的正确性、有效性和一致性。
4.5、数据库实施、运行与维护
数据库的实施是根据数据库逻辑设计和物理设计的结果,建立实际的数据库结构、装入数据、进行测试和试运行的过程。
数据库的运行和维护是指数据库转储和恢复、维持数据库的安全性与完整性、监测并改善数据库性能,以及数据库的重组和重构等开发后续工作。
5、输入/输出设计
输入设计是信息系统与用户之间交互的纽带,而输出设计反映了系统开发的目的,其结果是评价系统开发成功与否的主要标准。
5.1、输出设计
输出设计的主要工作和基本步骤包括以下:
-
输出类型设计
输出类型包括以下:
- 外部输出。输出目标是系统之外的环境
- 内部输出。系统内部子系统之间的信息输出
- 中间输出。系统处理的一个中间结果的输出
- 交互输出。系统与用户间的对话输出
- 操作输出。计算机运行过程中系统提供的与操作有关的输出,如错误信息、程序清单等。
-
输出内容设计
-
输出格式设计
输出格式要满足使用者的要求和习惯,做到格式标准化,术语统一化,而且易于阅读、理解和计算机实现。
报表是常用的输出格式之一。
-
输出方式选择
如显示器、打印机等设备输出
5.2、输入设计
输入设计的目标是在保证输入信息正确性和满足输出需要的前提下,做到输入简便、迅速、经济。
输入设计的根本目标是提高输入效率和减少输入错误。
5.2.1、输入设计原则
输入设计应遵循以下原则:
-
输入量小
输入量应保持在能满足处理要求的最低限度。输入的数据越多,产生错误的几率越高。
-
输入简便
-
数据转换少
输入数据应尽量用其处理所需的形式进行记录,以便减少或避免数据由一种介质转换到另一种介质时可能产生的错误。
-
数据应尽早检验和自动检验
对输入数据的检验应尽量接近原数据发生点,使错误能及时得到更正,同时还应具有自动数据校验和检查的功能,尽可能防止用户出现不必要的输入错误。
5.2.2、输入内容设计
输入内容设计主要是根据数据库设计和输出设计的结果,确定哪些数据在哪一个模块进行输入,包括数据项的名称、类型、长度、精度、取值范围和输入处理方式等。
5.2.3、输入格式设计
输入格式应该针对输入设备的特点进行设计。
5.2.4、输入方式设计
数据输入方式有外部输入(键盘输入、鼠标输入、扫描仪输入等)和计算机输入(网络传输数据等),输入设备有键盘、鼠标、扫描仪、光电阅读器等。信息系统对数据的准确性要求较高,应选择从条码阅读器、子系统或网络终端直接传输的方式,而少用人工输入的方式,避免数据输入错误所造成的损失。
5.2.5、输入数据的校验
常见的输入检验方式有二次输入校验法、静态校验法、平衡校验法、文件查询校验法、界限校验法、数据格式校验法和校验码方法等。
5.3、人机对话设计
-
人机对话设计的考虑因素
人机对话设计的基本原则是用户第一,而不应从设计人员的角度来考虑,具体应注意以下几点:
-
对话设计以用户需要为先
-
对话设计的实质是信息交换
-
对话设计友好性强
-
-
人机对话设计的基本类型
主要有以下几种基本类型:
- 菜单式
- 命令式
- 填表式
- 应答式
6、物理配置方案设计
6.1、物理配置方案设计的依据
-
系统的吞吐量。 指每秒钟执行的作业数
-
系统的响应时间
系统的响应时间是指从用户向系统发出一个作业请求开始,经系统处理后,给出应答结果的时间。
-
系统的可靠性
系统的可靠性可以用连续无差错工作的时间来表示。
-
系统的处理方式
如果信息系统的处理方式是集中式的,则信息系统既可以是主机系统,也可以是网络系统。
若系统的处理方式是分布式的,采用网络系统将能更有效地发挥系统的性能。
-
系统的地域范围
-
系统的数据管理方式
根据数据管理方式和性能要求的不同,选择相应的数据库管理系统
6.2、系统工作模式设计
-
集中式系统
集中式系统是集设备、软件和数据于一体的工作模式。包括单机结构和主机结构。
单机结构是指系统在单个的计算机上独立使用,仅适用于个人信息处理系统。
主机结构是指系统安装在大型主机上。
-
分布式系统
分布式系统的工作模式是将整个系统分成若干个地理上分散的配置,业务可以独立处理,但系统在统一的工作规范和技术要求下运行。分布式系统主要包括客户机/服务器(C/S)模式和浏览器/Web服务器(B/S)模式。
客户机/服务器模式中,客户机为前台,服务器为后台,协同执行一个应用程序任务。客户机前台负责数据处理的启动和部分控制,以及与用户交互。服务器后台则运行DBMS,完成大量的数据处理和存储管理任务。
浏览器/服务器模式是一种三层结构。
6.3、计算机硬件设计
计算机硬件选择是建设信息系统的一个关键问题。
6.4、计算机软件设计
-
操作系统
操作系统是统一管理计算机软、硬件资源的系统软件,在计算机和用户之间起到接口和桥梁的作用。
-
数据库管理系统
信息系统以数据库系统为基础,数据库选择是否恰当对信息系统有着举足轻重的影响。
-
开发工具
6.5、计算机网络设计
影响信息系统运行的网络因素包括网络的传输速度、吞吐量、带宽、安全性和灵活性等。
-
网络拓扑结构的设计
网络的拓扑结构是指网络上的通信线路,以及各个计算机相互连接的几何排列或物理布局形式。
目前常用的网络拓扑结构有总线型、星形、环形和混合型等。
-
网络逻辑结构的设计
将系统从逻辑上分为若干分系统或子系统,然后按需要配备服务器、交换机和集线器等设备。
-
网络操作系统的选择
目前流行的有Linux、UNIX和Windows等。
7、系统设计说明书
系统设计报告的内容主要是各种设计方案和设计图表,其内容大致应包括以下几点:
7.1、功能结构设计
- 系统的模块结构图(或子系统的结构图)
- 模块设计说明书(包括各模块的名称、功能、调用关系、局部数据项和详细的算法说明等)
7.2、代码设计
各类代码的编码方案、类型、功能、使用范围和使用要求等。
7.3、数据库设计
- 用户需求分析(设计目标、数据信息需求等)
- 概念设计(局部E-R图、总体E-R图等)
- 逻辑设计(E-R图转换为相应数据模型和数据模型优化等)
- 物理设计(物理存储设计、数据存取路径选择、安全性和完整性设计等)
7.4、输入/输出设计
- 输出界面设计(输出类型、内容、格式、方式、功能和要求等)
- 输入界面设计(输入内容、格式、方式、人员、功能和校验等)
7.5、物理系统配置方案设计
系统工作模式设计、硬件设计、软件设计和网络设计等
7.6、系统实施方案及说明
实施方案、计划、审批等