【软件工程】软件工程需求分析——结构化分析

article/2025/3/13 14:08:35

halo~我是bay_Tong桐小白
本文内容是桐小白个人对所学知识进行的总结和分享,知识点会不定期进行编辑更新和完善,了解最近更新内容可参看更新日志,欢迎各位大神留言、指点

软件工程需求分析——结构化分析

        • 【更新日志】
  • 结构化分析概述
  • 功能建模(DFD数据流图)
  • 数据建模(E-R实体-关系图)
  • 行为建模(状态图)
  • 数据字典
  • 加工规格说明

【更新日志】

最近更新:

  • 暂无编辑记录,持续更新中……

结构化分析概述

传统的分析建模方法称为结构化分析(SA)方法,它用抽象的概念,按照软件内部的数据传递、变换的关系,自顶向下逐层分解的系统分析方法来定义系统的需求
在这里插入图片描述
该建模技术的核心是数据字典,包括了在目标系统中使用和生成的所有数据对象。围绕这个核心有3种图:数据流图、实体关系图、状态-迁移图:

  • 数据流图(DFD):描述数据在目标系统中如何被传送或变换,以及描述如何对数据流进行变换,用于功能建模
  • 实体-关系图(ER):描述数据对象及数据对象之间的关系,用于数据建模
  • 状态-迁移图(STD):描述系统对外部事件如何响应、如何动作,用于行为建模

功能建模(DFD数据流图)

功能模型: 是用抽象模型的概念按照软件内部数据传递、变换的关系,自顶向下逐层分解,直到找到满足功能要求的所有可实现的软件为止。功能模型用数据流图来描述

数据流图(DFD图): 是用于表示软件系统逻辑模型(系统的功能模型)的一种图形刻画,一个基于计算机的信息处理系统由数据流和一系列的转换构成,这些转换将输入数据流变换为输出数据流。数据流图反映客观现实问题的工作过程。它用简单的图形记号分别表示数据流、加工、数据存储以及外部实体。数据流图中没有任何具体的物理元素,只是描述数据在系统中流动和处理的情况,具有直观、形象、容易理解的优点。

数据流图的基本图形符号:
在这里插入图片描述
多个数据流间的关系:
在这里插入图片描述
环境图(顶层数据流图): 仅包括一个数据处理过程,也就是要开发的目标系统,也称为零层数据流图

环境图的作用是确定系统在其环境中的位置,通过确定系统的输入和输出与外部实体的关系确定其边界
在这里插入图片描述

数据流图的分层: 一些较复杂的实际问题中,数据流图中出现十几个甚至几十个加工的数据流图不直观,不易理解,分层的数据流图按照系统的层次结构进行分解,能清楚的表达整个系统,也易理解

分层数据流图基本规则:自外向内、自顶向下、逐层细化,完善求精;上层为父图,下层为子图

各层数据流图之间应“保持平衡”,即父图有多少个输入输出,子图也要有同样多的输入数据流和输出数据流,才能符合子图细化的实际情况
在这里插入图片描述
(加工规格说明详见下文)

数据流图基本步骤:

  • 识别外部实体与输入输出数据流
  • 画出环境图(顶层数据流图)
  • 画出一层数据流图
  • 画出二层数据流图

eg:以银行储蓄系统为例

银行储蓄系统的业务流程:
储户填写的存款单或取款单由业务员键入系统,如果是存款则系统记录存款人姓名、住址(或电话号码)、身份证号码、存款类型、存款日期、到期日期、利率、密码(可选)等信息,并印出存单给储户;如果是取款而且开户时留有密码,则系统首先核对储户密码,若密码正确或存款时未留密码,则系统计算利息并印出利息清单给储户
要求画出分层的数据流图,并细化到2层数据流图

1)识别外部实体及输入输出数据流

根据题意确定

  • 银行储蓄系统的外部实体有:储户、业务员
  • 数据输入:储户密码、业务员事务(存款单或取款单)
  • 数据输出:存款单、利息清单

2)画出环境图(顶层数据流图)

根据外部实体与输入输出数据流画出系统环境图
在这里插入图片描述
【为区分开输入源与输出源,可将储户这个外部实体分开画,实质表示仍然为同一个实体】

