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)很容易表现嵌套关系,也可以表示模块的层次结构。

原文地址:https://www.cnblogs.com/qichunlin/p/7682643.html