软件技术的发展

发布时间:2019-01-29 04:23:30   来源:文档文库   
字号:

软件技术的发展

骆亚芬

计算机科学系 软件051

摘要:在四个方面对软件技术的发展进行可一些思考:(1)从事物发展规律的角度,揭示软件技术发展的历程2)从软件本质特征的角度,浅析虚拟机各抽象层次的构造3)从软件开发的本质,提出了软件工程学科研究的内容,并研究了软件工业化生产模式4Internet 的出现为背景,探索了软件技术的发展趋势。

关键词:软件工程,软件特征,软件工业化生产,软件复用,网构软件

软件工程作为独立的一门学科,其发展已逾 30 20 世纪 60 年代,由于高级语言的流行,使得计算机的应用范围得到较大扩展,对软件系统的需求急剧上升,从而产生了所谓的“软件危机”,即软件开发从质量、效率等方面均不能满足应用需求为了解决软件危机这一问题,1968 , NATO 会议上首次提出了“软件工程”这一概念,使软件开发开始了从“艺术”、“技巧”和“个体行为”向“工程”和“群体协同工作”,本文针对该历程中的若干问题进行了一些探索,即从事物发展规律的角度,揭示软件工程技术发展历程从软件本质特征的角度,浅析虚拟机各抽象层次的构造从软件开发的本质,指出了软件工程学科研究的内容,并研究了软件工业化生产模式 Internet 的出现为背景,探索了软件技术的发展趋势。

1、软件技术发展的历程

30 多年来,软件工程的研究和实践取得了长足的进步,其中一些具有里程碑意义的进展包括: 20 世纪 60 年代末7 年代中期,在一系列高级语言应用的基础上,出现了结构化程序设计技术,并开发了一些支持软件开发的工具。 20 世纪 70 年代中期8 年代,计算机辅助软件工程(CASE)成为研究热点,并开发了一些对软件技术发展具有深远影响的软件工程环境。 20 世纪 80 年代中期9 年代,出现了面向对象语言和方法,并成为主流的软件开发技术开展软件过程及软件过程改善的研究注重软件复用和软件构件技术的研究与实践 软件是客观事物的一种反映,客观世界的不断变化促使软件技术的不断发展,这种事物发展规律促使软件工程的产生和发展。我们仅从解决软硬件的异构性和各种软件之间的异构性角度,就可窥见软件技术发展的一种途径。如:为屏蔽计算机硬件之间的异构性发展了操作系统,为屏蔽操作系统之间和编程语言之间的异构性出现了支撑软件和中间件,为屏蔽不同中间件之间的异构性发展了 Web Services 技术等等随着解决问题的不断深入,易用性和适应性要求的不断提升,以及软件技术的不断发展,还会出现更新、更复杂的异构问题,它的解决会促进软件技术的不断发展。从学科角度来看,要不断提炼所要解决问题的概念,建立相应的模型,并寻找处理方法,从而解决这些问题的概念模型和处理问题逻辑间的映射问题。

2、软件与软件特征

软件是对客观世界中问题空间与解决空间的具体描述,是客观事物的一种反映,是知识的提炼和“固化”客观世界是不段变化的,因此,构造性和演化性是软件的本质特征,如果使软件模型具有更强的表达能力、更符合人类的思维模式,即如何提升计算机环境的抽象层次,在一定意义上来讲,这紧紧围绕了软件的本质特征——构造性和演化性。

在高级语言出现以前,汇编语言(机器语言)是编程的工具,表达软件模型的基本概念(或语言构造)是指令,表达模型处理逻辑的只要概念(机制)是顺序和转移,显然这一抽象层次是比较低的,高级语言的出现,例如:FORTRAN 语言、PASCAL 语言、C 语言等,使用了变量、标识符、表达式等概念作为语言的基本构造,并使用3 种基本控制结构来表达软件模型的计算逻辑,因此软件开发人员可以在一个更高的抽象层次上进行程序设计,随后出现了一系列开发范型和结构化程序设计技术,实现了模块化的数据抽象和过程抽象,提高了人们表达客观世界的抽象层次,并使开发的软件具有一定的构造性和演化性的。

3 软件工程的主要研究内容

从某种角度来说,软件开发的本质就是要实现“高层概念”到“低层概念”的映射,实现“高层处理逻辑”到“低层处理逻辑”的映射对于大型软件系统的开发,这一映射是相当复杂的,涉及到有关人员、使用的技术、采取的途径以及成本和进度的约束,因此,我们可以把软件工程定义为: 软件工程(software engineering)是应用计算机科学理论和技术以及工程管理原则和方法,按照预算和进度,实现满足用户要求的软件产品的定义、开发、发布和维护的工程或以之为研究对象的学科,软件工程与其他工程一样要有自己的目标、活动和原则。

4 软件技术的发展趋势

