打印
[匠人手记]

都过了好久才看到,好**啊

[复制链接]
楼主: 程序匠人
手机看帖
扫描二维码
随时随地手机跟帖
101
xwj| | 2008-9-24 23:46 | 只看该作者 回帖奖励 |倒序浏览

占领广告位

使用特权

评论回复
102
bios51| | 2008-9-24 23:53 | 只看该作者

学习

使用特权

评论回复
103
ningwuli| | 2008-9-25 15:30 | 只看该作者

顶一个先!

好帖,让我不得不顶啊!!

使用特权

评论回复
104
yewuyi| | 2008-9-25 17:22 | 只看该作者

~~

刚在一个行业起步的时候,流程图还是有用的,至少可以帮助他加快理解,所以这个时候,很多工程师都会画画流程图,即使是抽象性的简易流程图,一般也会弄个草稿看看,但混一个行业时间长了后,即使不成高手只是一个熟手,一般也都不怎么画流程图了,因为他接受这个设计任务的时候,其实已经差不多把设计中需要的资源分配和系统开销计算的差不多了,真正动手的时候,无非就是把大脑中的思维变换成实际的代码而已,此时大家习惯的做法往往是写代码,再补图纸,补图纸的目的一般都不是给自己看的,呵呵,往往是企业文档整理、图纸规范的需要。

但如果是一个大的项目,需要多小组协作写代码,那先写技术文档则是必须的了,单枪片马干基本就无所谓了,但在MCU这方面的编程,绝大多数还是靠个人英雄主义就能搞定的,呵呵,工程师希望自己能搞定这些,很多企业也都希望能由1~2个人,因为项目组人员比较精简的话,项目管理起来比较好做,而且电子产品的开发周期一般不长,电子产品开发周期太长的话,大家就只能喝西北风了,所以代码开发的时间也不会太长,这肯定和PC上很多软件有些差异,显然的是:因此造成不提前做技术文档反而比做技术文档的企业发展速度更快的现象。。。

使用特权

评论回复
105
程序匠人|  楼主 | 2008-9-26 08:43 | 只看该作者

yewuyi说的是现状、实情

为了赶工期而忽略掉文档的现象普遍存在。

使用特权

评论回复
106
HWM| | 2008-9-26 09:06 | 只看该作者

问题出在组织和分工上,和赶工期无关。

使用特权

评论回复
107
keyanfeng| | 2008-9-26 10:42 | 只看该作者

六角菱形比四角菱形可以节省更多的空间

同意,
让教科书见鬼去吧!

使用特权

评论回复
108
hq_y| | 2008-9-26 10:43 | 只看该作者

复杂项目还是先规划好比较好

使用特权

评论回复
109
农民讲习所| | 2008-9-26 10:53 | 只看该作者

做为工程师,缺乏的不是画流程图的能力

而是缺乏理论知识。
就比如按键,串口这样的初级东东,上过几天课堂的人都会画流程图,而且可以画得极为漂亮。可是动手做起来,才发觉用流程图做出来的程序经常和其它程序冲突。

俺作为农民讲习所的讲师,是极其藐视画流程图的,因为程序是不能用流程图表达的,应该用层次图表达。
画流程图,是单细胞们干的事情。

使用特权

评论回复
110
飞雨天| | 2008-9-26 10:55 | 只看该作者

关键在于图形

用图形的方式来表达一个程序的流程,或者说是编程者的思想,确实是个很大的进步,但图形也会带来图形表达固有的缺陷,这个是没办法避免的~

使用特权

评论回复
111
huhaijiang| | 2008-9-27 09:20 | 只看该作者

记号下

记号下,改天看

使用特权

评论回复
112
dengm| | 2008-9-27 19:42 | 只看该作者

流程图的上行线与左行线应加箭头

使用特权

评论回复
113
aq_fd| | 2008-9-27 20:50 | 只看该作者

跟踪拜读

留个号。

使用特权

评论回复
114
程序匠人|  楼主 | 2008-9-27 23:22 | 只看该作者

五、数据流图(DFD)

五、数据流图(DFD)

1、数据流图简介

前面介绍的三种程序规划方法,都是从算法的角度来分解程序的流程。然而,把程序或软件理解为算法是片面的。完整的理解是:“程序=数据结构+算法”。因此在程序规划的过程中,我们可以从另一个角度——数据的流向——来分析系统。

这就是这一节要介绍的数据流图。

数据流图,即DFD(data flow diagram),又被称为数据流程图。是软件需求分析阶段的重要描述手段。

