第5章结构化设计.ppt

上传人:sccc 文档编号:5638231 上传时间:2023-08-04 格式:PPT 页数:129 大小:3.96MB
返回 下载 相关 举报
第5章结构化设计.ppt_第1页
第1页 / 共129页
第5章结构化设计.ppt_第2页
第2页 / 共129页
第5章结构化设计.ppt_第3页
第3页 / 共129页
第5章结构化设计.ppt_第4页
第4页 / 共129页
第5章结构化设计.ppt_第5页
第5页 / 共129页
点击查看更多>>
资源描述

《第5章结构化设计.ppt》由会员分享,可在线阅读,更多相关《第5章结构化设计.ppt(129页珍藏版)》请在三一办公上搜索。

1、软件工程,第5章 总体设计,2/96,传统的软件工程方法学采用结构化设计(Structured Design,SD)技术,完成软件设计工作,通常把软件设计工作划分为概要设计和详细设计这样两个阶段。,3/96,引言 设计人员把分析的结果设计图纸 程序员拿着设计图纸编写代码,需求规格说明书,概要设计,设计图纸-软件结构图,模块4设计,详细设计,需求分析成果,4/96,5.1.2 结构化设计与结构化分析的关系,结构化分析的结果为结构化设计提供了最基本的输入信息。两者的关系如图所示。,5/96,5.1.2 结构化设计与结构化分析的关系,结构化设计方法的实施要点(1)研究、分析和审查数据流图。(2)根据

2、数据流图决定问题的类型:变换型和事务型。针对两种不同的类型分别进行分析处理。(3)由数据流图推导出系统的初始结构图。(4)利用一些启发式原则来改进系统的初始结构图,直到得到符合要求的结构图为止。(5)根据分析模型中的实体关系图和数据字典进行数据设计,包括数据库设计或数据文件的设计。(6)在上面设计的基础上,并依据分析模型中的加工规格说明、状态转换图进行过程设计。(7)制定测试计划。,6/96,5.2 结构化设计的原理,结构化设计(Structured Design,简称SD)是将结构化分析得到的数据流图映射成软件体系结构的一种设计方法强调模块化、自顶向下逐步求精、信息隐蔽、高内聚低耦合等设计准

3、则分为概要设计和详细设计两大步骤概要设计是对软件系统的总体设计,采用结构化设计方法,其任务是:将系统分解成模块,确定每个模块的功能、接口(模块间传递的数据)及其调用关系,并用模块及其对模块的调用来构建软件的体系结构详细设计是对模块实现细节的设计,采用结构化程序设计(Structured Programming,简称SP)方法SA、SD和SP构成完整的结构化方法体系,7/96,5.2.1 模块化 模块是由边界元素限定的相邻程序元素(例如,数据说明,可执行的语句)的序列,而且有一个总体标识符代表它。按照模块的定义,过程、函数、子程序和宏等,都可作为模块。,8/96,有人说,模块化是为了使一个复杂的

4、大型程序能被人的智力所管理,软件应该具备的惟一属性。如果一个大型程序仅由一个模块组成,它将很难被人所理解。设函数C(x)定义问题x的复杂程度,函数E(x)确定解决问题x需要的工作量(时间)。对于两个问题P1和P2:如果C(P1)C(P2)显然E(P1)E(P2),9/96,人类解决一般问题的经验,另一个有趣的规律是:C(P1+P2)C(P1)+C(P2)E(P1+P2)E(P1)+E(P2)这个不等式导致“各个击破”的结论把复杂的问题分解成许多容易解决的小问题,原来的问题也就容易解决了。这就是模块化的根据,10/96,11/96,结构化分析方法中的抽象与分解,抽象:从作为整体的软件系统开始(第

5、一层),每一抽象层次上只关注于系统的输入输出分解:将系统不断分解为子系统、模块随着分解层次的增加,抽象的级别越来越低,也越接近问题的解(算法和数据结构),12/96,结构变化,同一个问题的各种软件结构,13/96,5.2.5 模块的独立性 1耦合度:模块同模块的联系称为块间的联系(模块的耦合度)2内聚度:一个模块内部各成份的联系称为块内的联系(模块的内聚度),14/96,耦合度按从强到弱的顺序可分为几种类型:(6)独立耦合:模块间没有信息传递时,属于非直接耦合,耦合性与模块属性的关系,15/96,(5)数据耦合:指两个模块彼此交换数据(两个模块间的通讯信息是若干参数,其中每一个参数都是一个数据

6、元素),16/96,(4)控制耦合:一个模块在界面上传递一个信号(如开关值、标志量等)控制另一个模块,接收信号的模块的动作根据信号值进行调整,称为控制耦合。,17/96,(3)特征耦合,介于数据耦合与控制耦合之间。当把整个数据结构作为参数传递而被调用的模块是需要其中一部分数据元素时。,18/96,(2)公共耦合:两个以上的模块共同引用一个全局数据项,公共环境可以是全局变量、存储介质上的文件、物理设备、共享通讯区等,19/96,(1)内容耦合:当一个模块直接修改或操作另一个模块的数据或者直接转入另一个模块时,就发生了内容耦合。,代码重复,多入口,20/96,耦合是影响软件复杂程度的一个重要因素。

