[架构之路-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)是一种描述系统行为图形化模型。它主要由状态、转移和事件组成,用于表示一个系统在不同状态之间的转换以及触发状态转换的外部事件。

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/165491.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【VSCode】VSCode 使用

目录 文章目录 目录插件配置设置代码不显示 git 提示 "xxx months ago | 1 author"设置打开项目不自动选择 CMakeLists 插件 以下插件为 C 开发偏好设置。 C/CCMakeCMake ToolsGitLensRemote DevelopmentRemote Explorer 配置 设置代码不显示 git 提示 “xxx mon…

绝地求生:PGC 2023 赛事直播期间最高可获:2000万G-Coins,你还不来吗?

今年PGC直播期间将有最高2000万G-Coin掉落,究竟花落谁家咱们拭目以待 公告原文:Watch PGC 2023 Live And Earn G-Coins! 如何赚取高额G-Coin? Throughout the PGC 2023, an astounding 20,000,000 G-Coins will be up for grabs as part of …

一致性 Hash 算法 Hash 环发生偏移怎么解决

本篇是对文章《一文彻底读懂一致性哈希算法》的重写,图文并茂,篇幅较长,欢迎阅读完提供宝贵的建议,一起提升文章质量。如果感觉不错不要忘记点赞、关注、转发哦。原文链接: 《一文彻底读懂一致性Hash 算法》 通过阅读本…

【OpenCV实现图像:可视化目标检测框】

文章目录 概要画框函数代码实现标签美化角点美化透明效果小结 概要 目标检测框的可视化在计算机视觉和机器学习领域中是一项重要的任务,有助于直观地理解和评估目标检测算法的性能。通过使用Python和相关的图像处理库,可以轻松实现目标检测框的可视化。…

Let’s xrOS 一款让你优先体验社区创作者的 visionOS App工具

Let’s xrOS Apple Vision Pro 发布预示着空间计算时代的到来,让科技爱好者和开发者开始思考如何在新的交互、系统和硬件上打造独特的三维应用。 自 WWDC 2023 的发布会后,社交媒体上涌现了许多精美的 visionOS App 的效果图和演示视频,然而…

Rola详解国外住宅IP代理选择的8个方法,稳定的海外IP哪个靠谱?

一、国外住宅IP代理是什么? 代理服务器充当您和互联网之间的网关。它是一个中间服务器,将最终用户与他们浏览的网站分开。如果您使用国外代理IP,互联网流量将通过国外代理服务器流向您请求的地址。然后,请求通过同一个代理服务器…

常见树种(贵州省):014槭树、梧桐、鹅掌楸、檫木、梓木、油桐、泡桐、川楝、麻楝

摘要:本专栏树种介绍图片来源于PPBC中国植物图像库(下附网址),本文整理仅做交流学习使用,同时便于查找,如有侵权请联系删除。 图片网址:PPBC中国植物图像库——最大的植物分类图片库 一、色木槭…

java--继承快速入门

1.什么是继承 java中提供了一个关键字extends,用这个关键字,可以让一个类和另一个类建立其父子关系。 2.继承的特点 子类能继承父类的非私有成员(成员变量,成员方法)。 3.继承后对象的创建 子类的对象是由子类、父类共同完成的。 4.继承的…

基于IDEA+HTML+SpringBoot前后端分离电子商城

基于springboot的电子商城 项目介绍💁🏻 •B2C 商家对客户 •C2B2C 客户对商家对客户 1.1.1 B2C 平台运营方即商品的卖家 小米商城 •商品 •用户 1.1.2 C2B2C 平台运营方不卖商品(也可以卖) 卖家是平台的用户 买家也是平台用户 •…

『C++成长记』C++入门—— 函数重载引用

🔥博客主页:小王又困了 📚系列专栏:C 🌟人之为学,不日近则日退 ❤️感谢大家点赞👍收藏⭐评论✍️ 目录 一、函数重载 📒1.1函数重载的概念 📒1.2函数重载的种类 …

基于51单片机音乐盒设计( proteus仿真+程序+原理图+PCB+报告+讲解视频)

音乐盒 主要功能:仿真原理图PCB图程序设计:设计报告实物图资料清单(提供资料清单所有文件):资料下载链接: 基于51单片机音乐盒仿真设计( proteus仿真程序原理图PCB报告讲解视频) 仿真图proteus …

Python实现交易策略评价指标-收益率

1.收益率的定义 收益率几乎是所有投资者都会关注的一个指标,收益率的高低决定了投资策略的赚钱能力,常见关于收益率的指标如下: 持有期收益率 持有期收益率 期末投资权益 − 期初投资权益 期初投资权益 持有期收益率 \frac {期末投资权益…

GeoTrust SSL数字安全证书介绍

一、GeoTrust OV证书的介绍 GeoTrust OV证书是由GeoTrust公司提供的SSL证书,它是一种支持OpenSSL的数字证书,具有更高的安全性和可信度。GeoTrust是全球领先的网络安全解决方案提供商,为各类用户提供SSL证书和信任管理服务。GeoTrust OV证书…

docker国内镜像加速

创建或修改 /etc/docker/daemon.json 文件,修改为如下形式 {"registry-mirrors": ["https://registry.docker-cn.com","http://hub-mirror.c.163.com","https://docker.mirrors.ustc.edu.cn"] } Docker中国区官方镜像htt…

51单片机应用从零开始(八)·循环语句(for循环、while 语句、do‐while 语句)

51单片机应用从零开始(七)循环语句(if语句,swtich语句)-CSDN博客 目录 1. 用for 语句控制蜂鸣器鸣笛次数 2. 用while 语句控制 LED 3. 用 do‐while 语句控制 P0 口 8 位 LED 流水点亮 1. 用for 语句控制蜂鸣器鸣笛…

Kafka 控制器(controller)

Kafka 控制器(controller) 在kafka集群中 会存在一个或者多个broker(一个服务器就是一个broker),其中有一个broker会被选举为控制器 kafka controller ,负责管理整个集群中所有副本、分区的状态&#xff0…

Python 使用XlsxWriter操作Excel

在数据处理和报告生成的领域中,Excel 文件一直是广泛使用的标准格式。为了让 Python 开发者能够轻松创建和修改 Excel 文件,XlsxWriter 库应运而生。XlsxWriter 是一个功能强大的 Python 模块,专门用于生成 Microsoft Excel 2007及以上版本&a…

Vue3-provide和inject

作用和场景:顶层组件向任意的底层组件传递数据和方法,实现跨层组件通信 跨层传递普通数据: 1.顶层组件通过provide函数提供数据 2.底层组件通过inject函数获取数据 既可以传递普通数据,也可以使用ref传递响应式数据&#xff08…

批量插入SQL 错误 [933] [42000]: ORA-00933: SQL 命令未正确结束

使用DBeaver向【oracle数据库】插入大量数据 INSERT INTO Student(name,sex,age,address,birthday) VALUES(Nike,男,18,北京,2000-01-01) ,(Nike,男,18,北京,2000-01-01) ,(Nike,女,18,北京,2000-01-01) ,(Nike,女,18,北京,2000-01-01) ,(Nike,男,18,北京,2000-01-01) ,(Nike…

使用Arrays.Sort并定制Comparator排序解决合并区间

合并区间-力扣算法题56题 以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] [starti, endi] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间 。 示例 1: 输入&am…