数据流图是从数据流向的角度来描写软件功能要求系统的组成和各部分之间联系的一种方法。它的具有直观、简洁等优点,软件开发人员及用户易于理解和接受。

使用特权

评论回复
115
程序匠人|  楼主 | 2008-9-27 23:23 | 只看该作者

2、数据流图的4要素

2、数据流图的4要素

在匠人看到的一些资料文献中一般都把数据流图分解为外部实体(数据源和数据终点)、处理(加工)过程、数据流、数据存储(文件)等四部分。下面依次介绍:

(1)外部实体:又被称为数据源(输入实体)和数据终点(输出实体)。代表了数据的外部来源和去处。也就是说,外部实体属于系统的外部和界面。它是独立于系统之外,但又和系统有联系的人或事物。

(2)处理过程:是对数据进行加工的环节。这种加工处理包括算术、逻辑运算处理,或者进行数据变换。它用来改变数据值。每一个处理过程又包括了数据输入、加工和输出3个部分。

(3)数据流:代表数据处理过程的输入或输出。数据流指示了数据在系统中的传递流向。

(4)数据存储:代表数据保存的地方,它用来存储数据。系统处理从数据存储中提取数据,也将处理的数据返回数据存储。

以上介绍的这四个部分又被称为数据流图的4要素。

使用特权

评论回复
116
程序匠人|  楼主 | 2008-9-27 23:27 | 只看该作者

3、数据流图的画法

3、数据流图的画法


在不同的文献中,对4个要素的定义和描述都不同,甚至连它们的画法也不完全统一。下面是数据流图的常见画法(参见图 1.32:数据流图举例):
 

数据流图的画法没有完全统一的规范,不过这并不影响我们用这一工具来分析我们程序中的数据流向。

使用特权

评论回复
117
程序匠人|  楼主 | 2008-9-27 23:38 | 只看该作者

4、数据流图的应用

4、数据流图的应用


 
软件中除了“程序流程”这条显性的主线,还有另一条隐性的主线,就是“数据流向”。之所以说“数据流向”这条主线是隐性的,那是因为在系统中,对一个特定数据的输入、处理、存储、输出等过程,往往被分散在许多模块中。
 
“数据流向”很难通过流程图来描述。甚至于你把流程图画的越详细,“数据流向”这条线索就越发显得不够清晰。这时,我们就可以考虑用数据流图来描述,使得“数据流向”显得脉络清晰。
 
举一个例子,比如一个简单的温度检测与控制系统。整个过程包括以下几个步骤:
 
(1)CPU先对负温度系数温度传感器(NTC)进行AD转换,取得采样值,并对这个采样值做递推平均滤波。
 
(2)然后利用查表方法,把上一步滤波后的采样值转变为温度值。为了消除抖动,需要进一步做消抖滤波。滤波后的结果即为当前的实际温度。
 
(3)另一方面,通过人机界面的按键输入系统,取得系统的设定温度。
 
(4)实际温度和设定温度分别送显,并把这二者做比较,决定加热控制继电器的状态(闭合/释放)。
 

整个系统虽然不复杂,但涉及到了数据的输入、加工、输出等诸多环节。这些操作牵涉到多个模块,包括:ADC模块、按键功能模块、滤波模块、显示模块、输出控制模块。
 
这些功能如果用流程图来描述,将需要用到多张流程图;如果用数据流图来描述的话,则只需要一张图就能把整个数据流表达清楚。(参见图 1.33:温度检测与控制系统数据流图)。
 


 
在实际应用中,我们立足于描述一个实际问题,因此在画数据流图时可以不必太过于拘泥于某一个固定的规范。只要能把思路表达清楚就好。
 

使用特权

评论回复
118
程序匠人|  楼主 | 2008-9-27 23:41 | 只看该作者

最新战况

本贴最新战况:

回复:116
点击: 4509

支持的请顶一下。好让俺有积极性继续写下去。 

使用特权

评论回复
119
elenwq| | 2008-9-28 08:46 | 只看该作者

支持!

天天跟着看呢。支持!!!!支持原创! 匠人手记学习中。

使用特权

评论回复
120
程序匠人|  楼主 | 2008-9-28 10:17 | 只看该作者

纠正一下,这个贴子不是仅仅讨论流程图的

程序规划的方法有很多,流程图只是其中的一种。除了流程图,还有N-S图、PAD图、数据流图、层次图、状态迁移图(表)、真值表、数轴、等等。。。。。因此,我们后续要继续讲下去。也希望大家不要把目光局限在流程图上。

欢迎所长、hotpower、HWM、圈圈等各路大虾继续发表真知灼见,兼听则明。也欢迎其他网友继续互动讨论。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则