结构化分析方法

news2024/11/15 13:27:32

目录

1.概述

2.数据流图

3.结构图

4.一个例子

4.1.需求

4.2.数据流图

4.3.结构图 

 5.辅助工具

5.1.数据字典

5.2.加工说明


1.概述

结构化方法是世界上第一个软件开发方法学,用来指导从需求分析、到设计开发各个阶段该怎么样做,采用什么样的方法,产出什么样的结果,从而保证整个软件开发周期可控。

结构化方法分为:

  • 结构化分析
  • 结构化设计

其中结构化分析是最核心的,因为在结构化方法中,结构化分析的结果是十分贴近实现的,一旦分析的较好,设计实现是很容易的事情。

结构化分析核心思想是将一个大问题自顶向下逐层分解为一个个不可再分的小问题。

如何将一个大问题拆成一个个小问题?结构化方法中提出了一整套的标准流程来实现整个过程。这个流程就是:

数据流图——>结构图

先产出“数据流图”,然后将“数据流图”转化为“结构图”,结构图是一种对软件的结构进行清晰描述的图,十分贴近代码实现,一旦产出合理的结构图后后序的设计实现都是水到渠成。结构图就是结构化分析要产出的最终、最核心的内容。

当然整个过程中为了使得描述更加清晰可以选择性加入“数据字典”、“加工说明”来辅助进行说明。

2.数据流图

数据流图,一种建模方式,在数据流图的世界观里,所有的计算系统都是信息的处理和转换,总是有一些输入经过计算系统,在系统内流转后进行输出。

数据流图有两套符号体系,DeMarco-Yourdon和Gane-Sarson:

 

外部实体:数据的产生者或消费者,可以是人、设备、另一个计算机系统等。

过程:数据的转换器,如计算纳税金额、计算面积、显示图表等。

数据流:就是指向数据流转方向的箭头并且组织起数据结构。

数据存储:存储数据的介质,数据库、磁盘等。

3.结构图

结构图是树状的,用来表示模块而之间的依赖关系、信息传递。结构图可以由数据流图转化而来,其更加贴近代码实现,更加便于后续的构造活动,所以说数据流图转结构图是结构化设计的关键。

结构图的符号:

4.一个例子

4.1.需求

设计一个高考录取统分子系统,该系统需要具备以下功能

  • 计算标准分:根据考生原始分计算,得到标准分,存入考生分数文件。

  • 计算录取线:根据标准分、招生计划文件中的招生人数,计算录取线,存入录取线文件。

4.2.数据流图

首先甄别出各个实体:

外部实体:考生

过程:计算标准分、计算录取线

数据存储:标准分、录取线、招生计划文件

可以得出如下数据流图:

4.3.结构图 

结构图可以从数据流图转化而来,转化的过程很简单,数据流图已经描述好了输入、处理过程、输出,结构图其实也分为三部分,输入、处理、输出。

于是先根据数据流图归纳好输入模块、处理模块、输出模块:

输入:

  • 原始分输入
  • 招生文件输入

处理:

  • 分数处理
    • 计算标准分
    • 计算录取线

输出:

  • 存入考生分数
  • 存入录取线

各个模块儿间的信息传递,在数据流图中也可以知道,就是各结点间流转的数据,于是可以做出结构图:

顶层结点是整个系统,输入向整个系统输入数据,处理模块处理数据,输出模块输出、存储数据。数据信息沿着调用线走。

 5.辅助工具

有时候单纯用“数据流图”、“结构图”无法描述清楚,这时候可以用一些辅助的工具,进行描述。主要的辅助工具有:

  • 数据字典
  • 加工说明

5.1.数据字典

数据流图中结点间流转的数据如果组成比较复杂,可以通过数据字典来进一步描述。

数据字典中的逻辑操作符:

 示例:

销售的商品=商品名+商品编号+价格

现金额=非负数

查询要求=[商品编号|商品名]

