软件工程技术--第五章 详细设计

第五章 详细设计

5.1详细设计的任务与原则

详细设计(又称为过程设计或模块设计),是编码的前导。

详细设计的根本目标是:

  • 确定应该怎样具体地实现所要求的系统。
  • 经过这个阶段的设计工作,应该得出对目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。

详细设计的任务是:

​ 根据概要设计说明文档,确定每一个模块的数据结构及具体算法,并选用合适的描述工具,将其清晰准确地表达出来。

  • 详细设计的结果在很大程度上决定着最终的程序代码的质量。

详细设计的任务

主要确定每个模块具体执行过程,即:

  1. 为每个模块进行详细的算法设计
  2. 为模块内的数据结构进行设计
  3. 数据库进行物理设计。
  4. 其他设计,如:代码设计、输入/输出格式设计、人机对话设计。
  5. 编写详细设计说明书。
  6. 评审

详细设计的原则

(1)采用自顶向下、逐步求精的程序设计方法。

(2)使用三种基本控制结构完成程序设计。

(3)设计人员组织结构采用“外科医生——助手”模式。

​ 在这种组织结构中,外科医生和助手都应了解相关设计内容,但外科医生在设计中起主导作用,是设计的技术负责人,助手只起技术支持作用。此种模式区别于传统的“平等组合”模式,使设计责任集中在少数人身上,避免了因观点不同而造成的设计策略和接口的差异。

详细设计的工具

进行详细设计时常用三种工具:图形、表格和语言

  • 图形工具:程序流程图、N-S图、问题分析图(PAD图)

  • 表格工具:判定表、判定树

  • 语言工具:过程设计语言(PDL)

  1. 程序流程图

优点:直观清晰、易于使用,应用广泛。

缺点:反映的是最后的结果,不易反映逐步求精的过程;

​ 可以随心所欲地画控制流程线的流向,容易造成非结构化的程序结构。

​ 不易表示数据结构。

克服缺陷画流程图时只用5种基本控制结构。(顺序结构、选择结构、多分支选择结构、当循环结构、直到循环结构)

  1. 盒图(N-S图)
  • 特点:
    • 功能域明确
    • 不可能任意转移控制
    • 容易确定局部和全程数据的作用域
    • 容易表示嵌套关系和模块的层次结构
  • 仅由顺序、选择、循环三种基本结构组成。
  • 优点:
    • 只能描述结构化程序所允许的标准结构。
    • 程序结构用方框表示,清晰可见。
    • 有助于程序员养成结构化的设计思想;
  • 缺点:
    • 当程序内嵌套层数增多时,内层方块越画越小,增加了画图的困难,并使图形的清晰性受到影响。
  1. 问题分析图(PAD图)
  • 用二维树形结构图表示程序的控制流,控制流程自上而下,从左往右执行。
  • 优点:
    • 程序结构清晰,结构化程度高。
    • 支持自顶向下,逐步求精的设计方法。
    • 既可以表示程序逻辑,也可描绘数据结构。
    • 用PAD图表现程序逻辑,易读易写,使用方便。
    • 容易转换成高级语言源程序,也可用软件工具实现自动转换。
  • 特点:
    • 用PAD图表示的程序从最左边的竖线的上端开始,自上而下,自左向右执行。
    • 用PAD设计的软件结构,必然是结构化的程序结构。
    • 结构清晰,层次分明。
    • PAD既可以表示程序逻辑,也可用于描绘数据结构。
    • PAD图可以表示自顶向下,逐步求精的设计方法,开始时对某个处理可以用语句标号表示,其具体过程用def逐步增加,直到详细设计完成。
  1. 判定表
  • 如果数据流处理时需要依赖多个逻辑条件的取值,用判定表来描述比较合适。
  • 判定表的组成结构
    • 左上部列出所有条件。
    • 左下部列出所有可能做的工作。
    • 右上部每一列表示各种条件的一种可能组合,所有列表示条件组合的全部可能情况。
    • 右下部的每一列是和每一种条件组合所对应的应做的工作。
  • 判定表中的符号
    • 右上部用“T”表示条件成立,用“F”表示条件不成立,空白表示条件成立与否不影响。
    • 右下部画“X”或“√”等都可表示做该行左边列出的那项工作,空白表示不做该项工作。