3)画出一层数据流图
在这里插入图片描述

4)画出二层数据流图

对一层数据流图的每个加工进行进一步分解
在这里插入图片描述
在这里插入图片描述
数据流图注意事项:

  • 命名:数据流除了流向数据存储或从数据存储流出的数据不必命名外,每个数据流必须要有合适的命名,数据流的名字代表整个数据流的内容, 而不仅仅是它的某些成分,不使用缺乏具体含义的名字,如“数据”、“信息”等。加工名也应反映整个处理的功能,不使用“处理”、“操作”这些笼统的词
  • 只画数据流不画控制流:数据流图反映系统“做什么”,不反映“如何做”,因此只表示数据的传递加工关系,不做详细的功能描述
  • 一般不画物质流:数据流反映能用计算机处理的数据,并不是实物,因此对目标系统的数据流图上一般不要画物流,如机票预订系统中,人民币也在流动,但并未画出,因为交款是“人工”行为
  • 每个加工至少有一个输入数据流和一个输出数据流, 反映出此加工数据的来源与加工的结果
  • 编号:如果一张数据流图中的某个加工分解成另一张数据流图时, 则上层图为父图,直接下层图为子图,应均进行编号。如
    在这里插入图片描述
  • 各层数据流图之间应“保持平衡”,即父图有多少个输入输出,子图也要有同样多的输入数据流和输出数据流,才能符合子图细化的实际情况【有的图需要根据数据字典查看,是否父图的输入流由子图的多个输入流组成】

数据建模(E-R实体-关系图)

在结构化分析方法中,使用实体—关系建模技术来建立数据模型。这种技术是在较高的抽象层次(概念层)上对数据库结构进行建模的流行技术。实体—关系模型表示为可视化的实体—关系图,也称为ER图。

ER图中仅包含3种相互关联的元素:数据对象(实体)、描述数据对象的属性及数据对象彼此间相互连接的关系

eg:
在这里插入图片描述
(此部分相当于数据库原理中的概念模型,此处不做重点阐述)

行为建模(状态图)

需求分析过程中应建立起软件的行为模型。状态转换图(简称状态图)通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为
在这里插入图片描述
【详细后续更新……】

数据字典

概念: 数据字典以词条方式定义在数据模型、功能模型和行为模型中出现的数据对象及控制信息的特性,给出它们的准确定义,包括数据流、加工、数据文件、数据元素,以及数据源点、数据汇点等。 因此,数据字典成为把3种分析模型黏合在一起的“黏合剂”,是分析模型的“核心”

数据字典主要包含词条描述、数据结构描述

词条描述:对于在数据流图中每一个被命名的图形元素均加以定义,如

数据流词条
①数据流名:要求与数据流图中该图形元素的名字一致。
②简述:简要介绍它产生的原因和结果。
③组成:数据流的数据结构。
④来源:数据流来自哪个加工或作为哪个数据源的外部实体。
⑤去向:数据流流向哪个加工或作为哪个数据汇点的外部实体。
⑥流通量:单位时间数据的流通量。 ⑦峰值:流通量的极限值。

数据元素词条:数据流图中的每个数据结构都是由数据元素构成的,数据元素是数据处理中最小的、不可再分的单位,它直接反映事物的某一特征。
①类型:数据元素分为数字型与文字型。数字型又分为离散值和连续值,文字的类型用编码类型和长度区分。
②取值范围:离散值的取值或是枚举的(如3,17,21),或是介于上下界的一组数(如2…100);连续值一般是有取值范围的实数集(如0.0…100.0)。对于文字型,文字的取值需加以定义。
③ 相关的数据元素及数据结构

数据存储文件词条:数据存储文件是数据保存的地方。一个数据存储文件词条应有以下几项内容。
① 文件名:要求与数据流图中该图形元素的名字一致。
② 简述:简要介绍存放的是什么数据。
③ 组成:文件的数据结构。
④ 输入:从哪些加工获取数据。
⑤ 输出:由哪些加工使用数据。
⑥ 存取方式:分为顺序、直接、关键码等不同存取方式。
⑦ 存取频率:单位时间的存取次数。

