作者:莫怀嘉805 | 来源:互联网 | 2023-05-17 07:58
最近越来越喜欢画导图了,就连说梦话都说:“你得先把握宏观,再看别的。”临近自考,将软件开发工具这本书的知识点再次串一遍。

整个宏观是从软件开发工具的概念出发的。
软件开发工具是在高级语言的基础上,为了帮助人们进行软件开发工作,适用于整个软件开发过程的一款软件。
一、它的基础是:第三代语言——高级语言
基础是高级语言,那什么是高级语言呢?这就涉及到语言的发展。
1、最初是没有语言的,然们通过控制台上的扳键将纸带上的由0和1组成的字符串传输到机器。就是我们常说的裸机,这个时候人们的关注点还在于制造出用于运算的运算器,控制器等。
2、紧接着,人们想着如何将这些字符串转换成机器指令,让机器能够直接识别,于是
机器语言
产生了。
3、机器指令全部是有0,1组成,二进制指令晦涩难懂,于是人们开始尝试将一些字符串组合成单词来帮助理解,例如Add,Mov,这就是我们的助记符,从而出现了汇编语言。在这个时候,出现了改进计算机的一个方向:建立“专门”的工具。仅仅是方向而已。
4、虽然说已经有了助记符,只是减轻了编程的困难,没有从根本上解决机器语言的问题:用机器指令来完成动作。于是在20世纪60年代初期,出现了
高级语言
。由高级语言转为机器指令,有专门的编译系统来完成。
在此阶段,工具这个概念产生,有了软件开发工具这一说。
5、软件开发工具的发展史:
(1)在20世纪70年代末,80年代初,人们想要用软件来帮助开发。此阶段用的是通用软件。
通用软件的三个弱点:
通用而非专用,所以,不能完成所要求的所有工作,有限制。
形似而非神似,不能反映出真实的意义;
一致性难以统一;
(2)20世纪80年代,专用软件阶段,例如专门用于代码的生成工具,文档编写工具。虽然解决了通用语言的前两个弱点,但未解决一致性的问题。
(3)集成化工具发展阶段:为了解决一致性的问题,人们开发了统一的支撑环境,例如,1989年IBM开发的AD/Cycle理论开发框架。
(4)21世纪,互联网的出现以及兴起,促使软件工具走向网络化以及开源化。
(5)在高级语言中,人们要完成什么工作,就要编写出有顺序的程序来告诉机器如何执行。如果这件事的顺序变了,那就又得重新写一个程序了。为了摆脱这种困难,高级语言逐渐发展出了非过程化语言。在非过程化语言中,人们无需将过程告诉给机器,只需要告诉机器我要干什么就可以了。机器可以自己去安排顺序执行。
二、它的目的是:帮助人们开发软件
软件开发工作又经历了哪几个阶段呢?
1、机器语言开发:直接编写机器指令。
2、汇编语言开发:由汇编指令转换成机器指令。
3、高级语言开发:高级语言由编译系统转换为机器指令。
4、20世纪90年代,大量只用软件开发工具的阶段,出现了软件开发人员,有了需求,设计,等阶段。
5、21世纪,出现了软件架构师。由架构师设计系统的架构,程序员进行算法设计以及代码编写。
三、它的应用范围是:整个软件开发过程——生命周期
计划,分析,设计,实施,测试
软件工具的功能也是和生命周期有关的。
1、4个功能要求:
(1)需求管理:能对客观系统进行描述。
(2)信息管理:文档的编写生成以及信息的存储。
(4)项目管理:整个生命周期的管理,例如,版本控制,进度管理,质量管理等。
(3)代码管理:代码的编写生成。
2、4个性能要求:
(1)对于系统:能否准确描述客观系统,是否保持信息的一致性。
(2)对于软硬件:能否满足软硬件的环境要求
(3)对于人:是否能够熟练使用,软件的方便程度,软件是否可靠。
四、它的本质是:软件
软件工作的重要性?
1、对于计算机来说:硬件是躯体,软件是灵活,软件是在硬件的发展之下产生的。
2、对于人来说:人类知识与经验的结晶,人类文明的延续,知识载体的变化,提高知识的保存能力。
3、对于人和计算机来说:软件是人和计算机之间的桥梁。
五、开发工具的分类
正如大家看到的,在导图中标记了3个数字,这就代表了软件开发工具的三种分类方式。
1、按照集成程度来分
2、按照工作阶段来分:计划,分析,设计
3、按照软硬件关系来分
总结:
用了半个小时的时间,回忆了一下第一章讲的内容,其实这张导图完全涵盖了书中所涉及到的知识点,这次是只看着导图写的博客,有些地方还是要看书回顾的,这说明有些地方的联系还是比较弱的,这个图还是要改进的。
貌似做了数据结构的导图以后,再分析其他科目的时候喜欢从概念下手,从现实世界的问题下手,这也相当于是做导图的模板思路吧,但是这样又有点局限,在一些地方不适合难免会牵强,应该多整几个模板来做导图。