当前位置: 首页 > news >正文

[架构之路-249]:目标系统 - 设计方法 - 软件工程 - 需求工程- 需求开发:如何用图形表达需求,结构化方法的需求分析

目录

一、概述

二、数据模型:E-R图/实体关系图(数据单元之间的结构关系)

三、功能模型:数据流图DFD(逻辑运算,包括输入和输出,实体之间的关系):输入=》处理 =》 输出

四、行为模型:状态转化图(系统状态)


一、概述

结构化方法的需求分析是指通过一系列严谨而规范的步骤,对系统的需求进行清晰的描述和分析,以确定系统需要满足的功能和性能要求,以及系统与人、物、环境等相关方面之间的交互关系。

二、数据模型:E-R图/实体关系图(数据单元之间的结构关系)

E-R图(Entity-Relationship Diagram),也称为实体关系图,是一种数据建模工具,用于描述现实世界中实体(entity)之间的关系(relationship)。它是一种图形化的表示方法,能够清晰地展示数据模型中各个实体之间的关联和属性。

在E-R图中:

  • 实体本身用矩形框表示,
  • 实体的属性用椭圆形表示。
  • 实体与实体的关系用用菱形表示:数量关系通过在双方一侧标注数字来标识,行为关系通过在菱形中增加文本表示。

以下是E-R图中常用的符号和概念:

  1. 实体(Entity):代表现实世界中具有独立实体性质的对象,例如人、物、地点等。每个实体都有一些属性,用于描述和区分实体之间的差异。

    实体是指现实世界中的某个具体、独立的事物,它可以用实体名表示,并具有一些属性和行为。在数据库中,实体可以被认为是需要被存储、处理、管理、查询的信息或对象(object),比如商品、客户、订单、文章、作者等。

    在实体关系图中,一个实体通常以一个矩形来表示,矩形中包含实体名和该实体的属性。属性是指实体的特征描述,比如商品实体的属性可能包括名称、价格、描述等。实体之间的关系可以用连线来表示,这些连线描述了实体之间发生的各种事情,比如商品被下单、客户购买商品等等。

    绘制实体关系图是数据库设计的重要过程之一。通过分析现实世界中的业务流程、数据需求和数据结构,可以构建一个合理、可维护、易于扩展的实体关系图。实体关系图不仅能够帮助开发者对数据进行良好的设计和管理,还可以作为协作与沟通的工具,帮助项目各方了解业务需求和数据结构。

  2. 属性(Attribute):描述实体的特征和性质,例如人的姓名、年龄、身高等。属性可以是简单的,也可以是复杂的,可以包含多个值。

  3. 关系(Relationship):描述实体之间的联系和交互。关系可以是一对一、一对多或多对多的关系。例如,学生和课程之间的关系可以是学习关系,一个学生可以选择多门课程,一门课程可以由多个学生选修。

  4. 基本关系类型:包括一对一(1:1)、一对多(1:N)和多对多(M:N)关系。

E-R图提供了一种直观且易于理解的方式来描述数据模型,它是数据库设计和系统分析中常用的工具之一。通过E-R图的绘制和分析,可以帮助设计师和开发人员更好地理解系统的结构和数据流动,从而准确捕捉需求,设计出高质量、合理结构的数据库模型。

三、功能模型:数据流图DFD(逻辑运算,包括输入和输出,实体之间的关系):输入=》处理 =》 输出

功能模型中的数据流图(Data Flow Diagram,简称DFD)是一种常用的建模工具,用来描述信息系统中的数据流动和处理过程,与计算机的系统架构要表述的内容是一致的.

它通过图形化的方式展示了系统中数据的来源(输入)、去向(输出)、处理和存储等过程,帮助开发人员在系统设计时更好地理解系统中的数据流动。

数据流图 (Data Flow Diagram,简称DFD) 中包含以下几个主要元素:

  1. 外部实体 (External Entity):表示与系统交互的外部对象,如用户、其他系统或设备。通常用方框表示,并在方框内部标明实体的名称

  2. 数据流 (Data Flow):表示数据在系统中的流动。数据流可以是输入数据、输出数据或在系统内部流动的中间数据。通常用箭头表示,并在箭头上方标明数据流或流动的信息名称

  3. 进程 (Process):表示对数据进行处理和转换的操作或功能模块。通常使用圆角矩形或圆形表示,并在图形内部标明进程的名称

  4. 数据存储 (Data Store):表示数据在系统中的存储位置,如数据库、文件或内存等。通常使用类长方形表示,并在类长方形内部标明数据存储的数据名称

这些元素通过连接线连接起来,形成数据流图的结构。连接线表示数据的流动路径和数据流向。

除了上述主要元素,数据流图中还可以使用控制流 (Control Flow) 元素表示控制信号和决策的流动。控制流使用类似于数据流的箭头表示。

数据流图的结构和元素的使用可以根据具体的系统和分析目的进行适当的调整和扩展。

在DFD中:

  • 数据流用箭头表示
  • 数据处理用方框表示
  • 数据存储用平行四边形表示
  • 源和目标用椭圆形表示

