基于构件的软件工程技术研究_第1页
基于构件的软件工程技术研究_第2页
基于构件的软件工程技术研究_第3页
基于构件的软件工程技术研究_第4页
基于构件的软件工程技术研究_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1/8基于构件的软件工程技术研究基于构件的软件工程技术研究摘要本文基于笔者多年从事软件工程的相关学习和研究心得,以基于构件的软件工程技术为研究对象,探讨了面向对象软件工程与传统软件工程之间的差别,给出了基于构件的软件工程概念模型,全文是笔者长期工作实践基础上的理论升华,相信对从事相关工作的同行有着重要的参考价值和借鉴意义。关键词构件软件工程面向对象中图分类号TP文献标识码A文章编号16723791201602C005702软件是信息产业的灵魂,软件工程是软件产业的灵魂。1968年由NATO北大西洋公约组织在德国格密斯GARMISH举行的学术会议上正式提出“软件工程SOFTWAREENGINEERING”这一概念以来,软件工程发展极快,取得了丰硕的成果。软件工程分为传统软件工程、面向对象软件工程、软件过程工程和构件软件工程四种。软件工程没有一个权威的定义,比较认可的定义为软件工程是一门交叉学科,它是解决软件问题的工程,是对软件开发、运作、维护的系统化的、有规律的、可定量的研究方法。2/8软件工程有明确的目标。那就是研制开发与生产出具有良好的软件质量和费用合算的产品。软件质量可用六个特性来评价功能性、可靠性、易使用性、高效率性、可维护性、易移植性。软件工程不同于一般工程,具体表现在以下几点。1软件是逻辑产品而不是实物产品,所以费用集中在研制开发上而不在生产上。软件不会用坏、磨损、老化,但有一个过时的问题。2由于软件是逻辑产品,使得它的功能只能依赖于硬件和软件的运行环境以及人们对它的操作,才能得以体现。3软件产品的功能比一般产品的功能复杂得多。4软件设计比一般产品复杂得多。具体表现在功能的多样性,实现的多样性。推动软件工程发展的原动力是提高软件质量和软件开发的生产效率。1传统软件工程传统软件工程采用面向过程,即结构化程序设计方法,即有很多成功的例子,例如DOS操作系统,也有很多失败的例子,例如美国阿波罗登月飞行计划的软件错误。因为传统软件工程不能驾驭复杂系统的开发,曾经一度产生了软件危机。面对越来越复杂的软件系统,传统软件工程已经不能胜任,在实践中,人们呼唤能适应复杂系统开发的软件工程方法学和软件开发技术的诞生,面向对象软件工程应运而生。进入3/820世纪90年代以来,INTERNET飞速发展,人们碰到了另一个难题,快节奏地开发基于WEB的大型应用程序,面向对象软件工程及其技术已经不能胜任,人们尝试利用基于构件的技术来解决,于是诞生了CORBA、COM及COM、J2EE及EJB等基于构件的技术和软件开发方法。然而,今天的构件技术离人们追求的目标软件工厂还相差甚远。面向过程的优点面向过程的思维方法是符合人类认识规律的,因为人们解决问题,总是一步一步进行的,其中,有顺序,条件和循环,利用这三大结构,可以解决世界上的任何问题。这些方法是优秀的,被面向对象和面向构件所吸收,成为类或构件内部实现的有力工具。面向过程的缺点着眼于细节,不能很好地从宏观上把握系统。面向对象软件工程面向对象软件工程是运用面向对象方法,符合人类认识规律的一种软件工程。20世纪60年代后期出现了面向对象的编程语言,20世纪70年代初XEROX公司推出了SMAILTALK语言。奠定了面向对象程序设计的基础,1980年出现的SMATLTALK80标志着面向对象程序设计进入了实用阶段。自20世纪80年代中期起,人们注重于面向对象分析和设计的研究,逐步形成了面向对象软件工程方法学。典型的方法有ECOAD和EYOURDON的面向对象分析和设计,GBOOCH的面向对象开发方法,JRUMBAUGH等人提出的对象4/8建模技术OMT,JACOBSON的面向对象软件工程等。20世纪90年代中期,由GBOOTH,JRUMBAUGH、JACOBSON等人发起,在BOOCH方法、OMT方法、OOSE方法的基础上推出了统一的建模语言UML,1997年被国际对象组织OMG确定为标准的建模语言。面向对象方法的出现受到了计算机软件界的亲睐,并成为20世纪90年代的主流开发方法。面向对象方法的优点如下。1从认知学的角度来看,面向对象方法符合人们对客观世界的认识规律很长一段时间里,我们分析、设计、实现一个软件系统的过程与我们认识一个系统的过程存在着差异。例如结构化方法分析的结果是数据流图,设计的结果是模块结构,实现的结果是由程序模块组成的源程序。2开发的软件系统易于维护,其体系结构易于理解、扩充和修改面向对象方法开发的软件系统由对象类组成,对象的封装性很好地体现了抽象和信息隐蔽的特征。3面向对象方法中的继承机制有力支持软件的复用构件软件工程的概念模型构件和基于构件的方法是电子商务革命的驱动力,它们是INTERNET时代开发企业级解决方案的方法。在任何行业中,复杂情况通常是通过很多关键概念来解决的。这些概5/8念是通过抽象、分解、选代、细化等方法来表达的。其中的关键是分解技术把一个较大的问题分解成较小的、可管理的单元,这样每一个单元都是可以单独处理的,这个技术是软件工程的许多方法的核心。这些方法可以称为结构化设计,模块化编程,面向对象程序设计,基于构件的程序设计,它们产生的单元称为模块、包、对象或构件。基于构件软件开发是历史发展的必然,基于构件的软件开发COMPONENTBASEDSOFTWAREDEVELOPMENT,简称CBD。基于构件的软件工程COMPONENTBASEDSOFTWAREENGINEERING,简称CBSE。CBD追求的目标是软件的“即插即用”。回顾经典的工业化革命,不难得出一些有益的启示功能再复杂的产品都是由大量标准的零件领域构件组成,零件在生产线上装配成一个产品,所有零件在产品中共同发挥作用。分工越细致,专业生产的程度越高,总体生产效率就越高。把这些启示运用于软件开发,那就是标准的零件就是软件生产的构件,构件在软件生产线上通过集成得到新开发的软件。构件的分类构件有两个层次,粗粒度构件和细粒度构件。粗粒度构件指的是基于操作系统平台的构件,已经实现即插即用的目标。例如,基于WINDOWS平台开发的各种应用软件,6/8MICROSOFTOFFICE,WINDOWSMEDIAPLAYER,REALONEPLAYER,FLASHGET,金山词霸,瑞星杀毒软件等等,这些应用程序可以直接安装使用,当不再需要这些应用程序的时候,可以通过自带的卸载程序或通过控制面板将其卸载。很明显,这正是我们所讨论的软件的“即插即用”,只不过这些构件跨平台能力太差,不能直接从WINDOWS平台移植到UNIX平台、SOLARIS平台或其它平台复用程度也太差,不是我们心目中最求的目标。细粒度构件指的是可以用来组装应用程序的构件,包括通用构件和专用构件,基于构件的软件开发讨论的就是这种构件。另一种分类是根据软件复用来进行分类的,分为广义构件和狭义构件。广义构件是指用于复用的软件实体,包括分析文档、详细设计、代码实现等。狭义构件特指二进制代码构件,可以用于组装应用程序。模型描述基于构件的软件开发,简称CBD,足面向对象程序设计的继承和发展。一个构件由一个或多个对象经过包装构成,通过接口独立地对外提供服务。接口和硬件接口相似,有输入接口、输出接口和输入输出接口。我们看现实生活的一个例子,可以引发我们的很多思考。人是一个对象,也是经过规范包装的一个构件,其接口是眼、耳、鼻、舌、口、身,其7/8中眼、耳、鼻、舌是输入接口,口是输出接口,身是输入输出接口。人通过输入接口接收信息和对外界的感知,通过神经传递消息,集中在大脑进行加工处理,反馈信息通过神经传递论文联盟到输出接口,从而完成人对现实世界的认识和感知,完成人与人之问的沟通与协调,这样就构成了整个人类社会。CBD也是相似的,每个构件都是由一个或多个对象经过规范包装构成的,形成标准的部件,然后在构件集成开发环境下,组装成应用程序。下面我们详细看一下CBD生存周期的概念。基于构件的软件开发生存周期为系统分析,蓝图设计,构件的准备与生产,构件的集成与测试,使用,维护六个阶段。经过系统分析和蓝图设计之后,就必须进行构件的准备和生产,这时候,可以复用通用构件,对于特定领域的特殊构件,必须自己进行生产,实现领域内的特殊业务逻辑。系统分析的时候,采用自上而下的分析方法,识别出系统的所有需求,把整个系统分解为多个一级子模块,如果需要,再进行更细的详分,标识为二级子模块,三级子模块等等。一般来说,模块的划分不宜太深,二级就可以了,否则理解起来就很困难。当把子模块详细分解为构件之后,在构件集成开发环境下,首先进行构件设计,实现业务逻辑,然后标识接EL,进行规范包装,使构件像工业上的标准零件一样。在集成开发环境下,采8/8用和C棚似的两层界面,一层是设计界面,一层是代码界面,构件集成开发环境的成功之处在于,双击任何一个构件,能够将构件和构件代码一一对应起来,从而大大方便编程和调试程序。当把各个小构件准备好了之后,把它们集成编译为更大的构件,直至集成为一级构件,最

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论