主要内容要点:
1.软件开发工具的范围:在高级程序设计语言(第三代语言)的基础上,为提高软件开发的质量和效率,从规划、分析、设计、测试、文档和管理等各方面,对软件开发者提供各种不同程度的帮助的一类新型的软件。
2.软件开发工具的发展过程
3.软件的重要性和意义
在计算机中,软件是灵魂。软件是广大使用者和计算机之间的桥梁
软件是人类在各个领域的积累知识的结晶。
软件是人类文明与知识得以延续的载体。
软件使人类进一步称为一个整体,得以进一步相互联系的纽带。
4.大型软件开发的困难及原因
客观世界的复杂性,决定了软件本身的复杂性;
人类知识的丰富多彩,决定了软件极大的多样性。
客观世界的动态性,决定了软件的可维护性、可重用性提出了越来越高的要求
面对着日益扩大的软件,如何保证它的正确性、可靠性、如何控制软件开发工作的进度与成本,很自然的成为了理论上十分重要,实际上十分迫切的课题。
5.一体化软件开发工具的特点
自动化程度有显著提高,有助于进行做需求分析、项目管理和版本管理,吸收了许多管理科学的内容和方法。
6.软件开发的过程
需求分析、总体设计、程序编写和文档编写、测试或调试、运行维护、版本更新。整个开发过程中需要进行项目管理。
7.软件开发工具的基本功能
描述系统
主要用在软件开发工作的第一个阶段 - 需求分析阶段
管理信息
软件开发各阶段都要产生许多信息。有些信息到了其他阶段还要使用,故而信息保存与管理问题显得非常突出。
生成代码
软件开发过程中,程序编写占用了相当比例的人力物力时间,提高代码编制速度与效率显然可以改进软件工作的重要方面。
生成文档
文档编写耗时费力,而且难以保持一致
项目管理
为项目管理人员提供支持,包括进度查询,资源与费用管理,质量控制
版本管理
软件开发过程中各版本的管理
8. 软件开发工具的主要性能指标
表达能力,逻辑能力(一致性的保证)、人机界面的水平(易用程度)、防错能力(可靠性)、对软硬件环境的要求。
9.软件开发工具的类别
按工作阶段划分:计划工具、分析工具、设计工具
按集成程度划分:单项工具与集成工具
按与软硬件关系划分:依赖于机器的软件工具,独立于机器的软件工具。
10.软件开发工具的研究与应用
计算机专业出身的软件开发者,急需要需求分析工具
非计算机专业的软件开发者,急需要软件设计工具
项目负责人急需计划工具。
目前,各大计算机企业在研制软件开发工具,软件技术和系统工程的专家们正在进一步研究软件开发的理论与方法。
11.软件开发工具的概念
1) 它是在高级程序设计语言(第三代语言)之后,软件技术进一步发展的产物
2)它的目的是在人们开发软件中给予各种不同方面、不同程度的支持或帮助
3)它支持软件开发的全过程,而不是仅限于编码或其他稳定的工作阶段
习题:
1.1 软件和硬件的关系是 硬件是身体,软件是灵魂,两者缺一不可。
1.2 总体设计的文档是 系统的总体设计文档 和 各个模块的设计任务书
1.3 分析工具主要是指支持需求分析的工具
1.4 总体设计的文件应包括 结构图、模块清单、公用数据结构
1.5 人们对于软件工作的认识大大深入了,在认识到软件工作的重要性的同时,也认识到了软件工作的困难性,即所谓的软件危机问题。
1.6 针对难以记忆的 0、1字符串,人们试图用英语单词的缩写来代替它,这就是助记符或汇编码。用汇编码编写程序代替用机器码编写程序,代表了改进计算机应用的基本方向。建立一些专用的"工具",使某些可以用机器来完成的工作交给计算机去做,而使得人们的知识、经验转化为计算机的操作。
1.7 项目管理包括 进度管理、资源与费用管理、质量管理 三个基本内容。
1.8 高级设计语言实现了对 机器 的独立性,即它不依赖于特定的硬件系统
1.9 知识的 提炼、表述、固化 作用,正是软件和软件开发过程的实质所在。
2.0 需求阶段的文档是 软件功能说明书
2.1 软件应当包括 程序和文档两个不可缺少的组成部分。
2.2 设计工具是指在 实现 阶段对人们提供帮助的工具。
2.3 明确的把 需求分析 纳入软件开发工作的范围,是软件技术向前迈进的重要一步。
2.4 测试或调试阶段包括 模块的调试与整个软件的联调。
2.5 按与硬件、软件的关系划分软件开发工具 划分为 依赖于特定的计算机或特定的软件的工具 和 独立于硬件与其他软件的工具。
2.6 随着软件开发工具的发展,软件开发离用户越来越近,离机器越来越远。
2.7 计划工具从更宏观的角度看待软件开发,不仅从项目管理的角度,帮助人们组织与实施项目,而且把有关 进度、资源、质量、验收情况 等信息有条不紊的管理起来。
2.8 软件开发工具按集成程度划分为 针对于单项任务的工具 和 集成化的,面对软件开发全过程的工具。
2.9 高级程序语言一般都是过程化语言,即需要由编写程序的人一步一步地安排好机器的执行次序;第四代语言则是非过程化化语言。
3.0 软件开发的基本问题是 用户的理解到程序员的理解的转换到 程序员的理解到程序的实现的转换。
3.1 软件开发工具在技术上的三要点是 面向使用者,保证各部分信息准确传递和系统的开放性。
3.2 软件开发工具可使应用软件上有几点提高 系统开发工作的效率 系统的规范性 系统文档的规范性和系统可维护的方便性。
3.3 从软件开发工具的性能方面应该注意 描述或表达能力,保持信息一致性能力,使用方便程度,工具的可靠程度以及对软硬件的要求。
3.4 为提高软件开发的效率与质量,其中重要的工作是提高代码的编制速度与效率,代码的编制速度与效率可以从代码自动生成和软件模块重用两个方面进行。代码自动生成 对于某些比较固定的软件模块而言,可以找到一些规律,制定一定的框架或模板,通过控制一些参数等方法,在一定程度上加以实现。重用则需要从更为根本的方面,对软件开发的方法、标准软件进行改进,在此基础上形成不同规范的软件构件。
3.5 出现的最早、数量最多的软件开发工具类型是 计划工具
3.6 模型建立是 需求分析 和 分析设计阶段的任务。
3.7 购买软件开发工具是应考虑 1.软件开发工具的功能 2.软件开发工具的性能 3.软件开发工具所依据的开发方法或开发理论 4.软件开发工具运行的环境 5. 软件开发工具的文档资料是否齐全 6.服务、培训条件 7.价格
3.8 软件开发方法发展的新阶段的特点
自动化程度的提高
明确地把需求分析包括进了软件开发工作范围之内
把软件开发工作延伸到项目及版本管理,从而超出了一次编程的局限
在这一阶段的研究中,吸收了许多管理科学的内容与方法,如程序员的组织、质量的控制等。
3.9 学习软件开发的目的?
了解软件开发工具的概念、理论基础、基本功能、发展现状与前景,以便能在实际工作中选择与使用软件开发工具,在必要时能够参加或组织软件开发工具的自行研制,从而达到提高软件工作水平与效率之目标。
4.0 通用软件帮助软件开发的弱点?
许多工作通用软件无法完成
通用软件完成某些工作时,只能表现出其表面的形式,不能反映其逻辑内涵
难以保持一致性
4.1 第四代语言
是非过程化的程序设计语言。针对以处理过程为中心的第三代语言,希望通过某些标准处理过程的自动生成,使得用户可以只说明要求做什么,而把具体的执行步骤安排交由软件自动处理。
4.2 可视化编程
即所见即所得的编程思想为原则,力图实现编程工作的可视化,即随时可以看到结果,程序的调整与后果的调整同步进行。
4.3 总体测试
由于设计不可能是百分之百完美的,即每个模块都达到了设计任务书的要求,整个系统能否达到预期的目标还需要进行测试,另外,完成的软件与编写的文档是否一致也是要必须认真检查的。这一测试称为总体测试
4.4 所见即所得
在程序设计时,对于界面上的设计只需要用键盘或鼠标在屏幕上直接设计,不用手写代码。设计人员在屏幕上看到的界面,就是生成程序的运行界面。
4.5 集成化的开发工具实在什么背景下产生的?
由于大量的专用的软件开发工具的产生,为软件开发的各个阶段提供了具体的支持,但他们是零散、分散地支持各个工作阶段,这些专用工具之间没有有机的联系起来,从而容易造成冲突与矛盾。这就给用户带来了沉重的重担,使用工具越多这种负担越重,从而抵消了使用工具带来的益处。这种情况导致了集成化的开发工具的产生。
4.6 软件开发分为哪几个阶段,各阶段的文档是什么?
需求分析 根据初始要求形成严格的、明确的、可供实际开发使用的功能说明书
总体设计 根据软件功能说明书的要求,完成软件的总体设计,包括软件整体结构的设计,公用数据文件和数据库的设计,各部份的连接方式及信息交换的标准等几个主要内容
实现阶段 完成程序和文档的编写
测试或调试阶段 包括模块调试与整个软件的联调。
4.7 为什么说高级语言出现后计算机才真正获得了应用?
第三代语言突破了与机器语言一一对应的限制,用尽可能接近自然语言的表达方式描述人们想象的处理过程,而把这种表达方式向机器指令的转化工作交给编译系统去完成。实现了机器的独立性,不依赖于特定的硬件系统,抽象的逻辑的描述处理和算法,把硬件系统的区别交给不同的编译系统去完成,大大提高了程序的可移植性。