3.2 软件需求:面对过程分析模型

面对过程分析模型

  • 1. 需求分析的模型概述
    • 1.1 面对过程分析模型-结构化分析方法
    • 1.2 结构化分析的过程
  • 2. 功能模型:数据流图初步
    • 2.1 加工
    • 2.2 外部实体(数据源点/终点)
    • 2.3 数据流
    • 2.4 数据存储
    • 2.5 注意事项
  • 3. 功能模型:数据流图进阶
    • 3.1 仓库管理与订货系统
    • 3.2 绘制数据流图
  • 4. 数据流图的改进
    • 4.1 检查正确性
      • 数据守恒
      • 数据存储的使用
      • 父图和子图的平衡:数据的出入关系
    • 4.2 提高易理解性
    • 4.3 重新分解
    • 4.4 检查数据流图的原则
  • 5、 功能建模:编写数据字典

1. 需求分析的模型概述

面向过程分析模型:是用系统工程的思想和工程化的方法,根据用户至上的原则,自始自终按照结构化、模块化、自顶而下地对系统进行分析和设计。
面向对象分析模型:有5个层次(主题层、对象类层、结构层、属性层和服务层)和5个活动(标识对象类、标识结构、定义主题、定义属性和定义服务)组成。
在这里插入图片描述
结构化分析的结果由以下几部分组成:

  1. 一套分层的数据流图(Data Flow Diagram,DFD)。用来描述数据流从输入到输出的变换流程。
  2. 一本数据字典(Data Dictionary,DD)。用来描述 DFD 中的每个数据流、文件以及组成数据流或文件的数据项。
  3. 一组小说明(也称加工逻辑)。用来描述每个基本加工(即不再分解的加工)的加工逻辑。

1.1 面对过程分析模型-结构化分析方法

面对数据流进行需求分析的方法。结构化分析方法适合于数据处理类型软件的需求分析。具体来说,结构化分析方法就是用抽象模型的概念,按照软件内部数据传递、变换的关系,自顶向下逐层分解,直到找到满足功能要求的所有可实现的软件为止。

  • 面对过程的分析建模工具
    在这里插入图片描述
    数据流图实例:
    在这里插入图片描述
    多层数据流图:
    在这里插入图片描述
    顶层流图:在多层数据流图中,顶层流图仅包含一个加工,它代表被开发系统。它的输入流是该系统的输入数据,输出流是系统所输出数据。
    中间层流图:表示对其上层父图的细化。它的每一加工可能继续细化,形成子图。
    底层流图:指其加工不需再做分解的数据流图,它处在底层。

1.2 结构化分析的过程

结构化分析的过程可以分为以下4个步骤。

  1. 理解当前的现实环境,获得当前系统的具体模型(物理模型)。
  2. 从当前系统的具体模型抽象出当前系统的逻辑模型。
  3. 分析目标系统与当前系统逻辑上的差别,建立目标系统的逻辑模型。
  4. 为目标系统的逻辑作补充。

2. 功能模型:数据流图初步

在这里插入图片描述

2.1 加工

表示对数据进行的操作,如“处理选课单”、“产生发票”等;加工具有编号,说明这个加工在层次分解中的位置(分层DFD)
在这里插入图片描述
加工命名注意事项:

  1. 顶层的加工名就是整个系统项目的名字;
  2. 尽量最好使用动宾词组,也可用主谓词组;
  3. 不要使用空洞的动词。
    在这里插入图片描述

2.2 外部实体(数据源点/终点)

位于系统之外的信息提供者或使用者,称为外部实体。即存在于系统之外的人员和组织。如“学务部”等。
说明数据输入的源点(数据源)或数据输出的终点(数据终点)。
起到更好的理解作用,但不是系统中的事物。

2.3 数据流

表示数据和数据流向,由一组固定成分的数据组成,如“选课单”由“学号、姓名、课程编号、课程名”等成分组成。
数据流可从加工流向加工,也可在加工与数据存储或外部项之间流动;两个加工之间可有多股数据流。

  • 数据流的命名原则

    1. 用名词,不要使用意义空洞的名词;
    2. 尽量使用现实系统已有名字
  • 数据流与加工关系
    在这里插入图片描述

  • 数据流注意事项

    1. 不要把控制流作为数据流
      在这里插入图片描述
    2. 不要标出激发条件
      在这里插入图片描述

