傳統(tǒng)軟件工程與面向?qū)ο、?gòu)件軟件工程的比較分析
本文關(guān)鍵詞:傳統(tǒng)軟件工程與面向?qū)ο、?gòu)件軟件工程的比較分析,由筆耕文化傳播整理發(fā)布。
傳統(tǒng)軟件工程與面向?qū)ο、?gòu)件軟件工程的比較分析
作者:不詳 更新時(shí)間:2012-6-10 16:25:16
摘 要:軟件是信息產(chǎn)業(yè)的靈魂,軟件工程是軟件產(chǎn)業(yè)的靈魂。1968年由NATO(北大西洋公約組織)在德國(guó)格密斯(Garmish)舉行的學(xué)術(shù)會(huì)議上正式提出“ 軟件工程( softwareengineering)”這一概念以來(lái),軟件工程發(fā)展極快, 取得了豐碩的成果。軟件工程分為傳統(tǒng)軟件工程、面向?qū)ο筌浖こ毯蜆?gòu)件軟件工程。本文主要通過(guò)對(duì)比的方法比較分析了傳統(tǒng)軟件工程、面向?qū)ο筌浖こ毯蜆?gòu)件軟件工程。
關(guān)鍵詞:軟件工程;含義;特點(diǎn);傳統(tǒng);構(gòu)件
1.軟件工程的含義與特點(diǎn)
軟件工程 (Software Engineering,簡(jiǎn)稱(chēng)為SE)是一門(mén)研究用工程化方法構(gòu)建和維護(hù)有效的、實(shí)用的和高質(zhì)量的軟件的學(xué)科。它涉及到程序設(shè)計(jì)語(yǔ)言,數(shù)據(jù)庫(kù),軟件開(kāi)發(fā)工具,系統(tǒng)平臺(tái),標(biāo)準(zhǔn),設(shè)計(jì)模式等方面。
在現(xiàn)代社會(huì)中,軟件應(yīng)用于多個(gè)方面。典型的軟件比如有電子郵件,嵌入式系統(tǒng),人機(jī)界面,辦公套件,操作系統(tǒng),編譯器,數(shù)據(jù)庫(kù),游戲等。同時(shí),各個(gè)行業(yè)幾乎都有計(jì)算機(jī)軟件的應(yīng)用,比如工業(yè),農(nóng)業(yè),銀行,航空,政府部門(mén)等。這些應(yīng)用促進(jìn)了經(jīng)濟(jì)和社會(huì)的發(fā)展,使得人們的工作更加高效,同時(shí)提高了生活質(zhì)量。軟件工程師是對(duì)應(yīng)用軟件創(chuàng)造軟件的人們的統(tǒng)稱(chēng),軟件工程師按照所處的領(lǐng)域不同可以分為系統(tǒng)分析員,軟件設(shè)計(jì)師,系統(tǒng)架構(gòu)師,程序員,,測(cè)試員等等。人們也常常用程序員來(lái)泛指各種軟件工程師。軟件工程沒(méi)有一個(gè)權(quán)威的定義, 比較認(rèn)可的定義為:軟件工程是一門(mén)交叉學(xué)科,它是解決軟件問(wèn)題的工程,是對(duì)軟件開(kāi)發(fā)、運(yùn)作、維護(hù)的系統(tǒng)化的、有規(guī)律的、可定量的研究方法。軟件工程有明確的目標(biāo)。那就是研制開(kāi)發(fā)與生產(chǎn)出具有良好的軟件質(zhì)量和費(fèi)用合算的產(chǎn)品。軟件質(zhì)量可用六個(gè)特性來(lái)評(píng)價(jià):功能性、可靠性、易使用性、高效率性、可維護(hù)性、易移植性。軟件工程不同于一般工程, 具體表現(xiàn)在以下幾點(diǎn)。
(1) 軟件是邏輯產(chǎn)品而不是實(shí)物產(chǎn)品,所以費(fèi)用集中在研制開(kāi)發(fā)上而不在生產(chǎn)上。軟件不會(huì)用壞、磨損、老化,但有一個(gè)過(guò)時(shí)的問(wèn)題。(2)由于軟件是邏輯產(chǎn)品,使得它的功能只能依賴(lài)于硬件和軟件的運(yùn)行環(huán)境以及人們對(duì)它的操作,才能得以體現(xiàn)。(3)軟件產(chǎn)品的功能比一般產(chǎn)品的功能復(fù)雜得多。(4)軟件設(shè)計(jì)比一般產(chǎn)品復(fù)雜得多。具體表現(xiàn)在:功能的多樣性,實(shí)現(xiàn)的多樣性。推動(dòng)軟件工程發(fā)展的原動(dòng)力是提高軟件質(zhì)量和軟件開(kāi)發(fā)的生產(chǎn)效率。
2.傳統(tǒng)軟件工程
傳統(tǒng)軟件工程采用面向過(guò)程,即結(jié)構(gòu)化程序設(shè)計(jì)方法, 即有很多成功的例子,例如DOS操作系統(tǒng),也有很多失敗的例子,例如美國(guó)阿波羅登月飛行計(jì)劃的軟件錯(cuò)誤。因?yàn)閭鹘y(tǒng)軟件工程不能駕馭復(fù)雜系統(tǒng)的開(kāi)發(fā), 曾經(jīng)一度產(chǎn)生了軟件危機(jī)。面對(duì)越來(lái)越復(fù)雜的軟件系統(tǒng), 傳統(tǒng)軟件工程已經(jīng)不能勝任, 在實(shí)踐中, 人們呼喚能適應(yīng)復(fù)雜系統(tǒng)開(kāi)發(fā)的軟件工程方法學(xué)和軟件
開(kāi)發(fā)技術(shù)的誕生, 面向?qū)ο筌浖こ虘?yīng)運(yùn)而生。進(jìn)入20世紀(jì)90年代以來(lái),Internet飛速發(fā)展, 人們碰到了另一個(gè)難題, 快節(jié)奏地開(kāi)發(fā)基于Web的大型應(yīng)用程序,面向?qū)ο筌浖こ碳捌浼夹g(shù)已經(jīng)不能勝任, 人們嘗試?yán)没跇?gòu)件的技術(shù)來(lái)解決, 于是誕生了CORBA、COM及COM+、J2EE及EJB等基于構(gòu)件的技術(shù)和軟件開(kāi)發(fā)方法。然而, 今天的構(gòu)件技術(shù)離人們追求的目標(biāo)——軟件工廠還相差甚遠(yuǎn)。面向過(guò)程的優(yōu)點(diǎn):面向過(guò)程的思維方法是符合人類(lèi)認(rèn)識(shí)規(guī)律的, 因?yàn)槿藗兘鉀Q問(wèn)題,總是一步一步進(jìn)行的,其中,有順序,條件和循環(huán),利用這三大結(jié)構(gòu),可以解決世界上的任何問(wèn)題。這些方法是優(yōu)秀的,被面向?qū)ο蠛兔嫦驑?gòu)件所吸收, 成為類(lèi)或構(gòu)件內(nèi)部實(shí)現(xiàn)的有力工具。面向過(guò)程的缺點(diǎn):著眼于細(xì)節(jié),不能很好地從宏觀上把握系統(tǒng)。
3.面向?qū)ο筌浖こ?br /> 面向?qū)ο筌浖こ淌沁\(yùn)用面向?qū)ο蠓椒?符合人類(lèi)認(rèn)識(shí)規(guī)律的一種軟件工程。20世紀(jì)60年代后期出現(xiàn)了面向?qū)ο蟮木幊陶Z(yǔ)言, 2 0 世紀(jì)7 0 年代初Xerox公司推出了Smailtalk語(yǔ)言。奠定了面向?qū)ο蟪绦蛟O(shè)計(jì)的基礎(chǔ),1980年出現(xiàn)的Smatltalk-80標(biāo)志著面向?qū)ο蟪绦蛟O(shè)計(jì)進(jìn)入了實(shí)用階段。自20世紀(jì)80年代中期起,人們注重于面向?qū)ο蠓治龊驮O(shè)計(jì)的研究,逐步形成了面向?qū)ο筌浖こ谭椒▽W(xué)。典型的方法有ECoad和E.YourDon的面向?qū)ο蠓治龊驮O(shè)計(jì),GBooch的面向?qū)ο箝_(kāi)發(fā)方法,J.Rumbaugh等人提出的對(duì)象建模技術(shù)(OMT),Jacobson的面向?qū)ο筌浖こ痰取?0世紀(jì)90年代中期,由GBooth,J.Rumbaugh、Jacobson等人發(fā)起,在Booch方法、OMT方法、OOSE方法的基礎(chǔ)上推出了統(tǒng)一的建模語(yǔ)言(UML),1997年被國(guó)際對(duì)象組織(OMG)確定為標(biāo)準(zhǔn)的建模語(yǔ)言。面向?qū)ο蠓椒ǖ某霈F(xiàn)受到了計(jì)算機(jī)軟件界的親睞,并成為20世紀(jì)90年代的主流開(kāi)發(fā)方法。面向?qū)ο蠓椒ǖ膬?yōu)點(diǎn)如下。
(1)從認(rèn)知學(xué)的角度來(lái)看,面向?qū)ο蠓椒ǚ先藗儗?duì)客觀世界的認(rèn)識(shí)規(guī)律很長(zhǎng)一段時(shí)間里,我們分析、設(shè)計(jì)、實(shí)現(xiàn)一個(gè)軟件系統(tǒng)的過(guò)程與我們認(rèn)識(shí)一個(gè)系統(tǒng)的過(guò)程存在著差異。例如結(jié)構(gòu)化方法分析的結(jié)果是數(shù)據(jù)流圖,設(shè)計(jì)的結(jié)果是模塊結(jié)構(gòu), 實(shí)現(xiàn)的結(jié)果是由程序模塊組成的源程序。(2)開(kāi)發(fā)的軟件系統(tǒng)易于維護(hù),其體系結(jié)構(gòu)易于理解、擴(kuò)充和修改面向?qū)ο蠓椒ㄩ_(kāi)發(fā)的軟件系統(tǒng)由對(duì)象類(lèi)組成,對(duì)象的封裝性很好地體現(xiàn)了抽象和信息隱蔽的特征。(3)面向?qū)ο蠓椒ㄖ械睦^承機(jī)制有力支持軟件的復(fù)用.
4.構(gòu)件軟件工程的概念模型
構(gòu)件和基于構(gòu)件的方法是電子商務(wù)革命的驅(qū)動(dòng)力,它們是Internet時(shí)代開(kāi)發(fā)企業(yè)級(jí)解決方案的方法。在任何行業(yè)中,復(fù)雜情況通常是通過(guò)很多關(guān)鍵概念來(lái)解決的。這些概念是通過(guò)抽象、分解、選代、細(xì)化等方法來(lái)表達(dá)的。其中的關(guān)鍵是分解技術(shù)——把一個(gè)較大的問(wèn)題分解成較小的、可管理的單元,這樣每一個(gè)單元都是可以單獨(dú)處理的,這個(gè)技術(shù)是軟件工程的許多方法的核心。這些方法可以稱(chēng)為結(jié)構(gòu)化設(shè)計(jì),模塊化編程,面向?qū)ο蟪绦蛟O(shè)計(jì),基于構(gòu)件的程序設(shè)計(jì),它們產(chǎn)生的單元稱(chēng)為模塊、包、對(duì)象或構(gòu)件。基于構(gòu)件軟件開(kāi)發(fā)是歷史發(fā)展的必然,基于構(gòu)件的軟件開(kāi)發(fā)(Component Based Software Development),簡(jiǎn)稱(chēng)CBD。基于構(gòu)件的軟件工程(Component Based Software Engineering),簡(jiǎn)稱(chēng)CBSE。CBD追求的目標(biāo)是軟件的“即插即用”;仡櫧(jīng)典的工業(yè)化革命,不難得出一些有益的啟示:功能再?gòu)?fù)雜的產(chǎn)品都是由大量標(biāo)準(zhǔn)的零件(領(lǐng)域構(gòu)件)組成,零件在生產(chǎn)線上裝配成一個(gè)產(chǎn)品,所有零件在產(chǎn)品中共同發(fā)揮作用。分工越細(xì)致, 專(zhuān)業(yè)生產(chǎn)的程度越高,總體生產(chǎn)效率就越高。把這些啟示運(yùn)用于軟件開(kāi)發(fā),那就是:標(biāo)準(zhǔn)的零件就是軟件生產(chǎn)的構(gòu)件, 構(gòu)件在軟件生產(chǎn)線上通過(guò)集成得到新開(kāi)發(fā)的軟件。
參考文獻(xiàn):
[1] 賈巖. 基于構(gòu)件的軟件工程技術(shù)研究[J]. 科技資訊, 2011,(06)
[2] 陳大賓. 結(jié)構(gòu)加固與改造方法評(píng)述[J]. 科技風(fēng), 2009,(08)
[3] 吳亮, 謝忠. 分布式構(gòu)件化WebGIS的研究與實(shí)現(xiàn)[J]. 科技進(jìn)步與對(duì)策, 2003,(S1)
[4] 黃兒松, 朱隆尹. 幾種軟件體系結(jié)構(gòu)的比較研究[J]. 科技廣場(chǎng), 2006,(01)
上一篇:純軟件高可用性解決方案--Safekit分析和應(yīng)用 下一篇:圖書(shū)管理系統(tǒng)開(kāi)發(fā)研究
相關(guān)文章
本文關(guān)鍵詞:傳統(tǒng)軟件工程與面向?qū)ο、?gòu)件軟件工程的比較分析,由筆耕文化傳播整理發(fā)布。
本文編號(hào):133166
本文鏈接:http://sikaile.net/kejilunwen/ruanjiangongchenglunwen/133166.html