《信息系统开发与管理》第05章 系统设计_第1页
《信息系统开发与管理》第05章 系统设计_第2页
《信息系统开发与管理》第05章 系统设计_第3页
《信息系统开发与管理》第05章 系统设计_第4页
《信息系统开发与管理》第05章 系统设计_第5页
已阅读5页,还剩131页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第五章系统设计本章内容第一节系统设计的任务要求第二节结构化设计的基本概念第三节从数据流图导出结构图第四节一体化设计方法第五节代码设计第六节输出设计第七节输入设计第八节数据库设计第九节计算机处理过程的设计第十节技术系统的设计第十一节系统设计说明书转换从分析到设计现实领域的各种需求系统的逻辑模型计算机领域的具体实现根据需求设计系统物理模型第一节

系统设计的任务要求通俗地说,设计就是要回答“怎么做”完成技术实现方案的制定,即信息系统的物理模型一个逻辑模型,可以提出多个物理模型根据物理模型进行实施,得到最终的物理系统一、系统设计的目标设计系统之前,先看看评价信息系统的标准,这些标准对任何设计方法都适用:信息系统的功能:是否满足用户的需求系统的效率:响应时间、操作的方便性系统的可靠性:抗干扰能力、故障恢复系统的工作质量:准确性、使用效果系统的可变更性:修改和维护的难易程度系统的经济性:系统收益与支出比信息系统的可变更性变化是不变的真理。统计表示:在信息系统的整个生命周期中,系统维护成本占总成本的80%左右。因此,可变更性是衡量信息系统设计的重要指标。如何提高系统变更性结构简单系统各组成元素分工明确,易于理解元素之间的关系清晰简洁变动灵活谨防软件维护中的“水波效应”使系统各组成元素内部的改变容易实现,改动对其它部分的影响尽量减少提前考虑将来最易出现的扩展和变更设计方法:结构化设计技术和面向对象设计技术二、系统设计的内容一般划分为两部分:总体设计也称概要设计明确软件的体系结构(也称架构architecture)、组成元素及其结构(structure)架构表示抽象的框架模式,结构则是指具体元素及其关系详细设计各项具体细节,设计硬件软件的各个方面结构化方法的总体设计主要包括:将系统划分成程序模块;决定每个模块的功能;决定模块的调用关系;决定模块的界面(接口),即调用时传入的信息(函数参数),以及返回的信息(返回值)。简单地说,就是绘制模块结构图(1)结构化方法的总体设计(2)面向对象方法的总体设计面向对象方法的总体设计主要包括:识别系统中的对象,设计类;决定每个类的属性和操作(功能);决定对象之间的协作关系;将类划分为组件,决定组件的依赖关系。(3)详细设计包括代码设计输入设计输出设计人机交互设计(用户界面设计)模块处理过程详细设计/类及用例的详细设计数据库设计技术系统的设计第二节结构化设计的基本概念结构化:自上至下,逐步分解求精结构化设计:模块化模块化因为根据经验:对于问题1(P1)和问题2(P2) 若:C(P1)>C(P2)

则:E(P1)>E(P2)有规律显示:

C(P1+P2)>C(P1)+C(P2)

