Appearance
1.1 软件开发工具的由来
软件开发工具的界定
- 软件开发工具的范围大致可以描述为:在高级程序设计语言的基础上,为提高软件开发的质量和效率,从规划、分析、设计、测试、文档和管理等各方面,对软件开发者提供各种不同程度的帮助的一类新型的软件。
- 首先,它是开发软件用的软件;其次,它是在第三代语言的基础上发展起来的,但是并不包含第三代语言
软件开发工具的产生与演变过程
第一代计算机语言(机器语言阶段)
- 特点:把处理问题的逻辑表达为机器指令,即机器能够识别的二进制字符串。是一种十分机械、烦琐的事情
第二代计算机语言(汇编语言阶段)
- 特点:增加助记忆码(汇编码)
第三代计算机语言(高级程序设计语言阶段)
- 产生时间:
20 世纪 60 年代初 - 特点:1.突破了与机器指令一一对应的限制;2.实现了对机器的独立性
- 瓶颈:处理过程的描述
- 产生时间:
第四代计算机语言(非过程化语言)
- 20 世纪 60 年代末期,人们在认识到软件工作重要性的同时,也认识到了软件工作的困难性。这就是所谓的“软件危机”问题。
- 硬件是计算机的躯体,软件是计算机的灵魂。
- 以
1980 年为分界线,前一阶段属于结构化语言或者称为面向过程的语言,后一阶段属于面向对象的语言。 - 计算机语言发展的三个阶段:机器语言、汇编语言与高级语言
软件开发工具的发展阶段
通用软件:20 世纪 70 年代末到 20 世纪 80 年代初,很多软件开发人员已经想到了用软件来进一步支持软件开发工作。这个阶段称为利用通用软件作为辅助工具的阶段。
- 优点:可以减少很多工作量
- 弱点:1. 许多工作通用软件无法完成;2. 用通用软件完成某些工作,只能做到“形似”不能做到“神似”;3. 难以保持一致性。
专用软件:20 世纪 80 年代以来,一些专门用于支持软件开发的软件开发工具陆续问世,从而进入了专用的软件开发工具的阶段。
- 例如:代码生产器、数据字典管理系统、数据流程图、E-R 图
集成软件:1989 年,IBM 公司发布的 AD/Cycle,可以看做进入集成的软件开发工具阶段的标志。
- 例如:Rational 公司推出了 Objectory,Rose 等集成的软件开发工具。
新的阶段:21 世纪以来,随着互联网的兴起,软件开发工具的发展也进入了新的阶段。
- 两个鲜明的特点:1. 面向网络,不仅基于网络而且用于网络;2. 开源软件的兴起和运用。
1.2 软件开发工具的概念
软件开发工具的概念要点
- 1)它是在高级程序设计语言之后,软件技术进一步发展的产物;
- 2)它的目的是在人们开发软件中给予各种不同方面、不同程度的支持或帮助;
- 3)它支持软件开发的全过程,而不是仅限于编码或其他稳定的工作阶段。
软件开发工作发展的五个阶段
- 最初阶段(机器语言)
- 第二阶段(汇编语言)
- 第三阶段(将汇编语言变成了高级程序设计语言)
- 第四阶段(20 世纪 90 年代,大量应用软件开发工具的阶段,进一步扩大了软件开发的范围)
- 第五阶段(进入 21 世纪,软件开发进入了规模更大、应用更广的阶段。)
1.3 软件开发工具的功能与性能
软件开发的过程
- 1)需求分析
- 输出——软件功能说明书
- 2)总体设计
- 输出——系统的
总体设计文件(包括结构图、模块清单、公用数据结构)及各个模块的设计任务书
- 输出——系统的
- 3)实现阶段
- 程序的编写与文档的编写
- 4)测试或调试阶段
- 包括
模块的调试与整个软件的联调两个部分
- 包括
- 1)需求分析
软件开发工具的功能要求
- 1)认识和描述客观系统
- 2)存储及管理开发过程中的信息
- 3)代码的编写或生成
- 4)文档的编制或生成
- 5)软件项目的管理
- 包括:进度管理、资源与费用管理、质量管理
软件开发工具的性能
- 1)表达能力或描述能力
- 2)保持信息一致性的能力
- 3)使用的方便程度
- 4)工具的可靠程度
- 5)对硬件和软件环境的要求
1.4 软件开发工具的类别
按工作阶段划分
- 计划工具
- 概念:从更宏观的角度去看待软件开发,它不仅从项目管理的角度,还把进度、版本更新等等都考虑进来,实现了“跨生命周期”的信息管理与共享,为信息以至软件的重用创造了条件。
- 作用:为项目主管人员服务的
- 分析工具
- 概念: 主要指用于支持需求分析的工具
- 作用:支持需求分析
- 设计工具(Coding 阶段使用)
- 概念: 是指在实现阶段对人们提供帮助的工具。
- 作用:在实际中,设计工具出现得最早,数量最多。它们直接为软件开发工作中的编程、调试、文档编写工作提供帮助。
- 计划工具
按集成程度划分
- 专用工具
- 集成化工具
按与硬件、软件的关系划分
- 有的软件开发工具依赖于特定的计算机或特定的软件(如某种数据库管理系统)
- 设计工具多是依赖于特定的软件
- 集成化的软件开发工具又常常是依赖于机器与软件
- 有的软件开发工具则时独立于硬件与其他软件
- 分析工具与计划工具玩玩是独立与机器与软件
- 有的软件开发工具依赖于特定的计算机或特定的软件(如某种数据库管理系统)
1.5 软件开发工具的研究与应用
- 学习软件开发工具的目的在于,了解软件开发工具的概念、理论基础、基本功能、发展现状与前景,以便能够在实际工作中正确地选择与使用软件开发工具,在必要时能够参与或组织软件开发工具的自行研制,从而达到提高软件工作水平与效率的目标。
复习题
简要说明软件发展的几个主要阶段
- 最初阶段(机器语言)
- 第二阶段(汇编语言)
- 第三阶段(将汇编语言变成了高级程序设计语言)
- 第四阶段(大量应用软件开发工具的阶段,进一步扩大了软件开发的范围)
- 第五阶段(进入 21 世纪,软件开发进入了规模更大、应用更广的阶段。)
作为软件开发工作的新阶段,21 世纪的软件开发与以往有什么区别?
- 两个鲜明的特点:1. 面向网络,不仅基于网络而且用于网络;2. 开源软件的兴起和运用。
软件开发工具与第三代语言的关系是什么?
- 软件开发工具是在第三代语言的基础上发展起来的
软件开发工具与第四代语言的关系是什么?
- 4GL 是应用较为广泛的一个名词,它的原义是非过程化的程序设计语言。第四代语言希望通过某些标准处理过程的自动生成,使得用户可以只说明要求做什么,而把具体的执行步骤的安排交由软件自动处理。
- 第四代语言的思路与软件开发工具是一致的,离硬件更远,离用户更近。但是。第四代语言没有设计需求分析、项目管理、文档生成等问题,可以被看做软件开发工具中的一类,而不是全部。
软件开发工具的功能有哪些?
- 1)认识和描述客观系统
- 2)存储及管理开发过程中的信息
- 3)代码的编写或生成
- 4)文档的编制或生成
- 5)软件项目的管理
软件开发工具的主要性能指标有哪些?
- 1)表达能力或描述能力
- 2)保持信息一致性的能力
- 3)使用的方便程度
- 4)工具的可靠程度
- 5)对硬件和软件环境的要求
从支持的工作阶段来看,软件开发工具可以分为几类,它们的作用是什么?
- 计划工具
- 作用:为项目主管人员服务的
- 分析工具
- 作用:支持需求分析
- 设计工具(Coding 阶段)
- 作用:在实际中,设计工具出现得最早,数量最多。它们直接为软件开发工作中的编程、调试、文档编写工作提供帮助。
- 计划工具
什么叫做集成的软件开发工具?
- 对软件的开发有全面的、统一的支持环境。将零散的、分散的支持各个阶段、各项具体工作的专用工具之前有机的联系起来。
软件开发工具与计算机硬件、系统软件的关系如何?
- 有的软件开发工具依赖于特定的计算机或特定的软件(如某种数据库管理系统)
- 设计工具多是依赖于特定的软件
- 集成化的软件开发工具又常常是依赖于机器与软件
- 有的软件开发工具则时独立于硬件与其他软件
- 分析工具与计划工具玩玩是独立与机器与软件
- 有的软件开发工具依赖于特定的计算机或特定的软件(如某种数据库管理系统)
软件开发人员为什么需要学习和了解软件开发工具?
- 了解软件开发工具的概念、理论基础、基本功能、发展现状与前景,以便能够在实际工作中正确地选择与使用软件开发工具,在必要时能够参与或组织软件开发工具的自行研制,从而达到提高软件工作水平与效率
百日题库-主观题
【2015 年 04 月】进入二十一世纪以来,软件开发工具的发展有什么特点?
- 使软件开发基于网络;并在网络环境下使用;开源软件的兴起和运用;提高软件开发的工作效率。
【2015 年 04 月】试论软件开发工具的提出与使用,是软件技术发展的一个新的阶段。
- 区别于以往阶段的特点,它的发展主要表现在四个方面。
(1)自动化程度的提高。编程中的部分工作已由工具代替执行。
(2)将需求分析和架构设计包括在软件工作的范围之内,从而使软件开发过程进一步向用户方面延伸。顺应大量开源软件出现的客观环境,进一步显示出软件开发的继承性和开放性,进一步证明了软件是人类知识积累和传承的新的、有力的手段。
(3)将软件开发工作延伸到项目及版本管理,从而超出了一次编程的局限,而扩展到了作为一个不断发展的客体生长完善的全过程。这也是软件研制从个体的、手工作坊的方式向科学的、有组织、有计划的方式转变的一个重要表现。
(4)吸收了许多管理科学的内容与方法,将组织、管理等项目负责人的思想与方法放到了更重要的位置。人们越来越深刻地认识到,软件生产的成败更多地依赖于合理地组织与协调,而不是领导者或程序员个人的编程能力。
- 区别于以往阶段的特点,它的发展主要表现在四个方面。
【2015 年 10 月】试论软件开发工作发展变化的五个阶段及其特点。
- 最初阶段,用机器语言写成一系列机器指令,供硬件执行;
第二阶段,用汇编语言开发软件,由汇编程序完成转换;
第三阶段,用高级语言开发软件,由编译程序完成转换;
第四阶段,在各种软件开发工具帮助下开发软件由编译程序完成转换; 新阶段,由软件构架师完成构架设计,程序员用软件开发工具完成程序开发,由编译程序完成转换。
- 最初阶段,用机器语言写成一系列机器指令,供硬件执行;
【2016 年 04 月】简述汇编语言相对于机器语言的突破和不足。
- 英语单词代替 01 字符串。汇编语言未能突破与机器指令一一对应的限制。
【2016 年 10 月】简述高级程序设计语言相对于低级语言有哪些突破。
- 高级程序设计语言突破了与机器指令一一对应的限制,用尽可能接近自然语言的表达方式描述人们设想的处理过程,而把这种表达方式向机器指令的转化工作,交给专门的“工具”——编译系统去完成。高级设计语言实现了对机器的独立性,提高了程序的可移植性。
【2017 年 10 月】软件开发工具按工作阶段可划分成哪几类?它们提供什么帮助?
- 可以分为三类:设计工具,帮助人们在实现阶段编写和调试软件;分析工具,主要是支持需求分析;计划工具,从更宏观的角度支持软件开发
【2018 年 04 月】简述软件开发工具与计算机硬件、系统软件的关系。
- 有的软件开发工具依赖于特定的计算机或特定的软件(如某种数据库管理系统),有的软件开发工具是独立硬件与其他软件的,这当然与工具自身的情况有关。一般来说,设计工具多是依赖于特定软件的,因为它生成的代码,或测试数据不是抽象的,而是具体的某一种语言的代码或该语言所要求的格式的数据。分析工具与计划工具往往是独立于机器与软件的。而集成化的软件开发工具又常常是依赖于机器与软件的。
【2018 年 04 月】试论软件开发过程的阶段划分及各阶段的主要任务。
- (1)需求分析,也可以称之为企业模型建立阶段,其任务是了解企业的结构与功能,掌握组织及管理者的信息需求,弄清信息流通的实际情况。
(2)分析与设计阶段,其任务是进行功能分解及数据分析,完成处理过程及数据库的逻辑设计。
(3)编程阶段,其任务是完成具体的程序编写工作。
(4)测试阶段,其任务是对已有的代码进行认真的检测与试用。
(5)使用及维护阶段,其任务是组织使用者有效地使用,并及时检查与修正发现的错误。
- (1)需求分析,也可以称之为企业模型建立阶段,其任务是了解企业的结构与功能,掌握组织及管理者的信息需求,弄清信息流通的实际情况。
【2018 年 10 月】为什么说软件开发工具的提出和使用,是软件技术发展的一个新阶段?
- (1)提高了自动化程度; (2)明确地把需求分析和架构设计包括在软件工作的范围之内; (3)把软件开发工作延伸到项目管理及版本管理; (4)吸收了许多管理科学的内容与方法。
【2019 年 04 月】针对软件开发过程的各个工作阶段,软件开发工具应在哪些方面提供帮助和支持?
- (1)认识与描述客观系统; (2)存储及管理开发过程中的信息; (3)代码的编写或生成; (4)文档的编写或生成; (5)软件项目管理。