您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 总结/报告 > 软件开发与应用-第6章 详细设计
软件开发与应用胡俊敏Email:wingoner@126.com2009.2集美大学工商管理学院信息管理与信息系统系第五章回顾•设计过程•设计原理•启发规则•描绘软件结构的图形工具•面向数据流的设计方法•小结本章导读第六章详细设计•结构程序设计•人机界面设计•过程设计的工具•面向数据结构的设计方法(略)•程序复杂程度的定量度量•小结(ProgramDesignCoding)结构程序设计的特点:①自顶向下逐步求精;②具有单入、单出的控制结构(取消GOTO语句)1、程序流程图(ProgramFlowChart)5种基本控制结构为:(1)顺序结构(sequentialstructure)(2)选择结构(selectivestructure)ABPBAFT(3)先判定型循环结构(while-loopstructure)(4)后判定型循环结构(until-loopstructure)TPSFFSTP(5)多情况选择(casestructure)TA1FP=1TA2FP=2…TAnFP=n任何复杂的程序流程图都应由以上五种基本结构组合而成。缺点:本质上不具备逐步求精的特点,对于提高大型系统的可理解性作用甚微;不易表示数据结构;转移控制太方便。趋势:停止使用优点:容易掌握,且历史“悠久”,使用广泛。ISO认可的规定符号:人机界面设计是接口设计的一个重要的组成部分。近年来,人机界面在系统中所占的比例越来越大,在个别系统中人机界面的设计工作量甚至占总设计量的一半以上。人机界面的设计质量,直接影响用户对软件产品的评价,从而影响软件产品的竞争力和寿命。6.2人机界面设计人机界面界面是软件的面子,一些特殊的软件。例如:游戏软件。软件的界面重要性就更高在设计人机界面的过程中,几乎总会遇到下述4个问题:6.2.1设计问题系统响应时间用户帮助设施出错信息处理命令交互1.系统响应时间系统响应时间指从用户完成某控制动作(例如,按回车键或点击鼠标),到软件给出预期的响应(输出信息或做动作)之间的这段时间。系统响应时间有两个重要属性:分别是长度和易变性。2.用户帮助设施几乎交互式系统的每个用户都需要帮助,当遇到复杂问题时甚至需要查看用户手册以寻找答案。大多数现代软件都提供联机帮助设施,这使得用户无须离开用户界面就能解决自己的问题。常见的帮助设施可分为集成的和附加的两类help(1)帮助的时间和内容范围界定(2)用户请求帮助方式:①帮助菜单②特殊功能键③HELP命令。(3)帮助信息的显示.①在独立的窗口中②指出参考某个文档(不理想)③在屏幕固定位置显示简短提示。用户帮助设计要点:(4)用户返回到正常的交互方式中的方法.有两种选择:屏幕上的返回按钮和功能键。(5)帮助信息的组织:平面结构,信息的层次结构和超文本结构。3.出错信息处理出错信息和警告信息,是出现问题时交互式系统给出的“坏消息”。出错信息设计得不好,将向用户提供无用的甚至误导的信息,反而会加重用户的挫折感。一般说来,交互式系统给出的出错信息或警告信息,应该具有下述属性。(1)信息应该用用户可以理解的术语描述问题。(2)信息应该提供有助于从错误中恢复的建设性意见。(3)信息应该指出错误可能导致哪些负面后果。(4)信息应该伴随着听觉上或视觉上的提示,例如,在显示信息时同时发出警告铃声,或者信息用闪烁方式显示,或者信息用明显表示出错的颜色显示。(5)信息不能带有指责色彩,也就是说,不能责怪用户。思考:数据库设计的时候需要考虑完整性,那么如果用户数据输入出错,不符合完整性要求,那么出错信息是由后台数据库提供,还是由前台提供呢?4.命令交互交互形式:命令行---曾经的流行面向窗口的、点击和拾取方式的界面用户既可以从菜单中选择软件功能,也可以通过键盘命令序列调用软件功能。人机界面设计过程以原型实现创建设计模型用户试用和评估完成课堂作业:请同学们根据自己的实践经验,思考在软件开发过程中进行人机界面设计的时候需要遵守哪些原则?请逐一罗列出来,并辅以例子说明。过程设计工具1.程序流程图2.盒图3.PAD图4.判定表5.判定树6.过程设计语言SequentialABPFTABSelectivePFTBDo-WhilePSWhileDo-UntilPSUntilCaseP12nA1A2AnCallsubroutineA§3.工具2、盒图(BoxDiagram):Nassi&Shneiderman1973年提出,又称为N-SCharts。Chapin1974年作扩充,故也称为Chapincharts.x4TFDo-Untilx5ighfkx1TFbDo-Untilx6ajx21cDo-Whilex323dek:§3.工具例:§3.工具特点:①没有箭头,不允许随意转移控制;②每个矩形框(Case中条件取值例外)都是一个功能域(即一个特定结构的作用域),结构表示明确;③局部及全程数据的作用域易见;④易表现嵌套关系(embeddedstructure)以及模块的层次结构。ABSequentialWhilePSUntilPSLoopsPABTHENELSESelectiveP=A1A2CaseAn12n…StatementIndexdefDefinition§3.工具3、PAD(ProblemAnalysisDiagram):日立公司,1973x4TFDo-Untilx5ighfkx1TFbDo-Untilx6ajx21cDo-Whilex323dek:§3.工具例:N-S图与PAD的转换开始结束ajUntilx5iUntilx6bx1kfx4ghdefkx2de123Whilex3c§3.工具§3.工具特点:①结构清晰,层次分明,易读;②支持逐步求精的设计思想;③容易将PAD自动转换为高级语言源程序。4、判定表&判定树(DecisionTable&Tree)表示复杂的条件(input)组合与应做动作(output)之间的对应关系。§3.工具例:航空行李托运费的算法按规定:重量不超过30公斤的行李可免费托运。重量超过30公斤时,对超运部分,头等舱国内乘客收4元/公斤;其它舱位国内乘客收6元/公斤;外国乘客收费为国内乘客的2倍;残疾乘客的收费为正常乘客的1/2。123456789国内乘客TTTTFFFF头等舱TFTFTFTF残疾乘客FFTTFFTT行李重量W30TFFFFFFFF免费(W-30)2(W-30)3(W-30)4(W-30)6(W-30)8(W-30)12用判定表表示计算行李费的算法RulesRulenumbersConditionrowsActionrows§3.工具行李费算法行李重量W30行李重量W30免费国内乘客外国乘客头等舱其他舱残疾乘客正常乘客(W-30)2(W-30)4残疾乘客正常乘客(W-30)3(W-30)6头等舱其他舱残疾乘客正常乘客(W-30)4(W-30)8残疾乘客正常乘客(W-30)6(W-30)12用判定树表示计算行李费的算法§3.工具注:判定表与判定树并不适用于作为一种通用的设计工具,通常将之用于辅助测试PROCEDUREspell_checkISBEGINSplitdocumentintosinglewordsLookupwordsindictionaryDisplaywordswhicharenotindictionaryCreateanewdictionaryENDspell_checkExternalstatementsInternalstatements§3.工具5、PDL(ProgramDesignLanguage):又称Pseudocode.例:§4.程序复杂程度的定量度量(MeasuringProgramComplexity)定量度量程序复杂程度的方法很有价值:把程序的复杂程度乘以适当常数即可估算出软件中故障的数量以及软件开发需要用的工作量;定量度量的结果可以用来比较两个不同的设计或两个不同算法的优劣;程序的定量的复杂程度可以作为模块规模的精确限度。McCabe方法使用McCabe方法首先需要画出程序图,所谓程序图可以看成是“退化了的”程序流程图,也就是把程序流程图中每个处理符号都退化成一个点,原来连接不同处理符号的箭头变成连接不同点的有向弧,这样得到的有向图就称为程序图(流图)。McCabe方法例子1TOTAL=TOTAL+AK++输入A输出K,L,TOTAL停止T开始K=0L=0TOTAL=0输入ADoWhileTOTAL1000andA0FA0TL++Fa(开始)b(入口)cdefghij(出口)k(停止)McCabe方法例子2环形复杂度的计算方法流图中的区域数等于环形复杂度流图G的环形复杂度:V(G)=E-N+2其中,E是流图中边的条数,N是结点数。流图G的环形复杂度:V(G)=P+1其中,P是流图中判定结点的数目。McCabe方法环行复杂度的用途:程序的环形复杂度取决于程序结构的复杂程度。当程序内分支数或循环个数增加时,环形复杂度也随之增加,因此它是对测试难度的一种定量度量,也能对软件最终的可靠性给出某种预测。实践表明,模块规模以V(G)≤10为宜,也就是说,V(G)≤10是模块规模的一个更科学更精确的上限。McCabe方法Halstead方法Halstead方法根据程序中运算符和操作数的总数来度量程序的复杂程度。令N1为程序中运算符出现的总次数,N2为操作数出现的总次数,程序长度N定义为:N=N1十N2详细设计完成之后,可以知道程序中使用的不同运算符(包括关键字)的个数n1,以及不同操作数(变量和常数)的个数n2。Halstead给出预测程序长度的公式如下:H=n1log2n1十n2log2n2多次验证都表明,预测的长度H与实际长度N非常接近。Halstead还给出了预测程序中包含错误的个数的公式如下:E=Nlog2(n1+n2)/3000谢谢!
本文标题:软件开发与应用-第6章 详细设计
链接地址:https://www.777doc.com/doc-3370280 .html