则:E(P1+P2)>E(P1)+E(P2)C表示复杂度,E表示需要的工作量模块化设计方法使用结构化设计方法一定程度上能够简化系统结构,使系统容易修改和理解。具体做法:把整个软件划分为部分,其中每一部分的功能简单明确,即程序模块(可以是子过程或函数)划分模块的工作按层次进行,上层模块调用下层模块每一个模块应尽可能独立模块间的调用接口要阐明(模块名称、输入数据、输出数据)接口成本/集成成本成本/工作量模块数量单元模块成本软件总成本模块数量和软件成本粒度太大,单个模块复杂度升高、维护困难粒度太小,管理与运行成本升高试想一下:每个经理管理协调多少个下级合适?一、模块模块(Module)一词使用很广泛。通常对应于用一个名字就可以调用的一段程序语句(子程序或函数)模块具有输入和输出、逻辑功能、运行程序、内部数据四种属性。计算工资模块的图形表示方法模块的函数接口表示doublecaculateSalary()二、结构图结构图(StructuredChart)描述系统的模块结构及模块间的联系结构图中的主要成分有:模块:用长方形表示调用:从一个模块指向另一模块的箭头表示前一个模块调用后一个模块。有循环调用和条件调用数据:用带圆圈的小箭头表示从一个模块传递给另一模块的数据(有实义)控制信息:带涂黑圆圈的小箭头表示一个模块传送给另一模块的控制信息主调模块被调模块被调模块主调模块被调模块被调模块循环调用条件调用1、结构图无严格的模块调用顺序,但一般习惯从左至右2、因为约定遵从从上向下的调用,调用关系也可以不使用箭头,而直接使用直线3、模块间传递的信息如果出现在数据字典中,则视为数据,否则为控制信息结构图的画法计算获得有效数据生成报表打印报表获得编辑数据核对数据打印表头打印表尾读入数据编辑数据显示无效数据打印一行有效数据EOF编辑数据EOF有效数据编辑数据有效数据结果编辑数据数据数据EOFEOF结果日期行行行总计一个完整的结构图三、模块的联系为了衡量模块的相对独立性,提出了模块间的耦合(Coupling)与模块的内聚(Cohesion)两个标准耦合:模块和模块之间的联系程度内聚:模块内部各元素之间的联系程度设计目标:模块内的联系越紧越好模块间的联系越少越好四、模块的耦合doublecalculateAvg(){doubletotal,average,value[MAX];…… total=sum(value); average=total/MAX;

return(average);}calculeteAvg和sum两个模块之间存在联系影响耦合度的因素如果使用模块A需要了解模块B,那么A和B是耦合的。影响模块间耦合程度有三方面的因素:联系方式--模块间通过什么方式联系来往信息的作用--模块间来往信息作什么用数量--模块间来往信息的多少。混合控制数据用过程直接引用语句调用少多数量方式作用0离坐标原点越远,耦合程度越高(1)联系方式直接引用:一个模块直接存取另一个模块的某些信息,例如全程变量、FORTRAN的common量、C语言的extern量、共享的通信区等。也称为公共环境耦合(commonenvironmentcoupling)降低这种耦合程度的办法是使数据局部化,即使用局部变量过程语句调用:一个模块调用另一个模块,所有数据来往都以参数或返回值方式传递并使用(2)来往信息的作用模块间的来往信息可以作数据用,也可以作控制信息用A取平均成绩或最高成绩平均/最高B(a)控制耦合成绩取最高成绩取平均成绩A平均成绩最高成绩(b)数据耦合(3)来往信息的数量模块间传递的信息量越大,它们之间的耦合程度越高。一个模块最好只了解它确实需要使用的数据,而完全不知道其他数据的存在(独立性好)减低耦合的设计原则结构化设计要求模块间的耦合程度尽可能小。

为此应:用过程语句调用其它模块模块间的参数作数据用模块间的参数尽可能少五、模块的内聚doubleCalculateAvg(){intn;doubletotal,average,value;

scanf(“inputvalue:”,&value); whilevalue<=0.0 { n=n+1; total=total+value;

scanf(“\ninputvalue:”,&value); } average=total/n;

return(average);}模块内部各元素(变量、语句)之间存在联系内聚的好处模块的内聚反映模块内部联系的紧密程度。一个模块只需要做好一件事情,不要过分关心其它任务。高内聚性的好处是可以提高程序的可靠性。有一个调查表明,50%的强内聚性子程序是没有错误的,而只有18%的弱内聚性子程序才是无错的,弱内聚性子程序的出错机会要比强内聚性出错机会高6倍,而修正成本则要高19倍。摘自《代码大全》内聚的类型模块的内聚可以分以下七类:1、偶然内聚(coincidentalcohesion)2、逻辑内聚(Logicalcohesion)3、时间内聚(temporalcohesion)4、步骤内聚(proceduralcohesion)5、通信内聚(communicationalcohesion)6、顺序内聚(Sequentialcohesion)7、功能内聚(functional_cohesion)当同一个子程序中的操作之间无任何联系时,为偶然内聚性,也叫作“无内聚性”。比如只是为了将程序中某几处凑巧相同的一些语句组合起来形成的一个模块:PQRS(1)偶然内聚

B=A;

read(Cardfile);D=C;T将几个逻辑上相似的功能放在一个模块中准备算平均成绩算最高成绩返回Y取平均成绩?N比如常见的出错处理模块,工作模块发现错误后,调用错误处理模块,将错误号作为控制参数传入,然后出错处理模块根据不同的错误号执行相应的操作

(2)逻辑内聚将在有限时间单元内处理的成分组合为同一模块比如在程序初始化时所作的处理:

m_Medirecno=psPerson.Medirecno

txtMedirecno=psPerson.Medirecno

txtTel=psPerson.Tel

txtContact=psPerson.Contact

