版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第六章详细设计
6.1结构程序设计6.2人机界面设计6.3过程设计的工具6.4面向数据结构的设计方法6.5程序复杂程度的定量度量6.6小结1、详细设计介绍详细设计的根本目标是:确定应该怎样具体地实现所要求的系统。经过这个阶段的设计工作,应该得出对目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。详细设计基本任务主要确定每个模块具体执行过程,有:为每个模块进行详细的算法设计。为模块内的数据结构进行设计。对数据库进行物理设计。其他设计,如:代码设计、输入/输出格式设计、人机对话设计。编写详细设计说明书。评审6.1结构程序设计(SP)一、什么是结构化程序?最早由E.W.Dijkstra
在60年代中期提出。经典定义:如果一个程序的代码块仅仅通过顺序、选择和循环这3种基本控制结构进行连接,而且每个代码块只有一个入口和一个出口,则称这个程序是结构化的。比较全面的定义:结构程序设计是尽可能少用GOTO语句的程序设计方法,最好仅仅在检测出错误时才使用GOTO语句,而且应该总是使用前向的GOTO语句。二、结构化程序设计(SP)主要原则
(1)使用语言中的顺序、选择、重复等有限的基本控制结构表示程序逻辑。
(2)选用的控制结构只准许有一个入口和一个出口。(3)复杂结构应该用基本控制结构进行组合嵌套来实现。(4)严格控制GOTO语句,仅在下列情形才可使用:用一个非结构化的程序设计语言去实现一个结构化的构造。在某种可以改善而不是损害程序可读性的情况下。三、五种基本的结构化控制结构(程序流程图表示)6.2入机界面设计人机界面通常也称为用户界面用户界面友好性属软件性特性,独立于所有具体功能用户界面是否友好很大程度由人的主观因素决定。问:请说说你心目中友好的界面是怎样的?用户界面应具备的特性可使用性如:使用简单、界面中所用术语应该标准化,并保持一致性;拥有Help
功能;较快的系统响应速度和较低的系统开销;具有容错能力。灵活性能满足不同用户的要求;可以制定和修改界面方式;能提供各类的系统响应信息,如反馈、提示、帮助、报错等;与其他软件系统应有标准的界面。复杂性在完成预定功能的前提下,用户界面越简单越好。可靠性用户界面能保证用户正确、可靠地使用系统,保证有关程序和数据的安全性。6.2.1设计问题在设计人机界面过程中,几乎总会遇到以下4个问题:①系统响应时间②用户帮助信息③出错信息处理④命令交互①系统响应时间系统响应时间指从用户完成某个控制动作到软件给出预期的响应之间的这段时间。有两个重要属性:长度:响应时间的长短;易变性:响应时间相对于平均响应时间的偏差。②用户帮助信息具体设计帮助信息时,应该解决以下问题:在用户与系统交互期间,是否在任何时候都能获得关于系统任何功能的帮助信息?(全部或部分)用户怎样请求帮助?(帮助菜单、功能键、Help命令)怎样显示帮助信息?(独立窗口、某个参考文档、屏幕固定位置显示简短提示)用户怎样返回正常的交互方式?(返回按钮、功能键)怎样组织帮助信息?(通过关键字访问、层次结构、超文本结构)③出错信息处理出错信息或警告信息应具有的属性:是用户可以理解的术语应该提高有助于从错误中恢复的建设性意见信息应该指出错误可能导致哪些负面后果(如破坏数据文件)等信息应该伴随视觉听觉上的提示,如警告声等信息不能带有指责色彩④命令交互多数情况,用户应该既可以从菜单中选择命令,也可以通过键盘输入命令。提供命令交互应考虑的问题:是否每个菜单选项都有对应的命令?采用何种命令形式?(控制序列,如ctrl+…;功能键;键入命令)学习和记忆命令的难度多大?忘了怎么办?用户是否可以定制或缩写命令?6.2.3设计过程用户界面设计是一个迭代的过程,包括以下步骤:6.2.3人机界面设计指南界面分类一、一般交互界面二、信息显示界面三、数据输入界面一、一般交互界面1、基本设计指南保持一致性;提供有意义的反馈和帮助信息;执行较大破坏性动作之前要求用户确认;允许犯错误,允许中断或撤销绝大多数操作;
减少两次操作之间必须记忆的信息量;按功能对动作分类,并据此设计屏幕布局用简单动词或短语作为命令名2、交互界面的基本类型①菜单界面②对话③其他①菜单界面按显示形象分类:正文菜单、图标菜单、正文图标混合菜单。按屏幕位置和操作风格分类固定、浮动、下拉式、嵌入式②对话框对话形式必须回答式、无需回答式、警告式对话实现方式标准对话、定做式对话③其他图像窗口二、信息显示界面1、界面显示的基本元素①数据②字符③图形④报告2、基本设计指南可用多种不同方式显示信息。如用图形表示数据只显示与当前工作内容有关的信息使用一致的标记、缩写和可预知的颜色。使用窗口分隔不同类型的信息使用模拟方式表示信息。界面举例网上红心大战三、数据输入界面1、基本设计指南尽量减少用户输入的动作保持信息显示和数据输入的一致性允许用户自定义输人,如键盘输入或鼠标输入当前动作语境中,不适用的命令不起作用。让用户控制交互流,如用户能跳过不必要的动作消除冗余的输入界面举例MSN界面举例颜色使用指南:
一个窗口中不应该出现5种以上不同色系的颜色。一般的,尽量少用不同的颜色总是好的。如果一个图表中仅包含几种颜色,背景应该选用其中一种颜色的补色:如果一幅图中包含许多颜色,背景应该选用一种中性的颜色,如灰色。如果两个相邻的颜色不是特别和谐,可以用细的黑色边框将它们分开。背景和字体颜色应选用对比度强的颜色。颜色的应用要适度,装饰性的使用服从功能性的使用。区域的颜色实际上能够影响他的观察尺寸。使用高饱和度(亮)颜色的大区域是不明智的。红色和蓝色具有最强的深度不一致的效果,红色看起来近,蓝色看起来远。6.3过程设计的工具(1)图形工具程序流程图(FC)盒图(NS)问题分析图(PAD)(2)表格工具判定表判定树(3)语言工具过程设计语言(PDL)6.3.1程序流程图(FC)又称程序框图。以图形方式说明系统中的控制流,是历史最悠久、使用最广泛的一种描述程序逻辑结构的工具。优点:直观清晰、易于使用,是普遍采用的工具。缺点:反映的是最后的结果,不易反映逐步求精的过程可以随心所欲地画控制流程线的流向,容易造成非结构化的程序结构。不易表示数据结构。程序流程图的标准符号6.3.2盒图(N-S图)出于要有一种不允许违背结构程序设计精神的图形工具的考虑,Nassi
和Shneiderman
提出用盒图代替传统的流程图,简称为N一S图。优点:只能描述结构化程序所允许的标准结构。程序结构用方框表示,清晰可见。缺点:当程序内嵌套层数增多时,内层方块越画越小,增加了画图的困难,并使图形的清晰性受到影响。五种基本控制结构在盒图中的表示N-S图的嵌套定义形式盒图例1日立公司发明。用二维树形结构的图来表示程序的控制流,控制流程自上而下,从左往右地执行。优点:程序结构清晰,结构化程度高。支持自顶向下,逐步求精的设计方法。既可以表示程序逻辑,也可以描绘数据结构。用PAD图表现程序逻辑,易读易写,使用方便。容易转换成高级语言源程序,也可用软件工具实现自动转换。6.3.3问题分析图(PAD)五种基本控制结构在PAD图中的表示PAD描述的示例6.3.4判定表判定表能够清晰地表示复杂的条件组合与应做的动作之间的对应关系。如果数据流处理时需要依赖多个逻辑条件的取值,用判定表来描述比较合适。一、判定表组成条件部分给出所有的
两分支判断的列表;动作部分给出相应的处理;例1:检查发货单判定表二、判定表的应用使用判断表进行数据处理说明6.3.5判定树判定树是判定表的变种,能清晰表示复杂的条件组合与操作之间的关系,形式简单,不需要做任何说明,是常见的系统分析工具。例1:检查发货单的判定树“计算行李费”的判定树6.3.6过程设计语言(processDesignLanguage,PDL)也称伪码(pseudocode),是一种介于自然语言和形式化语言之间的语言,用于描述功能模块的算法设计和处理细节的语言。特点:易编写,易理解,容易转换成源程序。例:商店业务处理系统中“检查发货单”
IF发货单金额超过$500THEN
lF
欠款超过了60天THEN
在偿还欠款前不予批准
ELSE(欠款未超期)发批准书,发货单
ENDIFELSE(发货单金额未超过$500)IF欠款超过60天THEN
发批准书,发货单及赊欠报告
ELSE(欠款未超期)发批准书,发货单
ENDIFENDIFPDL的特性1)正文用严格的程序语言的基本控制结构分割,称为“外语法”,如If……Then……Else
、While……DO、Repeat……Until、Case……of。2)
操作用自然语言表示,描述处理特点,称为“内语法”。
3)具有数据说明机制,包括简单的(如纯量和数组)与复杂的(如链表或层次的数据结构)数据说明。
4)具有模块定义和调用机制,因此开发人员应根据系统编程所用的语种,说明PDL表示的有关程序结构。例:数据字典中,使用PDL进行数据处理的说明处理名:核实订票处理编号:3.2激活条件:收到取订票信息处理逻辑:1、读订票旅客信息文件
2、搜索此文件中是否有与输入信息中姓名及身份证号相符的项目
IF有
THEN判断余项是否与文件中信息相符
IF是THEN输出已订票信息
ELSE输出未订票信息
ENDIFELSE输出未订票信息
ENDIF执行频率:实时PDL优点提供的机制比图形全面,为保证详细设计与编码的质量创造了有利条件。可作为注释嵌入在源程序中一起作为程序的文档,并可同高级程序设计语言一样进行编辑、修改,有利于软件的维护。可自动生成程序代码,提高软件生产率。面向数据流的结构化分析与设计方法总结6.4面向数据结构的设计方法数据结构既影响程序的结构又影响程序的处理过程重复出现的数据通常由具有循环控制结构的程序来处理选择数据要用带有分支控制结构的程序来处理层次的数据组织通常和使用这些数据的程序的层次结构十分相似。面向数据结构的设计方法的最终目标是得出对程序处理过程的描述。6.4.1Jackson图
数据结构中数据元素彼此间的逻辑关系:顺序结构,顺序结构的数据由一个或多个数据元素组成,每个元素按确定次序出现一次。选择结构,选择结构的数据包含两个或多个数据元素,每次使用这个数据时按一定条件从这些数据元素中选择一个。重复结构,重复结构的数据,根据使用时的条件由一个数据元素出现零次或多次构成。A由B、C、D3个元素顺序组成根据条件A是B或C或D中的某一个A由B出现N次(N≥0)组成Jackson图的优点:便于表示层次结构,而且是对结构进行自顶向下分解的有力工具;形象直观可读性好;既能表示数据结构也能表示程序结构。Jackson图的缺点:表示选择或重复结构时,选择条件或循环结束条件不能直接在图上表示出来,影响了图的表达能力,也不易直接把图翻译成程序;框间连线为斜线,不易在行式打印机上输出。6.4.2改进的Jackson图Jackson图和层次图的区别:Jackson图层次图作用①描绘数据结构②描绘程序结构描绘软件结构矩形框①数据元素②几个语句模块连线组成关系调用关系6.4.3Jackson方法Jackson结构程序设计方法由5个步骤组成:(1)分析并确定输入数据和输出数据的逻辑结构,用Jackson图描绘数据结构。(2)找出输入数据结构和输出数据结构中有对应关系的数据单元。所谓有对应关系是指有直接的因果关系,在程序中可以同时处理的数据单元(对于重复出现的数据单元必须重复的次序和次数都相同才可能有对应关系)。(3)用下述规则从描绘数据结构的Jackson图导出描绘程序结构的Jackson图:第一,为每对有对应关系的数据单元,按照它们在数据结构图中的层次在程序结构图的相应层次画一个处理框(层次不同时与图中层次低的那个对应);第二,根据输入数据结构中剩余的每个数据单元所处的层次,在程序结构图的相应层次分别为它们画上对应的处理框;第三,根据输出数据结构中剩余的每个数据单元所处的层次,在程序结构图的相应层次分别为它们画上对应的处理框。改进的Jackson图规定在构成顺序结构的元素中不能有重复出现或选择出现的元素,因此可能需要增加中间层次的处理框。(4)列出所有操作和条件(包括分支条件和循环结束条件),并且把它们分配到程序结构图的适当位置。(5)用伪码表示程序。顺序结构:AseqBCDAend选择结构:Aselectcond1BAorcond2CAorcond3DAend循环结构:Aiteruntil(或while)condBAend例1:一个正文文件由若干个记录组成,每个记录是一个字符串。要求统计每个记录中空格字符的个数,以及文件中空格字符的总个数。要求的输出数据格式是,每复制一行输入字符串之后,另起一行印出这个字符串中的空格数,最后印出文件中空格的总个数。设计步骤如下:(1)用Jackson图描绘的输入输出数据结构。(2)分析确定在输入数据结构和输出数据结构中有对应关系的数据单元。(3)从数据结构图导出程序结构图。(4)列出所有操作和条件,并且把它们分配到程序结构图的适当位置。(5)用伪码表示程序处理过程。
例2:高考后将考生的基本情况文件(简称考生情况文件)和考生高考成绩文件(简称考分文件)合并成一个新文件(简称考生新文件)。考生基本情况文件中的考生记录的内容包括:准考证号、姓名、通信地址。考分文件中的考生记录的内容包括:准考证号和各门考分。合并后的考生新文件自然也是由考生记录组成,内容包括:准考证号、姓名、通信地址和各门考分。设计步骤如下:(1)用Jackson图描绘的输入输出数据结构。输入数据结构:输出数据结构:(2)分析确定在输入数据结构和输出数据结构中有对应关系的数据单元。(3)从数据结构图导出程序结构图。(4)列出所有操作和条件,并且把它们分配到程序结构图的适当位置。操作:①停止;②打开两个输入文件;③建立输出文件;④从输入文件中各读一条记录;⑤生成一条新记录;⑥将新记录写入输出文件;⑦关闭全部文件。条件:I(1)文件结束。(5)用伪码表示程序处理过程。产生新文件
seq
打开两个输入文件 建立输出文件 从输入文件中各读一条记录 分析考生记录iteruntil文件结束
处理考生记录seq
产生准考证号 产生姓名 产生通信地址 产生考分 生成一条新记录 将新记录写入输出文件 从输入文件中各读一条记录 处理考生记录end
分析考生记录end
关闭全部文件 停止产生新文件end6.5程序复杂程度的定量度量1、软件复杂性是软件度量的一个重要分支。主要参数有:规模:即总共的指令数,或源程序行数。难度:通常由程序中出现的操作数的数目所决定的量来表示。结构:通常用与程序结构有关的度量来表示智能度:即算法的难易程度。2、程序复杂性软件复杂性主要表现在程序的复杂性,程序复杂性主要指模块内程序的复杂性。常见的定量度量软件复杂性的方法有:代码行度量法McCabe度量法:又称环路度量法。Halstead的软件科学6.5.1McCabe方法T.McCabe的研究:McCabe方法根据程序控制流的复杂程度定量度量程序复杂程度,这样度量出的结果称为程序的环形复杂度。一个程序的环形复杂度(cyclomaticcomplexity)取决于它的程序图(流图)
包含的判定结点的数量。1、什么是程序图一种简化了的流程图。程序图(流图)仅描绘程序的控制流程,完全不表现对数据的具体操作以及分支或循环的具体条件。流程图中的各种处理框(如加工框,判断框等),都被简化成用圆圈表示的结点可由流程图导出或其他工具(PAD图、代码等)变换获得。程序图的基本元素符号“O”为程序图的结点,表示一个或多个无分支的语句;箭头为边,表示控制流的方向。边和结点圈定的封闭范围叫做区域。程序图的基本元素从图论的观点看,它是一个可以用G=<
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 智能城市供电管理系统合同
- 教育行业商业保理服务合同
- 培训健康护理幼儿
- 奥美拉唑培训
- 培训后心得感悟
- 临床试验成果责任分担合同
- 市场调研方法与技巧:消费者行为研究
- 《媒体环境变化启示》课件
- 2024年项目合作合同协议详解
- 2024民办幼儿园信息化建设与维护服务合同3篇
- 2024年酒店式公寓承包合同
- 猫抓病的护理
- 勘察设计工作内容
- GB/T 19799.2-2024无损检测超声检测试块第2部分:2号标准试块
- 2024-2025学年冀教新版八年级上册数学期末复习试卷(含详解)
- 内蒙古呼和浩特市2024届九年级上学期期末考试数学试卷(含答案)
- DB45T 1831-2018 汽车加油加气站防雷装置检测技术规范
- 《儿歌运用于幼儿园教育问题研究的文献综述》8600字
- 悬挂灯笼施工方案
- 水资源调配与优化-洞察分析
- 某自来水公司自然灾害应急预案样本(2篇)
评论
0/150
提交评论