面对过程分析模型
- 1. 需求分析的模型概述
- 1.1 面对过程分析模型-结构化分析方法
- 1.2 结构化分析的过程
- 2. 功能模型:数据流图初步
- 2.1 加工
- 2.2 外部实体(数据源点/终点)
- 2.3 数据流
- 2.4 数据存储
- 2.5 注意事项
- 3. 功能模型:数据流图进阶
- 3.1 仓库管理与订货系统
- 3.2 绘制数据流图
- 4. 数据流图的改进
- 4.1 检查正确性
- 数据守恒
- 数据存储的使用
- 父图和子图的平衡:数据的出入关系
- 4.2 提高易理解性
- 4.3 重新分解
- 4.4 检查数据流图的原则
- 5、 功能建模:编写数据字典
1. 需求分析的模型概述
面向过程分析模型:是用系统工程的思想和工程化的方法,根据用户至上的原则,自始自终按照结构化、模块化、自顶而下地对系统进行分析和设计。
面向对象分析模型:有5个层次(主题层、对象类层、结构层、属性层和服务层)和5个活动(标识对象类、标识结构、定义主题、定义属性和定义服务)组成。
结构化分析的结果由以下几部分组成:
- 一套分层的数据流图(Data Flow Diagram,DFD)。用来描述数据流从输入到输出的变换流程。
- 一本数据字典(Data Dictionary,DD)。用来描述 DFD 中的每个数据流、文件以及组成数据流或文件的数据项。
- 一组小说明(也称加工逻辑)。用来描述每个基本加工(即不再分解的加工)的加工逻辑。
1.1 面对过程分析模型-结构化分析方法
面对数据流进行需求分析的方法。结构化分析方法适合于数据处理类型软件的需求分析。具体来说,结构化分析方法就是用抽象模型的概念,按照软件内部数据传递、变换的关系,自顶向下逐层分解,直到找到满足功能要求的所有可实现的软件为止。
- 面对过程的分析建模工具
数据流图实例:
多层数据流图:
顶层流图:在多层数据流图中,顶层流图仅包含一个加工,它代表被开发系统。它的输入流是该系统的输入数据,输出流是系统所输出数据。
中间层流图:表示对其上层父图的细化。它的每一加工可能继续细化,形成子图。
底层流图:指其加工不需再做分解的数据流图,它处在底层。
1.2 结构化分析的过程
结构化分析的过程可以分为以下4个步骤。
- 理解当前的现实环境,获得当前系统的具体模型(物理模型)。
- 从当前系统的具体模型抽象出当前系统的逻辑模型。
- 分析目标系统与当前系统逻辑上的差别,建立目标系统的逻辑模型。
- 为目标系统的逻辑作补充。
2. 功能模型:数据流图初步
2.1 加工
表示对数据进行的操作,如“处理选课单”、“产生发票”等;加工具有编号,说明这个加工在层次分解中的位置(分层DFD)
加工命名注意事项:
- 顶层的加工名就是整个系统项目的名字;
- 尽量最好使用动宾词组,也可用主谓词组;
- 不要使用空洞的动词。
2.2 外部实体(数据源点/终点)
位于系统之外的信息提供者或使用者,称为外部实体。即存在于系统之外的人员和组织。如“学务部”等。
说明数据输入的源点(数据源)或数据输出的终点(数据终点)。
起到更好的理解作用,但不是系统中的事物。
2.3 数据流
表示数据和数据流向,由一组固定成分的数据组成,如“选课单”由“学号、姓名、课程编号、课程名”等成分组成。
数据流可从加工流向加工,也可在加工与数据存储或外部项之间流动;两个加工之间可有多股数据流。
-
数据流的命名原则
- 用名词,不要使用意义空洞的名词;
- 尽量使用现实系统已有名字
-
数据流与加工关系
-
数据流注意事项
- 不要把控制流作为数据流
- 不要标出激发条件
- 不要把控制流作为数据流
2.4 数据存储
表示需要保存的数据流向,如“学生档案”、“课程设置”等;
数据存储与加工的方向
↑
\uparrow
↑"读出"、
↓
\downarrow
↓“写入”;
分层数据流程图中,数据存储一般局限在某一层或某几层;
命名方法与数据流相似
2.5 注意事项
-
每个加工至少有一个输入数据流和一个输出数据流;
-
数据流必须和加工联系起来;
3. 功能模型:数据流图进阶
3.1 仓库管理与订货系统
例如:某仓库业务的工作过程如下:企业职工填写领料单,经主管审查签名批准后,职工到仓库领取零件。仓库保管员检查领料单是否符合审批手续,填写是否正确等,不正确的领料单退还职工,填写正确的领料单则办理领料手续,进行登记,修改库存量并给予零件。
当某种零件的库存量低于事先规定的临界值时,登记需要采购零件的订货信息,为采购部门提供一张订货单。要求用计算机辅助领料工作和编制订货单。
3.2 绘制数据流图
-
第一步绘制数据流图顶层:首先确定系统的输入和输出,画出顶层数据流图。经过分析,主要数据流输入的源点和输出的终点是职工和仓库管理员、采购员。
-
绘制数据流图1层:从输入端开始,根据仓库业务工作流程,画出数据流流经的各加工框,逐步画到输出端,得到1层数据流图。
-
绘制数据流图2层,加细每一个加工框
-
合成总体数据流图
-
检查与调整数据流图
在分析过程中,由于每个人的经验和思路不尽相同,对数据流图的分解方案可以有多种形式,不是唯一的。对每一张数据流图进行检查,如果太不均衡,就需要进行调整,尽量使分解后的各个软件子系统的复杂性得到均衡,便于今后设计工作的并行开展。
4. 数据流图的改进
数据流图的改进主要从三个方面出发:检查正确性、提高易理解性和重新分解。
4.1 检查正确性
数据守恒
数据不守恒的两种情况:
- 某个加工输出的数据并无相应的数据来源,可能是某些数据流被遗漏了;
- 一个加工的输入并没有用到,这不一定是错误。可与用户进一步讨论,是否属于多余的数据流。
数据存储的使用
判断:是否存在“只读不写”或“只写不读”的数据存储(注意在所有的DFD中检查),这样是错误的
父图和子图的平衡:数据的出入关系
4.2 提高易理解性
-
简化加工之间的联系:应尽量减少加工之间输入输出数据流的数目。因为加工之间的数据流越少,各个加工的功能就越相对独立。
-
注意分解的均匀:即图中各个部分不均匀。一张图中,如果某些加工已是基本加工(细节),而另一些加工还可进一步分解成三、四层。则应考虑重新分解。
-
适当的命名
名字的意义要明确,容易理解。
如果难以为DFD图中的成分(数据流、加工等)命名,往往说明分解不当,可考虑重新分解。
4.3 重新分解
在画第N层时意识到在第N-1层或第N-2层所犯的错误,此时就需要对第N-1层、第N-2层作重新分解。
-
把需要重新分解的某张图的所有子图连接成一张;
-
把图分成几部分,使各部分之间的联系最少
-
重新建立父图,即把第2)步所得的每一部分画成一个图,而各部分之间的联系就是加工之间的界面。
-
重新建立各张子图,这只需把第2)步所得的图按各部分的边界剪开即可。
-
为所有的加工重新命名和编号
4.4 检查数据流图的原则
- 数据流图上所有图形符号只限于前述四种基本图形元素
- 数据流图的主图必须包括前述四种基本元素,缺一不可
- 数据流图的主图上的数据流必须封闭在外部实体之间
- 每个加工至少有一个输入数据流和一个输出数据流
- 在数据流图中,需按层给加工框编号。编号表明该加工所处层次及上下层的亲子关系
- 规定任何一个数据流子图必须与它上一层的一个加工对应,两者的输入数据流和输出数据流必须一致。此即父图与子图的平衡
- 图上每个元素都必须有名字
- 数据流图中不可夹带控制流
- 初画时可以忽略琐碎的细节,以集中精力于主要数据流
5、 功能建模:编写数据字典
编写数据字典,写出系统需求规格说明书,提交审查,并编写检测验收计划、编写初步的用户书册概要。
数据流图仅描述了系统的“分解”,并没有对各个数据流、加工、数据存储进行详细说明。数据字典是用来定义数据流图中各个成分的具体含义的,它以一种准确的、无二义性的说明方法为系统的分析、设计及维护提供了有关元素一致的定义和详细的描述。
数据字典有4类条目:数据流、数据项、数据存储和基本加工。对应数据流图中数据流、外部实体、数据存储和加工的说明。