txtAddr=psPerson.Addr

txtMedirecno.Enabled=False可视化程序设计中在窗口打开时初始化窗口中得控件内容,如列表框的项目、文本框或单选钮的缺省取值还比如:C++的构造函数、析构函数(3)时间内聚(4)步骤内聚当子程序中的操作是按某一特定过程结构进行的,就是步骤内聚。例如:用户想按一定的顺序打印告,子程序设计成是用于按顺序打印销售收入、开支、雇员电话表的。步骤内聚在时间内聚的基础上增加了次序的约束模块划分示例PREPPLANLOOPSTMRO(主模块)TYPDECID准备好的矩阵指示标记准备好的矩阵指示标记矩阵指示标记部分结果、标签等模块PERP是一个初始化模块,属时间内聚。模块PLANLOOP和TYPDECID都属于步骤内聚。前者的元素用于控制主循环,后者的元素负责主循环的整个判定执行过程绘制划分后的模块图当模块内的成分引用共同的数据,而不存在其他联系时,称为通信内聚修改库存购货单开发货单库存A、销售模块B、产生留退名单模块期末不及格统计累计不及格统计留退名单学籍表(5)通信内聚模块中某个成分的输出是另一成分的输入。比如显示期末成绩通知:读入学号读取成绩取不及格科目取科目补考安排显示数据判断留退级(6)顺序内聚(6)顺序内聚顺序内聚有较强的内聚性是步骤内聚和通信内聚的结合例如:一个模块用于计算高于平均分的人数,步骤是先循环累计总分,然后计算得到平均分,最后循环统计高于平均分的人数有步骤的先后,而且前一个步骤的结果要用于后一步骤的运算中但仍然不是最高的内聚类型(7)功能内聚一个模块包括并且仅仅包括为完成一个具体任务所需要的所有成分,称为功能内聚。功能内聚性是最强也是最好的一种内聚例如:打印职工名单,PrintStaffList()例如:计算平均分,CalculateAvg()仅用一个动宾词组能明确指出这个模块的所有功能。内聚的评分耦合和内聚的概念是Stevens等人提出的,是测量一个模块化系统好坏的标志。按他们的观点,给上述七种内聚评分如下:功能内聚10分顺序内聚9分通信内聚7分步骤内聚5分时间内聚3分逻辑内聚1分偶然内聚0分可以给一个软件的所有模块打分,最后计算平均分,作为软件结构质量评价的参考耦合和内聚的关系二者就像连体兄弟,存在紧密相关的关系:模块内的高内聚往往意味着模块间的松耦合反之,低内聚一般会带来紧耦合六、作用范围与控制范围一个判断的作用范围是所有这样的模块的集合,这些模块内含有依赖于这个判断结果的处理。或称影响范围。一个模块的控制范围是指它本身及其所有下属模块的集合。

D计算总工资

C计算职工工资

B计算临时工工资

A计算工资模块A的控制范围是:A、B、C、D假如判断x出现在模块A中,并且仅在A中使用了x,则该判断的作用范围是:A,而B、C、D不受影响判断的设计原则设计原则:对于任何一个判断,其作用范围应该是这个判断所在模块的控制范围的一个子集该原则的目的:消除控制耦合,降低耦合度想象一下,假设某个控制标志在系统的很多部分发挥作用,那么可能会产生这样一种情况:错误发作的位置离产生错误的源头很远,这给程序调试和维护带来极大困难。(a)TOPXYAB1B2

B(b)BXYAB1B2TOPTOP(c)XBAB1B2Y