7、在软件设计中应该采取下述设计原则:尽量使用数据耦合,少用控制耦合,限制外部耦合和公共耦合的范围,完全不用内容耦合。,21/96,练习:分析下图模块间的耦合类型,模块P,T,U更新同一个数据库模块之间的接口如下:,22/96,内聚度按强度从低到高有以下几种类型:(1)偶然内聚:模块内的各个任务没有什么有意义的联系,它们之所以能构成一个模块完全是偶然的原因。,23/96,(2)逻辑内聚:几个逻辑上相关的功能被放在同一模块中,则称为逻辑内聚。,24/96,(3)时间内聚:如果一个模块完成的功能必须在同一时间内执行(如系统初始化),但这些功能只是因为时间因素关联在一起,则称为时间内聚。,25/96,(

8、4)过程内聚:如果一个模块内部的处理成份是相关的,而且这些处理必须以特定的次序执行,则称为过程内聚。,26/96,(5)通信内聚:如果一个模块的所有成份都操作同一数据集或生成同一数据集,则称为通信内聚。,27/96,(6)顺序内聚:如果一个模块的各个成份和同一个功能密切相关,而且一个成份的输出作为另一个成份的输入,则称为顺序内聚。,28/96,(7)功能内聚:模块的所有成份对于完成单一的功能都是必须的,则称为功能内聚。,29/96,内聚与模块属性的关系,30/96,模块内聚性的判断,31/96,5.3 启发规则,软件工程师们在开发计算机软件的长期实践中积累了丰富的经验,总结这些经验得出了一些启

9、发规则。,32/96,启发式设计策略-1,按照模块化设计原则,相应的启发式设计策略如下:模块规模应该适中,改造程序结构图,降低耦合度,提高内聚度,33/96,启发式设计策略-2,避免高扇出,并随着深度的增加,力求高扇入避免如图a那样的“平铺”形态,较好的结构图形态是如图b那样的“椭圆”型,34/96,启发式设计策略-3,模块的影响范围应限制在该模块的控制范围内,例如下图中图a中,模块B2的影响范围(模块A)不在其控制范围(模块B2)内决策控制是在顶层模块,其影响范围(A、B2)在控制范围内,但是从决策控制模块到被控模块之间相差多个层次c和d较合适,d为最好,35/96,启发式设计策略-4,降低

10、模块接口的复杂程度和冗余程度,提高一致性模块接口上应尽可能传递简单数据,而且传递的数据应保持与模块的功能相一致,即不传递与模块功能无关的数据,例如:求一元二次方程根的模块QUAD_ROOT(TBL,X),利用数组TBL传递方程的系数,X回送求得的根。QUAD_ROOT(A,B,C,ROOT1,ROOT2),36/96,启发式设计策略-4,接口复杂或不一致,(即看起来传递的数据之间没有联系),是紧耦合或低内聚的征兆,应重新分析这个模块的独立性模块的功能应是可预测的,避免对模块施加过多的限制模块功能可预测是指该模块对相同的输入能产生相同的输出限制一个模块只处理单一的功能,那么,这个模块体现出高内聚

