漫谈软件工程(上)
在我们谈论软件工程之前,我们必须首先理解软件的含义。有些人把软件等同于程序。这是不准确和不完整的。具体来说,软件是计算机系统中的程序和相关文档。程序是对计算任务的处理对象和处理规则的描述。该文件旨在促进对程序所需信息的理解。
软件是用户和计算机之间的桥梁,是计算机系统的指挥者。它规定计算机系统的工作包括各种计算任务的内部工作内容和工作流程,以及各种任务之间的调度和协调。根据其功能和服务对象,软件可以分为两类:系统软件和应用软件。
软件与硬件相关。在计算机科学技术的发展和应用中,软件和硬件都是不可缺少的。两者都有分工和协调。硬件是物质基础,软件具有命令功能,因此不能忽视,否则就不能充分发挥计算机应有的作用。
随着计算机科学技术的发展和应用领域的扩大,软件科学作为一门新学科的兴起得到了推动。
首先,软件工程的兴起
自从第一台计算机问世以来,计算机软件应运而生,但当时它大多是手工制作,往往侧重于编程,而忽略了相关文件的整理和积累。许多人根据自己的需要“编程”,没有规范或标准,可读性或可维护性。一旦情况改变,程序将被修改。
20世纪60年代末70年代初,工业化国家出现了所谓的“软件危机”。其实质是人们很难控制软件的开发和维护,这体现在以下几个方面:
1.软件系统非常复杂,不能适应操作环境的变化和用户的动态需求。一些复杂的系统往往需要数百年甚至数千年才能完成。例如,美国航空公司使用的机票预订系统每分钟处理大约3000笔交易。
2.软件成本急剧上升。据估计,硬件与软件的比例约为1: 9。不难看出,软件已经成为许多计算机系统中最昂贵的项目。
3.软件系统的可靠性很差。调试程序只能找到错误,但不能保证没有错误。有些软件系统无法修改和维护。
4.软件人员严重短缺,无法满足对软件系统日益增长的需求。
为了解决“软件危机”,北大西洋公约组织于1968年在西德召开的北约会议上首次提出了“软件工程”的概念。
二、软件工程的含义
软件工程是20世纪70年代发展起来的一门新的工程学科。利用人类科学知识和技术原理,尤其是工程原理来设计和构造计算机程序,并编写开发、使用和维护计算机程序所需的文件和材料的学科。
软件工程的三个要素是:方法、工具和组织管理。为了实现软件的工程化生产模式,不仅需要开发系统化的编程方法和软件开发工具,而且要尽可能实现标准化和通用化。
三、软件工程的特点
软件工程的特点在所有相关书籍中都有描述。南京大学出版社出版的《软件工程导论》一书系统地总结了软件工程的特点。这本书说软件工程有三个“许多”特征:多学科、多目标和多阶段。所谓多学科是指软件工程不仅包括与软件相关的主题,还包括许多其他学科,如管理科学、人类工程、系统科学、经济学、法理学、语言学、数学、图形学和心理学。所谓多目标是指软件工程不仅关注项目产品或产品的功能问题,还必须关注成本、进度、可靠性、安全性、通用性、可维护性、有效性、用户界面等。所谓多阶段是指软件开发的全过程,它不仅包括编码,还包括可行性研究、计划组织、需求定义、总体设计、详细设计、编码、调试、试运行和维护。
软件工程的最终目标是摆脱软件手工生产的局面,实现软件开发和维护的自动化。
四.软件工程的实现
为了实现软件工程,有一个标准和规范是非常重要的,否则将没有规则可遵循。为此,国家标准局颁布了《计算机软件产品开发文件编制指南》等国家标准,有利于软件工程的实施。
软件产品从概念的形成开始,经过开发,交付使用,在使用中不断补充和修改,最后被淘汰。这个过程被称为“软件生命周期”,它是软件工程中的一个重要概念。
“软件生命周期”通常分为几个阶段,包括需求定义、程序编写、测试、安装和验收、使用和维护以及退役。每个阶段都是相互关联的。每个阶段的工作都基于前一阶段的结果,并为下一阶段创造了先决条件。为了保证软件项目开发的成功,最经济的投资,以及易于操作和维护,每个工作阶段,都必须准备一定的文件,这些文件连同计算机程序和数据,可以构成一个完整的计算机软件。