1、第八章第八章 信息系统设计信息系统设计第八章第八章 信息系统设计信息系统设计n8.1 8.1 系统设计要回答的问题系统设计要回答的问题n8.2 8.2 设计阶段的主要任务设计阶段的主要任务n8.3 8.3 结构化设计方法结构化设计方法n8.4 8.4 面向对象设计方法面向对象设计方法n8.5 8.5 代码设计代码设计n8.6 8.6 界面设计界面设计 8.1 8.1 系统设计要回答的问题系统设计要回答的问题n设计中用什么作为输入设计中用什么作为输入n如何进行设计如何进行设计n最终设计文档是什么最终设计文档是什么8.1 8.1 系统设计要回答的问题系统设计要回答的问题8.2 8.2 设计阶段的主
2、要任务设计阶段的主要任务n网络设计和集成网络设计和集成n应用程序的结构设计应用程序的结构设计n用户界面的设计用户界面的设计n系统界面(接口)的设计系统界面(接口)的设计n系统控制的设计系统控制的设计网络架构设计(网络架构设计(C/SC/S结构)结构)网络架构设计(网络架构设计(B/SB/S结构)结构)8.3 8.3 结构化设计方法结构化设计方法n主要表达工具主要表达工具n系统流程图系统流程图n结构图结构图n伪码伪码8.3 8.3 结构化设计方法结构化设计方法8.3 8.3 结构化设计方法结构化设计方法系统系统流程图流程图n常常用用符符号号n系系统统流流程程图图举举例例8.3 8.3 结构化设计
3、方法结构化设计方法系统系统流程图流程图举例:举例:某仓库管理系统按以下步骤进行信息处理:某仓库管理系统按以下步骤进行信息处理:(1 1)保管员根据当日的出库单和入库单通过出入库处理去)保管员根据当日的出库单和入库单通过出入库处理去修改库存台帐。修改库存台帐。(2 2)根据库存台帐由统计打印程序输出库存月报表。)根据库存台帐由统计打印程序输出库存月报表。(3 3)进行查询时,可利用查询程序,在输入查询条件后,)进行查询时,可利用查询程序,在输入查询条件后,到库存台帐去查找,并显示出查询结果。到库存台帐去查找,并显示出查询结果。请画出仓库管理系统的数据流程图请画出仓库管理系统的数据流程图8.3 8
4、.3 结构化设计方法结构化设计方法系统系统流程图流程图若图中的处理都由若图中的处理都由计算机来完成,请计算机来完成,请按此图画出所有的按此图画出所有的数据关系图,并画数据关系图,并画出信息系统流程图出信息系统流程图8.3 8.3 结构化设计方法结构化设计方法系统流程图系统流程图8.3 8.3 结构化设计方法结构化设计方法系统流程图系统流程图8.3 8.3 结构化设计方法结构化设计方法系统流程图系统流程图8.3 8.3 结构化设计方法结构化设计方法系统流程图系统流程图8.3 8.3 结构化设计方法结构化设计方法系统流程图系统流程图8.3 8.3 结构化设计方法结构化设计方法系统流程图系统流程图8
5、.3 8.3 结构化设计方法结构化设计方法结构图结构图控制模块工作模块8.3 8.3 结构化设计方法结构化设计方法结构图结构图n常常用用的的符符号号8.3 8.3 结构化设计方法结构化设计方法结构图结构图添添加加明明细细模模块块nPrivate Sub Command1_Click()增加明细增加明细n Dim rs As New ADODB.Recordsetn Dim sql As Stringn Dim pro_price As Single,pro_name As String,pro_bh As Stringn 明细录入明细录入.Show(1)n 显示所选客户信息显示所选客户信息n
6、sql=select*from 产品产品 where 产品编号产品编号=&明细录入明细录入.pro_bh&n Set rs=TransactSQL(sql)n pro_price=rs.Fields(2)n pro_name=rs.Fields(1)n pro_bh=rs.Fields(0)n rs.Closen n With item_infon .TextMatrix(.Rows-1,0)=pro_namen .TextMatrix(.Rows-1,1)=pro_pricen .TextMatrix(.Rows-1,2)=明细录入明细录入.order_quann .TextMatrix(.
7、Rows-1,3)=pro_bhn .AddItem Emptyn End WithnEnd Sub系统是由模块组成系统是由模块组成8.3 8.3 结构化设计方法结构化设计方法结构图结构图n模块的概念:标识一个功能模块的概念:标识一个功能n理想的模块理想的模块黑箱黑箱n衡量模块质量的两项标准衡量模块质量的两项标准n模块的内聚度模块的内聚度n模块的耦合度模块的耦合度功能内聚顺序内聚通讯内聚过程内聚暂时内聚逻辑内聚机械内聚数据耦合特征耦合控制耦合公共耦合内容耦合外部属性外部属性输入输出逻辑功能内部属性内部属性运行程序内部数据8.3 8.3 结构化设计方法结构化设计方法结构图结构图(1 1)功能内聚
8、)功能内聚n 定义:定义:如果一个模块内部的各组成部分的处理动作全都是为执行同如果一个模块内部的各组成部分的处理动作全都是为执行同一个功能而存在一个功能而存在n聚合度最高,聚合度最高,是黑箱模块是黑箱模块n表示方法:一个动词和一个名词表示方法:一个动词和一个名词 如:读库存记录如:读库存记录 验证订货单的有效性验证订货单的有效性 计算平方根计算平方根 打印发货单打印发货单 计算实发工资计算实发工资n判断方法:判断方法:只要看这个模块是只要看这个模块是“做什么做什么”,是完成一个具体任务,是完成一个具体任务,还是多项任务,还是作一些相互无关的事情还是多项任务,还是作一些相互无关的事情8.3 8.
9、3 结构化设计方法结构化设计方法结构结构图图(2 2)顺序内聚)顺序内聚n定义:定义:如果一个模块内部各组成部分执行的几个处理如果一个模块内部各组成部分执行的几个处理动作有这样的特征动作有这样的特征前一个处理动作所产生的数据前一个处理动作所产生的数据是后一个处理动作的输入数据是后一个处理动作的输入数据n如:如:“累加并将结果打印累加并将结果打印”与与“核对发货单并处理入核对发货单并处理入库库”A 累加打印结果B 核对处理库存发货单8.3 8.3 结构化设计方法结构化设计方法结构结构图图(3 3)通讯内聚通讯内聚n定义:定义:如果一个模块内各组成部分的处理动作都使用相同的输如果一个模块内各组成部
10、分的处理动作都使用相同的输入数据或相同的输出数据入数据或相同的输出数据n 如:如:“获得配件获得配件价格价格和库存量和库存量”“接受接受订订货单并修改库存和开发货单货单并修改库存和开发货单”接受订货单 开发货单 修改库存8.3 8.3 结构化设计方法结构化设计方法结构结构图图 打印报表1 打印报表3 打印报表28.3 8.3 结构化设计方法结构化设计方法结构结构图图(4 4)过程内聚)过程内聚n 定义:定义:如果一个模块内的各组成部分的处理动如果一个模块内的各组成部分的处理动作各不相同,彼此也没有什么关系,但它们都受作各不相同,彼此也没有什么关系,但它们都受同一个控制流的支配,决定它们的执行次
11、序同一个控制流的支配,决定它们的执行次序n如:如:“统计订货量并制定订货单统计订货量并制定订货单”“”“计算销售量计算销售量和订货量和订货量”n特点:从上级模块接受命令后,返回上级的数据特点:从上级模块接受命令后,返回上级的数据可能是零散的,彼此没有多少关系可能是零散的,彼此没有多少关系8.3 8.3 结构化设计方法结构化设计方法结构结构图图(5 5)暂时内聚)暂时内聚n定义:定义:将若干在同一个时段内进行的工作集中在将若干在同一个时段内进行的工作集中在一起所形成的模块。一起所形成的模块。n如:初始化模块如:初始化模块n特点特点:与其它模块联结度高,维护困难,因为它:与其它模块联结度高,维护困
12、难,因为它不能用一个简单的语句明确表达它的功能,除非不能用一个简单的语句明确表达它的功能,除非看清其内部处理过程看清其内部处理过程半透明的箱子半透明的箱子8.3 8.3 结构化设计方法结构化设计方法结构结构图图(6 6)逻辑内聚)逻辑内聚n定义定义:如果一个功能模块的各组成部分的处:如果一个功能模块的各组成部分的处理动作在逻辑上相似,但功能却彼此不同理动作在逻辑上相似,但功能却彼此不同n如:如:“错误信息处理错误信息处理”n要设置许多开关量,不经济要设置许多开关量,不经济完全透明的完全透明的箱子箱子(7 7)机械内聚)机械内聚完全透明完全透明8.3 8.3 结构化设计方法结构化设计方法结构结构
13、图图n(1 1)数据耦合)数据耦合8.3 8.3 结构化设计方法结构化设计方法结构结构图图n(2 2)特征耦合)特征耦合修改前修改前修改后修改后门牌号、户主姓名、基本房租、本月用水量、本月用电量8.3 8.3 结构化设计方法结构化设计方法结构结构图图n(3 3)控制耦合)控制耦合修改前修改前修改后修改后8.3 8.3 结构化设计方法结构化设计方法结构图结构图n(4 4)公共耦合)公共耦合n 定义:通过一个公共数据环境而相互作用的定义:通过一个公共数据环境而相互作用的模块模块n(5 5)内容耦合)内容耦合n定义:一个模块和另一个模块的内部属性有定义:一个模块和另一个模块的内部属性有关关8.3 8
14、.3 结构化设计方法结构化设计方法结构图结构图n模块的控制范围和影响范围模块的控制范围和影响范围8.3 8.3 结构化设计方法结构化设计方法结构图结构图计算处理计算医生任务完成情况及奖金计算护士任务完成情况及奖金计算医生月奖金总额计算医生奖金计算医生工作量计算护士月奖金总额计算护士奖金计算护士工作量8.3 8.3 结构化设计方法结构化设计方法结构图结构图n模块的扇入和扇出模块的扇入和扇出n扇出:扇出:一个模块所拥有的直接下级模块的个数一个模块所拥有的直接下级模块的个数n扇入扇入:一个模块的直接上级模块的个数:一个模块的直接上级模块的个数8.3 8.3 结构化设计方法结构化设计方法结构图结构图n
15、结构图的原则总结n模块的内聚度尽可能高n模块间的耦合度尽可能低n模块的作用范围应该在控制范围之内n模块的扇入系数尽可能大8.3 8.3 结构化设计方法结构化设计方法结构图结构图n结构图的绘制n事务中心分析方法n转换中心分析方法订订单单输输入入子子系系统统8.3 8.3 结构化设计方法结构化设计方法结构图结构图事务中心分析法事务中心分析法8.3 8.3 结构化设计方法结构化设计方法结构图结构图转换中心分析法转换中心分析法8.3 8.3 结构化设计方法结构化设计方法结构图结构图步骤:步骤:第一,分析数据流程图,确定它的变换中心,输入和输出功能。第一,分析数据流程图,确定它的变换中心,输入和输出功能
16、。8.3 8.3 结构化设计方法结构化设计方法结构图结构图第二,以变换中心为顶层,确定被顶层调用的模块第二,以变换中心为顶层,确定被顶层调用的模块8.3 8.3 结构化设计方法结构化设计方法结构图结构图第三、根据模块聚合度、耦合度、影响范围和控制范围的要求,分散画出模块,扩展模块结构图其余部分8.3 8.3 结构化设计方法结构化设计方法结构图结构图8.3 8.3 结构化设计方法结构化设计方法结构图结构图8.3 8.3 结构化设计方法结构化设计方法结构图结构图8.3 8.3 结构化设计方法结构化设计方法结构图结构图n合合并并后后的的结结构构图图8.3 8.3 结构化设计方法结构化设计方法伪码伪码
17、举举例例8.3 8.3 结构化设计方法结构化设计方法分层设计分层设计8.3 8.3 结构化设计方法结构化设计方法分层设计分层设计8.3 8.3 结构化设计方法结构化设计方法分层设计分层设计结结构构化化设设计计举举例例8.4 8.4 面向对象设计方法面向对象设计方法n由面向对象分析到面向对象设计模型由面向对象分析到面向对象设计模型8.4 8.4 面向对象设计方法面向对象设计方法顺顺序序图图细细化化细细化化前前(查查询询可可用用条条目目)顺顺序序图图细细化化细细化化后后(查查询询可可用用条条目目)顺顺序序图图细细化化细细化化后后(查查询询可可用用条条目目)顺顺序序图图细细化化(电电话话订订购购订订
18、单单)顺顺序序图图细细化化局局部部细细化化后后(电电话话订订购购订订单单)顺顺序序图图细细化化局局部部细细化化后后(电电话话订订购购订订单单)顺顺序序图图细细化化局局部部细细化化后后(电电话话订订购购订订单单)8.4 8.4 面向对象设计方法面向对象设计方法包图包图分分层层包包图图设设计计8.4 8.4 面向对象设计方法面向对象设计方法包图包图8.4 8.4 面向对象设计方法面向对象设计方法n由面向对象分析到面向对象设计模型由面向对象分析到面向对象设计模型8.4 8.4 面向对象设计方法面向对象设计方法设计类图设计类图设计类图的开发步骤设计类图的开发步骤从类图中选择一个类从类图中选择一个类详细
19、说明各种属性详细说明各种属性标识出所有的方法标识出所有的方法用逻辑来详细说明各种用逻辑来详细说明各种 方法方法设设计计类类图图8.4 8.4 面向对象设计方法面向对象设计方法设计类图设计类图顺序图细化顺序图细化两种开发方法的比较两种开发方法的比较8.5 8.5 代码设计代码设计n代码的功能代码的功能n代码的设计原则代码的设计原则n惟一性惟一性n可扩充性可扩充性n规范性规范性n稳定性稳定性n代码的容量代码的容量n若已知码的位数为若已知码的位数为p p,每一位上可用字符数为每一位上可用字符数为SiSi,则可以则可以组成码的总数为组成码的总数为C=SiC=Si8.5 8.5 代码设计代码设计 某市普
20、通居民的电话号码为某市普通居民的电话号码为7 7位,均位,均以以0 0到到9 9阿拉伯数字表示。其中首位不能阿拉伯数字表示。其中首位不能用用0 0、1 1和和9 9,则该市可安装普通居民电话,则该市可安装普通居民电话的最大理论容量为:的最大理论容量为:C=10*10*10*10*10*10*7=70000008.5 8.5 代码设计代码设计代码种类代码种类(1 1)顺序码:用连续数字代表编码对象的码)顺序码:用连续数字代表编码对象的码n例:一个企业职工代码的设计例:一个企业职工代码的设计0001 0001 张三张三0002 0002 张四张四0001005000010050为一车间人员为一车间
21、人员0051 0051 张五张五0052 0052 张六张六0050010000500100为二车间人员为二车间人员8.5 8.5 代码设计代码设计代码种类代码种类(2 2)区间码)区间码用户分类码(第一位)用户分类码(第一位)采购总量(第二位)采购总量(第二位)码分 类码分 类1批发单位149999 元5其他部门 5-8.5 8.5 代码设计代码设计代码种类代码种类(3 3)特征码)特征码 为多个属性各规定一个位置,表示编码为多个属性各规定一个位置,表示编码对象不同方面的特征对象不同方面的特征某服装厂服装编码表某服装厂服装编码表某一男装编码为某一男装编码为M38M382W12W18.5 8.
22、5 代码设计代码设计代码种类代码种类(4 4)助忆码:)助忆码:如:如:TVTVB12B12 TV TVC20C20(5 5)组合码)组合码XX X XXXX参加工作时间参加工作时间 性别性别 顺序号码顺序号码 70 1 0001 如:职工工号如:职工工号8.5 8.5 代码设计代码设计校验码校验码n发生错误的原因:发生错误的原因:n抄写错误抄写错误 1 17 7n易位错误易位错误 1234123413241324n双易位错双易位错 587625876256782 56782 n随机错误随机错误8.5 8.5 代码设计代码设计校验码校验码1 1、根据编码规则设计代码、根据编码规则设计代码8.5
23、 8.5 代码设计代码设计校验码校验码2 2、确定各位代码权数、确定各位代码权数8.5 8.5 代码设计代码设计校验码校验码3 3、按算法计算、按算法计算8.5 8.5 代码设计代码设计校验码校验码4 4、确定模、确定模M M并求余数并求余数R R8.5 8.5 代码设计代码设计校验码校验码5 5、传输并校验、传输并校验8.6 8.6 界面设计界面设计原则原则n八条黄金原则八条黄金原则n尽量保持一致性尽量保持一致性n为熟练用户提供快捷键为熟练用户提供快捷键n提供反馈提供反馈n设计完整的对话过程设计完整的对话过程n提供简单的错误处理机制提供简单的错误处理机制n允许撤销动作允许撤销动作n提供控制的
24、内部轨迹提供控制的内部轨迹n减轻短期记忆负担减轻短期记忆负担完整的对话过程完整的对话过程n职员:有什么可以帮助职员:有什么可以帮助?n顾客:我想租一些影碟。n职员:您以前来过吗,有帐号吗?职员:您以前来过吗,有帐号吗?n顾客:有,katie1569。n职员:您稍等职员:您稍等,噢,您是,噢,您是JulyJuly女士,你的小孩叫女士,你的小孩叫katiekatie,他只能租,他只能租PG-13PG-13级影碟,级影碟,对吗?对吗?n顾客:对。n职员:那么您这次想租借什么影碟。职员:那么您这次想租借什么影碟。n顾客:我看看,噢对了,我要租借两张,一张是1988版的白雪公主n职员:每天职员:每天2
25、2元元n顾客:另一张是1980版的哪吒闹海n职员:这个每天职员:这个每天1 1元。就这些吗?元。就这些吗?n顾客:对。n职员:租借几天?职员:租借几天?n顾客:两天。n职员:好的,一共职员:好的,一共6 6元,外加元,外加1 1元税,共元税,共7 7元。元。n顾客确认后付款。n职员提醒顾客,第三天上午职员提醒顾客,第三天上午9 9点之前必须归还。点之前必须归还。屏屏幕幕概概略略设设计计n职员:有什么可以帮助?职员:有什么可以帮助?n顾客:我想租一些影碟。顾客:我想租一些影碟。职员:您以前来过吗,有帐号吗?职员:您以前来过吗,有帐号吗?顾客:有,顾客:有,katie1569katie1569。职
26、员:您稍等职员:您稍等,噢,您是,噢,您是JulyJuly女士,你的小孩叫女士,你的小孩叫katiekatie,她只能租,她只能租PG-13PG-13级影碟,级影碟,对吗?对吗?顾客:对。顾客:对。职员:那么您这次想租借什么影碟。职员:那么您这次想租借什么影碟。顾客:我看看顾客:我看看,噢对了,我要租借两张,一张是,噢对了,我要租借两张,一张是19881988版的版的白雪公主白雪公主职员:每天职员:每天2 2元元顾客:另一张是顾客:另一张是19801980版的版的哪吒闹海哪吒闹海职员:这个每天职员:这个每天1 1元。就这些吗?元。就这些吗?顾客:对。顾客:对。职员:租借几天?职员:租借几天?顾
27、客:两天。顾客:两天。职员:好的,一共6元,外加1元税,共7元。顾客确认后付款。职员提醒顾客,第三天上午9点之前必须归还。打印发票打印发票界面设计界面设计菜单的组织菜单的组织提供反馈提供反馈正确的错误提示正确的错误提示输入设计输入设计一个简单的输入界面一个简单的输入界面输入设计应注意的问题输入设计应注意的问题n尽可能获取原始数据;n尽可能使用电子设备和自动输入;n尽可能重复使用计算机内已有信息;n在输入信息时,对数据进行检验和更正。输出设计输出设计n输出设计输出设计n 输出内容n 输出格式n 编写输出设计书报表输出报表输出磁盘输出磁盘输出图形输出图形输出输出设计输出设计n输出设计示例输出设计示例输出设计输出设计n输出设计示例输出设计示例输出设计输出设计n输出设计示例输出设计示例输出设计输出设计输出设计输出设计输出设计输出设计输出设计输出设计输出设计输出设计输出设计要注意的问题输出设计要注意的问题n输出的目的是什么?n谁需要这些信息?n需要包含什么信息?n输出是打印、在屏幕显示还是两者都要?n何时需要?n存在安全和机密问题吗?