数据结构描述:通过定义式或Warnier图等方式描述数据结构

1)定义式:类似描述高级语言结构的巴科斯-诺尔范式(BNF)

定义是可用符号列举:
在这里插入图片描述
2)Warnier图:用树形结构来描绘数据结构

【详细后续更新……】

加工规格说明

在对数据流图的分解中,位于层次树最底层的加工也称为基本加工或原子加工,对于每一个基本加工均需要进行进一步说明,称为加工规格说明

在需求分析阶段,可以直接写出基本加工的程序逻辑,即其处理的规则。基本加工的规格说明主要表达“做什么”,而不是“怎样做”,因此应满足如下要求:

  • 对于数据流图的每一个基本加工,必须有一个加工规格说明
  • 加工规格说明须描述基本加工把输入数据流变换为输出数据流的逻辑,即加工规则
  • 加工规格说明须描述实现加工的策略而不是实现加工的细节
  • 加工规格说明中包含的信息应充足完备且们没有重复的多余信息

加工规格说明的内容可以包括叙述性正文、数学方程、图表等多种形式,也可以使用决策表、决策树等

若加工规格说明设计很多算法细节,则可以用伪代码等进行描述(这一部分可放在系统设计的详细设计阶段进行)

【详细后续更新……】

持续更新中……
我是桐小白,一个摸爬滚打的计算机小白


http://chatgpt.dhexx.cn/article/e9e7tupm.shtml

相关文章

软件工程 学生信息管理系统 结构化的需求分析

文章目录 前言1.实验目的2.实验要求3.需求分析3.1用户需求3.2功能需求分析3.3非功能性需求3.3.1数据精准度需求3.3.2界面需求3.3.3 响应时间需求3.3.4 可靠性需求3.3.5 可扩展性需求3.3.6 系统安全性需求 4.实验内容4.1数据流图4.2数据字典 5.实验小结 前言 《软件工程》课程 …

软件工程--需求分析

软件工程–需求分析 需求分析是软件定义时期的最后一个阶段,它的基本任务是准确地回答“系统必须做什么”这个问题。需求分析的任务还不是确定系统怎么样完成它的工作,而仅仅是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清…

linux系统监控工具——Conky

实验简介 Conky 是一个应用于桌面环境的系统监视软件,可以在桌面上监控系统运行状态、网络状态等一系列参数,而且可自由定制,但对于新手来说可能会比较难于上手。 Conky是一种自由软件,用于X视窗系统的系统监视,可以在…

manjaro美化之conky 系统监控