11、尽可能设计单入口和单出口的模块单入口和单出口的模块能有效地避免内容耦合,37/96,5.4 描绘软件结构的图形工具,5.4.1 层次图和HIPO图,图5.4 带编号的层次图(H图),38/96,5.4.2 结构图,(1)软件结构图的基本图形符号:模块:调用:模块间通讯:数据信息:控制信息:,39/96,调用和数据,调用(call):用从一个模块指向另一个模块的箭头来表示,其含义是前者调用了后者数据(data):模块调用时需传递的参数可通过在调用箭头旁附加一个小箭头和数据名来表示,40/96,结构图,用结构图(Structure Chert)来描述软件系统的体系结构描述一个软件系统由哪些模块组成

12、,以及模块之间的调用关系结构图的基本成分有:模块、调用和数据,U,V,41/96,42/96,结构图中的辅助符号,D,B,C,A,图5.7a 循环调用,图5.7b 递归调用,43/96,5.4.2 结构图的几个概念,深度:程序结构图中控制的层数,例如图中所示的结构图的深度是5宽度:程序结构图中同一层次上模块总数的最大值,例如图中所示的结构图的宽度为7扇出(fan out):该模块直接调用的模块数目。例如,例如图中模块M的扇出是4,模块A的是2,模块B的扇出是1扇入(fan in):能直接调用该模块的模块数目。例如图中模块G的扇入是1,模块I的扇入是2,模块R的扇入是4,44/96,相关指标的含

13、义,深度和宽度在一定程序上反映了程序的规模和复杂程度相对而言,如果程序结构图的深度和宽度较大,则说明程序的规模和复杂程度都较大。模块的扇入扇出会影响结构图的深度和宽度,例如减少模块的扇出,可能导致宽度变小而深度增加一个模块的扇出过大通常意味着该模块比较复杂,然而扇出太少,可能导致深度的增加一般情况,一个模块的扇出以59为宜一个模块的扇入表示有多少模块可直接调用它,它反映了该模块的复用(reuse)程度,因此模块的扇入越大越好,45/96,结构化设计的步骤,建立初始结构图将整个软件看作一个大的功能模块,通过功能分解不断将其分解成若干个较小的功能模块,直至得到一组不必再分解的模块(结构图中的底层模

14、块)对结构图进行改进可根据设计准则和启发式设计策略对初始结构图进行改进书写设计文档书写设计规格说明,特别要为每个模块书写模块的功能、接口、约束和限制等设计评审,46/96,数据流图到软件体系结构的映射,基于数据流的设计方法也称为过程驱动的设计方法;这种方法与软件需求分析阶段的结构化分析方法相衔接,可以很方便地将用数据流图表示的信息转换成程序结构的设计描述;,5.5 面向数据的设计方法,47/96,基于数据流方法的设计过程,48/96,典型的数据流类型和系统结构,典型的数据流类型有变换型数据流和事务型数据流,数据流的类型不同,得到的系统结构也不同。通常,一个系统中的所有数据流都可以认为是变换流,

15、但是,当遇到有明显事务特性的数据流时,建议采用事务型映射方法进行设计。,49/96,典型的数据流类型和系统结构,变换型数据流 变换型数据处理问题的工作过程大致分为3步,即取得数据、变换数据和给出数据,如图所示。,50/96,变换流,特征:数据流图可明显地分成输入、变换、输出三部分信息沿着输入路径进入系统,并将输入信息的外部形式经过编辑、格式转换、合法性检查、预处理等辅助性加工后变成内部形式内部形式的信息由变换中心进行处理然后沿着输出路径经过格式转换、组成物理块、缓冲处理等辅助性加工后变成输出信息送到系统外,时间,51/96,典型的数据流类型和系统结构,变换型系统结构图 变换型系统的结构图由输入

16、、中心变换和输出3部分组成。,52/96,事务流,特征:数据流沿着输入路径到达一个事务中心,事务中心根据输入数据的类型在若干条动作路径中选择一条来执行事务中心的任务是:接收输入数据(即事务);分析每个事务的类型;根据事务类型选择执行一条动作路径,53/96,变换型映射方法,系统数据处理问题的处理流程总能表示为变换型数据流图,进一步可采用变换型映射方法建立系统的结构图。也可能遇到明显的事务数据处理问题,这时可采用事务型映射方法。,54/96,变换型映射方法,变换分析方法的步骤(1)重画数据流图。在需求分析阶段得到的数据流图侧重于描述系统如何加工数据,而重画数据流图的出发点是描述系统中的数据是如何