TOP(d)XYAB1B2B作用范围和控制范围图示期末成绩查询Main(){

stuNo=读入学号模块调用成绩查询模块调用显示模块}主模块成绩查询模块(){

调用查期末成绩模块如果有不及格科目则

标志1=True

调用不及格处理模块}不及格处理模块(){

标志2=确定留退模块()如果标志2!=True则 调用查补考安排模块}显示结果模块(){

调用显示成绩模块如果标志1==True则 调用不及格显示模块}显示不及格处理模块(){

如果标志2==True则 调用留退通知模块否则 调用补考通知模块}子模块学生期末成绩查询读入学号显示成绩查询成绩显示成绩不及格处理确定留退显示补考显示留退改写后的模块图七、模块的扇入与扇出模块的扇入是指有多少个上级模块调用它。模块的扇出是指模块的直属下层模块的个数,扇出系数不宜过大A的扇出为2ABCB1C1C2C3B的扇出为1C的扇出为3TT的扇入为2八、实例:病人监护系统问题描述:病人监护系统中的实时监测模块。该模块使用病床专用设备测量病人的若干生理参数,如体温、脉搏、血压等等。每个病人各种指标的安全范围由医生预先指定。每经过一定的时间间隔,监测模块从监视设备读入这些数据,并存入数据库中。若发现某个指标超出合理范围,则向维修站发出设备故障通知,报告床号。若发现某个指标越出安全范围,则向护理站发出通知,报告病人号。分析产生的DFD病人护理站病历合理数据数据不安全因素读取数据存储数据检查数据通报不安全因素维修站不合理数据可以划分哪些模块呢?FS2病人监护采集数据检查数据处理数据获取下一个病人PN,FSEOF,EFEOFFSEFUSF,EFUSFFSPNEF,USFPN,FSPN,FS,EFPN,EFPN,FSFSSR读取数据检查不合理范围查询安全范围判定病人是否安全写数据库通报设备故障通报不安全因素EFBNPN,FSEFPN,BN(1)初始结构图PN—病人号;BN—床位号;SR—安全范围;FS—各指标数据;

EF—设备故障标志;EOF——标志已查过最后一个病人;

