第1章 绪论
软件产品的质量、效率、价格已经成为各方关注的十分重要的问题
1.1 软件开发工具的由来
【名称解释】软件开发工具 在高级程序设计语言的基础上,为提高软件开发的质量和效率,从规划、分析,设计、测试、文档和管理等各个方面,对软件开发者提供各种不同程度的帮助的一类新型的软件。
【简答】如何理解软件开发工具的概念?
(1)是一类软件,是开发软件用的软件。
(2)它是在第三代语言的基础上发展起来的。
(3)强调对软件开发全过程中各个阶段的支持,即不仅包含狭义的编程阶段,而是包含了相当广泛的范围和相当丰富的内容。
裸机:只能执行机器指令的硬件设备。
萌芽状态的软件工作基本特征:专业知识与计算机技术之间的桥梁。
第一代语言:机器语言,第二代语言:汇编语言,第三代语言:高级语言。
用汇编码编写的程序成为汇编程序,而把这些汇编指令转化为机器指令的程序则称为汇编系统。
操作系统的出现改善了人们应用计算机的条件。
【多选题或填空题】60年代初期的高级语言有:FORTRAN,ALGOL和COBOL。
【填空题】高级编程设计语言实现了对机器的独立性,即它不依赖特定的硬件系统,抽象地逻辑地描述处理和算法,而把硬件系统之间的区别交给不同的编译系统去处理,从而大大提高了程序的可移植性。
第三代语言应用中出现新的瓶颈--处理过程的描述。
【名称解释】软件危机:在认识到软件工作重要性的同时,也认识到了软件工作的困难性。
【简答】软件的重要性
(1)软件是计算机的灵魂。
(2)软件是使用者与计算机之间的桥梁
(3)软件是人类在各个领域中积累的知识的结晶
(4)软件是人类文明与知识得以延续的新的载体
(5)软件是人类进一步成为一个整体,得以进一步相互联系的纽带
【简答】软件的困难性
(1)人类社会和客观世界的复杂性,决定了软件本身的复杂性
(2)人类知识的丰富多彩,决定了软件的极大的多样性
(3)客观世界的动态性,决定了软件对可维护性、可重用性越来越高的要求。
【简单】通用软件的弱点
(1)有许多工作是通用软件所无法完成的。
(2)用通用软件完成某些工作,只能表现出其表面的形式,而不能反映其逻辑内涵。
(3)用通用软件来帮助人们完成软件开发工作时,常常遇到难以保持一致性的困难。
【单选题】进入集成的软件开发环境阶段的标志:1989年,IBM公司宣布了一个名为AD/Cycle的巨大的理论框架。
两个鲜明的特点使软件开发工具的功能和效率提高到了一个新的阶段:
(1)面向网络,不仅基于网络,而且用于网络。
(2)开源软件的兴起和运用。
1.2 软件开发工具的概念
【简答】软件开发工具概念的要点
(1)它是 在高级程序设计语言之后,软件技术进一步发展的产物。
(2)它的目的是在人们开发软件中给予各种不同方面、不同程度的支持或帮助。
(3)它支持软件开发的全过程,而不是仅限于编码或其他稳定的工作阶段。
【填空题】在理解软件开发工具的概念时,应当同时认识软件开发工具的继承性与创新性。
【填空题】指令是人们在实践中形成的工作规范与步骤。
【填空题】软件应当包括程序与文档两个不可缺少的组成部分。
【填空题或单选】目前软件开发的新阶段是以应用软件开发工具为标志的新阶段。
【多选或填空】软件和软件开发过程的实质是知识的提炼、表述、固化的作用。
【简答】软件开发新阶段的特点(表现)
(1)自动化程度的提高
(2)这一阶段的工作明确地把需求分析和架构设计包括在软件工作的范围之内,从而使软件开发过程进一步向用户单方面延伸,离用户更近了
(3)把软件开发工作延伸到项目及版本管理,从而超出了一次编程的局限,而扩展到了作为一个不断发展的客体生长完善的全过程
(4)在这一阶段的研究中,吸引了许多管理科学的内容与方法,如程序员的组织、质量的控制等。
软件生产的成败更多地依赖于合理地组织与协调,而不是领导者或程序员个人的编程能力。
【名词解释】第四代语言(4GL):原义是非过程化的程序设计语言。针对以处理过程为中心的第三代语言,第四代语言希望通过某些标准处理过程的自动生成,使得用户可以只说明要求做什么,而把具体的执行步骤的安排交由软件自动处理。
【名词解释】CASE工具:一种是计算机辅助软件工程,另一种是计算机辅助系统工程。即应用计算机自身处理信息的巨大能力,帮助人们开发复杂的软件或应用系统。
【名词解释】可视化编程:强调“所见即所得”的原则,力图实现编程工作的可视化,即随时可以看到结果,程序的调整与后果的调整同步进行。
1.3软件开发工具的功能与性能
软件开发过程阶段:
(1)需求分析
软件工作开发的起点是初始要求的提出。软件开发工作首要的任务是根据这种初始需求形成严格的、明确的、可供实际开发使用的功能说明书。
【名词解释】需求分析:软件设计者需要从这个初始要求出发,经过大量的调查研究工作,抽象出应用领域中的实际的信息需求,设计出计算机系统内外的、合理的信息流程,并规定出软件系统的功能与性能要求。
调查分析的成果集中体现在第一个重要的文档----软件功能说明书。
(2)总体设计
它的任务是根据软件功能说明书的要求,完成软件的总体设计,这包括整个软件的结构设计,公用的数文件或数据库的设计,各部分的连接方式及信息交换的标准等主要内容。
结构设计是把软件划分成若干个模块,指定每个模块的功能要求,以及它们之间的相互关系。
总体设计的成果是系统的总体设计文件及各个模块的设计任务书。总体设计文件应包括结构图、模块清单、公用数据机构。
(3)程序的编写与文档的编写。实现阶段
(4)测试或调试阶段
包括模块的调试与整个软件的联调两个部分。
软件开发工具的功能要求:开发各个阶段
(1)认识与描述客观系统:这主要用于软件开发工作的第一个阶段---需求分析阶段。
(2)存储及管理开发过程中的信息。
(3)代码的编写或生成。
(4)文档的编制或生成
(5)软件项目的管理。项目管理包括进度管理,资源与费用管理,质量管理三个基本内容。
【简答】软件开发工具的性能:
(1)表达能力或表述能力
(2)保持信息一致性的能力
(3)使用的方便程度
(4)工具的可靠程度
(5)对硬件与软件环境的要求
【名词解释】可靠性:即在各种各样的干扰下仍能保持正常工作,而不致丢失或弄错信息。
软件开发工具对环境的要求不应当超出它所支持的应用软件的环境要求,有时甚至还应当低于应用软件的环境要求。
1.4软件开发工具的类别
【单选、多选题】按工作阶段划分
(1)设计工具 如:代码生成器,4GL,测试工具,出现最早数量大的
(2)分析工具 如:数据字典管理系统,画数据流程图工具FLOW, 画结构图或ER图的工具
(3)计划工具 为(项目主管人员)服务的
按集成程度划分
(1)专业的、面对某一工作阶段或某一工作任务的工具
(2)集成化的、面对软件开发的全过程的工具。
【名词解释】软件工作环境:集成化的软件开发工具。
按与硬件、软件的关系划分
(1)依赖与特定的计算机或特定的软件 设计工具、集成化的软件开发工具
(2)独立与硬件与其他软件的 分析工具、计划工具
1.5软件开发工具的研究与应用
【简单】学习软件开发工具的目的
在于了解软件开发工具的概念、理论基础、基本功能、发展现状与前景,以便能够在实际工作中正确地选择与使用软件开发工具,在必要时能够参加或组织软件开发工具的自行研制,从而提高软件工作水平与效率的目标。