17、流动的。(2)在数据流图上区分系统的逻辑输入、逻辑输出和中心变换部分。,55/96,确定输入/出流边界和变换中心-1,相关概念:物理输入:指系统输入端的数据流物理输出:指系统输出端的数据流逻辑输入:指变换中心的输入数据流逻辑输出:指变换中心的输出数据流划分可能因人而异,但差别不会太大并可通过以后的结构图改进进行调整有的时候物理输入无须预处理而直接用于系统的加工处理,此时物理输入就是逻辑输入(同样也存在物理输出就是逻辑输出的情况),56/96,确定输入/出流边界和变换中心-2,确定逻辑输入:根据DFD从物理输入端开始,一步步向系统的中间移动,可找到离物理输入端最远的,但仍可被看作系统输入的那个(

18、或那些)数据流,就是逻辑输入确定逻辑输出:根据DFD,从物理输出端开始,一步步向系统的中间移动,可找到离物理输出端最远的,但仍可被看作系统输出的那个(或那些)数据流,就是逻辑输出确定变换中心:确定了所有的逻辑输入和逻辑输出后,位于逻辑输入和逻辑输出之间的部分就是变换中心,57/96,变换型映射方法,变换分析方法的步骤(3)进行一级分解,设计系统模块结构的顶层和第一层。自顶向下设计的关键是找出系统树形结构图的根或顶层模块。首先设计一个主模块,并用程序的名字为它命名,然后将它画在与中心变换相对应的位置上。第1层设计:为每个逻辑输入设计一个输入模块,它的功能是为主模块提供数据;为每个逻辑输出设计一个

19、输出模块,它的功能是将主模块提供的数据输出;为中心变换设计一个变换模块,它的功能是将逻辑输入转换成逻辑输出。,58/96,变换型映射方法,变换分析方法的步骤 第一层模块与主模块之间传送的数据应与数据流图相对应,如图所示。,59/96,变换型映射方法,变换分析方法的步骤(4)进行二级分解,设计中、下层模块。这一步工作是自顶向下,逐层细化,为每一个输入模块、输出模块、变换模块设计它们的从属模块。设计下层模块的顺序是任意的。但一般是先设计输入模块的下层模块。输入模块的功能是向调用它的模块提供数据,所以它必须有一个数据来源。所以有两个下属模块:一个接受数据;另一个把这些数据转换为上级模块所需的数据。如

20、是物理端,则细化工作停止。,60/96,A,F,D,E,C,B,a,k,h,f,e,d,c,b,j,物理输入,物理输出,逻辑输出,逻辑输入,信息处理中心,变换型数据流图,(加工或变换),61/96,System,Get b,b in to j,Out j,In a,a in to b,B,C,D,E,j in to k,Out k,b,b,j,j,b,a,a,k,b,h,f,e,f,c,c,d,h,d,e,k,j,j,变换流映射成软件结构图,62/96,图5.11数字仪表板系统的数据流图,63/96,图5.12具有边界的数据流图,64/96,第一级分解的方法,数字仪表板系统的第一级分解,65/

21、96,第二级分解的方法,66/96,67/96,未经精化的输入结构,?,68/96,未经精化的变换结构,?,69/96,精化后的数字仪表板系统的软件结构,70/96,事务型映射方法,事务分析也是从分析数据流图开始,自顶向下,逐步分解,建立系统的结构图。,71/96,事务型映射方法,事务分析方法的步骤(1)识别事务源。利用数据流图和数据词典,从问题定义和需求分析的结果中,找出各种需要处理的事务。(2)规定适当的事务型结构。在确定了该数据流图具有事务型特征之后,根据模块划分理论,建立适当的事务型结构。(3)识别各种事务和它们定义的操作。(4)注意利用公用模块。,72/96,事务型映射方法,事务分析

22、方法的步骤(5)建立事务处理模块。对每一事务,或对联系密切的一组事务,建立一个事务处理模块。(6)对事务处理模块规定它们全部的下层操作模块。(7)对操作模块规定它们的全部细节模块。大型的软件系统通常是变换型结构和事务型结构的混合结构,所以,我们通常利用以变换分析为主,事务分析为辅的方式进行软件结构设计。,73/96,事务分析与设计实例,某火车售票查询系统的数据流图如下:,按照事务中心的分析方法构造软件结构图,74/96,按照事务中心的分析方法,根据事务设计一个顶层总控制块,将事务中心的输入数据流对应为一个第一层的接受模块,得到模块结构图:,75/96,事务型映射方法,混合结构的例子,76/96