FS2—标志指标是否合理;USF—标志指标不安全(2)第1次改进“处理数据”模块没有实质性的功能,所包含的三个子模块相互之间没有什么关联,内聚程度很低。该模块只是充当了“管道”,改进如下:废除“处理数据”模块;直接由主模块调用“通报设备故障”、“通报不安全因素”和“写数据库”三个模块病人监护写数据库通报不安全因素通报设备故障检查数据采集数据第1次改进结果(3)第2次改进通报设备故障时应通报床位号而不应是病人号,因此要传递床位号。床位号BN可由“采集数据”模块传给主模块,再由主模块传递给“通知设备故障”模块。但这样做增加了模块间的联系,改为由“采集数据”模块直接调用PN,FS病人监护采集数据检查数据通报不安全因素获取下一个病人PN,FSEOF,EFPN,BNEOFFSEFUSFUSFPNFS2PN,EFPN,FSFSSRSR读取数据检查不合理范围查询安全范围判定病人是否安全写数据库通报设备故障EFBNPN,FSEFFS第2次改进结果(3)第3次改进若由“检查数据”模块直接调用“通报不安全因素”模块,则可减少模块间的联系,即不用传递USF标志(排除控制耦合)。这样的话,“检查数据”的名字改为“报告不安全因素”更为恰当第3次改进结果病人监护采集数据报告不安全因素写数据库PN,FSEOF,EFEFUSFPNSR,FSEFPN,FS查询安全范围通报不安全因素PN,FS判定病人是否安全(4)第4次改进“获取下一个病人”模块要返回病人号和床位号,接口比较复杂。如果使“读取数据”模块包括从病人号查床位号的功能,则“获取下一个病人”模块的接口可以简化第4次改进结果采集数据获取下一个病人PNEOFFSEFPNBNFS读取数据检查不合理因素从PN查BNPN通报设备故障FS2BN(5)第5次改进通过床号读取数据,功能很明确,但目前包含在“读取数据”模块中,这部分程序代码如果抽取出来单独成为一个模块更好,名字为“从床号读数据”该模块可以成为一个公用模块,很易于重用第5次改进结果采集数据获取下一个病人PNEOFFSEFPNBNFSEOFPNFS2BN从PN查BN从床号读数据通报设备故障检查不合理因素BN采集病人数据(6)第6次改进“从床号读数据”应该是功能单一,调用“通报设备故障”不应属于该模块内容。将“通报设备故障”改为上层模块调用,使“从床号读数据”模块功能更明确,公用性也更好第6次改进结果病人监护采集数据报告不安全因素写数据库判定下一个病人PN,FSEOF,EFPNEOFFSEFUSFPNEFSREFFSPNFS,SR采集病人数据检查安全范围判定病人是否安全通报不安全因素EFPNPN,FS从PN查BN从床号读数据通报设备故障检查不合理因素BNBNEFFSBNFSFS2PN,FS(7)第7次改进给护士站或维修站的通报消息可能采用了同一种方式或界面,因此可能会有公用的模块,比如“写一行”(或者“发出警报”之类)因此再抽出一个模块“写一行”,供两个模块调用。第7次改进结果病人监护采集数据报告不安全因素写数据库判定下一个病人PN,FSEOF,EFPNEOFFSEFUSFPNEFSREFFSPNFSFS,SR采集病人数据检查安全范围判定病人是否安全通报不安全因素EFPNPN,FS从PN查BN从床号读数据通报设备故障产生一行写一行检查不合理因素BNBNEFEFFSBNFSFS2PN,FS一行一行一行结构图优化方法①减少模块间的联系,其中用得最多的是减少传递的参数,尤其应注意减少控制信息的传递;②消除重复功能;③消除“管道性”模块;④考虑将来可能发生的变化;⑤应控制模块的大小,一般认为一个模块在50~100个语句为宜,过大的模块可按功能分解出下级模块,过小的模块可适当合并;⑥尽可能从整个结构图出发考虑;⑦初始结构图中不满足系统说明书的地方,在改进过程中完善。第三节从数据流图导出结构图转换分析模型(逻辑模型)设计模型(物理模型)转换存在一定的鸿沟数据流图着眼于现实世界,结构图着眼于计算机世界。数据流图反映数据流,反映系统的逻辑功能,即系统能够“做什么”;结构图反映程序控制层次,反映系统的物理模型,即怎样逐步实现系统的总功能。简单地说:数据流图描述线性的工作流程,结构图描述工作的分配控制(谁负责做什么)转换有规律可循吗?数据流图的结构:层次结构变换型(Transform)结构事务型(Transaction)结构这三种结构可以分别通过层次转换、变换分析和事务分析方法导出标准形式的结构图。层次转换:高层可以对应模块结构的层次,但中低层对应关系不明显。变换分析:用来描述输入、处理、输出数据流。事务分析:用来描述多种事务类型的处理。一、变换分析对线性结构的DFD作分析,步骤:划分数据流图的输入、主加工和逻辑输出套用固定格式生成第1、2层模块结构图对第2层模块进一步分解,构造完整的模块结构图(1)划分输入、加工、输出原始数据机内数据正确数据解格式化解输出解逻辑输出逻辑输入(物理输入)(物理输出)P1读入数据P2编辑数据P3求解P4编辑格式P5打印输出(2)设计顶层和第一层模块正确数据求解编辑数据计算获得正确数据输出解编排格式打印解编辑数据读入数据正确数据原始数据原始数据解格式化解解正确数据格式化解解(3)设计中、下层模块更细粒度的模块分解,如:计算中间结果数据计算A计算B最终解二、事务分析对并行结构的DFD进行分析,如:根据输入数据判断业务类型,不同业务的具体处理过程有区别。Q内容B结果C结果B数据A结果清单原始输入A数据P内容C数据R内容决定事务类型打印更新内容事务A事务B事务C更新P更新Q更新R事务分析结果业务处理分配处理分析类型判别业务输入数据处理事务C处理事务A处理事务B事务A更新P事务B更新Q事务C更新R打印清单三、数据流图层次的转换数据流图的层次和结构图的层次存在一定的对应关系,但不是机械照搬。M32.......................................................................P1.4成绩管理子系统的结构图成绩管理子系统登记期末成绩分析期末成绩登记补考成绩分析补考成绩登记期末成绩登记素质成绩转入学籍表评定奖学金查询成绩登记缓考名单登记作弊名单生成期末留退名单打印补考名单成绩分布统计读入学号查询成绩显示成绩显示留退通知判定留退或补考显示补考安排统计期末不及格科目统计上期补考不及格科目制作留退报告累计补考不及格科目第四节一体化设计方法略。第五节代码设计什么是代码?用来表征客观事物的一个或一组有序的符号,它应易于计算机和人识别与处理。一般用数字、字母或它们的组合来表示。代码设计是科学管理的体现。代码无处不在:车牌号码、商品编码、身份证号、学号、专业代码一、代码的作用为什么需要代码?1.鉴别功能:唯一标识一个学生、一种产品…2.分类:0代表男、1代表女…3.排序:数字、字母容易排序,而汉字按照拼音排序通常不符合管理需要4.专用含义其他可能的好处: 提高录入速度、节省存储空间(使用代码作数据库的主键PK、外键FK)…代码无实义代码有实义代码顺序码特征组合码层次码字母顺序码系列顺序码逻辑码排序码无序码自检码矩阵码二、代码的种类三、代码的类型代码的类型指代码符号的表示形式,一般有:数字型:结构简单,使用方便,也便于排序,但对象特征的描述不直观字母型:便于记忆,人们有使用习惯。与同样长度的数字码相比,容量大得多。但会出现重复和冲突数字字母混合型:兼有前两种代码的优点。但是其组成形式复杂,计算机输入不便,人工录入效率低,错误率高(要避免出现:I和1,0和o…)代码举例身份证号国际书号会计科目考研报考的学校代码、专业代码...如何保证代码输入的正确性代码输入不能出错,那么如何避免代码错误:输入技术(如条码扫描、磁卡、IC卡/读卡器)列表选择输入(用于数据量少的情况)界面中采用下拉表选择,不需要键盘输入利用数据库中的代码表对照检查(数据量多)代码量很多时,下拉选择不可取,可在数据库中为代码及其含义建立数据表,手工输入后,在数据库中进行参照查询,如果存在则可显示详细内容,否则表示输入有误。如学生学号代码中设置校验位(上述方法都不适用时)代码自身具有一定的验证功能,如身份证号四、代码中的校验位校验码的生成过程如下:

