详细设计阶段的根本目标是确定应该怎样具体地实现所要求的系统,也就是说.经过这个阶段的设计工作.应该得出对目标系统的精确描述.从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。
详细设计的的目标不仅仅是逻辑上正确地实现每个模块地功能,更重要地是设计出来地处理过程应该尽可能简明易懂。结构程序设计是进行详细设计地地逻辑基础和关键技术。
****结构程序设计:****顺序结构、选择结构、循环结构
****人机界面设计:****系统响应事件、用户帮助设施、出错信息处理、命令交互;
先创建设计模型、再用原型实现这个设计模型,并由用户使用和评估,然后再根据用户意见进行修改。此过程需要迭代,需要借助界面设计和原型开发的软件工具,这些工具被称为用户界面工具箱或用户界面开发系统。
评估可以是非正式的(即兴发表一些反馈意见),也可是正式的(运用统计学方法评价全体终端用户填写的调查表);
评估内容:
- 系统及其界面的规格说明书的长度和复杂程度,预示了用户学习使用该系统所需要的工作量。
- 命令或动作的数量、命令的平均参数个数或动作中单个操作的个数.预示了系统的交互时间和总体效率。
- 设计模型中包含的动作、命令和系统状态的数预示了用户学习使用该系统时需要记忆的内容的多少。
- 界面风格、帮助设施和出错处理协议.预示了界面的复杂程度及用户接受该界面的程度。
- ------------------------------------------------------------------
过程设计工具: 描述程序处理过程的工具称为过程设计的工具,分为图形、表格和语言3类。这些工具必须无歧义的描述设计过程、能够指明控制流程、处理功能、数据组织以及其他方面的细节,从而在编码阶段能把对设计的描述直接翻译成程序代码。
程序流程图:程序框图
盒图(N-S图):必须掌握图形绘制
PAD图: 问题分析图,二维树形结构的图来表示程序的控制流,比较容易翻译成代码。
判定表: 清晰地表示复杂地条件组合与应做地动作直接地对应关系。
判定树: 能清晰地表示复杂条件组合与应做地动作之间地对应关系
过程设计语言(PDL): 也称伪代码,
- ------------------------------------------------------------------
设计方法: 这里介绍面向数据结构的设计方法,那么首先应该分析和确定数据结构,并使用适当的工具来清晰地描述数据结构。
****Jackson方法:****数据的逻辑关系只有顺序、选择、重复3类,因此逻辑数据结构也只有这3类。
优点:
-
-
- 便于表示层次结构,而且是对结构进行自顶向下分解的有力工具
- 形象直观可读性好
- 既能表示数据结构,也能表示程序结构(因为结构程序设计也只是用上述3种基本控制结构)
-
J ackson 结构程序设计方法的5个步骤:
- 分析并确定输入数据和输出数据的逻辑结构﹐并用Jackson图描绘这些数据结构。
- 找出输人数据结构和输出数据结构中有对应关系的数据单元。所谓有对应关系是指有直接的因果关系﹐在程序中可以同时处理的数据单元(对于重复出现的数据单元,重复的次序和次数必须都相同才可能有对应关系)。
- 从描绘数据结构的Jackson图导出描绘程序结构的Jackson图。
- 列出所有操作和条件,并且把他们分配到程序结构图的适当位置
- 用伪代码表示程序
Jackson结构流程图与伪代码之间的转换
Warnier方法:
------------------------------------------------------------------------------------------------------
程序复杂程序的定量度量:
McCabe方法:
- 流图
- 环形复杂度
- 环形复杂度的用途
Halstead方法:根据程序中运算符和操作数的总数来度量程序的复杂程度。
小结:
详细设计阶段的关键任务是确定怎样具体地实现用户需要的软件系统,也就是要设计出程序的"蓝图"。除了应该保证软件的可靠性之外,使将来编写出的程序可读性好、容易理解﹑容易测试﹑容易修改和维护,是详细设计阶段最重要的目标。结构程序设计技术是实现上述目标的基本保证,是进行详细设计的逻辑基础。
人机界面设计是接口设计的一个重要的组成部分。对于交互式系统来说﹐人机界面设计和数据设计,体系结构设计及过程设计一样重要。人机界面的质量直接影响用户对软件产品的接受程度,因此,对人机界面设计必须给予足够重视。在设计人机界面的过程中,必须充分重视并认真处理好系统响应时间,用户帮助设施﹑出错信息处理和命令交互这4个设计问题。人机界面设计是一个迭代过程,通常﹐先创建设计模型﹐接下来用原型实现这个设计模型并由用户试用和评估原型,然后根据用户意见修改原型﹐直到用户满意为止。总结人们在设计人机界面过程中积累的经验,得出了一些关于用户界面设计的指南﹐认真遵守这些指南有助于设计出友好﹑高效的人机界面。
过程设计应该在数据设计、体系结构设计和接口设计完成之后进行,它的任务是设计解题的详细步骤(即算法),它是详细设计阶段应完成的主要工作。过程设计的工具可分为图形、表格和语言3类,这3类工具各有所长,读者应该能够根据需要选用适当的工具。
在许多应用领域中信息都有清楚的层次结构,在开发这类应用系统时可以采用面向数据结构的设计方法完成过程设计。本章以Jackson结构程序设计技术为例,对面向数据结构的设计方法做了初步介绍。为了能使用这种方法解决实际问题,还需要进一步钻研有关的专著。
使用环形复杂度可以定量度量程序的复杂程度﹐实践表明,环形复杂度V(G)=10是模块规模的合理上限。