张张楠楠1结结构化系构化系统设计统设计学学习报习报告告一、 总体设计-处理功能的总体设计-数据流图导出结构图二、 详细设计-代码设计-输入输出设计-人机对话设计-模块详细设计-数据库设计三、案例分析2结结构化系构化系统设计统设计的基本思想的基本思想3自顶向下,逐步求精的策略目标明确,成果规范的阶段层次清楚,体系严谨的结构形象直观,清晰易懂的表达一、一、总总体体设计设计4处理功能的理功能的总体体设计 - -模模块结构构图设计 - -模模块的耦合与内聚的耦合与内聚 - -作用范作用范围与控制范与控制范围 - -模模块的扇入与扇出的扇入与扇出 数据流数据流图导出出结构构图 - -从从变换型数据流型数据流图导入初始入初始结构构图 - -从事从事务型数据流型数据流图导出初始出初始结构构图- -混合混合结构构 模模块结块结构构图设计图设计1.模1.模块的的图形表示形表示一般模块:用矩形表示,模块名写在方框内。
叶模块:不再分解、不再调用别的模块的基本模块,必要时表示成下横为双线的矩形预定义模块:作为特殊叶模块的公用模块,例如程序库中的子程序必要时表示为上下横为双线的矩形 模模块结块结构构图设计图设计6a) a) 模块图形模块图形 b) b) 叶模块图例叶模块图例 c)c)预定义模块图例预定义模块图例编工资表编工资表打印报表打印报表模模块结块结构构图设计图设计2.模块的调用表示一般调用:用 表示模块间的调用关系,箭尾部分是调用模块,箭头部分是被调用模块选择调用:用 表示一个模块中包含着选择判断,根据判断结果确定调用模块循环调用:用 表示一个模块中包含着循环处理功能在不需要特别强调时,通常不画出循环符号a)a)一般调用一般调用 b)b)选择调用选择调用 c) c) 循环调用循环调用 A AA AA A模模块结块结构构图设计图设计模模块结块结构构图设计图设计3.模块间的通讯结构表示 模块A有条件地调用B或C,并无条件地调用D在调用B时将数据①、②传递给B从C返回时将数据③、④带回给A①①②②③③④④ABCD2024/8/1410接口成本接口成本成本成本模块数量模块数量单元模块成本单元模块成本软件总成本软件总成本模模块块数量和数量和软软件成本件成本模块划分不是越多越好模块划分不是越多越好–模块数多可以降低开发每个模块的工作量,同时增加了设计模块接口的工作量。
模块数多可以降低开发每个模块的工作量,同时增加了设计模块接口的工作量–划分的模块数处于最小成本区时,开发系统的总成本最低划分的模块数处于最小成本区时,开发系统的总成本最低–目目前前还还不不能能精精确确地地算算出出M M的的数数值值,,但但在在考考虑虑程程序序模模块块化化的的时时候候,,总总成成本本曲曲线线仍仍有指导性有指导性M(工作(工作量)量)模模块块的耦合与内聚的耦合与内聚耦合:模耦合:模块和模和模块之之间的的联系程度系程度内聚:模块内部各元内聚:模块内部各元素之间的联系程度素之间的联系程度数据耦合数据耦合特征耦合特征耦合控制耦合控制耦合公共耦合公共耦合内容耦合内容耦合功能内聚功能内聚信息内聚信息内聚通信内聚通信内聚过程内聚程内聚时间内聚内聚逻辑内聚内聚偶然内聚偶然内聚几种耦合方式的比几种耦合方式的比较较,如下,如下图图所示:所示: 数据耦合特征耦合控制耦合 公共耦合内容耦合 低低 耦合性耦合性 高高模块独立性模块独立性 弱(功能分散弱(功能分散) ) 强强 (功能单一)(功能单一) 模模块块的耦合的耦合模模块块的耦合的耦合模模块间4种耦合方式具体比种耦合方式具体比较模块间耦模块间耦合形式合形式可读性可读性错误扩散错误扩散能力能力可修改性可修改性通用性通用性数据耦合好弱好好控制耦合中中中中公共耦合不好强不好较差内容耦合最差最强最差差模模块块的耦合的耦合在在对一个系一个系统进行模行模块设计时,,应遵循以下原遵循以下原则:: 模模块间尽量使用数据耦合尽量使用数据耦合 必要必要时才采用控制耦合才采用控制耦合 对公共耦合公共耦合应限制耦合的模限制耦合的模块数数 坚决不用内部耦合决不用内部耦合几种内聚方式几种内聚方式的比的比较较,如下,如下图图所示:所示: 高高 内聚性内聚性 低低模块独立性模块独立性 弱(功能分散弱(功能分散) ) 强强 (功能单一)(功能单一) 模模块块的内聚的内聚功能内聚 信息内聚通信内聚过程内聚时间内聚逻辑内聚偶然内聚模模块块的内聚的内聚聚合形式的具体比聚合形式的具体比较聚合形式聚合形式可读性可读性可修改性可修改性通用性通用性联系程度联系程度功能聚合好好好 高 低顺序聚合好好较好通信聚合较好较好不好过程聚合较好较好不好时间聚合不好不好最坏逻辑聚合最坏最坏最坏偶然聚合最坏最坏最坏模模块块的内聚和耦合的关系的内聚和耦合的关系内聚和耦合就像连体兄弟,存在紧密相关的关系:模块内的高内聚往往意味着模块间的松耦合。
反之,低内聚一般会带来紧耦合作用范作用范围围和控制范和控制范围围一个设计原则一个设计原则::对于任何一个判断,其作用范围应该是这个判断所在模块的控制范围的一个子集 该原则的目的该原则的目的:消除控制耦合,降低耦合度一个判断的作用一个判断的作用范围:范围:所有这样的模块的集合,这些模块内含有依赖于这个判断结果的处理或称影响范围一个模块的控制(调用)一个模块的控制(调用)范围:范围:指它本身及其所有下属模块的集合19作用范作用范围围与控制范与控制范围围 D D计算总工资计算总工资 C C计算职工工资计算职工工资 B B计算临时工工资计算临时工工资 A A计算工资计算工资模块模块A A的控制范围是:的控制范围是:A A、、B B、、C C、、D D假如判定出现在模假如判定出现在模块块A A,该判断的作用,该判断的作用范围是:范围是:A A 、、B B、、C,C,但但D D不受影响不受影响模模块块的扇入扇出的扇入扇出模模块的的扇入:扇入:指有多少个上级模块调用它模模块的的扇出:扇出:指模块的直属下层模块的个数,扇出系数不宜过大A A的扇出为的扇出为2 2A AB BC CB1C1C2C3B B的扇出为的扇出为1 1C C的扇出为的扇出为3 3T TT T的扇入为的扇入为2 22024/8/1421总总体体设计设计原原则则设计功能内聚的模块模块使用过程语句调用其他模块,传递的参数作数据用,并且尽可能少模块内语句数一般为50~100平均扇出系数最好是3~5高层模块高扇出,最低层模块高扇入一个判断的作用范围是判断所在模块的控制范围的子集22小小结结在结构化设计阶段,如何依据系统说明书,进行信息系统的总体结构设计(即物理模型的总体结构):采用自顶向下,模块化设计模块化设计应注意的问题(原则):增强模块的相对独立性(增强内聚、降低耦合)如何描述信息系统的总体结构:模块结构图(结构图的优化)23数据流数据流图图导导出出结结构构图图转换转换分析模型分析模型(逻辑模型)(逻辑模型)设计模型设计模型设计模型设计模型(物理模型)(物理模型)(物理模型)(物理模型)从从变换变换型数据流型数据流图导图导入初始入初始结结构构图图从变换型数据流图导入初始结构图的方法:变换型结构由输入、主处理和输出三部分组成,所以变换型结构的数据流图导出变换型模块结构图,分如下三步进行:24从从变换变换型数据流型数据流图导图导入初始入初始结结构构图图1、 系统主加工的获取2、 设计顶层模块和第一层模块(1) 为逻辑输入画一个输入模块,向主模块提供数据(2) 为逻辑输入画一个输出模块,把主模块提供的数据输出(3) 为主处理画一个变换模块,把逻辑输入变成逻辑输出3、 设计中、下层模块25从事从事务务型数据流型数据流图导图导出初始出初始结结构构图图就步骤而言,从事务型数据流图导出初始结构图的方法与变换分析方法大部分类似,主要差别在于由数据流图到模块结构的映射方式不同,通常采用如下四个步骤:26 1、 确定以事务为中心结构,包括找出事务中心和事务来源。
2、 按功能划分事务,将具备相同功能的事务分为同一类,建立事务模块 3、 为每个事务处理模块建立全部的操作层模块 4、 若有必要,则为操作层模块定义相应的细节模块,并尽可能使细节模块被多个操作模块共享27从事从事务务型数据流型数据流图导图导出初始出初始结结构构图图混合混合结结构构在规模较大的实际系统中,其数据流图往往是变换型和事务型的混合结构此时可把变换型分析和事务分析应用在同一数据流图的不同部分例如,可以把“变换分析”为主,“事务分析”为辅进行设计先找出主处理,设计出结构图的上层,然后根据数据流图各部分的结构特点,适当选用“变换分析”或“事务分析”就可以得出初始结构图的某个方案28杨兰杨兰29二、二、 详细设计详细设计-代码设计-输入输出设计-人机对话设计-模块详细设计-数据库设计30 代代码设计码设计代码的含义:用来表征客观事物的一个或一组有序的符号,它应易于计算机和人识别与处理。
一般用数字、字母或它们的组合来表示代码设计是科学管理的体现代码无处不在:车牌号码、商品编码、身份证号、学号、专业代码、技术职称代码、项目类别代码 31代码的作用: 1. 鉴别功能 2. 分类 3. 排序 4. 专用含义32 代代码设计码设计33代代码设计码设计唯一化唯一化规范化规范化系统化系统化 为事物提供一个概要而不含糊的为事物提供一个概要而不含糊的认定,便于数据的存储和检索认定,便于数据的存储和检索 即编码要有规律,符合某一类事物即编码要有规律,符合某一类事物的聚集,提高处理的效率和精度的聚集,提高处理的效率和精度 也即标准化,符合国家或行业标也即标准化,符合国家或行业标准,提高数据全局一致性准,提高数据全局一致性代码的作用:代码的作用:34代代码码设计设计代码设计必须遵循以下基本原则:1. 唯一性2. 合理性3. 可扩充性(想想千年虫问题)4. 简单性5. 适用性6. 规范性7. 系统性35代代码码设计设计代码设计可按下列步骤进行:确定代码对象考查是否已有标准代码根据代码的使用范围、使用时间,根据实际情况选择代码的种类与类型。
考虑检错功能编写代码表输输入入输输出出设计设计输出设计:当DFD图中有数据流从系统流出到外部实体的地方报表、人机交互的查询、发送邮件等到其他系统(消息、数据库、文件等)输入设计:外部实体的数据流进入到系统的地方本系统操作人员的输入来自于其他系统的输入(其他的数据库或文件、其他系统的实时响应结果)高度自动化的输入(条码扫描仪、传感器等)36系统设计的过程和系统实施的过程恰好相反,并不是从输入设计到输出设计,而是从输出设计到输入设计,这是因为输出设计直接和用户需求相联系,设计的出发点应该是保证输出方便地为用户服务,正确地反映用户所需要的有用信息37输输入入输输出出设计设计输输出出设计设计①输出信息名:该输出信息的名称②输出功能:该输出信息起什么作用③输出周期:多长时间输出一次④输出期限:每次输出的期限 ⑤输出媒体:输出信息记录媒体名称 ⑥输出方式:批输出还是实时输出⑦输出用纸:专用纸或通用纸⑧传递方式:邮递、、、电子邮件或人工传递⑨使用后的处理:保存、销毁或上缴⑩输出用文字:英文、汉字、汉语拼音⑪输出信息校验:检验输出信息的正确性,包括确定校验内容、检验方法和校验后的处理。
⑫保密要求:有或无⑬输出项目名称:构成输出信息的每个数据项38输出设计的主要目的是满足用户和管理者对数据输出设计的主要目的是满足用户和管理者对数据和信息的要求输出设计要考虑的主要内容有:和信息的要求输出设计要考虑的主要内容有:输输入入设计设计①输入信息名:该输入信息的名称②输入功能:该输入信息起什么作用③输入周期:多长时间输入一次④输入期限;每次输入的期限 ⑤输入媒体:输入信息记录媒体名称⑥输入方式:批输入还是实时输入⑦收集方式:原始记录如何收集⑧原始信息名:与本输入对应的用户原始凭证⑨输入项目名:构成输入信息的每个数据项名称3940人机人机对话设计对话设计人机对话主要是指在计算机程序运行中,使用者与计算机系统之间通过终端屏幕显示、键盘操作或其他装置进行一系列交替信息交流(询问与回答)人机对话模块设计的任务是与用户共同确定对话方式、内容与具体格式,建立友好的人机界面对话设计对话设计原原则则对话设计应考虑如下启发性原则:对话要简单、明确、无二义性对话本身应具有一定的指导用户怎样操作和回答问题的能力对话应能反映用户的观点、业务用词和习惯等,不要使用一些操作员难以理解甚至看不懂的用语。
必须很快地反馈用户的输入状态(尤其是出错情况),不能让用户犹豫或等待要把错误信息的细节显示出来,并指导用户如何改正错误对话应该适合于用户的环境和具体情况,允许具有不同能力或经验的用户在不同的速度下进行操作对话不要太频繁,提问过于频繁不仅影响系统的运行速度,用户也感到应接不暇,会引起用户反感41模模块详细设计块详细设计处理过程设计可以采用以下工具表达程序流程图(程序框图)盒图(NS图)程序设计语言(PDL)42431 1、程序流程、程序流程图图4种结构(a) (a) 顺序顺序(b) (b) 循环循环(c) (c) 选择选择(d) (d) 条件条件模模块详细设计块详细设计44第一任务第一任务第二任务第二任务第三任务第三任务(a) (a) 顺序顺序F F 条件条件 T TELSEELSE部分部分THENTHEN部分部分F F 条件条件 T TCASECASE部分部分值值1 1CASECASE部分部分值值2 2…. .…. .CASECASE部分部分值值n n(d) (d) 循环循环(c) (c) 选择选择(b) (b) 条件条件循环条件循环条件DO-WHILEDO-WHILE部分部分循环条件循环条件REPEAT-UNTILREPEAT-UNTIL部分部分模模块详细设计块详细设计2 2、盒、盒图图在NS图中,每个处理步骤用一个盒子表示。
盒子可以嵌套盒子只能从上头进入,从下头走出,除此之外别无其他出入453 3、程序、程序设计语设计语言言PDLPDL是用来描述模块内部具体算法的非正式的比较灵活的语言,或称类语言模模块详细设计块详细设计数据库设计是在选定的数据库管理系统基础上建立数据库的过程包括用户需求分析、概念结构设计、逻辑结构设计和物理结构设计几个阶段当我们把数据库设计原理应用到MIS开发中,数据库设计的几个步骤就与系统开发的各个阶段相对应,且融为一体如下图所示46数据数据库设计库设计数据数据库设计库设计47E-R图向数据模型的转换48数据数据库设计库设计E-R模型模型关系模型关系模型实体集实体集关系(表)关系(表)实体实体元组(行)元组(行)属性属性属性(列)属性(列)属性值属性值元组分量(列值)元组分量(列值)E-R图向数据模型的转换准则: 实体转换为关系 联系转换为关系 合并原则49数据数据库设计库设计数据模型的优化: 1.确定数据依赖 2.对于各个关系模式之间的数据依赖进行极小化处理,消除冗长的联系 3.按照数据依赖的理论对关系模式逐一进行分析,考察是否存在部分函数依赖、传递函数依赖等,确定各个函数属于第几范式。
4.按照需求分析阶段得到各种应用对数据处理的要求,分析对于这样的应用环境,这些模式是否合适,确定是否要对它们进行合并或分解数据数据库设计库设计么之光么之光51案例分析案例分析52医院信息管理系医院信息管理系统统的分析与的分析与设计设计(一)背景(一)背景某医院是一家以中医为主、中西医结合、中等规模的三级甲等医院医院该医院有开放床位450张,年门诊量25万左右人次,年住院病人6000—8000人次由于该院是—所建于20世纪50年代的老医院,几十年延续下来的陈旧的管理思想和僵化的管理模式已经远远不能满足病人的需求及适应时代的发展在管理中主要存在以下一些难题:531.手工模式下的门诊收费管理,病人需先拿着医生的处方单排队划价,然后到收费处排队交钱,再凭发票到门诊药房排队取药这中间,病人排队时间长,划价收费人员出错环节多2.医院在对药品的管理中存在一定的困难其一,药品的盘点工作时间过长;其二,药品库存难以及时掌握;其三,由于药品调价频繁,新的价格不能及时执行3.手工模式下的住院管理,病人病历号会产生一人多号或跳号现象,造成病案统计的混乱;记账时,要由护士到住院药房取药后,再到住院处记账,不能做到及时、准确;病人住院期间的各项检查及治疗费用由医务人员传送到住院处,中间环节多,费时费力。
54(二)系(二)系统统分析分析1..组织结构构55(二)系(二)系统统分析分析2..业务流程分析流程分析56(二)系(二)系统统分析分析3.数据流程分析.数据流程分析57药 库药品数量 出 库药品数量门诊病人D1 门诊药房库存 发 药(三)系(三)系统设计统设计 1.系.系统目目标 根据调查研究,系统必须具备以下功能: (1)建立全院计算机网络,实现信息资源共享 (2)建立数据库,集中存储医院管理和病人医疗数据信息 (3)支持医疗和管理的窗口业务,完成医疗各部门之间(临床部门和管理部门)的信息传递58(三)系(三)系统设计统设计 2.数据字典.数据字典在整个医院信息管理系统的数据库,即his库中共有100多个表,其中门诊信息管理 系统涉及的表见表59(三)系(三)系统设计统设计 3.系.系统功能功能结构构图根据门诊管理系统的数据流程分析以及各表之间的关系.该模块功能结构图如下图所示60(三)系(三)系统设计统设计 3..输入入设计根据门诊管理系统的数据流程分析以及各表之间的关系输入方式的简单、快捷、易学易用是医院信息管理系统的基本要求.特别是门诊划价收费的输入方式直接影响着操作员的速度。
61第五章第五章 结构化系统分析学习总结结构化系统分析学习总结62(三)系(三)系统设计统设计 4..输出出设计输出方式是按照各用户的实际要求进行设计的,已有现成票据的采用套打的方式,如打印门诊发票和出院发票等,其余的则根据实际要求进行设计,其输出的格式均在屏幕上显示出来63(三)系(三)系统设计统设计 5..编码设计每一种药品都是用一个5位数字来表示通过编码可以看出此药品属于哪一类哪一种设计方案如图所示64EndEnd65。