23、,初始结构图的改进,对结构图改进的依据就是观察这种改进是否符合软件设计的准则和启发式设计策略因此结构图的改进没有明显的步骤,也很难定义终止条件设计改进往往伴随着折中例如提取多个模块中的相同功能可以提高模块的独立性和复用程度,但会增加模块间的联系改进往往不是一次完成的,需要进行多次的反复,有时还需要在多个改进方案进行选择,77/96,5.6 接口设计,接口设计概述 接口设计的依据是数据流图中的自动化系统边界。接口设计主要包括3个方面:模块或软件构件间的接口设计;软件与其他软硬件系统之间的接口设计;软件与人(用户)之间的交互设计。人机交互(用户)界面是人机交互的主要方式,78/96,5.6.1、什

24、么是用户界面设计,用户界面是人与计算机之间搭建的一个有效的交流媒介。开发人员遵循一系列的界面设计规则,定义界面对象和界面动作,并把对象、动作和规则统一到操作屏幕上,实现一个布局合理、操作方便、友好的用户界面。,79/96,北方工业大学教学信息管理系统网站,80/96,模糊不清,设计混乱的界面,81/96,5.6.2、界面设计源于需求分析阶段,仔细记录用户对软件界面的布局要求操作要求色彩要求还要了解使用者的年龄、受教育程度、专业和爱好等信息,82/96,5.6.3、界面设计三条“黄金原则”,Theo Mandel提出了三条界面设计原则:置用户于控制之下:用户界面能够对用户的操作作出恰当的反应,并

25、帮助用户完成需要的工作。减少用户的记忆负担:系统应该“记住”有关的信息,通过缺省项、快捷方式或界面视觉减少用户的记忆负担。保持界面的一致:用户应该以一致的方式展示和获取信息。,83/96,一、易用性是界面设计的核心,1)按功能将界面划分为块,每块要有功能说明或标题。相近功能的界面元素,像命令按钮、选择按钮等元素,应集中放置或者用组框将它们括起来,减少鼠标移动的距离。2)对于同一种功能应该提供多种操作方式:鼠标、快捷键或者声音等等。,84/96,3)界面要支持键盘浏览按钮功能,即按Tab键的自动切换功能。Tab键的顺序与控件排列顺序要一直,一般是从上到下、从左到右。4)按照信息的输入顺序,以及信

26、息的重要程度安排控件,重要的信息应放在窗口较醒目的位置。5)一个界面的控件数最好不超过10个,多于10个时应该考虑使用分页或多标签页显示。6)分页界面要支持在页面间的快捷切换,常用组合快捷键Ctrl+Tab。7)默认按钮要支持Enter操作,即按Enter后自动执行默认按钮对应的操作。8)当检测到非法输入后应给出说明并能自动获得焦点。,85/96,9)复选项和单选项应按选择机率排列,支持默认选项和Tab选择。10)当选项个数较少并且固定时,应采用选项框而不用下拉列表框。但是如果界面空间较小时,应该使用下拉框而少用选项框。11)当软件的功能很多,特别是分支复杂的情况下,应该提供方便的导航功能,引

27、导用户顺利完成需要的一系列功能。如下图所示。12)界面用词要规范。,86/96,87/96,二、界面必须一致,最忌讳每换一个屏幕,用户就要换一套操作命令与操作方法。,88/96,1)完成相同或相近功能的菜单项用横线隔在同一组内。2)菜单深度一般要求控制在三层以内。3)图标能直观地代表要完成的操作。4)工具栏可以由用户自己定制,其中的每个按钮要有瞬时提示信息,工具栏的长度不能超出屏幕宽度。常用的工具栏有默认位置。,89/96,5)状态条显示用户需要的信息:目前的操作、系统状态、用户位置、提示信息、错误信息等,如果某一操作需要的时间较长,还应该显示进度条和进程提示。6)滚动条的长度要根据显示信息的