5.2.加工说明

加工说明,即简单描述加工节点需要做什么,说清楚就行,可以用纯文字,表格,也可以用伪代码的形式来展现,比如说:

if 后买数量>10

then 6折

else 9折

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

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

相关文章

ubuntu22.04搭建qemu环境测试内核

ubuntu22.04搭建qemu环境测试内核安装qemu创建qemu目录编译内核编译文件系统启动qemu安装qemu sudo apt-get install qemu krokodilkrokodil-SY-ZL-H110N-D3V:~/workspace$ dpkg -l | grep qemu ii ipxe-qemu 1.21.1git-20220113.fbbdc392…

R语言GD包基于栅格图像实现地理探测器与连续参数的自动离散化

本文介绍基于R语言中的GD包,依据栅格影像数据,实现自变量最优离散化方法选取与执行,并进行地理探测器(Geodetector)操作的方法。 首先,在R语言中进行地理探测器操作,可通过geodetector包、GD包等…

Qt扫盲-QSS概述

QSS概述一、概述二、详细一、概述 QSS 其实是Qt样式表,Qt样式表是Qt界面的一种强大的机制,除了通过继承QStyle已经可以实现的功能外,它还允许您自定义窗口组件的外观。Qt样式表的概念、术语和语法很大程度上受到HTML层叠样式表(CSS)的启发。…

作为网络工程师,你知道什么是VLAN 跳跃攻击吗?

您听说过 VLAN 跳跃吗?这是黑客用来访问他们无权进入的网络的一种技术。在本文中,我们将探讨什么是 VLAN 跳跃、它的工作原理以及恶意行为者如何利用它。我们还将了解可用于执行 VLAN 跳跃的工具以及企业如何保护自己免受这些攻击。 一、什么是VLAN&…

商业智能BI工具评估指南

随着行业软件业务功能的不断完善,同行业软件日趋趋同,竞争更加白热化。同时,随着企业数字化转型的深入,企业自身对数据的使用需求越来越强烈。在用户的业务处理过程中,在业务软件内直接给用户提供数据分析结果具有更高…

认识python和python基础知识点

目前python版本分为python2和python3,主流都是使用Python3,因为python2到2020年开源社区就不在维护了,目前公司开发使用也基本都是python3.下面的演示基于python3 Python的3.0版本,常被称为Python 3000,或简称Py3k。相对于P…

基于Java springboot 疫情在线网课管理系统

🍅 作者主页 超级帅帅吴 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 🍅 文末获取源码联系方式 📝 文章目录一、前言介绍1.1 背景及意义1.2 系统运行环境二、系统设计2.1系统架构设计2.2角色功能图2.3登录时序图设计三、…

文件系统的认识

文件系统磁盘磁盘的物理结构磁盘的存储结构磁盘的逻辑抽象结构对磁盘组进行管理创建和删除文件时,os做了什么?创建一个文件时,os做了什么?删除一个文件,os做了什么?制作软硬链接软连接和硬链接区别制作静、…

Vue 使用过程中的问题总结(npm Nodejs Vue Vue-cli)

目录 关系图示 vue和webpack 的关系 Node.js npm package.json 有什么作用? Vue2 和 Vue3的区别 Vue-cli的版本区别 Vue在VsCode中的常见配置 Vuter Live server Prettier vscode vue 自动格式化 Vue.js devtools 常见报错 Vue 报错error:0308010C:di…

数学建模学习笔记-算法(线性规划模型)-下(例题运用)

目录 1.线性规划的基本公式 例题: ​编辑​编辑 1.符号 2.基本假设 3.模型的分析与建立 那么可以得出目标函数是 约束条件是 一.固定风险水平,优化收益 二.固定盈利水平,极小化风险 三.设置一个投资偏好系数S 语法解析 代码 输出结…

