软工系列之---详细设计
过程设计。
过程设计也叫做详细设计或程序设计,它不同于编码或是编程。
在过程设计阶段,要决定各个模块的实现算法,并精确表达这些算法。首先是分析项目的具体要求,以及算法的设计和评价。然后给出适当的算法描述,为此应提供过程设计的表达工具。
人机界面交互。
界面应具备的特性。
1、可适用性
1)使用简单。方便处理交互。输入易于理解;自动化程度高;操作简便,按要求输出图、表等。
2)界面所用术语应标准化和一致。应用领域术语符合软件面向专业标准,软件技术术语符合软件工程规范。
3)帮助功能。软件必须有联机帮助功能。包括软件系统所有规格说明和各种操作、命令的用法。
4)快速的系统响应,低的系统成本。
5)界面应具有容错能力。即出错诊断、修正及保护功能。
2、灵活性。
1)界面能够满足不同用户的要求。对不同的用户,应有不同的界面。考虑用户的计算机水平,专业领域水平。初级用户可以不必考虑抉择和算法问题就可正常使用软件,高级用户保留抉择和选择算法的权利。
2)用户可以根据需要制定和修改界面方式。
3)系统按照用户的要求,提供不同详细程度的响应信息(反馈、提示、帮助、出错)。
4)标准界面。
3、复杂性和可靠性。
1)复杂性:用户界面的规模和组织的复杂程度就是界面的复杂性。
2)可靠性:用户界面无故障使用的时间间隔。用户界面应能保证用户正确、可靠的使用系统,保证有关程序和数据的安全性。
设计问题。
1、系统响应的时间。
系统响应时间属性:长度和易变性。
2、用户帮助设置。
可分为集成和附加。设计时考虑一下问题,
1)交互期间,提供帮助是部分还是全部。
2)获得帮助的方法:菜单,功能键,命令;
3)帮助信息显示方式:独立窗口,指示文档,固定位置显示简短提示。
4)返回方式:按钮、命令。
5)帮助信息
3、出错信息处理。
出错信息的设计,影响到用户对软件的信任
1)使用用户可以理解的术语描述。
2)提供有帮助于修改错误的提示。
3)指明错误可能导致的负面后果。
4)信息伴随适当的听觉和视觉的提示。
3、出错信息处理。
1)使用用户可以理解的术语描述;
2)提供有助于修改错误的提示;
3)指明错误可能导致的负面后果;
4)信息伴随适当听觉和视觉提示。
4、命令交互。
1)是否每个菜单选项都对应命令。
2)命令形式:控制序列(ctril+p),功能键或输入命令。
3)学习和记忆难度;忘记命令怎么办
4)用户是否可以定制或缩写命令。
设计过程。
用户界面是一个迭代的过程。首先设计原型,然后对原型评估,修改。
评估标准。
1)系统和界面复杂度,影响用户学习使用系统的工作量。
2)命令的复杂度影响交互时间和效率。
3)用户学习、使用系统需要记忆的内容量。
4)界面风格、帮助设施和出错处理,预示界面复杂程度和用户接受界面的程度。
设计指南。
1、一般交互。
1)一致性。菜单、命令输入、数据显示等使用一致的风格。
2)提供有意义的反馈。提供视觉和听觉的反馈,保证系统和用户建立双向通信。
3)执行破坏性动作前要求用户确认。
4)允许取消绝大多数操作。
5)减少在两次操作键必须记忆的信息量。
6)方便用户的操作。尽量减少用户按键次数,鼠标移动的距离,鼠标键盘交换次数,用户随时都应明白自己的操作内容。
7)允许犯错。
8)按功能对命令分类,对屏幕布局。
9)提供帮助。
10)使用简单动词或短语作为命令名。便于记忆,理解和节省菜单空间。
2、信息提示。
1)只显示与当前工作内容有关的信息。
2)使用便于用户汲取信息方式显示数据。
3)标记一致。用户通过统一的标志就可理解信息。
4)保持可视化的语境。用户可知道处理图像部分在原图中的相对位置。
5)产生有意义的出错信息。
6)使用大小写、缩进和文本分组帮助理解。文字的布局和形式对用户了解信息影响很大。
7)使用窗口分割不同类型的信息。
8)使用模拟显示方式表示信息,更直观。有助于用户对信息的理解和敏感。
9)高效率的使用屏幕。
输入数据可能是键盘、鼠标数字化仪和语音识别系统等。
1)减少用户的输入动作
2)保持信息显示和数据输入的一致性。
3)允许用户自定义输入。
4)交互方式应灵活。
5)不适用的命令不起作用。
6)让用户控制交互流。
7)对所有输入动作都提供帮助。
8)消除冗余的输入。
详细设计的工具。
表达过程规格说明的工具叫做详细设计工具,它可以分为三类:图形工具、表格工具、和语言工具。
图形工具:流程图、N-S图、PAD图
表格工具:判定表、判定树。
N-S图。
PAD图。
表格工具。
判定表。
当算法中包含多重嵌套的条件选择时,用程序流程图、N-S图或PAD图都不易清楚地描述。判定表却能清晰地表达复杂的条件组合与应做动作之间的对应关系。
判定表的有点是能股简洁,无二义性地描述所有的处理规则。
缺点:判定表表示的是静态逻辑,是在某种条件取值组合情况下可能的结果,它不能表达加工的顺序,也不能表达循环结构。
因此判定表不能成为一种通用的设计工具。
判定树。判定树又称为决策树,是一种描述加工的图形工具,适合描述问题处理中具有多个判断,而且每个决策与若干条件有关。使用判定树进行描述时,应该从问题的文字描述中分清哪些是判定条件,哪些是判定的决策,根据描述材料中的联结词找出判定条件的从属关系、并列关系、选择关系,根据它们构造判定树。
JackSon程序设计方法(JSP)
JacKson程序设计方法是一种典型的面向对象的数据结构的分析与设计方法。早期的JacKson方法用于小系统的设计,称之为
JacKson设计方法,简称JSP方法。它是按输入、输出和内部信息的数据结构进行软件设计的,即把数据结构的描述映射成程序结构描述。若数据结构有重复性(数据重复出现),则应对程序具有选择性(数据可能出现),则对应程序一定需要有判定控制结构,以此揭示数据结构和程序结构之间的内在关系,设计出反映数据结构的程序结构。层次的数据组织通常和使用这些数据的程序的曾触及结构十分相似。
JacKson结构图。
顺序结构图。
A是由B C D 三个元素组成的。
选择结构。
句号在B的右上角。
根据条件A是B或C 或D中的某一个。
重复结构。
A由B出现N次(N>=0)组成。
JacKson方法。
JSP方法的三部曲是信息--->数据结构----->程序结构。
步骤:
1)分析确定输入、输出数据结构,用JackSon图描绘这些数据结构。JackSon图描绘这些数据结构。
2)找出输入数据结构和输出数据结构有对应关系的数据单元
3)根据映射的输入输出数据所在的层次,确定映射在系统结构中的层次,并且处理框表示映射关系。
一、为没对有对应关系的数据单元,按照他们在数据结构途中的层次在程序结构图的相应层次画一个处理框。
二、根据输入数据结构中剩余的每个数据单元所处的层次,在程序结构图的相应的层次分别画上处理框。
三、根据输出数据结构中剩余的每个数据单元所处的层次,在程序结构图的相应层次分别画上对应的处理框。
4)列出所有操作和条件,并分配到程序结构图适当的位置。
5)用伪代码表示程序。
eg 一个正文文件由若干个记录组成,每个记录是一个字符串。要求统计每个记录中空格字符的个数,以及文件中空格字符的总个数,以及文件中空格字符的总个数。要求输出数据格式是,每复制一行输入字符串之后,另起一行印出这个字符串中的空格数,最后印出正文件中空格总个数。
进行分析:输入的是正文文件,其中正文文件包括若干个记录,然后若干个记录中包括若干个字符。并且记录和字符都是重复的,这就让我们想到了A由B出现N次方的图。分析输出的文件,输出的文件是每一行字符串的空格数和最后该文件中总的空格数。
画出输入和输出。
下一步是确定输入数据结构和输出数据结构中对应关系的数据单元。输出数据是从输入数据处理得到的。因此输入输出数据结构最高层数据单元对应。(“正文文件”对应“输出表格”)。
每处理输入数据中一个“字符串”,就可以得到输出数据中一个“串信息”,因此对应。
第三步,从数据结构图导出程序结构图。
1、在顶层画出一个处理框”统计空格“,它对应”正文文件“和”输出表格“。
2 、第二层表格体对应的处理框”程序体”空格总数对应的处理框“印总数”。
3、第三层“串信息”对应的处理框是“处理字符串“。
4、第四层对应处理框”印字符串“、”分析字符串“和”印空格数“。
第四步是列出所有操作和条件。分配到程序结构图适当的位置。第五步再进行伪代码设计。
详细设计的基本任务
1)为每个模块进行详细设计的算法设计。用某种图形、表格、语言等工具将每个模块处理过程的详细算法描述出来。
2)为模块内的数据结构进行设计。对于需求分析、概要设计确定的概念性的数据类型进行确切的定义。
3)对数据结构进行物理设计,即确定数据库的物理结构。物理结构主要指数据库的存储记录格式、存储记录安排和存储方法,这些都依赖于具体所使用的数据库系统。
4)其他设计:根据设计软件系统的类型,还可能要进行如下设计: 代码设计。为了提高数据的输入、分类、存储、检索等操作,节约内存空间,对数据库中的某些数据项的值要进行代码设计。 输入/输出格式设计。人机对话设计。对于一个实时系统,用户与计算机频繁对话,因此要进行对话方式、内容、格式的具体设计。
5)编写详细设计说明书。
6)评审。对处理过程的算法和数据库的物理结构都要评审。
好多图,有的还是不会画,慢慢来吧。还有软件工程的测试没有总结。。。继续。。。