2.4 数据存储

表示需要保存的数据流向,如“学生档案”、“课程设置”等;
数据存储与加工的方向 ↑ \uparrow "读出"、 ↓ \downarrow “写入”;
分层数据流程图中,数据存储一般局限在某一层或某几层;
命名方法与数据流相似
在这里插入图片描述

2.5 注意事项

  1. 每个加工至少有一个输入数据流和一个输出数据流;
    在这里插入图片描述

  2. 数据流必须和加工联系起来;
    在这里插入图片描述

3. 功能模型:数据流图进阶

3.1 仓库管理与订货系统

例如:某仓库业务的工作过程如下:企业职工填写领料单,经主管审查签名批准后,职工到仓库领取零件。仓库保管员检查领料单是否符合审批手续,填写是否正确等,不正确的领料单退还职工,填写正确的领料单则办理领料手续,进行登记,修改库存量并给予零件。
当某种零件的库存量低于事先规定的临界值时,登记需要采购零件的订货信息,为采购部门提供一张订货单。要求用计算机辅助领料工作和编制订货单。

3.2 绘制数据流图

  1. 第一步绘制数据流图顶层:首先确定系统的输入和输出,画出顶层数据流图。经过分析,主要数据流输入的源点和输出的终点是职工和仓库管理员、采购员。
    在这里插入图片描述

  2. 绘制数据流图1层:从输入端开始,根据仓库业务工作流程,画出数据流流经的各加工框,逐步画到输出端,得到1层数据流图。
    在这里插入图片描述

  3. 绘制数据流图2层,加细每一个加工框
    在这里插入图片描述
    在这里插入图片描述

  4. 合成总体数据流图
    在这里插入图片描述

  5. 检查与调整数据流图
    在分析过程中,由于每个人的经验和思路不尽相同,对数据流图的分解方案可以有多种形式,不是唯一的。对每一张数据流图进行检查,如果太不均衡,就需要进行调整,尽量使分解后的各个软件子系统的复杂性得到均衡,便于今后设计工作的并行开展。

4. 数据流图的改进

数据流图的改进主要从三个方面出发:检查正确性、提高易理解性和重新分解。

4.1 检查正确性

数据守恒

数据不守恒的两种情况:

  1. 某个加工输出的数据并无相应的数据来源,可能是某些数据流被遗漏了;
    在这里插入图片描述
  2. 一个加工的输入并没有用到,这不一定是错误。可与用户进一步讨论,是否属于多余的数据流。
    在这里插入图片描述

数据存储的使用

判断:是否存在“只读不写”或“只写不读”的数据存储(注意在所有的DFD中检查),这样是错误的

父图和子图的平衡:数据的出入关系

在这里插入图片描述

4.2 提高易理解性

  1. 简化加工之间的联系:应尽量减少加工之间输入输出数据流的数目。因为加工之间的数据流越少,各个加工的功能就越相对独立。
    在这里插入图片描述

  2. 注意分解的均匀:即图中各个部分不均匀。一张图中,如果某些加工已是基本加工(细节),而另一些加工还可进一步分解成三、四层。则应考虑重新分解。

  3. 适当的命名
    名字的意义要明确,容易理解。
    如果难以为DFD图中的成分(数据流、加工等)命名,往往说明分解不当,可考虑重新分解。

4.3 重新分解

在画第N层时意识到在第N-1层或第N-2层所犯的错误,此时就需要对第N-1层、第N-2层作重新分解。

  1. 把需要重新分解的某张图的所有子图连接成一张;
    在这里插入图片描述

  2. 把图分成几部分,使各部分之间的联系最少
    在这里插入图片描述

  3. 重新建立父图,即把第2)步所得的每一部分画成一个图,而各部分之间的联系就是加工之间的界面。

  4. 重新建立各张子图,这只需把第2)步所得的图按各部分的边界剪开即可。
    在这里插入图片描述

  5. 为所有的加工重新命名和编号
    在这里插入图片描述

