Skip to content

1.1 软件开发工具的由来

  1. 软件开发工具的界定

    • 软件开发工具的范围大致可以描述为:在高级程序设计语言的基础上,为提高软件开发的质量和效率,从规划、分析、设计、测试、文档和管理等各方面,对软件开发者提供各种不同程度的帮助的一类新型的软件。
    • 首先,它是开发软件用的软件;其次,它是在第三代语言的基础上发展起来的,但是并不包含第三代语言
  2. 软件开发工具的产生与演变过程

    • 第一代计算机语言(机器语言阶段)

      • 特点:把处理问题的逻辑表达为机器指令,即机器能够识别的二进制字符串。是一种十分机械、烦琐的事情
    • 第二代计算机语言(汇编语言阶段)

      • 特点:增加助记忆码(汇编码)
    • 第三代计算机语言(高级程序设计语言阶段)

      • 产生时间:20 世纪 60 年代初
      • 特点:1.突破了与机器指令一一对应的限制;2.实现了对机器的独立性
      • 瓶颈:处理过程的描述
    • 第四代计算机语言(非过程化语言)

      • 20 世纪 60 年代末期,人们在认识到软件工作重要性的同时,也认识到了软件工作的困难性。这就是所谓的“软件危机”问题。
      • 硬件是计算机的躯体,软件是计算机的灵魂。
      • 1980 年为分界线,前一阶段属于结构化语言或者称为面向过程的语言,后一阶段属于面向对象的语言。
      • 计算机语言发展的三个阶段:机器语言、汇编语言与高级语言
  3. 软件开发工具的发展阶段

    • 通用软件:20 世纪 70 年代末到 20 世纪 80 年代初,很多软件开发人员已经想到了用软件来进一步支持软件开发工作。这个阶段称为利用通用软件作为辅助工具的阶段。

      • 优点:可以减少很多工作量
      • 弱点:1. 许多工作通用软件无法完成;2. 用通用软件完成某些工作,只能做到“形似”不能做到“神似”;3. 难以保持一致性。
    • 专用软件:20 世纪 80 年代以来,一些专门用于支持软件开发的软件开发工具陆续问世,从而进入了专用的软件开发工具的阶段。

      • 例如:代码生产器、数据字典管理系统、数据流程图、E-R 图
    • 集成软件:1989 年,IBM 公司发布的 AD/Cycle,可以看做进入集成的软件开发工具阶段的标志。

      • 例如:Rational 公司推出了 Objectory,Rose 等集成的软件开发工具。
    • 新的阶段:21 世纪以来,随着互联网的兴起,软件开发工具的发展也进入了新的阶段。

      • 两个鲜明的特点:1. 面向网络,不仅基于网络而且用于网络;2. 开源软件的兴起和运用。

1.2 软件开发工具的概念

  1. 软件开发工具的概念要点

    • 1)它是在高级程序设计语言之后,软件技术进一步发展的产物;
    • 2)它的目的是在人们开发软件中给予各种不同方面、不同程度的支持或帮助;
    • 3)它支持软件开发的全过程,而不是仅限于编码或其他稳定的工作阶段。
  2. 软件开发工作发展的五个阶段

    • 最初阶段(机器语言)
    • 第二阶段(汇编语言)
    • 第三阶段(将汇编语言变成了高级程序设计语言)
    • 第四阶段(20 世纪 90 年代,大量应用软件开发工具的阶段,进一步扩大了软件开发的范围)
    • 第五阶段(进入 21 世纪,软件开发进入了规模更大、应用更广的阶段。)

1.3 软件开发工具的功能与性能

  1. 软件开发的过程

    • 1)需求分析
      • 输出——软件功能说明书
    • 2)总体设计
      • 输出——系统的总体设计文件(包括结构图、模块清单、公用数据结构)及各个模块的设计任务书
    • 3)实现阶段
      • 程序的编写与文档的编写
    • 4)测试或调试阶段
      • 包括模块的调试与整个软件的联调两个部分
  2. 软件开发工具的功能要求

    • 1)认识和描述客观系统
    • 2)存储及管理开发过程中的信息
    • 3)代码的编写或生成
    • 4)文档的编制或生成
    • 5)软件项目的管理
      • 包括:进度管理、资源与费用管理、质量管理
  3. 软件开发工具的性能

    • 1)表达能力或描述能力
    • 2)保持信息一致性的能力
    • 3)使用的方便程度
    • 4)工具的可靠程度
    • 5)对硬件和软件环境的要求

