论文部分内容阅读
一、基于构件/构架的软件开发方法
上世纪60年代开始就出现了“软件危机”,当时一个大型复杂软件,要花上千人几年的工作量才能实现,而开发质量极差,常常可能包含成千上万个错误。为了解决这个问题,荷兰的一位物理学家E.W.Dijkstra采用数学的解题方法,提出了一种称为结构程序设计的方法,应用于开发大型软件系统时称为“结构化分析和结构化设计”。这种方法延用了十多年的历史,形成了软件工程这门学科。缩短开发周期、提高开发效率和质量以及实现随需应变等问题成为软件工程中的核心问题。
C.A.R.Hoaro于1972年提出了数据抽象的模块,逐步发展成面向对象的开发方法。这种方法的基本思想是知识重用,就是尽量重用现有的成果,从而提高开发质量和效果。到了上世纪90年代这种方法成了研究的热点,先后出现了许多学派,发生了历史上著名的“OO大战”。虽然学术界讨论很热烈,但成效并不理想。其原因是:①技术要求较高,一般技术人员(编程人员)很难掌握;②由于概念上不统一,很难建立起标准和规范;③在工程实施中有不少难点没有解决好。因此这种方法只能在某些应用上被少数技术人员使用。
为此,在面向对象方法的基础上出现了构件技术,这种思想来自汽车制造业和建筑业中,采用流水线生产方式的预制件装配方式。它对预制件要求并不苛刻,而只要是重用就可以了,所以称为构件。在这个生产流水线上,各阶段可以由不同专业人员去完成,社会有了分工,效率和质量就有了保证。这种开发技术称为“基于构件/构架的开发技术”。
我们曾用这种方法开发了一个“财政信息系统”,后来应用到四川省和成都市财政厅,可达到重用软件 95%以上。正好像现在盖一个大厦,采用了预制件组装就可以大大提高开发效率、缩短开发时间,而且还能提高质量。直到现在这项技术才完全成熟,由此软件危机获得了初步解决。
二、UML统一建模语言和软件开发平台
利用有效的开发方法,各个软件开发公司或有关部门相继建立起相应的开发平台和开发工具。其中最为成功的工具就是统一建模语言UML。
UML是一种将软件开发过程中出现的各种模型用可视化的图形来描述的语言,它是由面向对象方法的三位奠基人坐在一起,统一了面向对象中的概念,补充了不足,引入用例建模、构件和迭代开发等技术,获得了国际标准化组织的认可和各大公司的支持。
软件开发过程,是从用户需求向具体实现的逐步过渡,其中各步都是用某种模型来说明。使用模型既可以更好地理解问题,与有关人员很好地交流和沟通,及时发现问题并诊断和修正方案,也可以作为中间成果的文件保留下来,成为今后知识重用和开发阶段的依据。数学家用数学符号来学习或推演数学,音乐家用五线谱记录乐谱,软件工程师用的就是UML。UML为今后软件技术的发展奠定了基础,它是本世纪软件开发方法演进的一个里程碑。
三、分布式系统的体系结构
20世纪90年代,随着计算机网络技术的普及,客户机/服务器计算机模式开始成为开发分布式系统的主流技术,如火车订票、通存通取等数据大集中系统,近年来兴起的3层/n层体系结构等。但计算机系统软件并不支持这种工作方式。为此,软件开发人员又在系统软件之上增加一层软件,称为中间件。这一中间件是分布式计算的基础。
中间件技术使设计者能集中设计与应用有关的部分,大大简化了设计和维护工作。通过五六年的大量应用和实践,中间件已有一批成熟的产品,并成为设计分布式系统时不可缺少的软件。仅仅几年时间,中间件迅速发展起来,每年的市场销售额均是成倍增长,现在每年已有几十亿美元的份额。
三层体系结构有力地提供了一种分布式系统的解决方案,实现了一种紧耦合的分布式系统,组成一个自成体系的单个应用软件。而如何将现有的多个应用软件,通过网络整合成一个集成系统,从而提高工作效率和质量,如电子商务的供应链、电子政务、数字地球、智能交通,早期的技术是无法解决的。这是当前迫切要解决的问题。
2004年4月IBM提出了SOA(面向服务的体系结构)解决方案。面向服务的体系结构是一类松耦合分布式系统的体系结构。这类系统是将异构平台上应用程序的不同功能部件(称为服务),通过这些服务之间定义好的接口和规范,以松耦合的方式整合在一起,即将多个现有的应用软件通过网络整合成一千新系统。
SOA的目标是:1.多应用的整合。SOA不但能将各种各样的应用软件整合在一起,而且能以松耦合的方式进行整合,也就是说,被整合的应用软件自身仍保持其自主独立。2.新增设的业务功能能够随需应变。
SOA仅仅是一种解决方案,是分布式系统的结构模型,而由于这种方案简单、实现方便,它一出现就受到广泛关注。目前所有国际著名的计算机公司,都在应有SOA技术,开发相应的平台和工具。 SOA在软件开发方面即将成为本世纪的热点。
上世纪60年代开始就出现了“软件危机”,当时一个大型复杂软件,要花上千人几年的工作量才能实现,而开发质量极差,常常可能包含成千上万个错误。为了解决这个问题,荷兰的一位物理学家E.W.Dijkstra采用数学的解题方法,提出了一种称为结构程序设计的方法,应用于开发大型软件系统时称为“结构化分析和结构化设计”。这种方法延用了十多年的历史,形成了软件工程这门学科。缩短开发周期、提高开发效率和质量以及实现随需应变等问题成为软件工程中的核心问题。
C.A.R.Hoaro于1972年提出了数据抽象的模块,逐步发展成面向对象的开发方法。这种方法的基本思想是知识重用,就是尽量重用现有的成果,从而提高开发质量和效果。到了上世纪90年代这种方法成了研究的热点,先后出现了许多学派,发生了历史上著名的“OO大战”。虽然学术界讨论很热烈,但成效并不理想。其原因是:①技术要求较高,一般技术人员(编程人员)很难掌握;②由于概念上不统一,很难建立起标准和规范;③在工程实施中有不少难点没有解决好。因此这种方法只能在某些应用上被少数技术人员使用。
为此,在面向对象方法的基础上出现了构件技术,这种思想来自汽车制造业和建筑业中,采用流水线生产方式的预制件装配方式。它对预制件要求并不苛刻,而只要是重用就可以了,所以称为构件。在这个生产流水线上,各阶段可以由不同专业人员去完成,社会有了分工,效率和质量就有了保证。这种开发技术称为“基于构件/构架的开发技术”。
我们曾用这种方法开发了一个“财政信息系统”,后来应用到四川省和成都市财政厅,可达到重用软件 95%以上。正好像现在盖一个大厦,采用了预制件组装就可以大大提高开发效率、缩短开发时间,而且还能提高质量。直到现在这项技术才完全成熟,由此软件危机获得了初步解决。
二、UML统一建模语言和软件开发平台
利用有效的开发方法,各个软件开发公司或有关部门相继建立起相应的开发平台和开发工具。其中最为成功的工具就是统一建模语言UML。
UML是一种将软件开发过程中出现的各种模型用可视化的图形来描述的语言,它是由面向对象方法的三位奠基人坐在一起,统一了面向对象中的概念,补充了不足,引入用例建模、构件和迭代开发等技术,获得了国际标准化组织的认可和各大公司的支持。
软件开发过程,是从用户需求向具体实现的逐步过渡,其中各步都是用某种模型来说明。使用模型既可以更好地理解问题,与有关人员很好地交流和沟通,及时发现问题并诊断和修正方案,也可以作为中间成果的文件保留下来,成为今后知识重用和开发阶段的依据。数学家用数学符号来学习或推演数学,音乐家用五线谱记录乐谱,软件工程师用的就是UML。UML为今后软件技术的发展奠定了基础,它是本世纪软件开发方法演进的一个里程碑。
三、分布式系统的体系结构
20世纪90年代,随着计算机网络技术的普及,客户机/服务器计算机模式开始成为开发分布式系统的主流技术,如火车订票、通存通取等数据大集中系统,近年来兴起的3层/n层体系结构等。但计算机系统软件并不支持这种工作方式。为此,软件开发人员又在系统软件之上增加一层软件,称为中间件。这一中间件是分布式计算的基础。
中间件技术使设计者能集中设计与应用有关的部分,大大简化了设计和维护工作。通过五六年的大量应用和实践,中间件已有一批成熟的产品,并成为设计分布式系统时不可缺少的软件。仅仅几年时间,中间件迅速发展起来,每年的市场销售额均是成倍增长,现在每年已有几十亿美元的份额。
三层体系结构有力地提供了一种分布式系统的解决方案,实现了一种紧耦合的分布式系统,组成一个自成体系的单个应用软件。而如何将现有的多个应用软件,通过网络整合成一个集成系统,从而提高工作效率和质量,如电子商务的供应链、电子政务、数字地球、智能交通,早期的技术是无法解决的。这是当前迫切要解决的问题。
2004年4月IBM提出了SOA(面向服务的体系结构)解决方案。面向服务的体系结构是一类松耦合分布式系统的体系结构。这类系统是将异构平台上应用程序的不同功能部件(称为服务),通过这些服务之间定义好的接口和规范,以松耦合的方式整合在一起,即将多个现有的应用软件通过网络整合成一千新系统。
SOA的目标是:1.多应用的整合。SOA不但能将各种各样的应用软件整合在一起,而且能以松耦合的方式进行整合,也就是说,被整合的应用软件自身仍保持其自主独立。2.新增设的业务功能能够随需应变。
SOA仅仅是一种解决方案,是分布式系统的结构模型,而由于这种方案简单、实现方便,它一出现就受到广泛关注。目前所有国际著名的计算机公司,都在应有SOA技术,开发相应的平台和工具。 SOA在软件开发方面即将成为本世纪的热点。