软件工程建设软件设计资料文档.ppt

上传人:夺命阿水 文档编号:235709 上传时间:2023-03-10 格式:PPT 页数:119 大小:2.64MB
返回 下载 相关 举报
软件工程建设软件设计资料文档.ppt_第1页
第1页 / 共119页
软件工程建设软件设计资料文档.ppt_第2页
第2页 / 共119页
软件工程建设软件设计资料文档.ppt_第3页
第3页 / 共119页
软件工程建设软件设计资料文档.ppt_第4页
第4页 / 共119页
软件工程建设软件设计资料文档.ppt_第5页
第5页 / 共119页
点击查看更多>>
资源描述

《软件工程建设软件设计资料文档.ppt》由会员分享,可在线阅读,更多相关《软件工程建设软件设计资料文档.ppt(119页珍藏版)》请在课桌文档上搜索。

1、软件设计,4,第四章,4.1 软件设计阶段的任务与目标,软件设计是对实现软件的结构、系统的数据、系统组件之间的接口以及所用算法的描述。软件设计是软件开发的关键步骤,直接影响软件的质量。在软件需求分析阶段已经完全弄清楚了软件的各种需求,较好地解决了所开发的软件“做什么”的问题,并已在软件需求说明书中详尽和充分地阐明了这些需求以后,下一步就要着手实现软件的需求,即软件设计阶段要解决“怎么做”的问题。,4.1 软件设计阶段的任务与目标,4.1.2 软件设计阶段的任务,4.1.2 软件设计阶段的任务,一、软件设计的任务,总体设计(概要设计)和详细设计。概要设计的主要任务:1.设计软件结构(1)采用某种

2、设计方法,将一个复杂的系统按功能划分成模块(2)确定每个模块的功能(3)确定模块之间的调用关系(4)确定模块之间的接口,即模块之间传递的信息(5)评价模块结构的质量2.数据结构及数据库设计(1)数据结构的设计:设计抽象的数据结构(2)数据库的概念设计、逻辑设计和物理设计3.编写概要设计文档文档主要有:(1)概要设计说明书。(2)数据库设计说明书,主要给出所使用的DBMS简介、数据库的概念模型、逻辑设计结果。(3)用户手册,对需求分析阶段编写的用户手册进行补充。(4)修订测试计划,对测试策略、方法、步骤提出明确要求。,详细设计:确定模块内算法;数据结构详细设计(JACKSON方法);接口内部的细

3、节。,4.1.2 软件设计阶段的任务,二、软件设计的目标在设计阶段应达到的目标是:提高可靠性;提高可维护性;提高可理解性;提高效率。衡量该目标的准则:1、软件实体有明显的层次结构,利于软件元素间控制。2、软件实体应该是模块化的,模块具有独立功能。3、软件实体与环境的界面清晰。4、设计规格说明清晰、简洁、完整和无二义性。,常用的设计方法有:SD法、Jackson法、HIPO法、Parnas法、Warnier法等。,4.2 软件结构与软件结构图,4.2 软件结构与软件结构图,软件结构是软件模块之间关系的表示,它决定了整个系统的结构,也确定了系统的质量。模块之间的关系可有多种,但都可以归结为一种层次

4、关系。软件结构图是总体设计阶段的主要描述工具,它描述了构成系统的基本元素模块及模块之间的调用关系,模块之间的数据传递关系。本节讨论如何进行软件结构的设计,设计的准则以及为了提高软件系统的质量,如何对软件结构进行改进的技术。,4.2.1 软件结构的基本概念,二、模块化 模块化就是将系统划分为若干个模块,每个模块完成一个子功能。模块化的目的是将系统“分而治之”,模块化能够降低问题的复杂性,使软件结构清晰,易阅读、易理解,易于测试和调试,因而也有助于提高软件的可靠性。,4.2.1软件结构的基本概念,软件结构表示软件系统的构成,是软件模块间关系的表示,下图则为软件结构示意图。下面先介绍几个相关的的概念

