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