结构化分析方法
什么是结构化方法
结构是指系统内各个组成要素之间的相互联系、相互作用的框架。结构化开发方法提出了一组提高软件结构合理性的准则,如分解与抽象、模块独立性、信息隐蔽等。针对软件生存周期各个不同的阶段,它有结构化分析(SA)和结构化程序设计(SP)等方法。
结构化分析方法
结构化分析方法(Structured Method,结构化方法)是一种软件开发方法,一般利用图形表达用户需求,强调开发方法的结构合理性以及所开发软件的结构合理性。
结构化分析方法给出一组帮助系统分析人员产生功能规约的原理与技术。它一般利用图形表达用户需求。其基本思想是自顶向下逐层分解。分解和抽象是人们控制问题复杂性的两种基本手段。对于一个复杂的问题,人们很难一下子考虑问题的所有方面和全部细节,通常可以把一个大问题分解成若干个小问题,每个小问题再分解成若干个更小的问题,经过多次逐层分解,每个最底层的问题都是足够简单、容易解决的,于是复杂的问题也就迎刃而解了。这个过程就是分解过程。
结构化分析方法把系统看作一个过程的集合体,包括人完成的和电脑完成的。结构化分析方法的特点是利用数据流图来帮助人们理解问题,对问题进行分析。是面向数据流的需求分析方法,是目前最成熟、应用最广泛的方法,主要特点是快速、自然和方便。结构化系统分析方法从总体上来看是一种强烈依赖数据流图的自顶向下的建模方法。它不仅是需求分析技术,也是完成需求规格化的有效技术手段。
结构化分析所使用的工具
结构化分析一般包括以下工具:
- 数据流图(Data Flow Diagram,DFD)
- 数据字典(DataDictionary,DD)
- 结构化语言
- 判定表
- 判定树
后面将对它们一 一做介绍。
结构化分析的工作步骤
在介绍具体的结构化分析方法之前,先对如何进行结构化分析做一个总结性描述,以帮助大家更好地应用该方法。
初略的说主要如下步骤:
- 研究“物质环境”。首先,应画出当前系统(可能是非计算机系统,或是半计算机系统)的数据流图,说明系统的输入、输出数据流,说明系统的数据流情况,以及经历了哪些处理过程。在这个数据流图中,可以包括一些非计算机系统中数据流及处理的命名,例如部门名、岗位名、报表名等。这个过程可以帮助分析员有效地理解业务环境,在与用户的充分沟通与交流中完成。
- 建立系统逻辑模型。当物理模型建立完成之后,接下来的工作就是画出相对于真实系统的等价逻辑数据流图。在前一步骤建立的数据流图的基础上,将所有自然数据流都转成等价的逻辑流,例如,将现实世界的报表存储在计算机系统中的文件里;又如将现实世界中“送往总经理办公室”改为“报送报表”。
- 划清人机界限。最后,确定在系统逻辑模型中,哪些将采用自动化完成,哪些仍然保留手工操作。这样,就可以清晰地划清系统的范围。
- 分析当前的情况,做出反映当前物理模型的DFD;
- 推导出等价的逻辑模型的DFD;
- 设计新的逻辑系统,生成数据字典和基元描述;
- 建立人机接口,提出可供选择的目标系统物理模型的DFD;
- 确定各种方案的成本和风险等级,据此对各种方案进行分析;
- 选择一种方案;
- 建立完整的需求规约。
特点
具有以下特点:
- 面向用户的观点;
- 自顶向下的分析、设计与自底向上的系统实施相结合;
- 逻辑设计和物理设计分别进行;
- 严格区分系统阶段;
- 结构化、模块化;
- 开发过程工程化。
它的优点如下:
- 图形化的表达更加直观,清晰,往往一张图比文字更具说服力;
- 有些图能表达系统立体的结构设计,强调逻辑功能;
- 用图形表达能很好的将系统各部门联系起来,而不是若干个子系统的拼凑
注意事项
- 命名。
- 画数据流而不是控制流。
- 一般不画物质流。
- 每个加工至少有一个数据流和一个输出数据流。
- 编号
- 保持父图和子图的平衡
- 数据流图的一致性
- 提高数据流图的易懂性