5、。,一、模块(Module)模块是程序对象有名字的集合。例如,过程、函数、子程序、宏等,是构成软件系统结构的基本元素。,软件结构图,模块化降低软件复杂度的简单证明,4.2.1软件结构的基本概念,模块化降低软件复杂度的简单证明,令:C(X)表示问题 X 的复杂度函数;E(X)解决问题 X 所需工作量的复杂度函数;若:有问题 P1,P2;C(P1)C(P2);显然:E(P1)E(P2)由经验:C(P1+P2)C(P1)+C(P2)于是:E(P1+P2)E(P1)+E(P2)将问题(P1+P2)划分为两个问题P1和P2后,其工作量和复杂度都降低。,并非模块分得越小越好,因为模块之间接口的复杂度和工作

6、量增加。显然,每个软件系统都有一个最佳模块数M。注意选择分解的最佳模块数。右上图描述了模块化与软件成本的关系。,软件的层次结构,4.2.1软件结构的基本概念,顶层,1层,2层,扇入为2,扇出为3,扇入为3,3层,4层,软件结构示意图,有关指标:深度:表示软件结构中从顶层模块到最底层模块的层数。宽度:表示控制的总分布。扇出数:指一个模块直接控制下属的模块个数。扇入数:指一个模块的直接上属模块个数。,一个好的软件结构的形态准则是:顶部宽度小,中部宽度大,底部宽度次之;在结构顶部有较高的扇出数,在底部有较高的扇入数。,软件结构图表示软件的系统结构,它是软件模块间关系的表示,软件之间的各种关系,均可表

7、示为层次结构。如图所示。,4.2.2 软件的树状结构和网状结构,4.2.2 软件的树状结构和网状结构,由模块连接而得到的软件结构最普通的形式就是树状结构和网状结构。在树状结构中,位于最上层的根部是顶层模块,它是程序的主模块。与其联系的有若干下属模块,各下属模块还可以进一步引出更下一层的下属模块,如图所示的树状结构。,树状结构的特点是:整个结构只有一个顶层模块,而对于任何一个下属模块来说,它只有一个上级模块,而且同一层模块之间不发生关系。,网状结构,在网状结构中,任何两个模块间都可以有双向的关系,不分层次。任何两个模块都是平等的,没有从属关系。,网状结构,(a),(b),4.2.2 软件的树状结

8、构和网状结构,比较两种结构的特点:对于不加限制的网状结构,由于模块间相互关系的任意性,使得整个结构十分复杂,处理起来势必引起许多麻烦,这与原来划分模块为便于处理的意图相矛盾。所以在软件开发的实践中,人们通常采用树状结构,而不采用网状结构。,模块5,模块5,模块4,模块4,4.2.3 软件结构图(SC图),模块1,模块3,模块2,values,values,data,data,模块1,模块2,模块3,values,values,data,data,4.2.3 软件结构图(SC图),结构图(Structure Chart,简称SC图)是精确表达软件结构的图形表示方法,它以特定的符号表示模块、模块间

9、的调用关系和模块间信息的传递。结构图的主要构成有:模块(Module):,数据:,模块调用图,调用:,data,例:画出打印报告的软件结构图,调用次序为上层调用下层;同层按照数据传递关系确定;一般从左到右执行。执行过程即按照数据流向进行。,报 告,计 算,获得编辑,确认数据,读入,编辑,打印报告头,打印报告尾,打印,输入EOF,输入,已编辑,已编辑,已编辑,已确认,已确认数据,已确认数据,计算结果,结果,日期,总结果,行,行,行,4.2.3 软件结构图(SC图),打印报告,予以确认,4.3 模块的独立性,4.3 模块的独立性,上一节讨论了关于软件结构与软件结构图的概念,本节进一步讨论影响软件系

