1、了解系统设计的内容,掌握系统设计的基本方法;理解结构化设计的思想,掌握模块(子系统)划分的原则和方法;掌握代码设计的原则、任务与方法;掌握数据库设计的步骤和方法,理解关系模式和关系规范化的概念;了解用户界面设计的原则和方法,掌握输入输出的格式设计,了解输入数据的校验方法;掌握系统设计报告的内容结构和编写要求。1第一节系统总体功能结构设计第一节系统总体功能结构设计系统分析提出了系统的功能目标,对业务流程和数据流进行了梳理,从逻辑上明确了系统的结构。逻辑结构的具体实施则是系统设计阶段的主要任务。系统设计的主要目的是将系统分析提出的反映用户需求的逻辑方案转换成科学合理的、切实可行的物理方案,即根据系
2、统分析说明书中的系统逻辑模型,综合考虑各种约束,利用一切可用的技术手段和方法,进行各种具体设计,确定新系统的实施方案,解决“系统怎么做”的问题。2一、一、结构化设计的基本思想结构化设计的基本思想1)结构化的思想源于结构化程序设计的结构化思想在系统开发过程中也被用于系统分析与设计环节,形成结构化系统分析方法和结构化系统设计方法,并在长期的实践中对系统开发人员起着重要的指导作用。人们往往将结构化分析和设计结合在一起讨论。文3(1)抽象抽象原则是一切系统科学方法都必须遵循的基本原则,它注重把握系统的本质内容而忽略与系统当前目标无关的内容。它是一种基本的认知过程和思维方式。4(2)自顶向下,逐步分解自
3、顶向下,逐步分解是一种先总体后局部的思考过程。自顶向下是一个从抽象到具体的过程,逐步分解是一个从复杂到简单的过程。分解过后的系统更容易被理解和识别,也更容易实现。5(3)模块化使用分解原则把系统分解成若干个功能单元,每个功能单元完成一个子功能,这些功能单元就叫模块。然后把这些模块集成为一个整体,完成系统总体功能要求。这种分解和组合的全过程就是模块化。模块化原则使复杂问题简单化,在人类现有智力水平下,模块化是人类解决问题采用的普遍方法。62)模块和结构图模块是一个包含输入输出、处理功能、内部数据和运行程序的具有一定逻辑功能的单元。在管理信息系统中,一个处理功能可表示为一个模块。模块之间通过输入输
4、出进行信息交换,逻辑功能决定了模块的作用,两者构成模块的外部特性。外部特性是系统结构设计主要关心的部分,而构成内部特性的内部数据和运行程序一般在程序设计阶段考虑。7图61系统结构图8图62结构图例9二、二、子系统的划分子系统的划分1)子系统划分的原则系统功能结构设计的任务是划分子系统,然后确定子系统的模块结构。在系统划分成子系统,子系统划分成模块这个过程中必须考虑如何确保划分是科学合理的、是能够实现的、是符合用户要求的。子系统划分的指导原则有:(1)独立性原则(2)数据的依赖最小化原则(3)数据冗余最小化原则(4)阶段性原则(5)考虑管理发展需要的原则 102)划分子系统的方法划分子系统的方法
5、主要有两种:一种是在系统规划阶段,通过对功能/数据图(U/C矩阵)或聚类分析等方法产生子系统。这种方法得到的子系统比较粗糙,功能项不能充分分离,模块化程序低,后期的分解优化工作量很大。另一种方法是从系统分析得到的数据流程图导出模块结构图的方法。这种方法比较直观,导出的结构图模块清楚,关系明确,是进行系统结构设计的主要方法。11图63基于变换的数据流12图64变换流模块结构图13图65基于事务的数据流14图66事务流模块结构图15三、三、模块的分解与调用模块的分解与调用1)模块的分解通过划分子系统所得到的功能模块还需要优化,使得软件模块结构更为合理,优化的方法就是进行模块的分解。模块分解的根本原
6、则是提高模块的独立性,实现模块的“高聚合低耦合”。162)模块的调用模块之间有3种调用方式,即顺序调用、选择调用、重复调用。用结构图表示如图67所示:17图67模块调用示意图18第二节数据库设计第二节数据库设计数据库设计是指将现实问题中要处理的对象转换成计算机系统中能够处理的数据结构,然后在某一具体的数据库管理系统(DBMS)上实现的过程。数据库设计在系统设计中占有极其重要的地位,是管理信息系统的核心技术。数据库设计主要分为需求分析、概念设计、逻辑设计和物理设计4个阶段,下面分别进行介绍。19一、一、用户需求分析用户需求分析需求分析主要任务是调查和分析用户的业务活动和数据的使用情况,弄清所用数
7、据的种类、范围、数量以及它们在业务活动中交流的情况,确定用户对数据库系统的使用要求和各种约束条件等,形成用户需求规约。用户需求分析分3个步骤完成:1)调查用户环境2)收集分析数据,确定环境约束条件3)编写需求分析说明书20二、二、概念结构设计概念结构设计概念结构设计通过分析现实世界的客观事物或者生产生活中的活动,对其中信息进行分类、聚集和概括,从而建立抽象的概念数据模型。在概念模型中,实体表示客观事物,实体集表示同类实体的集合,属性表示事物的特性,联系表示事物之间的关系。21使用ER模型进行概念结构设计可分两个步骤进行,第一步先明确现实世界各部门所含的各种实体及其属性、实体间的联系以及对信息的
8、制约条件等,从而给出各部门内所用信息的局部描述(在数据库中称为用户的局部视图)。第二步再将前面得到的多个用户的局部视图集成为一个全局视图,即用户要描述的现实世界的概念数据模型。图68是一个库存管理信息系统的ER模型(部分)的实例。22图68库存管理信息系统ER模型23三、三、逻辑结构设计逻辑结构设计数据库的逻辑结构设计主要工作是将现实世界的概念数据模型设计成数据库的一种逻辑模式,即适应于某种特定数据库管理系统所支持的逻辑数据模型。数据模型有四种类型,分别是网状模型、层次模型、关系模型和对象模型。本节以目前使用最广泛的关系模型为例介绍从概念结构设计到逻辑结构设计的方法。241)实体的转换每个实体
9、都转换为一个关系模式,实体的属性作为关系的属性,实体的关键字作为关系的内关键字(内码,用右下划线表示)。252)联系的转换实体之间的联系也应转换为关系模式,但联系类型不同转换方式也有所区别。(1)1对1的联系(2)1对多的联系(3)多对多的联系263)具有相同关键字的关系可以合并为减少系统中的关系个数,如果两个关系模式具有相同的主关键字,可以将它们合并为一个关系模式。合并的方法是将其中一个关系模式的全部属性加入到另一个关系模式中,然后去掉其中的同义属性,并适当调整属性的次序。27四、四、物理结构设计物理结构设计数据库物理设计阶段的任务是根据具体计算机系统(和硬件等)的特点,为给定的数据库模型确
10、定合理的存储结构和存取方法。数据库的物理设计与逻辑设计不同之处在于,逻辑结构关注数据之间的关系以及将来存储的内容及其格式。物理结构关注的是在何种数据库系统中存储以及如何提高数据库的效率。281)确定数据的存储结构存储记录结构包括记录的组成、数据项的类型和长度,以及逻辑记录到存储记录的映射。决定存储结构的主要因素包括存取时间、存储空间和维护代价3个方面。设计时应当根据实际情况对这三个方面进行综合权衡。292)确定数据的存取路径在关系数据库中,选择存取路径主要是指确定如何建立索引。比如要对哪些属性建立索引或组合索引,采用哪种索引方式等。303)确定数据的存放位置确定数据存放位置是按照数据应用的不同
11、将数据库的数据划分为若干类,并确定各类数据的大小和存放位置。数据的分类可依据数据的稳定性、存取响应速度、存取频度、数据共享程度、数据保密程度、数据生命周期的长短、数据使用的频度等因素加以区别。314)确定系统配置DBMS提供了系统配置选择,可以根据系统需要对数据库进行物理优化。比如SQL Server(如图69)在其“工具”菜单的“配置选项”中提供了对数据库配置方案,包括多用户操作控制、使用缓冲区的方式、数据库大小、数据库优化以及对硬件环境的设置等选项。这些参数值在物理设计时要根据应用环境进行设置,以优化系统性能。32图69SQL Server数据库属性配置操作335)评价物理结构数据库物理设
12、计过程中需要对时间效率、空间效率、维护代价和各种用户要求进行权衡,其结果可以产生多种方案,数据库设计人员必须对这些方案进行细致的评价,从中选择一个较优的方案作为数据库的物理结构。34五、五、关系规范化关系规范化关系的规范化往往在数据库的逻辑结构设计阶段进行,是对数据库关系模式的优化。关系规范化是建立在函数依赖和关系范式的基础之上的,其任务就是按照关系范式的要求对数据库关系模式进行分解,从而尽可能地减少数据冗余,避免在插入、更新和删除数据时产生异常。关于函数依赖和关系范式的基本定义在关系规范化理论中有详细的说明,请参考相关资料。下面仅举例说明关系范式的要求及模式分解的方法。351)第一范式(1N
13、F)在关系模式R中的每一个具体关系r中,如果每个属性值都是不可再分的最小数据单位,则称R是第一范式的关系。如表61就不符合第一范式,因为它的“电话号码”列又包含了两个不同的属性。因此,要将它转换为关系模式:员工(职工号,姓名,办公电话,家庭电话)36372)第二范式(2NF)如果关系模式R(U,F)满足1NF,并且R中的所有非主属性都完全函数依赖于任意一个候选关键字,则称关系R是属于第二范式的。比如下面这个关系模式:订购(订单号,商品号,订单日期,商品名,单价,订购数量)383)第三范式(3NF)如果关系模式R(U,F)满足2NF,并且R中的所有非主属性对任何候选关键字都不存在传递信赖,则称关
14、系R是属于第三范式的。比如有关系模式商品(商品号,商品名,类型,供应商号,供应商电话)394)BCNFBCNF是在3NF基础上进一步消除主属性对关键字的部分函数依赖和传递函数依赖。如果一个关系数据库中所有关系模式都属于BCNF,那么在函数依赖的范畴内,已经实现了模式的彻底分解,消除了产生插入异常和删除异常的根源,而且数据冗余也减少到极小程度。40第三节代码设计第三节代码设计代码是用来表示系统中客观事物的名称、属性、状态等的符号。管理信息系统为了方便计算机处理,一般使用数字、字母及其组合来表示代码。代码设计方案对整个系统的效率、易用性、可维护性等都有很大的影响。41一、一、代码的功能及类型代码的
15、功能及类型1)代码的功能代码的功能主要有以下几个方面:(1)标识功能标识是代码最基本的特征。代码的标识功能一般都具有唯一性,对于相同名称的人和物,可以通过不同的代码来区别,便于信息的存储和检索,比如学号、证件号等。42(2)分类功能代码可以作为分类对象类别的标识。比如超市的商品分类、人员的职务分类、部门分类等。(3)排序功能代码一般都是采用数字、字母等有序符号进行编码,因此可以对代码表示的对象按递增(或递减)次序排列起来,方便信息的检索43(4)简化输入功能代码的字符个数远远少于汉字字符的个数,在录入时,可以减少录入量,提高录入速度。(5)节省空间,提高处理速度的功能在计算机中,两个字节可以表
16、示-32 768+32 767的整数型信息,或者两个字母型信息,但只能表示一个汉字的信息,因此采用代码比直接使用汉字使用的字符少,可以节省存储空间。同时,由于代码位数减少,存取、运算、传递的速度得到提高,从而提高了系统运行效率。442)代码的类型代码的类型按其采用的编码方式一般分为顺序码、区间码和助记码。45二、二、代码设计的原则及其校验代码设计的原则及其校验1)代码设计的原则代码设计的基本原则主要有:(1)唯一性(2)合理性(3)可扩充性(4)简单性(5)实用性(6)标准化与通用性462)代码校验代码的正确性直接影响计算机处理的质量,因此需要对输入计算机中的代码进行校验。校验代码的一种常用做
17、法是事先在计算机中建立一个“代码字典”,然后将输入的代码与字典中的内容进行比较,若不一致说明输入的代码有错。47代码校验的方法有很多,比如奇偶检验法,循环冗余(CRC)检验法等,这里介绍一种常用的方法“加权取余”法。用“加权取余”法进行代码校验的基本步骤如下:(1)校验值的生成过程48第二步:求余数R用加权和S除以模数M可得余数R。即S/M=QR(Q为商数)其中,模数M也可任意选取,同样以提高错误发生率为基础。常用的模数为10和11,当模为10时,最大的余数为9,正好占用一位数位;当模为11时,由于最大的余数为10,如果用一个字母来表示10(如X),则也需用一位数位就可以表示检验位。49最后,
18、选择校验值可选用下述方法中的一种获得校验值:余数R直接作为校验值,或把模数M和余数R之差(即M-R)作为校验值,取R的若干位作为校验值。把获得的数校验值放在原代码的最后作为整个代码的组成部分。50三、三、条形码技术及应用条形码技术及应用1)条形码概述根据专利文献记载,条形码是由美国的NTWoodland和Bernard Silver在1949年首先提出的,我国条形码工作则开始于1988年。条形码是由宽度不同、反射率不同的条和空,按照一定的编码规则编制而成的,用以表达一组数字或字母符号信息的图形标识符。常见的条形码是由反射率相差很大的黑条(简称条)和白条(简称空)组成。512)一维条码和二维条码
19、(1)一维条码早期的条形码都是一维条形码。世界上约有225种以上的一维条形码,每种一维条形码都有自己的一套编码规格,规定每个字母(可能是文字或数字或文数字)是由几个线条(Bar)及几个空白(Space)组成,以及字母的排列。目前,国际广泛使用的条码种类有EAN码、UPC码、Code39码、ITF25码、Codebar码、Code93码、Code128码等。52图610EAN码示意图53图611UPC码示意图54图612Code39码示意图55(2)二维条码由于一维条形码的信息容量很小,因而条码的应用范围受到了一定的限制。随着对信息量要求的增加和对信息加密性要求的提高,二维条形码应运而生。二维条
20、形码除具有普通条码的优点外,还具有信息容量大、可靠性高、保密防伪性强、易于制作、成本低等优点。美国Symbol公司于1991年正式推出名为PDF417的二维条形码,简称为PDF417条码,即“便携式数据文件”。PDF417是一种堆叠式二维条码,组成条码的每一个条码字符由4个条和4个空,共17个模块构成。56图613二维条码示意图57(3)一维条码和二维条码的比较虽然一维和二维条形码的原理都是用符号来携带资料,达成资料的自动辨识。但是从应用的观点来看,一维条形码偏重于“标识”商品,而二维条形码则偏重于“描述”商品。因此相较于一维条形码,二维条形码可将商品的基本资料编入条形码中,资料库同产品进行绑
21、定,进一步提供许多一维条形码无法达成的应用。两者的比较如表62所示。58表62一维条形码与二维条形码之比较(雄冠条码提供)593)条形码识读器为了阅读出条形码所代表的信息,需要一套条形码识别系统。它由条形码扫描器、放大整形电路、译码接口电路和计算机系统等部分组成,见图614。60图614条形码系统原理61第四节系统详细设计第四节系统详细设计第一节我们介绍了基于结构化设计思想的系统总体结构设计。明确了系统总体结构设计的主要任务是定义系统功能并用模块化的方法对系统功能进行分解。系统详细设计的任务就是通过一种合适的表达方式描述每个功能模块的实现过程。62一、一、系统实现过程设计系统实现过程设计系统实
22、现过程是指系统各个功能在计算机中通过某种方式来实现其操作的过程。系统实现过程的设计要通过对系统功能的明确定义,确定各个功能模块的实现算法和处理流程,制定软件设计的“蓝图”,为编写程序做好准备。631)程序流程图程序流程图是最早用于过程设计的图形工具。程序流程图使用简单的图形符号和箭头连线表示功能的具体执行过程,它能方便直观的表示结构化设计的三种基本结构顺序、选择和循环。如图6.15所示。64图615基本程序流程图652)NS图NS图也称盒图,是一个改进的程序流程图。NS图消除了程序流程图中用箭头来表示流程的弊端,它将每一个处理步骤用一个长方形(盒子)表示,盒子相互重叠、嵌套,每个盒子都只有一个
23、入口一个出口。NS图比程序流程图更符合结构化设计原则。如图616所示。66图616基本NS盒图673)IPO图IPO(Input Process Output)图是输入加工输出图的简称,是由美国IBM公司发起并完善起来的一种工具。IPO图将输入和输出以及模块之间的关系引入到流程中,比较全面的反映了系统处理过程涉及的相关问题。IPO图不仅用来进行过程设计,也可用来进行系统总体设计。68图617IPO图格式69二、二、用户界面设计用户界面设计虽然管理信息系统设计涉及数据的、物理的、软件的、过程的各种不同的技术手段和方法,但是用户对系统好坏的评价往往是从系统的操作界面开始的。一个界面美观、操作简便、
24、容易理解但功能上不够完美的系统与一个功能强大但不重视用户审美感和操作体验设计的系统相比,前者更容易被用户接受。701)用户界面设计总体原则用户界面是系统与用户最直接接触的系统组成部分,用户界面活动关注的焦点是如何支持终端用户与计算机应用之间的交互。用户界面的类型主要很多种,比如自然语言界面、问答式界面、命令语言界面、菜单式界面、表单式界面、图形用户界面和各种Web界面等。无论是何种用户界面,设计目的都是要帮助用户从系统内部得到他们所需要的信息。712)输入设计输入是系统的入口,输入数据的质量关系到整个系统的运行质量。输入设计的基本目标就是使用合理配置的输入设备,把系统需要的输入数据通过输入界面
25、按一定的输入格式录入系统。在此过程中要保证输入数据的正确性、完整性、及时性。723)输出设计系统的处理结果和各种信息通过系统输出提供给用户。输出设计的内容包括:(1)确定输出内容(2)选择输出设备(3)确定输出信息格式734)用户交互界面设计交互式界面的元素主要有菜单、工具栏、对话框和窗口。菜单是信息系统功能选择操作的最常用方式。菜单的形式主要有下拉式菜单、弹出式菜单和固定位置菜单。工具栏是常用操作的图标组合,方便用户不用打开菜单而快速执行某些操作。对话框主要用来解决人机对话问题,用来在用户界面中向用户显示信息,或者接受用户的输入。74第五节系统设计说明书第五节系统设计说明书同系统分析类似,系
26、统设计最后将形成系统设计说明书,系统设计说明书是系统设计人员提交给系统实施人员的重要文字资料,是系统实施的基础。系统设计说明书的编写应该使用清楚、准确、标准的文字和符号,力求便于阅读和理解,无二义性描述。系统设计说明书主要包含引言和系统总体技术方案:751)引言(1)摘要(2)背景(3)条件与限制(4)参考资料(5)专门术语定义762)系统总体技术方案(1)系统物理配置方案(2)模块设计(3)代码设计(4)输入/输出设计(5)数据库设计(6)系统实施方案77本章小结本章小结系统设计包括总体设计和详细设计。总体设计的主要任务是完成对系统总体结构和基本框架的设计。详细设计是在总体设计的基础上,为各
27、个具体任务选择适当的技术手段和处理方法。78系统设计采用结构化设计原则和模块化的方法,通过“自顶向下,逐步求精”的操作将系统总体功能结构划分为子系统直至模块。模块化使系统功能更加清晰,系统也更容易被理解,更容易实现。系统分解要注意模块耦合和聚合情况,提高模块的独立性。代码设计为系统提供完整的数据规范,是保证系统统一的重要因素。对代码进行检验为数据的正确性提供保障。条形码是一种广泛用于流通领域的代码,有一维码和二维码之分。79数据库是管理信息系统的主要技术基础,数据库设计得不好,会直接导致一些功能根本无法实现。数据库设计的关键问题一是要明确用户的需求,二是要做好几个模型之间的转换工作。处理过程设
28、计进一步明确模块功能的处理流程,是进行系统软件开发的指南。处理过程一般使用图形工具来表示,可以很方便的转换成程序代码。80用户界面是系统使用者和系统之间的桥梁。用户界面的设计要以用户为中心,符合用户的使用习惯和界面设计的一般要求,为用户提供实用清楚的信息和方便快捷的操作方式。系统设计以提交系统设计说明书为完成标志,系统说明书作为重要的文档资料,记录了整个系统设计工作的总结和成果,是系统实施的依据。81 复习思考题6.1 系统设计的目标是什么?系统设计包括哪些内容?6.2 简述结构化设计的基本思想?6.3 简述模块和程序的区别与联系?6.4 数据库设计包括哪几个步骤?6.5 什么是代码?为什么要进行代码校验?826.6 什么是关系数据库的规范化?规范化的数据库有什么特点?6.7 用户界面设计的指导性原则有哪些?结合自己的体会谈谈在界面设计时具体应该怎么做?6.8 什么是ER图?ER图转换成关系模式的原则是什么?836.9 数据流程图如何转换成模块结构图?试将第5章列出的数据流程图转换成对应的模块结构图。6.10 一维条码和二维条码的区别是什么?找出你身边使用了条形码的物品,它们采用的是哪种码制?84