【引言】
软件工程是我们由业余到专业的分水岭。
【背景】
软件工程的由来是因为存在软件危机的破坏性,需要进行消除软件危机,必须充分认识到软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。必须充分吸取和借鉴人类长期以来从事各种工程项目所积累的行之有效的原理、技术和方法,特别要吸取几十年来人类计算机硬件研究和开发的经验教训。
【图例】
软件工程的文档支撑了软件的开发,软件工程的设计图支撑了软件文档的编写,一张图胜过千言万语,其实也可以反向理解,是软工里面的图来支撑了软件的开发,所有的东西的产生都是以里面的中心设计图纸演化而生,图的清晰与否就说明了你对这个软件的核心部位是否逻辑清楚,是否存在bug。
系统流程图,数据流图,程序流程图的区别
1.系统流程图
设计师与用户之间的沟通工具,主要表示数据的流动情况,放映的系统的主体框架。
一般用户的系统流程图
2.数据流图(DFD图)
从数据的传递与加工角度出发,描述的数据的输入与输出的过程的变换,更具有逻辑性。
3.程序流程图
描述程序的执行顺序和执行序列,描述程序中的控制流的情况。
程序流程图、盒图、PAD图的区别
1. 程序流程图
特点:历史最悠久,使用最广泛,最混乱
优点:直观适合初学者
缺点:不是逐步求精的好工具
不以表示数据结构
用箭头表示数据流,程序员可以随意转移控制
2.盒图(N-S图)
功能域明确,一眼看出
无箭头,不可以随意转移控制;
多重嵌套层及较复杂的算法切忌用N-S图
容易表现潜逃关系,模块层次结构
多用可以是程序员逐步养成结构化的方式思考问题和解决问题的方法;
3.PAD图
程序化结构
程序结构清晰
易读,易懂,易记
易将PAD图转为高级语言源程序
可用于表示程序逻辑,也可用于描述数据结构
支持自顶向上,逐步求精