10、统质量的另一个关键问题,模块的独立性问题。模块化方法已经为所有工程领域所接受。模块化的主要优点是,模块化设计降低了软件系统的复杂性,使得系统容易修改,同时使得系统各个部分可以并行开发,从而提高了软件的生产率。提高模块质量在于提高模块独立性。模块的独立性用耦合性和内聚性来衡量。,4.3.1 模块独立性(module independence),4.3.1 模块独立性,“模块”,又称“构件”,一般指用一个名字可调用的一段程序。它一般具有如下三个基本属性:功能 即指该模块实现什么功能,做什么事情。必须注意:模块功能,应是该模块本身的功能加上它所调用的所有子模块的功能。逻辑 即描述模块内部怎么做。状态

11、 即该模块使用时的环境和条件。所谓模块的独立性,是指软件系统中每个模块只涉及软件要求的具体的子功能,而和软件系统中其他模块的接口是简单的。即功能专一,模块之间无过多的相互作用的模块。这种类型的模块可以并行开发,模块独立性越强,开发越容易。独立性强的模块,还能减少错误的影响,使模块容易组合、修改及测试。,4.3.1 模块独立性(module independence),4.3.1 模块独立性,模块独立性的度量标准是两个定性准则:耦合性 用于描述模块之间联系的紧密程度。内聚性 用于描述模块内部联系的紧密程度。模块独立性比较强的模块应该是具有高内聚性和的低耦合度。,模块间耦合的类型:,低 无直接耦合

12、耦 数据耦合合 标记耦合性 控制耦合 外部耦合 公共耦合 高 内容耦合,模块独立性,弱,(低耦合),强,(中耦合),(较强耦合),(强耦合),(1)无直接耦合,两个模块没有直接关系(模块1和模块2),模块独立性最强。,模块1,模块2,模块3,模块4,(2)数据耦合,一模块调用另一模块时,被调用模块的输入、输出都是简单的数据(若干参数)。属松散耦合。,数据耦合举例,开发票,计算水费,单价数量,金额,(3)标记耦合(特征耦合),如两个模块通过传递数据结构(不是简单数据,而是记录、数组等)加以联系,或都与一个数据结构有关系,则称这两个模块间存在标记偶合。,标记耦合举例,计算水电费,计算水费,计算电费

13、,住户情况,水费,电费,住户情况,“住户情况”是一个数据结构,图中模块都与此数据结构有关.“计算水费”和“计算电费”本无关,由于引用了此数据结构产生依赖关系,它们之间也是标记偶合.,将标记耦合修改为数据耦合举例,计算水电费,计算水费,计算电费,本月用水量,本月用电量,水费,电费,(4)控制耦合,一模块向下属模块传递的信息(开关量、标志等控制被调用模块决策的变量)控制了被调用模块的内部逻辑。,控制耦合举例,A,计算平均分或最高分,B,平均/最高(控制信号),成绩,读入分数,输出结果,计算平均分,计算最高分,平均/最高?,B,控制耦合增加了理解和编程的复杂性,调用模块必须知道被调模块的内部逻辑,增

14、加了相互依赖去除模块间控制耦合的方法:(1)将被调用模块内的判定上移到调 用模块中进行(2)被调用模块分解成若干单一功 能模块,改控制耦合为数据耦合举例,A,计算平均分,B1,平均成绩,最高成绩,计算最高分,B2,(5)外部耦合,一组模块共享全局简单变量而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息。C语言Extern,(6)公共耦合(公共数据区耦合),一组模块引用同一个公用数据区(也称全局数据区、公共数据环境)。公共数据区指:全局数据结构 共享通讯区 内存公共覆盖区等,公共耦合举例,公共数据区,C,B,模块A、B、C间存在错综复杂的联系,(1)软件可理解性降低(2)诊断错误困