1.4 软件开发工具的类别

  1. 按工作阶段划分

    • 计划工具
      • 概念:从更宏观的角度去看待软件开发,它不仅从项目管理的角度,还把进度、版本更新等等都考虑进来,实现了“跨生命周期”的信息管理与共享,为信息以至软件的重用创造了条件。
      • 作用:为项目主管人员服务的
    • 分析工具
      • 概念: 主要指用于支持需求分析的工具
      • 作用:支持需求分析
    • 设计工具(Coding 阶段使用)
      • 概念: 是指在实现阶段对人们提供帮助的工具。
      • 作用:在实际中,设计工具出现得最早,数量最多。它们直接为软件开发工作中的编程、调试、文档编写工作提供帮助。
  2. 按集成程度划分

    • 专用工具
    • 集成化工具
  3. 按与硬件、软件的关系划分

    • 有的软件开发工具依赖于特定的计算机或特定的软件(如某种数据库管理系统)
      • 设计工具多是依赖于特定的软件
      • 集成化的软件开发工具又常常是依赖于机器与软件
    • 有的软件开发工具则时独立于硬件与其他软件
    • 分析工具与计划工具玩玩是独立与机器与软件

1.5 软件开发工具的研究与应用

  • 学习软件开发工具的目的在于,了解软件开发工具的概念、理论基础、基本功能、发展现状与前景,以便能够在实际工作中正确地选择与使用软件开发工具,在必要时能够参与或组织软件开发工具的自行研制,从而达到提高软件工作水平与效率的目标。

复习题

  1. 简要说明软件发展的几个主要阶段

    • 最初阶段(机器语言)
    • 第二阶段(汇编语言)
    • 第三阶段(将汇编语言变成了高级程序设计语言)
    • 第四阶段(大量应用软件开发工具的阶段,进一步扩大了软件开发的范围)
    • 第五阶段(进入 21 世纪,软件开发进入了规模更大、应用更广的阶段。)
  2. 作为软件开发工作的新阶段,21 世纪的软件开发与以往有什么区别?

    • 两个鲜明的特点:1. 面向网络,不仅基于网络而且用于网络;2. 开源软件的兴起和运用。
  3. 软件开发工具与第三代语言的关系是什么?

    • 软件开发工具是在第三代语言的基础上发展起来的
  4. 软件开发工具与第四代语言的关系是什么?

    • 4GL 是应用较为广泛的一个名词,它的原义是非过程化的程序设计语言。第四代语言希望通过某些标准处理过程的自动生成,使得用户可以只说明要求做什么,而把具体的执行步骤的安排交由软件自动处理。
    • 第四代语言的思路与软件开发工具是一致的,离硬件更远,离用户更近。但是。第四代语言没有设计需求分析、项目管理、文档生成等问题,可以被看做软件开发工具中的一类,而不是全部。
  5. 软件开发工具的功能有哪些?

    • 1)认识和描述客观系统
    • 2)存储及管理开发过程中的信息
    • 3)代码的编写或生成
    • 4)文档的编制或生成
    • 5)软件项目的管理
  6. 软件开发工具的主要性能指标有哪些?

    • 1)表达能力或描述能力
    • 2)保持信息一致性的能力
    • 3)使用的方便程度
    • 4)工具的可靠程度
    • 5)对硬件和软件环境的要求
  7. 从支持的工作阶段来看,软件开发工具可以分为几类,它们的作用是什么?

    • 计划工具
      • 作用:为项目主管人员服务的
    • 分析工具
      • 作用:支持需求分析
    • 设计工具(Coding 阶段)
      • 作用:在实际中,设计工具出现得最早,数量最多。它们直接为软件开发工作中的编程、调试、文档编写工作提供帮助。
  8. 什么叫做集成的软件开发工具?

    • 对软件的开发有全面的、统一的支持环境。将零散的、分散的支持各个阶段、各项具体工作的专用工具之前有机的联系起来。
  9. 软件开发工具与计算机硬件、系统软件的关系如何?

    • 有的软件开发工具依赖于特定的计算机或特定的软件(如某种数据库管理系统)
      • 设计工具多是依赖于特定的软件
      • 集成化的软件开发工具又常常是依赖于机器与软件
    • 有的软件开发工具则时独立于硬件与其他软件
    • 分析工具与计划工具玩玩是独立与机器与软件
  10. 软件开发人员为什么需要学习和了解软件开发工具?

    • 了解软件开发工具的概念、理论基础、基本功能、发展现状与前景,以便能够在实际工作中正确地选择与使用软件开发工具,在必要时能够参与或组织软件开发工具的自行研制,从而达到提高软件工作水平与效率