(1)对代码本体的每一位加权求和:

设代码本体为:C1C2…Cn

权因子为:P1P2…Pn

加权求和:S=∑CiPi(2)以模除和得余数:

R=Smod(M)(3)运算后得校验位(如模减去余数):

Cn+1=M-R身份证中的校验位比如:34052419800101001∑(ai×Wi)mod11i:表示号码字符从由至左包括校验码在内的位置序号

Ai:表示第i位置上的号码字符值

Wi:示第i位置上的加权因子Ai34052419800101001?Wi7910584216379105842根据公式进行计算:∑(ai×Wi)=21+36+0+25+16+16+2+9+48++0+0+9+0+5+0+0+2)∑(ai×Wi)(mod11)=189Mod11=2余数: 012345678910校验码: 10X98765432得出、代码设计的原则代码设计必须遵循以下基本原则:

1.唯一性

2.合理性

3.可扩充性(千年虫问题)

4.简单性

5.适用性

6.规范性

7.系统性六、代码设计的步骤代码设计可按下列步骤进行:确定代码对象考查是否已有标准代码根据代码的使用范围、使用时间,根据实际情况选择代码的种类与类型。考虑检错功能编写代码表有关代码国家标准GB2261-1980人的性别代码GB/T2659-2000(ISO3166)世界各国和地区名称代码GB3304-1991中国各民族名称的罗马字母拼写法和代码GB4762-1984政治面貌代码GB4880-1991(ISO-639)语种名称代码GB/T

4754-2002国民经济行业分类与代码GB/T16835-1997高等学校本科、专科专业名称代码输入/输出设计哪些地方需要进行输入/输出设计呢?输出设计:当DFD图中有数据流从系统流出到外部实体的地方。报表、人机交互的查询、发送邮件等到其它系统(消息、数据库、文件等)输入设计:外部实体的数据流进入到系统的地方。本系统操作人员的输入来自于其它系统的输入(其它的数据库或文件、其它系统的实时响应结果)高度自动化的输入(条码扫描仪、传感器等)第六节输出设计系统中的数据输出到人、组织、其它系统经理顾客信用卡系统报表商品查询结果付款信息输出设计的内容确定输出内容:首先确定用户在使用信息方面的要求,包括使用目的、输出速度、频率、数量、安全性要求等等。然后设计输出信息的内容、信息形式(表格、图形、文字)、数据结构、数据类型、位数及取值范围等等。