4.4 检查数据流图的原则

  1. 数据流图上所有图形符号只限于前述四种基本图形元素
  2. 数据流图的主图必须包括前述四种基本元素,缺一不可
  3. 数据流图的主图上的数据流必须封闭在外部实体之间
  4. 每个加工至少有一个输入数据流和一个输出数据流
  5. 在数据流图中,需按层给加工框编号。编号表明该加工所处层次及上下层的亲子关系
  6. 规定任何一个数据流子图必须与它上一层的一个加工对应,两者的输入数据流和输出数据流必须一致。此即父图与子图的平衡
  7. 图上每个元素都必须有名字
  8. 数据流图中不可夹带控制流
  9. 初画时可以忽略琐碎的细节,以集中精力于主要数据流

5、 功能建模:编写数据字典

编写数据字典,写出系统需求规格说明书,提交审查,并编写检测验收计划、编写初步的用户书册概要。
数据流图仅描述了系统的“分解”,并没有对各个数据流、加工、数据存储进行详细说明。数据字典是用来定义数据流图中各个成分的具体含义的,它以一种准确的、无二义性的说明方法为系统的分析、设计及维护提供了有关元素一致的定义和详细的描述。
数据字典有4类条目:数据流、数据项、数据存储和基本加工。对应数据流图中数据流、外部实体、数据存储和加工的说明。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【机器学习】机器学习中用到的高等数学知识-1.线性代数 (Linear Algebra)

向量(Vector)和矩阵(Matrix):用于表示数据集(Dataset)和特征(Feature)。矩阵运算:加法、乘法和逆矩阵(Inverse Matrix)等,用于计算模型参数。特征值(Eigenvalues)和特征向量(Eigenvectors)&…

向量数据库PGVECTOR安装

文章目录 前提向量数据库介绍PGVECTOR安装1、pgvector下载2、编译安装3、创建vector扩展 前提 已经安装好了pg14版本。 其他版本也可以。 pg安装教程:https://blog.csdn.net/yushaoyyds/article/details/138855306?spm1001.2014.3001.5502 向量数据库介绍 向量数…

头歌网络安全(11.12)

头歌禁止复制解决 必须先下篡改猴!!!! 头歌复制助手 Educoder Copy Helperhttps://scriptcat.org/zh-CN/script-show-page/1860 Java生成验证码 第1关:使用Servlet生成验证码 任务描述 本关任务:使用se…

技术栈1:nginx基础入门

目录 1.nginx概述 2.正向代理与反向代理 3.负载均衡 4.动静分离 5.nginx反向代理配置 1.nginx概述 Nginx (engine x)是一个高性能的HTTP和反向代理Web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔赛索耶夫为俄罗斯访问量第二的Rambler.ru站点开发…

自建CDN是否适合您的企业?

在信息化加速发展的今天,CDN(内容分发网络)对于优化内容传输速度、提升用户体验的重要性已不容忽视。企业在选择CDN方案时,常常面临两个选择:自建CDN或租用CDN服务。自建CDN让企业拥有高度的自主权和灵活性&#xff0c…

aws xray通过设置采样规则对请求进行过滤

参考资料 https://github.com/aws/aws-xray-sdk-pythonpython api reference,https://docs.aws.amazon.com/xray-sdk-for-python/latest/reference/node api reference,https://docs.aws.amazon.com/xray-sdk-for-nodejs/latest/reference/ 初始化环境…

特色3D打印stm32迷你8轴双核心主板

我自己设计的3D打印机主板 1. 这是一块迷你的8轴主板, 主板尺寸为100mm*75mm, 使用一个8cm静音风扇散热足够了2. 这是一个带有保护的板子, 驱动上的gpio具有过压保护功能, 能够直接抗住24V的冲击, 意味着一个驱动炸了, 板子不烧, 并且其他的驱动也没事, 主板支持自动关机3. 8…

无人机动力测试台如何快速外接第三方传感器

前言 动力测试台对于测试动力系统的拉力、扭矩、RPM 和效率至关重要。将传感器集成到您的测试中增加了另一层优化,可以将您的性能提升到一个新的水平。 在无人驾驶行业中,有充分的证据表明,从外部传感器收集数据可能具有挑战性。为了解决这…

Autosar CP Network Management模块规范导读

Network Management模块的主要功能 网络管理适配:作为通信管理器和总线特定网络管理模块之间的适配层,实现不同总线网络管理功能的统一接口,确保系统中各种网络的协同工作。协调功能 网络协调关闭:使用协调算法协调多个网络的关闭,确保它们在合适的时间同步进入睡眠模式,…