28、长度或宽度及时变换,滚动条的宽度比状态条的略窄。7)菜单条和工具条要有清楚的界限。8)右键快捷菜单采用与菜单相同的准则。,90/96,三、界面提供帮助,1)提供及时调用系统帮助的功能,常用F1键。2)调用帮助时,能够定位到与该操作相对应的位置,即帮助要有即时性和针对性。3)提供关键词搜索帮助的功能。4)在帮助中提供技术支持方式,一旦用户难以自己解决问题时,可以方便地寻求其他帮助方式。5)帮助中应该提供超级链接和返回功能。,91/96,92/96,四、界面设计合理性,1)屏幕布局合理,不过于密集或稀疏,合理地利用空间。2)主窗体位置和比例合适。3)子窗体位置应该在主窗体的左上角或正中。多个子窗体

29、弹出时应该依次向右下方偏移,以显示出窗体标题为宜。4)重要的命令按钮与使用较频繁的按钮要放在界面瞩目的位置。按钮大小应该与界面大小成比例、大小一致,按钮上文字不要太长,要避免在空旷的界面上放置很大的按钮。5)关闭窗体的按钮不应该放在易点位置,经验表明横排开头或最后与竖排最后的按钮为易点位置。,93/96,6)与正在进行的操作无关的控件应该加以屏蔽,通常用灰色表示无效控件。7)界面风格要保持一致,字的大小、颜色、字体要相同,除非是需要艺术处理或有特殊要求的地方。字体通常使用宋体9-12,很少使用超过12号的字体。8)一个界面中最好不要超过3种颜色。前景与背景色搭配要协调,反差不宜太大,主色要柔和

30、,通常使用浅色调,如浅灰、白色等,具有亲和力。重要操作组件则以彩度较高的颜色来表达,但是区域不可太大,否则看起来显得很混乱。9)如果能给用户提供自定义界面风格更好,由用户自己选择颜色、字体等。,94/96,10)对可能造成数据无法恢复的操作必须提供确认操作,给用户放弃选择的机会。11)非法的输入或操作应有准确的提示说明。12)对运行过程中出现问题要有提示,让用户明白错误出处,避免形成无限期等待。13)允许用户中断当前的工作,转去执行其他任务,结束后再回到中断点继续工作。14)由于不同的用户可能有不同的需求,软件可以根据需要设置“下一步”、“完成”等操作步骤,面对不同层次的用户提供多种选择。例如

31、卡巴斯基反病毒软件的安装界面,用户在安装此软件时,可以根据自己的需要选择不同功能,并且可以方便地实现“上一步”、“下一步”或“取消”等的跳转。,95/96,五、界面的独特性,1)软件启动首页应该为高清晰度图像,如果需要在不同的平台上运行,则应该考虑格式转换。应该醒目地标注公司标志、产品商标、软件名称、版本号、网址、版权声明和序列号等信息。2)帮助菜单的“关于”中应有版权和产品信息。3)公司的系列产品要保持一致的界面风格,如背景色、字体、菜单排列方式、图标、安装过程、按钮用语等应该大体一致。,96/96,公司的标志、物品分类、新手上路,97/96,版权声明,98/96,六 界面的容错性,用户在操

32、作软件过程中可能会有误操作,如果每次的误操作都导致系统退出,会使用户对软件失去信心。这意味着用户要中断思路,并重新登录;已进行的操作因没有存盘而全部丢失。界面设计者应当尽量周全地考虑到各种可能发生的问题,尽量排除可能会使软件非正常中止的错误。,99/96,1)对用户的输入提供必要的提示,避免用户录入无效的数据。,100/96,2)采用相关控件限制用户输入值的类型。,101/96,3)当用户的选择是多选一时,可以采用单选框,否则采用复选框,当选项非常多时,可以采用下拉式列表框。这样可以保证用户的每种选择都是有效的,不可能输入任何无效的选择。,102/96,4)对可能引起致命错误或系统出错的输入字

33、符或动作要加限制或屏蔽。,103/96,5)对错误操作最好支持可逆性处理,如取消系列操作。6)对可能造成等待时间较长的操作应该提供取消功能。,104/96,七、界面与系统响应时间,105/96,5.6.4 界面设计案例输入界面设计,106/96,点评,图书信息的内容比较多,为了便于业务人员操作,在界面上将信息分组:书名与作者、版本及载体项、分类项等等。为了区分必填项,在界面上增加了红色的“*”标识。有些数据项不必让用户输入,在界面上以带下画线的数据项表示。为了界面美观,尽可能将数据项对齐,宋体,大小9pt,数据项名称意思清晰。从图中可以看出图书信息的数据项很多,需要用滚动条来回操作,对用户来讲