选择输出设备与介质:常用的输出设备有显示终端、打印机、磁带机、磁盘机、绘图仪、缩微胶卷输出器、多媒体设备。输出介质有纸张、磁带、磁盘、缩微胶卷、光盘、多媒体介质等等。确定输出格式:输出文字、报表或图形,清晰直观,满足用户的管理需求和习惯,符合行业标准输出设备输出介质输出设备和输出介质Printers(打印机)VideoDisplayUnit(显示器)Plotters(绘图仪)COMEquipment(串行端口设备)Speakers(喇叭)……Paper(纸)VideoScreen(屏幕)Microfilm/Microfiche(胶片)AirWaves/Sound(声音)Disk(存储设备)IC卡、短信、邮件……输出格式用于信息管理的输出格式:表格清单(如各种收费单)汇总表(月报表)对照表(年度对照)……图形折线图(股票走势)柱状图(产品销售业绩)饼图(产品区域分布比例)文字(比如一些证书、评审报告)第七节输入设计外部产生的数据如何输入到系统中经理顾客省招办贷款审批意见订单新生档案输入设计的重要性输入是垃圾–输出是垃圾(GIGO)一、输入设计的原则最小量原则仅输入必要的数据,尽量让系统计算或导出数据简单性原则输入的准备、输入过程应尽量容易,以减少错误的发生,并在适当的地方使用代码早检验原则对输入数据的检验尽量接近原数据发生点少转换原则输入数据尽量用其处理所需形式记录,以免数据转换时发生错误;直接使用已有的数据,比如采用EDI(电子数据交换),XML,数据从一个系统传给另一个系统,不需要再次输入。如图书销售二、输入设计的内容确定输入数据内容:包括确定输入数据项名称、数据内容、精度、数值范围。确定数据的输入方式:集中式输入还是联机分布式输入,与数据发生地点、时间、紧急程度有关。记录格式设计:记录格式设计得好,能减少数据冗余,降低错误率和操作员劳动强度。输入数据的正确性校验:可能的话直接从已有数据中选择确定输入设备:键盘、鼠标、触摸屏、读卡机、字符识别机、光电阅读器、条形码识别机、语音识别仪、图像扫描仪MagneticInkCharacterRecognition(MICR)OpticalCharacterRecognition(OCR)OpticalMarkRecognition(OMR)ImageScanner&Facsimile(Fax)MachinesPoint-of-SaleDevice(POS)AutomaticTellerMachine(ATM)IntelligentCardKeyboardMouseJoystickPensScalesVoiceRecognitionTouchScreen输入设备三、输入的记录格式设计很多数据在输入到系统之前,通常来源于纸质的记录。原因:数据提供者只负责提供数据,而不负责数据录入到计算机系统出于安全考虑,需要有纸质档案,如会计数据因此需要进行数据记录格式的设计。数据记录格式的设计直接关系到计算机系统输入数据的质量,因此要考虑计算机录入的特点。格式设计例子中国邮政汇款单邮编用户填写邮局填写写业务种类普通汇款加急汇款电子汇款特急汇款礼仪自行通知划拨附言入帐支票附加种类收款人姓名汇款金额佰拾万千佰拾元角分收款人地址开户局及帐号汇款人地址汇款人姓名汇票号码汇款金额汇费手续费收汇日期经办员:复核员:检查员:格式设计示例块风格阴影选择框颜色数字域/代码四、用户界面设计信息系统是一个“人—机系统”,大量的输入和输出面对的是人,抽取这部分进行人机对话设计。(1)用户界面设计的原则(1)对话要清楚、简单,用词要符合用户观点和习惯。

(2)对话要适应不同操作水平的用户,便于维护和修改。

(3)错误信息设计要有建设性。(2)图形用户界面(GUI)界面(Interface):系统或对象对外可见的部分用户界面(UserInterface):与用户进行交互的可见部分,通常以屏幕为输入/输出介质字符(character)界面:以字符为单位,80列*25行,仅显示字符,所有操作通过键盘操作图形(graphic)界面:以像素为单位,600*480、1024*768,能显示任何字符、图形或图像,可以通过键盘、鼠标、光笔、触摸屏进行操作用户界面设计策略BenShneiderman所著的《用户界面设计——有效的人机交互策略》总结了三项原则:考虑用户的多样性八条黄金设计规则,适用于大多数交互系统的基本定律预防出错八条黄金设计规则尽量保持一致(布局、颜色、词汇)允许熟练用户使用快捷键提供积极的有价值的反馈设计完整的对话过程,每次对话有明确的结束信息(包括窗口的切换)提供预防错误和简单的错误处理手段允许撤销动作提供控制的内部轨迹,让用户感觉控制了系统,而不是被控制减轻短期记忆负担输入数据的错误没有药可以阻止死亡,也没有规则能防止错误

