结构化设计

概念

结构化设计,亦称SD(Structured Design),是一种面向数据流的设计方法,目的在于确定软件的结构。

根据结构化分析的结果,对程序结构、数据结构、过程细节和接口细节逐步细化、评审和编写文档的过程。从技术角度上,软件设计分成体系结构设计、数据设计、过程设计、接口设计4个方面的工作。从管理角度上讲,软件设计分为概要设计和详细设计两个阶段。

基本思想与目的

基本思想是:根据SA方法中的数据流图建立一个良好的模块结构图(例如SC图或软件层次方框图);运用模块化的设计原理控制系统的复杂性,即设计出模块相对独立的,模块结构图深度,宽度都适当的,单入口单出口的,单一功能的模块结构的软件结构图或软件层次方框图。此方法提供了描述软件系统的工具,提出了评价模块结构图质量的标准,即模块之间的联系越松散越好,而模块内各成分之间的联系越紧凑越好。
结构化设计的目的:使程序的结构尽可能反映要解决的问题的结构。
结构化设计的任务:把需求分析得到的数据流图DFD等变换为系统结构图(SC)。

基本原理

抽象化

常用的抽象化手段有过程抽象、数据抽象和控制抽象
● 过程抽象:任何一个完成明确功能的操作都可被使用者当做单位的实体看待,尽管这个操作时机上可能由一系列更低级的操作来完成。
● 数据抽象:与过程抽象一样,允许设计人员在不同层次上描述数据对象的细节。
● 与过程抽象和数据抽象一样,控制抽象可以包含一个程序控制机制而无须规定其内部细节。

自顶向下,逐步细化

将软件的体系结构按自顶向下方式,对各个层次的过程细节和数据细节逐层细化,直到用程序设计语言的语句能够实现为止,从而最后确立整个的体系结构。

模块化

将一个待开发的软件分解成若干个小的简单的部分——模块,每个模块可独立地开发、测试,最后组装成完整的程序。这是一种复杂问题的“分而治之”的原则。模块化的目的是使程序结构清晰,容易阅读,容易理解,容易测试,容易修改。

控制层次

表明了程序构件(模块)的组织情况。控制层次往往用程序的层次结构(树形或网型)来表示。
● 深度:程序结构的层次数,可以反映程序机构的规模和复杂程度。
● 宽度:同一层模块的最大模块个数
● 模块的扇出:一个模块调用(或控制)的其他模块数
● 模块的扇入:调用(或控制)一个给定模块的模块个数

信息屏蔽

将每个程序的成分隐蔽或封装在一个单一的设计模块中,定义每一个模块时尽可能少的显露其内部的处理,可以提高软件的可修改性,可测试性和可移植性。

模块独立

每个模块完成一个相对特定独立的子功能,并且与其他模块之间的联系简单。衡量度量标准有两个:模块间的耦合和模块的内聚。模块独立性强必须做到高内聚低耦合。
● 耦合:模块之间联系的紧密程度,耦合度越高模块的独立性越差。耦合度从低到高的次序为:非直接耦合、数据耦合、标记耦合、控制耦合、外部耦合、公共耦合、内容耦合。

● 内聚是指内部各元素之间联系的紧密程度,内聚度越低模块的独立性越差。内聚度从低到高依次是:偶然内聚、逻辑内聚、瞬时内聚、过程内聚、通信内聚、顺序内聚、功能内聚。

基本步骤

分为概要设计和详细设计两个阶段。

概要设计

概要设计也称为结构设计或总体设计,主要任务是把系统的功能需求分配给软件结构,形成软件的模块结构图。
概要设计的基本任务:
  1. 设计软件系统结构:
  2. 划分功能模块,
  3. 确定模块间调用关系;
  4. 数据结构及数据库设计:
  5. 实现需求定义和规格说明过程中提出的数据对象的逻辑表示;
  6. 编写概要设计文档: 包括概要设计说明书、数据库设计说明书,集成测试计划等;
  7. 概要设计文档评审:对设计方案是否完整实现需求分析中规定的功能、性能的要求,设计方案的可行性等进行评审。
概要设计工具:
结构图(SC: Structure Chart ),反映系统的功能实现以及模块与模块之间的联系与通信,即反映了系统的总体结构。注意:数据流DFD是软件生命周期的定义阶段中的需求分析方法中结构化分析方法的一种,此外还有数据字典(DD)、判定树和判定表,而SC是开发阶段中概要设计使用的方法。

详细设计

详细设计的目的:为软件结构图(SC)中的每 一个模块确定采用的算法,模块内数据结构,用某种选定的表达工具(如N-S图等)给出清晰的描述。
原文地址:https://www.cnblogs.com/yilang/p/12259881.html