以下是DFD中常用的符号和概念:

  1. 数据流(Data Flow),即数据流动:代表信息系统中传递的路径,它可以是从数据源到数据目标的传输,也可以是在系统内部不同处理模块之间的数据传递。

  2. 处理(Process)即逻辑运算ALU:代表对数据进行处理、计算、转换或转发等操作的模块,它可以是计算机程序、人工处理或自动化的业务流程等。

  3. 数据存储(Data Store),即计算器、内存、cache、数据库、硬盘、文件等:代表系统中数据的存储位置,可以是数据库、文件或其他数据存储设备

  4. 源和目标(Source and Destination):代表数据流的起点和终点,可以是外部来源或者系统内部的其他模块

  5. 方向箭头:表示数据的流向,从源到目标或从处理模块到数据存储。

通过DFD的绘制和分析,可以帮助设计师和开发人员更好地理解系统中各个部分之间的数据流动,从而更好地分析系统的流程和逻辑。这样可以更准确地捕捉系统需求,设计出更合理的系统架构和流程,提高系统的设计效率和实现质量。

四、行为模型:状态转化图(系统状态)

状态转换图(State Transition Diagram)是一种描述系统行为图形化模型。它主要由状态、转移和事件组成,用于表示一个系统在不同状态之间的转换以及触发状态转换的外部事件。

在状态转换图中,状态表示系统所处的特定状态或条件。转移表示状态之间的切换,通常用箭头连接起来,箭头上可以标注触发转换的事件或条件。事件是引起状态转换的外部触发器,例如用户输入、信号到达等。

状态转换图往往用于描述系统的行为流程、状态机、协议或者算法等。它可以帮助开发人员理清系统的状态变化路径,从而更加清晰地分析和设计系统的逻辑。

请注意,行为模型的状态转化图可能因具体应用场景而异,因此,如果您有具体的应用场景,可以向我提供更多细节,我将尽力为您提供更精确的帮助。

相关文章:

  • ios开发 之 网络通信
  • 今年的校招薪资真的让人咋舌!
  • kafka2.x常用命令:创建topic,查看topic列表、分区、副本详情,删除topic,测试topic发送与消费
  • Python与设计模式--备忘录模式
  • Ubuntu下载离线安装包
  • 城市NOA加速落地,景联文科技高质量数据标注助力感知系统升级
  • 【JavaSE】:数据类型
  • leetcode每日一题32
  • 【面试题】for...in 和 for...of 的区别
  • Matplotlib图形配置与样式表_Python数据分析与可视化
  • 开源语音大语言模型来了!阿里基于Qwen-Chat提出Qwen-Audio!
  • HCIP-七、IS-IS 综合实验
  • 【多线程】-- 03 龟兔赛跑案例线程创建方法之三:Callable接口
  • c语言实现10进制转16进制
  • CSDN动态发了但是主页面看不见已发的动态
  • [deviceone开发]-do_Webview的基本示例
  • [iOS]Core Data浅析一 -- 启用Core Data
  • CentOS7简单部署NFS
  • CSS 提示工具(Tooltip)
  • tab.js分享及浏览器兼容性问题汇总
  • WinRAR存在严重的安全漏洞影响5亿用户
  • zookeeper系列(七)实战分布式命名服务
  • 动态规划入门(以爬楼梯为例)
  • 浮现式设计
  • 基于Dubbo+ZooKeeper的分布式服务的实现
  • 基于web的全景—— Pannellum小试
  • 紧急通知:《观止-微软》请在经管柜购买!
  • 学习ES6 变量的解构赋值
  • 一些关于Rust在2019年的思考
  • 用jQuery怎么做到前后端分离
  • 转载:[译] 内容加速黑科技趣谈
  • 7行Python代码的人脸识别
  • gunicorn工作原理
  • 摩拜创始人胡玮炜也彻底离开了,共享单车行业还有未来吗? ...
  • ​直流电和交流电有什么区别为什么这个时候又要变成直流电呢?交流转换到直流(整流器)直流变交流(逆变器)​
  • # 再次尝试 连接失败_无线WiFi无法连接到网络怎么办【解决方法】
  • #### go map 底层结构 ####
  • #DBA杂记1
  • #调用传感器数据_Flink使用函数之监控传感器温度上升提醒
  • #我与Java虚拟机的故事#连载01:人在JVM,身不由己
  • (145)光线追踪距离场柔和阴影
  • (c语言)strcpy函数用法
  • (Java)【深基9.例1】选举学生会
  • (NSDate) 时间 (time )比较
  • (分布式缓存)Redis持久化
  • (附源码)springboot炼糖厂地磅全自动控制系统 毕业设计 341357
  • (附源码)流浪动物保护平台的设计与实现 毕业设计 161154
  • (附源码)小程序 交通违法举报系统 毕业设计 242045
  • (转)从零实现3D图像引擎:(8)参数化直线与3D平面函数库
  • .bat批处理(九):替换带有等号=的字符串的子串
  • .NET Core MongoDB数据仓储和工作单元模式封装
  • .net 反编译_.net反编译的相关问题
  • .NET成年了,然后呢?
  • .net开源工作流引擎ccflow表单数据返回值Pop分组模式和表格模式对比
  • .net下简单快捷的数值高低位切换