结构化分析
分析师使用各种工具来理解和描述信息系统。其中一种方法是使用结构化分析。
什么是结构化分析?
结构化分析是一种开发方法,允许分析师以逻辑方式理解系统及其活动。
这是一种系统方法,使用图形工具分析和改进现有系统的目标,并开发用户可以轻松理解的新系统规范。
它具有以下属性 −
它是图形,指定应用程序的呈现方式。
它划分流程,以便清晰地展示系统流程。
它是逻辑的而不是物理的,即系统的元素不依赖于供应商或硬件。
这是一种从高级概述到低级概述的方法详细信息。
结构化分析工具
在结构化分析过程中,系统开发会使用各种工具和技术。它们是 −
- 数据流图
- 数据字典
- 决策树
- 决策表
- 结构化英语
- 伪代码
数据流图 (DFD) 或气泡图
这是 Larry Constantine 开发的一种技术,用于以图形形式表达系统需求。
它显示系统各个功能之间的数据流,并指定当前系统的实现方式。
它是设计阶段的初始阶段,将需求规范按功能划分为最低级别细节。
它的图形特性使其成为用户和分析师或分析师和系统设计师之间良好的沟通工具。
它概述了系统处理哪些数据、执行哪些转换、存储哪些数据、产生哪些结果以及它们流向何处。
DFD 的基本元素
当所需设计不明确且用户想要一种符号语言进行交流时,DFD 易于理解且非常有效。但是,它需要大量的迭代才能获得最准确和完整的解决方案。
下表显示了设计 DFD 时使用的符号及其含义 −
符号名称 | 符号 | 含义 |
---|---|---|
正方形 | 数据的来源或目标 | |
箭头 | 数据流 | |
圆形 | 流程转换数据流 | |
打开矩形 | 数据存储 |
DFD 的类型
DFD 有两种类型:物理 DFD 和逻辑 DFD。下表列出了物理 DFD 与逻辑 DFD 的区别。
物理 DFD | 逻辑 DFD |
---|---|
它依赖于实现。它显示了执行了哪些功能。 | 它与实现无关。它仅关注流程之间的数据流。 |
它提供硬件、软件、文件和人员的低级详细信息。 | 它解释系统的事件以及每个事件所需的数据。 |
它描述了当前系统如何运行以及系统将如何实现。 | 它展示了业务如何运作;而不是系统如何实现。 |
上下文图
上下文图通过一个 DFD 帮助理解整个系统,DFD 提供了系统的概述。它首先提到主要流程,但细节很少,然后采用自上而下的方法提供流程的更多细节。
混乱管理的上下文图如下所示。
数据字典
数据字典是系统中数据元素的结构化存储库。它存储所有 DFD 数据元素的描述,即数据流、数据存储、存储在数据存储中的数据以及流程的详细信息和定义。
数据字典改善了分析师和用户之间的沟通。它在构建数据库中起着重要作用。大多数 DBMS 都将数据字典作为标准功能。例如,请参阅下表 −
Sr.No. | 数据名称 | 描述 | 编号字符数 |
---|---|---|---|
1 | ISBN | ISBN 编号 | 10 |
2 | TITLE | title | 60 |
3 | SUB | 书籍主题 | 80 |
4 | ANAME | 作者姓名 | 15 |
决策树
决策树是一种通过描述决策和避免沟通问题来定义复杂关系的方法。决策树是一种在水平树框架内显示替代操作和条件的图表。因此,它描述了首先考虑哪些条件,其次考虑哪些条件,依此类推。
决策树描述了每个条件及其允许的操作之间的关系。方形节点表示操作,圆圈表示条件。它迫使分析师考虑决策的顺序并确定必须做出的实际决策。
决策树的主要限制在于,它的格式中缺乏信息来描述您可以采取哪些其他条件组合进行测试。它是条件和操作之间关系的单一表示。
例如,参考以下决策树 −
决策表
决策表是一种以精确且易于理解的方式描述复杂逻辑关系的方法。
它在结果操作取决于一个或多个独立条件组合的发生的情况下很有用。
它是一个包含行或列的矩阵,用于定义问题和操作。
决策表的组成部分
条件存根 − 它位于左上象限,列出了要检查的所有条件。
操作存根 − 它位于左下象限,概述了为满足此类条件而要执行的所有操作。
条件条目 −它位于右上象限,为条件存根象限中的问题提供答案。
操作条目 − 它位于右下象限,表示根据条件条目象限中的条件答案而产生的适当操作。
决策表中的条目由决策规则给出,这些规则定义了条件组合和行动方案之间的关系。在规则部分,
- Y 表示条件的存在。
- N 表示不满足的条件。
- 空白 - 针对操作状态,它将被忽略。
- X(或复选标记也可以)针对要执行的操作状态。
例如,参考下表 −
条件 | 规则 1 | 规则 2 | 规则 3 | 规则 4 |
---|---|---|---|---|
已预付款 | Y | N | N | N |
购买金额 = 10,000/- | - | Y | Y | N |
普通客户 | - | Y | N | - |
活动 | ||||
给予 5%折扣 | X | X | - | - |
不打折 | - | - | X | X |
结构化英语
结构化英语源自结构化编程语言,它对过程的描述更易于理解和精确。它基于程序逻辑,使用构造和命令式句子来执行操作。
当必须考虑程序中的序列和循环并且问题需要带有决策的操作序列时,它最适合使用。
它没有严格的语法规则。它以顺序决策结构和迭代的方式表达所有逻辑。
例如,请参见以下操作序列 −
if customer pays advance then Give 5% Discount else if purchase amount >=10,000 then if the customer is a regular customer then Give 5% Discount else No Discount end if else No Discount end if end if
伪代码
伪代码不符合任何编程语言,用简单的英语表达逻辑。
它可以在物理设计期间和之后指定物理编程逻辑,而无需实际编码。
它与结构化编程结合使用。
它取代了程序的流程图。
选择合适工具的指南
使用以下指南选择最适合您要求的工具 −
在高级或低级分析中使用 DFD 来提供良好的系统文档。
使用数据字典简化结构以满足系统的数据要求。
如果有许多循环和操作,请使用结构化英语复杂。
当需要检查大量条件且逻辑复杂时,使用决策表。
当条件排序很重要且需要测试的条件很少时,使用决策树。