34、还是比较繁琐的。改进的方法可以将组框的左上角设计一个“”,单击时展开组框的数据项,组框的左上角显示“”,单击符号“”,收起组框。最下面设计了四个操作按钮,间距相等,意思明确,略有不足的是操作按钮上应该设计热键。业务人员日复一日的操作非常辛苦,用鼠标操作比键盘操作要繁琐,因此设计操作热键是非常必要的。,107/96,查询界面,108/96,点评,查询界面是应用软件最常见的界面,一般要求是查询条件清晰、简洁,查询结果内容丰富、布局合理。上图是简单的数据查询界面,设计上考虑了几个细节:1)查询结果除了列出每个出版社的出版计划外,还列出年度书号核发总量,已经核发的总量、剩余书号总量;2)计算结果的页数

35、,可以前后翻页或直接转到指定的页。3)显示的结果列表可以通过双击表头对查询结果排序。4)界面的左上角设计了一个快速搜索栏,可以快速在结果中定位搜索的内容。,109/96,复杂查询,110/96,点评,复杂查询通常用在不确定的情况,在应用系统中非常多见。用户可以根据需要自由组合查询条件。例如,查询图书2000年1月1日以来出版的“三农”图书,在“三农”选项框前打勾,在起始时间栏填写日期,在“条码下载”、“已审核”等选项前打勾,系统根据查询的条件在数据库中搜索,并显示数据。,111/96,审核界面设计,112/96,点评,在企业信息管理系统中,经常有审核的操作。审核操作经常是根据基层用户上报的数据

36、,结合一些具体的审核规范和标准,填写审核结果:“同意”或“不同意”。界面的左边显示待审核的信息,这部分的底色是浅灰色,表示只能查看不能修改。界面的右上部是四个标签页:管理信息、出版者信息、辑册信息、重版信息,为审核人员提供辅助信息。在界面的右下部分设计了核发结果和核发意见栏,核发结果用下拉列表列出了常用的核发结果,核发意见栏是核发人员填写意见的栏目。操作按钮设计采用最短距离法。问题:左边的图书信息布署比较乱,最好把虚线去掉,用组框分割信息,组框可以关闭和打开。所有的操作按钮和标签页应该设计操作快捷键。,113/96,我的桌面,114/96,我的桌面是指使用者进入系统后的第一个界面,系统根据登录

37、者的身份自动配置出最佳的操作界面。所谓最佳是指:当前最重要的操作、最需要的信息、最重要的消息都显示在界面上,隐去没有操作权限的菜单和按钮,不需要的信息。通常系统的菜单要根据角色配置,显示的信息要根据用户ID号,只显示当前用户可见的信息。最好能够将系统对该用户的提示信息显示在相应的窗口,用户及时了解该做什么。,115/96,5.7 数据设计,文件设计 以下几种情况适合于选择文件存储。(1)数据量较大的非结构化数据,如多媒体信息。(2)数据量大,信息松散,如历史记录、档案文件等。(3)非关系层次化数据,如系统配置文件。(4)对数据的存取速度要求极高的情况。(5)临时存放的数据。,116/96,5.

38、7 数据设计,文件设计 一般要根据文件的特性,来确定文件的组织方式。(1)顺序文件:这类文件分两种,一种是连续文件,另一种是串联文件。(2)直接存取文件:可根据记录关键字的值,通过计算直接得到记录的存放地址。(3)索引顺序文件:其基本数据记录按顺序文件组织,记录排列顺序必须按关键字值升序或降序安排,且具有索引部分,索引部分也按同一关键字进行索引。,117/96,5.7 数据设计,文件设计(4)分区文件:这类文件主要用于存放程序。它由若干称为成员的顺序组织的记录组和索引组成。每一个成员就是一个程序,由于各个程序的长度不同,所以各个成员的大小也不同,需要利用索引给出各个成员的程序名、开始存放位置和