15、难(3)软件可维护性差,(4)软件可靠性差(公共数据区及全程变量无保护措施)慎用公共数据区和全程变量!,公共耦合存在的问题:,(7)内容耦合,一模块直接访问另一模块的内部信息(程序代码或数据),最不好的耦合形式!,A,B,A,B,模块代码重叠,Entry1 Entry1,多入口模块多个功能,如何降低模块间耦合度:,(1)尽量使用数据耦合少用控制耦合限制公共耦合的范围坚决避免使用内容耦合(2)降低接口的复杂性,2.模块独立性的度量之二:内聚性,一个模块内部元素在功能上相互关联的强度 设计目标:高内聚(模块在软件过程中 完成单一的任务),模块的内聚性类型:,低 偶然内聚 内 逻辑内聚 聚 时间内聚

16、 性 过程内聚 通信内聚 信息内聚 高 功能内聚,模块独立性,弱(功能分散),强(功能单一),(1)偶然内聚(巧合内聚),模块内各部分间无联系,A,B,C,M,MOVE O TO RREAD FILE FMOVE S TO T,模块M中的三个语句没有任何联系缺点:可理解性差,可修改性差,例:,(2)逻辑内聚,几个逻辑上相关的功能被放在同一模块中,则称为逻辑内聚。如一个模块读取各种不同类型外设的输入。尽管逻辑内聚比偶然内聚合理一些,但逻辑内聚的模块各成分在功能上并无关系,即使局部功能的修改有时也会影响全局,因此这类模块的修改也比较困难。,逻辑内聚模块,A,B,C,E,F,G,A,B,C,EFG,

17、A1,B1,C1,EFG模块内部逻辑,E、F、G逻辑功能相似,组成新模块EFG,缺点:增强了耦合程度(控制耦合)不易修改,效率低,公用代码段,公用代码段,(3)时间内聚(经典内聚),模块完成的功能必须在同一段时间内执行,这些功能只因时间因素关联在一起。例如:初始化系统模块、系统结束模块、紧急故障处理模块等均是时间性聚合 模块.,(4)过程内聚,模块内各处理成分相关,且必须以特定次序执行程序流程图划分模块通常是过程内聚的。,过程内聚模块,读入成绩单,审查成绩单,统计成绩,打印成绩,读入并审查成绩单,统计并打印成绩单,(5)通信内聚,模块内各部分使用相同的输入数据,或产生相同的输出结果,通信内聚模

18、块例,产生工资报表,计算平均工资,职工工资记录,职工工资报表,平均工资,产生职工工资报表并计算平均工资模块,(6)顺序内聚,一个模块内的处理元素和同一个功能密切相关,而且这些处理必须顺序执行(通常一个处理元素的输出数据作为另外一个处理元素的输入数据)。数据流图划分的模块,(7)功能内聚,模块仅包括为完成某个功能所必须的所有成分。(模块所有成分共同完成一个功 能,缺一不可)内聚性最强,内聚与耦合密切相关,同其它模块强耦合的模块意味者弱内聚,强内聚模块意味着与其它模块间松散耦合.设计目标:力争强内聚、弱耦合,4.4 结构化设计方法,软件设计分为两个阶段:(1)概要设计(总体设计)确定软件的结构以及

19、各组成成分(子系统或模块)之间的相互关系。(2)详细设计 确定模块内部的算法和数据结构,产生描述各模块程序过程的详细文档。,4.5 概要设计(总体设计),主要确定:软件系统的结构各模块功能及模块间联系(接口)表示软件结构的图形工具结构图层次图和HIPO图,面向数据流的设计方法(结构化设计方法SD),4.5.1.面向数据流设计方法的基本概念 SD以数据流图为基础,它定义了把DFD变换成软件结构的不同映射方法,映射,DFD(问题结构),软件系统的结构(程序结构),系统结构特征可归纳为两种典型形式:,变换型结构事务型结构数据流图可分为两种类型:变换型数据流事务型数据流,变换中心,输入,输出,变换型结

