资源预览内容
第1页 / 共65页
第2页 / 共65页
第3页 / 共65页
第4页 / 共65页
第5页 / 共65页
第6页 / 共65页
第7页 / 共65页
第8页 / 共65页
第9页 / 共65页
第10页 / 共65页
亲,该文档总共65页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
2020/7/31,1,软件工程,软件工程,刘迎春,软件工程,2020/7/31,2,第5章 详细设计,5.1 详细设计的任务与内容 5.2 详细设计工具 5.3 人机界面设计,2020/7/31,3,5.1详细设计的任务与内容,详细设计的任务,是对总体设计阶段划分出的每个模块进行明确的算法描述。模块的内部过程描述就是模块内部的算法设计。 1.详细设计的意义: 有无正确的软件详细设计描述,对软件开发人员来说,直接影响到他们的程序正确性和编程效率 详细设计描述对于软件测试和维护人员也是重要的文档,使得他们不需要阅读程序代码,就能了解模块内部的程序结构,2020/7/31,4,2.详细设计的内容,程序描述 功能 性能 输入项 输出项 算法 流程逻辑 接口 存储分配,2020/7/31,5,5.2 详细设计工具,在过程设计阶段,要决定各个模块的实现算法,并精确地表达这些算法。表达过程规格说明的工具叫做详细设计工具。 图形工具 表格工具 语言工具,2020/7/31,6,5.2.1 程序流程图,程序流程图也称为程序框图,程序流程图使用的基本控制结构是:,2020/7/31,7,程序流程图的标准符号 (a)选择(分支);(b)注释;(c)预先定义的处理;(d)多分支; (e)开始或停止;(f)准备;(g) 循环上界限;(h) 循环下界限,2020/7/31,8,循环的标准符号 注解的使用,2020/7/31,9,多出口判断,2020/7/31,10,程序流程图的特点和缺点,程序流程图中的箭头代表控制流 对控制流程的描绘很直观,便于初学者掌握 缺点: 程序流程图本质上不是逐步求精的好工具,它诱使程序员过早地考虑程序的控制流程,而不去考虑程序的全局结构。 程序流程图中用箭头代表控制流,因此程序员不受任何约束,可以完全不顾结构程序设计的精神,随意转移控制。,2020/7/31,11,5.2.2 N-S图,N-S图也叫做盒图。五种基本控制结构由五种图形构件表示。,第一个任务 第二个任务 第三个任务,(a) 顺序,(b) 分支,(c) 多路分支,(d) DO-WHILE 循环,(e) DO-UNTIL 循环,(f) 调用子程序A,2020/7/31,12,N-S图的嵌套定义形式,2020/7/31,13,N-S图的特点和缺点,一个特定控制结构的作用域明确 不可能任意转移控制 很容易确定局部和全程数据的作用域 很容易表现嵌套关系,也可以表示模块的层次结构 盒图没有箭头,因此不允许随意转移控制。坚持使用盒图作为详细设计的工具,可以使程序员逐步养成用结构化的方式思考问题和解决问题的习惯。 缺点: 复杂逻辑情况下,难以布局,2020/7/31,14,5.2.3问题分析图(PAD),PAD也设置了五种基本控制结构的图式,并允许递归使用 PAD图所描绘的程序结构十分清晰。图中最左面的竖线是程序的主线,即第一层结构。随着程序层次的增加,PAD图逐渐向右延伸,每增加一个层次,图形向右扩展一条竖线 PAD图中竖线的总条数就是程序的层次数,2020/7/31,15,PAD基本结构,2020/7/31,16,对应于增量型循环结构 for i := n1 to n2 step n3 do在PAD中有相应的循环控制结构,PAD的扩充控制结构,2020/7/31,17,PAD的特点,PAD图是二维树形结构的图形,程序从图中最左竖线上端的结点开始执行,自上而下,从左向右顺序执行,遍历所有结点 用PAD图表现程序逻辑,易读、易懂、易记,2020/7/31,18,示例,2020/7/31,19,示例,2020/7/31,20,PAD描述的示例,2020/7/31,21,自动化工具,VISIO 其他实例,2020/7/31,22,5.3人机界面设计,软件的任务是由用户在提供给用户的虚拟工作环境中来完成,用户所面对的虚拟工作环境就是人机界面 用户承担需要创造、判断和探索的任务,而计算机承担重复检查、计算和数据处理的任务 人机界面设计是软件设计的重要内容。,概念区分,(1)用户体验:UE 用户体验并不是指产品本身是如何工作的,而是指产品如何和外界联系并发挥作用,也就是人们如何“接触“或者“使用”它。 (2)交互:用户通过某种方式发出指令,且系统对此作出相应的反应 交互设计是关于创建新的用户体验的问题,目的在于增强和扩充人们的工作、通信及交互方式,使他们能够更加有效地进行日常工作和学习。,UI设计,(3)User Interface Design 用户界面设计,在很大程度上就是在探讨如何让产品的界面更加具有可用性,如何让用户有更良好的体验。这是一种优化后的界面,通过这种界面,用户能更方面地完成任务,获得良好的感觉。 例如:一个按钮的设计,美工设计考虑如何好看,而用户界面设计师则考虑按钮如何摆放,上面显示什么文字,甚至到底要不要这个按钮的问题。,UI设计的重要性,用户能够正确、高效的完成任务,取决于软件所提供的工作环境 在应有的功能和性能基础上,人机界面在完成用户任务,用户形成使用软件的感受中起到非常重要的作用。 软件用户界面设计要综合考虑“易用性设计”、“艺术设计”和“技术实现”,2020/7/31,25,各种对话框,好的,差的,UI 设计常见问题,界面措辞含糊,甚至有错别字。连简单的消息框都设计不好,可能存在文不对题的语病。 界面布局混乱,缺乏逻辑,凡是能放的东西都堆集上去,让用户不知从何下手。 没有防错处理,不对用户输入的数据进行检验,不根据用户的权限自动隐藏或者禁用某些功能。执行破坏性的操作之前,不提醒用户确认。总之,如果用户执行了错误的操作,那他活该。 不提供进度条、动画来反映正在进行的比较耗时间的过程,对于重要的操作也不返回结果,让用户干着急。,2020/7/31,28,5.3.1人机界面应具备的特性,输入和输出信息是与用户的使用直接相关的。输入和输出的方式和格式应当尽可能方便用户的使用。一定要避免因设计不当给用户带来的麻烦。 因此,在软件需求分析阶段和设计阶段,就应基本确定输入和输出的风格。系统能否被用户接受,有时就取决于输入和输出的风格。,5.3.1人机界面应具备的特性,1. 界面适合于展现功能 软件的功能需要通过用户界面来展现。用户界面一定要适合于软件的功能,这是最基本的要求。如果用户无法通过这个界面来使用软件,“易用性”根本就无从谈起。 例如,对于一个三维建模软件而言,必须具备通过鼠标对模型进行旋转、移动、缩放等操作功能 “用户界面适合于展现功能”是首要的设计原则,它提醒设计者不要片面追求界面外观漂亮而导致华而不实。,2. 界面适合于用户群体,一个软件产品可能有许多类型的用户,例如有些用户对计算机比较外行,有一些用户可能是计算机的行家。在设计用户界面时应当尽可能多地了解不同类型用户的使用习惯和水平,努力使不同类型用户在操作软件的时候感觉不到困难和麻烦。(理想境界) 如果不能使所有类型的用户都感到满意,那么重点满足以下类型的用户:“主流用户”,“有影响力的用户” 算法的可隐可显性 用户可以根据需要制定和修改界面方式,3.界面容易被用户理解,用户界面中的所有元素都不能出现错误文字,也没有令人费解(例如二义性、逻辑混乱)的文字。用户界面设计人员绝对不能对界面上的文字马马虎虎,措词必须“正确、准确”。 图标按钮的含义一定要直观明了,最好给图标加文字说明,防止用户误解。 所有的界面元素应当提供充分而必要的提示,例如当鼠标移动到工具条上的某个图标按钮时,应当在该图标旁边出现功能提示。 界面结构能够清晰地反映工作流程。 文字信息和界面布局尽量和用户群体的使用习惯相匹配。 对于复杂的用户界面而言,最好提供界面“向导”,及时让用户知道自己在界面结构中所处的位置。,3.界面容易被用户理解-2,“地址”两字让人费解,让人搞不清楚是住址,还是http网址?搜索一个名字行不行? “试一试,浏览器地址栏中也可以直接搜索”这句话有点多余,用户不知道究竟从哪里搜索,3.界面容易被用户理解-设计一个优秀的向导式界面,4.一致性和个性化,“用户界面风格一致”的最大好处就是能够减少用户的记忆量、减少出错几率,并且迅速积累操作经验。 同一类型软件的用户界面应当有一定程度的相似性。例如Microsoft公司的Office家族里有Word、Excel、PowerPoint、Outlook等软件,这些软件提供的“复制、剪切、粘贴”功能的操作方式都是相同的。 反之,软件习惯于设置F1键为帮助热键,如果某个设计者别出心裁地让F1键成为软件终止的热键,那么在用户渴望得到帮助而伸手击F1键的一刹那,他的工作就此完蛋。相信这个用户会被这另类的F1气疯了。,个性化与一致性的矛盾,对于一些非常注重安全性的商业软件(如银行软件)而言,用户界面的“一致性”要比“个性化”重要得多,因为一致的用户界面可以减少用户出错的几率。例如,国内所有银行的自动取款机的用户界面都是非常相似的,谁也不会设计一些新花样玩玩。 而对于非严格系统的应用软件而言,有个性化的界面自然比泯然于众的界面更具有吸引力。尤其是娱乐领域的软件,用户更加喜欢有个性的甚至是颠覆传统的用户界面。 设计人员应当根据软件的需求以及广大用户的喜好,在使用户界面具备必要的“一致性”的前提下,突出该软件的“个性”。不仅让用户使用起来方便,而且对软件留下深刻的印象。,示例分析,IE 的Toolbar按钮一般不会有下拉菜单(与流行软件的界面元素不一致)。如果要下拉菜单的话,应该加“下拉”标记。“ 清理”和“修复”含有立即执行、并且会改动用户计算机设置的含义,用户担心点击“清理”和“修复”按钮将出现不期望的操作。,5.及时反馈操作信息,及时反馈信息很重要,至少要让用户心里有数,知道该任务处理得怎么样了,有什么样的结果。 当用户进行某项操作后,如果过了一会儿(几秒钟)用户界面一点反应都没有,这将使用户感到迷茫和不安,因为他不知道是自己操作错了还是软件死机了。,示例分析,专业软件一般都要提供反馈操作信息的窗口区域,各种对话框,好的,差的,6.防错和出错处理,用户在使用软件的过程中,不可避免地会出现一些错误的操作。倘若用户不小心输入了错误的数据、或者错误地删除了有用的数据,而软件傻乎乎地、将错就错地执行了,那么用户肯定很恼火,以后就不敢放心地使用软件。 在设计用户界面时必须考虑防错处理,目的是让用户不必为避免犯错误而提心吊胆、小心翼翼地操作。,6.防错和出错处理-2,常见的防错处理措施有: 对输入数据进行校验。 对于在某些情况下不应该使用的菜单项和命令按钮,应当将其“失效”(变成灰色,可见但不可操作)或者“隐藏”。 执行破坏性的操作之前,应当获得用户的确认。例如用户删除一个文件时,应当弹出对话框:“真的要删除该文件吗”,当用户确认后才真正删除文件。 尽量提供Undo功能,用户可以撤销刚才的操作。,7.最少步骤、最高效率,设计用户界面时应当尽可能地替用户着想,用户应当用最少的操作步骤完成某项操作任务,获得最高的使用效率。(手机充值,超级女声) 尽管减少一个操作步骤而完成任务所节约的时间微乎其微(可能只有几秒钟),但是用户的感觉反差却很强烈。,8.合理的布局,首先,界面的总体布局应当有一定的逻辑性,最好能够与工作流程吻合。 其次,窗口(或页面)上的界面元素的布局应当整齐清爽。界面元素应当在水平或者垂直方向对齐,行、列的间距保持一致。 窗体的尺寸要合适,界面元素不应放得太满,边界处需要留有一定的空间,也不可过于宽松,显得零乱。 界面元素需要一致的对齐方式,以避免参差不齐的视觉效果。同类的界面元素尽量保持大小一致,起码要保证高度或宽度的一致(例如命令按钮)。逻辑相关的元素要就近放置,便于用户操作。 要善于利用窗体和界面元素的空白,以及分割用的线条。,9. 合理的色彩,相比于布局,设计合理的色彩就困难多了,因为色彩的组合千变万化,并且人们对颜色的喜好也极不相同。 例如,人们对黑色的理解差异很大。 一般规律: 如果不是为了显示真实感的图形和图像,那么应当限制一帧
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号