39、长度。(5)虚拟存储文件:这是基于操作系统的请求页式存储管理功能而建立的索引顺序文件。,118/96,5.7 数据设计,数据库设计 根据数据库的组织,可以将数据库分为网状数据库、层次数据库、关系数据库、面向对象数据库、文档数据库、多维数据库等。关系数据库最成熟,应用也最广泛,一般情况下,大多数设计者都会选择关系数据库。在结构化设计方法中,很容易将结构化分析阶段建立的实体关系模型映射到关系数据库中。,119/96,5.7 数据设计,数据对象实体的映射一个数据对象(实体)可以映射为一个表或多个表,当分解为多个表时,可以采用横切和竖切的方法。竖切常用于实例较少而属性很多的对象。通常将经常使用的属性放

40、在主表中,而将其他一些次要的属性放到其他表中。横切常常用于记录与时间相关的对象。往往在主表中只记录最近的对象,而将以前的记录转到对应的历史表中。,120/96,5.7 数据设计,关系的映射 一对一关系的映射:可以在两个表中都引入外键,进行双向导航。也可以将两个数据对象组合成一张单独的表。一对多关系的映射:可以将关联中的“一”端毫无变化地映射到一张表,将关联中表示“多”的端上的数据对象映射到带有外键的另一张表,使外键满足关系引用的完整性。多对多关系的映射:为了表示多对多关系,关系模型必须引入一个关联表,将两个数据实体之间的多对多关系转换成两个一对多关系。,121/96,图书馆图书信息管理系统设计

41、案例,仔细研究这些数据流程图,发现一个图书管理信息系统可以分为五个子系统设计,它们是读者信息管理子系统、借书子系统、还书子系统、采编子系统和系统维护子系统。将一个复杂的系统划分为多个简单的子系统,有利于系统设计和实现。,122/96,进入设计阶段后,要从软件设计的角度重审数据流程图。首先应该为流通组设计一个方便的工作环境,在这个工作环境之中包含了流通组日常要做的所有工作,应该增加一个“还书工作环境”的处理,编号IPO320。“还书工作环境”处理之后应该是流通组门的业务分发处理,所以增加一个“事物分发”处理,编号为IPO321。在处理完某个具体的还书业务之后,有可能导致“通知预约”处理的执行,而

42、“催还”和“通知预约”两个处理之中都隐含了一个共同的处理“发送邮件”,因此,应该将具有相同功能的处理独立成为一个“发送邮件”的处理,编号为IPO324。,123/96,在重画数据流程图时发现,处罚操作属于性质相同的处理,应该将它们归并在一起。每种处罚的规则和处理不同,增加了一个“处罚事物分发”处理,判断不同的处罚类型,每种处罚处理的用户界面不同,为三种处罚类型设计不同的用户界面。最终的处罚结果是保存在一个数据库表中,因此调用同一个“保存处罚记录”处理。在整个处罚的处理部分,基本上是按照逻辑输入、处理、逻辑输出划分的。另外增加了两个界面处理,这是为了将用户界面与业务处理分开来设计和实现,便于系统

43、的维护和修改。下面是修改后的数据流程图:,124/96,还书数据流程图,125/96,126/96,还书子系统结构图,127/96,走查软件结构图,软件结构图中的模块关系体现的是调用关系,模块之间的接口参数在软件结构图上表现出来。设计者根据调用关系在纸上对系统进行初步的试运行,方法是从软件结构图的最顶层按深度优先原则调用下级模块,直到图的最底层。在纸上试运行过程中,填写一张功能模块对照表。,128/96,数据结构与程序模块对照表,软件功能需求与程序模块对照表,第1列是分析阶段确定的软件功能编号,通常一个功能可能需要多个模块实现,如果模块超过5个,往往说明该功能太大,应该将其细分。每个功能都应该有一条自上而下的模块调用通路,如果发现某条通路走下来不能实现需要的功能,就要重新检查数据流程图到软件结构图的转换是否正确。在走查模块时不要进入模块内部的具体处理算法,只是检查接口参数和分配的功能即可,129/96,小结,结构化方法是一种传统的面向数据流开发方法以数据流为中心构建软件的分析模型和设计模型在结构化分析方面,本章介绍结构化分析的基本思想和分析过程,详细介绍了分层数据流图的画法,分层数据流图的审查,数据字典各条目的描述内容以及基本加工小说明的描述方法在结构化设计方面,本章介绍如何将分析的结果(DFD)映射成初始的程序结构图,包括变换分析和事务分析,并介绍对初始结构图的优化,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号