20、构,事务中心,接受路径,动作路径,基本模型 特征,事务型 结构,由输入、变换中心和输出三部分组成,具有在多种事务中选择执行某类事物的能力,变换型数据流 结构,事务型数据流 结构,传入,变换,传出,变换中心,传入部分,传出部分,事务分析,事务中心,动作 1,动作 2,动作 3,接受,接受部分,变换型数据流举例,输入信息,物理输入,格式检查,处理,显示,正确信息,结果,物理输出,数据,变换中心,逻辑输入,逻辑输出,传入部分,传出部分,特点:具有明确的传入、变换(或称主加 工)和传出界面的DFD,事务型数据流图举例,I,M,L,N,O,A,B,C,D,F,E,G,H,大型系统DFD中,变换型和事务型

21、结构往往共存:,T,事务中心,传入,变换,传出,4.5.2 面向数据流设计方法的设计步骤,(1)精化DFD(2)确定DFD类型(3)把DFD映射到系统模块结构设计 出模块结构的上层(4)基于DFD逐步分解高层模块设计 出下层模块(5)根据模块独立性原理,精化模 块结构(6)模块接口描述,面向数据流方法的设计过程,精化数据流图,区分事务中心和数据接收路径,映射成变换结构,流类型,区分输入和输出分支,映射成事务结构,用启发式设计规则精化软件结构,导出接口描述和全程数据结构,复查,详细设计,“事务”,“变换”,事务分析,变换分析,SD方法的两种映射过渡方法,变换型DFD,事务型DFD,初始SC,初始

22、SC,变换分析,事务分析,初始的SC,主模块,输入模块,主加工模块,输出模块,事务控制模块,接受模块,动作发送模块,动作1模块,动作2模块,动作3模块,由变换分析产生,由事务分析产生,1.变换分析设计方法,步骤:(1)区分传入、变换中心、传出部分,在 DFD 上 标明分界线,B,C,A,D,E,Q,P,R,W,U,V,a,b,c,e,d,r,p,u,w,v,变换中心,传入部分,传出部分,变换分析设计方法步骤,(2)第一级分解(建立初始SC框架)设计顶层和第一层模块,第一级分解的方法,MC,MT,MA,ME,第一级分解后的SC,MC,MT,MA,ME,第一层,顶层,c,e,c,e,u,w,u,w

23、,传入模块,传出模块,中心变换模块,变换分析设计方法步骤,(3)第二级分解(分解SC各分支)自顶向下分解,设计出每个分支的中、下层模块,传入分支的分解,MA,C,B,A,b,a,c,E,D,d,e,c,e,传出分支的分解,W,v,ME,U,w,u,w,u,V,(1),中心加工分支的分解,MT,P,Q,R,e,c,p,r,u,w,p,r,任何情况下都可使用变换分析方法设计软件结构,但如数据流具有明显的事务特点时(有一个明显的事务中心),以采用事务分析方法为宜。,2.事务分析设计方法,事务分析设计方法步骤:,(1)在DFD上确定事务中心、接收部 分和发送部分。(2)画出SC框架,把DFD上的三部分

24、 分别映射为事务控制模块、接收 模块和动作发送模块。(3)分解细化接收分支和发送分支,完成初始SC。,用户命令交互子系统,密码命令,密码,显示信息,系统参数数据,用户命令,读系统数据,配置信息,显示信息和状态,命令分析处理,命令类型,开/关命令,建立配置文件,原配置数据,格式化配置数据,配置命令,重试信息,四位数字,检验信息,检验信息,A/D信息,格式化配置数据,格式化配置数据,初始的SC,主模块,输入模块,主加工模块,输出模块,事务控制模块,接受模块,动作发送模块,动作1模块,动作2模块,动作3模块,由变换分析产生,由事务分析产生,事务分析的映射方法,总控,调度,B路径,C路径,接收路径,用

