软件工程导论 00章数据流图与数据字典
1、数据流图的概念
数据流图用于描述信息流和数据从输入移动到输出过程中所经受的变换
2、数据流图的绘制:
①基本图形符号
②数据流之间的关系
③几个特定名词
a. 数据流
是数据在系统内传播的路径,由一组固定的数据项组成。除了与数据存储之间的数据流不用命名外,数据流应该用名词或名词短语命名。
b.数据源点和终点
统称为外部实体,指系统外部环境中的实体(包括人员、组织或其他系统);是数据的始发点和终止点,是系统与外部环境的接口。
c.数据存储
指暂时保存的数据,它可以是数据库文件或任何形式的数据组织。流向数据存储的数据流可理解为写入文件,或查询文件,从数据存储流出的数据可理解为从文件读数据或得到查询结果。
d.加工
也称为数据处理,它对数据流进行某些操作或变换。每个加工也 要有名字,通常是动词短语,简明地描述完成什么加工。在分层的数据流图中,加工还应有编号。
e. 环境图
也称为顶层数据流图(或0层数据流图),它仅包括一个数据处理过程,也就是要开发的目标系统。环境图的作用是确定系统在其环境中的位置,通过确定系统的输入和输出与外部实体的关系确定其边界。
④画图方法:
a.确定外部实体及输入、输出数据流 (考虑数据的源点和终点,即整个的过程从哪个外部实体以哪个形式开始,最后通过哪个形式到达了哪个外部实体)
b.确定分解顶层的加工(环境图中只有一个加工,因此要根据题目的介绍,将这个加工具体化)
c.确定使用的文件(确定具体化加工过程需要用到的文件)
d.用数据流将各部分连接起来,形成数据封闭
e.如果需要,继续分解加工,直至达到“基本加工”
总的来说,数据流图的绘制过程就是一个从抽象到具体的过程,先确定顶层程序流图,再不断将其中的加工具体化,具体化的过程中引入使用到的文件,直到每个加工都是基本不可分割的。
⑤数据流图的分层
对于较复杂的数据流图,绘制起来十分麻烦,采用分层的方法,将整个过程变得更简洁。即逐层向下分解。
分解过程应满足:
a、数据守恒与数据封闭原则
所谓数据守恒是指加工的输入输出数据流是否匹配,即每一个加工既有输入数据流又有输出数据流。或者说一个加工至少有一个输入数据流,一个输出数据流。
b、分解加工的原则
自然性:概念上合理、清晰;
均匀性:理想的分解是将一个问题分解成大小均匀的几个部分;
分解度:每个加工每次分解一般不超过 7± 2 个子加工;分解到基本加工为止。
c、子图与父图的“平衡”
父图中某个加工的输入输出数据流应该同相应的子图的输入输出相同(或相对应),分层数据流图的这种特点称为子图与父图“平衡”。
e、合理使用文件
当文件作为某些加工之间的交界面时,文件必须画出来,一旦文件作为数据流图中的一个独立成份画出来了,那么同其他成份之间的联系也应同时表达出来。
⑥数据流命名
名字应代表整个数据流的内容,而不是仅仅反映它的某些成分。不要使用空洞的、缺乏具体含义的名字。在为某个数据流(或数据存储)起名字时遇到了困难,则很可能是因为对数据流图分解不恰当造成的,应该试试重新分解。
3、数据字典
数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。为了避免冗余和不一致性,应该在项目中创建一个独立的数据字典,而并不是在每个需求出现的地方定义每一个数据项。对数据流图中包含的所有元素的定义的集合构成了数据词典。 数据词典和数据流图共同构成系统的逻辑模型,二者缺一不可。即数据字典中包括了对数据流图中每个元素的解释,防止在后续过程中因为不同人员不同定义造成的混乱。
数据字典共六类条目:数据项(数据项名称及其编号、别名、取值范围和取值含义、备注)、数据结构(名称及其编号,数据结构的组成)、数据流(数据流名称、编号、别名、来源、去向、组成)、数据存储(数据存储名称、编号、组成及组织方式)、加工逻辑(名称及其编号、加工逻辑的输入和输出、加工逻辑的说明)与外部实体(外部实体的名称、编号及外部实体的简述,与外部实体有关的数据流)。
在定义数据流或文件时,还常使用下表给出的符号与各条目按照一定的 规则组织起来,共同构成数据词典。
4、基本加工说明
对数据流图中每一个不能再分解的基本加工都必须有一个加工说明对 这个加工进行精确描述。说明中应精确地描述加工的激发条件、加工逻辑 、优先级、执行频率和出错处理等。加工逻辑是其中最基本的部分,是指用户对这个加工的要求、约束和计算公式。对基本加工说明有三种描述方式:结构化语言(if-else伪代码),判定树(不断用大括号区分类别),判定表(条件的组合列成一张表)。
软件工程导论 00章数据流图与数据字典相关推荐
- 软件工程导论 1-13章 重点定义及解释
软件工程导论 第一章 概述 第二章 可行性研究 第三章 需求分析 第五章 总体设计 第六章 详细设计 第七章 实现 第八章 维护 第九章 面向对象方法学引论 第十章 面向对象分析 第十一章 面向对象设 ...
- 软件工程导论 05章总体设计
1.典型的总体设计步骤: ①确定最佳方案 ②功能分解 ③体系结构设计 ④模块设计 ⑤数据结构与数据库设计 ⑥用户界面设计 ⑦设计完成设计文档 ⑧评审 总体设计的目的:概括地回答系统应该如何实现这个问题 ...
- 软件工程导论 03章需求分析
1.需求分析是软件定义时期的最后一个阶段,它的基本任务是准确地回答"系统必须做什么"这个问题.功能需求是系统的基本需求,但是并不是唯一需求,在需求分析时还需要分析其他的需求. 需求 ...
- 软件工程导论 02章可行性研究
1.可行性研究的目的不是解决问题,而是确定问题是否值得去解决. 需要从四个方面去考虑:技术可行性.经济可行性.操作可行性及法律可行性. 实施过程中,首先进一步分析澄清问题定义,之后由分析员导出系统的逻 ...
- 软件工程导论 01章软件工程学概述
1.软件是程序.数据以及各种相关文档的集合. 程序是对计算任务的处理规则的描述,数据是对计算任务的处理对象的描述,文档则是有关计算机程序功能.设计.编制与使用的文字图形资料. 软件等于程序加数据加相关 ...
- 软件工程导论 09章面向对象方法学
1.面向对象方法学的出发点和基本原则,是尽可能摸清人类习惯的思维方式,让开发方法和过程尽可能接近人类认知世界的方法与过程. 面向对象方法=对象+类+继承+消息实现通信 2.面向对象方法的要点: ①面向 ...
- 软件工程导论 08章软件维护
1.软件维护是指在软件已经交付使用后,为了改正错误或者满足新的需求而修改软件的过程. 2.软件维护分为四类 ①改正性维护(修改诊断隐藏的错误) ②适应性维护(适应环境变化而修改软件) ③完整性维护(扩 ...
- 软件工程导论 07章软件测试
1.软件测试的目标 尽可能多地发现并排除软件中潜藏的错误,最终给用户一个高中质量的软件系统. 2.软件测试的定义 为了发现程序中的错误而执行程序的过程 3..软件测试的原则 ①所有测试都应追溯到需求 ...
- 软件工程导论 06章详细设计
1.结构程序设计经典定义:如果一个程序的代码块仅仅通过顺序.选择和循环这3种基本控制结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的.(尽可能少使用GOTO语句,最好只在检测 ...
最新文章
- Oracle全文检索示例
- window mobile 防止系统休眠代码
- 有了螃蟹让心情好一点
- 中小学招生强化就近入学;首次全女性太空行走取消;苹果付费新闻APP奔溃;NASA火星上发现鹅卵石;这就是今天的大新闻...
- JNA—JNI终结者
- 成功驱动5150用HT68F30
- 文本分类实战--从TFIDF到深度学习CNN系列效果对比(附代码)
- vue父组件引用子组件方法显示undefined问题原因及解决方法
- 如何通过文件流将很多图片存入SD卡,而不是自己内存
- Chladni Figure CodeForces - 1162D (暴力,真香啊~)
- 图片背景处理技巧快来学学
- 51单片机用1602液晶屏实现可调时钟
- 算法很没:快速渡河问题
- 刚挣钱的程序猿同学该怎样花钱?
- 神舟战神ZX9 2022款怎么样
- CSU 1598 KMP
- 有关程序的50个至理名言
- 自动化立体仓库AGV小车控制系统
- [Music]30首经典萨克斯名曲
- 作文 我眼中的计算机1000字,你眼中的我作文1000字
热门文章
- Swift自定义Class实现Hashable
- gdal库的三个使用心得
- HttpUtility.UrlEncode 方法
- C-Lodop的https扩展版,火狐下添加例外
- 大数据学习——CentOS6.5在虚拟机下配置jdk
- ESP8266 wifi 模块配置,Wechat+APP控制实现
- jQuery之.queue()
- [zz]cocos2d-x如何优化内存的应用
- Inside ASP.NET 2.0-即时编译系统
- 网络协议从入门到底层原理(8)HTTPS(成本、通信过程、TLS1.2的连接,配置服务器HTTPS)