一、 软件开发工具的由来
计算机语言和软件开发工具的发展和历史
机器语言(第一代语言):难以记忆的、无意义的、二进 制的字符串
汇编语言(第二代语言)针对难以记忆的、无意义的、二进 制的字符串、人们试图用英语中具 有一定意义的单词(或单词的缩写) 来代替它,这就是所谓“助记忆 码”,或汇编码。
高级程序设计语言(第三代语言 FORTRAN ALGOL COBOL )-20世纪60年代初:优点:实现了计算机语言对机器的独立性,可移植性大大增强。 不足:过程化语言,需要程序员一步一步安排好执行的次序
非过程化语言(第四代语言,4GL):人们希望机器能够自动地完成更多的工作,包括自动安排某些工作的 顺序,做到只要给机器下达做什么的命令,由机器自己去安排执行的 顺序。这就是第四代语言———非过程化语言的思想。
***********************
操作系统:操作系统与汇编语言几乎同时出现。 它改善了人们应用计算机的条件。操作系统 自动地完成系统初始化、文件管理、内存管 理、作业管理、处理机管理等一系列工作, 把计算机系统中的各种资源有效地、协调地 管理起来,把原先由操作员担负的大部分职 责接过来。
“软件危机” : 20世纪60年代末期
简述高级程序设计语言相对于低级语言有哪些突破?
①高级程序设计语言突破了与机器指令一 一对应的限制。
②用尽可能接近自然语言的表达方式描述人们设想的处理过程,而把这种表 达方式向机器指令的转化工作,交给专门的“工具”——编译系统去完成;
③高级设计语言实现了对机器的独立性,提高了程序的可移植性
简述高级程序设计语言的不足?
过程化语言,需要安排执行的内容与次序,需要考虑解决问题的细节。清楚 如何解决问题,加重了用户的负担。
二、 软件开发工具的概念
**********************************软件开发工具************************************************
软件开发工具的概念
在高级程序设计语言(第三代语言)的基础上 为提高软件开发的质量和效率 从规划、分析、设计、测试、文档和管理等各方面 对软件开发者提供各种不同程度的帮助的一类新型的软件
软件开发工具的发展过程
1. 没有专用的软件开发工具阶段(20世纪70年代末-80年代初): 利用通用软件作为辅助工具帮助开发人员编写文档或画图,可以减少 很多工作量,但有很多工作是通用软件无法完成的。
2. 专用的软件开发工具阶段: 是面对某一工作阶段或某一工作任务的工具。 优点是能提高软件开发的质量和效率。 缺点是一致性的保持困难,对软件的开发缺乏全面的、统一的支撑环境
3. 集成的软件开发环境阶段: 进入集成的软件开发环境阶段的标志是IBM在1989年提出的名为 AD/Cycle的巨大的理论框架。
4. 21世纪的软件开发新阶段: 有两个鲜明的特点: 第一是面向网络,不仅基于网络,而且用于网络。 第二是开源软件的兴起和运用。
为什么说软件是人类知识与经验的结晶(编-规-用-提高)?
- 有事先编好的指令(程序),硬件才能完成任务;
- 这些指令就是人们在实践中形成的工作规范;
- 可以对不同的数据反复使用;
- 进一步提高了人类的能力。
软件开发的五个阶段及其特点:
最初阶段:用机器语言写成机器指令,供硬件执行
第二阶段:用汇编语言开发软件,汇编程序完成转换机器指令
第三阶段:用高级语言开发软件,编译程序完成转换机器指令
第四阶段:在各种软件开发工具帮助下开发软件,编译程序完成转换机器指令
新阶段:由软件架构师完成架构设计,程序员用软件开发工具完成程序开发;编译程序完成转换机器指令
为什么说软件开发工具的提出与使用是软件技术发展的一个新的阶段(自动-分析设计 、 项目版本管理)?
①自动化程度的提高,编程中的部分工作已由工具代替执行。
②将需求分析和架构设计包括在软件工作的范围之内,从而使软件开发 过程进一步向用户方面延伸。
③将软件开发工作延伸到项目及版本管理。
④吸收了许多管理科学的内容与方法
什么是CASE工具?
- 计算机辅助软件工程(Computer Aided Software Engineering)
- 计算机辅助系统工程(Computer Aided System Engineering)
三、 软件开发工具的功能与性能
******************************软件开发的过程:***************************************
软件开发工具的功能要求
- 认识与描述客观系统 :主要用于第一个阶段—需求分析阶段
- 存储及管理开发过程中的信息
- 代码的编写或生成
- 文档的编写或生成
- 软件项目的管理:为项目管理人员提供支持
软件开发工具应具备的性能(表一方可环)
(1) 表达能力或描述能力
(2) 保持信息一致性的能力
(3) 使用的方便程度(更重要)
(4) 工具的可靠程度(最重要)
(5) 对硬件和软件环境的要求(不应当超出它所支持的应用软件的环境要求)
四、 软件开发工具的类别
********************按工作阶段划分******************************
************************按集成程度划分**************************
专用工具: 面对某一工作阶段或某一工作任务
集成工具: 面对软件开发全过程 依赖于机器与软件
*********************按与硬件、软件的关系划分*****************
依赖于软硬件 如:设计工具
独立于软硬件 如:分析工具、计划工具
五、 软件开发工具的研究与应用