——弗洛伊德不管怎样设计,总是免不了会有错误,可以针对不同的错误采取一定程度的防范措施。错误有以下几类:数据内容错:这是由于原始单据有错或录入时发生错误数据多余或不足:这是收集中的错误,如原始单据丢失或重复数据的延误:由于输入数据迟缓导致处理推迟,不仅影响业务工作,还可能使输出结果变得无价值五、输入数据的校验方法重复验证:如由两个或更多操作员录入相同的数据视觉验证:如从终端上键入数据,在屏幕上校验之后再送到计算机处理分批汇总校验:分批计算,累计总数验证控制总数校验:数据类型校验:按照数据类型进行输入验证格式校验:比如合同号编码有固定的格式,可按位检测逻辑校验:如月份应是1~12,日期应是1~31界限校验:如一次取款为50~2000记录计数校验:平衡校验:如借贷要平衡匹配校验:如在主表中验证指定代码是否存在代码自身校验:第八节数据库设计选择RDBMSSybaseOracleDB2MSSQLServerFoxProAccessMySQL…建立关系数据模型一、关系数据模型用关系(二维表格数据)表示实体和实体之间联系的模型称为关系数据模型为每个实体类型创建一张二维表;为每张表选择或发明一个主键;添加外键来表示实体间一对多的关系;创建一张新表来表示尚未分解的多对多的关系(拆为两个一对多关系);确定各个关系模式中属性的数据类型、约束、规则和默认值,考虑域完整性;根据用户需要设计存储过程、触发器、视图等。ER模型到关系模型E—R图向关系数据模型的转换1、E—R图中每个实体,相应转换为一个关系,该关系包括对应实体的全部属性,并确定出该关系的主关键字PK。一个关系是一张二维表。2、对于“联系集”,根据联系方式不同,采取不同手段以使被它联系的实体所对应的关系彼此实现某种联系(一般通过外部关键字FK)。每个实体对应一个表E—R图的转换将E-R图转换成相应的表表是行和列的集合,实体被表示成表的形式。用列标题表示实体的属性用行表示每个实体的实际数据(属性值)关于表和属性的命名规则属性名和表名中不能包含空格表名对实体的描述应该是有意义的。如student(cStuID,cStuName,nStuAge,……)表名只能描述一个主题举例1一名厂长管理一个工厂,一个工厂由一位厂长管理厂长号姓名年龄厂长厂号厂名地点工厂管理11厂长(厂长号,厂号,姓名,年龄)工厂(厂号,厂名,地点)主关键字外部关键字工厂(厂号,厂名,地点,厂长号)或者:举例2一个仓库可以存放多种产品,每种产品只能保存在一个仓库中仓库号地点面积仓库货号品名价格产品存放1n仓库(仓库号,地点,面积)产品(货号,品名,价格,仓库号,数量)数量仓库号为主关键字多的一端设置外部关键字举例3一名学生可以选修多门课程,每门课程有多个学生选修(多对多的关系分解为两个1对多关系)学号姓名年龄学生课程号课程名学时数课程学习mn学生(学号,姓名,年龄)课程(课程代码,课程名,学时数)成绩学习(学号,课程代码,成绩)学号为主关键字课程代码为主关键字学号+课程代码为复合关键字二、规范化数据库设计规范化必要性:解决在关系模式设计时,存在的数据存储异常现象:数据冗余、修改异常、插入异常、删除异常等。规范化的理论首先由E.F.Codd于1971年提出的,根据关系模式满足的不同性质和规范化的程度,把关系模式分为:第一范式、第二范式、第三范式、BC范式/第四范式(1)第一范式第1范式(FirstNormalForm,即1NF):一个关系的所有分量(属性)都必须是不可分的最小数据项。以下不符合1NF,如何改造?学号姓名借书证号所借书籍0201李好JC002070,0250202张三JC002601,150,579,860(2)第二范式如果主键是由多个属性构成的复合关键字,并且不存在非主属性对主键的部分函数依赖,则这个关系是满足第二范式。下面不满足2NF,如何改造? 学生(学号、姓名、性别、出生日期、入学日期) 成绩(学号,课程代号,期末成绩、平时成绩、总评成绩、补考成绩) 课程(课程代号,课程名,学时,学分)书号借书证号借书日期姓名书名应还日期还书日期0201JC0022006-1-1李好C语言2006-3-12006-2-40202JC0032006-9-3张三操作系统2006-11-3(3)第三范式如果符合第二范式的条件,并且所有非主属性都不传递依赖于主关键字,那么就是第三范式。假如每本书有一个书号,分类码依赖于书号,而分类名又依赖于分类码,那么分类码传递依赖于书号 课程(课程代号,课程名,学时) 学分(学时数,学分)书号书名分类码分类名0201C语言TP312计算机技术0202操作系统TP312计算机技术适当的规范化综合考虑多种因素,进行适当的规范化规范化程度越高数据冗余更新异常连接运算时间查询时间效率三、物理设计估算数据库的数据存储量。设计数据库设备安排数据库的存储设计索引设计备份策略设计镜像方案第九节计算机处理过程的设计区分模块总体设计和模块详细设计模块总体设计是要确定模块及其相互关系(静态结构)。模块详细设计是要确定每一个模块的内部特征,即内部的处理过程的设计(动态过程)。处理过程设计可以采用以下工具表达:程序流程图(程序框图)盒图(NS图)程序设计语言(PDL)一、程序流程图三种结构(a)顺序(b)循环(c)选择(d)条件二、盒图(NS

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论