《信息系统设计 》PPT课件.ppt
第5部分 信息系统设计,信息系统设计的目的与任务,目的:将系统分析阶段所提出的、充分反映了用户信息需求的系统逻辑方案转换成可以实施的、基于计算机与网络技术的物理(技术)方案。任务:从信息系统的总体目标出发,根据系统分析阶段对系统的逻辑功能的要求,并考虑到经济、技术和运行环境等方面的条件,确定系统的总体结构和系统各组成部分的技术方案,合理选择计算机和通信软、硬件设备,提出系统的实施计划。,系统设计的依据,1.系统分析成果系统分析的成果是系统设计的主要依据,系统设计是系统分析的继续,系统设计人员必须严格执照系统分析阶段的成果“系统说明书”所规定的目标、任务和逻辑功能进行设计工作。对系统逻辑功能的充分理解是系统设计成功的关键。2.现行技术主要指可供选用的计算机硬件技术、软件技术、数据管理技术以用数据通信与计算机网络技术。3.现行的信息管理和信息技术的标准、规范和有关法律制度。4.用户需求系统的直接使用者是用户,进行系统设计时应充分尊重和理解用户的要求,特别是用户在操作使用方面的要求,尽可能使用户感到满意。5.系统运行环境新系统的目标要和现行的管理方法相匹配,与组织的改革与发展相适应,要符合当前需要,适应系统工作环境。其中包括基础设施的配置情况、直接用户的空间分布情况、工作地的自然条件及安全保密方面的要求,现行系统的硬、软件状况和管理与技术环境的发展趋势,在新系统的技术方案中要尽可能保护已有投资,又要有较强的应变能力,以适应未来的发展。,系统设计任务,逻辑模型,物理模型,做什么,怎么做,科学合理地提出,从具体到抽象,从抽象又回到具体,系统分析,系统设计,信息系统设计阶段的主要内容,1.系统总体设计(1)系统总体布局方案的确定(2)软件系统总体结构的设计(3)数据存储的总体设计(4)计算机和网络系统方案的选择2.详细设计(1)代码设计(2)数据库设计(3)人机界面设计(包括输入设计、输出设计、人-机对话设计)(4)处理过程设计3.系统实施进度与计划的制订4.“系统设计说明书”的编写,结构化系统设计,结构化系统设计(Structured design,SD)从建立一个具有良好结构的系统的观点出发,基于把一个复杂的系统分解成相对独立的模块的原则,研究将系统分解为不同模块的方法技术,分析系统分解时产生的各种影响,提出评价结构质量的具本标准,给出从表达用户要求的数据流程图(DFD)导出模块结构图的规则。,系统设计原则,简单性:只要能达到预定的目标和实现预定的功能,系统就应避免一切不必要的复杂,尽量简单。灵活性:系统对外界环境条件的变化有很强的适应性。这样其可保持长久的生命力。为此,系统应具有较好的开放性和结构的可变性。完整性(系统性):系统是作为一个整体而存在的。因此,在系统设计中要从整个系统的角度进行考虑,系统的代码要统一,设计规范要标准,传递语言要尽可能一致,对系统的数据采集要做到数出一处、全局共享,使一次输入得到多次利用。可靠性:指系统抵御外界干扰的能力及受外界干扰时的恢复能力。一个成功的信息系统必须具有较高的可靠性,如安全保密性、检错及纠错能力、抗病毒能力等。经济性:系统应该给用户带来一定的效益(直接经济效益、间接经济效益)。系统的投资和经营费用应尽快得到回收。,系统可修改性,系统的可修改性也称为系统的可变性或系统的适应性,是系统的设计原则之一。系统的可变性是系统设计的首要目标,系统应具有良好的可修改性、可变更性和对环境的适应性。,结构化系统设计特点,对于一个复杂的系统,使用分解的方法予以简化。采用图形工具描述和表达。有一组基本设计原则。有一组基本设计策略。有一组评价标准和质量优化技术。,结构化信息系统设计的要点,将系统按一定规则构造成相对独立的模块,即所谓的模块化。系统的模块化要讲究层次结构即自顶向下,逐步求精。在设计时,一方面要将整个应用软件系统合理划分成各种功能模块,另一方面又要正确处理模块间与模块内部的联系。模块分解即上层模块分解为下层模块,有三种不同的结构形式:顺序、选择和循环结构。对于开发者来说,可以有多种可供选择的处理方式和技术手段、物理模型和开发方案。,系统总体设计,任务:以逻辑方案(主要是数据流程图)为主,进行:1.设计供选择的布局方案、计算机和网络方案 2.推荐最佳方案 3.总体设计(划分系统功能模块、数据存储),系统总体布局,系统的总体设计任务是指确定整个系统的各项信息资源的配置、系统各部分的结构,以及计算机与网络系统的选择等。其中系统的总体布局是指系统的硬、软件资源以及数据资源在空间上的配置方案,通常有以下几种方案可供选择:从信息资源管理的集中程度来看:集中式系统(Centralized System)分布式系统(Distributed Systems)从信息处理方式来看:批处理方式(Batch processing)联机处理方式(On-line processing),集中式系统,集设备、软件资源、数据于一体的集中管理系统,主要有以下几种类型:单机批处理系统单机多终端分时系统(终端无处理功能)主机智能终端系统(终端有辅助处理功能),分布式系统,利用计算机网络把分布在不同地点的计算机硬件、软件、数据等信息资源联系在一起,服务于一个共同的目标而实现相互通信和资源共享,就形成了信息系统的分布式结构。具有分布式结构的系统称为分布式系统。分布式系统运行的网络环境有:局域网(LAN)、广域网(WAN)、局域网和广域网混合形式以及互联网(Internet)、内联网(Intranet)等。,分布式系统,分布式系统的计算模式有作用共享方式、客户机/服务器(C/S)方式和浏览器/Web服务器(B/S)计算模式。系统布局应考虑的问题:1.系统类型:即是采用集中式还是分布式2.处理方式:既可采用一种,也可混合使用3.数据存储:分布存储还是集中存储,数据量的多少、存储方式的要求4.硬件配置:机器类型、工作方式5.软件配置:购买或自行开发,系统布局方案的选择原则,1.处理功能、存储能力应满足系统要求2.使用方便3.可维护性、可扩展性、可变更性好4.安全性、可靠性高5.经济实用,信息系统平台确定的依据,信息系统平台确定应考虑用户投资、技术支持等诸多因素,应将硬件与软件平台统筹考虑。主要考虑因素有:(1)用户单位的实际应用环境和应用需求;(2)作为平台的硬件产品的功能与性能;(3)国内、国际目前信息系统平台发展的主流;(4)信息系统总体设计人员采用的技术策略和实现手段;(5)性能/价格比,技术支持,后援保证;(6)用户的投资能力和技术水平。,信息系统平台选型分析,信息系统平台主要有三种:主机模式、文件服务器模式和客户/服务器模式。由硬件、网络操作系统、数据库一起构成信息系统平台。,目前比较流行的信息系统平台的三个方案,软件系统的总体结构设计,设计任务:软件系统是实现整个系统各项功能与目标的中心环节,软件系统的设计与实施是系统建设的重点与关键所在。现代信息系统的软件系统由具有明确的逻辑功能的计算机程序模块和相应的文档组成。其主要任务是根据系统的总体目标和功能将整个系统合理划分成若干个功能模块,正确地处理模块间的调用关系和数据联系即模块之间的接口,定义各模块的内部结构等。,软件系统总体结构设计的原则,1.分解协调原则软件系统是一个整体,系统目标和功能的实现是由相互联系的各个组成部分共同工作的结果,在处理过程中要根据系统总体要求协调各部分的关系。分解的具体要求:(1)按系统功能进行分解(2)按管理活动和信息运动的客观规律分解(3)按信息处理的方式和手段分解(4)按系统的工作规程分解(5)按用户工作的特殊需要分解(6)按开发、维护和修改的方便性分解协调的主要依据:(1)目标协调(2)工作进程协调(3)工作规范和技术规范协调(4)信息协调(指信息的提供和收回)(5)业务内容协调(如某些业务指标的控制等),软件系统总体结构设计的原则,2.模块化原则结构化设计的基础是模块化,结构化方法规定了一系列模块的分解协调原则和技术,将整个系统分解成相对独立的若干模块,通过对模块的设计和模块间关系的协调来实现整个软件系统的功能。3.自顶向下的原则 首先抓住系统总的功能目标,然后逐层分解,即先确定上层模块的功能,再确定下层模块的功能。4.信息隐蔽、抽象的原则上层模块只负责为下一层模块的工作提供原则和依据,并不规定下层模块具体行为,即上层模块中规定下层模块做什么和所属模块间的协调关系,但不规定怎么做,以保证各模块的相对独立性和内部结构的合理性,使得模块与模块之间层次分明、易于理解、易于实施、易于维护。5.一致性原则要保证整个软件设计过程中具有统一的规范、统一的标准、统一的文件模式等。6.明确性原则每个模块必须功能明确、接口明确、消除多重功能和无用接口。,系统设计工具,系统流程图HIPO(分层和输入-处理-输出)技术系统结构图(控制结构图),系统流程图,系统流程图是传统的描述工具,通常用它表达系统的执行过程。它用图形符号描述了所有的输入/输出和与之有关的处理,同时也包括对所有文件的建立过程。系统流程图也表达了数据在系统中的流向。但是,它着重表达的是数据在系统中传输时所通过的存储介质和工作站点,与物理技术有着密切的关系。在绘制系统流程图时的主要依据:1.信息处理的步骤和内容2.每一步骤根据内容所涉及的物理过程,主要包括:输入/输出的内容和形式、存储要求、加工所有的物理设备3.各步骤之间的物理和逻辑关系系统流程图既表示信息联系,又表示信息处理的逻辑顺序,还反映了人机关系,但不考虑加工方法和人-机对话过程。,系统流程图使用的符号,输入/输出,人工操作,预处理,人工输入,通信联结,处理,辅助处理,联机处理,显示,联结,文件,脱机储存,磁带,判断,离页联结符,卡片,纸带,直接访问存储器,磁盘,端点,库存系统的流程图,编辑事务,配件,报表,事务历史,入库单,出库单,新品单,报废单,库存历史,修正文件,编辑后的事务,供应商,联机处理,联机处理,供应商,配件库存,配件,错误,新系统逻辑模型转换为系统流程图,系统流程图的特点,系统流程图表达了数据在系统中的流向和使用的计算机设备、编辑原始单据、文件调用和修正、产生报表和后备磁带文件等,它侧重于系统的物理组成和信息处理的顺序,无法指出系统软件结构和每个模块的功能,因此也就无法评审这个系统是否满足用户的信息需求,也不可能知道这个系统的大小以及是否易于维护和修改等。,HIPO技术,HIPO技术是用图形方法表达一个系统的输入和输出功能以及模块的层次。HIPO(Hierarchy plus Input/process/Output)技术包含两个方面的内容:1.H图,用此图表示自顶向下分解所得系统的模块层次结构,H图又可称为模块层次图。2.IPO图(输入-处理-输出图),此图描述分层图中一个模块的输入、输出和处理内容。应用HIPO技术可以进行系统设计、评价,在系统实施之前加工、修改已设计的系统。HIPO图清晰易懂,可以使用户、管理人员和其他系统建设者很方便地理解软件系统的结构,也有利用程序的编写和系统的维护。,HIPO技术实例,以库存管理系统为例,对其中的数据加工“修改库存数据”功能应用HIPO技术进行模块结构设计。,H图中一个方形的方块代表一个模块,方块内可写出标识此模块的处理功能或模块名。模块间的调用关系,用联结两模块的直线表示。,第二轮H图,第二轮H图,IPO图,IPO图是图形化表格。它描述分层图中每一个模块的输入/输出关系、处理内容、本模块的内部数据和模块间的调用关系,是系统设计的重要成果,是系统实施阶段编制程序设计任务书和进行程序设计的出发点和依据。系统设计中,每一模块都要有相应的IPO图作为设计结果的描述。,IPO图 系统名:制图者:模块名:日 期:,IPO图例,IPO图 系统名:库存管理制图者:白XX 模块名:处理收发数据日 期:1/5/98,HIPO图,H图(分层图)表示了系统的模块层次结构,但它只能一般地看到各模块间的关系。模块间的具本通信与控制关系、数据流在模块之间的流动状况,分层图没有明确描述。逐个查阅IPO图,对于复杂的系统如随烟海,无法看清全局情况。,系统结构图(控制结构图),在系统设计中,为了保证系统的可行性、可读性、可修改性,要求各模块之间的耦合(即数据联系)尽可能小,尽量减少不必要的数据在模块之间的流动,尽量防止和减少因一个模块的问题对其他模块工作的影响,这就要求对模块之间的控制和通信关系给以系统明确的描述。描述模块的层次结构和它们之间的控制通信联系工具是系统结构图。系统结构图用方块表示模块。模块间用箭线联结,箭头指示方向为被调用的模块。调用关系分为直接调用(无条件调用)、选择调用(判断调用)和重复调用(循环调用)三种。系统结构图的出发点是数据流图,但如果已具备H图,则在此基础上加注模块间的控制与通信标志就成了系统结构图,模块间的调用关系,模块A,模块B,直接调用,模块A,模块B,选择调用,模块A,模块B,重复调用,双层嵌套的重复调用,模块A,模块C,重复调用可以嵌套,上例是双层嵌套的重复调用。其中外层的模块B、D每被模块A调用一次时,内层的模块C被模块A重复调用多次。,模块B,模块D,模块间通信的表示方法,模块间通信的表示方法为:在两模块连接箭线旁边用圆圈头的短箭线“O”并加注文字或代号表示数据流,箭头方向表示数据传送方向,用带圆点头的短箭线“”并加注文字表示传送状态标志信号(如错误信号或开关信号)。,系统结构图示例,修改库存数据,提取库房收发数据,提取原有库存数据,处理收发数据,刷新库存记录,增加在库数,减少在库数,增加记录,删除记录,a,b,b,c,d,e,e,a,b,d,f,g,g,c,i,i,j,j,i,m,a,m,n,n,c,a.收发数据b.收发处理错误标志c.零件号d.库存数据e.主文件错误标志f.修改错误标志g.重写错误标志i.在库数j.收发数k.临界库存水平m.增加记录标志n.删除记录标志,模块(module),在软件系统设计中,模块是指这样的一组程序语句,它包括输入与输出、逻辑处理功能、内部信息及其运行环境。(1)输入与输出,模块的输入来源和输出去向在正常的情况下都是同一个调用者,即模块。从调用者处获得输入信息,经过模块本身的处理后,再把输出返送给调用者(2)逻辑功能,模块的逻辑功能描述了该模块能够做什么样的事情,具备什么样功能,即对于输入信息能够加工成什么样的输出信息。(3)内部信息,模块的内部信息是指模块执行的指令和在模块运行时所需要的属于该模块自己的数据。(4)运行环境,模块的运行环境说明了模块的调用与被调用的关系。在系统设计中,只关心模块的外部信息,即研究模块能完成什么样的功能,具体的实现将在系统实施阶段完成。模块通常还有其他一些附加属性,如模块的名称、编号等。,模块化,模块化就是将系统划分为若干个模块,每个模块完成一个特定的功能,然后将这些模块汇集起来组成一个整体(即系统),用以完成指定功能的一种方法。采用模块化设计原理可以使整个系统设计简易、结构清晰,可读性、可维护性增强,提高系统的可行性,同时也有助于信息系统开发与组织管理。系统设计强调把一个系统设计成具有层次的模块化结构。理想的系统结构:每个模块完成一个相对独立的特定功能;模块之间的接口简单。,模块独立程度,模块独立程度可以由两个定性标准度量,分别称为块间联系和块内联系。块间联系是度量不同模块彼此间互相依赖(联结)的紧密程度,块内联系则是衡量一个模块内部的各个部分彼此结合的紧密程度。(1)块间耦合(coupling)块间耦合是一个系统内不同模块之间互连程度的度量。块间耦合强弱取决于模块间联系形式及接口的复杂程度。模块间接口的复杂性越高,说明耦合的程度也越高。块间耦合程度直接影响系统的可读性、可维护性及可修改性。在系统设计中,应尽可能追求块间耦合松散的系统。在这样的系统中,可以研究、测试、维护任何一个模块,而不需要对其他模块有很多了解。同时,由于模块间耦合简单,错误传播的可能性就越小。(2)块内联系(cohesion)模块内部元素的联系方式即为块内联系,有时也称为模块内部的紧凑性或关联度或内聚度,它是决定系统结构的另一个重要因素。所谓模块内部的元素是指该模块的程序中的一条或若干条的指令。系统中的每个模块应具有高度的块内联系,它的各个元素都是彼此相关的,是为完成一个共同的功能而结合在一起的。模块设计中应尽力避免较低的块内联系,这是基本原则。,模块间的耦合形式,模块间的耦合形式决定了模块间联系程度。模块间的耦合分为非直接耦合、数据耦合、标记耦合、控制耦合、外部耦合、公共耦合、内容耦合七种。(1)非直接耦合:指两个能彼此独立工作,没有直接关系,仅通过主程序开展控制和调用来实现,两者之间不传递任何信息。是一种最理想的耦合。(2)数据耦合:指两个模块之间通过数据交换实现相互之间的联系。一个模块带参数调用另一个模块,被调用模块执行后返回一个参数给调用它的模块,每个参数是单个数据项。数据耦合是一种好的形式,但如果模块间传递的数据量大,会产生不利影响。(3)标记耦合:一个模块调用另一个模块时,传送存放数据的变量名或文件名等标记符号,这种耦合出错机会多,复杂程度高。(4)控制耦合:如果两个模块间传递的信息中有控制信息,则这种块间耦合称为控制耦合。通常被调用的模块含有多种功能,传递的控制变量决定调用哪一种功能。被调用模块的逻辑控制走向,受控于调用模块。控制耦合程度高,增加了编程和理解的复杂性,在设计时应尽量避免。(5)外部耦合:指模块与外部环境间的联系,如输入输出模块。(6)公共耦合:多个模块共享公共的数据区为公共耦合,耦合程度高,在设计中应避免。(7)内容耦合:如果一个模块需要涉及另一个模块的内部信息(数据、部分程序代码、模块的出入口不符合单入单出原则),则这种联系称为内容耦合,这是一种最不好的耦合,应尽力避免。七种耦合方式的耦合强度由弱变强,模块间的接口方式也越来越复杂。,模块间的联结形式图示,A,B,C,A,B,C,A,B,C,D,系统模块设计应遵循的原则:,模块间尽量使用数据耦合;必要时才采用控制耦合;对公共耦合应限制耦合的模块数;坚决不用内容耦合。,模块内部的组合形式(内聚),模块内部的组合形式主要有七种。(1)偶然组合:如果一个模块所要完成的动作之间没有任何关系,或者即使有某种关系,也是非常松散的,就称之为偶然组合。偶然组合可理解性差,难于修改,设计中应尽力避免。(2)逻辑组合:如果一个模块内部的各个组成部分在逻辑上具有相似的处理动作,但功能上、用途上却彼此无关,则称之为逻辑组合。逻辑组合的模块与其他模块之间有相当复杂的块间联系,其可修改性差,维护困难。(3)时间组合:时间组合也称为瞬时组合,模块内各组成部分所包含的处理动作必须在同一时间内完成。时间组合模块的联系程度较低,不易于修改,维护较难,但它在一定程度上反映了系统的某些实质,因此比逻辑组合要强一些。(4)过程组合:如果一个模块内部的各个组成部分所要完成的动作彼此间没什么关系,但必须以特定的次序(控制流)执行,则称之为过程组合,其组合方式较强,可修改性高。(5)通信组合:如果一个模块内部的各个组成部分所完成的动作都使用了同一个输入数据或产生同一个输出数据,则称之为通信组合。通信组合方式的模块与其他模块间的联系较简单,其内部紧凑性比过程组合强,但它各部分执行次序可以是任意的,容易产生重复动作。(6)顺序组合:对于一个模块内部的各个组成部分,如果前一部分处理动作的输出是后一部分处理动作的输入,则称之为顺序组合。其块内联系程度较高,与其他模块的联系也较低。(7)功能组合:如果一个模块内部包括且仅包括为完成某一功能所必需的组成部分,则称之为功能组合。功能组合方式有一个目的、有单一的功能,因而界面清楚,与其他模块的联系低,可读性、可修改性、可维护性、可测试性均很好,是最高级程序块内联系,在进行模块设计时,应尽可能追求功能块内组合。低内聚:偶然组合、逻辑组合、时间组合中内聚:过程组合、通信组合高内聚:顺序组合、功能组合,模块内部的组合形式,A,B,C,a,B,C,D,E,F,G,B,C,D,A,A,H,A,B,C,读入,编辑,A,偶然组合,逻辑组织前模块,逻辑组合,通信组合,顺序组合,模块内部的七种组合形式的比较,模块设计的注意事项,模块块间耦合(耦合度)与块内组合(内聚度)是模块设计中最重要的概念,低耦合度、高内聚度是设计中的两项重要原则。1.改进系统结构2.系统的深度和宽度3.模块的扇出数与扇入数4.模块的规模5.模块的作用范围与控制范围,系统结构的改进,对于初步设计出的系统结构,应分析与审查,发现高耦合、低内聚的模块,要通过模块的分解与合并,改进系统结构,从而提高内聚度,降低耦合度。1.对于若干个模块共有一个子功能,应当将其独立抽出,作为一个新的模块可被其它模块所调用。2.尽可能地采用数据信息作为模块之间联系的媒介,可以通过分解等手段,将一些传递控制信息或其他非数据信息的模块转化为数据联系的模块。3.强调以功能划分模块。每一模块尽量做到只有单一的功能,对于复杂的模块,应从功能的角度出发予以分解。4.强调系统整体的最优性优于局部的最优性,不片面追求系统中每一模块的最优设计,局部的优化应服从整体的安排。,系统的深度和宽度,系统的深度表示系统结构中的控制层数,宽度则表示控制的总分布,即同一层次的模块总数的最大值。一般情况下,深度和宽度标志着一个系统的复杂程度,它们之间应有一定的比例关系,即深度与宽度均要适当。深度过大,可能说明系统分割得不细;宽度过大,则有可能带来系统管理上的困难。,模块的扇出数与扇入数,一个模块控制的直属下级模块的个数称为该模块的扇出数;反之,一个模块的直接上级模块个数称为模块的扇入数。模块的扇出数直接影响系统的宽度,扇出过大则意味着该模块的直接下属模块多,控制与协调较困难,也意味着模块的块内联系可能较低。这时一般需要增加中间层次的控制模块。扇出数小,说明上、下级模块或其本身可能过大,应考虑是否采用分解的方法,使结构变得合理。模块的扇出数必须适当,经验表明,一个设计较好的系统的平均扇出数通常是3或4,一般不应超过7,否则会引起出错概率的增大。模块的扇入数通常说明系统的通用性情况,扇入数越大,表明共享该模块的上级模块数越多,因而通用性强,维护也较方便,但是片面追求高扇入数可能使得模块的独立性降低。通常,一个较好的系统结构,高层扇出数较高,中间扇出数较少,低层模块有很高的扇入数。,模块的规模,系统分解模块时,模块规模不可过大,也不可过小。过大的模块常常使系统的分解不充分,其内部可能包含了若干部分的功能,使模块的内聚度降低,因此有必要进行进一步分解,把原有的模块变成若干功能尽可能单一的模块。但分解也必须适度,因为过小的模块有可能降低模块的独立性,造成系统接口的复杂性。经验表明,一个模块的规模最好限制在12页纸内,这样的模块易于编制、维护、修改。,模块的作用范围与控制范围,模块的作用范围是指受该模块内部的一个判定影响的所有模块的集合,只要某一模块中含有一些信赖于这个判定的操作,那么该模块就在这个判定的作用范围之中。模块的控制范围包括该模块本身及所有的下属模块的集合。控制范围完全取决于系统的结构,它与模块本身的功能并无太大关系。系统设计中,对于模块的控制范围和作用范围有两条规则:1.所有受模块M的一个判定影响的模块应从属于模块M,即对任何一个内部存在判定调用逻辑模块,其作用范围应是其控制范围的子集。2.受模块M判定影响的模块,最好局限在模块M本身或其直属下级模块,即做出判定调用的模块与属于该判定作用范围的模块在系统的层次上不能相隔过远,否则会增大模块间的块间联系。SD 方法认为:当作用范围为控制范围的子集时,才能获得较低的块间联系。,实例,在下图 中,确定模块A 的控制范围及模块F 的控制范围和作用范围。模块A 的控制范围是:模块A、B、C、D、G、E、F。如果模块F 的判定涉及到模块B、E、F,则模块F 的作用范围是:模块B、E、F,模块F 的控制范围是:模块F。显然,不满足模块的“作用范围与控制范围”的原则,块间联系大,因此不是一个好的设计。,实例,确定右图中模块TOP 的控制范围和模块B 的控制范围及作用范围。模块TOP 的控制范围是:TOP、X、T、B、A、B1、B2;模块B 的控制范围与作用范围相同,均为:模块B、A、B1、B2;满足控制范围与作用范围的原则,而且,判定的作用范围恰好在判定所在模块的下一层。,实例:根据应用范围与作用范围原理,判断图中各设计,显然,图(a)不满足作用范围与控制范围的原则,模块F 的作用范围不在控制范围之内。图(b)中模块TOP 虽然满足上述原则,但其作用范围所涉及到的模块不是直接的。所以也不是一个好的设计。因此,合理的模块设计,不仅要满足作用范围与控制范围的原则,而且作用范围所涉及到的模块还应该是直接下属模块。,其他,设计单入口、单出口的模块,从而不使模块间出现内容联系;模块的接口设计简单,若接口复杂,则有可能存在高块间联系低块内联系。,从数据流图导出模块结构图,信息系统的数据流图一般有两种典型结构:变换型结构和事务型结构,变换型结构是一种线性结构,它可以明显地分为输入、主加工和输出三个部分;事务型结构中通常可以确定一个处理逻辑,起调度作用,为系统的事务中心,事务中心对每一种类型的事务分别有专门的模块予以处理,这种模块就称为“事务”模块,它的直接下级模块称为“动作”模块,事务中心为进入系统的事务选择相应用的“事务”模块。两种典型的结构分别通过“变换为中心的分析”和“以事务为中心的分析”技术导出标准形式的模块结构图。,以变换为中心的设计,以数据流图为基础,首先找出变换中心,确定模块结构图的顶层模块,然后,按照“自顶向下”的设计原则逐步细化,最后得到一个满足数据流图所表达用户要求的模块结构。变换分析的整个过程分为三步:确定主加工,找出变换中心;设计模块结构的顶层和第一层;设计中、下层模块。,原始数据,(物理输入),机内数据,正确数据,结果,格式化结果,输出结果,(物理输出),逻辑输入,主加工,逻辑输出,变换型数据流图,变换型结构的数据流图,找出变换中心,确定主加工,根据系统分析报告,可以决定数据流程图中系统的主加工。通常,几股数据流的汇合处或是一个数据流的分流处可以定义为系统的主加工,即系统的变换中心。变换中心的确定:在数据流图中标出输入数据的最后点,即系统主加工的输入数据流,称为逻辑输入。再找出输出数据的第一点即系统主加工的输出数据流,称为逻辑输出。这两点间留下的加工框,就是变换中心,也即主加工。将此主加工的功能用一个模块来表示,这就是结构图的顶层模块。,设计模块结构图的顶层和第一层,变换中心即结构图的“顶”,即系统的主模块,“顶”设计好后,由顶向下,就可按输入、变换、输出等分支来处理从而设计出结构的第一层。为主加工每个输入(逻辑输入)设计一个输入模块,其功能是向主模块提供数据。为主加工每一个输出(逻辑输出)设计一个输出模块,其功能是从主模块接收数据并为下层模块提供数据输出。为主加工设计一个变换模块,其功能是将逻辑输入变换成逻辑输出。第一层模块同主模块间传送的数据应该与数据流图相对应,主模块控制并协调输入、变换以及输出模块的工作。,在数据流图中找系统的主加工,设计中、下层模块,设计中、下层模块,是从第一层模块开始,自顶向下,逐步细化来完成,主要包括:输入模块的细化输出模块的细化变换中心的细化在设计每一个模块时,应注意给它们起一个适当的名字,以反映出该模块的功能。,用变换分析由DFD导出的结构图,处理,计算,输入,输出,读数据,编辑,格式编排,输出,原始数据,机内数据,正确数据,正确数据,正确数据,结果,结果,格式化结果,格式化结果,由变换型数据流图导出的初始模块结构图,以事务为主中心的设计,对于事务型DFD,可以通过事务分析导出相应的结构图。其最高层模块不仅具有控制功能,而且还具有分析事务类型和调度的功能。一般来说,在一个系统中可能有若干个事务中心,它们可能是传入子系统中的一部分,或可能是传出子系统的一部分,还可以是变换子系统的一部分。,事务分析的步骤,1.确定事务的来源(数据字典中已定义)2.确定适当的、以事务为中心的系统结构3.确定出每一种事务以及它所需要的处理动作4.对有相同处理功能的模块进行合并5.针对每一种类型的事务,分别建立专门的事务模块,对它们进行独立的处理6.一种事务所引起的每一个处理动作,要分别建立一个直接从属于该事务模块的下级模块7.必要时,对动作模块作进一步的分解,事务中心的输出可能形式,1.只是对输入的事务做格式上的转换,并没有做实际处理,然后被传递到较高层的传入子系统模块做进一步的处理。2.对输入的事务做有效性检验,产生一个是否合格的标志。3.对输入的事务做实际的处理,得到某种计算结果,然后被传递到较高层的中心变换子系统模块做进一步处理,或是被传递到较低层的传出子系统模块去处理。4.数据库中的某些数据修改以后的结果。,事务型DFD图,确定事务中心,编辑B,编辑A,编辑C,原始事务记录,A类事务,B类事务,C类事务,合格C类事务,合格B类事务,合格A类事务,事务型结构的数据流图,事务型中心数据流图实例,事务型模块结构图实例,转换后的结构图,事务处理,获得事务类型,调度处理,读事务文件,分析事务类型,事务记录,事务记录,类型标志,事务记录,类型标志,类型标志,事务记录,处理A类事务,处理B类事务,处理C类事务,编辑A类事务,编辑B类事务,编辑C类事务,A事务,B事务,C事务,典型的事务中心结构图,事务处理,处理T1事务,处理T2事务,处理Tn事务,动作A1,动作A3,动作An,动作A1,变换型和事务型混合结构的数据流图,变换分析与事务分析的混合使用,系统结构图实例,招工考试成绩统计系统,输入,变换,输出,招工考试成绩统计系统初始结构图,招工考试成绩统计系统,输入,变换,输出,招工考试成绩统计系统细化结构图,输入考生 基本情况,输入考生 成绩,计算 总分,按总分 排名,输出考生 成绩单,输出录取 通知书,例:画出打印报告的软件结构图,数据存储的总体结构设计,从系统设计的角度出发来考虑数据的组织和存储时,应着眼于全局,从系统的观点出发,为数据存储的总体结构提出一个较为合理的逻辑框架,以保证详细设计阶段的数据的完整性与一致性。主要涉及内容:数据分类、数据存储规划的确定、数据存储空间的分布、数据库管理系统(DBMS)的选择等。文件是存放数据的基本方式,在数据存储设计中文件是数据管理的最基本方式。,数据的分类,系统分析阶段已根据系统的逻辑功能和系统规划对主题数据进行识别和分类。总体设计阶段,应在上述分类的基础上根据软件系统对数据处理的要求和数据在处理过程中的进们与作用进一步分类,以便于存储和维护。数据分类:基础数据、中间数据、工作数据、暂存数据。基础数据是指整个系统的输入数据、输出数据、代码、各种工作和技术标准、规范以及主要子系统的共享数据等;中间数据是指在数据处理中需要保存的中间结果;工作数据是指为提高某项处理功能的效率而事先加工好的数据;暂存数据是指处理过程中需存储、在处理过程结束后即可消除的数据。数据分类时,可以从数据处理与存储的实际需要出发,对系统所涉及的各类数据进行逻辑上的描述,从中确定数据的总体结构,主要包括:各类数据记录和数据项的逻辑描述;各类数据文件的组织方式(顺序、索引);各类数据文件之间的逻辑关系。,数据存储规模的确定,数据作为一种非消耗性资源,会随着系统的运行而大量积累和增加,增加系统负荷,影响系统运行效率,维护困难。因此,在进行数据存储总体结构设计时,既要考虑现有数据量的存储规模,又要预见到未来数据量的增长趋势,注意控制数据量的无限制增长,合理组织数据的存储格式,应用各种必要的数据压缩技术并选择合适的外部存储设备。,数据存储空间的分布,数据存储空间的分布应与系统总体设计的物理环境配置协调一致。要注意区别哪些是共享数据,哪些是独占数据,哪些是流动数据,哪些是非流动性数据。,数据库管理系统(DBMS)的选择,DBMS已是信息系统的基本环境,因此,在数据存储总体结构设计时,必须要考虑选择的DBMS,以有效地实现数据存储设计的要求。在数据库管理系统的选择上,主要考虑:(1)数据库的性能;(2)数据库管理系统的系统平台;(3)数据库管理系统的安全保密性能;(4)数据的类型。目前,市场上数据库管理系统较多,流行的有Oracle、Db2、Sybase、SQL Server、Informix、FoxPro等。,数据存储总体结构设计原则,1.数据结构的合理性数据文件的合理组织,数据元素的合理归类和划分,以及数据项的合理描述2.数据存储的安全性合理进行取舍,在尽量降低系统的冗余的前提下,确保数据的安全性与可靠性。3.维护和管理方便为提高系统运行效率,应保证对数据进行管理和维护上的方便,它是提高系统运行效率的基础。,计算机与网络系统方案的选择,一个现代化信息系统的主要支撑环境是一个完事的计算机系统,它由软件和硬件两大部分组成,合理选择和配置这一系统环境,可以以最小的代价获得最大的效益,因此是系统总体设计阶段的主要工作之一。通常,计算机系统方案选择要考虑的因素:1.选择依据计算机系统方案的提出应主要考虑和依据系统的可行性报告、系统说明书和系统总体结构设计以及技术发展和市场有关性与价格等。2.功能要求主要考虑的是数据处理功能、数据存储功能、系统外设的功能、通信功能3.市场考虑计算机的选择,应考虑系统的升级情况和第三方软件的支持情况,即系统应具有延续性。4.系统的配置软、硬件的兼容性和可扩展性5.培训要求6.评价评价依据:是否满足所有功能要求并考虑到了今后的发展;配件是否齐全;软件是否丰富;技术是否先进;后援是否可靠;系统是否开放;价格是否合理。,详细设计,代码设计数据库设计用户界面设计处理过程设计,代码设计,目前,计算机还无法识别客观世界中的任何一种具体的事物,它只能识别ASCII字符集中的256个基本字符和数字,因此,计算机信息系统设计的基本前提条件是把管理对象数字化或字符化,这就是代码设计。代码,是用来表征客观事物实体类别和属性的一个或一组易于计算机识别和处理的有序的特定符号或记号,它可以是字符、数字、某些特殊符号或它们的组合,是实体明确的、唯一的标识。代码可以提高计算机的处理效率,便于数据的存储和检索。,代码的作用,标识作用统计和检索作用对象状态的描述作用,代码设计的原则,1.标准化、规范化国际、国家和行业的有关标准是代码设计的重要依据,应尽量采用已标准化的编码,此外,系统内部使用的代码也应统一,在一个代码体系中,代码结构、类型、编写格式必须统一。2.惟一性在一个编码体系中,一个对象只能赋予一个惟一的标识代码。3.简明性代码设计要尽可能简单、明了,以便降低误码率,提高工作效率。4.可扩充性必须留有一定的后备余量,以适应发展的需要。5.系统性代码可以分组,且有一组分组规划,从而在整个系统中使代码具有通用性和一贯性。6.适应性要尽可能地反映对象的特点,代码有逻辑含义,清晰直观,帮助记忆,便于填写,对于一些容易混淆的字符和数字应少用。7.合理性 代码结构要与所描述对象的分类体系相匹配。,代码设计的种类,代码,无含义码,有含义码,顺序码,无序码,系列顺序码,数值化字母顺序码,层次码,特征组合码,复合码,无含义码,只起代替编码对象名称的作用,并不提供有关编码对象的其他信息,有顺序码和无序码两类。顺序码:是一种最简单、最常用的代码。此种代码是将顺序的自然数字和字母赋予编码对象。如规定1为男,2为女。通常非系统化的编码对象采用此代码。无序码:是将无序的自然数或字母赋予编码对象。此种代码无任何规律,是先靠机器的随机程序编写的。,有含义码,系列顺序码:用连续数字代表编码对象的码,通常从1开始。有序码没有逻辑含义,一般不说明信息的任何特征。块码是有序码的特例,将有序码分为各个块,每块代表一定类型的编码对象,这种编码允许扩充。数值化字母顺序码:数值化字母顺序码是按编码对象名称的字母排列顺序编写的代码。此种代码是将所有的编码对象按其名称的字母顺序排列,然后分别赋予不断增加的数字码。编码对象容易归类,便于检索。层次码:适用于线性分类体系,它是按分类对象的从属