2017.10.17 软件工程----详细设计
(1)介绍
·详细设计的根本目标是确定怎样具体地实现所要求的系统,也就是说,
经过这个阶段的设计工作,应该得出对目标系统的精确概述,从而在编
码阶段可以把这个描述直接翻译成某种程序设计语言的程序。
·详细设计的阶段的任务还不是具体的编写程序,而是要设计出程序的“蓝图”,
详细设计的结果基本上决定最终程序代码的质量。考虑代码的质量是必须注意,
程序的读者有两个人,那就是计算机和人。
·结构程序设计是实现详细设计的逻辑基础.
(2)结构程序设计阐述
·程序的质量与程序中所包含的GOTO语句数量成反比,只有三种基本的控制结构就
能实现任何单入口单出口程序,即顺序、选择、循环。
·如果一个程序的代码块仅仅通过顺序、选择、循环这三种基本控制结构进行连接,
并且每个代码块只有一个入口和一个出口,则称这个程序是结构化。
·LEAVE或BREAK结构实际上是受限制的前向GOTO语句,用于转移到循环结构后面的语句,
如果只允许使用顺序结构、if-while-else型分支和do-while型循环三种基本控制结构,则称
为经典的结构程序设计;如果上述三种基本控制结构之外,还允许使用do-case型多分支结构
和do-until型循环结构,则称为扩展的结构程序设计;
(3)人机界面设计
·人机界面设计是接口设计的一个重要组成部分,包含以下4个问题:系统响应时间、用户帮助设施、出错信息处理、命令交互。
3.1系统响应时间
·系统响应时间是指从用户完成某个控制动作(例如:按回车键或单击鼠标),到软件给出预期的响应(输出信息或动作)之间的这段时间
·它有两个属性:长度和易变形;
·易变性是指系统响应时间相对于平均响应时间的偏差。
3.2 用户帮助设施
·大多数软件都提供联机帮助设施,常见的帮助设施可分为集成和附加两类。集成帮助优于附加的帮助设施
·具体帮助设施,必须解决下述的一系列问题:
(1)用户怎样请求帮助? 有三种选择,帮助菜单,特殊功能键,HELP命令
(2)在用户与系统交互期间,是否在任何的时候都能获得关于系统任何功能的帮助信息?
有两种:提供部分功能的帮助和提供全部功能的帮助信息
(3)怎样显示帮助信息?
有三种选择:在独立的窗口中,指出参考某个文档(不理想)和在屏幕固定位置显示简短的信息
(4)用户怎样返回到正常的交互方式中?
有两种选择:屏幕上的返回按钮和功能键
(5)怎样组织帮助信息?
有三种选择:平面结构(所有信息都通过关键字访问),信息的层次结构(用户可在该结构中查询更详细的信息)和超文本结构
3.3 出错信息处理
·出错信息和警告信息,是出现问题时交互系统给出的“坏消息”。出错信息设计得不好,将向用户提供无用的甚至误导的信息。
一般来说,交互式系统给出的出错信息或警告信息,应该具有下述属性
(1)信息应该用用户可以理解的术语描述问题
(2)信息应该提供有助于从错误中恢复的建议性意见
(3)信息应该指出错误可能导致那些负面后果(例如,破坏数据文件),以便用户检查是否出现问题,并在确实出现问题时及时解决
(4)信息应该伴随着听觉上或视觉上的提示。
(5)信息不能带有指责色彩
(4)命令交互
·在多数情况下,用户既可以从菜单中选择软件功能,也可以通过键盘命令序列调用软件功能
·再提供命令交互式时,必须考虑下列设计问题
(1)是否每个菜单选项都有对应的命令
(2)采用何种命令形式?
有三种选择:控制序列(快捷键),功能键、输入键
(3)学习和记忆命令的难度有多大?忘记命令怎么办?
·设计过程
(1)先创建设计模型,再用原型实现这个设计模型,并由用户试用和评估,然后根据用户意见进行修改。
(2)可以运用下述评估标准对设计进行早期复审
·系统及其 界面的规格说明书的长度和复杂程度,预示了用户学习使用该系统时需要的工作量
·命令或动作的数量、命令的平均参数个数或动作中单个操作的个数
(5)过程设计的工具
·描述程序处理过程的工具称为过程设计的工具,它可以分为图形、表格和语言
5.1 程序流程图
程序流程图又称为程序框图。它的主要优点是对控制流程的描绘很直观。
缺点有:
(1)程序流程图本质上不是逐步求精的好工具,不去考虑全局结构;
(2)程序流图用箭头代表控制流;
(3)程序流图不易表示数据结构。
(6)盒图(又称为N-S图)
它有下述特点:
(1)功能域(即一个特定控制结构的作用域)明确,可以从盒图一眼就看出来
(2)不可能任意转移控制
(3)很容易表现嵌套关系,也可以表示模块的层次结构。