25、户命令交互子系统初始的SC,用户执行模块,读用户命令,命令处理,用户命令交互子系统,密码,显示信息,系统参数数据,用户命令,读系统数据,配置信息,显示信息和状态,命令分析处理,命令类型,建立配置文件,原配置数据,格式化配置数据,重试信息,四位数字,检验信息,检验信息,A/D信息,格式化配置数据,格式化配置数据,密码命令,开/关命令,配置命令,用户命令交互子系统的SC,用户执行模块,读用户命令,命令处理,用户命令交互子系统,密码,显示信息,系统参数数据,用户命令,读系统数据,配置信息,显示信息和状态,命令分析处理,读密码,命令类型,建立配置文件,原配置数据,与文件中密码比较,格式化配置数据,检验

26、信息过程,重试信息,四位数字,检验信息,检验信息,A/D信息,配置数据,格式化配置数据,密码命令,开/关命令,配置命令,用户命令交互子系统的SC,用户执行模块,读用户命令,命令处理,4.5.2 层次图和HIPO图,IBM公司发明的HIPO图:层次图+输入/处理/输出图(H图)(IPO图)(Hierachy Input Process Output),1.层次图(H图),表示软件的层次结构,正文加工系统,输入,输出,编辑,加标题,存储,检索,编目录,添加,删除,插入,修改,合并,列表,带编号的层次图(H图),正文加工系统,输入1.0,输出2.0,编辑3.0,加标题 4.0,存储5.0,检索6.0

27、,编目录 7.0,添加3.1,删除3.2,插入3.3,修改3.4,合并3.5,列表3.6,2.HIPO图,H图中每一方框(模块)均有一张IPO图对应 航线调度系统HIPO图举例 H图:,命令监控器1.0,取得输入1.1,输入确认 1.2,请求确认1.3,更新处理 1.4,传统的IPO图举例,输入,处理,输出,读口令请求,口令文件,1取得输入,2口令确认,3请求确认,请求记录,权限文件,4更新处理,权限记录,状态报告,响应,命令监控器(1.0)的IPO图,改进的IPO图格式,IPO图,系统:,模块:,编号:,作者:,日期:,被调用:,调用:,输出:,输入:,输入:,局部数据元素:,注释:,4.6

28、详细设计(过程设计、模块设计),主要任务:编写详细设计说明书为此,设计人员应:(1)确定每个模块的算法,用工具 表达算法的过程,写出模块的 详细过程性描述。(2)确定每一模块的数据结构。(3)确定模块接口细节。详细设计是编码的先导。,4.6.1 详细设计的描述方法,详细设计工具:(1)图形工具(2)表格工具(3)语言工具,1.程序流程图,2.盒图(N-S图),3.问题分析图(PAD),4.过程设计语言(PDL)(伪码),5.判定表,1.盒图(N-S图),用方框图代替传统的流程图描述五种基本控制结构的图形构件(1)顺序型,A,B,C,(2)选择型(If then else)If then els

29、e If then,A,B,F,条件,T,A,F,T,条件,then 部分,then 部分,else部分,(3)多分支选择型(CASE型),A1,值1,A2,An,.,.,条件,值2,值n,(4)WHILE重复型(5)UNTIL重复型,S(循环体),DO-WHILE P,S(循环体),REPEAT UNTIL P,(先测试循环),(后测试循环),循环条件,(6)并行结构,A1,A2,An,.,(7)移出标记,A,C,B,F,X6,T,A:,D,(调用结构),2.问题分析图(PAD),(Problem Analysis Diagram)基本控制结构:(1)顺序结构(2)选择结构,A,B,C,A,

