- 系统分析与设计教程
- 系统分析与设计 - 首页
- 系统分析与设计 - 概述
- 系统分析和系统设计的区别
- 系统分析与设计 - 通信协议
- 系统设计中的横向和纵向扩展
- 系统设计中的容量估算
- Web服务器和代理在系统设计中的作用
- 集群和负载均衡
- 系统开发生命周期
- 系统开发生命周期
- 系统分析与设计 - 需求确定
- 系统分析与设计 - 系统实施
- 系统分析与设计 - 系统规划
- 系统分析与设计 - 结构化分析
- 系统设计
- 系统分析与设计 - 设计策略
- 系统分析与设计 - 软件部署
- 使用Docker的软件部署示例
- 功能性需求与非功能性需求
- 数据流图(DFD)
- 数据流图 - 它是什么?
- 数据流图 - 类型和组成部分
- 数据流图 - 开发
- 数据流图 - 平衡
- 数据流图 - 分解
- 系统设计中的数据库
- 系统设计 - 数据库
- 低级设计(LLD)
- 系统设计 - 身份验证与授权
- 系统实施
- 输入/输出和表单设计
- 测试和质量保证
- 实施与维护
- 系统安全与审计
- 面向对象的方法
结构化分析
分析师使用各种工具来理解和描述信息系统。其中一种方法是使用结构化分析。
什么是结构化分析?
结构化分析是一种开发方法,它允许分析师以逻辑的方式理解系统及其活动。
它是一种系统的方法,它使用图形工具来分析和完善现有系统的目标,并开发一个新的系统规范,该规范易于用户理解。
它具有以下属性:
它是图形化的,指定了应用程序的表示。
它将流程分解,以便清晰地显示系统流程。
它是逻辑的而不是物理的,即系统的元素不依赖于供应商或硬件。
它是一种从高级概述到低级细节的工作方法。
结构化分析工具
在结构化分析期间,各种工具和技术用于系统开发。它们是:
- 数据流图
- 数据字典
- 决策树
- 决策表
- 结构化英语
- 伪代码
数据流图(DFD)或气泡图
这是由Larry Constantine开发的一种技术,用于以图形形式表达系统的需求。
它显示了数据在系统各个功能之间的流动,并指定了当前系统是如何实现的。
它是设计阶段的初始阶段,它将功能需求细化到最低的细节级别。
它的图形特性使其成为用户和分析师或分析师和系统设计人员之间良好的沟通工具。
它概述了系统处理哪些数据、执行哪些转换、存储哪些数据、产生哪些结果以及它们在哪里流动。
DFD的基本元素
DFD易于理解,并且在所需的设计不明确且用户希望使用符号语言进行通信时非常有效。但是,它需要大量的迭代才能获得最准确和完整的解决方案。
下表显示了在设计DFD时使用的符号及其含义:
符号名称 | 符号 | 含义 |
---|---|---|
正方形 | 数据源或目的地 | |
箭头 | 数据流 | |
圆形 | 转换数据流的流程 | |
开口矩形 | 数据存储 |
DFD的类型
DFD有两种类型:物理DFD和逻辑DFD。下表列出了区分物理DFD和逻辑DFD的要点。
物理DFD | 逻辑DFD |
---|---|
它依赖于实现。它显示了哪些功能被执行。 | 它独立于实现。它只关注流程之间的数据流。 |
它提供了硬件、软件、文件和人员的低级细节。 | 它解释了系统的事件和每个事件所需的数据。 |
它描述了当前系统是如何运行的以及系统将如何被实现。 | 它显示了业务是如何运作的;而不是系统如何被实现。 |
上下文图
上下文图通过一个DFD帮助理解整个系统,该DFD概述了系统。它首先以很少的细节提及主要流程,然后采用自顶向下的方法提供更多流程的细节。
下面显示了伙食管理的上下文图。
数据字典
数据字典是系统中数据元素的结构化存储库。它存储所有DFD数据元素的描述,即数据流、数据存储、数据存储中存储的数据以及流程的细节和定义。
数据字典改善了分析师和用户之间的沟通。它在构建数据库中发挥着重要作用。大多数DBMS都将数据字典作为标准功能。例如,参考下表:
序号 | 数据名称 | 描述 | 字符数 |
---|---|---|---|
1 | ISBN | ISBN号码 | 10 |
2 | 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,以提供良好的系统文档。
使用数据字典来简化结构,以满足系统的需求。
如果存在许多循环且操作复杂,则使用结构化英语。
如果要检查大量条件并且逻辑复杂,则使用决策表。
如果条件的顺序很重要并且要测试的条件很少,则使用决策树。