1、7.2 系统设计的主要内容1、数据设计 把E-R图中描述的对象和关系,数据字典中描述的详细数据内容转换为数据结构定义。2、系统结构设计 定义系统的组成及各成分之间的关系。3、过程设计 把结构成分转换成系统的过程性描述。4、接口设计 定义系统内部各成分之间、系统与其他协同系统之间及系统与用户之间的交互机制。7.2 系统设计的主要内容系统设计的两个阶段:n 概要设计 确定系统总体布局方案 设计系统总体结构 选择和设计计算机硬件方案 数据存储的总体设计n 详细设计 代码设计 数据库设计 输出设计 输入设计 用户界面设计 处理过程设计 安全可靠性设计7.3 系统设计的依据和基础n 主要依据 系统分析成
2、果 现行技术 现行的信息管理和信息技术的标准、规范和有关法律制度 用户需求 系统运行环境7.4 结构化系统设计1)结构化设计思想n 结构化设计方法(Structured Design,简称 SD)是1974年由美国 IBM 公司的 W.Stevens 等人提出的,它是使用最为广泛的一种系统设计方法。n 结构化设计方法:是在结构化思想的基础上发展起来的一种用于系统结构设计的技术,它是运用一套标准的设计准则和工具,采用模块化的方法进行系统结构设计。7.4 结构化系统设计1)结构化设计思想n 结构化系统设计的基本思想:是采用分解的方法,将系统设计成由相对独立、功能单一的模块组成的结构。它是以系统的逻
3、辑功能和数据流关系为基础,根据数据流程图和数据字典,借助于一套标准的设计准则和图表工具,将系统划分为多个大小适当、功能明确、具有一定独立性且容易实现的模块,从而把复杂系统的设计转变为多个简单模块的设计,使系统开发的整体工作量变小。n 结构化设计的核心是模块化。模块化:就是将系统划分为若干模块,大模块再划分为小模块的过程。7.4 结构化系统设计2)模块化1、模块的概念 模块也称组件,是可以组合、分解和更换的单元,是组成系统、易于处理的基本单位。系统中的任何一个处理功能都可以看成是一个模块。例:类、过程、函数、子程序、子系统。2、模块的属性n 功能:模块对外功能n 逻辑:模块内部实现n 状态:模块
4、使用的环境、条件7.4 结构化系统设计2)模块化3、模块化的优点 n采用模块化原理可以使软件结构清晰软件结构清晰,不仅容易设计也容易阅读和理解。n程序错误通常局限在有关的模块及它们之间的接口中,所以模块化使软件容易测试和调试,因而有助于提高软件的可靠性可靠性。n变动往往只涉及少数几个模块,所以模块化能够提高软件的可修改性可修改性。1.有助于软件开发工程的组织管理开发工程的组织管理,一个复杂的大型程序可以由许多程序员分工编写不同的模块,并且可以进一步分配技术熟练的程序员编写困难的模块。7.4 结构化系统设计2)模块化4、模块的独立性 模块的独立性是指模块只涉及系统要求的子功能,而和系统中其他模块
5、的联系是简单的。模块的独立原理很重要,因为:1、易开发 有效的模块化(即具有独立的模块)的软件比较容易开发出来。因为模块化能够分割功能而且接口可以简化,当许多人分工合作开发同一个软件时,这个优点尤其重要。2、易测试、维护。模块独立性高的系统,修改和设计程序需要的工作量比较小,错误传播范围小,需要扩充功能时能够“增加”模块。7.4 结构化系统设计2)模块化4、模块的独立性 模块的独立程度可以由两个定性标准度量,这两个标准分别称为耦合和内聚。n 耦合:衡量不同模块彼此间互相依赖(连接)的紧密程度;n 内聚:衡量一个模块内部各个元素彼此结合的紧密程度。独立性强的模块应是高内聚低耦合的模块。7.4 结
6、构化系统设计2)模块化4、模块的独立性 n 耦合的种类1)非直接耦合2)数据耦合3)标记耦合4)控制耦合5)外部耦合6)公共耦合7)内容耦合7.4 结构化系统设计2)模块化4、模块的独立性1)非直接耦合2)数据耦合3)标记耦合4)控制耦合5)外部耦合6)公共耦合7)内容耦合低高耦合性高低独立性耦合的使用原则耦合的使用原则耦合是影响软件复杂程度的一个耦合是影响软件复杂程度的一个重要因素。应该采取下述设计原则:重要因素。应该采取下述设计原则:1、尽量使用数据耦合、尽量使用数据耦合2、少用控制耦合和特征耦合、少用控制耦合和特征耦合3、限制公共环境耦合的范围、限制公共环境耦合的范围4、完全不用内容耦合
7、、完全不用内容耦合 7.4 结构化系统设计2)模块化4、模块的独立性 n 内聚的种类1)功能内聚2)信息内聚3)通信内聚4)过程内聚5)时间内聚6)逻辑内聚7)巧合内聚7.4 结构化系统设计2)模块化4、模块的独立性 n 内聚的种类1)功能内聚2)信息内聚3)通信内聚4)过程内聚5)时间内聚6)逻辑内聚7)巧合内聚高低高低独立性内聚的使用原则设计时应该力求做到高内聚,不要使用低内聚理想内聚的模块只做一件事情。内聚和耦合是密切相关的,模块内的高内聚往往意味着模块间的松耦合。实践表明内聚更重要,应着重提高模块的内聚程度。7.4 结构化系统设计3)系统结构图结构化设计采用结构图描述系统的模块结构及模
8、块间的联系。系统结构图:不仅表示了一个系统功能模块的结构关系,还表示了模块的调用关系以及模块之间数据流和控制流等信息的传递关系。系统结构图是结构化设计重要图表工具。7.4 结构化系统设计3)系统结构图1、结构图中主要成分、结构图中主要成分n 模块n 调用n 数据n 控制信息7.4 结构化系统设计3)系统结构图1、结构图中主要成分、结构图中主要成分n 模块的种类7.4 结构化系统设计3)系统结构图2、系统结构、系统结构n 变换型n 事务型7.4 结构化系统设计3)系统结构图2、系统结构、系统结构n 变换型变换型:是一种线状结构,可明显的分为输入、中心加工、输出三个部分。信息沿输入通路进入系统,同
9、时由外部形式变换成内部形式;进入系统的信息通过变换中心加工处理;加工处理后的数据沿输出通路变换成外部形式离开软件系统。7.4 结构化系统设计3)系统结构图7.4 结构化系统设计3)系统结构图2、系统结构、系统结构n 事务型事务型:是一种束状结构。一个数据处理将它的输入分解成一束平行的数据流,然后对后面的处理选择执行。7.4 结构化系统设计3)系统结构图7.4 结构化系统设计3)系统结构图2、系统结构、系统结构n 变换型分析1)确定数据流程图2)确定输入、输出边界7.4 结构化系统设计3)系统结构图2、系统结构、系统结构n 变换型分析3)设计顶层模块和第一层模块7.4 结构化系统设计3)系统结构
10、图2、系统结构、系统结构n 变换型分析4)设计中、下层模块7.4 结构化系统设计3)系统结构图2、系统结构、系统结构n 事务型分析1)确定事务中心2)将数据流程图映射成基于事务中心型的系统结构,即映射成一个含有接收分支和发送分支的系统结构。7.4 结构化系统设计3)系统结构图3、系统优化、系统优化(模块优化模块优化)1)改进软件结构提高模块独立性 2)模块规模应该适中 3)扇出和扇入都应适当 4)模块的作用域应该在控制域之内 5)力争降低模块接口的复杂程度 6)设计单入口单出口的模块 7)模块功能应该可以预测7.4 结构化系统设计3)系统结构图3、系统优化、系统优化1)改进软件结构提高模块独立
11、性 设计出软件初步结构后,应审查分析这个结构,通过模块分解或合并,力求降低耦合提高内聚。2)模块规模应该适中 n 过大的模块往往是由于分解不充分,但是进一步分解必须符合问题结构,分解后一般不应该降低模块独立性。n 过小的模块开销大,而且模块数目过多将使系统接口复杂。因此过小的模块有时不值得单独存在。7.4 结构化系统设计3)系统结构图n 改进软件结构提高模块独立性7.4 结构化系统设计3)系统结构图3、系统优化、系统优化3)扇出和扇入都应适当n 扇出:一个模块对它的直属下级模块的控制范围。通常用扇出系数说明其直属下级的个数。n 扇入:一个模块与它的直接上级模块的关系。通常用扇入系数说明其直接上
12、级的个数。n 原则:扇出系数要合适,扇入系数尽可能大MM扇出扇入7.4 结构化系统设计3)系统结构图3、系统优化、系统优化4)模块的作用域应该在控制域之内 n 模块控制域:模块的控制范围包括模块本身及其所有的从属模块。n 模块的作用域:指模块内一个判定的作用范围,凡是受这个判定影响的所有模块都属于这个判定的作用范围。5)力争降低模块接口的复杂程度 模块接口复杂是软件发生错误的一个主要原因。应该仔细设计模块接口,使得信息传递简单并且和模块的功能一致。7.4 结构化系统设计3)系统结构图3、系统优化、系统优化6)设计单入口单出口的模块 7)模块功能应该可以预测模块的功能应该能够预测,但也要防止模块
13、功能过分局限。若一个模块可以当做一个黑盒子,只要输入的数据相同就产生同样的输出,模块的功能就是可预测的。7.4 结构化系统设计4)过程设计n 程序流程图n 盒图n PADn PDL语言7.4 结构化系统设计4)过程设计1.程序流程图顺序结构顺序结构选择结构选择结构循环结构循环结构7.4 结构化系统设计5)用户界面设计n 用户界面应具备的特性:可使用性 使用的简单性 用户界面中的术语标准化和一致性 拥有Help帮助功能 快速的系统响应和低的系统成本 用户界面应具有容错功能 灵活性 可靠性7.4 结构化系统设计5)用户界面设计n 用户特性分析用户特性分析的目的是要详细了解所有用户的技能和经验,以便
14、能够预测用户对不同界面设计会做出什么反应。n 用户类型有:外行型 初学型 熟练型 专家型n 用户特性度量p 用户使用的频度p 用户是否需要自由选用界面p 用户对计算机的熟练程度p 用户思维能力p 用户的生理能力和技能7.4 结构化系统设计5)用户界面设计n 设计内容n 输入设计n 输出设计1.控制设计7.4 结构化系统设计5)用户界面设计1.输入设计输入设计的原则:n 控制输入量。尽可能利用计算 n 减少输入延迟。批量输入、文件输入 n 减少输入错误。采用多种校验方法和验证技术 n 简化输入过程,避免额外步骤。(输入格式:直观、快速、准确、简便)。7.4 结构化系统设计5)用户界面设计2.输出
15、设计输出设计的内容:n 输出信息使用情况。信息的使用者、使用目的、信息量、输出周期、有效期、保管方法和输出份数。n 输出信息内容。输出项目、精度、信息形式(文字、数字)。n 输出格式。表格、报告、图形等。n 输出设备和介质。设备如:打印机、显示器等;介质如:磁盘、磁带、纸张(普通、专用)等。3.控制设计 菜单、功能键、图标、命令行等。7.4 结构化系统设计6)数据库设计1、数据库的概念结构设计。概念结构设计应在系统分析阶段进行。任务是根据用户需求设计数据库的概念数据模型(简称概念模型)。概念模型是从用户角度看到的数据库,它可用E-R模型表示。2、数据库的逻辑结构设计。逻辑结构设计是将概念结构设
16、计阶段完成的概念模型转换成能被选定的数据库管理系统(DBMS)支持的数据模型。7.4 结构化系统设计5)用户界面设计 3、数据库的物理结构设计 物理结构设计是为数据模型在设备上选定合适的存储结构和存取方法,以获得数据库的最佳存取效率。物理结构设计的主要内容包括:n确定数据库的存储结构。n库文件的组织。例如将易变的、存取频繁的数据存放在高速存储器上;稳定的、存取频度小的数据存放在低速存储器上。n存取路径的选择。(当前数据与历史数据)7.5 系统物理配置方案设计1.设计依据n 系统的吞吐量n 系统的响应时间n 系统的可靠性n 集中式还是分布式n 地域范围n 数据管理方式2.设计范围n 硬件选择n
17、网络选择n 数据库选择n 应用软件选择7.6 代码(编码)设计1)代码的作用代码是人为确定的代表客观事物(实体)名称、属性或状态的符号或者是这些符号的组合。n 代码的功能1.可使数据的表达方式标准化;2.可减少信息量,节省存储空间;3.便于信息的传递和进行分类、合并、检索等处理,提高计算机处理信息的效率;4.标明事物所处状态。7.6 代码(编码)设计2)代码设计的原则1、必须保证有足够的容量(可扩充性)、必须保证有足够的容量(可扩充性)要足以包括规定范围内的所有对象。如果容量不够,不便于今后变化要足以包括规定范围内的所有对象。如果容量不够,不便于今后变化和扩充,随着环境的变化这种分类很快就失去
18、了生命力。和扩充,随着环境的变化这种分类很快就失去了生命力。2、按属性系统化、按属性系统化(标准化)(标准化)分类不能是无原则的,必须遵循一定的规律。根据实际情况并结合具分类不能是无原则的,必须遵循一定的规律。根据实际情况并结合具体管理的要求来划分。分类应按照处理对象的各种具体属性系统地进行。体管理的要求来划分。分类应按照处理对象的各种具体属性系统地进行。3、分类要有一定的柔性、分类要有一定的柔性 不至于在出现变更时破坏分类的结构。所谓柔性是指在一定情况下分不至于在出现变更时破坏分类的结构。所谓柔性是指在一定情况下分类结构对于增设或变更处理对象的可容纳程度。柔性好的系统在一般的情类结构对于增设
19、或变更处理对象的可容纳程度。柔性好的系统在一般的情况下增加分类况下增加分类不会破坏其结构不会破坏其结构。但是柔性往往还会带来别的一些问题,如。但是柔性往往还会带来别的一些问题,如冗余度大等,这都是设计分类时必须考虑的问题。冗余度大等,这都是设计分类时必须考虑的问题。7.6 代码(编码)设计2)代码设计的原则4、注意本分类系统与外系统、已有系统的协调。、注意本分类系统与外系统、已有系统的协调。任何一项工作都是从原有的基础上发展起来的,故分类时一定要注意任何一项工作都是从原有的基础上发展起来的,故分类时一定要注意新老分类的协调性,以便于系统的联系、移植、协作以及新老系统的平稳新老分类的协调性,以便
20、于系统的联系、移植、协作以及新老系统的平稳过渡。过渡。5、简短性、简短性6、易识别性、易识别性7.6 代码(编码)设计3)代码的种类目前常用的代码种类:目前常用的代码种类:1、顺序码、顺序码 以某种顺序形式编码。如各种票据的编号,都是顺序码。以某种顺序形式编码。如各种票据的编号,都是顺序码。优点优点:简单明了,短小精悍。:简单明了,短小精悍。缺点缺点:没有逻辑含义。:没有逻辑含义。2、分组码、分组码 将一位定长的代码根据需要分成若干组,代码中的每一组都有一将一位定长的代码根据需要分成若干组,代码中的每一组都有一定的含义。如定的含义。如学生的学号、身份证号学生的学号、身份证号。优点优点:分类基准
21、明确,容易记忆与扩充分类基准明确,容易记忆与扩充。缺点缺点:占用位数多占用位数多。7.6 代码(编码)设计3)代码的种类3、助记码、助记码 将代码的名称或省略符号作为代码的一部分。将代码的名称或省略符号作为代码的一部分。如:如:TV-B-14表示表示14英寸黑白电视机。英寸黑白电视机。IEEE802X表示某类网络协议标准名称的编码。表示某类网络协议标准名称的编码。优点优点:简单明了;:简单明了;缺点缺点:不易处理。:不易处理。4、缩略码缩略码(助记码特例)(助记码特例)从描述对象的名称中提取几个常用的关键字母作为代码。从描述对象的名称中提取几个常用的关键字母作为代码。如:千克如:千克 KG 米
22、米 M 7.6 代码(编码)设计4)代码的设计方法n 代码设计步骤1.明确代码目的2.确定代码对象3.确定代码的使用范围和期限4.分析代码对象特征,包括代码使用频率、变更周期、追加及删除情况等5.决定采用何种代码,确定代码结构及内容6.编制代码表7.6 代码(编码)设计4)代码的设计方法目前最常用的分类方法概括起来有两种,目前最常用的分类方法概括起来有两种,n 一种是一种是线分类方法线分类方法,n 一种是一种是面分类方法面分类方法,在实际应用中根据具体情况各有其不同的用途。在实际应用中根据具体情况各有其不同的用途。7.6 代码(编码)设计4)代码的设计方法1、线分类方法、线分类方法 线分类方法
23、线分类方法是目前用是目前用得最多的一种方法,尤其得最多的一种方法,尤其是在手工处理的情况下它是在手工处理的情况下它几乎成了唯一的方法。线几乎成了唯一的方法。线分类方法的主要出发点是分类方法的主要出发点是:首先给定母项,母项下分首先给定母项,母项下分若干子项,若干子项,最后落,最后落实到具体对象。实到具体对象。分类的结果造成了一分类的结果造成了一层套一层的线性关系,如层套一层的线性关系,如下图所示。下图所示。线分类法系系 列列 (0202)系 列(0505)系 列(0101)产品(实体)型 号(02030V)型 号(02031V)型 号(02035V)产 品 (0230V208)产 品 (023
24、0V508)产 品 (0230V108)7.6 代码(编码)设计4)代码的设计方法n 线分类划分时要掌握两个原则线分类划分时要掌握两个原则:唯一性和不交叉性唯一性和不交叉性。否则分类后容易出现二义性,将会。否则分类后容易出现二义性,将会给后继工作带来诸多不便。给后继工作带来诸多不便。n 线分类法的特点线分类法的特点:p 结构清晰,容易识别和记忆,容易进行有规律的查找。结构清晰,容易识别和记忆,容易进行有规律的查找。p 与传统方法相似,对手工系统有较好的适应性。与传统方法相似,对手工系统有较好的适应性。p 主要缺点是结构不灵活,柔性较差。主要缺点是结构不灵活,柔性较差。7.6 代码(编码)设计4
25、)代码的设计方法2、面分类方法、面分类方法 面分类法主要从面角度来考虑分类。面分类法主要从面角度来考虑分类。面分类方法的特点是面分类方法的特点是:柔性好,面的增加、删除、修改都很容易。柔性好,面的增加、删除、修改都很容易。可实现按任意组配面的信息检索,对机器处理有良好的适应性。可实现按任意组配面的信息检索,对机器处理有良好的适应性。缺点是不易直观识别,不便于记忆。缺点是不易直观识别,不便于记忆。例如:例如:代码代码3213表示材料为钢的表示材料为钢的1.0mm圆头的镀锌螺钉。圆头的镀锌螺钉。7.6 代码(编码)设计5)代码的校验1、录入代码时的可能错误:、录入代码时的可能错误:识别错误识别错误
26、:1/7,0/O,Z/2,D/O,S/5,易位错误易位错误:12345/13245,12345/13254,随机错误随机错误:上述两种或两种以上的错误出现:上述两种或两种以上的错误出现 2、避免代码录入出现错误的办法、避免代码录入出现错误的办法 在设计好的代码后,再增加一位,作为代码的组成部分。增加的一在设计好的代码后,再增加一位,作为代码的组成部分。增加的一 位,即为校验位。使用中,没有特别性。位,即为校验位。使用中,没有特别性。使用时,应录入包括校验位在内的完整代码,代码进入系统后,系使用时,应录入包括校验位在内的完整代码,代码进入系统后,系 统将取该代码校验位前的各位,按照确定代码校验位
27、的算法进行计算,统将取该代码校验位前的各位,按照确定代码校验位的算法进行计算,并与录入代码的最后一位(校验位)进行比较,如果相等,则录入代码并与录入代码的最后一位(校验位)进行比较,如果相等,则录入代码 正确,否则录入代码错误,进行重新录入。正确,否则录入代码错误,进行重新录入。7.6 代码(编码)设计5)代码的校验n 确定校验位的方法:1.算术级数法2.几何级数法3.质数法7.7 系统设计说明书系统设计的成果与文档内容 系统设计说明书是系统设计阶段的成果,它从系统设计的主要方面说明系统设计的指导思想、采用的技术方法和设计结果,是新系统的物理模型,也是系统实施阶段工作的主要依据。1、概述 系统
28、的功能,设计目标及设计策略 项目开发者,用户,系统与其他系统或机构的联系;系统的安全和保密限制。2、系统设计规范 程序名,文件名即变量名的规范化;数据字典7.7 系统设计说明书3、计算机系统的配置 硬件配置:主机,外存,终端与外设,其他辅助设备、网络形态;软件配置:操作系统,数据库管理系统,语言,软件工具,服务程序,通信软件;4、系统结构 系统的模块结构图 各个模块的IPO图 5、代码设计 各类代码的类型,名称,功能,使用范式及要求等。7.7 系统设计说明书6、文件(数据库)设计 数据库总体结构:各个文件数据的逻辑关系 文件结构设计:各类文件的数据项名称,类型及长度等;文件存储要求,访问方法及保密处理。7、输入设计 各种数据输入方式的选择 输入数据的格式设计输入数据的交验方法 8、输出设计输 输出介质 输出内容及格式 9、系统安全保密性设计 关于系统安全保密性设计的相关说明 10、系统实施方案及说明 实施方案,进度计划,经费预算等。MARKETING 61