Alex_McAvoy

想要成为渔夫的猎手

软件结构化分析

【概述】

结构化分析方法(SA,Structured Analysis)是一种考虑数据和处理的需求分析方法,其基于分解抽象的基本思想,逐步建立目标系统的逻辑模型,进而描绘出满足用户要求的软件系统

其是一种面向数据流的需求分析方法,适用于数据处理类型软件的需求分析,利用抽象模型的概念,按照软件内部数据传递、变换的关系,自顶向下逐层分解,直到找到满足功能要求的所有可实现的软件为止

分解是指对于一个复杂的系统,为将复杂性降低到可以掌握的程度,可以把大问题分解为若干个小问题,然后再分别解决

抽象是指在逐层分解的过程中,起初不考虑细节问题,关注的是系统的本质属性,随着分解向下进行,逐步考虑越来越具体的细节

如下图,最顶层描述了整个目标系统 X;中间层将目标系统划分为若干模块,每个模块完成一定的功能;最底层是对每个模块的细节性描述

【结构化分析方法】

结构化分析实质上是一种创建模型的活动,其建立的分析模型如下图所示:

模型的核心是数据字典,其描述软件使用或产生的所有数据对象,围绕着这个核心有 $3$ 种不同的图:

  • 实体-关系图:又称 E-R 图,描绘数据对象之间的关系,用于数据建模
  • 数据流图:又称 DFD 图,指出当数据在软件系统中移动时怎样被变换,以及描绘变换数据流的功能和子功能,用于功能建模
  • 状态转换图:指明了作为外部事件结果的系统行为,用于行为建模

【数据字典】

概述

数据字典以一种系统化的方式定义在分析模型中出现的数据对象及控制信息的特性,给出它们的准确定义,包括数据流、数据存储、数据项、数据加工,以及数据源点、数据汇点等

数据字典是分析模型中的 3 种模型黏合在一起的黏合剂,是分析模型的核心

一般将其作为数据流图的补充,对数据流图中的所有元素作详细的文字说明

采用符号

符号 含义 实例
= 等价于/定义为 x=a
+ 与/连接 x=a+b
[|] 或/选择 x=[a|b]
m{}n 重复 m…n 次 x=1{a}5
() 可选 x=a+(b)
“” 基本数据元素 x=”0”
.. 范围 x=”1”..”9”

【功能模型】

概述

功能建模的思想就是用抽象模型的概念,按照软件内部数据传递和变换的关系自顶向下逐层分解,直到找到满足功能要求的可实现的软件为止

功能模型用数据流图来描述,数据流图就是采用图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法

组成

数据流图通过外部实体、数据流、数据变换、数据存储四种元素来进行模型表示:

  • 外部实体:数据的源点或终点,是系统之外的实体,可以是人、物或其他系统,可以用来明确系统和环境的界限,同一个外部实体可以在一张数据流程图中出现若干次
  • 数据流:表示数据和数据的流动方向,由一项或一组固定成分的数据组成,其可以从数据变换流向数据变换、从数据变换流向数据存储、从数据存储流向数据变换
  • 数据变换:对数据进行加工或处理,例如对数据的算法分析与科学计算
  • 数据存储:输入或输出文件,可以是计算机系统的外部、内容文件,也可以是表、账单等

上述四种元素的符号有 Yourdon 和 Gane 两种方式表示:

如下图,是一个简单的 $0$ 层数据流图:

环境图

环境图也称系统顶层数据流图(零层数据流图),其仅包括一个数据处理过程,也就是要开发的目标系统

环境图的作用是确定系统在其环境中的位置,通过确定系统的输人和输出与外部实体的关系确定其边界

基本加工

在对数据流图的分解中,位于最底层的数据流图的数据处理,称为基本加工

对于每一个基本加工都需要进一步说明,这称为加工规格说明,其主要是为了表达 “做什么”,一般可以用伪代码、判定表、判定树来表达

