1、软件工程的发展动态【摘要】软件工程是一类工程,也是一门年轻的学科。工程是将理论和知识应用于实践的科学,是一种特殊的产品,随着其规模和复杂性的提高、使用范围的扩大,需要从技术和管理两方面对软件的开发过程进行控制。本文对软件的发展方向及动态作了简要阐述和论证。为从事软件开发的专业人员提供了一定的借鉴与参考。 【关键词】 软件 软件工程发展动态 中图分类号:K826.16 文献标识码:A 文章编号: 一前言 自 1968 年软件工程概念提出以来,经过 30 多年的发展,证明其正确的管理技术和当前能够得到的最好的技术结合起来,采用工程概念、原理、技术和方法来维护软件。 概念和方法都发生了巨大的变化,它
2、不仅适应也促进了计算机与软硬件技术的更新。近年发展起来的基于组件技术的软件工程 (CBSE) 与传统软件工程概念和方法均有了很大区别。 二.软件工程的出现及危机 20 世纪中期,计算机刚被从军用领域转向民用领域使用,那时编写程序的工作被视同为艺术家的创作。当时的计算机硬件非常昂贵,编程人员追求的是如何在有限的处理器能力和存储器空间约束下,编写出执行速度快、体积小的程序。程序中充满了各种各样让人迷惑的技巧。这时的软件生产非常依赖于开发人员的聪明才智。 到了 20 世纪 60 年代,计算机的应用范围得到较大扩展,对软件系统的需求和软件自身的复杂度急剧上升,传统的开发方法无法适应用户在质量、效率等方
3、面对软件的需求。这就是所谓的“软件危机” 。 为解决这个问题,1968 年 NATO 会议上首次提出“软件工程”的概念,提出把软件开发从“艺术”和“个体行为”向“工程”和“群体协同工作”转化。其基本思想是应用计算机科学理论和技术以及工程管理原则和方法,按照预算和进度,实现满用户要求的软件产品的定义、开发、发布和维护的工程。从此也诞生了一门新的学科软件工程。 迄今为之,为了达到最初设定的目标,软件工程界已经提出了一系列的理论、方法、语言和工具,解决了软件开发过程中的若干问题。但是,由于软件固有的复杂性、易变性和不可见性,软件开发周期长、代价高和质量低的问题依然存在。IEEE 在 2002 年发表
4、的报告指出,即使是 IT 产业最发达的美国,在 2001 年美国本土公司开发的软件产品中平均每 1000 行代码中有037 个错误,对于美国之外的其他国家,这个比例更高。 三软件工程的特点 软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及到程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。在现代社会中,软件应用于多个方面。典型的软件比如有电子邮件、嵌入式系统、人机界面、办公套件、操作系统、编译器、数据库、游戏等。同时,各个行业几乎都有计算机软件的应用,比如工业、农业、银行、航空、政府部门等。这些应用促进了经济和社会的发展,使得人们的工作更加高
5、效,同时提高了生活质量。得到最初的规范说明,步骤中的每一步都是在规范 说明在一致的前提下的更加具体化,在过程中要做若干证明,以保证前进的正确性,最后将最终的规范说明转换为计算机可执行的程序。 1. CBSE 从根本上改变了软件生产方式,即将软件开发实 现改变的像组装汽车或机器一样。 2.提高了软件重用率,保护已有的投资; (3) CBSE 便开发者将更多的注意力放到业务流程和业务规则上去; 持面向对象结构语言。 3.在使用面向对象方法的基础上,近年来出现了一些全新的 开发工具,最具意义的基于组件技术的软件工程方法。 4. CBSE 使开发的系统灵活,便于维护和升级。 5. CBSE 降低了对系
6、统开发者的要求。尽管 CBSE 未能消 除系统开发者和使用者之间的界线,却移动了分界线。这是因 为 CBSE 的开发者主要任务是装配已有模块,不需要有很高的编程技巧,从而使更多的人可以构造适用于自己的系统。 四软件与其他产品的差异 软件是一种特殊的产品,人们通常看到的是它的载体,而真正具有意义的是载体上的计算机或信息。 软件既不同于通常的精神产品,也不同于常见的物质产品。作家的作品是一种精神产品,它没有使用价值却可以供人阅读欣赏。若把软件也看成是一种作品,却发现其价值在于供人们使用,无人喜欢读它的源代码。 软件也与传统的工业产品不同。工业产品在设计好之后,主要的成本是原材料成本、生产过程的开销
7、等,但生产任何软件的主要成本是设计、实现软件时的成本,以及软件投入使用后的维护成本,在生产线上制造软件的成本非常低。用户购买某种商品后,就拥有了该商品的所有权和使用权。可是用户买来的软件却只拥有它的有限“使用权” 。工业产品会随着使用而磨损、报废,但软件在使用过程不会有任何磨损,在相同的硬件条件下用户 1 年前使用的软件和 5 年后使用该软件无任何差别。传统的工业产品在车间里生产,生产过程可见、可触摸,也容易衡量生产过程中的消耗和进展。可是软件的开发过程在人的大脑里,很难度量其进度。所谓的“软件工程”就是要这种过程“可视化” 、 “定量化” ,把看不见的思维活动变成看得见的“文档”或者其他看得
8、见的东西。软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。 五.软件工程的发展动态 20 世纪末开始流行的 Internet 给人们提供了一种全球范围的信息基础设施,形成了一个资源丰富的计算平台,未来如何在 Internet 平台上进一步整合资源,形成巨型的、高效的、可信的虚拟环境,使所有资源能够高效、可信地为所有用户服务,成为软件技术的研究热点。 Internet 平台具有一些传统软件平台不具备的特征:分布性、节点的高度自治性、开放性、异构性、不可预测性、连接环境的多样性等。这
9、对软件工程的发展提出了新的问题。软件工程需要新的理论、方法和技术和平台来应对这个问题。目前投入很大精力研究的中间件技术就是这方面的典型代表。 综上所述,Internet 及其上应用的快速发展与普及,使计算机软件所面临的环境开始从静态封闭逐步走向开放、动态和多变。软件系统为了适应这样一种发展趋势,将会逐步呈现出柔性、多目标、连续反应式的网构软件系统的形态。面对这种新型的软件形态,传统的软件理论、方法、技术和平台面临了一系列挑战。从宏观上看,这种挑战为我们研究软件理论、方法和技术提供了难得的机遇,使我们有可能建立一套适合于Internet 开放、动态和多变环境的新型软件理论、方法和技术体系。从微观
10、的角度来看,Internet 的发展将使系统软件和支撑平台的研究重点开始从操作系统等转向新型中间件平台,而网构软件的理论、方法和技术的突破必将导致在建立新型中间件平台创新技术方面的突破。转贴 六.结束语 自 1970 年起,软件开发进入了软件工程阶段。由于“软件危机”的产生,迫使人们不得不研究、改变软件开发的技术手段和管理方法。从此软件产生进入了软件工程时代。随着计算机技术的发展和计算机应用的日益普及,软件系统的规模越来越庞大,高级编程语言层出不穷,应用领域不断拓宽,开发者和用户有了明确的分工,社会对软件的需求量剧增,促进了软件工程的发展。 参考文献 1林锐,蔡文立,微机科学可视化系统设计,西安电子科技大学出版社,1996 2 林锐,戴玉宏,图形用户界面设计与技术,西安电子科技大学出版社,1997 3 林锐,支持协同工作的交互式三维图形软件开发系统与可视化平台,浙江大学博士论文, 4杨文龙,姚淑珍,吴云,软件工程,电子工业出版社,1997