资源描述
总体设计与详细设计,系统设计的任务,根据已批准的系统分析报告,依照系统逻辑模型和实际运行环境以及经济技术条件,确定新系统的物理实施方案将逻辑模型转换为物理模型的过程,逻辑模型,物理模型,系统设计的原则,系统性,灵活性,可靠性,经济性,513系统设计的主要内容,1、系统总体结构设计2、代码设计3、数据库(文件)设计4、输入/输出设计5、处理流程设计6、程序流程设计7、系统设计文档,系统设计的步骤,1、系统总体设计2、详细设计3、系统实施进度与计划的制定4、系统设计说明书的编写,系统总体结构设计,1系统总体功能结构设计概述2模块和模块结构3模块分解的原则4控制结构图的绘制5系统平台设计,系统总体功能结构设计概述,1系统总体设计的任务根据系统分析文档资料和系统的逻辑模型设计新系统的物理模型和物理结构。2系统总体设计的基本要求能够实现逻辑模型所规定的信息服务功能系统具有一定的适应性和可修改性和可扩充性3系统总体设计的主要问题及其解决方法主要问题:系统各部分之间的信息关联,造成“波动效应”,使系统设计、修改和维护困难解决方法:采用结构化设计和模块化设计的思想方法,系统总体功能结构设计概述,结构化设计的三个要点:系统性自顶向下分解层次性模块化设计的基本思想:把一个信息系统设计成若干模块的方法称为模块化将系统设计成由相对独立、单一功能的模块组成的结构图示,模块和模块结构,1概述结构化设计借助一套标准的设计原则和图表工具,把系统分成若干模块,各模块可通过结构化语言、N-S图、IPO图、决策表、决策树等工具进行描述。(UC矩阵逐层分析:系统-子系统-模快)2模块模块是可以组合、分解和更换的基本单元。(1)输入和输出(2)功能(3)位置(4)内部数据(5)处理逻辑(6)程序代码,模块和模块结构,3控制结构图(1)基本符号图示(2)表示方式(3)模块调用规则每个模块都有特定的任务,只有上级模块才能调用下级模块只有上下级模块之间才能通信相邻模块必须通过各自的上级模块传递才能间接通信模块按照自上而下的顺序调用,模块和模块结构,(4)数据传送图示(5)控制信息传送(6)转接符号的使用4模块分解的基本结构类型顺序结构+选择结构+循环结构图示,模块分解的原则,1模块的独立性2模块的凝聚性(1)偶然凝聚(2)逻辑凝聚(3)时间凝聚(4)数据凝聚(5)功能凝聚3模块耦合(1)数据耦合(2)控制耦合(3)内容耦合,控制结构图的绘制,1绘制的依据和过程依据:数据流程图。过程:首先将上层数据流程图映射为上层控制结构图,由顶层数据流程图开始,逐级下推,每一层数据流程图中的处理功能映射为相应的模块。图示2以转换为中心结构的模块分解分解为输入、处理、输出三大部分。教材P173图5-11图示3以业务为中心结构的模块分解分解一个检查业务类型模块和一个调度类型模块,调度类型模块可以继续分为不同处理逻辑的子模块。教材P174图5-13图示,系统平台设计,管理信息系统平台设计包括计算机处理方式,网络结构设计,网络操作系统的选择,数据库管理系统的选择等软、硬件选择与设计工作等。1、按管理信息系统的目标选择系统平台单项业务系统综合业务管理系统集成管理系统信息处理模式2、计算机处理方式的选择和设计选择根据选择方式3、计算机网络系统的设计有关内容请参考计算机网络的技术书籍,系统平台设计,4、数据库管理系统的选择选择原则5、软、硬件选择根据系统需要和资源约束进行选择采用采购招标方式进行硬件的选择原则软件的选择原则,数据库设计,1文件设计2数据库设计的要求和步骤3概念结构设计4逻辑结构设计说明:关系模型在第二章已讲,数据库的物理实现用VFP,机房上机。,文件设计,文件设计就是根据文件的使用要求、处理方式、存储量、数据的活动性以及硬件设备的条件等,合理地确定文件类别,选择文件介质,决定文件的组织方式和存取方法。1、文件的分类主文件(静态文件+动态文件)业务文件输入文件输出文件工作文件转存文件,531文件设计,2、文件设计的步骤了解已有的或可提供的计算机系统功能确定文件设计的基本指标与其他文件的接口文件的数据量文件的逻辑结构文件的处理方式文件的使用率文件的存取时间文件的保密确定合适的文件组织方式、存取方式和介质编写文件设计说明书,数据库设计的要求和步骤,1数据库设计的要求满足用户要求满足数据库管理系统要求具有较高的范式2数据库设计的步骤(1)数据库的概念结构设计(2)数据库的逻辑结构设计(3)数据库的物理结构设计,533概念结构设计,1概念模型的表示方法E-R图+实例分析2确定系统实体、属性与联系3确定局部E-R图(含属性图)4确定完整E-R图将各个局部E-R图合并为完整E-R图5优化E-R图,概念结构设计,具体操作:通读文字描述,确定所有实体,用矩形表示通读文字描述,逐一确定各实体之间的联系,并用菱形表示标出各联系的类型用椭圆添加实体属性,并用下划线注明主属性,工厂物资管理(较完整的E-R图示例),实体仓库、零件、供应商、项目、职工实体间的联系一个仓库可以存放多种零件,一种零件可存放在多个仓库中一个仓库有多个职工当仓库保管员,一个职工只能在一个仓库工作职工中有领导:仓库主任供应关系中都是多对多的关系,工厂物资管理实体及其属性图,工厂物资管理实体及其属性图,工厂物资管理实体及其联系图,完整的E-R图,主码?,逻辑结构设计,1概念模型转换为关系数据模型的原则一个实体转换为一个关系,实体的属性就是关系的属性,实体的码就是关系的码一个联系也转换为一个关系,联系的属性以及联系所连接的实体的属性转换为关系的属性,码的转换:1:1联系两端实体的码都成为关系的候选码1:n联系n端实体的码成为关系的码m:n联系两端实体的码组合成为关系的码2关系的转换实体关系;联系关系;码属性用下划线3关系的合并将具有相同码的关系合并关系模型的优化范式理论,代码设计,1代码概述2代码设计方法3管理信息系统中的代码,代码设计,代码社会现象:全国公民的身份证号码学生的学号职工的职工号银行操作员编号数据流程图中的代码,代码概述,1、定义代码(Code)是人为确定的代表客观事物(实体)名称、属性或状态的符号或者是这些符号的组合。2、作用唯一化+规范化+系统化+快速化,代码设计方法,1代码设计的原则(1)足够的容量;(2)按属性系统化;(3)分类的柔性;(4)系统间的协调2代码的类型(1)顺序码以某种顺序形式编码。(2)数字码(成组码)即以纯数字符号形式编码。区间码+层次码。(3)字符码(表意码)即以纯字符形式编码(英文、汉语拼音等)。(4)混合码即以数字和字符混合形式编码。(5)其他重复码+专用码+组合码。,代码设计方法,3代码的设计方法(1)线分类方法线分类方法的主要出发点是:首先给定母项,母项下分若干子项,由对象的母项分大集合,由大集合确定小集合,最后落实到具体对象。举例。(2)面分类方法主要从面角度来考虑分类。举例。代码3212表示材料为钢的1.0mm圆头的镀铬螺钉。,代码设计方法,4代码的校验(1)录入代码时的可能错误:识别错误+易位错误+双易位错误+随机错误(2)避免代码录入出现错误的办法增加校验位。(3)校验位的确定步骤理论+举例。,代码设计方法,4代码的校验原设计的一组代码为五位:32456,确定权数为7,6,5,4,3求代码每一位Ci与其对应的权数Pi的乘积之和SS=C1*P1+C2*P2+C5*P5=3*7+2*6+4*5+5*4+6*3=21+12+20+20+18=91确定模M,M=11取余R,R=SMOD(M)=91MOD(11)=3校验位C6=R=3最终代码为:C1C2C3CC5C6,即324563使用时为:324563,管理信息系统中的代码,1部门代码采用成组码。前两位为部门编码,后两位为科室编码。2人员代码可以采用顺序码或组合码。3物资代码采用成组码,并用表意码辅助。4设备代码采用组合码。产品代码+部门代码+顺序号构成的物资码。,管理信息系统中的代码,5产品代码采用成组码或表意码。EWH-69C。6工程代码采用成组码。序列号+年份+工程性质7会计科目代码采用成组码。分段分级设计代码。,详细设计,概述结构化构造图形设计工具伪码与程序设计语言各种详细设计工具的比较详细设计文件与复审,概述,概要设计完成了程序的总体结构设计,规定了各个模块的功能及各模块之间的相互联系,再进一步,要考虑每个模块内部的算法问题。从软件开发的工程化观点来看,在使用程序设计语言编写程序以前,需要对算法的逻辑关系进行分析,并给出清晰的表达,使之成为编码的依据。这一步工作不仅编码工作容易多了,而且给软件的维护带来了很多的方便。,在理想的情况下,详细设计步骤需要的过程描述应当用自然语言来表达。但是,详细设计必须是无歧义地描述过程的细节,而自然语言却不具有单一性。必须使用更有约束性的方式来表示过程细节。在概要设计期间,每个模块被定义为软件总体结构的组成部分,用自然语言编写结构图和接口说明、模块的处理说明和性能说明。为了把这些简明的、无歧义的一般处理步骤的描述转换为准确的、结构过程的描述,就需要使用设计描述工具。,结构化构造,过程规格说明的工具称之为详细设计工具,可分为:图形工具:把过程的细节表示成一个“图”的组成部分,在这个图上,逻辑构造用具体的图形来表示。列表工具:用一个表来表示过程的细节,表列出了各种操作及相应的条件。语言工具:用类语言来表示过程的细节,类语言很接近编程语言。不管属于哪一类,一种设计工具应表现出控制的流程、处理功能、数据的组织及实现的细节。,详细设计的基础在60年代初期开始奠定和充实的。60年代后期,提出了一组逻辑构造,利用这组逻辑构造可以构成任何程序。这组构造强调“维持一定的功能域”。也就是说,每个构造有一个预定的逻辑结构,每个构造都从顶部进入并从底部离去。顺序构造是实现任何一个算法的基本处理步骤。条件构造根据某种逻辑条件的出现而选择相应的处理步骤。重复构造则是为循环而设置的。这三种构造是结构程序设计软件工程领域中的一种重要方法的基础。,提出这些结构化构造的目的是限制软件的过程设计,只允许采用几种预定的操作。采用这些结构化构造将减少程序的复杂性,从而提高软件的可读性、可测试性和可维护性。使用有限的几种逻辑构造还有助于人们用“成块识别”的方式去理解进程。任何一个程序,不管它的应用领域或技术复杂性如何,都可以仅仅用这3种结构化构造来设计和实现。,详细设计中的图形工具有:流程图方块图(N-S图)HIPO图PAD图等这些图形工具提供了极好的图形样式,通过它们,可以方便地描述过程的细节。,图形设计工具,流程图独立于各种程序设计语言,比较直观、清晰,易于学习掌握。然而,它也是经常被误用的一种方法。为使流程图能描述结构化程序,限制流程图只能由几种基本控制结构组成,或者说任一程序流程图都应能由几种基本控制结构嵌套而成。ISO5807信息处理数据流程图、程序流程图、系统流程图、程序网络图和系统资源图的文件编制符号及约定中对程序流程图的符号做出了规定。,【例】画出实现符号函数的流程图。,通常,当需要从一组嵌套的循环构造或者嵌套的条件构造中离去时,只简单地采用结构化构造有可能使效率降低,甚至沿着离去路径使所有逻辑测试复杂化,从而使软件的控制流程变得模糊不清,增加了出错的可能性,并且对可读性和可维护性也有不良影响。这时,可以有两种选择:重新设计程序流程,使得在控制流程的嵌套部位不需要出现离去分支。有控制地采用非结构化的构造;也就是说,设计成有限制地从嵌套流程中往外分支。,方块图是一种强制使用结构化构造的图示工具,具有下列特点:明确规定功能域(即某一具体构造的功能范围),并且很直观地从图形表示中看出来。不可能随意分支或转移。可以很容易地确定局部数据和(或)全程数据的作用域。容易表示出递归结构。,NS图是一种不允许破坏结构化的图形算法描述工具。在NS图中去掉了流程图中易引起麻烦的流程线,全部算法都写在一个框内,每一种结构也是一个框。,【例】画出实现符号函数的NS图。,对应与一个结构化流程图的方块图,HIPO(层次加输入-处理-输出)是根据IBM公司研制的软件设计与文件编制技术发展而来的一种图示工具。在概要设计、详细设计、设计评审、测试和维护的不同阶段,都可以使用HIPO图对设计进行描述。HIPO图的最重要的特征是它能够表示输入/输出数据(外部数据和内部数据流程)与软件的过程之间的关系。完整的一组HIPO图由下列各部分组成:层次图(H图):以层次方框形式表达程序主功能模块与次功能模块的关系。高层IPO图:针对H图中的主功能模块和次功能模块,描述其输入,处理功及输出等。低层IPO图:给出H图中最低层次的具体设计。,在画H图时要注意几个问题:根据经验,一般每层画3-10个功能模块为宜。对于画到第几层为止则无统一标准,视具体情况而定。画高层IPO时,从H层第一层开始画,按自上而下,从左到右的顺序画出H图中每个方框(除最底层外)的IPO图。在IPO图上给出哪些是输入,处理的功能是什么,输出什么。为了避免规模和维护上的复杂性问题,大多数项目的HIPO图只深入到某一层。,PAD(问题分析图)是一种用于软件详细设计的表达形式:综合流程图、Warnier图(类似判定树)、方块图和伪码等技术的一些特点;以二维树的形式描述程序的逻辑;主要优点是程序结构清晰,能够直接导出程序代码,并对其一致性进行检查;可应用于BASIC、FORTRAN、COBOL、PASCAL等高级语言;支持软件需求分析和概要设计阶段。,PAD图采用自顶向下、逐步求精和结构化设计的原则:力求将模糊的问题解的概念逐步转换成确定的、详尽的过程。最终可采用计算机进行处理。PAD为软件设计提供了3种基本控制结构(顺序、循环和选择)描述,首先要从系统设计的一种模糊的概念出发,将过程描述为:过程顺序部分的表示过程重复部分的表示过程选择部分的表示重复上述步骤,直到过程完全确定和详尽为止。,PAD图对应的程序执行的步骤:PAD的执行顺序是从最左主干线的上端结点,自上而下依次执行。当遇到判断或循环时,就自左而右进入下一层从表示下一层的纵线上端开始执行,直到该纵线下端,再返回上一层的纵线的转入处。如此继续,直到执行到主干线的下端为止。,【例】画出实现符号函数的PAD图。,伪码是控制结构和某些编程语言元素的简写符号,可以任意插入注释,实质上是“文字流程图”。熟悉某种程序设计语言的设计人员所用的伪码可能就是该语言的简化版本。实际使用时,设计人员可以随意增加伪码的详细程度,特别是针对可能产生二义性的地方。伪码的缺点是不标准,而且只有控制结构,对数据描述能力很差。,伪码设计语言,程序设计语言(PDL,又称详细设计语言DDL)弥补了伪码的缺点,它是一种“混杂式语言”。它采用某种语言(例如英语)的词汇但却采用另一种语言(即一种结构化编程语言)的全部语法,它用文本格式提供一种描述数据和处理的方法。PDL有正规的句法,指出数据和处理结构,并用自然语言说明细节。虽然程序设计语言是不可执行的,但可以对之开发出评价设计和转换为源程序的自动化技术。,为了实现从详细设计到编码的自动转换,各种程序设计语言都开发了相应的PDL,如PDL/PASCAL,PDL/C,以及PDL/Ada等,它们利用程序设计语言的语法结构,用自然语言表示某些控制信息,使面向设计的部分减少,面向实现的部分增加,从而使程序设计语言更件接近可执行代码。程序设计语言可分为三个部分:数据说明处理说明I/O对特殊的应用,如多任务语句或实时应用等,可以提供专用的结构和语句。,PROCEDUREspellcheckIS查找错拼单词BEGINsplitdocumentintosinglewords将整个文档分解成单词lookupwordsindictionary在字典中查找这些单词displaywordswhicharenotindictionary显示找不到单词createanewdictionary造一个新字典ENDspellcheck,在总体结构上它和高级语言程序的相似之处主要在于:关键字起到了骨架作用。按程序结构缩格书写。主要差别表现在:除去特定的若干关键字外,所描述的内容也使用了简单的自然语言,没有高级语言那样严格的语法限制。程序设计语言是用于详细设计阶段的工具,这个阶段的任务显然与用高级语言编写程序的任务完全不同。程序设计语言把叙述性说明文直接插入到PDL语句中。由于混合使用叙述性说明文和形式化的过程形式,故一般无法对其进行编译。,PDL可以是一种稍作变动的编程语言,或者是为程序设计而专门研制的语言。作为一种程序设计语言,PDL应当具有以下特征:其关键字有固定语法,以便提供全部结构化构造、数据说明和模块化特性。一种自然语言的自由文法,用来描述处理性能。有数据说明机制,包括简单的(标量与数组)与复杂的数据结构(链表或层次结构)。有子程序定义与调用方法,用来表达各种方式的接口说明。一个用程序设计语言描述的软件设计应当可以转换成汇编语言、FORTRAN或者Pascal,只是难易程度有所不同而已。,任何一种详细设计工具如果使用得当,对设计有很大帮助;如果使用不当,则即便是最好的工具也不会有什么帮助。一个详细设计工具应:可以用来得到便于理解和复审的过程表示。应增强编程的能力,以便使程序事实上成为设计的一个自然的产物。得到的设计表达还必须便于维护,以使设计总是能够正确地表达程序。,根据上面介绍的一般特性,设计工具应具有:模块性:支持模块化软件的开发。简明性:应易学、易用、易读。便于编辑:在设计、测试和维护阶段便于修改。机器可读性:应能直接输入到计算机内处理。可维护性:软件配置的维护意味对详细设计的维护。强行结构化:会使人们养成良好的设计习惯。自动处理:使设计人员对软件的正确性与质量有新的深入了解。数据表示:应具有直接地表示局部和全程数据的能力。逻辑验证:要达到设计逻辑的自动验证这个首要目标。编程能力:所表示的设计可以很容易转换成源程序。,设计工具的选择更大程度上取决于人的因素,而不是取决于技术特性。,详细设计完毕,应交付的文件有:详细设计说明书初步的模块开发卷宗。,详细设计文件与复审,详细设计说明书又称程序设计说明书。编制本说明书的目的是说明一个软件系统各个层次中的每一个程序(每个模块或子程序)的设计考虑,如实现算法、逻辑流程等。,软件的详细设计完成以后,必须从正确性和可维护性两个方面,对它的逻辑、数据结构和界面等进行检查。详细设计的复审可用下列形式之一完成:设计者和设计组的另一个成员一起进行静态检查。由一个检查小组进行的较正式的“结构设计检查”。由检查小组进行的正式的“设计检查”,对软件设计质量给出严肃的评价。软件开发的实践表明,正式的详细设计复审在发现某些类型的设计错误方面和测试一样有效。正确的态度是:在详细设计复审中,不为设计辩护,而是揭短,揭露出设计中的缺点错误。,任何一个程序,都可以仅仅用顺序、条件和重复三种结构化构造来设计和实现,并且将减少程序的复杂性,提高可读性、可测试性和可维护性。用来表示详细设计的工具分成三个大类图形、列表和语言。详细设计中的设计工具主要有程序流程图、方块图、HIPO图和PAD图、程序设计语言PDL以及判定表等。详细设计产生的主要文件是详细设计说明书,它为编写源代码提供了必要的说明。,小结,思考与习题,5-1举例说明你对概要设计与详细设计的理解。有不需要概要设计的情况吗?5-2请为一个程序进行详细设计,该程序接收一串任意长度的字符串文本作为输入,并列表输出文本中出现的字和每个字出现的次数。5-3本题是供小组完成的题目。请为一个自动化详细设计工具进行需求分析、概要设计与详细设计。这种自动化工具可以是:(1)一个以计算机为基础的绘图系统,用来产生流程图的方块图。(2)一个判定表分析程序。(3)一个PDL缩进编排辅助程序和流程分析程序。5-4某些人主张,如果详细设计的详细程度与包含在源程序中的细节十分接近时,也可以删去详细设计这个步骤,直接编写程序就行了。对吗?,5-5从供选择的答案中选出应填入下列关于软件详细设计叙述的()内的正确答案。软件详细设计工具可分为三类,即:图示工具、设计语言和表格工具。图示工具中,(A)简单而应用广泛、(B)表示法中,每一个处理过程用一个盒子表示,盒子可以嵌套。(C)可以纵横延伸,图形的空间效果好。(D)是一种设计语言,它是一种面向(E)的语言。若用判定表来描述图5-14所示的流程图。将b1,b2,b3作为条件栏s1,s2作为操作栏,则化简后的判定表中应有(F)个规则。图5-14习题5-5供选择的答案:A-C:NS图流程图HIPO图PAD图D:CPDLPROLOGPASCALE:人机器数据结构对象F:8462,5-6从供选择的答案中选出应该填入下列关于软件的叙述的()内的正确答案。软件设计阶段可划分为概要设计阶段和(A)设计阶段。用结构化设计方法进行设计时,用来表示模块间的调用关系的图叫做(B)图。根据输入输出的数据结构产生程序结构的设计方法叫做(C)方法。用来描述软件设计结果的一种著名的语言是(D)。可以用(E)图描述输入、处理、输出三者之间的关系。供选择的答案:A:逻辑详细程序一般B,E:PADHCPSCSADTHIPONSC:DijkstraParnasWirthJacksonD:PDLAPLPSLSDL,
展开阅读全文