伪代码和真正的程序代码已经十分接近了,因此使用伪代码来描述加工规格说明,一般推迟到结构化设计中进行

当某个数据处理的执行可能依赖多个逻辑条件的取值时,一般利用判定表来处理

判定树是判定表的变种,其能清晰地表达复杂条件组合与应做动作间的关系

【数据模型】

概述

数据建模是在较高的抽象层次(概念层)上对数据库结构进行建模,其用实体-关系图(E-R 图)来描述

E-R 图可以明确描述待开发系统的概念结构数据模型,对于较复杂的系统,通常要先构造出各部分的 E-R 图,然后将各分 E-R 图集合成总的 E-R 图,并对 E-R 图进行优化,以得到整个系统的概念结构模型

组成

数据模型包含 3 种相互关联的信息:

  • 数据对象:又称实体,是对软件必须理解的复合信息的表示,常用矩形框来表示
  • 属性:定义数据对象的性质,常用椭圆形、圆角矩形来表示实体的属性,并用无向边把实体与其属性连接起来
  • 关系:又称联系,是数据对象彼此之间相互连接的方式,常用菱形框来表示,其也可能有属性,表示方法、连接形式与实体与其属性的表示方法相同。

数据对象是由若干个属性组成的,每个属性都代表了实体的某些特征,关系根据实际情况,可分为一对一联系(1:1)、一对多联系(1:N)、多对多联系(N:N)

如下图,是一个简单的教学管理系统的 E-R 图:

【行为模型】

概述

系统对内部或外部事件响应的模型称为行为模型,常用状态转换图来表示

其描述了系统状态事件,事件引发系统在不同状态间进行转换,这种模型尤其适合用来描述实时系统,因为这类系统多是由外部环境的激励而驱动的

组成

状态是任何可被观察到的系统行为模式,一个状态代表系统的一种行为模式,其规定了系统对事件的响应方式

系统对事件的响应,既可以是一个或一系列动作,也可以是仅改变系统本身的状态,还可以是既改变状态又做动作

在状态转换图中,状态分为三部分:初始状态、最终状态、中间状态,除中间状态允许有多个外,初始状态与最终状态只能有一个

事件是在某个特定时刻发生的事情,它是对引起系统做动作或从一个状态转换到另一个状态的外界事件的抽象,例如:观众使用电视遥控器,用户移动鼠标、点击鼠标等都是事件

简而言之,事件就是引起系统做动作或转换状态的控制信息

事件表达式的语法为:事件说明[守卫条件]/动作表达式

事件说明的语法为:事件名(参数表),常见的事件名有:entry、exit、do 等

守卫条件是一个布尔表达式,如果同时使用守卫条件和事件说明,则当且仅当事件发生且布尔表达式成立时,状态转换才发生。如果只有守卫条件没有事件说明,则只要守卫条件为真,状态转换就发生

动作表达式是一个过程表达式,当状态转换开始时执行该表达式

如下图,是一个图书馆系统的模型状态转换图:

【图形工具】

除上述的数据流图、ER 图、状态图、数据字典、加工规格说明外,在结构化分析中,以下三种图形工具也经常被使用

层次方框图

层次方框图由树形结构的一系列多层次矩形组成,用于描述数据的层次结构,上下层之间、模块与模块之间,只是表示数据的组成关系

顶层用于描述数据结构的整体,中间各层表示数据的子集,最底层表示这个数据不能再分割的元素

Warnier 图

warnier 图和层次方框图类似,也用树形结构描绘信息,但是这种图形工具比层次方框图提供了更丰富的描绘手段

Warnier 图可以表明信息的逻辑组织,也就是说,它可以指出一类信息或一个信息元素是重复出现的,也可以表示特定信息在某一类信息中是有条件地出现的

IPO 图

IPO 图是输入、处理、输出图的简称,它是由美国 IBM 公司发展完善起来的一种图形工具,能够方便地描绘输入数据、对数据的处理和输出数据之间的关系

感谢您对我的支持,让我继续努力分享有用的技术与知识点!