百日题库-主观题

  1. 【2015 年 04 月】进入二十一世纪以来,软件开发工具的发展有什么特点?

    • 使软件开发基于网络;并在网络环境下使用;开源软件的兴起和运用;提高软件开发的工作效率。
  2. 【2015 年 04 月】试论软件开发工具的提出与使用,是软件技术发展的一个新的阶段。

    • 区别于以往阶段的特点,它的发展主要表现在四个方面。
      (1)自动化程度的提高。编程中的部分工作已由工具代替执行。
      (2)将需求分析和架构设计包括在软件工作的范围之内,从而使软件开发过程进一步向用户方面延伸。顺应大量开源软件出现的客观环境,进一步显示出软件开发的继承性和开放性,进一步证明了软件是人类知识积累和传承的新的、有力的手段。
      (3)将软件开发工作延伸到项目及版本管理,从而超出了一次编程的局限,而扩展到了作为一个不断发展的客体生长完善的全过程。这也是软件研制从个体的、手工作坊的方式向科学的、有组织、有计划的方式转变的一个重要表现。
      (4)吸收了许多管理科学的内容与方法,将组织、管理等项目负责人的思想与方法放到了更重要的位置。人们越来越深刻地认识到,软件生产的成败更多地依赖于合理地组织与协调,而不是领导者或程序员个人的编程能力。
  3. 【2015 年 10 月】试论软件开发工作发展变化的五个阶段及其特点。

    • 最初阶段,用机器语言写成一系列机器指令,供硬件执行;
      第二阶段,用汇编语言开发软件,由汇编程序完成转换;
      第三阶段,用高级语言开发软件,由编译程序完成转换;
      第四阶段,在各种软件开发工具帮助下开发软件由编译程序完成转换; 新阶段,由软件构架师完成构架设计,程序员用软件开发工具完成程序开发,由编译程序完成转换。
  4. 【2016 年 04 月】简述汇编语言相对于机器语言的突破和不足。

    • 英语单词代替 01 字符串。汇编语言未能突破与机器指令一一对应的限制。
  5. 【2016 年 10 月】简述高级程序设计语言相对于低级语言有哪些突破。

    • 高级程序设计语言突破了与机器指令一一对应的限制,用尽可能接近自然语言的表达方式描述人们设想的处理过程,而把这种表达方式向机器指令的转化工作,交给专门的“工具”——编译系统去完成。高级设计语言实现了对机器的独立性,提高了程序的可移植性。
  6. 【2017 年 10 月】软件开发工具按工作阶段可划分成哪几类?它们提供什么帮助?

    • 可以分为三类:设计工具,帮助人们在实现阶段编写和调试软件;分析工具,主要是支持需求分析;计划工具,从更宏观的角度支持软件开发
  7. 【2018 年 04 月】简述软件开发工具与计算机硬件、系统软件的关系。

    • 有的软件开发工具依赖于特定的计算机或特定的软件(如某种数据库管理系统),有的软件开发工具是独立硬件与其他软件的,这当然与工具自身的情况有关。一般来说,设计工具多是依赖于特定软件的,因为它生成的代码,或测试数据不是抽象的,而是具体的某一种语言的代码或该语言所要求的格式的数据。分析工具与计划工具往往是独立于机器与软件的。而集成化的软件开发工具又常常是依赖于机器与软件的。
  8. 【2018 年 04 月】试论软件开发过程的阶段划分及各阶段的主要任务。

    • (1)需求分析,也可以称之为企业模型建立阶段,其任务是了解企业的结构与功能,掌握组织及管理者的信息需求,弄清信息流通的实际情况。
      (2)分析与设计阶段,其任务是进行功能分解及数据分析,完成处理过程及数据库的逻辑设计。
      (3)编程阶段,其任务是完成具体的程序编写工作。
      (4)测试阶段,其任务是对已有的代码进行认真的检测与试用。
      (5)使用及维护阶段,其任务是组织使用者有效地使用,并及时检查与修正发现的错误。
  9. 【2018 年 10 月】为什么说软件开发工具的提出和使用,是软件技术发展的一个新阶段?

    • (1)提高了自动化程度; (2)明确地把需求分析和架构设计包括在软件工作的范围之内; (3)把软件开发工作延伸到项目管理及版本管理; (4)吸收了许多管理科学的内容与方法。
  10. 【2019 年 04 月】针对软件开发过程的各个工作阶段,软件开发工具应在哪些方面提供帮助和支持?

    • (1)认识与描述客观系统; (2)存储及管理开发过程中的信息; (3)代码的编写或生成; (4)文档的编写或生成; (5)软件项目管理。