欢迎来到学术参考网
当前位置:医学论文>药学论文

传统软件工程与面向对象、构件软件工程的比较

发布时间:2015-08-20 14:04

摘 要:软件是信息产业的灵魂,软件工程是软件产业的灵魂。1968年由NATO(北大西洋公约组织)在德国格密斯(Garmish)举行的学术会议上正式提出“ 软件工程( softwareengineering)”这一概念以来,软件工程发展极快, 取得了丰硕的成果。软件工程分为传统软件工程、面向对象软件工程和构件软件工程。本文主要通过对比的方法比较分析了传统软件工程、面向对象软件工程和构件软件工程。

关键词:软件工程;含义;特点;传统;构件
1.软件工程的含义与特点
  软件工程 (Software Engineering,简称为SE)是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及到程序设计语言,数据库,软件开发工具,系统平台,标准,设计模式等方面。
  在现代社会中,软件应用于多个方面。典型的软件比如有电子邮件,嵌入式系统,人机界面,办公套件,操作系统,编译器,数据库,游戏等。同时,各个行业几乎都有计算机软件的应用,比如工业,农业,银行,航空,政府部门等。这些应用促进了经济和社会的发展,使得人们的工作更加高效,同时提高了生活质量。软件工程师是对应用软件创造软件的人们的统称,软件工程师按照所处的领域不同可以分为系统分析员,软件设计师,系统架构师,程序员,测试员等等。人们也常常用程序员来泛指各种软件工程师。软件工程没有一个权威的定义, 比较认可的定义为:软件工程是一门交叉学科,它是解决软件问题的工程,是对软件开发、运作、维护的系统化的、有规律的、可定量的研究方法。软件工程有明确的目标。那就是研制开发与生产出具有良好的软件质量和费用合算的产品。软件质量可用六个特性来评价:功能性、可靠性、易使用性、高效率性、可维护性、易移植性。软件工程不同于一般工程, 具体表现在以下几点。
(1) 软件是逻辑产品而不是实物产品,所以费用集中在研制开发上而不在生产上。软件不会用坏、磨损、老化,但有一个过时的问题。(2)由于软件是逻辑产品,使得它的功能只能依赖于硬件和软件的运行环境以及人们对它的操作,才能得以体现。(3)软件产品的功能比一般产品的功能复杂得多。(4)软件设计比一般产品复杂得多。具体表现在:功能的多样性,实现的多样性。推动软件工程发展的原动力是提高软件质量和软件开发的生产效率。
2.传统软件工程
    传统软件工程采用面向过程,即结构化程序设计方法, 即有很多成功的例子,例如DOS操作系统,也有很多失败的例子,例如美国阿波罗登月飞行计划的软件错误。因为传统软件工程不能驾驭复杂系统的开发, 曾经一度产生了软件危机。面对越来越复杂的软件系统, 传统软件工程已经不能胜任, 在实践中, 人们呼唤能适应复杂系统开发的软件工程方法学和软件
开发技术的诞生, 面向对象软件工程应运而生。进入20世纪90年代以来,Internet飞速发展, 人们碰到了另一个难题, 快节奏地开发基于Web的大型应用程序,面向对象软件工程及其技术已经不能胜任, 人们尝试利用基于构件的技术来解决, 于是诞生了CORBA、COM及COM+、J2EE及EJB等基于构件的技术和软件开发方法。然而, 今天的构件技术离人们追求的目标——软件工厂还相差甚远。面向过程的优点:面向过程的思维方法是符合人类认识规律的, 因为人们解决问题,总是一步一步进行的,其中,有顺序,条件和循环,利用这三大结构,可以解决世界上的任何问题。这些方法是优秀的,被面向对象和面向构件所吸收, 成为类或构件内部实现的有力工具。面向过程的缺点:着眼于细节,不能很好地从宏观上把握系统。
3.面向对象软件工程
    面向对象软件工程是运用面向对象方法,符合人类认识规律的一种软件工程。20世纪60年代后期出现了面向对象的编程语言, 2 0 世纪7 0 年代初Xerox公司推出了Smailtalk语言。奠定了面向对象程序设计的基础,1980年出现的Smatltalk-80标志着面向对象程序设计进入了实用阶段。自20世纪80年代中期起,人们注重于面向对象分析和设计的研究,逐步形成了面向对象软件工程方法学。典型的方法有ECoad和E.YourDon的面向对象分析和设计,GBooch的面向对象开发方法,J.Rumbaugh等人提出的对象建模技术(OMT),Jacobson的面向对象软件工程等。20世纪90年代中期,由GBooth,J.Rumbaugh、Jacobson等人发起,在Booch方法、OMT方法、OOSE方法的基础上推出了统一的建模语言(UML),1997年被国际对象组织(OMG)确定为标准的建模语言。面向对象方法的出现受到了计算机软件界的亲睐,并成为20世纪90年代的主流开发方法。面向对象方法的优点如下。
(1)从认知学的角度来看,面向对象方法符合人们对客观世界的认识规律很长一段时间里,我们分析、设计、实现一个软件系统的过程与我们认识一个系统的过程存在着差异。例如结构化方法分析的结果是数据流图,设计的结果是模块结构, 实现的结果是由程序模块组成的源程序。(2)开发的软件系统易于维护,其体系结构易于理解、扩充和修改面向对象方法开发的软件系统由对象类组成,对象的封装性很好地体现了抽象和信息隐蔽的特征。(3)面向对象方法中的继承机制有力支持软件的复用.
4.构件软件工程的概念模型
  构件和基于构件的方法是电子商务革命的驱动力,它们是Internet时代开发企业级解决方案的方法。在任何行业中,复杂情况通常是通过很多关键概念来解决的。这些概念是通过抽象、分解、选代、细化等方法来表达的。其中的关键是分解技术——把一个较大的问题分解成较小的、可管理的单元,这样每一个单元都是可以单独处理的,这个技术是软件工程的许多方法的核心。这些方法可以称为结构化设计,模块化编程,面向对象程序设计,基于构件的程序设计,它们产生的单元称为模块、包、对象或构件。基于构件软件开发是历史发展的必然,基于构件的软件开发(Component Based Software Development),简称CBD。基于构件的软件工程(Component Based Software Engineering),简称CBSE。CBD追求的目标是软件的“即插即用”。回顾经典的工业化革命,不难得出一些有益的启示:功能再复杂的产品都是由大量标准的零件(领域构件)组成,零件在生产线上装配成一个产品,所有零件在产品中共同发挥作用。分工越细致, 专业生产的程度越高,总体生产效率就越高。把这些启示运用于软件开发,那就是:标准的零件就是软件生产的构件, 构件在软件生产线上通过集成得到新开发的软件。
参考文献:
. 科技广场, 2006,(01)

上一篇:基于ARM的智能机器人语音控制应用研究

下一篇:Excel中的VBA程序设计