数据库系统概论(期末复习版)

(一)绪论 数据(Data):是数据库中存储的基本对象 数据的定义:描述事物的符号记录 数据的种类:文字、图形、图象、声音等 数据的特点:数据与其语义是不可分的 数据库(Database,简称DB):是长期…

【Linux】进程池实现指南:掌控并发编程的核心

文章目录 1.为什么要有进程池2.进程池的工作原理2.1 进程池的工作流程 3. 进程池的实现(重点)3.1 Channel类3.2 ProcessPool类3.2.1 创建子进程3.2.2 杀死所有进程3.2.3 其他功能 3.3 控制进程池 4. 完整代码5. 总结 🏠 大家好,我…

专业140+总分400+南京大学851信号与系统考研经验南大电子信息通信工程集成电路,真题,大纲,参考书。

经历一年的备战,顺利上岸南大,专业课851信号与系统140,总分400,数学二没有考的很好,比专业课低不少,有点遗憾,英语和政治正常发挥,总结一下自己复习经验,希望大家可以从中…

【OpenEuler】配置虚拟ip

OpenEuler系统手动配置虚ip 介绍操作方法临时生效永久生效 验证 介绍 我们知道通过keepalived服务可以为linux服务器设置虚拟ip,但是有些特殊场景下若无法安装部署keepalived服务,则需要通过手动设置的方式,配置服务器的虚拟ip。 本方案提供…

vue-echarts 动态x轴字段,可选多个公司数据,根据选择的条件动态生成echarts柱形图(或者折线图)

需求&#xff1a;月份、 公司 、显示字段、柱形图&#xff08;折线图&#xff09;&#xff0c;都为动态可选的。 &#xff08;此例子&#xff1a;模拟数据都为随机数&#xff0c;所以每次截图值都会不同&#xff09; &#xff08;Vue3 echarts 5.4.2版本&#xff09; <te…

算法每日双题精讲——滑动窗口(最大连续1的个数 III,将 x 减到 0 的最小操作数)

&#x1f31f;快来参与讨论&#x1f4ac;&#xff0c;点赞&#x1f44d;、收藏⭐、分享&#x1f4e4;&#xff0c;共创活力社区。 &#x1f31f; 别再犹豫了&#xff01;快来订阅我们的算法每日双题精讲专栏&#xff0c;一起踏上算法学习的精彩之旅吧&#xff01;&#x1f4aa;…

重磅!通过国密局技术评审的112家密评机构公示

2024年10月28日&#xff0c;国家密码管理局官方网站发布《商用密码检测机构&#xff08;商用密码应用安全性评估业务&#xff09;资质申请通过技术评审的机构名单公示》&#xff0c;依据《商用密码管理条例》、《商用密码检测机构管理办法》有关规定&#xff0c;国家密码管理局…

【Windows】CMD命令学习——系统命令

CMD&#xff08;命令提示符&#xff09;是Windows操作系统中的一个命令行解释器&#xff0c;允许用户通过输入命令来执行各种系统操作。 系统命令 systeminfo - 显示计算机的详细配置信息。 tasklist - 显示当前正在运行的进程列表。 taskkill - 终止正在运行的进程。例如&am…

题目:Wangzyy的卡牌游戏

登录 - XYOJ 思路&#xff1a; 使用动态规划&#xff0c;设dp[n]表示当前数字之和模三等于0的组合数。 状态转移方程&#xff1a;因为是模三&#xff0c;所以和的可能就只有0、1、2。等号右边的f和dp都表示当前一轮模三等于k的组合数。以第一行为例&#xff1a;等号右边表示 j转…

会议直击|美格智能受邀出席第三届无锡智能网联汽车生态大会,共筑汽车产业新质生产力

11月10日&#xff0c;2024世界物联网博览会分论坛——第三届无锡智能网联汽车生态大会在无锡举行&#xff0c;美格智能CEO杜国彬受邀出席&#xff0c;并参与“中央域控&#xff1a;重塑汽车智能架构的未来”主题圆桌论坛讨论&#xff0c;与行业伙伴共同探讨智能网联汽车产业领域…