Discuz教程网

软件工程 详细设计的工具和方法

[复制链接]
authicon 09927306 发表于 2011-1-8 16:19:24 | 显示全部楼层 |阅读模式
过程设计的工具(描述程序处理过程)
图形、表格和语言3类过程设计的工具。
对工具的基本要求: 能够提供对设计无歧义的描述,即能指明控制流程、处理功能、数据组织及其他实现细节,从而在编码阶段能把对设计的描述直接翻译成程序代码。
1. 程序流程图(程序框图)
2. 盒图(N-S 图)
3. 问题分析图(PAD图——problem analysis diagram)【日本日立公司】
它用二维树形结构的图来表示程序的控制流,将这种图翻译成程序代码比较容易。
4. 判定表
当算法中包含多重嵌套的条件选择时,用判定树能够清晰的表示条件组合与应做的动作之间的对应关系。
5. 判定树
6. 过程设计语言(PDL、伪码)
它是用正文形式表示数据和处理过程的工具。

面向数据结构的设计方法
计算机软件本质上是信息处理系统,因此可根据软件处理的信息的特征来设计软件。
根据数据流,确定软件结构的方法——面向数据流的设计方法;
根据数据结构,设计程序处理过程的方法——面向数据结构的设计方法。
目标:得出对程序处理过程的描述;
方法:Jackson方法和Warnier方法;
前提:首先学要分析确定数据结构,并用适当的工具清晰的描绘数据结构。
Jackson方法:
1. Jackson图
数据结构的数据元素间的逻辑关系只有顺序、选择和重复3种,因此,逻辑数据结构也只有这3类:
(1) 顺序结构:其数据由一个或多个数据元素组成,每个元素按确定次序出现一次;
(2) 选择结构:其数据包含两个或多个数据元素,每次使用这个数据时按一定条件从这些数据元素中选择一个;
(3) 重复结构:启其数据根据使用时的条件由一个数据元素出现零次或多次构成。
优点:
(1)便于表示层次结构,而且是对结构进行自顶向下分解的有力工具;
(2)形象直观可读性好;
(3)既能表示数据结构也能表示程序结构。
2. Jackson方法
Jackson结构程序设计方法基本步骤:
(1) 分析并确定输入数据和输出数据的逻辑结构,并用Jackson图描绘这些数据结构;
(2) 找出输入数据结构和输出数据结构中对应关系的数据单元;
对应关系:指有直接的因果关系,在程序中可以同时处理的数据单元。
(3)用下述3条规则从描绘数据结构的Jackson图导出描绘程序结构的Jackson图:
第一:对每对有对应关系的数据单元,按照它们在数据结构图中的层次在程序结构图的相应层次画出一个处理框;
第二:根据输入数据结构中剩余的每个数据单元所处的层次,在程序结构图的相应层次分别为它们画上对应的处理框;
第三:根据输出数据结构中剩余的每个数据单元所处的层次,在程序结构图的相应层次分别为它们画上对应的处理框;
(4)列出所有操作和条件(包括分支和循环条件),并把它们分配到程序结构图的适当位置;
(5)用伪码表示程序。
程序复杂程度的定量度量
价值:
(1) 把程序的复杂程度乘以适当的常数即可估算出软件中错误的数量以及软件开发所需用的工作量,定量量度的结果可以用来比较两个不同设计或两个不同算法的优劣;
(2) 程序的定量的复杂程度可作为模块规模的精确限度。
方法:McCabe方法和Halstead方法。
1. Macabe方法
根据程序控制流的复杂程度定量的度量程序的复杂程度——程序的环形复杂度。
流图: “退化了的”程序流程图,它仅仅描绘程序的控制流程,完全不表现对数据的具体操作以及分支或循环的具体条件。
表示: 它用圆表示节点,一个圆代表一条或多条语句;程序流程图中的一个顺序处理框序列和一个菱形判定框可以映射称流图中的一个结点;流图的箭头线称为边,代表控制流;在流图中一条边必须终止于一个结点,即使这个结点不代表任何语句(空语句);由边和结点围成的面积称为区域。
计算环形复杂度(逻辑复杂度)的方法: (3种的任一种 )
(1) 流图中的区域数等于环形复杂度(计算时,应包括图外未被围起来的那个区域);
(2) 流图G的环形复杂度V(G) = E - N + 2,其中,E是流图的边数,N是结点数;
(3) 流图G的环形复杂度V(G) = P + 1,其中,P是流图中判定结点的数目。
实践表明:模块规模以 V(G) <= 10为宜,它也是测试难度的一种定量度量。
2. Halstead方法
根据程序中运算符和操作数的总数来度量程序的复杂度。
令N1为程序中运算符出现的总次数,N2为操作数出现的总次数,程序长度N定义为:
N = N1 + N2
详细设计完成后,可知程序中使用的不同运算符(包括关键字)的个数n1, 以及不同操作数(变量和常量)的个数n2,Halstead给出预测程序长度公式为:
H = n1 * log2(n1) + n2 * log2(n2), log2表示底数为2。
预测程序中包含错误的个数公式为:
E = N * log2(n1 + n2) / 3000





上一篇:程序设计的三种基本结构
下一篇:2011杭电软件工程 考试相关图片
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1314学习网 ( 浙ICP备10214163号 )

GMT+8, 2025-5-3 18:19

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表