结构化设计方法

03-软件工程基础 飞快学 290浏览

软件设计分两步完成,即概要设计和详细设计。一个设计良好的软件系统应具有高内聚、低耦合的特征。结构化设计的主要工具有各类流程图、判定表和伪代码。

软件设计的两个步骤

需求分析主要解决“做什么”的问题,而软件设计主要解决“怎么做”的问题。

从技术观点来看,软件设计包括软件结构设计、数据设计、接口设计、过程设计。结构设计:定义软件系统各主要部件之间的关系。数据设计:将分析时创建的模型转化为数据结构的定义。接口设计:描述软件内部、软件和协作系统之间以及软件与人之间如何通信。过程设计:把系统结构部件转换成软件的过程性描述。

从工程角度来看,软件设计分两步完成,即概要设计和详细设计。

概要设计又称结构设计,将软件需求转化为软件体系结构,确定系统级接口、全局数据结构或数据库模式。

详细设计确定每个模块的实现算法和局部数据结构,用适当方法表示算法和数据结构的细节。

软件设计的基本原理

软件设计的基本原理包括:抽象、模块化、信息隐蔽和模块独立性。

1)抽象。抽象是一种思维工具,就是把事物本质的共同特性提取出来而不考虑其他细节。
2)模块化。解决一个复杂问题时自顶向下逐步把软件系统划分成一个个较小的、相对独立但又不相互关联的模块的过程。
3)信息隐蔽。每个模块的实施细节对于其他模块来说是隐蔽的。
4)模块独立性。软件系统中每个模块只涉及软件要求的具体的子功能,而和软件系统中其他的模块的接口是简单的。

模块独立性的衡量指标

模块分解的主要指导思想是信息隐蔽和模块独立性。

模块的耦合性和内聚性是衡量软件的模块独立性的两个定性指标。

内聚性是一个模块内部各个元素间彼此结合的紧密程度的度量。耦合性是模块间互相连接的紧密程度的度量。

一个设计良好的软件系统应具有高内聚、低耦合的特征。在结构化程序设计中,模块划分的原则是:模块内具有高内聚度,模块间具有低耦合度。

详细过程设计的常用工具

详细设计的任务是为软件结构图中的每个模块确定实现算法和局部数据结构,用某种选定的表达表示工具算法和数据结构的细节。

(1) 图形工具:程序流程图,N-S,PAD,HIPO;(2) 表格工具:判定表;(3) 语言工具:PDL(伪码)。

程序流程图的5种控制结构:顺序型、选择型、先判断重复型、后判断重复型和多分支选择型。方框图中仅含5种基本的控制结构,即顺序型、选择型、多分支选择型、WHILE重复型和UNTIL重复型。PAD图表示5种基本控制结构,即顺序型、选择型、多分支选择型、WHILE重复型和UNTIL重复型。

过程设计语言(PDL)也称为结构化的语言和伪码,它是一种混合语言,采用英语的词汇和结构化程序设计语言,类似编程语言。PDL可以由编程语言转换得到,也可以是专门为过程描述而设计的。

程序结构图的例图及有关术语

jiegoutu

深度:表示控制的层数。宽度:整体控制跨度(最大模块数的层)的表示。

扇入:调用一个给定模块的模块个数。扇出:一个模块直接调用的其他模块数。

上级模块、从属模块:上、下两层模块a和b,且有a调用b,则a是上级模块,b是从属模块。