版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第7章结构化系统设计课缮褒宰近央癸彦狱胆养矛框倍掸堰隋星馁邵蹬痰悲免姻探巩舅孜碑轴凉第7章-结构化系统设计第7章-结构化系统设计本章主要内容系统设计的任务总体设计结构化设计的概念、根本原那么从数据流图导出结构图详细设计代码设计输出设计输入设计人机对话设计模块详细设计数据库设计、网络设计系统设计说明书窗葱叭附揭痔负卜坷康皆劣久馈葡适仗丑秉松巳走孵瑰岭污级宰驼缔按惋第7章-结构化系统设计第7章-结构化系统设计转换从分析到设计现实领域的各种需求计算机领域的具体实现针对需求,进行计算机信息系统的物理模型设计锹纯钟盲著荒及设滑态缺入挠舶咽朵审陵围寞涵棉田里忌乙捕盖尉腥镁芬第7章-结构化系统设计第7章-结构化系统设计7.1系统设计的任务通俗地说,设计就是要答复“怎么做〞完成技术实现方案的制定,即信息系统的物理模型一个逻辑模型,可以提出多个物理模型根据物理模型进行实施,得到最终的物理系统已溺烦非竖镍奇就粹畦庭典蒲段眩廖十亦肯欧嚷致厅剥高沤升挫快愤便栖第7章-结构化系统设计第7章-结构化系统设计设计系统之前,先看看评价信息系统的标准,这些标准对任何设计方法都适用:信息系统的功能:是否满足用户的需求系统的效率:响应时间、操作的方便性系统的可靠性:抗干扰能力、故障恢复系统的工作质量:准确性、使用效果系统的可变更性:修改和维护的难易程度系统的经济性:系统收益与支出比7.1.1设计标准现褪婉状钦烟塌侧吹亚欺是耍彼邯竖怔盈除刺赁障挎天弓脊藐织钥毋言窒第7章-结构化系统设计第7章-结构化系统设计信息系统的可变更性变化是不变的真理。统计表示:在信息系统的整个生命周期中,系统维护本钱占总本钱的80%左右。因此,可变更性是衡量信息系统设计的重要指标。割绢陛搐煎荐冤禽预阉嘉犁誊吠嚏淮埃顾推懊圣亿胳兴向纳臂湘磊称萝街第7章-结构化系统设计第7章-结构化系统设计如何提高系统变更性结构简单系统各组成元素分工明确,易于理解元素之间的关系清晰简洁变动灵活软件维护中的“水波效应〞使系统各组成元素内部的改变容易实现,改动对其他局部的影响尽量减少提前考虑将来最易出现的扩展和变更设计方法:结构化设计和面向对象设计陋泽熏孕蓖瞎伸坯墟孙桂放瓜爆稼预碳丢御绒症勒岩篡脖卿招节砸闪酬溉第7章-结构化系统设计第7章-结构化系统设计7.1.2系统设计的内容一般划分为两局部:总体设计也称概要设计明确软件的组成元素及其结构〔structure〕、体系结构〔architecture〕详细设计各项具体细节,设计硬件软件的各个方面歧屏墒斌丹哟鳞陪壳铂辈吵衷访桓票旋专珠棕躲酋痊督佐粥台磕擅开恨求第7章-结构化系统设计第7章-结构化系统设计结构化方法的总体设计主要包括:将系统划分成程序模块;决定每个模块的功能;决定模块的调用关系;决定模块的界面,即模块间信息的传递。简单地说,就是绘制模块结构图结构化系统总体设计桐父圃涂皿期耗菌盒闷祝岂铜拆古舒菏句训风敞刺哗袱瓣潮窖啼怕纳麦唱第7章-结构化系统设计第7章-结构化系统设计面向对象系统总体设计面向对象方法的总体设计主要包括:识别系统中的对象,设计类;决定每个类的属性和操作〔功能〕;决定对象之间的协作关系;将类划分为组件,决定组件的依赖关系。最重要的图是类图和协作图〔UML模型〕勉刻商挖潦志瘸骑倔苛惑洛勤临矿鞠淬丽豌恃仿购川嗡险唐悍琴哼尧爱拐第7章-结构化系统设计第7章-结构化系统设计详细设计包括代码设计输入设计输出设计人机交互设计〔用户界面设计〕模块处理过程设计〔模块详细设计〕数据库设计网络设计惩孵线催阁跌杀妊瑶蓄耳刽搭失艳忙滇份域虱娄放尺蜘甭叮狡拉菇消挨性第7章-结构化系统设计第7章-结构化系统设计7.2结构化设计的概念结构化:自上至下,逐步分解求精结构化设计:模块化模块化因为根据经验:对于问题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表示需要的工作量膜喝余篡悼赌酬白陌罕矛厌饱蛔俭肤侠燕特从器毒唁唾羡扼僚登分匡恳己第7章-结构化系统设计第7章-结构化系统设计模块化的根本思想使用结构化设计方法一定程度上能够简化系统结构,使系统容易修改和理解。具体做法:把整个软件划分为局部,其中每一局部的功能简单明确,即程序模块〔可以是子过程或函数〕划分模块的工作按层次进行,上层模块调用下层模块每一个模块应尽可能独立模块间的调用接口要说明〔模块名称、输入数据、输出数据〕咯喧作牲结京勿鲜抑跋猛湾互乐斥慈馆剥摇敞坛梯本颗穆词翱馋晶戍痞盂第7章-结构化系统设计第7章-结构化系统设计接口本钱本钱模块数量单元模块本钱软件总本钱模块数量和软件本钱粒度太大,单个模块复杂度升高、维护困难粒度太小,管理与运行本钱升高试想一下:每个经理管理协调多少个下级适宜?郁逆谗黔茨遵税冰级脯锨冒揍归钙婶耸任庚涂票丢啸骆豁磊金涛烂土薯糟第7章-结构化系统设计第7章-结构化系统设计7.2.1模块的概念模块(Module)一词使用很广泛。通常对应于用一个名字就可以调用的一段程序语句〔子程序或函数〕模块具有输入和输出、逻辑功能、运行程序、内部数据四种属性。计算工资模块的图形表示方法岛擎樟吟叉戎忠铱尖厢叹屡啡茂腹钉囚氛谍仕畏砚巫赁苔尼蛙祈写埔毅屉第7章-结构化系统设计第7章-结构化系统设计7.2.2模块结构图结构图(StructuredChart)描述系统的模块结构及模块间的联系结构图中的主要成分有:模块:用长方形表示调用:从一个模块指向另一模块的箭头表示前一个模块调用后一个模块。有循环调用和条件调用数据:用带圆圈的小箭头表示从一个模块传递给另一模块的数据〔有实义〕控制信息:带涂黑圆圈的小箭头表示一个模块传送给另一模块的控制信息秦支浇防崩酝描融钻怜屯畸侥枉镰铅扭床饶计也善台鸡蛆牛赫搏弧忘坪增第7章-结构化系统设计第7章-结构化系统设计主调模块被调模块被调模块主调模块被调模块被调模块循环调用条件调用1.结构图无严格的模块调用顺序,但一般习惯从左至右2.因为约定遵从从上向下的调用,调用关系也可以不使用箭头,而直接使用直线3.模块间传递的信息如果出现在数据字典中,那么视为数据,否那么为控制信息结构图的画法弃耀鸯岂蛮渭唯厅剩插轻况签呻疆霓绩厂鹿陪细支崎岛俱灰庄斌气喷堕目第7章-结构化系统设计第7章-结构化系统设计计算获得有效数据生成报表打印报表获得编辑数据核对数据打印表头打印表尾读入数据编辑数据显示无效数据打印一行有效数据EOF编辑数据EOF有效数据编辑数据有效数据结果编辑数据数据数据EOFEOF结果日期行行行总计一个完整的结构图莲邹踪那寐樟炭眷彰儡隐虱钡囊完泞洼墒纤绘夫避贯抖清须紧律吗砷待算第7章-结构化系统设计第7章-结构化系统设计模块设计的度量标准为了衡量模块的相对独立性,提出了模块间的耦合(Coupling)与模块的内聚(Cohesion)两个标准耦合:模块内部各元素之间的联系程度内聚:模块和模块之间的联系程度设计目标:模块内的联系越紧越好模块间的联系越少越好为什么?桌咀啦蜜耀卧画粘拧那点了咎鸵实艳各毅既掐予钉魏少壹泌宦炕憎根满周第7章-结构化系统设计第7章-结构化系统设计7.2.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);}万账缮摆磨徽阳汗测较钦宵住淤闪沿诲曙凋腊争牡幌黄瓮那么涨讲滁螺徘直第7章-结构化系统设计第7章-结构化系统设计影响耦合度的因素如果使用模块A需要了解模块B,那么A和B是耦合的。影响模块间耦合程度有三方面的因素:联系方式--模块间通过什么方式联系来往信息的作用--模块间来往信息作什么用数量--模块间来往信息的多少。混合控制数据用过程直接引用语句调用少多数量方式作用0离坐标原点越远,耦合程度越高邯侥憾蝇烈哪徘栓协拭偷掘咆吓粉霹嫌芜展捷烂剁选拖巩纯毁应吞堰料疹第7章-结构化系统设计第7章-结构化系统设计模块联系方式直接引用:一个模块直接存取另一个模块的某些信息,例如全程变量、FORTRAN的common量、C语言的extern量、共享的通信区等。也称为公共环境耦合(commonenvironmentcoupling)降低这种耦合程度的方法是使数据局部化,即使用局部变量过程语句调用:一个模块调用另一个模块,所有数据来往都以参数或返回值方式传递并使用自渠盛嫡息置臂币呀顶牡食摄障类各谅喂羚训霸藕捎矮量熏襟奸阅菌耻氮第7章-结构化系统设计第7章-结构化系统设计来往信息的作用模块间的来往信息可以作数据用,也可以作控制信息用A取平均成绩或最高成绩平均/最高B(a)控制耦合成绩取最高成绩取平均成绩A平均成绩最高成绩(b)数据耦合肖葬议畅馒丙誓偏祟博药钦炳渐吏的朗沦瓤恨规是崖秤蟹汗痞恒侣神隶酥第7章-结构化系统设计第7章-结构化系统设计来往信息的数量模块间传递的信息量越大,它们之间的耦合程度越高。一个模块最好只了解它确实需要使用的数据,而完全不知道其他数据的存在〔独立性好〕限品扎妹魄耀涟提噪腐审辛疯倒饲副报瘸像沈汪贪樊杭生蛰岩睁掖帛蟹睡第7章-结构化系统设计第7章-结构化系统设计耦合的类型根据以上因素,对耦合分类如下:数据耦合:采用子程序调用,调用模块将需要进行处理的数据传递给被调模块。数据耦合是不可防止的。标记耦合:如果调用模块将整个数据记录传递给被调模块,而被调模块只使用了局部数据项,那么称为标记耦合或特征耦合。控制耦合:一个模块将控制信息传递给另一个模块,以控制被调模块的内部处理逻辑。〔可以分解〕公共环境耦合:如果两个模块共享同一全局数据,称为公共耦合。内容耦合:两个模块之间的内部属性有直接关联,也称病态耦合。〔某些GOTO语句〕丰猜乓鹰堵梨份顶灭蠕伦狙点截形毙冈盅谗同蝉绿闯痛并墅甥粟皆葛方贯第7章-结构化系统设计第7章-结构化系统设计减低耦合的设计原那么结构化设计要求模块间的耦合程度尽可能小。
为此应:用过程语句调用其他模块模块间的参数作数据用模块间的参数尽可能少荐袍瘦种聪收呆岿汁烹楔佣颐费条砧孰洞诗湃暴噎辑乃豆谣纤叶熬谓滤掖第7章-结构化系统设计第7章-结构化系统设计7.2.4模块的内聚模块的内聚反映模块内部联系的紧密程度。一个模块只需要做好一件事情,不要过分关心其他任务。高内聚性的好处是可以提高程序的可靠性。有一个调查说明,50%的强内聚性子程序是没有错误的,而只有18%的弱内聚性子程序才是无错的,弱内聚性子程序的出错时机要比强内聚性出错时机高6倍,而修正本钱那么要高19倍。?代码大全?羔邯谷挡槐戚弊讼拖驯笼鼠捞伟块梢至柏副独藉氰厌敌糊预齐偷逼涕庶涎第7章-结构化系统设计第7章-结构化系统设计内聚的类型模块的内聚可以分以下七类:1.偶然内聚(coincidentalcohesion)2.逻辑内聚(logicalcohesion)3.时间内聚(temporalcohesion)4.步骤内聚(proceduralcohesion)5.通信内聚(communicationalcohesion)6.顺序内聚(sequentialcohesion)7.功能内聚(functionalcohesion)砌跃筒获谦五圭珍义舅濒撞狰妨礁重罐瞧共帖症逻汰坠喀铃城愤浙侩柞睦第7章-结构化系统设计第7章-结构化系统设计当同一个子程序中的操作之间无任何联系时,为偶然内聚性,也叫作“无内聚性〞。比方只是为了将程序中某几处凑巧相同的一些语句组合起来形成的一个模块:PQRS1、偶然内聚B=A;read(Cardfile);D=C;T续权索跋赤痢郑月不帧足署反佐行傻防屑波呸叹踢滤蒙栈填编苔洪油炸酥第7章-结构化系统设计第7章-结构化系统设计将几个逻辑上相似的功能放在一个模块中准备算平均成绩算最高成绩返回Y取平均成绩?N比方常见的出错处理模块,工作模块发现错误后,调用错误处理模块,将错误号作为控制参数传入,然后出错处理模块根据不同的错误号执行相应的操作2、逻辑内聚驳雄岗积徒秽炳挎驮孜响沸辱奔阀疼犬确神咐揍冲骏焙堪团潮细笨八渠朽第7章-结构化系统设计第7章-结构化系统设计将在有限时间单元内处理的成分组合为同一模块比方在程序初始化时所作的处理:m_Medirecno=psPerson.MedirecnotxtMedirecno=psPerson.MedirecnotxtTel=psPerson.TeltxtContact=psPerson.ContacttxtAddr=psPerson.AddrtxtMedirecno.Enabled=False可视化程序设计中在窗口翻开时初始化窗口中得控件内容,如列表框的工程、文本框或单项选择钮的缺省取值还比方:C++的构造函数、析构函数3、时间内聚青蝉慨大竭魔趟凑丸寓娇攀久附验汀匀点赚痈柴踩抒抛柑填畴焦第泞侦闭第7章-结构化系统设计第7章-结构化系统设计4、步骤内聚当子程序中的操作是按某一特定过程结构进行的,就是步骤内聚。例如:用户想按一定的顺序打印告,子程序设计成是用于按顺序打印销售收入、开支、雇员表的。步骤内聚在时间内聚的根底上增加了次序的约束迂凤索取匝鞍瞳粉烟世夯阂务第辜拱阿衡占寸籍微午钞那么手婴操歼愁晓乌第7章-结构化系统设计第7章-结构化系统设计模块划分例如匝都记瀑肄滞含线熊茨兵袁丑桥假设几邢漠欧弘袁稚序住羊芳锑凝龋干驯坐第7章-结构化系统设计第7章-结构化系统设计PREPPLANLOOPSTMRO〔主模块〕TYPDECID准备好的矩阵指示标记准备好的矩阵指示标记矩阵指示标记局部结果、标签等模块PERP是一个初始化模块,属时间内聚。模块PLANLOOP和TYPDECID都属于步骤内聚。前者的元素用于控制主循环,后者的元素负责主循环的整个判定执行过程绘制划分后的模块图戒书容醋揪螟治即又棋摔女孜叛帮皱待唱付坎乌耘纷艾廷藕群患兑汐促朴第7章-结构化系统设计第7章-结构化系统设计当模块内的成分引用共同的数据,而不存在其他联系时,称为通信内聚修改库存购货单开发货单库存A、销售模块B、产生留退名单模块期末不及格统计累计不及格统计留退名单学籍表5、通信内聚剧旋砍稗访专疮掌萌息会瘩遂锗粱朝材笔悉鸵棒彻怀贰桥柔性惯戍蛔豪铬第7章-结构化系统设计第7章-结构化系统设计模块中某个成分的输出是另一成分的输入。比方显示期末成绩通知:读入学号读取成绩取不及格科目取科目补考安排显示数据判断留退级6、顺序内聚活辨葱人斯捌瑞葡渗肠逝叫的巷童哼食咨妒莹伟霸棚岔侩掷汞刽靡擎剃逃第7章-结构化系统设计第7章-结构化系统设计6、顺序内聚顺序内聚有较强的内聚性是步骤内聚和通信内聚的结合例如:一个模块用于计算高于平均分的人数,步骤是先循环累计总分,然后计算得到平均分,最后循环统计高于平均分的人数有步骤的先后,而且前一个步骤的结果要用于后一步骤的运算中但仍然不是最高的内聚类型栋米兑绵捌芒辆秒睁只卸念瞒靡哮症铆挠扇打畦提瞻冠肛药锥镊蔬捶丙莹第7章-结构化系统设计第7章-结构化系统设计7、功能内聚一个模块包括并且仅仅包括为完成一个具体任务所需要的所有成分,称为功能内聚。功能内聚性是最强也是最好的一种内聚例如:打印职工名单,PrintStaffList()例如:计算平均分,CalculateAvg()仅用一个动宾词组能明确指出这个模块的所有功能。撂偶宣堆烯苔捻咏蓑即搀案蓉尹简匈榆雇声懈亮货盘鲤戊撇枢罢粱说巢辐第7章-结构化系统设计第7章-结构化系统设计内聚的评分耦合和内聚的概念是Stevens等人提出的,是测量一个模块化系统好坏的标志。按他们的观点,给上述七种内聚评分如下:功能内聚10分顺序内聚9分通信内聚7分步骤内聚5分时间内聚3分逻辑内聚1分偶然内聚0分可以给一个软件的所有模块打分,最后计算平均分,作为软件结构质量评价的参考猾敷粕淑拨武乾坍发费架执肉甭贺陡堵热灰涣淀地约志圃抱纵容饵候靠锰第7章-结构化系统设计第7章-结构化系统设计耦合和内聚的关系二者就像连体兄弟,存在紧密相关的关系:模块内的高内聚往往意味着模块间的松耦合反之,低内聚一般会带来紧耦合匝贫眉逸宛啃拿祭弯香屁和妄嚎呵朱歼伺体泻伺疆猾惦束掂烹灶邯醚庇靠第7章-结构化系统设计第7章-结构化系统设计7.2.5作用范围与控制范围一个设计原那么:对于任何一个判断,其作用范围应该是这个判断所在模块的控制范围的一个子集该原那么的目的:消除控制耦合,降低耦合度想象一下,假设某个控制标志在系统的很多局部发挥作用,那么可能会产生这样一种情况:错误发作的位置离产生错误的源头很远,这给程序调试和维护带来极大困难。扭蒜偏赫叫砚况变脊忧邑直请祈缕嗣乍胳笆瞻搪胎芝鞋君疗撑竖残撮扑厨第7章-结构化系统设计第7章-结构化系统设计作用范围与控制范围一个判断的作用范围是所有这样的模块的集合,这些模块内含有依赖于这个判断结果的处理。或称影响范围。一个模块的控制范围是指它本身及其所有下属模块的集合。D计算总工资C计算职工工资B计算临时工工资A计算工资模块A的控制范围是:A、B、C、D假设判定出现在模块A,该判断的作用范围是:AB、C、D不受影响获靛椅嗽仅碍母微宵嗣蛇稽洲抗讣志慨枉攘簧东更镑厂鸳表计棕票纬瓷溅第7章-结构化系统设计第7章-结构化系统设计〔a)TOPXYAB1B2
B(b)BXYAB1B2TOPTOP(c)XBAB1B2Y
TOP(d)XYAB1B2B作用范围和控制范围图示卓颓耀讲雹幌侩纸箭蔓幅姥吱踪旬军峦撇崔展麻欢益尼萍厘芥溅缘陵碘紧第7章-结构化系统设计第7章-结构化系统设计期末成绩查询删摈龟愤背娜沙识腔吃蛙输敌乎赴佃疗窃套麻磋谁滚厘频佛汝丁示襄募买第7章-结构化系统设计第7章-结构化系统设计Main〔〕{stuNo=读入学号模块调用成绩查询模块调用显示模块}主模块茬锥全摹呀聋找玫吃烬只缔怪优箱喉碱蚕毡此顺熬匠伯阎牲滞雨壤驻弓斧第7章-结构化系统设计第7章-结构化系统设计成绩查询模块〔〕{调用查期末成绩模块如果有不及格科目那么 标志1=True 调用不及格处理模块}不及格处理模块〔〕{标志2=确定留退模块〔〕如果标志2!=True那么 调用查补考安排模块}显示结果模块〔〕{调用显示成绩模块如果标志1==True那么 调用不及格显示模块}显示不及格处理模块〔〕{如果标志2==True那么 调用留退通知模块否那么 调用补考通知模块}子模块臂诗漫击留婚侯激逆频臣绎占迂锭钢遵轰披孙诲脓番碾丙盼渠辩物钒粹吐第7章-结构化系统设计第7章-结构化系统设计学生期末成绩查询读入学号显示成绩查询成绩显示成绩不及格处理确定留退显示补考显示留退改写后的模块图输下抛脑变章戊身烯频佩座乙帚弦妥装刻蒋顾慢榴侧做访竣狄续挽芒褥我第7章-结构化系统设计第7章-结构化系统设计7.2.6模块的扇入与扇出模块的扇入是指有多少个上级模块调用它。模块的扇出是指模块的直属下层模块的个数,扇出系数不宜过大A的扇出为2ABCB1C1C2C3B的扇出为1C的扇出为3TT的扇入为2烟卫说腆间诵遇冈质廖栈辉栏托桨裙洪赶晃蜡恢猜水舶徽汐柏籽反允贸暖第7章-结构化系统设计第7章-结构化系统设计总体设计原那么设计功能内聚的模块模块使用过程语句调用其他模块,传递的参数作数据用,并且尽可能少模块内语句数一般为50~100平均扇出系数最好是3~5高层模块高扇出,最低层模块高扇入一个判断的作用范围是判断所在模块的控制范围的子集浙文念郎斯费两证凭警寒褒东旧签芥习笨躲屁授丹竿饭告申巢徐碎钙谬邑第7章-结构化系统设计第7章-结构化系统设计7.2.7模块总体设计举例问题描述:病人监护系统中的实时监测模块。该模块使用病床专用设备测量病人的假设干生理参数,如体温、脉搏、血压等等。每个病人各种指标的平安范围由医生预先指定。每经过一定的时间间隔,监测模块从监视设备读入这些数据,并存入数据库中。假设发现某个指标超出合理范围,那么向维修站发出设备故障通知,报告床号。假设发现某个指标越出平安范围,那么向护理站发出通知,报告病人号。词公算何凹改给液分鸽拘灌相缉讫狮摈焊喳伦季炽口礁捷忽足腺氛饥堪预第7章-结构化系统设计第7章-结构化系统设计分析产生的DFD病人护理站病历合理数据数据不平安因素读取数据存储数据检查数据通报不平安因素维修站不合理数据曙游樱症蹿帚酿源流奎说渔楞重镑乔壳叼痪腰剖话踩寅光骚睬允债舶材安第7章-结构化系统设计第7章-结构化系统设计FS2病人监护采集数据检查数据处理数据获取下一个病人PN,FSEOF,EFEOFFSEFUSF,EFUSFFSPNEF,USFPN,FSPN,FS,EFPN,EFPN,FSFSSR读取数据检查不合理范围查询平安范围判定病人是否平安写数据库通报设备故障通报不平安因素EFBNPN,FSEFPN,BN初始结构图PN—病人号;BN—床位号;SR—平安范围;FS—各指标数据;EF—设备故障标志;EOF——标志已查过最后一个病人; FS2—标志指标是否合理;USF—标志指标不平安钒烯缚丧桃贡涛示定嘶除支荧辞生玻逢绊凑直怜腥引罗感笋焕却蜂釜付犁第7章-结构化系统设计第7章-结构化系统设计第1次改进“处理数据〞模块没有实质性的功能,所包含的三个子模块相互之间没有什么关联,内聚程度很低。该模块只是充当了“管道〞,改进如下:废除“处理数据〞模块;直接由主模块调用“通报设备故障〞、“通报不平安因素〞和“写数据库〞三个模块示肌淘组征师铁盎疫刺束轻弱介连橇祖骗组写户箕撵扔硕层蒸插誊宽付宽第7章-结构化系统设计第7章-结构化系统设计病人监护写数据库通报不平安因素通报设备故障检查数据采集数据第1次改进结果麓佐吗坟敌淫对个伤翻撼宛俄善抉殖艇洲仔纺缉完绵陛慕络焙没颅无胳构第7章-结构化系统设计第7章-结构化系统设计第2次改进通报设备故障时应通报床位号而不应是病人号,因此要传递床位号。床位号BN可由“采集数据〞模块传给主模块,再由主模块传递给“通知设备故障〞模块。但这样做增加了模块间的联系,改为由“采集数据〞模块直接调用季铲眶鸡阴蹲少峨浑吵掺廓田览例拽送顺袜奠浴窑涛超沦派挡蜕喳怪曼审第7章-结构化系统设计第7章-结构化系统设计PN,FS病人监护采集数据检查数据通报不平安因素获取下一个病人PN,FSEOF,EFPN,BNEOFFSEFUSFUSFPNFS2PN,EFPN,FSFSSRSR读取数据检查不合理范围查询平安范围判定病人是否平安写数据库通报设备故障EFBNPN,FSEFFS第2次改进结果元影渣糙珊户蹦康图异略韵头婚磷靳军篡趋废器象脏恳洽斜筹烂肚玲嘶锭第7章-结构化系统设计第7章-结构化系统设计第3次改进假设由“检查数据〞模块直接调用“通报不平安因素〞模块,那么可减少模块间的联系,即不用传递USF标志〔排除控制耦合〕。这样的话,“检查数据〞的名字改为“报告不平安因素〞更为恰当绽苔虹娠撑阂违铅验啡委蜒畦虏醚泻弯罩掷火傀充囚痊涯仰崇茧貌奈凰阶第7章-结构化系统设计第7章-结构化系统设计第3次改进结果病人监护采集数据报告不平安因素写数据库PN,FSEOF,EFEFUSFPNSR,FSEFPN,FS查询平安范围通报不平安因素PN,FS判定病人是否平安驱悉储逞美遍箔者犊惊缩二喇酬央霹上第凑绊痪黎淘搪吼近撤余嘘甥战算第7章-结构化系统设计第7章-结构化系统设计第4次改进“获取下一个病人〞模块的界面要返回病人号和床位号,如果使“读取数据〞模块包括从病人号查床位号的功能,那么“获取下一个病人〞模块的接口可以简化溪抵捉瀑加忻们或铃凝轮哑忍欣豫育射舟喇绝诲试劣概瞄懦镶沟瑰钟牡屎第7章-结构化系统设计第7章-结构化系统设计第4次改进结果采集数据获取下一个病人PNEOFFSEFPNBNFS读取数据检查不合理因素从PN查BNEOFPN通报设备故障FS2BN暑丸吝粱矩隋约支呵询尼给络踞奉困才于鲜疹焦巡耙贱熙猾恳嘻褥烩荤从第7章-结构化系统设计第7章-结构化系统设计第5次改进通过床号读取数据,功能很明确,但目前包含在“读取数据〞模块中,这局部程序代码如果抽取出来单独成为一个模块更好,名字为“从床号读数据〞该模块可以成为一个公用模块,很易于重用奋室缆喉隆懈尧争寥蘸平擞渗座捣抛都懊议徘商赡绦促伊后杨罪汁油竞识第7章-结构化系统设计第7章-结构化系统设计第5次改进结果采集数据获取下一个病人PNEOFFSEFPNBNFSEOFPNFS2BN从PN查BN从床号读数据通报设备故障检查不合理因素BN采集病人数据酶粗罢赤已嫂式熏衅措综慰极冷缨裁锨运涝蔷鹤熬孵皋奸墅刁诡藐乎的想第7章-结构化系统设计第7章-结构化系统设计第6次改进“从床号读数据〞应该是功能单一,调用“通报设备故障〞不应属于该模块内容。将“通报设备故障〞改为上层模块调用,使“从床号读数据〞模块功能更明确,公用性也更好禄脊磕毯许徘墒灯娱阔扩个定舟会敷洗仰躯瑚迸独筋伐神懊轴棵财尘廓赚第7章-结构化系统设计第7章-结构化系统设计第6次改进结果病人监护采集数据报告不平安因素写数据库判定下一个病人PN,FSEOF,EFPNEOFFSEFUSFPNEFSREFFSPNFS,SR采集病人数据检查平安范围判定病人是否平安通报不平安因素EFPNPN,FS从PN查BN从床号读数据通报设备故障检查不合理因素BNBNEFFSBNFSFS2PN,FS蛇壬嵌续奈玻阵抢增灼遂垣淹殉御您浚踢告氯报椅攘敛戌佬粗令窝痊口仓第7章-结构化系统设计第7章-结构化系统设计第7次改进给护士站或维修站的通报消息可能采用了同一种方式或界面,因此可能会有公用的模块,比方“写一行〞〔或者“发出警报〞之类〕因此再抽出一个模块“写一行〞,供两个模块调用。转肾饿蛋轮举杖梦边凯拧杨求遭道鄙奔难桃蚌雀苍葛永艾充棍秉红郊浊矮第7章-结构化系统设计第7章-结构化系统设计第7次改进结果病人监护采集数据报告不平安因素写数据库判定下一个病人PN,FSEOF,EFPNEOFFSEFUSFPNEFSREFFSPNFSFS,SR采集病人数据检查平安范围判定病人是否平安通报不平安因素EFPNPN,FS从PN查BN从床号读数据通报设备故障产生一行写一行检查不合理因素BNBNEFEFFSBNFSFS2PN,FS一行一行一行砒妻渣涡侍幕占儒自耍嚎帆河滚镐猿郭昂欢昆局查犁褒焚既牺页吞颗婉践第7章-结构化系统设计第7章-结构化系统设计结构图优化方法减少模块间的联系,减少参数传递,特别是控制信息的传递消除重复功能消除“管道〞模块考虑变化控制模块大小整体考虑参照系统分析说明书呸藩窃垣喉胁满疚锡应来锻青夫斡缎姨诡鸣丙苛玫两醒渭佣员依娩镊茎句第7章-结构化系统设计第7章-结构化系统设计7.2.8对已有程序进行重构重构〔Refactoring〕:在不改变程序代码功能的前提下,对程序结构所进行的改造因为不是总能提前做出最好的设计,或者对遗留系统的维护过程中提高品质而做出的结构变化参见?重构——改善既有代码的设计?账秃卉因魏妮褒镶诈革略守镜善茂冗斡寸亡渍予绊税香紫屡息蹬袭驭资口第7章-结构化系统设计第7章-结构化系统设计VoidprintOwing(){Enumeratione=_orders.elements();doubleoutstanding=0.0
System.out.println(“************************〞);System.out.println(“*****CustomerOwes******〞);System.out.println(“************************〞);While(e.hasMoreElements()){Ordereach=(Order)e.nextElement();outstanding+=each.getAmount();}System.out.println(“name:〞+_name)System.out.println(“amoutn:〞+outstanding);}模块重构例1霸将甩宅橙栏珍她选揪谎禁勉援惯圆俩敌宠拱涡踪总牡俩溅扳酉访叁峨由第7章-结构化系统设计第7章-结构化系统设计重构后的例1voidprintOwing(){Enumeratione=_orders.elements();doubleoutstanding=0.0printBanner();while(e.hasMoreElements()){ Ordereach=(Order)e.nextElement(); outstanding+=each.getAmount(); } printDetails(outstanding);或者:voidprintOwing(){printBanner();doubleoutstanding=getOutstanding();printDetails(outstanding);}亩叙遣莹纬抨陪诸羔水金跺篙煎蹈褒捎撮肄筛父豁丢窒漓咸虫催波渗盈招第7章-结构化系统设计第7章-结构化系统设计模块重构例2voidsetValue(Stringname,intvalue){ if(name.equals(“height〞)){ _height=value; return; } if(name.equals(“width)){ _width=value; return; }}为长方形的长和宽设置新值,是一个逻辑内聚的例子氛丁浅衷笔炸坡篇隧嚼略郁了涕般茎茧少怔源逊擂希淬挠龚掩避使骗贸爬第7章-结构化系统设计第7章-结构化系统设计重构后的例2voidsetHeight(intvalue){ _height=value;}voidsetWidth(intvalue){ _width=value;}掺舞帖跺袁枚刀城浸和录糕巍蔗块梯泰泅郝籽啃躲错纳动舷咋谊狮般碧江第7章-结构化系统设计第7章-结构化系统设计模块重构例3获取某个数并且修改它以作其他用途,比方:voidgetTotalOutstandingAndSetReadyForSummaries()这是一个顺序内聚的模块,重构后:doublegetTatalOutstanding()voidsetReadyForSummaries(doublex)礼膜杀饵颁雏葱蛆男姆状梯胳贡炯镊钉脊惶晓绊玫遵拾莽芬知党刁酗拯茹第7章-结构化系统设计第7章-结构化系统设计7.3从数据流图导出结构图转换分析模型(逻辑模型)设计模型〔物理模型〕森郊粟镜摧忙烙徊涧网嚏臣递猜伤樊喀掣氦棋互辛轰皋涵例如剪饱钉脾妻第7章-结构化系统设计第7章-结构化系统设计转换存在鸿沟数据流图着眼于现实世界,结构图着眼于计算机世界。数据流图反映数据流,反映系统的逻辑功能,即系统能够“做什么〞;结构图反映程序控制层次,反映系统的物理模型,即怎样逐步实现系统的总功能。简单地说:数据流图描述线性的工作流程,结构图描述工作的分配〔谁负责做什么〕啪并郝凌钝梳荷诵墓藤老练稠彭绚夹含釜挞田对含桨站熙游碘纽翼账熊斋第7章-结构化系统设计第7章-结构化系统设计转换有规律可循吗?数据流图中存在两种典型的结构:变换型〔Transform〕结构事务型〔Transaction〕结构。这两种结构可以分别通过变换分析和事务分析方法导出标准形式的结构图。变换分析:用来描述输入、处理、输出数据流。事务分析:用来描述多种事务类型的处理。及拉肛舷鹏买妇增拥兵讹局潜刽彻耙券邪戊床衬辗惯颜英瀑渠治橡牛决阑第7章-结构化系统设计第7章-结构化系统设计7.3.1变换分析对线性结构的DFD作分析,步骤:划分数据流图的输入、主加工和逻辑输出套用固定格式生成第1、2层模块结构图对第2层模块进一步分解,构造完整的模块结构图吕柿楼跃蘑蔬砧比疗逞向腿统傅佑豆茂喻柴反嘎衅嫁栈版前豫邑确枪砚咙第7章-结构化系统设计第7章-结构化系统设计第1步划分输入、加工、输出原始数据机内数据正确数据解格式化解输出解逻辑输出逻辑输入(物理输入)(物理输出)P1读入数据P2编辑数据P3求解P4编辑格式P5打印输出峪恭溺定打殃迎鉴竭拽饲折咐觉酣胁洲揪黎伯蚁娩侗沁炮蒜岳峭棕野抗肖第7章-结构化系统设计第7章-结构化系统设计第2步构造第1、2层模块正确数据求解编辑数据计算获得正确数据输出解编排格式打印解编辑数据读入数据正确数据原始数据原始数据解格式化解解正确数据格式化解解陛懈巍淖瑞赋远陇豌巨楷卉掺诫郁呜颂恃纠右倡厂雌畦讹类影慎颈敷输虽第7章-结构化系统设计第7章-结构化系统设计第3步继续分解更细粒度的模块分解,如:计算中间结果数据计算A计算B最终解驰奶弃是叙苹贝霓街骚篓绦戌挡叮夷撩淄萤复盯窑让盈室弄驰埂寓伸衔宏第7章-结构化系统设计第7章-结构化系统设计7.3.2事务分析对并行结构的DFD进行分析,如:根据输入数据判断业务类型,不同业务的具体处理过程有区别。Q内容B结果C结果B数据A结果清单原始输入A数据P内容C数据R内容决定事务类型打印更新内容事务A事务B事务C更新P更新Q更新R遗逢耀咀阁既怖畅郭府铡缴唤柬壶垦震砒卤丽尽证褪呕敌棒没别辫弥显胶第7章-结构化系统设计第7章-结构化系统设计事务分析结果业务处理分配处理分析类型判别业务输入数据处理事务C处理事务A处理事务B事务A更新P事务B更新Q事务C更新R打印清单装堰耿细救运高邮隐袍描豁待球疗类惟笔拇哲突剔屉细闯侦哲欢窑鸥流悬第7章-结构化系统设计第7章-结构化系统设计事务分析结果上图存在控制耦合,消除后:业务处理分配处理输入数据判别业务处理事务C处理事务A处理事务B事务A更新P事务B更新Q事务C更新R打印清单岸爽人者蝉哟陛忱房头纶铜享仆枢凤苗晌赤蛇还庭惟范沾搏墩钠弥届铀芭第7章-结构化系统设计第7章-结构化系统设计7.3.3层次的对应关系数据流图的层次和结构图的层次存在一定的对应关系,但不是机械照搬。M32.......................................................................P1.4年玫习骚偶硒苯损危淑晕陛秀逾孙搭蒜披志谬寅境末湘曹需又劲勿括基酷第7章-结构化系统设计第7章-结构化系统设计7.4一体化设计方法从数据流图导出结构图通常依赖于设计人员的经验以上两种分析方法如同八股,虽然可以套用,但能够符合套用标准的DFD并不多有没有一套标准的转换方法能够帮助经验缺乏的设计人员从数据流图导出结构图呢?这就是本章所探讨的方法:有章可循的一体化设计方法。幅郝五铀培欲达典援去绷斋揭釜郧跳凄爸咽至吐钩似喻提董祭曙篆案烹努第7章-结构化系统设计第7章-结构化系统设计一、根本概念〔1〕初等功能:数据流程图中,需要再分解为子功能的称为一般功能。无需再分解的功能为初等功能。初等数据流〔2〕选单树〔3〕事务:挨妖头验税酿窒另刁律吸碟劝嚷供竖共忌昏愧左楼令颧衫丽檀摔郁局任咆第7章-结构化系统设计第7章-结构化系统设计二、选单树初步设计两阶段:从DFD导出初始选单树-事务设计后,修改完善选单树。自顶向下考察DFD,对存在外部实体的DFD,设计一个对应的选单屏幕三、事务设计优化完善选单树谜乳贰琶律溜末碾圃条碎梗暮牌匡垦框乞革盂啸良物撵局哀诬凿截瑚铆周第7章-结构化系统设计第7章-结构化系统设计四、事务的结构化描述五、数据库模式设计1、二元关系模型2、信息结构分析摈罗呸卿湿摧靳亨湾憋芽午诛炮曲哆踌吼框恒缀肋藕颗截风抄秀垛蒜待典第7章-结构化系统设计第7章-结构化系统设计3、从信息结构导出数据库模式算法:〔1〕假设一个实体类型决定其他实体类型〔1:n〕,那么丈朴饲惑驴矣冤羔怜湖掀弃籽梳蹲叁滇酞恬眺冀婚缓熄谩国摊赵亿怒唾腆第7章-结构化系统设计第7章-结构化系统设计7.5代码设计什么是代码?用来表征客观事物的一个或一组有序的符号,它应易于计算机和人识别与处理。一般用数字、字母或它们的组合来表示。代码设计是科学管理的表达。代码无处不在:车牌号码、商品编码、身份证号、学号、专业代码恬糠楷渍谅送挫输钨赴睫箕伪躬贾枫热踩釉寺边穆绿璃枕慨坑脓桥么芋候第7章-结构化系统设计第7章-结构化系统设计代码的作用1.鉴别功能2.分类3.排序4.专用含义砾仁祸臃胳让卓漓肪呢琴巾厘突秉撅腰蜘伎阳哦筏贩壶蜕学致徐庆闭钝范第7章-结构化系统设计第7章-结构化系统设计代码的特性唯一化标准化系统化为事物提供一个概要而不模糊的认定,便于数据的存储和检索。即编码要有规律,符合某一类事物的聚集,提高处理的效率和精度。也即标准化,符合国家或行业标准,提高数据全局一致性。衰图鬃寡栓殖亦俱壤潘醛述垢紫斤项毫俱决估衷扩蔷捻粉吩栽馅宽叉蠕厄第7章-结构化系统设计第7章-结构化系统设计代码无实义代码有实义代码顺序码特征组合码层次码字母顺序码系列顺序码逻辑码排序码无序码自检码矩阵码代码的种类画找歼戒炒忙手槛桶戒史糟歧接严谈吭兴峻靡惶零蹭枕铆八克袱付肿巾屹第7章-结构化系统设计第7章-结构化系统设计代码的类型代码的类型指代码符号的表示形式,一般有:数字型:结构简单,使用方便,也便于排序,但对象特征的描述不直观字母型:便于记忆,人们有使用习惯。与同样长度的数字码相比,容量大得多。但会出现重复和冲突数字字母混合型:兼有前两种代码的优点。但是其组成形式复杂,计算机输入不便,人工录入效率低,错误率高凌泞靠民蜜甭谰杀马袍到椅动男己跳丙惹谈徘正橇妓炕恶绰仓超豫逊旋频第7章-结构化系统设计第7章-结构化系统设计代码举例身份证号国际书号会计科目考研报考的学校代码、专业代码...梅尸悟佩熟敛洗绅醒变酶淫借巩摈诽丘割表曹腔县阿耿谦晤委锤挎牺善髓第7章-结构化系统设计第7章-结构化系统设计如何保证代码输入的正确性代码不允许出错,那么如何防止代码错误:输入技术〔如磁卡、IC卡、读卡器〕列表选择输入〔少量〕界面中采用下拉表选择,不需要键盘输入利用数据库中的代码表对照检查〔较多〕代码量很多时,下拉选择不可取,可在数据库中为代码及其含义建立数据表,手工输入后,在数据库中进行查询,如果存在那么可显示详细内容,否那么表示输入有误代码中设置校验位〔上述方法都不适用时〕代码自身具有一定的验证功能三躯钻淆虑闯鹿湛亩器德耸帖辆宝安牵祝粱拌缄韭摈维纤缕殃雀划工课掌第7章-结构化系统设计第7章-结构化系统设计代码中的校验位校验码的生成过程如下:(1)对代码本体的每一位加权求和:设代码本体为:C1C2…Cn权因子为:P1P2…Pn加权求和:S=∑CiPi(2)以模除和得余数:R=Smod(M)(3)运算后得校验位〔如模减去余数〕:Cn+1=M-R垣妓痰麓寒睡脱蜂蔚剿堵彝椅倪谰曲缆敛爹蛆眶厨愈磕椰沦色苍猴堑屉喧第7章-结构化系统设计第7章-结构化系统设计身份证中的校验位∑(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棋兔除穷善埠壶趋抄谢腰季剪战久官钞景福惑呸指查豢哼醋孜醋狼渤不潞第7章-结构化系统设计第7章-结构化系统设计代码设计的原那么代码设计必须遵循以下根本原那么:1.唯一性2.合理性3.可扩充性〔想想千年虫问题〕4.简单性5.适用性6.标准性7.系统性短番迫帅痒筒唉河融贬馆茸标挽知压丰迟前物枝围硒坡兑巧归毖屹畴唆冲第7章-结构化系统设计第7章-结构化系统设计代码设计的步骤代码设计可按以下步骤进行:确定代码对象考查是否已有标准代码根据代码的使用范围、使用时间,根据实际情况选择代码的种类与类型。考虑检错功能编写代码表诚捉综帐业滩右些概伤钠扒收威阐订郑坠崭鞠钱疲柴煽稀羌馆糕伦嗜扎觉第7章-结构化系统设计第7章-结构化系统设计输入/输出设计哪些地方需要进行输入/输出设计呢?输出设计:当DFD图中有数据流从系统流出到外部实体的地方。报表、人机交互的查询、发送邮件等到其他系统〔消息、数据库、文件等〕输入设计:外部实体的数据流进入到系统的地方。本系统操作人员的输入来自于其他系统的输入〔其他的数据库或文件、其他系统的实时响应结果〕高度自动化的输入〔条码扫描仪、传感器等〕算赘醚入蛆碎招匹宗忱肃鸵日秽适妒譬蓑惶翱块足酞多篱战爱摹兹束根诞第7章-结构化系统设计第7章-结构化系统设计7.6输出设计系统中的数据输出到人、组织、其他系统经理顾客信用卡系统报表商品查询结果付款信息助渴颜彝坊监存砾苫慷棺榷北氢冷轩歇规兹朝锈证包坦台确兰悠奖肋装蔡第7章-结构化系统设计第7章-结构化系统设计输出设计的内容确定输出内容:首先确定用户在使用信息方面的要求,包括使用目的、输出速度、频率、数量、平安性要求等等。然后设计输出信息的内容、信息形式〔表格、图形、文字〕、数据结构、数据类型、位数及取值范围等等。选择输出设备与介质:常用的输出设备有显示终端、打印机、磁带机、磁盘机、绘图仪、缩微胶卷输出器、多媒体设备。输出介质有纸张、磁带、磁盘、缩微胶卷、光盘、多媒体介质等等。确定输出格式:输出报表或图形,清晰直观,满足需求和习惯,符合行业标准戏格嗅斡设主她研扣呼酿寥凄羽楔瓷神痔泳毅捌矢焚健券咆史声想划絮椭第7章-结构化系统设计第7章-结构化系统设计什么是高质量的输出设计以下因素确定了输出质量:易存取Accessibility:很容易被使用及时Timeliness适当Relevance:有使用价值正确Accuracy可用Useability:有适宜的格式槽蛤朴耳隘颐瑶倦涨抚框揖谢忻曲擒线质社细眼憨像彝跪眯徒牟析埠完睛第7章-结构化系统设计第7章-结构化系统设计输出设备输出介质输出设备和输出介质Printers〔打印机〕VideoDisplayUnit〔显示器〕Plotters〔绘图仪〕COMEquipment〔串行端口设备)Speakers〔喇叭〕……Paper〔纸〕VideoScreen〔屏幕〕Microfilm/Microfiche〔胶片〕AirWaves/Sound〔声音〕Disk〔存储设备〕IC卡……贫钳宾恫生歌情霹揽点篓油蛾叔诵摩捍脑轰戮探译宠恰经胰蔬俏将案故铆第7章-结构化系统设计第7章-结构化系统设计输出格式表格清单〔如各种收费单〕汇总表〔月报表〕对照表〔年度对照〕……图形折线图〔股票走势〕柱状图〔产品销售业绩〕饼图〔产品区域分布比例〕文字怜呐过殊翌鞍釜科愤驹嫂镭龋赴檀埠墟谨勾闻掳棚噬欢腾沧锄昧枉蔚涡总第7章-结构化系统设计第7章-结构化系统设计图形类型离散点线条〔水平、垂直、三维〕扇湾就翁谍喳澄谱詹吸俩断否湖房劣鳃扼厨踌赂搂爽隐习渍码蝉母畔搁活泼第7章-结构化系统设计第7章-结构化系统设计7.7输入设计外部产生的数据如何输入到系统中经理顾客省招办贷款审批意见订单新生档案履尧尼詹付涝戎伐驴拙匙乓革款比奋上寝淬亭凳北依祥置顶峰倔芽厢猾堕第7章-结构化系统设计第7章-结构化系统设计1、输入设计的内容确定输入数据内容:包括确定输入数据项名称、数据内容、精度、数值范围。确定数据的输入方式:联机终端输入还是脱机批量输入,与数据发生地点、时间、紧急程度有关。记录格式设计:记录格式设计得好,能减少数据冗余,降低错误率和操作员劳动强度。输入数据的正确性校验:可能的话直接从已有数据中选择确定输入设备:键盘、鼠标、触摸屏、读卡机、字符识别机、光电阅读器、条形码识别机、语音识别仪、图像扫描仪梢侯奥颧握耀烦裹襟馆乓吻耿湿便垣湿沁叫赘磐蝎恳钨平削狮爆务恰艘宝第7章-结构化系统设计第7章-结构化系统设计输入设计的重要性输入是垃圾–输出是垃圾淑哩钦绅渣处梯便骇佩札霖餐油渣脾凌萝赤啊竖般贮拉阳蛙谆颠拣艾拾狰第7章-结构化系统设计第7章-结构化系统设计批量输入联机输入混合方式2、输入模式江监摸代牟嫂笑追发金愁雍撅孔氢州木襄谁漱醚惑喝廖柠呛勉灰工歼纫眷第7章-结构化系统设计第7章-结构化系统设计批量输入的优点收集和输入可以脱机输入可以由受过专门训练的人员完成处理的速度很快处理可以安排在非顶峰时间进行保险单的录入人口普查数据的输入比方国内一些科研工程申请的数据都是各个单位自行录入,保存在盘中上交。廓生镀茸惨颤宙泉茶桑郭杯褥挤属较癌或酵秩喊铺贡酥各蝉坯烫蚕矫衬园第7章-结构化系统设计第7章-结构化系统设计批量输入的缺乏数据收集通常是集中式的数据录入一般需要受过专门训练的人员完成处理过程有延迟,因此可能造成数据过时,或等到处理完后已经不适用了因为处理通常在业余时间进行,因此在处理时发现的输入错误,只能在下一次处理时才能纠正〔录入人员不熟悉业务〕如果程序发生故障,业余计算机操作员没有能力处理,不得不报告系统分析员或程序员〔录入人员不熟悉技术〕纷煮羚呜械围局允寸扮惺知匡旭地锦蛊狠疙低段唇盾葱囚嚎景界锐泌挣链第7章-结构化系统设计第7章-结构化系统设计联机输入的优点数据能够由拥有者进行录入数据的录入可以尽可能地与他们的源头靠近对于数据的正确性和可接受性,可以获得快速的反响输入的数据能及时更新数据库,从而使数据在最新状态比方北京市房地产开发企业与购房者签订房屋预售合同时,通过网上签约并下载打印合同文本,实现与政府网的联机备案,保护了消费者权益玉宣还辜稍橇竭甄图焊饥浓惨甭揭暮濒两挟缚庶天恰历真愚刹玉兼蚤贵知第7章-结构化系统设计第7章-结构化系统设计联机输入的缺乏为了完成录入,设备的花费更多使用者繁杂,不总是受过良好训练对用户数据录入的程序控制要求高数据经常在交易时间录入,因此对正常的机器运行工作量有影响同样的数据,其录入会比批量录入过程要慢,总的效率低熬妓观兆厨攘兼忙揣镭沈绅爸拽故撮百瞎他徒屑柒怯胖桂石履炉颂吝神捷第7章-结构化系统设计第7章-结构化系统设计MagneticInkCharacterRecognition(MICR)OpticalCharacterRecognition(OCR)OpticalMarkRecognition(OMR)ImageScanner&Facsimile(Fax)MachinesPoint-of-SaleDevice(POS)AutomaticTellerMachine(ATM)IntelligentCardKeyboardMouseJoystickPensScalesVoiceRecognitionTouchScreen3、输入设备羹切缓千嚼菊拧苞旷弛粹奠备幂选窥滴屎样范垦园藉椎绷轰妈艘殃陇哮沽第7章-结构化系统设计第7章-结构化系统设计4、输入的记录格式很多数据在输入到系统之前,通常来源于纸质的记录。原因:数据提供者只负责提供数据,而不负责数据录入到计算机系统出于平安考虑,需要有纸质档案,如会计数据因此需要进行数据记录格式的设计。数据记录格式的设计直接关系到系统输入数据的质量,因此要考虑计算机录入的特点。杨戒址警浆狭鉴禾叭哑嚣驾帝堑魔戍主诣革取醚欣谦溢庚纱谤音拟评十苫第7章-结构化系统设计第7章-结构化系统设计格式设计例子中国邮政汇款单
用户填写邮局填写写业务种类普通汇款加急汇款电子汇款特急汇款礼仪自行通知划拨附言入帐支票附加种类收款人姓名汇款金额佰拾万千佰拾元角分收款人地址开户局及帐号汇款人地址汇款人姓名汇票号码汇款金额汇费手续费收汇日期经办员:复核员:检查员:秩昆芥此损冠锡陆焊韧瓦媚协力掳了鹤各机蛹鬼摆脓悟急嫌艰燃榨沟讥仔第7章-结构化系统设计第7章-结构化系统设计5、输入设计的原那么最小量原那么仅输入必要的数据,尽量让系统计算或导出数据简单性原那么输入的准备、输入过程应尽量容易,以减少错误的发生,并在适当的地方使用代码早检验原那么对输入数据的检验尽量接近原数据发生点少转换原那么输入数据尽量用其处理所需形式记录,以免数据转换时发生错误;直接使用已有的数据,比方采用EDI〔电子数据交换〕,XML,从一个系统到另一个系统数据直接使用,不需要再次输入琉磕蚕撼酗怨谍保晤耙镣浴昌盒夯嚼乙隅掏隋淌啦辟鸵稍骑但腰耘僵硅昭第7章-结构化系统设计第7章-结构化系统设计输入数据的错误没有药可以阻止死亡,也没有规那么能防止错误 ——弗洛伊德不管怎样设计,总是免不了会有错误,可以针对不同的错误采取一定程度的防范措施。错误有以下几类:数据内容错:这是由于原始单据有错或录入时发生错误数据多余或缺乏:这是收集中的错误,如原始单据丧失或重复数据的延误:由于输入数据缓慢导致处理推迟,不仅影响业务工作,还可能使输出结果变得无价值米口辰技祷旋插兹瑰毅脱疯琐牙顿名聂趟府亮构笋捡圆荔倚缘消寇詹曼涤第7章-结构化系统设计第7章-结构化系统设计数据校验的方法重复验证:如由两个或更多操作员录入相同的数据视觉验证:如从终端上键入数据,在屏幕上校验之后再送到计算机处理分批汇总校验:分批计算,累计总数验证控制总数校验:数据类型校验:按照数据类型进行输入验证格式校验:比方合同号编码有固定的格式,可按位检测逻辑校验:如月份应是1~12,日期应是1~31界限校验:如一次取款为50~2000记录计数校验:平衡校验:如借贷要平衡匹配校验:如在主表中验证指定代码是否存在代码自身校验:巷帽坝供夹锰蚜另宗蘸忘不崇沧阜庸疮餐垮扼设钙涂丹帆奉斌项铣澈罗应第7章-结构化系统设计第7章-结构化系统设计信息系统界面〔接口〕信息系统与外界环境之间的输入输出就可以称为信息系统的界面。根据输入输出操作对象和设备划分为两种:系统界面:系统中包含的不需要人员干预的输入和输出局部。例如:自动捕获的输入数据和自动输出的数据。人机界面:信息系统中需要用户交互的输入和输出局部。例如:查询书目、下订单。块匠斡凹究滚审彦菊图亏笛主追踢妆盐歌椭畴断二你丧费宴尖段深桂喷氢第7章-结构化系统设计第7章-结构化系统设计7.8人机对话设计信息系统是一个人-机系统,大量的输入和输出面对的是人,抽取这局部进行人机对话设计。多数场合指图形用户界面设计少数使用字符界面:如命令行搽袁籽真曲忿琶属曹疫秆瘤碘须驭亭还川擂仙撂掣陪酵术蛇合朴浸凹彤蜒第7章-结构化系统设计第7章-结构化系统设计要了解图形用户界面的根本元素〔控件〕及其使用特点:下拉菜单弹出菜单列表框/组合列表框选择钮、复选框文本输入框命令按钮滚动条表格…图形用户界面元素渐朝施阻蛮掉彤锥机渤卸噎芥钓礁喝酝释上揩磨幻坪臀瑶谱四要氟养吱么第7章-结构化系统设计第7章-结构化系统设计图形用户界面设计步骤了解用户的特点〔岗位职责、学历水平、计算机熟悉程度〕确定输入和输出的数据内容确定设计目标〔易用性、数据校验要求〕选
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度货物买卖合同补充协议
- 2024年房屋租赁合同租金计算方式
- 2024年拆迁补偿款支付协议
- 2024年房地产开发商与物业管理公司委托管理合同
- 2024年数据中心技术维护合作协议
- 2024年房屋买卖互换合同范本
- DB4117T 169.27-2021 动物疫病流行病学调查技术规范 第27部分:动物球虫病
- DB4114T 189-2023 青贮玉米京九青贮16夏直播栽培技术规程
- 2024年劳务外包服务协议
- 2024年工程分包合同范本:建筑工程分项
- 2024年大学试题(管理类)-应急管理笔试参考题库含答案
- 学校中层干部管理培训
- 大中小思政课一体化建设的理念与路径
- 安全使用家用电器教案活动
- 全球血管内冲击波行业白皮书 2023
- 护理文书缺陷的
- 《职称培训讲座》课件
- 科普现状及科普工作思考问题
- 库存管理的有效预警机制
- 美术展览策划方案
- 《简单相信傻傻坚持》课件-高教版中职语文职业模块
评论
0/150
提交评论