软件工程导论 06章详细设计

1、结构程序设计经典定义:如果一个程序的代码块仅仅通过顺序、选择和循环这3种基本控制结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的。(尽可能少使用GOTO语句,最好只在检测出错误时才使用GOTO语句而且是向前使用GOTO语句)
从理论上说只用上述3种基本控制结构就可以实现任何单入口单出口的程序,但是为了实际使用方便起见,常常还允许使用DO-UNTIL和DO-CASE两种控制结构。
只使用顺序、if-then-else和do-while这三种基本控制结构,则成为经典的结构程序设计,在此基础上如果还使用do-case和do-until则成为扩展的结构程序设计,如果再增加允许使用break则称为修正的结构程序设计。
2、过程设计的工具:
①程序流程图:图又称为程序框图,它是使用最广泛的描述过程设计的方法。是最常见的图示,但是越来越多人不使用。
②盒图:又称为NS图,很容易表现出嵌套关系和模块的结构层次,常用的表示方法如下:
软件工程导论 06章详细设计
分别为:a顺序执行 b if-then-else分支 c case型多分支 d 循环 e 调用子程序。盒图一般绘制时都是从上往下,顺序向下执行指导出现选择,之后用左右分开的方式来表示不同条件下执行的内容。
软件工程导论 06章详细设计
③PAD图
PAD是问题分析图的英文缩写,用二 维树形结构的图来表示程序的控制流。
基本符号 (a) 顺序(先执行P1后执行P2); (b) 选择(IF C THEN P1 ELSE P2); © CASE型多分支; (d) WHILE型循环(WHILE C DO P); (e) UNTIL型循环(REPEAT P UNTIL C); (f) 语句标号; (g) 定义
实际使用时PAD图可以更好的表示出程序结构,而且结构十分清晰,一层的操作均在最左侧,向右表示进一步的嵌套。
软件工程导论 06章详细设计
④判定表
判定表能够清晰地表示复杂的条件组合与应做的动作之间的对应关系。判定表由四部分组成,左上部(第一列的上半部分)列出所有的条件,左下部(第一列的下半部分)是所有可能的动作,右上部(整个二维表除了第一列剩余的上半部分)为条件组合的矩阵,右下部(整个二维表除了第一列剩余的下半部分)为每种条件下对应的动作。
⑤判定树
判定树是判定表的变种,它也能清晰地表示复杂的条件组合与应做的动作之间的对应关系。可以理解为用树的形式来表示判定表。
⑥过程设计语言
过程设计语言(PDL)也称为伪码。是用正文形式表示数据和处理过程设计工具。
3、面向数据结构的设计方法
①Jackson图
软件工程导论 06章详细设计
②改进的Jackson图
(a)顺序结构,B、C、D中任一个都不能是选择出现或重复出现的数据元素(即不能是右上角有小圆圈或星号标记的元素);
(b)选择结构,S右面括号中的数字i 是分支条件的编号;
© 可选结构,A或者是元素B或者不出现;
(d) 重复结构,循环结束条件的编号为i。
软件工程导论 06章详细设计
③Jackson法:
一般由五个步骤组成:
A 分析并确定输入数据和输出数据的逻辑结构,并用Jackson图描绘这些数据结构
B 找出输入数据结构和输出数据结构中有对应关系的数据单元
C 用下述3条规则从描绘数据结构的Jackson图导出描绘程序结构的Jackson图。
为每对有对应关系的数据单元,按照它们在数据结构图中的层次在程序结构图的相应层次画一个处理框。
根据输入数据结构中剩余的每个数据单元所处的层次,在程序结构图的相应层次分别为它们画上对应的处理框。
根据输出数据结构中剩余的每个数据单元所处的层次,在程序结构图的相应层次分别为它们画上对应的处理框。
D 列出所有操作和条件 (包括分支条件和循环结束条件),并且把它们分配到程序结构图的适当位置。
E 用伪码表示程序。
4、人机界面设计需要设计的问题:
①系统响应时间
②用户帮助设备
③出错信息处理
④命令交互
设计用户界面时,需要先设计模型,再用原型实现这个设计模型,最后根据用户的反馈意见进行修改