​​​​​​​ sudo pacman -S conky 下载字体 sudo pacman -S JetBrainsMono nano ~/.conkyrc 复制粘贴下面内容ctrlx y enter 然后启动conky onky.config { -- CONK…

Linux美化 : conky

conky 是Linux桌面美化小工具 conky 也是轻量级的系统监视器 自定义性极强,请发挥想象! 从github上下载了配置,发现不能用 经检测 发现curl访问网站超时,因此对其进行简单修改 配置如下 先安装 sudo apt install curl fortune cowsay -y.conkyrc -- vim: ts=4 sw=4 no…

KALI美化-设置CONKY开机启动

简介 Conky 是一个应用于桌面环境的系统监视软件,可以在桌面上监控系统运行状态、网络状态等一系列参数 https://github.com/brndnmtthws/conky/ 详细配置文档:http://conky.sourceforge.net/docs.html 简洁的用户界面; 高度可配置; 它既可使用内置的部件…

Linux安装使用Conky

安装conky sudo yum install conky安装sensors sudo yum install lm-sensors设置开机自启 在GNOME Tweaks中将conky加入开机自启 复制文件 sudo cp /etc/conky/conky.conf ~/.conkyrc设置配置文件 sudo vim ~/.conkyrc配置文件内容 conky.config {own_window_argb_visu…

linux如何卸载conky,Linux Deepin 15.10.2 下折腾 简单自制的 Conky Conky-manager

前言 Conky是Linux下的桌面美化工具,可以把一些系统信息,以各种酷炫的形式,显示到你的桌面上。很久以前在Ubunut折腾过,最近把工作开发环境切换到了Deepin 15.10.2,打算再从零折腾一次Conky 一、安装 由于新版Deepin商…

linux如何卸载conky,如何在Ubuntu 20.04 LTS中安装Conky&Conky Manager

原标题:如何在Ubuntu 20.04 LTS中安装Conky&Conky Manager 来自:https://www.linuxmi.com/ubuntu-20-04-lt-conky-conky-manager.html 这个简单的教程展示了如何在Ubuntu 20.04 LTS中安装Conky Manager(Conky系统监视器的图形前端)。 Conky是…

kali linux conky配置文件,7个美丽的Conky配置为您的Linux桌面 | MOS86

现在,大多数Linux用户非常熟悉Conky包括多少人都没有今天我们 Note:其中一些不仅仅是一个习惯。conkyrc文件。许多都配有专门的字体或附加软件,有些则作为更大的桌面主题的一部分打包。此处列出的所有配置都提供了到原始下载位置以及每个包的链接此外&am…

Linux(Ubuntu系统)-- Conky配置文件记录

Conky文件配置 不禁觉得这匹狼配上conky有点小帅,特此记录一下。。。 Conky配置文件: alignment top_right #设置屏幕位置 background yes #是否嵌入桌面 draw_borders no #是否绘制窗口边框 border_width 1 #窗口边框宽度cpu_avg_samples 2 #defaul…

conky 1.10配置和开机启动

不多说,先上图。 大家把目光放到右边就行了。 1、安装conky debian或ubuntu用户直接apt-get install conky-all就行了。 或者也可以直接从源码编译安装,https://github.com/brndnmtthws/conky,目前最新版是1.10.0。 安装完成后可以试着从终…

Conky--linux自定义桌面监控

Conky可以对linux硬件设备进行实时监控,并且显示在桌面上。 好吧说实话,就是为了装逼 ^_^! 首先,先贴图: 右边就是conky显示的,可以显示进程,内存,显卡温度等等。下载安装在github&#xf…

linux如何卸载conky,如何在Ubuntu 16.04/17.04上安装和使用Conky Manager

Conky是用于Linux,FreeBSD和OpenBSD的高度可配置的系统监视器。 它是免费的和开源的,根据GPL的条款发布。 本教程将向您展示如何在Ubuntu 16.04/17.04上安装Conky以及如何使用Conky Manager。 Conky可以在桌面上显示以下信息。 CPU负载 内存使用情况 硬盘…

kali linux conky配置文件,conky的配置文件

使用的conky配置,备查: 效果: .conkyrc: #set to yes if you want Conky to be forked in the background background yes cpu_avg_samples 2 net_avg_samples 2 out_to_console no # X font when Xft is disabled, you can pick one with program xfontsel #font 7x12 #font 6…

ubuntu美化之conky美化

​​一.安装 conky-manager 首先我们需要安装conky-manager。软件下载地址如下: https://github.com/teejee2008/conky-manager/releases 下载下来发现安装不上,因为conky- manager已经很久没有维护了,所以很多依赖已经废弃了。缺少一个re…

linux如何卸载conky,Ubuntu 14.04安装Conky配置软件Conky Manager 1.2

Conky Manager软件非常简单,只要打开选择你所需要的conky主题,就可以再桌面显示,对于单个主题下有多个部件的话还可以选择全部开启或者开启其中部分部件,还可以导入conky主题,然后再conky manager中选择,对…

conky-lua

--经过数天的查阅网上的资料(资料各种坑啊,一系列问题!),终于让他在linux-mint17 cinnamon工作了 网络上的资料问题: getting "llua_do_call: funcction conky_clock_rings execution failed: attempt…

conky安装配置

conky安装配置 安装conky sudo apt-get install conky-all修改配置 在主目录下创建’.conkyrc’ 文件内容: # set to yes if you want Conky to be forked in the background background no cpu_avg_samples 2 net_avg_samples 2 out_to_console no # X font w…

conky配置

默认配置路径:/etc/conky/conky.conf 复制 conky.conf 到 ~/.config/conky/conky.conf 修改,-- 为注释。 conky.config {alignment top_left,background false,border_width 1,default_color white,--default_outline_color white,--default_sh…