软件工程——结构化分析

目录

一、结构化分析方法

 二、功能建模

 三、数据建模

四、行为建模

五、数据字典

六、加工规格说明


一、结构化分析方法

传统的分析建模方法称为结构化分析(structured analysis,SA)方法。 最有代表性的是一种面向数据流进行需求分析的方法。

结构化分析方法是一种建模技术

该模型的核心是数据字典,包括在目标系统中使用和生成的所有数据对象。围绕这个核心有3种图:数据流图(DFD)描述数据在系统中如何被传送或变换,以及描述如何对数据流进行变换的功能,用于功能建模;实体-关系图(ER图)描述数据对象及数据对象之间的关系,用于数据建模;状态-迁移图(STD)描述系统对外部事件如何响应、如何动作,用于行为建模。

 二、功能建模

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

2.1 数据流图的基本图形符号

2.2 多个数据流之间的关系 

 2.3 环境图(0层数据流图)

环境图(context diagram)也称为顶层数据流图(或0层数据流图),它仅包括一个数据处理过程,也就是要开发的目标系统。 环境图的作用是确定系统在其环境中的位置,通过确定系统的输入和输出与外部实体的关系确定其边界。

2.4 画数据流图

画数据流图的基本步骤概括地说就是自外向内,自顶向下,逐层细化,完善求精。

在多层数据流图中,顶层流图仅包含一个加工

在分层的数据流图中,各层数据流图之间应保持“平衡”关系;规定任何一个数据流子图必须与它上一层的一个加工对应,两者的输入数据和输出数据必须一致。

 三、数据建模

在结构化分析方法中,使用实体—关系建模技术来建立数据模型。 这种技术是在较高的抽象层次(概念层)上对数据库结构进行建模的流行技术。 实体—关系模型表示为可视化的实体—关系图(entity-relationship diagram,ERD),也称为ER图。 ER图中仅包含3种相互关联的元素:数据对象(实体)、描述数据对象的属性及数据对象彼此间相互连接的关系。

3.1 数据对象

数据对象是目标系统所需要的复合信息的表示,所谓复合信息是具有若干不同属性的信息。在ER图中用矩形表示数据对象。

3.2 属性

属性定义数据对象的特征

在ER图中用椭圆或圆角矩形表示属性,并用无向边将属性与相关的数据对象连接在一起

3.3 关系

不同数据对象的实例之间是有关联关系的,在ER图上用无向边表示

在无向边的两端应标识出关联实例的数量,也称为关联的重数

从关联重数的角度可以将关联分为3种。

        (1) 一对一(1:1)关联

        (2) 一对多(1:m)关联

        (3) 多对多(m:n)关联

符号表示

 关系本身也可能有属性,这在多对多的关系中尤其常见.

关系属性的表示:在表示关系的无向边上再加一个菱形框,并在菱形框中标明关系的名字,关系的属性同样用椭圆形或圆角矩形表示,并用无向边将关系与其属性连接起来。

四、行为建模

在需求分析过程中,应建立起软件的行为模型;

状态转换图(简称状态图)通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为。

状态图中使用的主要符号:

 4.1状态

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

状态的表示:初态用实心圆表示,终态用牛眼图形表示,中间态用圆角矩形表示。

活动部分的语法如下:

事件名(参数表)/动作表达式
事件名可以是任何事件的名称,需要时可为事件指定参数表,动作表达式指定应做的动作。
entry事件指定进入该状态的动作
exit事件指定退出该状态的动作
do事件则指定在该状态下的动作

4.2  状态转换

状态图中两个状态之间带箭头的连线称为状态转换。 状态的变迁通常是由事件触发的,在这种情况下应在表示状态转换的箭头线上标出触发转换的事件表达式。 如果在箭头线上未标明事件,则表示在源状态的内部活动执行完之后自动触发转换

4.3事件

事件是在某个特定时刻发生的事情,它是对引起系统做动作或从一个状态转换到另一个状态的外部事件的抽象。

事件表达式的语法如下:

事件说明(守卫条件)/动作表达式

事件说明的语法如下: 事件名(参数表) (

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

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

五、数据字典

数据字典词条方式定义在数据模型、功能模型和行为模型中出现的数据对象及控制信息的特性,给出它们的准确定义,包括数据流、加工、数据文件、数据元素,以及数据源点、数据汇点等。

5.1词条描述

对于在数据流图中每一个被命名的图形元素均加以定义; 其内容包括图形元素的名字,图形元素的别名或编号,图形元素类别(如加工、数据流、数据文件、数据元素、数据源点或数据汇点等)、描述、定义、位置等。

(1)数据流词条

数据流是数据结构在系统内传播的路径。

(2)数据元素词条

数据流图中的每个数据结构都是由数据元素构成的,数据元素是数据处理中最小的、不可再分的单位,它直接反映事物的某一特征

(3)数据存储文件词条

数据存储文件是数据保存的地方

(4)加工词条

加工可以使用诸如判定表、判定树、结构化语言等形式表达

(5)数据源点及数据汇点词条

对于一个数据处理系统来说,数据源点和数据汇点应比较少

5.2 数据结构描述(顺序、选择、重复)

(1)定义式

        在数据流图中,数据流和数据文件都具有一定的数据结构,因此,必须以一种清晰、准确、无二义性的方式来描述数据结构。

数据结构定义式中的符号

(2) Warnier图。(读法:瓦捏图)

        Warnier图是表示数据结构的另一种图形工具,它用树形结构来描绘数据结构。

六、加工规格说明

在对数据流图的分解中,位于层次树最低层的加工也称为基本加工或原子加工,对于每一个基本加工都需要进一步说明,这称为加工规格说明。

满足要求:

(1) 对数据流图的每一个基本加工,必须有一个加工规格说明。

(2) 加工规格说明必须描述基本加工如何把输入数据流变换为输出数据流的加工规则。

(3) 加工规格说明必须描述实现加工的策略而不是实现加工的细节。

(4) 加工规格说明中包含的信息应是充足的,完备的,有用的,没有重复的多余信息。

6.1 决策表(decision tree)

决策表由4个部分组成:

左上部分是条件茬,在此区域列出了各种可能的单个条件;

左下部分是动作茬,在此区域列出了可能采取的单个动作;

右上部分是条件项,在此区域列出了针对各种条件的每一组条件取值的组合;

右下部分是动作项,这些动作项与条件项紧密相关,它指出了在条件项的各组取值的组合情况下应采取的动作

 建立决策表的步骤

(1) 列出与一个具体过程(或模块)有关的所有处理。

(2) 列出过程执行期间的所有条件(或所有判断)。

(3) 将特定条件取值组合与特定的处理相匹配,消去不可能发生的条件取值组合。

(4) 将右部每一纵列规定为一个处理规则,即对于某一条件取值组合将有什么动作。

用决策表描述循环比较困难

6.2决策树(decision tree)

决策树(decision tree)也是用来表达加工逻辑的一种工具,有时侯它比决策表更直观。

猜你喜欢

转载自blog.csdn.net/TAO1031/article/details/127708820