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类条目:数据流、数据项、数据存储和基本加工。对应数据流图中数据流、外部实体、数据存储和加工的说明。

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

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

相关文章

ExecStart=/usr/bin/mongod --config /etc/mongod.conf (code=exited, status=2)

mongodb 开启验证后出现这个问题 邪门的问题 居然是格式问题 要用两个空格表示缩进 而不是tab

数据分析——学习框架

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…

YOLOV8应用|排球垫球计数|附带全部数据集与源码(见文末百度云盘链接)

项目简介: 该项目旨在利用YOLOv8算法实现排球垫球动作的自动识别与计数。YOLOv8作为计算机视觉领域的先进目标检测算法,具备高精度和实时性的特点,非常适合用于体育训练和测试中的自动化计数。项目将排球垫球视频作为输入,通过YOLOv8算法检测视频中的排球及垫球动作,自动…

今天给在家介绍一篇基于jsp的旅游网站设计与实现

项目描述 临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下,你想解决的问…

CAN总线数据帧格式详细介绍

目录 1. CAN总线数据帧格式 2. 数据帧 2.1 帧起始 2.2 仲裁段 2.3 控制段 2.4 数据段 2.5 CRC 段 2.6 ACK段 2.7 帧结束 2.8 总结 3. 遥控帧 4. 错误帧 4.1 错误标志 4.1.1 主动错误标志 4.1.2 被动错误标志 4.2 错误界定符 5. 过载帧 6. …

Java面试要点02 - 自动装箱与拆箱的原理与性能解析

本文目录 一、引言二、自动装箱与拆箱的底层原理2.1 编译器的处理机制2.2 字节码层面的分析2.3 缓存机制的实现 三、性能影响的深度分析3.1 内存开销分析3.2 CPU开销分析 四、实际应用中的常见陷阱4.1 空指针异常陷阱4.2 包装类型的比较陷阱 五、最佳实践与优化建议5.1 性能优化…

速通LoRA:《LoRA: Low-Rank Adaptation of Large Language Models》全文解读

文章目录 总览AbstractIntroductionProblem StatementAren’t Existing Solutions Good Enough?Our MethodLow-Rank-Parametrized Update MatricesApplying LoRA to Transformer 何为高斯随机初始化Empirical ExperimentsBaselinesRoBERTa base/largeDeBERTa XXLGPT-2 medium/…

【Java学习】电脑基础操作和编程环境配置

CMD 在Windows中用命令行的方式操作计算机。 打开CMD Win R输入CMD按下回车键 Win E 进入我的电脑 常用的CMD命令 盘符名称冒号 说明:盘符切换 举例:E:回车,表示切换到E盘 dir 说明:查看当前路径下的内容 cd目录 说明&a…

索引【MySQL】

文章目录 聚簇索引 VS 非聚簇索引索引MySQL与磁盘交互的基本单位主键索引索引操作唯一索引的创建普通索引的创建复合索引 索引创建原则 聚簇索引 VS 非聚簇索引 MyISAM存储引擎 - 主键索引结构 MyISAM存储引擎同样采用B树作为索引的基本数据结构 与InnoDB存储引擎的B树不同的…

c语言数据结构与算法--简单实现队列的入队和出队

(一)队列的基本概念 和栈相反,队列(Queue)是一种先进先出(First In First Out)的线性表。只 允许在表的一端进行插入,而在另一端删除元素,如日常生活中的排队现象。队列中 允许插入的一端叫队尾…

【缓存策略】你知道 Cache Aside(缓存旁路)这个缓存策略吗

👉博主介绍: 博主从事应用安全和大数据领域,有8年研发经验,5年面试官经验,Java技术专家,WEB架构师,阿里云专家博主,华为云云享专家,51CTO 专家博主 ⛪️ 个人社区&#x…

2.操作系统常见面试问题2

2.19 说说什么是堆栈溢出,会怎么样? 堆溢出(Heap Overflow)是指程序在运行时向堆内存区域写入了超出预定大小的数据,导致堆内存区域的数据结构(如动态分配的内存块)被破坏,从而引发…

基于TI AM62A+FPGA实现FPDLINK III车载摄像头解决方案

功能概述 本模块主要包含FPDLINKIII/CML收发信号与HDMI/SDI/USB信号、千兆网络信号,支持客户按照按照指定功能定制 当前默认功能为FPD LINK III/CML转为HDMI/SDI/UVC信号 性能参数 名称 描述 供电接口 DC12V FPD LINK RX GM8914 FPD LINK TX GM8913 千兆网…

丹摩征文活动 | SD3+ComfyUI的图像部署实践

一、前言 作为Stability AI 推出的一款革命性的文本转图像开源模型,Stable Diffusion 3(简称SD3)在图像质量、文本内容生成、理解复杂指令以及资源利用效率方面,都有着不俗的表现。 SD3的Medium版本,拥有20亿参数&am…

介绍几个提取视频文案的Coze插件

用过coze的朋友应该都知道“链接读取”这个插件,它不但可以读取网页内容,而且还可以提取视频链接的内容,但是对于有些平台的网址,它就有些无能为力了。 这里就可以用到我们今天的主角之一“字幕获取”插件。 一、字幕获取插件 从…

MIT 6.S081 Lab1: Xv6 and Unix utilities翻译

Lab1: Xv6 and Unix utilities 文章目录 Lab1: Xv6 and Unix utilities实验任务启动xv6(难度:Easy)sleep(难度:Easy)pingpong(难度:Easy)Primes(素数,难度:Moderate/Hard)find(难度&…

YOLOv11融合ICCV[2023]动态蛇形卷积Dynamic模块及相关改进思路|YOLO改进最简教程

YOLOv11v10v8使用教程: YOLOv11入门到入土使用教程 YOLOv11改进汇总贴:YOLOv11及自研模型更新汇总 《Dynamic Snake Convolution based on Topological Geometric Constraints for Tubular Structure Segmentation》 一、 模块介绍 论文链接&#xff…

Sam Altman:年底将有重磅更新,但不是GPT-5!

大家好,我是木易,一个持续关注AI领域的互联网技术产品经理,国内Top2本科,美国Top10 CS研究生,MBA。我坚信AI是普通人变强的“外挂”,专注于分享AI全维度知识,包括但不限于AI科普,AI工…

信息网络安全——AES加密算法

算法背景介绍 该算法是由美国发明的,1997年NIST发布算法征集公告,98年入围15个候选算法,99年进入五强,00年凭借安全性,性能,大小实现特性为标准最终选定,01年正式发布AES标准。   选择AES主要…

arm 汇编技巧

汇编标号:f表示forward, b表示backward: Here is an example: 1: branch 1f 2: branch 1b 1: branch 2f 2: branch 1b Which is the equivalent of: label_1: branch label_3 label_2: branch label_1 label_3: branch label_4 label_4: bra…