30、B,T,F,条件,(3)重复结构,WHILE C,S,UNTIL C,S,(先测试循环),(后测试循环),等价的PASCAL语言:REPEAT C UNTIL S,等价的PASCAL语言:WHILE C DO S,(4)多分支选择型(CASE型),A1,值1,值2,值n,A2,An,.,.,.,.,条件,3.判定表(决策表),描述多条件、多目标动作的形式化工具,判定表举例(计算机票折扣率),旅游时间,订 票 量,折 扣 量,79,12月,20,20,20,20,15%,5%,20%,30%,条件类别,四种条件组合,操作,条件组合下操作的执行,16,10,11月,判定树(Decision 决策树

31、),条件1 条件2 结果计 79,订票量20:15%算 12月 订票量20:5%折扣 16,订票量20:30%量 10,11月 订票量20:5%,4.PDL(1)关键字的固定语法,它提供了结构化控制结构、数据说明和模块化的特点。为了使结构清晰和可读性好,通常在所有可能嵌套使用的控制结构的头和尾都有关键字,例如,iffi(或endif)等等。(2)自然语言的自由语法,它描述处理特点。(3)数据说明的手段。应该既包括简单的数据结构(例如纯量和数组),又包括复杂的数据结构(例如,链表或层次的数据结构)。(4)模块定义和调用的技术,应该提供各种接口描述模式。,1、可使用性 使用简单 用户界面中所用术语

32、的标准化和一致性 具有HELP功能 快速的系统响应和低的系统成本 具有容错能力 2、灵活性 考虑用户的特点、能力、知识水平。提供不同的系统响应信息。提供根据用户需求制定和修改界面。3、界面的复杂性与可靠性 复杂性界面规模及组织的复杂程度。应该愈简单愈好。可靠性指无故障使用的时间间隔。用户界面应该能够保 证用户正确、可靠地使用系统,及程序、数据的安全。,4.7.1 用户界面应具有的特性,4.7 用户界面设计,1、用户特性分析 用户模型 了解所有用户的技能和经验,针对用户能力设计或更改界面。从以下方面分析:用户类型通常分为:外行型、初学型、熟练型、专家型。用户特性度量与用户使用模式和用户群体能力有

33、关。包括:用户使用频度、用户用机能力、用户的知识、思维能力等。,4.7.2 用户界面设计的任务,这部分工作应该与软件需求分析同步进行。包括以下内容:,2、用户界面的任务分析 任务模型(DFD图)是对系统内部活动的分解,不仅要进行功能分解(用DFD图描述),还要包括与人相关的活动。每个加工即一个功能或任务。3、确定用户界面类型,1、菜单(menu)按照显示方式 正文菜单、图标菜单、正文和图标混合菜单,如:开始菜单。,4.7.3 用户界面的基本类型,字符界面、GUI界面、无交互界面。设计原则:以人为本,以用户的体验为准。GUI界面的主要元素如下:,按屏幕位置和操作风格 固定位置、浮动位置(弹出)、

34、下拉式、嵌入式,混合菜单,2、图 象 在用户界面中,加入丰富多彩的画面,将能够更加行象地为用户提供有用的信息,以达到可视化的目的。主要的处理操作有:图象的隐蔽和再现、屏幕滚动和图案显示、动画等。,3、对话框 对话框是在需要时,显示在屏幕上一个矩形区域内的图形和正文信息。通过对话,实现系统和用户之间的通信。对话框显示的方式与弹出式菜单类似,即瞬时弹出。同时,系统还应将对话框所覆盖的原图象进行保存,以便在对话结束后能立即恢复。有三种对话形式:,必须回答式如图3.58所示无需回答式 如图3.59所示警告式 如图4.58所示,必须回答式对话框,无需回答式对话框,警告式对话框,4、窗口(window)图

35、形学中称为视图区(Viewport),视为虚拟屏幕。一个实用窗口,可包含部件:菜单区(menu bar)图标区(icon bar)标题区(title bar)移动区(move bar)大小区(size bar)退出区(quit bar)用户工作区(users work bar)横向滚动区(horizontal scroll bar)纵向滚动区(vertical scroll bar),窗口,数据I/O界面,是系统的重要组成部分。主要从输入速度和减少出错率考虑。,1、尽量减少输入工作量 对相同内容输入设置默认值 自动填入 列表选择或点击选择,2、屏幕显示与输入匹配 即屏幕显示按照数据使用频率、重