条件定义①条件的值②
动作定义③特定条件下相应的动作的值④
  1. 判定树
  • 判定树是用一种树图形方式来表示多个条件、多个取值所应采取的动作。
    • 它是判定表的变种;
    • 优点在于形式简单,含义明确;
    • 是一种常用的详细设计的工具
    • 缺点:简洁性很差、分之次序影响判定树的简洁度。
  1. PDL
  • 也称伪代码,是一种软件设计语言,介于自然语言和形式化语言之间。
  • PDL的结构和一般的程序类似,包括注释部分、数据说明部分过程部分
  • 与程序完全不同,仅仅是一种算法描述语言
  • 具有严格的外层语法结构,如if then-else、while-do、repeat、until等,用来定义控制结构和数据结构;
  • 内层语法则灵活自由,可采用自然语言描述。
  • 特点:易编写,易理解,容易转换成源程序。

5.2用户界面设计

  • 用户界面通常也称为人机界面。
  • 用户界面友好性属软件性能特性,独立于所有具体功能。
  • 用户界面是否友好很大程度由人的主观因素决定。
  • 人机界面设计是接口设计的一个重要的组成部分。对于交互式系统来说,人机界面设计数据设计体系结构设计过程设计一样重要。人机界面的质量直接影响用户对软件产品的接受程度,因此,对人机界面设计必须给予足够重视。
  • 综上所述,用户界面设计应考虑以下问题:
  1. 系统响应时间 (长度,易变性)

  2. 用户帮助信息 (集成,附加,上下文)

  3. 出错信息处理 (如何办, 用户心理)

  4. 命令交互 (多媒体-图文声光,自定义宏指令,CTRL)

  • 系统响应时间

    • 是指从用户完成某个控制动作,到软件给出预期的响应之间的这段时间
    • 它有两个重要属性:
      • 长度:响应时间的长短;(适中
      • 易变性:系统响应时间相对于平均响应时间的偏差。(要小
        • 这是更重要的属性
        • 稳定在1秒的响应时间比从0.1秒2.5秒变化的响应时间要好。
  • 用户帮助信息

    • 帮助是必须的。帮助设施可分为两类:
      • 集成的帮助设施:从一开始就设计在软件里面;操作错误或有问题时,自动出现。 内存不足、打印机未连接等信息
      • 附加的帮助设施:是系统建成后再添加到软件中的, 是一个查询能力有限的联机用户手册(如:Word、Excel中的帮助), 通常集成的帮助设施优于附加的帮助设施。
  • 出错信息处理

    • 出错信息或警告信息,是出现问题时交互式系统给出的“坏消息
    • 出错信息应该具备如下的属性:
      • 以用户可以理解的术语描述;(打印机未连接
      • 提供如何从错误中恢复的建设性意见
      • 指出错误可能导致的不良后果;(例如破坏数据文件
      • 伴随听觉和视觉上的提示——特殊图像,颜色,闪烁等;
      • 信息不能带有指责用户的色彩。
  • 命令交互

    • 命令交互曾经广泛地用于各种应用软件。 (Unix,Dos)
    • 现在面向图形的界面出现后(Window,Office系列)使用减少
    • 但是许多高级用户仍然偏爱这个方式。
    • 在多数情况下,用户可以从菜单中选择软件功能, 也可以用键盘输入相应的功能。
    • 在提供命令交互方式时,必须考虑下列问题:
      • 每个菜单选项都有对应的命令。(常用的有:复制)
      • 采用何种命令形式,三个选择:控制序列(ctrl+c),功能键(F1),键入命令(ping)
      • 用户是否定制或缩写命令?
      • 所有的应用软件尽可能有一致的命令使用方法
      • 学习和记忆命令的难度有多大

5.3用户界面设计过程

  • 用户界面设计是一个迭代的过程,包括以下步骤:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Hwd3HWis-1665991749090)(https://gitee.com/wcy0220/csdn/raw/master/img/%E8%BD%AF%E5%B7%A511.png)]

  • 用户界面设计主要依靠设计者的经验,总结众多设计者的经验,得出的设计指南有助于设计者设计出高效友好的人机界面

5.4用户界面设计基本原则

  1. 可靠性:提供可靠的、能有效减少用户出错的、容错性好的环境。用户出错时能检测出错误、提供出错信息,给用户改正错误的机会。
  2. 简单性:输入、输出要简单易懂;系统界面风格要一致;命令关键词的含义、命令的格式、提示信息、输入输出格式等的一致性。
  3. 易学习,易使用性:提供多种学习和使用方式,应能灵活地适用于所有的用户。
  4. 立即反馈性:用户界面对用户的所有输入都应立即做出反馈。

5.5用户界面设计指南

  • 用户界面设计主要依靠设计者好的经验
  • 界面分类:
    1. 一般交互界面
    2. 信息显示界面
    3. 数据输入界面

一、一般交互界面设计指南:信息显示、系统整体控制、数据输入。

  1. 保持一致性: 菜单选择、命令输入、数据显示以及其他功能,使用一致的格式。
  2. 提供有意义的反馈帮助信息:向用户提供视觉的和听觉的反馈,以保证在用户和系统之间建立双向通信。例如:把A盘格式化时,按下“开始” 按钮,就听见铃声,并出现,警告:格式化将删除该磁盘上的所有数据。 若想格式化该磁盘,请单击“确定”, 若想退出,请单击“取消”
  3. 要求用户确认:执行较大破坏性动作之前要求用户确认。
  4. 允许取消大多数操作:每个交互系统都应该能方便的取消已完成的操作。
  5. 减少两次操作之间必须记忆的信息量:不应该期待用户能记住下一步操作中。
  6. 提高对话、移动和思考的效率:减少用户击键的次数(敲键盘)、屏幕布局应该有利于减少鼠标移动的距离
  7. 允许用户犯错误,并给出错误提示信息:系统应该能保护自己不受严重错误的破坏。
  8. 按功能对动作分类,并据此设计屏幕布局:例如:编辑菜单:有复制、剪切、粘贴、查找等有关编辑功能;插入:页码、符号、对象(公式)等插入功能。
  9. 提供帮助设施。
  10. 命令名应该用简单动词或动词短语:过长的命令名难以识别和记忆,也会占用过多的显示空间
  • 交互界面类型—①菜单界面:
    • 显示方式正文菜单、图标菜单、正文图标混合菜单
    • 屏幕位置操作风格分类:固定、浮动/弹出
  • 交互界面类型—②图象界面:
    • 在用户界面中,加入丰富多彩画面,更加行象地为用户提供有用的信息,达到可视化目的。主要的处理操作有:图像隐蔽再现屏幕滚动图案显示动画等。
  • 交互界面类型—③对话框:
    • 对话形式:必须回答式、无需回答式、警告式。
    • 对话实现方式:标准对话、定做式对话。
  • 交互界面类型—④窗口式界面:
    • 也称视图区,是虚拟屏幕。一个实用窗口,可包含部件:菜单区,图标区,标题区移动区,大小区,退出区用户工作区横向滚动区纵向滚动区

二、信息显示界面设计指南:

  • 界面显示的基本元素:数据、字符、图形、报告

  • 界面显示的信息要简单,明确,完整,清晰;

  • 多种方式显示—文字,图片,声音,大小,颜色等;

  • 只显示与当前工作内容有关的信息;

  • 使用一致的标记、标准缩写和适当的颜色

  • 产生有意义的出错信息;

  • 使用大小写、缩进、和文本分组以帮助理解。

  • 使用模拟(图形图像)方式表示信息。

  • 使用窗口分隔不同类型的信息。

  • 每一屏的数据量不超过屏幕的30%。

三、数据输入界面设计指南:主要从输入速度减少出错率考虑

  • 尽量减少用户输入工作量。
  • 保持信息显示和数据输入的一致性。
  • 允许用户自定义输入: 如定义警告信息,动作确认。
  • 允许用户选择输入方式:键盘输入或鼠标输入。
  • 当前动作语境中,不适用的命令不起作用。
  • 让用户控制交互流,如用户能跳过不必要的动作。
  • 为所有输入动作提供帮助。
  • 消除冗余的输入。

5.6数据代码设计

  1. 代码的定义和作用:码是为了对数据进行识别、分类、排序等操作所使用的数字、文字或符号。

  2. 代码的特性:

    • 简洁性:减少存储空间,消除二义性
    • 保密性:数据的编码规则保密
    • 可扩充性:涉及代码留有扩充的空间
    • 持久性:代码在生命周期内长期有效
  3. 代码设计原则:

    • 以下可参考实用规则:
    1. 标准化:国际标准、国家标准、部颁标准或习惯标准
    2. 惟一性
    3. 可扩充性
    4. 简单性
    5. 规范化
    6. 适应性
    • 实用规则:
      1. 只有两个特征值的,可用逻辑值代码,如电路的闭合、断开。
      2. 特征值的个数不超过10时,可用数字代码。
      3. 特征值的个数不超过20时,可用字母代码。
      4. 数字、字母混用时,要注意区分相似的符号。
      5. 若代码会出现颠倒使用的情况时,要注意区分数字6和数字9、字母M和字母W。
      6. 代码可能会正反使用时,要注意区分字母p和字母q。
  4. 代码种类:

    • 顺序码:发票、银行支票
    • 信息块:学号、行政区划代码
    • 归组分类码
    • 助记码:TV-C-46 46英寸彩色电视机
    • 缩写码:HEB代表河北 BJ001
    • 组合码:几种代码形态合成编码
  5. 代码设计方法:

    • 基本步骤如下:
      1. 确定编码对象
      2. 明确编码目的
      3. 确定代码的个数
      4. 确定代码使用范围和使用期限
      5. 确定代码体系和代码位数
      6. 确定编码规则
      7. 编写代码
      8. 编写代码词典

5.7数据的安全设计

  • 软件系统发生的安全事故类型。
  • 数据安全控制方法:
    1. 检查数据的正确性、完整性
    2. 检查用户使用权限
    3. 系统运行日志
    4. 监督检查违规行为
    5. 加密
    6. 数据安全受破坏时的措施

5.8详细设计说明书

详细设计说明书参考格式:

  • 详细设计说明书又称程序设计说明书。
  • 编制本说明书的目的,是为了说明一个软件系统各个层次中的每一个程序(每个模块或子程序)的设计思路,如实现算法、逻辑流程等。
  • 计算机软件产品开发文件编制指南(GB8567-2006)中给出了详细设计说明书的编写提示。

编写详细设计说明书的步骤:

  • 确定每一个模块所用的算法,选择某种适当工具表达算法过程,写出详细过程性描述;
  • ②确定每一个模块使用的数据结构;(数据库)
  • ③确定模块接口细节,包括对系统外部的接口和用户界面,对系统内部其它模块的接口,以及输入数据、输出数据及局部数据的全部细节;
  • ④要为每一个模块设计出一组测试用例,以便在编码阶段对模块代码(即程序)进行预定的测试,模块的测试用例是软件测试计划的重要组成部分,通常应包括输入数据,期望输出等内容。
  • ⑤在详细设计结束时,把上述结果写入详细设计说明书,并且通过复审形成正式文档,形成交付给下一阶段(软件实现阶段)的工作依据。

详细设计小结

  • 了解详细设计的 任务 、过程、内容
  • 能熟练应用3类共6种 过程设计工具(程序流程图,盒图NS,问题分析图PAD,判定表,判定树,过程设计语言PDL)。
  • 了解用户界面的重要性及其设计原则。
  • 能够编写详细设计说明书文档。
  • 7
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值