定义

以程序模块化为基础建立起来的软件机体,结构的基本单元是模块,模块的相互作用实现功能,模块的组合构成系统。结构化方法尽管是早期的方法,但可以初步了解软件开发的细化过程是如何进行的。理解有关结构化分析分解、抽象等一些重要思想

如何结构化一个现实问题

  • 面向数据结构的方法

该方法是Jackson 提出的,简称JSD(Jackson System Development)。

该方法先定义数据结构,然后把数据结构转换为问题解的程序结构。在许多领域信息有着清晰的层次结构,输入数据、存储信息(即数据库)及数据输出都有各自的组成样式。因此可以顺序出现的就用顺序结构,选择出现的就用分支结构,反复出现的就用循环结构。

①确定数据结构特征;

②用顺序、选择和重复三种基本形式表示数据;

③把数据结构表示映射为软件的控制结构;

④用与具体方法配套的设计指南进一步精化控制结构;

⑤软件的过程性描述。

特点:不区分分析与设计,两者是一体化的

  • 面向数据流的方法

面向数据流的方法有一整套的分析设计方法,有SA、SD和SP等生存周期各个不同的阶段。

提出了一组提高软件结构合理性的准则,如抽象与分解、模块独立性、信息隐蔽等。针对面向数据流结构化方法。

面向数据流的方法是广为流传的结构化方法,几乎成为结构化方法的暗指。

1.分析的思想:
分解,抽象,多视图,自顶向下,逐层分解,逐步求精;

2.分析的目标:
建立系统的逻辑模型,包括功能模型、数据模型和行为模型;

3.建模的主要技术:

功能建模:数据流图DFD(Data Flow Diagram)+ 数据字典DD(Data Dictionary);

数据建模:实体关系图ERD(Entity Relation Diagram);

行为建模:状态转换图STD(State Transform Diagram);

另外还使用加工说明PESPEC(Process SPECification)和判定表等辅助工具。

结构化分析到设计的致命伤

结构化的致命伤就是从DFD到SC的细化,采用面目全非的不同表达方式进行映射。对于复杂的大系统,可望而不可及。因此,面向对象方法开发方法受到欢迎。