36、要性、次序等组织。,3、数据输入的一般规则确定输入交互动作确定删除提供反馈,4.7.4 数据I/O界面设计,4.7.5 软件设计规格说明与复审,二、设计复审 必要性 统计表明:软件开发过程中50%60%的错误是在设计阶段引入的。,一、软件规格说明书 软件设计阶段完成,应提交设计文档:1、改进后的模块结构图(包含模块说明)2、各模块的详细说明(流程图、N-S图、PAD图等),复审方式 1、正式复审:会议详细审议。2、临时性复审:对局部问题进行讨论。,补充:软件体系结构1.什么是软件体系结构,对系统结构的总体设计与说明是一种高层设计关注三方面问题:构件、构件间关系、关系约束构件:软件系统由哪些部分

37、构成例如:程序模块、数据库、服务器等构件间的关系:这些部分之间的交互关系是什么例如:RPC(远程过程调用)、共享内存等关系的约束:这些关系有什么约束例如:互斥、依赖,2、目前软件体系结构的研究热点,(1)软件体系结构描述ADL(2)软件体系结构分类原理、模式(3)特定领域的框架框架(4)体系结构形式化的基础过程代数、化学抽象机等,客户机/服务器体系结构,应用系统的组成:显示逻辑部分(表示层):实现与用户交互应用处理部分(功能层):进行具体运算和数据处理数据管理部分(数据层):对数据库中数据进行查询、修改、更新等任务,应用分层,表示层,功能层,数据层,三层明确分割,逻辑上独立,瘦客户机和胖客户机

38、,客户机,“胖”客户机,应用处理逻辑,显示逻辑,服务器,数据管理逻辑,数据库,“瘦”客户机,表示,显示逻辑,数据管理逻辑,数据库,表示应用处理,应用处理逻辑,客户机,服务器,客户服务器结构缺点:灵活性差、升级困难、维护工作量大等缺陷,Browse/Server(简称B/S)结构优势:(1)无须开发客户端软件,维护和升级方便;(2)可跨平台操作,任何一台机器只要装有WWW浏览 器软件,均可作为客户机来访问系统;(3)具有良好的开放性和可扩充性;(4)可采用防火墙技术来保证系统的安全性,有效地适应了当前用户对管理信息系统的新需求。,B/S体系结构,o5,S(o5),o6,S(o6),分布式对象体系

39、结构,o1,S(o1),o2,S(o2),o3,S(o3),o4,S(o4),基本系统组件是对象,提供一组服务,对外给出 服务的接口 对象之间不存在客户机与服务器的界限,接受服 务者扮演客户机角色,提供服务者就是服务器 对象可能分布在网络的多台计算机上,通过中间 件相互通信,软件总线(中间件),MVC模式,MVC英文即Model-View-Controller,视图(View)代表用户交互界面,对于Web应用来说,可以概括为HTML界面。模型(Model):就是业务流程/状态的处理以及业务规则的制定。控制(Controller)可以理解为从用户接收请求,将模型与视图匹配在一起,共同完成用户的请

40、求。,MVC与J2EE架构的对应关系是:View处于Web Tier或者说是Client Tier,通常是JSP/Servlet,即页面显示部分。Controller也处于Web Tier,通常用Servlet来实现,即页面显示的逻辑部分实现。Model处于Middle Tier,通常用服务端的javaBean或者EJB实现,即业务逻辑部分的实现。,把模型、视图、控制器实行分离,使设计和使用有了很大灵活性。但是,在现实中,视图和控制器的功能通常是紧密地联系在一起的。控制视图工作的输入事件通常都是与视图的构成相关的。在现实界面设计环境中,界面操作事件及其处理都是与界面形式设计紧密关联的。在这种情况下,把视图和控制器分离开,就给分析和设计带了了不方便,并且运行的效率低。因此,可以把视图和控制器结合起来加以设计和实现。只要把视图和控制器的类合并生成新的视图类即可。这样,仍然保持着与模型的分离,因此相同的模型仍然可以使用多个视图。这些视图本身已经具备了事件处理能力,仍然可以通过模型对其功能进行控制。,

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

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号