Internet 无疑是 20 世纪末伟大的技术进展之一,为我们提供了一种全球范围的信息基础设施这个不断延伸的网络基础设施,形成了一个资源丰富的计算平台,构成了人类社会的信息化、数字化基础,成为我们学习、生活和工作的必备环境如何在未来 Internet 平台上进一步进行资源整合,形成巨型的、高效的、可信的和统一的虚拟环境,使所有资源能够高效、可信地为所有用户服务,成为软件技术的研究热点 Internet 平台具有如下基本特征:无统一控制的“真”分布性节点的高度自治性节点链接的开放性和动态性人、设备和软件的多重异构性实体行为的不可预测性运行环境的潜在安全性使用方式的个性化和灵活性网络连接环境的多样性等因此,Internet 平台和环境的出现,对软件形态、技术发展、理论研究提出新的问题,也提供了新的契机 传统软件的开发基于封闭的静态平台,是自顶向下、逐步分解的过程,因此传统软件的开发,基本都是首先确定系统的范围( Scoping),然后实施分而治之的策略,整个开发过程处于有序控制之下而未来软件系统的开发所基于的平台是一个有丰富基础软件资源但同时又是开放、动态和多变的框架,开发活动呈现为通过基础软件资源组合为基本系统,然后经历由“无序”到“有序”的往复循环过程,是动态目标渐趋稳态未来软件基本模型由于所处平台的特性和开放应用的需求而变得比任何传统的计算模型都更为复杂,软件生命周期由于“无序”到“有序”的循环而呈现出不同于传统生命周期概念的“大生命周期概念”,程序正确性由于目标的多样化而表现为传统正确性描述的一个偏序集,软件体系结构侧重点从基于实体的结构分解转变为基于协同的实体聚合,软件生产过程和环境的变化导致基于 Internet 的面向用户的虚拟工厂的形成 由于软件系统所基于的计算机硬件平台正经历从集中封闭的计算平台向开放的 Internet 平台的转变,软件系统作为计算机系统的核心,随着其运行环境的演变也经历了一系列的变革目前,面向网络的计算环境正由Client/Server 发展为 Client/Cluster,并正朝着 Client/Network Client/Virtual Environment 的方向发展那么,未来的基于 Internet 平台的软件系统又将会呈现出一个什么形态呢 从技术的角度来看,以软件构件等技术支持的软件实体将以开放、自主的方式存在于 Internet 的各个节点之上,任何一个软件实体可在开放的环境下通过某种方式加以发布,并以各种协同方式与其他软件实体进行跨网络的互连、互通、协作和联盟,从而形成一种与当前的信息 Web 类似的 Software WebSoftware Web 不再仅仅是信息的提供者,它还是各种服务(功能)的提供者由于网络环境的开放与动态性,以及用户使用方式的个性化要求,从而决定了这样一种 Software Web,它应能感知外部网络环境的动态变化,并随着这种变化按照功能指标、性能指标和可信性指标等进行静态的调整和动态的演化,以使系统具有尽可能高的用户信赖度我们将具有这种新形态的软件称为网构软件(internetware) 网构软件是在 Internet 开放、动态和多变环境下软件系统基本形态的一种抽象,它既是传统软件结构的自然延伸,又具有区别于在集中封闭环境下发展起来的传统软件形态的独有的基本特征:

(1) 自主性:是指网构软件系统中的软件实体具有相对独立性、主动性和自适应性自主性使其区别于传统软件系统中软件实体的依赖性和被动性

(2) 协同性:是指网构软件系统中软件实体之间可按多种静态连接和动态合作方式在开放的网络环境下加以互连、互通、协作和联盟协同性使其区别于传统软件系统在封闭集中环境下单一静态的连接模式

(3) 反应性:是指网构软件具有感知外部运行和使用环境并对系统演化提供有用信息的能力反应性使网构软件系统具备了适应 Internet 开放、动态和多变环境的感知能力

(4) 演化性:是指网构软件结构可以根据应用需求和网络环境变化而发生动态演化,主要表现在其实体元素数目的可变性、结构关系的可调节性和结构形态的动态可配置性上演化性使网构软件系统具备了适应Internet 开放、动态和多变环境的应变能力

(5) 多态性:是指网构软件系统的效果体现出相容的多目标性它可以根据某些基本协同原则,在动态变化的网络环境下,满足多种相容的目标形态多态性使网构软件系统在网络环境下具备了一定的柔性和满足个性化需求的能力

综上所述,Internet 及其上应用的快速发展与普及,使计算机软件所面临的环境开始从静态封闭逐步走向开放、动态和多变软件系统为了适应这样一种发展趋势,将会逐步呈现出柔性、多目标、连续反应式的网构软件系统的形态面对这种新型的软件形态,传统的软件理论、方法、技术和平台面临了一系列挑战从宏观上看,这种挑战为我们研究软件理论、方法和技术提供了难得的机遇,使我们有可能建立一套适合于Internet 开放、动态和多变环境的新型软件理论、方法和技术体系从微观的角度来看,Internet 的发展将使系统软件和支撑平台的研究重点开始从操作系统等转向新型中间件平台,而网构软件的理论、方法和技术的突破必将导致在建立新型中间件平台创新技术方面的突破 归结起来,网构软件理论、方法、技术和平台的主要突破点在于实现如下转变,从传统软件结构到网构软件结构的转变,从系统目标的确定性到多重不确定性的转变,从实体单元的被动性到主动自主性的转变,从协同方式的单一性到灵活多变性的转变,从系统演化的静态性到系统演化的动态性的转变,从基于实体的结构分解到基于协同的实体聚合的转变,从经验驱动的软件手工开发模式到知识驱动的软件自动生成模式的转变建立这样一种新型的理论、方法、技术和平台体系具有两个方面的重要性,一方面,从计算机软件技术发展的角度,这种新型的理论、方法和技术将成为面向Internet 计算环境的一套先进的软件工程方法学体系, 21 世纪计算机软件的发展构造理论基础另一方面,这种基于 Internet 计算环境上软件的核心理论、方法和技术,必将为我国在未来 510 年建立面向 Internet 的软件产业打下坚实的基础,为我国软件产业的跨越式发展提供核心技术的支持 当前的软件技术发展遵循软硬结合、应用与系统结合的发展规律“软”是指软件,“硬”是指微电子,要发展面向应用,实现一体化面向个人,体现个性化的系统和产品软件技术的总体发展趋势可归结为:软件平台网络化、方法对象化、系统构件化、产品家族化、开发工程化、过程规范化、生产规模化、竞争国际化

本文来源:https://www.2haoxitong.net/k/doc/2e97ac54b8f3f90f76c66137ee06eff9aff84949.html

《软件技术的发展.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式