CET6 历年真题原词复现 核心词汇 做题技巧 听力拿分技巧汇总(这篇文章是英语四六级考试最后的版本,谢谢大家一路陪伴)

话不多说直接进入 这次是最后一次 也是最用心的一次关于CET6的整理,CET4很简单,我认为没有必要去整理或者帮助各位同学,cet4只是cet6的前置任务罢了,但要是你说你考完cet4就收手了,不考了,不考6级了。我只…

(十一) Docker network

Docker network一、概述1.1、简介1.2、常用基本命令1.2、作用二、网络模式2.1、四种模式介绍2.2、容器实例内默认网络IP生产规则三、模式说明1、bridge2、host3、none4、container5、自定义网络1、概念2、没有自定义网络时3、自定义网络4、Link5、自定义bridge网络与默认bridge…

寒假每日一题W2D1——选数异或

题目描述 给定一个长度为 n 的数列 A1,A2,⋅⋅⋅,An 和一个非负整数 x,给定 m 次查询,每次询问能否从某个区间 [l,r] 中选择两个数使得他们的异或等于 x。 输入输出格式及数据范围 输入输出样例 思路 ①对于两个数的异或值为x,可以化简为&…

RHCE第二天之chrony服务部署详解

文章目录一、chrony服务器介绍二、安装与配置三、chrony服务部署四、chronyc 的常见命令五、chronyc sources 输出结果解析一、chrony服务器介绍 ①Chrony是一个开源自由的网络时间协议 NTP 的客户端和服务器软软件。它能让计算机保持系统时钟与时钟服务器(NTP&…

谈谈如何在简历筛选中尽可能 “存活下来“, 如何在面试过程中 “游刃有余“

本文只是个人学习总结出来的技巧, 仅供参考 如果有不认同的地方, 也不必太较真, 因人而异 目录 1. 为什么要做简历 1.2 好简历与差简历的区别 2. 如何做一份好的简历 2.1 知己知彼 2.2 构思内容 2.3 模板的选择 2.4 填充内容 2.5 不断的更新迭代 2.6 其他注意事项 3…

Wondershare Recovery - 万兴数据恢复专家,恢复你 Mac 上的重要文件

Wondershare Recovery - 万兴数据恢复专家,恢复你 Mac 上的重要文件 Wondershare Recoverit 是恢复被删除文件最有效的软件之一。计算机用户面临的一个主要问题是失去机密信息。我们可能是误删除了数据和文件,或者可能是由于病毒袭击、操作系统故障或硬盘…

LaoCat带你认识容器与镜像(二【二章】)

系列二章二小节,发现概念性的知识看得人并不多,csdn的一篇解决问题的博文,却涨粉近400,有点意思~ 本章内容 操作Docker容器 本文实操全部基于Ubuntu 20.04 同样,容器也是Docker重要的核心成员之一,Docker容…

如何与沃尔格林Walgreens建立EDI连接?

沃尔格林Walgreens从1901年芝加哥一个家庭作坊式的小店开始,经历了百年沧桑,如今已经拥有4000多家连锁药店,在自己100多年的发展历史中年年赢利,创造了连续100多年的赢利神话。 与沃尔格林Walgreens建立合作,一个重要环…

C++:函数指针进阶(三):Lambda函数详解(二)

一:Lambda表达式概述 Lambda表达式是现代C在C11和更高版本中的一个新语法糖,在C11,C14,C17和C20中Lambda表达的内容还在不断更新。Lambda表达式(也称为lambda函数)是在调用或作为函数参数传递的位置处定义…

记自己开发的淘宝客优惠券

目录 1.首页 1.1详情 1.2口令 1.3分类 1.4搜索 1.5个人中心 2.API开发教程 2.1什么是淘宝客 组成模式 2.2API申请 2.3SDK下载 2.3后台管理 闲暇时间浏览网站时,看到有关淘宝优惠券推广的文章,就想着能不能自己也做一个微信小程序。 但是&…